Commit 131e4003 by lijingjing

霍煤相关需求添加及优化;

parent 449f71e1
......@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.hmhj.dto.ReportWithdrawDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustReport;
import com.patzn.cloud.service.hmhj.enums.EntrustReportStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustReportVO;
......@@ -367,5 +368,29 @@ public class EntrustReportController extends ServiceController {
public void downloadExcel(@RequestParam("id") Long id, HttpServletResponse response) {
entrustReportService.downloadExcel(id, response);
}
// ReportWithdrawApplication
@ApiOperation("发起报告撤回")
@PostMapping("/report_withdraw")
public RestResult<Boolean> reportWithdraw(ReportWithdrawDTO reportWithdrawDTO) {
return success(entrustReportService.launchWithdrawApplication(reportWithdrawDTO,getAccount()));
}
@ApiOperation("报告撤回审核")
@PostMapping("/report_withdraw_review")
public RestResult<Boolean> reportWithdrawReview(ReportWithdrawDTO reportWithdrawDTO) {
return success(entrustReportService.auditReportWithdraw(reportWithdrawDTO,1,getAccount()));
}
@ApiOperation("报告撤回批准")
@PostMapping("/report_withdraw_approve")
public RestResult<Boolean> reportWithdrawApprove(ReportWithdrawDTO reportWithdrawDTO) {
return success(entrustReportService.auditReportWithdraw(reportWithdrawDTO,2,getAccount()));
}
@ApiOperation("报告撤回审批")
@PostMapping("/report_withdraw_examine")
public RestResult<Boolean> reportWithdrawExamine(ReportWithdrawDTO reportWithdrawDTO) {
return success(entrustReportService.auditReportWithdraw(reportWithdrawDTO,3,getAccount()));
}
}
package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.service.hmhj.dto.SamplePrepareDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSamplePrepare;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.hmhj.dto.SamplePrepareDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSamplePrepare;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSamplePrepareService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -83,6 +81,12 @@ public class EntrustSamplePrepareController extends ServiceController {
return success(entrustSamplePrepareService.submitSampleReceive(ids,null,getAccount()));
}
@ApiOperation("样品批量接收")
@PostMapping("/receive_sample_batch")
public RestResult<Boolean> receiveSampleBatch(@RequestParam("ids")Long[] ids) {
return success(entrustSamplePrepareService.receiveSampleBatch(ids,getAccount()));
}
@ApiOperation("根据 ids 删除")
......
package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.vo.OriginalRecordVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.vo.OriginalRecordVO;
import com.patzn.cloud.service.lims.hmhj.service.IOriginalRecordService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
......@@ -97,4 +87,9 @@ public class OriginalRecordController extends ServiceController {
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(originalRecordService.removeByIds(ids));
}
@PostMapping("/download")
public void download(@RequestParam("entrustId") Long entrustId,@RequestParam("id") Long id) {
originalRecordService.download(entrustId,id, response);
}
}
package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.hmhj.entity.ReportWithdrawApplication;
import com.patzn.cloud.service.hmhj.enums.ReportWithdrawEnum;
import com.patzn.cloud.service.hmhj.vo.ReportWithdrawVO;
import com.patzn.cloud.service.lims.hmhj.service.IReportWithdrawApplicationService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 报告撤回 前端控制器
*
* @author meazty
* @since 2022-01-11
*/
@Api(tags = "报告撤回")
@RestController
@RequestMapping("/v1/withdraw_application")
public class ReportWithdrawApplicationController extends ServiceController {
@Autowired
private IReportWithdrawApplicationService reportWithdrawApplicationService;
@ApiOperation("分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/page")
public RestResult<Page<ReportWithdrawApplication>> getPage(ReportWithdrawApplication reportWithdrawApplication) {
return success(reportWithdrawApplicationService.page(getPage(), reportWithdrawApplication));
}
@ApiOperation("分页列表查询审核列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/pageVO")
public RestResult<Page<ReportWithdrawVO>> getPageVO(ReportWithdrawVO reportWithdrawVO) {
return success(reportWithdrawApplicationService.pageVO(getPage(), reportWithdrawVO));
}
@ApiOperation("分页列表查询审核列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/page_check")
public RestResult<Page<ReportWithdrawVO>> getPageCheck(ReportWithdrawVO reportWithdrawVO) {
reportWithdrawVO.setStatus(ReportWithdrawEnum.CHECK);
// 匹配审核人员
// reportWithdrawVO.setReviewerId(getAccount().getUserId());
return getPageVO(reportWithdrawVO);
}
@ApiOperation("分页列表查询批准列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/page_audit")
public RestResult<Page<ReportWithdrawVO>> getPageAudit(ReportWithdrawVO reportWithdrawVO) {
reportWithdrawVO.setStatus(ReportWithdrawEnum.AUDIT);
// 匹配批准人员
// reportWithdrawVO.setApproverId(getAccount().getUserId());
return getPageVO(reportWithdrawVO);
}
@ApiOperation("分页列表查询化验审批列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/page_approve")
public RestResult<Page<ReportWithdrawVO>> getPageApprove(ReportWithdrawVO reportWithdrawVO) {
reportWithdrawVO.setStatus(ReportWithdrawEnum.APPROVE);
// 匹配审批人员
// reportWithdrawVO.setAssayerId(getAccount().getUserId());
return getPageVO(reportWithdrawVO);
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<ReportWithdrawApplication> get(@PathVariable("id") Long id) {
return success(reportWithdrawApplicationService.getById(id));
}
@ApiOperation("根据 id 修改信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, ReportWithdrawApplication reportWithdrawApplication) {
reportWithdrawApplication.setId(id);
return success(reportWithdrawApplicationService.updateById(reportWithdrawApplication));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(ReportWithdrawApplication reportWithdrawApplication) {
return success(reportWithdrawApplicationService.save(reportWithdrawApplication));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(reportWithdrawApplicationService.removeByIds(ids));
}
}
......@@ -7,6 +7,7 @@ import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import java.util.List;
import java.util.Map;
/**
* <p>
......@@ -19,4 +20,6 @@ import java.util.List;
public interface OriginalRecordMapper extends BatchMapper<OriginalRecord> {
List<OriginalRecordVO> selectPageVO(RowBounds rowBounds, @Param("vo") OriginalRecordVO vo);
Map<String,String> selectOriginalFileKey(@Param("entrustId") Long entrustId, @Param("recordId") Long recordId);
}
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.baomidou.mybatisplus.annotations.SqlParser;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.entity.ReportWithdrawApplication;
import com.patzn.cloud.service.hmhj.vo.ReportWithdrawVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import java.util.List;
/**
* <p>
* Mapper 接口
* </p>
*
* @author meazty
* @since 2022-01-11
*/
public interface ReportWithdrawApplicationMapper extends BatchMapper<ReportWithdrawApplication> {
@SqlParser(filter = true)
List<ReportWithdrawVO> selectPageVO(RowBounds rowBounds, @Param("vo") ReportWithdrawVO reportWithdrawVO);
}
......@@ -3,6 +3,7 @@ package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.dto.ReportWithdrawDTO;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustReport;
import com.patzn.cloud.service.hmhj.enums.EntrustReportStatusEnum;
......@@ -71,4 +72,8 @@ public interface IEntrustReportService extends IBaseService<EntrustReport> {
boolean submitFromInspectToJudge(Long[] ids, Account account);
boolean backFromInspectToSend(Long[] ids, String reason, Account account);
Boolean launchWithdrawApplication(ReportWithdrawDTO reportWithdrawDTO,Account account);
Boolean auditReportWithdraw(ReportWithdrawDTO reportWithdrawDTO, int i, Account account);
}
......@@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.dto.SamplePrepareDTO;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.entity.EntrustSamplePrepare;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSamplePrepareStatusEnum;
import java.util.List;
......@@ -32,4 +29,5 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample
boolean removeBySampleIds(Long[] sampleIds);
boolean receiveSampleBatch(Long[] ids, Account account);
}
......@@ -127,6 +127,8 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
EntrustSample getByContractId(Long contractId);
boolean updateAllColumnBatch(List<EntrustSample> sampleList);
boolean saveOrUpdateInfoBatch(List<EntrustSample> sampleList);
Page<EntrustSampleIndexVO> getPageSampleIndex(Page<EntrustSampleIndexVO> page, EntrustSampleIndexVO sampleIndexVO);
......
......@@ -8,6 +8,7 @@ import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.service.hmhj.vo.OriginalRecordVO;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.List;
......@@ -26,4 +27,6 @@ public interface IOriginalRecordService extends IBaseService<OriginalRecord> {
OriginalRecord uploadExpGenerate(Long[] ids, OriginalTemplate template, Entrust entrust, Account account, String remark, File file);
Page<OriginalRecordVO> pageVO(Page<OriginalRecordVO> page, OriginalRecordVO originalRecord);
void download(Long entrustId,Long id, HttpServletResponse response);
}
package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.hmhj.entity.ReportWithdrawApplication;
import com.patzn.cloud.service.hmhj.vo.ReportWithdrawVO;
import java.util.List;
/**
* 服务类
*
* @author meazty
* @since 2022-01-11
*/
public interface IReportWithdrawApplicationService extends IBaseService<ReportWithdrawApplication> {
Page<ReportWithdrawApplication> page(Page<ReportWithdrawApplication> page, ReportWithdrawApplication reportWithdrawApplication);
boolean removeByIds(List<Long> ids);
Page<ReportWithdrawVO> pageVO(Page<ReportWithdrawVO> page, ReportWithdrawVO reportWithdrawVO);
}
......@@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.IdWorker;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper;
......@@ -16,13 +17,16 @@ import com.patzn.cloud.commons.toolkit.FileUtils;
import com.patzn.cloud.feign.base.client.SysUserClient;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.base.entity.SysUser;
import com.patzn.cloud.service.base.vo.SysUserOrgVO;
import com.patzn.cloud.service.hmhj.dto.ReportWithdrawDTO;
import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.vo.EntrustReportVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.common.StringHandleUtils;
import com.patzn.cloud.service.lims.common.service.impl.LmsMsgService;
import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.hmhj.common.LabreOfficeUtil;
......@@ -79,6 +83,14 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
private Executor executor1;
@Autowired
private SysUserClient sysUserClient;
@Autowired
private LmsMsgService lmsMsgService;
@Autowired
private IOriginalRecordService originalRecordService;
@Autowired
private UserInfoServiceImpl userInfoService;
@Autowired
private IReportWithdrawApplicationService reportWithdrawApplicationService;
@Value("${libreOffice.url}")
private String libreOfficeUrl;
......@@ -392,6 +404,165 @@ public class EntrustReportServiceImpl extends BaseServiceImpl<EntrustReportMappe
return doExecuteBack(ids, EntrustFlowEnum.QUALITY_INSPECT, EntrustFlowEnum.REPORT_SEND, reason, account);
}
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean launchWithdrawApplication(ReportWithdrawDTO withdrawDTO, Account account) {
RestAssert.fail(StringUtils.isBlank(withdrawDTO.getReason()), "撤回原因不能为空!");
Long entrustId = withdrawDTO.getEntrustId();
RestAssert.fail(null == entrustId, "要撤回的报告委托ID不能为空!");
ReportWithdrawApplication withdraw = withdrawDTO.convert(ReportWithdrawApplication.class);
// 查询委托信息
Entrust entrust = entrustService.getById(entrustId);
// 委托期数
String period = entrust.getPeriod();
if (StringUtils.isBlank(period)) {
period = userInfoService.getUserPeriod(entrust.getUid());
RestAssert.fail(StringUtils.isBlank(period), "委托期数为空!");
entrust.setPeriod(period);
entrustService.updateById(entrust);
}
// 获取报告IDS(基本上只有一条,若多条,审批人取第一条数据)
List<Long> reportIds = baseMapper.selectObjs(Condition.create().setSqlSelect("id").eq("entrust_id", entrustId));
RestAssert.fail(CollectionUtils.isEmpty(reportIds), "要撤回的委托下没有报告!");
List<EntrustReport> reports = getBatchIds(reportIds);
RestAssert.fail(CollectionUtils.isEmpty(reports), "要撤回的委托下没有报告!");
reports.forEach(t -> {
RestAssert.fail((int) t.getStatus().getValue() < 30, "只能撤回报告发放后的数据!");
});
EntrustReport report = reports.get(0);
// 对撤回中流程人员进行赋值
withdraw.setApplicant(account.getUserName()).setApplicantId(account.getUserId()).setApplyTime(new Date());
withdraw.setReviewer(report.getReportChecker()).setReviewerId(report.getReportCheckerId());
withdraw.setApprover(report.getReportIssuer()).setReviewerId(report.getReportIssuerId());
withdraw.setReportId(StringUtils.join(reportIds, ",")).setCompanyId(account.getCompanyId());
withdraw.setUid(account.getUserId()).setCtime(new Date());
// 获取化验主管,先获取拥有此角色的用户,再根据委托期数筛选用户
List<SysUser> users = sysUserClient.getListByRoleName("化验主管").serviceData();
RestAssert.fail(CollectionUtils.isEmpty(users), "角色【化验主管】为空!");
Map<Long, SysUser> userMap = Maps.newHashMapWithExpectedSize(users.size());
List<Long> userIds = new ArrayList<>();
for (SysUser user : users) {
userMap.put(user.getId(), user);
userIds.add(user.getId());
}
// 获取所有化验主管的角色信息
List<SysUserOrgVO> list = sysUserClient.getUserOrg(userIds).serviceData();
String finalPeriod = period;
Optional<SysUserOrgVO> optional = list.stream().filter(
t -> StringUtils.isNotBlank(t.getOrgName()) && t.getOrgName().contains(finalPeriod)
).findFirst();
RestAssert.fail(!optional.isPresent(), "没有查询到匹配期数的主管人员记录!");
SysUserOrgVO userOrgVO = optional.get();
// 查询主管人员赋值
withdraw.setAssayer(userMap.get(userOrgVO.getUserId()).getRealname()).setAssayerId(userOrgVO.getUserId());
withdraw.setStatus(ReportWithdrawEnum.CHECK).setProgress(ReportWithdrawEnum.CHECK.getDisplay()).setId(IdWorker.getId());
// 保存记录,向审核人推送消息
reportWithdrawApplicationService.save(withdraw);
lmsMsgService.sendMsg("/report_manage/report_make", "委托报告撤回申请,请及时处理", "新的报告撤回申请!", account, Arrays.asList(withdraw.getReviewerId()));
return true;
}
/**
* 审批成功后,更新委托和报告信息
*
* @param withdraw
* @param account
* @param reportId
* @param entrustId
*/
private void updateForWithdrawEntrustReport(ReportWithdrawDTO withdraw, Account account, Entrust entrust) {
ReportWithdrawApplication withdrawApp = reportWithdrawApplicationService.getById(withdraw.getId());
// 委托期数
String period = entrust.getPeriod();
List<EntrustReport> reports = list(Condition.create().eq("entrust_id", entrust.getId()));
List<Long> reportIds = new ArrayList<>();
// 是否复检,若复检,委托需要重新发起原始记录
boolean isRecheck = Objects.equals(1, withdrawApp.getRecheck());
// 更新委托信息
entrust.setStatus(EntrustStatusEnum.TEST).setProgress(EntrustStatusEnum.TEST)
.setFlowStatus(isRecheck ? EntrustFlowEnum.TEST.getName() : EntrustFlowEnum.REPORT_MAKE.getName());
entrustService.updateById(entrust);
// 批量更新样品信息
List<EntrustSample> sampleList = entrustSampleService.getByEntrustId(entrust.getId());
sampleList.forEach(s -> {
s.setConclusion(null).setSampleGrading(null).setOkJudge(null).setJudger(null).setJudgeProgress(null)
.setJudgeCheckerId(null).setJudgeChecker(null).setJudgeTime(null).setJudgeCheckTime(null)
.setJudgeStatus(null).setLid(account.getUserId()).setLtime(new Date())
.setStatus(isRecheck ? EntrustSampleStatusEnum.TEST : EntrustSampleStatusEnum.REPORT_MAKE)
.setProgress(isRecheck ? EntrustSampleStatusEnum.TEST : EntrustSampleStatusEnum.REPORT_MAKE);
});
entrustSampleService.updateAllColumnBatch(sampleList);
// 若为复检,更新检测项目
if (isRecheck) {
EntrustSampleItem item = new EntrustSampleItem();
item.setStatus(EntrustSampleItemStatusEnum.TEST).setProgress(EntrustSampleItemStatusEnum.TEST);
entrustSampleItemService.update(item, Condition.create().eq("entrust_id", entrust.getId()));
// 不对原始记录进行删除,只做修改;
// originalRecordService.remove(Condition.create().eq("entrust_id", entrust.getId()));
}
String backNode = isRecheck ? EntrustFlowEnum.TEST.getDisplay() : EntrustFlowEnum.REPORT_MAKE.getDisplay();
// 每个报告所处的位置可能不一样
for (EntrustReport r : reports) {
reportIds.add(r.getId());
entrustRecordService.record(Collections.singletonList(r.getEntrustId()), r.getProgress().getDisplay(),
backNode, 0, account, String.format("委托从%s撤回到%s", r.getProgress().getDisplay(), backNode));
}
// 删除报告
removeByIds(reportIds);
}
@Override
public Boolean auditReportWithdraw(ReportWithdrawDTO withdraw, int flowNode, Account account) {
RestAssert.fail(null == withdraw.getId(), "撤回信息不能为空");
ReportWithdrawApplication withdrawApp = reportWithdrawApplicationService.getById(withdraw.getId());
Long entrustId = withdrawApp.getEntrustId();
RestAssert.fail(null == entrustId, "要撤回的委托ID为空!");
boolean isPass = null != withdraw.getResult() && withdraw.getResult().booleanValue();
List<Long> reportIds = baseMapper.selectObjs(Condition.create().setSqlSelect("id").eq("entrust_id", entrustId));
// 下一节点状态
ReportWithdrawEnum nextStatus = null;
String content = "", title = "";
List<Long> toUserIds = new ArrayList<>();
if (1 == flowNode) {
nextStatus = isPass ? ReportWithdrawEnum.AUDIT : ReportWithdrawEnum.CHECK_BACK;
withdraw.setReviewTime(new Date());
content = "委托报告撤回批准,请及时处理";
title = "新的报告撤回批准申请!";
toUserIds.add(withdraw.getApproverId());
} else if (2 == flowNode) {
nextStatus = isPass ? ReportWithdrawEnum.APPROVE : ReportWithdrawEnum.AUDIT_BACK;
withdraw.setApproveTime(new Date());
content = "委托报告撤回审批,请及时处理";
title = "新的报告撤回审批申请!";
toUserIds.add(withdraw.getAssayerId());
} else if (3 == flowNode) {
nextStatus = isPass ? ReportWithdrawEnum.FINISH : ReportWithdrawEnum.APPROVE_BACK;
withdraw.setAssayTime(new Date());
content = "委托报告撤回审批完成,请注意查收";
title = "新的报告撤回申请信息!";
toUserIds.add(withdraw.getApplicantId());
Entrust entrust = entrustService.getById(entrustId);
updateForWithdrawEntrustReport(withdraw, account, entrust);
}
//
withdraw.setStatus(nextStatus).setProgress(nextStatus.getDisplay());
reportWithdrawApplicationService.updateById(withdraw);
lmsMsgService.sendMsg("/report_manage/report_make", content, title, account, toUserIds);
return true;
}
private void deleteReportPdf(Long[] ids) {
List<EntrustReport> reportList = list(Condition.create().in("id", ids).isNotNull("object_key"));
if (CollectionUtils.isEmpty(reportList)) {
......
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.ArrayUtils;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.StringUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.hmhj.dto.SamplePrepareDTO;
import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.enums.*;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleBackupVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSamplePrepareMapper;
import com.patzn.cloud.service.lims.hmhj.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
......@@ -279,6 +276,54 @@ public class EntrustSamplePrepareServiceImpl extends BaseServiceImpl<EntrustSamp
return true;
}
@Transactional(rollbackFor = Exception.class)
@Override
public boolean receiveSampleBatch(Long[] ids, Account account) {
RestAssert.fail(ArrayUtils.isEmpty(ids), "请选择要接收的委托");
List<EntrustSample> sampleList = entrustSampleService.list(Condition.create().in("entrust_id", ids));
RestAssert.fail(CollectionUtils.isEmpty(sampleList), "样品信息为空");
List<Long> sampleIds = sampleList.stream().map(EntrustSample::getId).collect(Collectors.toList());
List<EntrustSamplePrepare> prepareList = super.list(Condition.create().in("entrust_sample_id", sampleIds));
RestAssert.fail(CollectionUtils.isEmpty(prepareList), "检测样品为空");
for (EntrustSamplePrepare prepare : prepareList) {
if (null != prepare.getEntrustSampleId() && null != prepare.getGroupId()) {
EntrustSampleItem item = new EntrustSampleItem();
item.setStatus(EntrustSampleItemStatusEnum.ALLOT);
item.setProgress(EntrustSampleItemStatusEnum.ALLOT);
entrustSampleItemService.update(item, Condition.create().eq("entrust_sample_id", prepare.getEntrustSampleId()).eq("group_id", prepare.getGroupId()));
}
}
EntrustSamplePrepare prepare = new EntrustSamplePrepare();
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
prepare.setStatus(EntrustSamplePrepareStatusEnum.TEST);
super.update(prepare, Condition.create().in("entrust_sample_id", sampleIds));
// 修改样品信息
EntrustSample sample = new EntrustSample();
sample.setStatus(EntrustSampleStatusEnum.TEST);
sample.setProgress(EntrustSampleStatusEnum.TEST);
entrustSampleService.update(sample, Condition.create().in("id", sampleIds));
// 修改委托信息
List<Entrust> entrustList = entrustService.getBatchIds(Arrays.asList(ids));
for (Entrust entrust : entrustList) {
entrust.setTestTimeS(new Date());
if (entrustService.isCanIntoNextNode(entrust)) {
entrustService.submitToNextNode(entrust, account);
} else {
entrust.setFlowStatus(EntrustFlowEnum.TEST.getName());
entrustService.updateById(entrust);
// 添加委托操作记录
entrustRecordService.record(new Long[]{entrust.getId()}, "样品接收", "任务分配", 0, account, "提交至任务分配");
}
}
return true;
}
@Override
public boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum) {
List<EntrustSample> sampleList = entrustSampleService.getBatchIds(Arrays.asList(sampleIds));
......
......@@ -1977,10 +1977,17 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
}
@Override
public boolean updateAllColumnBatch(List<EntrustSample> sampleList) {
if (CollectionUtils.isEmpty(sampleList)) {
return false;
}
return baseMapper.updateBatchByData(sampleList);
}
@Override
public boolean saveOrUpdateInfoBatch(List<EntrustSample> sampleList) {
RestAssert.fail(CollectionUtils.isEmpty(sampleList), "样品信息为空");
return false;
return saveOrUpdateBatch(sampleList);
}
@Override
......@@ -2204,4 +2211,5 @@ public class EntrustSampleServiceImpl extends BaseServiceImpl<EntrustSampleMappe
FileUtils.deleteFiles(file);
}
}
}
\ No newline at end of file
......@@ -144,7 +144,9 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
entrust.setCode(entrustCode);
}
// 根据当前用户,设置委托期数
if (StringUtils.isBlank(entrust.getPeriod())) {
entrust.setPeriod(userInfoService.getUserPeriod(LoginHelper.getAccount()));
}
return save(entrust);
}
......@@ -1607,9 +1609,83 @@ public class EntrustServiceImpl extends BaseServiceImpl<EntrustMapper, Entrust>
return page.setRecords(baseMapper.selectVOList(page, entrust));
}
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean confirmRecheck(EntrustDTO entrustDTO, Account account) {
return null;
List<EntrustSampleDTO> sampleDTOList = entrustDTO.getSampleDTOList();
RestAssert.fail(CollectionUtils.isEmpty(sampleDTOList), "样品信息不能为空!");
EntrustSampleDTO sampleDTO = sampleDTOList.get(0);
String sampleName = sampleDTO.getName(), recheckCode = sampleDTO.getRecheckCode();
RestAssert.fail(StringUtils.isBlank(sampleName), "样品名称不能为空!");
RestAssert.fail(StringUtils.isBlank(recheckCode), "样品复检编号不能为空!");
List<EntrustSample> oldSampleList = entrustSampleService.list(Condition.create().eq("code", recheckCode));
RestAssert.fail(CollectionUtils.isEmpty(oldSampleList), "复检对应样品不存在!");
Entrust oldEntrust = getById(oldSampleList.get(0).getEntrustId());
RestAssert.fail(null == oldEntrust, "复检对应委托不存在!");
List<EntrustSampleItem> oldSampleItems = entrustSampleItemService.getListByEntrustId(oldEntrust.getId());
RestAssert.fail(CollectionUtils.isEmpty(oldSampleItems), "复检对应检测项目不存在!");
EntrustSampleItem oldItem = oldSampleItems.get(0);
BigDecimal totalFee = BigDecimal.ZERO;
Entrust entrust = new Entrust();
entrust.setSampleName(sampleName).setStatus(EntrustStatusEnum.DRAFT).setProgress(EntrustStatusEnum.DRAFT).setRecheck(1)
.setType(1).setPeriod(oldEntrust.getPeriod()).setPriority(oldEntrust.getPriority()).setEntrustTime(new Date())
.setFlowStatus(EntrustFlowEnum.DRAFT.getName()).setStatusPath(oldEntrust.getStatusPath()).setId(IdWorker.getId());
// 委托ID
Long entrustId = entrust.getId();
int incNum = 10;
List<EntrustSample> sampleList = new ArrayList<>();
List<EntrustSampleItem> itemList = new ArrayList<>();
for (EntrustSampleDTO dto : sampleDTOList) {
EntrustSample sample = dto.convert(EntrustSample.class);
sample.setEntrustId(entrustId).setFirstCode(null).setSecondCode(null).setThirdCode(null)
.setStatus(EntrustSampleStatusEnum.DRAFT).setProgress(EntrustSampleStatusEnum.DRAFT)
.setSampleGrading(null).setLtime(new Date()).setLid(account.getUserId()).setCtime(new Date())
.setJudgeStatus(0).setJudgeTime(null).setJudgeCheckTime(null).setJudgeCheckerId(null).setJudger(null)
.setJudgeProgress(null).setOkJudge(null).setConclusion(null);
initSampleCode(entrust, sample);
// 重置三级编码
sample.setThirdCode(getSampleThirdCode(sample));
sample.setOrderBy(incNum).setId(IdWorker.getId());
sampleList.add(sample);
incNum += 10;
List<EntrustSampleItem> sampleItems = dto.getItemList();
if (CollectionUtils.isEmpty(sampleItems)) {
continue;
}
for (EntrustSampleItem sampleItem : sampleItems) {
if (null != sampleItem.getPrice()) {
totalFee = totalFee.add(sampleItem.getPrice());
}
sampleItem.setEntrustId(entrustId).setEntrustSampleId(sample.getId()).setGroupId(oldItem.getGroupId())
.setGroupName(oldItem.getGroupName()).setTester(null).setTesterId(null).setTestTime(null)
.setStatus(EntrustSampleItemStatusEnum.DRAFT).setProgress(EntrustSampleItemStatusEnum.DRAFT)
.setRecheckId(sampleItem.getId()).setAuditor(null).setAuditorId(null).setAuditor(null)
.setAuditTime(null).setUid(account.getUserId()).setCtime(new Date()).setLid(null).setLtime(null)
.setId(IdWorker.getId());
}
itemList.addAll(sampleItems);
}
// 计算费用
entrust.setTotalFee(totalFee);
saveEntrust(entrust);
if (CollectionUtils.isNotEmpty(sampleList)) {
entrustSampleService.saveBatch(sampleList);
}
if (CollectionUtils.isNotEmpty(itemList)) {
entrustSampleItemService.saveBatch(itemList);
}
return true;
}
}
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.toolkit.MapUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.hmhj.entity.*;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.ItemRelOriginalRecord;
import com.patzn.cloud.service.hmhj.entity.OriginalRecord;
import com.patzn.cloud.service.hmhj.entity.OriginalTemplate;
import com.patzn.cloud.service.hmhj.vo.OriginalRecordVO;
import com.patzn.cloud.service.lims.hmhj.mapper.OriginalRecordMapper;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemService;
import com.patzn.cloud.service.lims.hmhj.service.IItemRelOriginalRecordService;
import com.patzn.cloud.service.lims.hmhj.service.IOriginalRecordService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 土工原始记录表 服务实现类
......@@ -49,13 +55,24 @@ public class OriginalRecordServiceImpl extends BaseServiceImpl<OriginalRecordMap
}
@Override
public Page<OriginalRecordVO> pageVO(Page<OriginalRecordVO> page, OriginalRecordVO vo){
return page.setRecords(baseMapper.selectPageVO(page,vo));
public Page<OriginalRecordVO> pageVO(Page<OriginalRecordVO> page, OriginalRecordVO vo) {
return page.setRecords(baseMapper.selectPageVO(page, vo));
}
@Override
public void download(Long entrustId, Long id, HttpServletResponse response) {
RestAssert.fail(null == entrustId, "委托ID为空!");
RestAssert.fail(null == id, "原始记录ID为空!");
Map<String, String> result = baseMapper.selectOriginalFileKey(entrustId, id);
RestAssert.fail(MapUtils.isEmpty(result) || StringUtils.isBlank(result.get("objectKey")), "文件信息为空!");
String fileName = result.get("fileName");
String objectKey = result.get("objectKey");
ossClient.download(objectKey, fileName, response);
}
@Override
public boolean removeByIds(List<Long> ids) {
itemRelOriginalRecordService.remove(Condition.create().in("record_id",ids));
itemRelOriginalRecordService.remove(Condition.create().in("record_id", ids));
return baseMapper.deleteBatchIds(ids) > 0;
}
......@@ -77,15 +94,15 @@ public class OriginalRecordServiceImpl extends BaseServiceImpl<OriginalRecordMap
return null;
}
soilOriginalRecord.setObjectKey(obsFileResult.getObjectKey());
if (save(soilOriginalRecord)){
if (save(soilOriginalRecord)) {
List<ItemRelOriginalRecord> saveList = new ArrayList<>();
for (Long id:ids) {
for (Long id : ids) {
ItemRelOriginalRecord relOriginalRecord = new ItemRelOriginalRecord();
relOriginalRecord.setItemId(id);
relOriginalRecord.setRecordId(soilOriginalRecord.getId());
saveList.add(relOriginalRecord);
}
if (CollectionUtils.isNotEmpty(saveList)){
if (CollectionUtils.isNotEmpty(saveList)) {
itemRelOriginalRecordService.saveBatch(saveList);
}
}
......
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.hmhj.entity.ReportWithdrawApplication;
import com.patzn.cloud.service.hmhj.vo.ReportWithdrawVO;
import com.patzn.cloud.service.lims.hmhj.mapper.ReportWithdrawApplicationMapper;
import com.patzn.cloud.service.lims.hmhj.service.IReportWithdrawApplicationService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 服务实现类
*
* @author meazty
* @since 2022-01-11
*/
@Service
public class ReportWithdrawApplicationServiceImpl extends BaseServiceImpl<ReportWithdrawApplicationMapper, ReportWithdrawApplication> implements IReportWithdrawApplicationService {
@Override
public Page<ReportWithdrawApplication> page(Page<ReportWithdrawApplication> page, ReportWithdrawApplication reportWithdrawApplication) {
Wrapper wrapper = new EntityWrapper<>(reportWithdrawApplication);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
@Override
public Page<ReportWithdrawVO> pageVO(Page<ReportWithdrawVO> page, ReportWithdrawVO reportWithdrawVO) {
Account account = LoginHelper.getAccount();
reportWithdrawVO.setCompanyId(account.getCompanyId());
return page.setRecords(baseMapper.selectPageVO(page,reportWithdrawVO));
}
}
......@@ -203,6 +203,12 @@ public class UserInfoServiceImpl {
return new ArrayList<>(nameSet);
}
public String getUserPeriod(Long userId) {
if(null == userId){
return null;
}
return getUserPeriod(new Account().setUserId(userId));
}
public String getUserPeriod(Account account) {
List<SysOrg> orgList = sysOrgClient.getListRecursiveByUserId(account.getUserId()).getData();
if (CollectionUtils.isEmpty(orgList)) {
......
......@@ -47,7 +47,7 @@
)
</if>
<if test="null == vo.isSelf and null != vo.uid">
AND e.uid = #{vo.uid}
AND (e.uid = #{vo.uid} or coalesce(e.recheck,0) = 1)
</if>
<if test="null != vo.entrustTimeS">
......@@ -154,17 +154,15 @@
<if test="null != vo.notSampleStatus">
and s.status != #{vo.notSampleStatus}
</if>
<if test="null != vo.itemStatus">
<if test="null != vo.itemStatus || null != vo.testerId">
AND exists (
select 1 from entrust_sample_item i where i.deleted = 0
<if test="null != vo.itemStatus">
and i.entrust_sample_id = s.id and i.status = #{vo.itemStatus}
)
</if>
<if test="null!=vo.testerId">
and exists (
select 1 from entrust_sample_item i where i.deleted = 0
<if test="null != vo.testerId">
and i.entrust_sample_id = s.id and i.tester_id = #{vo.testerId}
</if>
)
</if>
GROUP BY s.company_id,s.entrust_id
......@@ -188,27 +186,23 @@
)
</if>
<if test="null != vo.reportStatus">
<if test="null != vo.reportStatus || null != vo.reportNotStatus || null != vo.reportStatusList">
AND exists (
select 1 from entrust_report r where r.deleted = 0 and r.entrust_id = e.id
<if test="null != vo.reportStatus">
and r.status = #{vo.reportStatus}
)
</if>
<if test="null != vo.reportNotStatus">
AND exists (
select 1 from entrust_report r where r.deleted = 0 and r.entrust_id = e.id
and r.status != #{vo.reportNotStatus}
)
</if>
<if test="null != vo.reportStatusList">
AND exists (
select 1 from entrust_report r where r.deleted = 0 and r.entrust_id = e.id
and r.status IN
<foreach collection="vo.reportStatusList" index="index" item="reportStatus" open="(" separator=","
close=")">
#{reportStatus}
</foreach>
</if>
)
</if>
......@@ -256,7 +250,8 @@
</if>
<if test="null != vo.itemStatusEnumList">
and esi.status IN
<foreach collection="vo.itemStatusEnumList" index="index" item="status" open="(" separator="," close=")">
<foreach collection="vo.itemStatusEnumList" index="index" item="status" open="(" separator=","
close=")">
#{status}
</foreach>
</if>
......@@ -287,47 +282,46 @@
<update id="updateEntrustById">
update entrust
set
client = #{vo.client}
,ltime = #{vo.ltime}
,lid = #{vo.lid}
,client_address = #{vo.clientAddress}
,client_tel = #{vo.clientTel}
,assignor = #{vo.assignor}
,assignor_id = #{vo.assignorId}
,entrust_time = #{vo.entrustTime}
,report_get_way = #{vo.reportGetWay}
,sample_handle_advise = #{vo.sampleHandleAdvise}
,surplus_sample_limit = #{vo.surplusSampleLimit}
,test_side = #{vo.testSide}
,test_address = #{vo.testAddress}
,test_contact = #{vo.testContact}
,test_tel = #{vo.testTel}
,test_instructions = #{vo.testInstructions}
,test_ask = #{vo.testAsk}
,receiver = #{vo.receiver}
,receiver_id = #{vo.receiverId}
,receive_time = #{vo.receiveTime}
,status = #{vo.status}
,progress = #{vo.progress}
,special_ask = #{vo.specialAsk}
,type = #{vo.type}
,status_path = #{vo.statusPath}
,flow_status = #{vo.flowStatus}
,expect_send_time = #{vo.expectSendTime}
,live_witness = #{vo.liveWitness}
,sample_size = #{vo.sampleSize}
,priority = #{vo.priority}
,test_time_s = #{vo.testTimeS}
,test_time_e = #{vo.testTimeE}
,proposer_id = #{vo.proposerId}
,approver_id = #{vo.approverId}
,proposer = #{vo.proposer}
,approver = #{vo.approver}
,total_fee = #{vo.totalFee}
,approve_time = #{vo.approveTime}
,approve_status = #{vo.approveStatus}
,print_status = #{vo.printStatus}
set client = #{vo.client}
, ltime = #{vo.ltime}
, lid = #{vo.lid}
, client_address = #{vo.clientAddress}
, client_tel = #{vo.clientTel}
, assignor = #{vo.assignor}
, assignor_id = #{vo.assignorId}
, entrust_time = #{vo.entrustTime}
, report_get_way = #{vo.reportGetWay}
, sample_handle_advise = #{vo.sampleHandleAdvise}
, surplus_sample_limit = #{vo.surplusSampleLimit}
, test_side = #{vo.testSide}
, test_address = #{vo.testAddress}
, test_contact = #{vo.testContact}
, test_tel = #{vo.testTel}
, test_instructions = #{vo.testInstructions}
, test_ask = #{vo.testAsk}
, receiver = #{vo.receiver}
, receiver_id = #{vo.receiverId}
, receive_time = #{vo.receiveTime}
, status = #{vo.status}
, progress = #{vo.progress}
, special_ask = #{vo.specialAsk}
, type = #{vo.type}
, status_path = #{vo.statusPath}
, flow_status = #{vo.flowStatus}
, expect_send_time = #{vo.expectSendTime}
, live_witness = #{vo.liveWitness}
, sample_size = #{vo.sampleSize}
, priority = #{vo.priority}
, test_time_s = #{vo.testTimeS}
, test_time_e = #{vo.testTimeE}
, proposer_id = #{vo.proposerId}
, approver_id = #{vo.approverId}
, proposer = #{vo.proposer}
, approver = #{vo.approver}
, total_fee = #{vo.totalFee}
, approve_time = #{vo.approveTime}
, approve_status = #{vo.approveStatus}
, print_status = #{vo.printStatus}
where id = #{vo.id}
</update>
......
......@@ -46,11 +46,23 @@
<select id="selectIndexWithItem" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemIndexVO">
select
i.id "itemId",i.name "itemName",i.standard,
ii.*
i.id "itemId",i.name "itemName",i.standard,q.judge_standard,
ii.id,ii.name,ii.main_type,ii.small_type,ii.unit,ii.status,ii.progress,ii.company_id,ii.uid,ii.ctime,ii.lid,ii.ltime,ii.deleted,ii.entrust_sample_item_id,
x.recheck_id, (case when x.test_value is not null then ii.test_value else x.test_value end) "test_value"
from entrust_sample_item_index ii
join entrust_sample_item i on i.id = ii.entrust_sample_item_id
where i.deleted = 0 and ii.deleted = 0
JOIN entrust_sample_item i ON i.ID = ii.entrust_sample_item_id AND i.deleted = 0
LEFT JOIN qualification q on q.name = i.name and q.deleted = 0
LEFT JOIN (
SELECT
x.recheck_id,
x.test_value
FROM
entrust_sample_item_index y
JOIN entrust_sample_item x ON x.ID = y.entrust_sample_item_id AND x.deleted = 0
WHERE
y.deleted = 0 and x.recheck_id IS NOT NULL AND x.test_value IS NOT NULL
) x ON x.recheck_id = i.ID
WHERE ii.deleted = 0
<if test="null != vo.sampleId">
and i.entrust_sample_id = #{vo.sampleId}
</if>
......
......@@ -25,5 +25,23 @@
</if>
order by r.id desc
</select>
<!--查询原始记录对应的原始文件Key-->
<select id="selectOriginalFileKey" resultType="java.util.Map">
select
distinct f.origin_file_name "fileName", f.origin_object_key "objectKey"
from lms_original_record_file f
join lms_original_record_info oi on f.id = oi.file_id and oi.deleted = 0
join entrust e on e.code = oi.contract_code and e.deleted = 0
where e.id = #{entrustId}
and exists (
select
1
from entrust_sample_item i
join item_rel_original_record ir on i.id = ir.item_id and ir.deleted = 0
join qualification q on q.name = i.name and q.deleted = 0
where i.entrust_id = e.id and oi.item_name = q.instrument_item_name
and ir.record_id = #{recordId}
) limit 1
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.patzn.cloud.service.lims.hmhj.mapper.ReportWithdrawApplicationMapper">
<select id="selectPageVO" resultType="com.patzn.cloud.service.hmhj.vo.ReportWithdrawVO">
select
e.code "entrust_code",e.client,e.sample_name,e.entrust_time,e.assignor_id,e.assignor,
a.*
from report_withdraw_application a
join entrust e on e.id = a.entrust_id and e.deleted = 0
where a.deleted = 0 and a.company_id = #{vo.companyId}
<if test="null != vo.entrustCode">
and e.code like concat('%',#{vo.entrustCode},'%')
</if>
<if test="null != vo.client">
and e.client like concat('%',#{vo.client},'%')
</if>
<if test="null != vo.entrustId">
and a.entrust_id = #{vo.entrustId}
</if>
<if test="null != vo.sampleName">
and e.sample_name like concat('%',#{vo.sampleName},'%')
</if>
<if test="null != vo.applicantId">
and a.applicant_id = #{vo.applicantId}
</if>
<if test="null != vo.reviewerId">
and a.reviewer_id = #{vo.reviewerId}
</if>
<if test="null != vo.approverId">
and a.approver_id = #{vo.approverId}
</if>
<if test="null != vo.assayerId">
and a.assayer_id = #{vo.assayerId}
</if>
<if test="null != vo.reportType">
and a.report_type = #{vo.reportType}
</if>
<if test="null != vo.recheck">
and a.recheck = #{vo.recheck}
</if>
<if test="null != vo.status">
and a.status = #{vo.status}
</if>
</select>
</mapper>
......@@ -424,7 +424,7 @@
SUM ( i.fe_0080 ) "fe_0080",
SUM ( CASE WHEN s.sample_grading IN ( 'Al99.85', 'Al99.70DT', 'Al99.80', 'Al99.70' ) THEN 1 ELSE 0 END ) "over_70",
SUM ( CASE WHEN s.sample_grading IN ( 'Al99.85', 'Al99.70DT', 'Al99.80', 'Al99.70' ) AND i.fe_01 > 0 THEN 1 ELSE 0 END ) "low_fe",
SUM ( CASE WHEN s.sample_grading IN ( 'Al99.85', 'Al99.70DT', 'Al99.80', 'Al99.70' ) AND i.ni_00042 > 0 THEN 1 ELSE 0 END ) "low_ni"
SUM ( CASE WHEN s.sample_grading IN ( 'Al99.85', 'Al99.70DT', 'Al99.80', 'Al99.70' ) AND i.fe_0080 > 0 AND i.ni_00042 > 0 THEN 1 ELSE 0 END ) "low_ni"
FROM
entrust_sample s
JOIN electrolyzer e ON e.ID = s.electrolyzer_id
......
......@@ -18,7 +18,7 @@ public class LimsCodeGenerator {
new PostgresqlGenerator().setDataSourceConfig(new DataSourceConfig()
.setDbType(DbType.POSTGRE_SQL)
.setDriverName("org.postgresql.Driver")
.setUrl("jdbc:postgresql://meazty.fun:5433/dev_lims_hmhj")
.setUrl("jdbc:postgresql://localhost:5432/dev_lims_hmhj")
.setUsername("postgres")
.setPassword("post123")
).execute("lims");
......
/** created by meazty on 2022/1/11 15:18 **/
/** created by meazty on 2022/1/11 15:18 **/
-- 委托 --
ALTER TABLE "public"."entrust"
ADD COLUMN "recheck" int2 default 0;
COMMENT ON COLUMN "public"."entrust"."recheck" IS '是否复检委托【0:否,1:是】';
-- 新增表 报告申请撤回表 --
CREATE TABLE "public"."report_withdraw_application"
(
"id" int8 NOT NULL,
"entrust_id" int8,
"reason" varchar(255) COLLATE "pg_catalog"."default",
"report_type" int2,
"recheck" int2,
"applicant" varchar(255) COLLATE "pg_catalog"."default",
"applicant_id" int8,
"apply_time" timestamp(6),
"remark" varchar(255) COLLATE "pg_catalog"."default",
"reviewer" varchar(64) COLLATE "pg_catalog"."default",
"reviewer_id" int8,
"review_opinion" varchar(255) COLLATE "pg_catalog"."default",
"review_time" timestamp(6),
"approver" varchar(64) COLLATE "pg_catalog"."default",
"approver_id" int8,
"approve_opinion" varchar(255) COLLATE "pg_catalog"."default",
"approve_time" timestamp(6),
"assayer" varchar(64) COLLATE "pg_catalog"."default",
"assayer_id" int8,
"assay_opinion" varchar(64) COLLATE "pg_catalog"."default",
"assay_time" timestamp(6),
"company_id" int8,
"uid" int8,
"ctime" timestamp(0) DEFAULT NULL::timestamp without time zone,
"ltime" timestamp(0) DEFAULT NULL::timestamp without time zone,
"lid" int8,
"deleted" int2 DEFAULT 0,
"report_id" varchar(255) COLLATE "pg_catalog"."default",
"status" int2,
"progress" varchar(120) COLLATE "pg_catalog"."default"
)
;
COMMENT ON COLUMN "public"."report_withdraw_application"."id" IS 'ID';
COMMENT ON COLUMN "public"."report_withdraw_application"."entrust_id" IS '委托ID';
COMMENT ON COLUMN "public"."report_withdraw_application"."reason" IS '撤回原因';
COMMENT ON COLUMN "public"."report_withdraw_application"."report_type" IS '报告类型【0:对内,1:对外】';
COMMENT ON COLUMN "public"."report_withdraw_application"."recheck" IS '是否复检【0:否,1:是】';
COMMENT ON COLUMN "public"."report_withdraw_application"."applicant" IS '申请人';
COMMENT ON COLUMN "public"."report_withdraw_application"."applicant_id" IS '申请人ID';
COMMENT ON COLUMN "public"."report_withdraw_application"."apply_time" IS '申请时间';
COMMENT ON COLUMN "public"."report_withdraw_application"."remark" IS '备注';
COMMENT ON COLUMN "public"."report_withdraw_application"."reviewer" IS '审核人';
COMMENT ON COLUMN "public"."report_withdraw_application"."reviewer_id" IS '审核人ID';
COMMENT ON COLUMN "public"."report_withdraw_application"."review_opinion" IS '审核意见';
COMMENT ON COLUMN "public"."report_withdraw_application"."review_time" IS '审核时间';
COMMENT ON COLUMN "public"."report_withdraw_application"."approver" IS '审批人';
COMMENT ON COLUMN "public"."report_withdraw_application"."approver_id" IS '审批人ID';
COMMENT ON COLUMN "public"."report_withdraw_application"."approve_opinion" IS '审批意见';
COMMENT ON COLUMN "public"."report_withdraw_application"."approve_time" IS '审批时间';
COMMENT ON COLUMN "public"."report_withdraw_application"."assayer" IS '化验主管';
COMMENT ON COLUMN "public"."report_withdraw_application"."assayer_id" IS '化验主管ID';
COMMENT ON COLUMN "public"."report_withdraw_application"."assay_opinion" IS '化验主管审批意见';
COMMENT ON COLUMN "public"."report_withdraw_application"."assay_time" IS '化验主管审批时间';
COMMENT ON COLUMN "public"."report_withdraw_application"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."report_withdraw_application"."uid" IS '创建人ID';
COMMENT ON COLUMN "public"."report_withdraw_application"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."report_withdraw_application"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."report_withdraw_application"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."report_withdraw_application"."deleted" IS '是否删除0否1是';
COMMENT ON COLUMN "public"."report_withdraw_application"."report_id" IS '本次撤回的报告IDS';
COMMENT ON COLUMN "public"."report_withdraw_application"."status" IS '状态';
COMMENT ON COLUMN "public"."report_withdraw_application"."progress" IS '状态信息';
-- ----------------------------
-- Primary Key structure for table report_withdraw_application
-- ----------------------------
ALTER TABLE "public"."report_withdraw_application"
ADD CONSTRAINT "report_withdrawal_application_pkey" PRIMARY KEY ("id");
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment