diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/LSReservedSample.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/LSReservedSample.java new file mode 100644 index 0000000..dc76c9d --- /dev/null +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/LSReservedSample.java @@ -0,0 +1,17 @@ +package org.springblade.lims.entry; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import org.springblade.core.mp.base.BaseEntity; + +import java.io.Serializable; + +/** + * @author swj + */ +@Data +@SuppressWarnings("all") +@TableName("ls_reserved_sample") +public class LSReservedSample extends BaseEntity implements Serializable { + +} diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/capital/controller/SupplierController.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/capital/controller/SupplierController.java index ad7175c..fffb257 100644 --- a/lab-service/lab-capital/src/main/java/org/springblade/lims/capital/controller/SupplierController.java +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/capital/controller/SupplierController.java @@ -1,6 +1,7 @@ package org.springblade.lims.capital.controller; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.annotations.Api; @@ -85,8 +86,8 @@ public class SupplierController extends BladeController { @PostMapping("/save") @ApiOperationSupport(order = 4) @ApiOperation(value = "新增", notes = "传入supplier") - public R save(@Valid @RequestBody Supplier supplier) { - //获取 + public R save(@Valid @RequestBody Supplier supplier) throws Exception { + // 获取 if(StringUtil.isNotBlank(supplier.getProvinces())){ List lstProvinces = Func.toStrList(supplier.getProvinces()); if(lstProvinces.size() ==3){ @@ -95,13 +96,20 @@ public class SupplierController extends BladeController { supplier.setRegion(lstProvinces.get(2)); } } - //获取地址 + // 获取地址 if(StringUtil.isNotBlank(supplier.getAddressRemark())){ List lstAddress = Func.toStrList(supplier.getAddressRemark()); if(lstAddress.size() ==3){ supplier.setAddress(lstAddress.get(2)); } } + // 重复提示 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Supplier::getName, supplier.getName()); + List suppliers = supplierService.list(wrapper); + if (CollectionUtils.isNotEmpty(suppliers)) { + throw new Exception("该供应商已存在,请勿重复增加!"); + } return R.status(supplierService.save(supplier)); } @@ -112,7 +120,7 @@ public class SupplierController extends BladeController { @PostMapping("/update") @ApiOperationSupport(order = 5) @ApiOperation(value = "修改", notes = "传入supplier") - public R update(@Valid @RequestBody Supplier supplier) { + public R update(@Valid @RequestBody Supplier supplier) throws Exception { //获取 if(StringUtil.isNotBlank(supplier.getProvinces())){ List lstProvinces = Func.toStrList(supplier.getProvinces()); @@ -130,6 +138,17 @@ public class SupplierController extends BladeController { } } + // 重复提示 + Supplier byId = supplierService.getById(supplier.getId()); + if (!byId.getName().equals(supplier.getName())) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Supplier::getName, supplier.getName()); + List suppliers = supplierService.list(wrapper); + if (CollectionUtils.isNotEmpty(suppliers)) { + throw new Exception("该供应商已存在,请勿重复增加!"); + } + } + return R.status(supplierService.updateById(supplier)); } diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ContractController.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ContractController.java index 9592864..e672314 100644 --- a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ContractController.java +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ContractController.java @@ -3,6 +3,7 @@ package org.springblade.lims.goods.controller; import cn.hutool.core.util.RandomUtil; import com.alibaba.nacos.common.utils.CollectionUtils; +import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -169,11 +170,12 @@ public class ContractController extends BladeController { Contract contract1 = new Contract(); for (Map.Entry> entry : entries) { List contractExcels = map.get(entry.getKey()); - QueryWrapper queryWrapper = new QueryWrapper<>(); if (contractExcels != null && contractExcels.size() > 0) { + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("name", contractExcels.get(0).getSupplierName()); Supplier one = supplierService.getOne(queryWrapper); if (one != null) { + List goodsList = new ArrayList<>(); long contractId = RandomUtil.randomLong(); contract1.setId(contractId); contract1.setSupplierId(one.getId()); @@ -181,47 +183,53 @@ public class ContractController extends BladeController { contract1.setStatus(0); List details = new ArrayList<>(); for (ContractExcel contract : contractExcels) { - QueryWrapper queryWrapper1 = new QueryWrapper<>(); - queryWrapper1.eq("company_id", one.getId()); - queryWrapper1.eq("name", contract.getGoodsName()); - Goods one1 = goodsService.getOne(queryWrapper1); - if (one1 == null) { - // 库存里没有这个物品,增个库存, - Goods goods = new Goods(); - Long goodIds = RandomUtil.randomLong(); - goods.setId(goodIds); - goods.setName(contract.getGoodsName()); - goods.setCompanyId(one.getId()); - goods.setCompany(one.getName()); - goods.setXh(contract.getXh()); - goods.setRule(contract.getRule()); - goods.setNum(0); - goods.setUnit(contract.getUnit()); - goods.setYt(contract.getYt()); - goods.setCreateTime(new Date()); - goodsService.save(goods); - - ContractDetail detail = new ContractDetail(); - detail.setContractId(contractId); - detail.setGoodsName(contract.getGoodsName()); - detail.setGoodsNum(contract.getGoodsNum()); - detail.setRemark(contract.getRemark()); - detail.setGoodsId(goodIds); - detail.setInNum(0); - detail.setNotNum(contract.getGoodsNum()); - detail.setStatus(0); - details.add(detail); + if (StringUtils.isNotBlank(contract.getBrand())) { + QueryWrapper queryWrapper1 = new QueryWrapper<>(); +// queryWrapper1.eq("company_id", one.getId()); + queryWrapper1.eq("name", contract.getGoodsName()); + queryWrapper1.eq("brand", contract.getBrand()); + Goods one1 = goodsService.getOne(queryWrapper1); + if (one1 == null) { + // 库存里没有这个物品,增个库存, + Goods goods = new Goods(); + Long goodIds = RandomUtil.randomLong(); + goods.setId(goodIds); + goods.setName(contract.getGoodsName()); + goods.setCompanyId(one.getId()); + goods.setCompany(one.getName()); + goods.setXh(contract.getXh()); + goods.setRule(contract.getRule()); + goods.setNum(0); + goods.setUnit(contract.getUnit()); + goods.setBrand(contract.getBrand()); + goods.setYt(contract.getYt()); + goods.setCreateTime(new Date()); + goodsList.add(goods); + + ContractDetail detail = new ContractDetail(); + detail.setContractId(contractId); + detail.setGoodsName(contract.getGoodsName()); + detail.setGoodsNum(contract.getGoodsNum()); + detail.setRemark(contract.getRemark()); + detail.setGoodsId(goodIds); + detail.setInNum(0); + detail.setNotNum(contract.getGoodsNum()); + detail.setStatus(0); + details.add(detail); + } else { + ContractDetail detail = new ContractDetail(); + detail.setContractId(contractId); + detail.setRemark(contract.getRemark()); + detail.setGoodsNum(contract.getGoodsNum()); + detail.setGoodsName(contract.getGoodsName()); + detail.setGoodsId(one1.getId()); + detail.setInNum(0); + detail.setNotNum(contract.getGoodsNum()); + detail.setStatus(0); + details.add(detail); + } } else { - ContractDetail detail = new ContractDetail(); - detail.setContractId(contractId); - detail.setRemark(contract.getRemark()); - detail.setGoodsNum(contract.getGoodsNum()); - detail.setGoodsName(contract.getGoodsName()); - detail.setGoodsId(one1.getId()); - detail.setInNum(0); - detail.setNotNum(contract.getGoodsNum()); - detail.setStatus(0); - details.add(detail); + throw new Exception("品牌不能为空!"); } } contract1.setGoodsClassNum(contractExcels.size()); @@ -231,6 +239,7 @@ public class ContractController extends BladeController { contract1.setCreateUser(AuthUtil.getUserId()); contractDetailService.saveBatch(details); contractService.save(contract1); + goodsService.saveBatch(goodsList); } else { throw new Exception("系统内无" + contractExcels.get(0).getSupplierName() + "此供应商,请录入供应商后重新导入!"); } @@ -293,16 +302,19 @@ public class ContractController extends BladeController { */ @PostMapping("/saveAndCommit") public void saveAndCommit(@RequestBody ContractVO contractVO) { - List detailList = contractVO.getDetailList(); LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); wrapper1.eq(Batch::getContractId, contractVO.getId()); wrapper1.orderByDesc(Batch::getBatch); List batches = batchService.list(wrapper1); Integer batch1 = 1; - if (batches != null && batches.size() > 0) { + if (CollectionUtils.isNotEmpty(batches)) { batch1 = batches.get(0).getBatch() + 1; } + // 合同详情集合 + List detailList = contractVO.getDetailList(); + List productStoreDetials = new ArrayList<>(); + List batchList = new ArrayList<>(); for (ContractDetail contractDetail : detailList) { if (contractDetail.getNum() == 0) { continue; @@ -329,29 +341,29 @@ public class ContractController extends BladeController { productStoreDetial.setNum(contractDetail.getNum()); productStoreDetial.setCompany(contractVO.getSupplierName()); productStoreDetial.setStatus(0); - productStoreDetialService.save(productStoreDetial); + productStoreDetials.add(productStoreDetial); // 消息通知 List userList = userClient.listRolebyId("实验室组长").getData(); if (userList != null) { for (User user : userList) { messageClient.event(SysTypeEnum.INFORM.getValue(), "质检入库", - "你有新的物品待质检,请及时处理", 1, 5, user.getId().toString(),"/capital/productstoreList"); + "你有新的物品待质检,请及时处理", 1, 5, user.getId().toString(), "/capital/productstoreList"); } } // 添加合同批次数据 - if (contractDetail.getNum() != 0) { - Batch batch = new Batch(); - batch.setBatch(batch1); - batch.setNum(contractDetail.getNum()); - batch.setContractId(contractVO.getId()); - batch.setGoodsId(contractDetail.getGoodsId()); - batch.setGoodsName(contractDetail.getGoodsName()); - batch.setIsBill(0); - batchService.save(batch); - } + Batch batch = new Batch(); + batch.setBatch(batch1); + batch.setNum(contractDetail.getNum()); + batch.setContractId(contractVO.getId()); + batch.setGoodsId(contractDetail.getGoodsId()); + batch.setGoodsName(contractDetail.getGoodsName()); + batch.setIsBill(0); + batchList.add(batch); } + batchService.saveBatch(batchList); + productStoreDetialService.saveBatch(productStoreDetials); contractDetailService.updateBatchById(detailList); Contract contract = new Contract(); @@ -370,12 +382,11 @@ public class ContractController extends BladeController { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Batch::getContractId, contractVO.getId()); wrapper.eq(Batch::getIsBill, 0); - List batchList = batchService.list(wrapper); - if (batchList != null && batchList.size() > 0) { + List batchList1 = batchService.list(wrapper); + if (CollectionUtils.isNotEmpty(batchList1)) { contract.setStatus(4); } } contractService.updateById(contract); - } } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ContractController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ContractController.java index 4a93b30..38ccef0 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ContractController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ContractController.java @@ -17,6 +17,8 @@ import org.springblade.system.user.entity.User; import org.springblade.system.user.feign.IUserClient; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.Date; import java.util.List; @@ -34,8 +36,6 @@ public class ContractController extends BladeController { private final IUserClient userClient; - private final ISysClient sysClient; - private final IMessageClient messageClient; /** @@ -69,7 +69,7 @@ public class ContractController extends BladeController { for (String s : split) { // 消息通知 messageClient.event(SysTypeEnum.INFORM.getValue(), "确认签字", - "你有新的合同评审待签字,请及时处理", 1, 5, s,"/plugin/workflow/process/contractList"); + "你有新的合同评审待签字,请及时处理", 1, 5, s, "/plugin/workflow/process/contractList"); String name = userClient.userInfoById(Long.parseLong(s)).getData().getName(); appointAssessorName.append(name).append(","); } @@ -78,12 +78,12 @@ public class ContractController extends BladeController { if (contract.getReviewConclusionTechnicalDirectorId() != null) { // 消息通知 messageClient.event(SysTypeEnum.INFORM.getValue(), "确认签字", - "你有新的合同评审待签字,请及时处理", 1, 5, contract.getReviewConclusionTechnicalDirectorId().toString(),"/plugin/workflow/process/contractList"); + "你有新的合同评审待签字,请及时处理", 1, 5, contract.getReviewConclusionTechnicalDirectorId().toString(), "/plugin/workflow/process/contractList"); } if (contract.getCenterDirectorId() != null) { // 消息通知1 messageClient.event(SysTypeEnum.INFORM.getValue(), "确认签字", - "你有新的合同评审待签字,请及时处理", 1, 5, contract.getCenterDirectorId().toString(),"/plugin/workflow/process/contractList"); + "你有新的合同评审待签字,请及时处理", 1, 5, contract.getCenterDirectorId().toString(), "/plugin/workflow/process/contractList"); } contract.setStatus(0); return R.status(contractService.save(contract)); @@ -101,16 +101,18 @@ public class ContractController extends BladeController { String name = userClient.userInfoById(contract.getReviewConclusionTechnicalDirectorId()).getData().getName(); byId.setReviewConclusionTechnicalDirectorName(name); byId.setReviewConclusionDate(new Date()); + byId.setStatus(1); } // 中心主任签名 - if (contract.getCenterDirectorId() != null) { + else if (contract.getCenterDirectorId() != null) { byId.setCenterDirectorId(contract.getCenterDirectorId()); String name = userClient.userInfoById(contract.getCenterDirectorId()).getData().getName(); byId.setCenterDirectorName(name); byId.setCenterDirectorOpinionDate(new Date()); + byId.setStatus(3); } // 指定评审人员签名 - if (contract.getAssessorId() != null && !"".equals(contract.getAssessorId())) { + else if (contract.getAssessorId() != null && !"".equals(contract.getAssessorId())) { if (byId.getAssessorId() != null) { byId.setAssessorId(byId.getAssessorId() + "," + contract.getAssessorId()); } else { @@ -126,18 +128,23 @@ public class ContractController extends BladeController { } else { byId.setAssessorDept(contract.getAssessorDept()); } + if (byId.getAssessorId().split(",").length == byId.getAppointAssessorId().split(",").length) { + byId.setStatus(2); + } + } else { + byId.setStatus(contract.getStatus()); } // 如果全部签名完成,改状态为1(新增委托单) - if (byId.getReviewConclusionTechnicalDirectorId() != null - && byId.getCenterDirectorId() != null - && byId.getAssessorId() != null - && byId.getAssessorId().split(",").length == byId.getAppointAssessorId().split(",").length) { - // 消息通知1 - // id硬编码 - messageClient.event(SysTypeEnum.INFORM.getValue(), "新增委托", - "您的合同已评审完成,请及时处理", 1, 5, "1542330472226856962","/plugin/workflow/process/contractList"); - byId.setStatus(1); - } +// if (byId.getReviewConclusionTechnicalDirectorId() != null +// && byId.getCenterDirectorId() != null +// && byId.getAssessorId() != null +// && byId.getAssessorId().split(",").length == byId.getAppointAssessorId().split(",").length) { +// // 消息通知1 +// // id硬编码 +// messageClient.event(SysTypeEnum.INFORM.getValue(), "新增委托", +// "您的合同已评审完成,请及时处理", 1, 5, "1542330472226856962","/plugin/workflow/process/contractList"); +// byId.setStatus(4); +// } contractService.updateById(byId); return R.data(byId); } @@ -151,4 +158,12 @@ public class ContractController extends BladeController { return R.data(contract); } + /** + * 打印合同评审表 + */ + @GetMapping("/contractReview") + public void contractReview(String id, HttpServletResponse response) { + contractService.contractReview(id, response); + } + } \ No newline at end of file diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ContractSampleController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ContractSampleController.java new file mode 100644 index 0000000..cb1a7bf --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ContractSampleController.java @@ -0,0 +1,22 @@ +package org.springblade.lims.controller; + +import io.swagger.annotations.Api; +import lombok.AllArgsConstructor; +import org.springblade.core.boot.ctrl.BladeController; +import org.springblade.lims.service.IContractSampleService; +import org.springframework.web.bind.annotation.*; + +/** + * @author lt + * @since 2022年11月15日15:52:18 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/contractSample") +public class ContractSampleController extends BladeController { + + private final IContractSampleService contractSampleService; + + + +} \ No newline at end of file diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java index 74446b7..f3c7083 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/EntrustController.java @@ -112,387 +112,70 @@ public class EntrustController extends BladeController { private final ITaskBlueprintService taskBlueprintService; + private final IContractSampleService contractSampleService; + /** * 1.分页 委托单表 */ @GetMapping("/list") @ApiOperationSupport(order = 2) public R> list(Entrust entry, Query query) { - //样品待处理 -// List entrustList1 = new ArrayList<>(); -// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); -// wrapper.eq(Entrust::getEntrustStatus, "6"); -// List entrusts = service.list(wrapper); -// if (entrusts != null && entrusts.size() > 0) { -// for (Entrust entrust : entrusts) { -// Date updateTime = entrust.getSamplingDate(); -// long updateTimeTime = updateTime.getTime(); -// long l = System.currentTimeMillis(); -// if (l - updateTimeTime > 2160000000L) { -// entrust.setIsHandle("0"); -// service.updateById(entrust); -// } -// } +// if (entry != null && entry.getEntrustStatus() != null && "111".equals(entry.getEntrustStatus())) { +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("entrust_status", "111").or(); +// queryWrapper.eq("entrust_status", "2.1").or(); +// query.setDescs("create_time"); +// IPage page = service.page(Condition.getPage(query), queryWrapper); +// return R.data(page); // } - - // TODO 有空抽代码.... - // 如果传部门了 -// if (entry != null && entry.getDeptId() != null && !"".equals(entry.getDeptId())) { -// // 科室一 -// if (entry.getDeptId().equals("1536303217085018114")) { -// //组长或校核人 -// if (entry.getRoleId().equals("1432876219952791554") || entry.getRoleId().equals("1542095624162525185")) { -// query.setDescs("create_time"); -// LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(entry); -// if (entry.getEntrustCustomerName() != null) { -// wrapper1.like(Entrust::getEntrustCustomerName, entry.getEntrustCustomerName()).or(); -// wrapper1.like(Entrust::getAcceptanceNum, entry.getEntrustCustomerName()).or(); -// wrapper1.like(Entrust::getSimpleName, entry.getEntrustCustomerName()); -// } -// IPage iPage = service.page(Condition.getPage(query), wrapper1); -// -// List entrustList = new ArrayList<>(); -// LambdaQueryWrapper eTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); -// eTaskLambdaQueryWrapper.eq(ETask::getDeptId, entry.getDeptId()); -// List eTasks = eTaskService.list(eTaskLambdaQueryWrapper); -// if (eTasks != null && eTasks.size() > 0) { -// for (ETask eTask : eTasks) { -// if (eTask != null) { -// TaskBlueprint taskBlueprint = blueprintService.getById(eTask.getTaskBlueprintId()); -// if (taskBlueprint != null) { -// Entrust entrust = service.getById(taskBlueprint.getEntrustId()); -// if (entrust != null) { -// // 待分配 -// if ("000".equals(entry.getEntrustStatus())) { -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 0) { -// entrust.setActualDistrib("0"); -// entrustList.add(entrust); -// } -// } -// //检测中 -// else if ("111".equals(entry.getEntrustStatus())) { -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 1) { -// entrust.setActualDistrib("1"); -// entrustList.add(entrust); -// } -// } -// //待审核 -// else if ("3".equals(entry.getEntrustStatus())) { -// if ("3".equals(entrust.getEntrustStatus())) { -// entrustList.add(entrust); -// } -// } -// //通过 -// else if ("4".equals(entry.getEntrustStatus())) { -// if ("4".equals(entrust.getEntrustStatus())) { -// entrustList.add(entrust); -// } -// } -// //驳回 -// else if ("5".equals(entry.getEntrustStatus())) { -// if ("5".equals(entrust.getEntrustStatus())) { -// entrustList.add(entrust); -// } -// } -// //全部 -// else if ("111".equals(entrust.getEntrustStatus()) || -// "3".equals(entrust.getEntrustStatus()) || -// "2.1".equals(entrust.getEntrustStatus()) || -// "4".equals(entrust.getEntrustStatus()) || -// "5".equals(entrust.getEntrustStatus())) { -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 0) { -// entrust.setActualDistrib("0"); -// } else if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 1) { -// entrust.setActualDistrib("1"); -// } -// entrustList.add(entrust); -// } -// } -// } -// } -// } -// } -// if (entrustList != null && entrustList.size() > 0) { -// for (Entrust entrust : entrustList) { -// Integer count = 0; -// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// if (entrust != null) { -// queryWrapper.eq(Examine::getEntrustId, entrust.getId()); -// queryWrapper.eq(Examine::getDeptId, "1536303217085018114"); -// List examines = examineService.list(queryWrapper); -// if (examines != null && examines.size() > 0) { -// for (Examine examine : examines) { -// if (examine.getExperieNum() != null && !"".equals(examine.getExperieNum())) { -// String experieNum = examine.getExperieNum(); -// String[] split = experieNum.split(","); -// count += split.length; -// } -// } -// } -// entrust.setSimpleCount(count); -// } -// } -// } -// iPage.setTotal(entrustList.size()); -// List collect = entrustList.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); -// iPage.setRecords(collect); -// return R.data(iPage); -// } -// } -// // 科室二 -// if (entry.getDeptId().equals("1536303261238456322")) { -// //组长或校核人 -// if (entry.getRoleId().equals("1432876219952791554") || entry.getRoleId().equals("1542095624162525185")) { -// query.setDescs("update_time"); -// LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(entry); -// if (entry.getEntrustCustomerName() != null) { -// wrapper1.like(Entrust::getEntrustCustomerName, entry.getEntrustCustomerName()).or(); -// wrapper1.like(Entrust::getAcceptanceNum, entry.getEntrustCustomerName()).or(); -// wrapper1.like(Entrust::getSimpleName, entry.getEntrustCustomerName()); -// } -// IPage iPage = service.page(Condition.getPage(query), wrapper1); -// -// List entrustList = new ArrayList<>(); -// LambdaQueryWrapper eTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); -// eTaskLambdaQueryWrapper.eq(ETask::getDeptId, entry.getDeptId()); -// List eTasks = eTaskService.list(eTaskLambdaQueryWrapper); -// if (eTasks != null && eTasks.size() > 0) { -// for (ETask eTask : eTasks) { -// if (eTask != null) { -// TaskBlueprint taskBlueprint = blueprintService.getById(eTask.getTaskBlueprintId()); -// if (taskBlueprint != null) { -// Entrust entrust = service.getById(taskBlueprint.getEntrustId()); -// if (entrust != null) { -// // 待分配 -// if ("000".equals(entry.getEntrustStatus())) { -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 0) { -// entrust.setActualDistrib("0"); -// entrustList.add(entrust); -// } -// } -// //检测中 -// else if ("111".equals(entry.getEntrustStatus())) { -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 1) { -// entrust.setActualDistrib("1"); -// entrustList.add(entrust); -// } -// } -// //待审核 -// else if ("3".equals(entry.getEntrustStatus())) { -// if ("3".equals(entrust.getEntrustStatus())) { -// entrustList.add(entrust); -// } -// } -// //通过 -// else if ("4".equals(entry.getEntrustStatus())) { -// if ("4".equals(entrust.getEntrustStatus())) { -// entrustList.add(entrust); -// } -// } -// //驳回 -// else if ("5".equals(entry.getEntrustStatus())) { -// if ("5".equals(entrust.getEntrustStatus())) { -// entrustList.add(entrust); -// } -// } -// //全部 -// else if ("111".equals(entrust.getEntrustStatus()) || -// "3".equals(entrust.getEntrustStatus()) || -// "4".equals(entrust.getEntrustStatus()) || -// "5".equals(entrust.getEntrustStatus())) { -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 0) { -// entrust.setActualDistrib("0"); -// } else if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 1) { -// entrust.setActualDistrib("1"); -// } -// entrustList.add(entrust); -// } -// } -// } -// } -// } -// } -// if (entrustList != null && entrustList.size() > 0) { -// for (Entrust entrust : entrustList) { -// Integer count = 0; -// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// if (entrust != null) { -// queryWrapper.eq(Examine::getEntrustId, entrust.getId()); -// queryWrapper.eq(Examine::getDeptId, "1536303261238456322"); -// List examines = examineService.list(queryWrapper); -// if (examines != null && examines.size() > 0) { -// for (Examine examine : examines) { -// if (examine.getExperieNum() != null && !"".equals(examine.getExperieNum())) { -// String experieNum = examine.getExperieNum(); -// String[] split = experieNum.split(","); -// count += split.length; -// } -// } -// } -// entrust.setSimpleCount(count); -// } -// } -// } -// iPage.setTotal(entrustList.size()); -// List collect = entrustList.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); -// iPage.setRecords(collect); -// return R.data(iPage); -// } -// } -// // 科室三 -// if (entry.getDeptId().equals("1536303317815422978")) { -// //组长或校核人 -// if (entry.getRoleId().equals("1432876219952791554") || entry.getRoleId().equals("1542095624162525185")) { -// query.setDescs("update_time"); -// LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(entry); -// if (entry.getEntrustCustomerName() != null) { -// wrapper1.like(Entrust::getEntrustCustomerName, entry.getEntrustCustomerName()).or(); -// wrapper1.like(Entrust::getAcceptanceNum, entry.getEntrustCustomerName()).or(); -// wrapper1.like(Entrust::getSimpleName, entry.getEntrustCustomerName()); -// } -// IPage iPage = service.page(Condition.getPage(query), wrapper1); -// -// List entrustList = new ArrayList<>(); -// LambdaQueryWrapper eTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); -// eTaskLambdaQueryWrapper.eq(ETask::getDeptId, entry.getDeptId()); -// List eTasks = eTaskService.list(eTaskLambdaQueryWrapper); -// if (eTasks != null && eTasks.size() > 0) { -// for (ETask eTask : eTasks) { -// if (eTask != null) { -// TaskBlueprint taskBlueprint = blueprintService.getById(eTask.getTaskBlueprintId()); -// if (taskBlueprint != null) { -// Entrust entrust = service.getById(taskBlueprint.getEntrustId()); -// if (entrust != null) { -// // 待分配 -// if ("000".equals(entry.getEntrustStatus())) { -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 0) { -// entrust.setActualDistrib("0"); -// entrustList.add(entrust); -// } -// } -// //检测中 -// else if ("111".equals(entry.getEntrustStatus())) { -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 1) { -// entrust.setActualDistrib("1"); -// entrustList.add(entrust); -// } -// } -// //待审核 -// else if ("3".equals(entry.getEntrustStatus())) { -// if ("3".equals(entrust.getEntrustStatus())) { -// entrustList.add(entrust); -// } -// } -// //通过 -// else if ("4".equals(entry.getEntrustStatus())) { -// if ("4".equals(entrust.getEntrustStatus())) { -// entrustList.add(entrust); -// } -// } -// //驳回 -// else if ("5".equals(entry.getEntrustStatus())) { -// if ("5".equals(entrust.getEntrustStatus())) { -// entrustList.add(entrust); -// } -// } -// //全部 -// else if ("111".equals(entrust.getEntrustStatus()) || -// "3".equals(entrust.getEntrustStatus()) || -// "4".equals(entrust.getEntrustStatus()) || -// "5".equals(entrust.getEntrustStatus())) { -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 0) { -// entrust.setActualDistrib("0"); -// } else if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 1) { -// entrust.setActualDistrib("1"); -// } -// entrustList.add(entrust); -// } -// } -// } -// } -// } -// } -// if (entrustList != null && entrustList.size() > 0) { -// for (Entrust entrust : entrustList) { -// Integer count = 0; -// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); -// if (entrust != null) { -// queryWrapper.eq(Examine::getEntrustId, entrust.getId()); -// queryWrapper.eq(Examine::getDeptId, "1536303317815422978"); -// List examines = examineService.list(queryWrapper); -// if (examines != null && examines.size() > 0) { -// for (Examine examine : examines) { -// if (examine.getExperieNum() != null && !"".equals(examine.getExperieNum())) { -// String experieNum = examine.getExperieNum(); -// String[] split = experieNum.split(","); -// count += split.length; -// } -// } -// } -// entrust.setSimpleCount(count); -// } -// } -// } -// iPage.setTotal(entrustList.size()); -// List collect = entrustList.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(Collectors.toList()); -// iPage.setRecords(collect); -// return R.data(iPage); -// } -// } +// // 已完成状态 +// if (entry != null && entry.getEntrustStatus() != null && "8".equals(entry.getEntrustStatus())) { +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("entrust_status", "7").or() +// .eq("entrust_status", "8"); +// query.setDescs("create_time"); +// IPage page = service.page(Condition.getPage(query), queryWrapper); +// return R.data(page); // } - // TODO 抽空抽... - // 检测中状态 +// // 全部 +// query.setDescs("create_time"); +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// if (entry.getEntrustStatus() != null) { +// queryWrapper.eq(Entrust::getEntrustStatus, entry.getEntrustStatus()); +// } +// if (entry.getEntrustCustomerName() != null) { +// queryWrapper.like(Entrust::getEntrustCustomerName, entry.getEntrustCustomerName()).or(); +// queryWrapper.like(Entrust::getAcceptanceNum, entry.getEntrustCustomerName()).or(); +// queryWrapper.like(Entrust::getSimpleName, entry.getEntrustCustomerName()); +// } +// IPage page = service.page(Condition.getPage(query), queryWrapper); +// return R.data(page); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); if (entry != null && entry.getEntrustStatus() != null && "111".equals(entry.getEntrustStatus())) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("entrust_status", "111").or(); - queryWrapper.eq("entrust_status", "2.1").or(); - query.setDescs("create_time"); - IPage page = service.page(Condition.getPage(query), queryWrapper); - return R.data(page); - } - // 待审核状态 - if (entry != null && entry.getEntrustStatus() != null && "3".equals(entry.getEntrustStatus())) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("entrust_status", "3"); - query.setDescs("create_time"); - IPage page = service.page(Condition.getPage(query), queryWrapper); - List records = page.getRecords(); - if (records != null && records.size() > 0) { - for (Entrust record : records) { - LambdaQueryWrapper wrapper1 = new LambdaQueryWrapper<>(); - wrapper1.eq(Examine::getEntrustId, record.getId()); - List examines = examineService.list(wrapper1); - if (examines != null && examines.size() > 0) { - for (Examine examine : examines) { - if ("1".equals(examine.getIsFinished()) && examine.getStatus() == 0) { - record.setStatus(1); - } - } - } - } - } - return R.data(page); + queryWrapper.and(qw -> + qw.eq(Entrust::getEntrustStatus, "111").or() + .eq(Entrust::getEntrustStatus, "2.1")); } // 已完成状态 - if (entry != null && entry.getEntrustStatus() != null && "8".equals(entry.getEntrustStatus())) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("entrust_status", "7").or() - .eq("entrust_status", "8"); - query.setDescs("create_time"); - IPage page = service.page(Condition.getPage(query), queryWrapper); - return R.data(page); + else if (entry != null && entry.getEntrustStatus() != null && "8".equals(entry.getEntrustStatus())) { + queryWrapper.and(qw -> + qw.eq(Entrust::getEntrustStatus, "7").or() + .eq(Entrust::getEntrustStatus, "8")); } // 全部 - query.setDescs("create_time"); - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - if (entry.getEntrustStatus() != null) { - queryWrapper.eq(Entrust::getEntrustStatus, entry.getEntrustStatus()); - } - if (entry.getEntrustCustomerName() != null) { - queryWrapper.like(Entrust::getEntrustCustomerName, entry.getEntrustCustomerName()).or(); - queryWrapper.like(Entrust::getAcceptanceNum, entry.getEntrustCustomerName()).or(); - queryWrapper.like(Entrust::getSimpleName, entry.getEntrustCustomerName()); + else { + if (entry.getEntrustStatus() != null) { + queryWrapper.eq(Entrust::getEntrustStatus, entry.getEntrustStatus()); + } + if (entry.getEntrustCustomerName() != null) { + queryWrapper.and(qw -> + qw.like(Entrust::getEntrustCustomerName, entry.getEntrustCustomerName()).or() + .like(Entrust::getAcceptanceNum, entry.getEntrustCustomerName()).or() + .like(Entrust::getSimpleName, entry.getEntrustCustomerName())); + } } + queryWrapper.eq(Entrust::getEntrustType, 1); + queryWrapper.orderByDesc(Entrust::getCreateTime); IPage page = service.page(Condition.getPage(query), queryWrapper); return R.data(page); } @@ -506,6 +189,13 @@ public class EntrustController extends BladeController { HashMap map = new HashMap<>(); //委托单 Entrust entrust = service.getById(id); + // 如果是合同类型委托单,查看详情返回收样登记 + if (entrust.getContractId() != null) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ContractSample::getEntrustId, entrust.getId()); + List samples = contractSampleService.list(wrapper); + entrust.setContractSamples(samples); + } if (entrust.getSampleReceiverId() != null) { R userR = userClient.userInfoById(Long.valueOf(entrust.getSampleReceiverId())); User data = userR.getData(); @@ -518,25 +208,25 @@ public class EntrustController extends BladeController { for (Examine examine : list) { // 2022年10月11日20:31:27 感觉没必要,而且影响前端数据展示 // if (examine.getExperieNum() != null && !"".equals(examine.getExperieNum())) { - ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); - if (examineItem != null) { - examine.setExamineItemName(examineItem.getName()); - } - ExamineWay examineWay = examineWayService.getById(examine.getExamineWayId()); - if (examineWay != null) { - examine.setExamineWayName(examineWay.getName()); - } - ExamineBasis examineBasis = examineBasisService.getById(examine.getExamineBasisId()); - if (examineBasis != null) { - examine.setExamineBasisName(examineBasis.getName()); - } - if (examine.getExamineBy() != null && !"".equals(examine.getExamineBy())) { - R userR = userClient.userInfoById(Long.valueOf(examine.getExamineBy())); - User user = userR.getData(); - if (user != null) { - examine.setExamineByName(user.getName()); - } + ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); + if (examineItem != null) { + examine.setExamineItemName(examineItem.getName()); + } + ExamineWay examineWay = examineWayService.getById(examine.getExamineWayId()); + if (examineWay != null) { + examine.setExamineWayName(examineWay.getName()); + } + ExamineBasis examineBasis = examineBasisService.getById(examine.getExamineBasisId()); + if (examineBasis != null) { + examine.setExamineBasisName(examineBasis.getName()); + } + if (examine.getExamineBy() != null && !"".equals(examine.getExamineBy())) { + R userR = userClient.userInfoById(Long.valueOf(examine.getExamineBy())); + User user = userR.getData(); + if (user != null) { + examine.setExamineByName(user.getName()); } + } // } } entrust.setExamines(list); @@ -569,26 +259,26 @@ public class EntrustController extends BladeController { List examineList = new ArrayList<>(); for (Examine examine : examines) { // if (examine.getExperieNum() != null && !"".equals(examine.getExperieNum())) { - ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); - if (examineItem != null) { - examine.setExamineItemName(examineItem.getName()); - } - ExamineWay examineWay = examineWayService.getById(examine.getExamineWayId()); - if (examineWay != null) { - examine.setExamineWayName(examineWay.getName()); - } - ExamineBasis examineBasis = examineBasisService.getById(examine.getExamineBasisId()); - if (examineBasis != null) { - examine.setExamineBasisName(examineBasis.getName()); - } - if (examine.getExamineBy() != null && !"".equals(examine.getExamineBy())) { - R userR = userClient.userInfoById(Long.valueOf(examine.getExamineBy())); - User user = userR.getData(); - if (user != null) { - examine.setExamineByName(user.getName()); - } + ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); + if (examineItem != null) { + examine.setExamineItemName(examineItem.getName()); + } + ExamineWay examineWay = examineWayService.getById(examine.getExamineWayId()); + if (examineWay != null) { + examine.setExamineWayName(examineWay.getName()); + } + ExamineBasis examineBasis = examineBasisService.getById(examine.getExamineBasisId()); + if (examineBasis != null) { + examine.setExamineBasisName(examineBasis.getName()); + } + if (examine.getExamineBy() != null && !"".equals(examine.getExamineBy())) { + R userR = userClient.userInfoById(Long.valueOf(examine.getExamineBy())); + User user = userR.getData(); + if (user != null) { + examine.setExamineByName(user.getName()); } - examineList.add(examine); + } + examineList.add(examine); // } } eTask.setExamines(examineList); @@ -657,212 +347,40 @@ public class EntrustController extends BladeController { @ApiOperation(value = "获取委托单所有状态及其对应的数量", notes = "获取委托单所有状态及其对应的数量") public R> getEveryStatusAndCount(String deptId) { Map map = new HashMap<>(10); - // TODO 找到拿取当前登录用户的接口从后端判断是科室几 - -// LambdaQueryWrapper eTaskLambdaQueryWrapper = new LambdaQueryWrapper<>(); -// if (deptId != null && !"".equals(deptId)) { -// // 科室一 -// if (deptId.equals("1536303217085018114")) { -// eTaskQueryWrapper.eq("dept_id", deptId); -// eTaskQueryWrapper.eq("status", 0); -// map.put("dfp", eTaskService.count(eTaskQueryWrapper)); -// } -// // 科室二 -// else if (deptId.equals("1536303261238456322")) { -// eTaskQueryWrapper.eq("dept_id", deptId); -// eTaskQueryWrapper.eq("status", 0); -// map.put("dfp", eTaskService.count(eTaskQueryWrapper)); -// } -// // 科室三 -// else if (deptId.equals("1536303317815422978")) { -// eTaskQueryWrapper.eq("dept_id", deptId); -// eTaskQueryWrapper.eq("status", 0); -// map.put("dfp", eTaskService.count(eTaskQueryWrapper)); -// } -// } -// eTaskQueryWrapper.clear(); -// -// //科室一 -// if (deptId.equals("1536303217085018114")) { -// eTaskQueryWrapper.eq("dept_id", deptId); -// eTaskQueryWrapper.eq("status", 1); -// map.put("jcz", eTaskService.count(eTaskQueryWrapper)); -// } -// //科室二 -// else if (deptId.equals("1536303261238456322")) { -// eTaskQueryWrapper.eq("dept_id", deptId); -// eTaskQueryWrapper.eq("status", 1); -// map.put("jcz", eTaskService.count(eTaskQueryWrapper)); -// } -// //科室三 -// else if (deptId.equals("1536303317815422978")) { -// eTaskQueryWrapper.eq("dept_id", deptId); -// eTaskQueryWrapper.eq("status", 1); -// map.put("jcz", eTaskService.count(eTaskQueryWrapper)); -// } -// eTaskQueryWrapper.clear(); - QueryWrapper eTaskQueryWrapper = new QueryWrapper<>(); -// Integer dfp = 0; -// Integer jcz = 0; -// Integer jcwc = 0; -// Integer shtg = 0; -// Integer shbh = 0; - //科室一 -// if (deptId.equals("1536303217085018114")) { -// eTaskQueryWrapper.eq("dept_id", deptId); -// List eTasks = eTaskService.list(eTaskQueryWrapper); -// if (eTasks != null && eTasks.size() > 0) { -// for (ETask eTask : eTasks) { -// if (eTask != null) { -// TaskBlueprint taskBlueprint = blueprintService.getById(eTask.getTaskBlueprintId()); -// if (taskBlueprint != null) { -// Entrust entrust = service.getById(taskBlueprint.getEntrustId()); -// if (entrust != null) { -// //待分配 -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 0) { -// dfp += 1; -// } -// //检测中 -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 1) { -// jcz += 1; -// } -// //待审核 -// if ("3".equals(entrust.getEntrustStatus())) { -// jcwc += 1; -// } -// //通过 -// if ("4".equals(entrust.getEntrustStatus())) { -// shtg += 1; -// } -// //驳回 -// if ("5".equals(entrust.getEntrustStatus())) { -// shbh += 1; -// } -// } -// } -// } -// } -// } -// map.put("dfp", dfp); -// map.put("jcz", jcz); -// map.put("jcwc", jcwc); -// map.put("shtg", shtg); -// map.put("shbh", shbh); -// } - //科室二 -// else if (deptId.equals("1536303261238456322")) { -// eTaskQueryWrapper.eq("dept_id", deptId); -// List eTasks = eTaskService.list(eTaskQueryWrapper); -// if (eTasks != null && eTasks.size() > 0) { -// for (ETask eTask : eTasks) { -// if (eTask != null) { -// TaskBlueprint taskBlueprint = blueprintService.getById(eTask.getTaskBlueprintId()); -// if (taskBlueprint != null) { -// Entrust entrust = service.getById(taskBlueprint.getEntrustId()); -// if (entrust != null) { -// //待分配 -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 0) { -// dfp += 1; -// } -// //检测中 -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 1) { -// jcz += 1; -// } -// //待审核 -// if ("3".equals(entrust.getEntrustStatus())) { -// jcwc += 1; -// } -// //通过 -// if ("4".equals(entrust.getEntrustStatus())) { -// shtg += 1; -// } -// //驳回 -// if ("5".equals(entrust.getEntrustStatus())) { -// shbh += 1; -// } -// } -// } -// } -// } -// } -// map.put("dfp", dfp); -// map.put("jcz", jcz); -// map.put("jcwc", jcwc); -// map.put("shtg", shtg); -// map.put("shbh", shbh); -// } - //科室三 -// else if (deptId.equals("1536303317815422978")) { -// eTaskQueryWrapper.eq("dept_id", deptId); -// List eTasks = eTaskService.list(eTaskQueryWrapper); -// if (eTasks != null && eTasks.size() > 0) { -// for (ETask eTask : eTasks) { -// if (eTask != null) { -// TaskBlueprint taskBlueprint = blueprintService.getById(eTask.getTaskBlueprintId()); -// if (taskBlueprint != null) { -// Entrust entrust = service.getById(taskBlueprint.getEntrustId()); -// if (entrust != null) { -// //待分配 -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 0) { -// dfp += 1; -// } -// //检测中 -// if ("111".equals(entrust.getEntrustStatus()) && eTask.getStatus() == 1) { -// jcz += 1; -// } -// //待审核 -// if ("3".equals(entrust.getEntrustStatus())) { -// jcwc += 1; -// } -// //通过 -// if ("4".equals(entrust.getEntrustStatus())) { -// shtg += 1; -// } -// //驳回 -// if ("5".equals(entrust.getEntrustStatus())) { -// shbh += 1; -// } -// } -// } -// } -// } -// } -// map.put("dfp", dfp); -// map.put("jcz", jcz); -// map.put("jcwc", jcwc); -// map.put("shtg", shtg); -// map.put("shbh", shbh); -// } - //质量管理室 -// else { - // TODO 有空再抽代码 QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("entrust_type", 1); queryWrapper.eq("entrust_status", "0.5"); map.put("dtj", service.count(queryWrapper)); queryWrapper.clear(); + queryWrapper.eq("entrust_type", 1); queryWrapper.eq("entrust_status", "1"); map.put("djy", service.count(queryWrapper)); queryWrapper.clear(); + queryWrapper.eq("entrust_type", 1); queryWrapper.eq("entrust_status", "2"); map.put("djh", service.count(queryWrapper)); queryWrapper.clear(); - queryWrapper.eq("entrust_status", "111").or(); - queryWrapper.eq("entrust_status", "2.1"); + queryWrapper.eq("entrust_type", 1); + queryWrapper.and(qw -> qw.eq("entrust_status", "111").or() + .eq("entrust_status", "2.1")); map.put("jcz", service.count(queryWrapper)); queryWrapper.clear(); - queryWrapper.eq("entrust_status", "7").or() - .eq("entrust_status", "8"); + queryWrapper.eq("entrust_type", 1); + queryWrapper.and(qw -> qw.eq("entrust_status", "7").or() + .eq("entrust_status", "8")); map.put("ywc", service.count(queryWrapper)); queryWrapper.clear(); + queryWrapper.eq("entrust_type", 1); queryWrapper.eq("entrust_status", "-1"); map.put("yzf", service.count(queryWrapper)); queryWrapper.clear(); + queryWrapper.eq("entrust_type", 1); queryWrapper.eq("entrust_status", "-0.5"); map.put("djc", service.count(queryWrapper)); queryWrapper.clear(); @@ -1496,63 +1014,93 @@ public class EntrustController extends BladeController { String acceptance = ""; if ("1".equals(number)) { if (entrusts.size() >= 0 && entrusts.size() < 9) { - acceptance = "SDCADC-W-" + year + "000" + (entrusts.size() + 1); + acceptance = "SDCADC-W-" + year + "000" + (entrusts.size() + 1); } if (entrusts.size() >= 9 && entrusts.size() < 99) { - acceptance = "SDCADC-W-" + year + "00" + (entrusts.size() + + 1); + acceptance = "SDCADC-W-" + year + "00" + (entrusts.size() + +1); } if (entrusts.size() >= 99 && entrusts.size() < 999) { - acceptance = "SDCADC-W-" + year + "0" + (entrusts.size() + 1); + acceptance = "SDCADC-W-" + year + "0" + (entrusts.size() + 1); } if (entrusts.size() >= 999 && entrusts.size() < 9999) { - acceptance = "SDCADC-W-" + year + (entrusts.size() + 1); + acceptance = "SDCADC-W-" + year + (entrusts.size() + 1); } } if ("2".equals(number)) { if (entrusts.size() >= 0 && entrusts.size() < 9) { - acceptance = "SDCADC-J-" + year + "000" + (entrusts.size() + 1); + acceptance = "SDCADC-J-" + year + "000" + (entrusts.size() + 1); } if (entrusts.size() >= 9 && entrusts.size() < 99) { - acceptance = "SDCADC-J-" + year + "00" + (entrusts.size() + 1); + acceptance = "SDCADC-J-" + year + "00" + (entrusts.size() + 1); } if (entrusts.size() >= 99 && entrusts.size() < 999) { - acceptance = "SDCADC-J-" + year + "0" + (entrusts.size() + 1); + acceptance = "SDCADC-J-" + year + "0" + (entrusts.size() + 1); } if (entrusts.size() >= 999 && entrusts.size() < 9999) { - acceptance = "SDCADC-J-" + year + (entrusts.size() + 1); + acceptance = "SDCADC-J-" + year + (entrusts.size() + 1); } } if ("3".equals(number)) { if (entrusts.size() >= 0 && entrusts.size() < 9) { - acceptance = "SDCADC-Z-" + year + "000" + (entrusts.size() + 1); + acceptance = "SDCADC-Z-" + year + "000" + (entrusts.size() + 1); } if (entrusts.size() >= 9 && entrusts.size() < 99) { - acceptance = "SDCADC-Z-" + year + "00" + (entrusts.size() + 1); + acceptance = "SDCADC-Z-" + year + "00" + (entrusts.size() + 1); } if (entrusts.size() >= 99 && entrusts.size() < 999) { - acceptance = "SDCADC-Z-" + year + "0" + (entrusts.size() + 1); + acceptance = "SDCADC-Z-" + year + "0" + (entrusts.size() + 1); } if (entrusts.size() >= 999 && entrusts.size() < 9999) { - acceptance = "SDCADC-Z-" + year + (entrusts.size() + 1); + acceptance = "SDCADC-Z-" + year + (entrusts.size() + 1); } } if ("4".equals(number)) { if (entrusts.size() >= 0 && entrusts.size() < 9) { - acceptance = "SDCADC-S-" + year + "000" + (entrusts.size() + 1); + acceptance = "SDCADC-S-" + year + "000" + (entrusts.size() + 1); } if (entrusts.size() >= 9 && entrusts.size() < 99) { - acceptance = "SDCADC-S-" + year + "00" + (entrusts.size() + 1); + acceptance = "SDCADC-S-" + year + "00" + (entrusts.size() + 1); } if (entrusts.size() >= 99 && entrusts.size() < 999) { - acceptance = "SDCADC-S-" + year + "0" + (entrusts.size() + 1); + acceptance = "SDCADC-S-" + year + "0" + (entrusts.size() + 1); } if (entrusts.size() >= 999 && entrusts.size() < 9999) { - acceptance = "SDCADC-S-" + year + (entrusts.size() + 1); + acceptance = "SDCADC-S-" + year + (entrusts.size() + 1); } } return acceptance; } + /** + * 合同受理编号 + */ + @GetMapping("/contractAcceptance") + public String contractAcceptance(String name) { + LocalDateTime date = LocalDateTime.now(); + int year = date.getYear(); + String month = ""; + int monthValue = date.getMonthValue(); + if (monthValue < 10) { + month = "0" + monthValue; + } else { + month = "" + monthValue; + } + String num = "SDHVTC-" + year + month; + if ("猪".equals(name)) { + num += "A"; + } else if ("牛".equals(name)) { + num += "B"; + } else if ("羊".equals(name)) { + num += "C"; + } else if ("鸡".equals(name)) { + num += "D"; + } else if ("鸭".equals(name)) { + num += "E"; + } else if ("鹅".equals(name)) { + num += "F"; + } + return num; + } /** * 16.样品处理 @@ -1617,7 +1165,6 @@ public class EntrustController extends BladeController { service.simpleHandlePrint(id, response); } - /** * 22.委托单保存待提交 */ @@ -1740,7 +1287,6 @@ public class EntrustController extends BladeController { return entrust; } - /** * 23.委托单编辑 */ @@ -1758,12 +1304,11 @@ public class EntrustController extends BladeController { return map; } - /** * 24.二维码生成 */ @GetMapping("/QrcodeUtils") - public void QrcodeUtils(String content , HttpServletResponse response) throws Exception { + public void QrcodeUtils(String content, HttpServletResponse response) throws Exception { BufferedImage img = QrcodeUtils.generateQRCodeImage(content, 400, ClassLoader.getSystemResourceAsStream("logo.png")); Map result = new HashMap<>(); @@ -1775,7 +1320,7 @@ public class EntrustController extends BladeController { FileInputStream fis = null; try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); - ImageIO.write(img, "png",bos ); + ImageIO.write(img, "png", bos); byte[] bytes = bos.toByteArray(); farView.setData(bytes); } catch (Exception e) { @@ -1864,4 +1409,93 @@ public class EntrustController extends BladeController { } return R.status(service.updateById(entrust)); } + + /** + * 合同计划列表 + */ + @GetMapping("/contractList") + public R> ContractList(Entrust entry, Query query) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + if (entry != null && entry.getEntrustStatus() != null && "111".equals(entry.getEntrustStatus())) { + queryWrapper.and(qw -> + qw.eq(Entrust::getEntrustStatus, "111").or() + .eq(Entrust::getEntrustStatus, "2.1")); + } + // 已完成状态 + else if (entry != null && entry.getEntrustStatus() != null && "8".equals(entry.getEntrustStatus())) { + queryWrapper.and(qw -> + qw.eq(Entrust::getEntrustStatus, "7").or() + .eq(Entrust::getEntrustStatus, "8")); + } + // 全部 + else { + if (entry.getEntrustStatus() != null) { + queryWrapper.eq(Entrust::getEntrustStatus, entry.getEntrustStatus()); + } + if (entry.getAcceptanceNum() != null) { + queryWrapper.and(qw -> + qw.like(Entrust::getAcceptanceNum, entry.getAcceptanceNum()).or() + .like(Entrust::getSimpleName, entry.getAcceptanceNum())); + } + } + queryWrapper.eq(Entrust::getEntrustType, 2); + queryWrapper.orderByDesc(Entrust::getCreateTime); + IPage page = service.page(Condition.getPage(query), queryWrapper); + return R.data(page); + } + + /** + * 合同计划列表所有状态及其对应的数量 + */ + @GetMapping("/getContractStatusAndCount") + public R> getContractStatusAndCount() { + Map map = new HashMap<>(10); + QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("entrust_type", 2); +// queryWrapper.eq("entrust_status", "0.5"); +// map.put("dtj", service.count(queryWrapper)); +// queryWrapper.clear(); + + queryWrapper.eq("entrust_type", 2); + queryWrapper.eq("entrust_status", "1"); + map.put("djy", service.count(queryWrapper)); + queryWrapper.clear(); + + queryWrapper.eq("entrust_type", 2); + queryWrapper.eq("entrust_status", "2"); + map.put("djh", service.count(queryWrapper)); + queryWrapper.clear(); + + queryWrapper.eq("entrust_type", 2); + queryWrapper.and(qw -> qw.eq("entrust_status", "111").or() + .eq("entrust_status", "2.1")); + map.put("jcz", service.count(queryWrapper)); + queryWrapper.clear(); + + queryWrapper.eq("entrust_type", 2); + queryWrapper.and(qw -> qw.eq("entrust_status", "7").or() + .eq("entrust_status", "8")); + map.put("ywc", service.count(queryWrapper)); + queryWrapper.clear(); + +// queryWrapper.eq("entrust_type", 2); +// queryWrapper.eq("entrust_status", "-1"); +// map.put("yzf", service.count(queryWrapper)); +// queryWrapper.clear(); + +// queryWrapper.eq("entrust_type", 2); +// queryWrapper.eq("entrust_status", "-0.5"); +// map.put("djc", service.count(queryWrapper)); +// queryWrapper.clear(); +// queryWrapper.eq("entrust_status", "4").or(); +// queryWrapper.eq("entrust_status", "5").or(); +// queryWrapper.eq("entrust_status", "6"); +// map.put("dbz", service.count(queryWrapper)); +// queryWrapper.clear(); + +// queryWrapper.eq("entrust_status", "-1"); +// map.put("sb", service.count(queryWrapper)); +// } + return R.data(map); + } } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java index 83d8b9d..46cd76a 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineItemController.java @@ -175,10 +175,10 @@ public class ExamineItemController extends BladeController { */ @GetMapping("/getReagent") public R> getReagent(String id, String name, String reagentId) throws Exception { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); List reagentList = new ArrayList<>(); // 如果name不为空,用name模糊查询 if (StringUtils.isNotBlank(name)) { - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.like(Reagent::getName, name); reagentList = reagentService.list(wrapper); } @@ -186,74 +186,60 @@ public class ExamineItemController extends BladeController { else { // id查检测项目 ExamineItem examineItem = service.getById(id); - if (examineItem != null) { - try { - // 条件查询标签一样的试剂数据 - LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Reagent::getType, "1"); -// wrapper.eq(Reagent::getAnimalSpecies, examineItem.getAnimalSpecies()); - wrapper.eq(Reagent::getExamineType, examineItem.getExamineType()); - List reagentArrayList = reagentService.list(wrapper); - String[] animalSplit = examineItem.getAnimalSpecies().split(","); - List reagents = new ArrayList<>(); - for (Reagent reagent : reagentArrayList) { - if (StringUtils.isNotEmpty(reagent.getAnimalSpecies())) { - String[] split = reagent.getAnimalSpecies().split(","); - for (String s : split) { - if (Arrays.asList(animalSplit).contains(s)) { - reagents.add(reagent); - break; - } - } - } - } - - // 非空 遍历 - if (CollectionUtils.isNotEmpty(reagents)) { - for (Reagent reagent : reagents) { - List instrumentList = new ArrayList<>(); - if (reagent != null && reagent.getInstrumentId() != null && !"".equals(reagent.getInstrumentId())) { - // 根据仪器id查数据 - String[] split1 = reagent.getInstrumentId().split(","); - for (String s1 : split1) { - Instrument instrument = instrumentService.getById(s1); - instrumentList.add(instrument); - } - } - reagent.setInstrumentList(instrumentList); - List list = JSON.parseArray(reagent.getTypeAndOperation(), TypeAndOperation.class); - reagent.setOperationList(list); - } - reagentList.addAll(reagents); - } - if (StringUtils.isNotEmpty(reagentId)) { - String[] split = reagentId.split(","); - for (String s : split) { - Reagent reagent = reagentService.getById(s); - reagentList.add(reagent); - } - } -// String reagentId = examineItem.getReagentId(); -// String[] split = reagentId.split(","); -// for (String s : split) { -// List instrumentList = new ArrayList<>(); -// Reagent reagent = reagentService.getById(s); -// if (reagent != null && reagent.getInstrumentId() != null && !"".equals(reagent.getInstrumentId())) { -// String[] split1 = reagent.getInstrumentId().split(","); -// for (String s1 : split1) { -// Instrument instrument = instrumentService.getById(s1); -// instrumentList.add(instrument); + String substring = examineItem.getName().substring(0, 3); + wrapper.like(Reagent::getName, substring); + reagentList = reagentService.list(wrapper); +// if (examineItem != null) { +// try { +// // 条件查询标签一样的试剂数据 +// LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); +// wrapper.eq(Reagent::getType, "1"); +//// wrapper.eq(Reagent::getAnimalSpecies, examineItem.getAnimalSpecies()); +// wrapper.eq(Reagent::getExamineType, examineItem.getExamineType()); +// List reagentArrayList = reagentService.list(wrapper); +// String[] animalSplit = examineItem.getAnimalSpecies().split(","); +// List reagents = new ArrayList<>(); +// for (Reagent reagent : reagentArrayList) { +// if (StringUtils.isNotEmpty(reagent.getAnimalSpecies())) { +// String[] split = reagent.getAnimalSpecies().split(","); +// for (String s : split) { +// if (Arrays.asList(animalSplit).contains(s)) { +// reagents.add(reagent); +// break; +// } +// } +// } +// } +// +// // 非空 遍历 +// if (CollectionUtils.isNotEmpty(reagents)) { +// for (Reagent reagent : reagents) { +// List instrumentList = new ArrayList<>(); +// if (reagent != null && reagent.getInstrumentId() != null && !"".equals(reagent.getInstrumentId())) { +// // 根据仪器id查数据 +// String[] split1 = reagent.getInstrumentId().split(","); +// for (String s1 : split1) { +// Instrument instrument = instrumentService.getById(s1); +// instrumentList.add(instrument); +// } +// } +// reagent.setInstrumentList(instrumentList); +// List list = JSON.parseArray(reagent.getTypeAndOperation(), TypeAndOperation.class); +// reagent.setOperationList(list); // } +// reagentList.addAll(reagents); // } -// reagent.setInstrumentList(instrumentList); -// List list = JSON.parseArray(reagent.getTypeAndOperation(), TypeAndOperation.class); -// reagent.setOperationList(list); -// reagentList.add(reagent); +// if (StringUtils.isNotEmpty(reagentId)) { +// String[] split = reagentId.split(","); +// for (String s : split) { +// Reagent reagent = reagentService.getById(s); +// reagentList.add(reagent); +// } +// } +// } catch (NullPointerException e) { +// throw new Exception("请给当前检测项目关联对应的试剂"); // } - } catch (NullPointerException e) { - throw new Exception("请给当前检测项目关联对应的试剂"); - } - } +// } } return R.data(reagentList); } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java index ad5f939..b5d170b 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineResultController.java @@ -90,7 +90,7 @@ public class ExamineResultController extends BladeController { Examine examine = examineService.getById(examineId); ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); ExamineWay examineWay = examineWayService.getById(examine.getExamineWayId()); - if ("2".equals(examineWay.getInputMode()) || "6".equals(examineWay.getInputMode())) { + if ("2".equals(examineWay.getInputMode()) || "6".equals(examineWay.getInputMode()) || "7".equals(examineWay.getInputMode())) { return blsExcel(file, examineId); } else if ("3".equals(examineWay.getInputMode())) { return ktyExcel(file, examineId); @@ -98,10 +98,9 @@ public class ExamineResultController extends BladeController { // else if ("4".equals(examineWay.getInputMode())) { // return pcrExcel(file, examineId); // } - else if ("5".equals(examineWay.getInputMode())) { + else if ("5".equals(examineWay.getInputMode())) { return xnExcel(file, examineId); - } - else { + } else { return ptExcel(file, examineId, reagentId); } } @@ -3147,7 +3146,7 @@ public class ExamineResultController extends BladeController { List read = ExcelUtil.read(file, ExamineTemplate2Excel.class); if (read != null && read.size() > 0) { // 布鲁氏杆菌抗体检测(平板凝集) - if ("2".equals(examineWay.getInputMode())) { + if ("2".equals(examineWay.getInputMode()) || "7".equals(examineWay.getInputMode())) { for (ExamineTemplate2Excel excel : read) { if ("+".equals(excel.getValue())) { excel.setResult("阳性"); @@ -3724,8 +3723,8 @@ public class ExamineResultController extends BladeController { * 口蹄疫Excel解析数据 */ private R ktyExcel1(MultipartFile file, String examineId, - String infoStr, - String reg) throws Exception { + String infoStr, + String reg) throws Exception { List originRowDatas = ExcelUtil.read(file, ExamineExcel.class); String[] split = examineId.split(","); Examine examine = examineService.getById(split[0]); @@ -3933,14 +3932,14 @@ public class ExamineResultController extends BladeController { data.put("log2", isPig ? "≥1:64" : "≥1:128"); data.put("result", "阳性"); allDatas.add(data); - yangCount ++; - simpleCount ++; + yangCount++; + simpleCount++; } else { data.put("log2", isPig ? "<1:64" : "<1:128"); data.put("result", "阴性"); allDatas.add(data); - yinCount ++; - simpleCount ++; + yinCount++; + simpleCount++; } } } @@ -4077,14 +4076,14 @@ public class ExamineResultController extends BladeController { data.put("log2", isPig ? "≥1:64" : "≥1:128"); data.put("result", "阳性"); allDatas.add(data); - yangCount ++; - simpleCount ++; + yangCount++; + simpleCount++; } else { data.put("log2", isPig ? "<1:64" : "<1:128"); data.put("result", "阴性"); allDatas.add(data); - yinCount ++; - simpleCount ++; + yinCount++; + simpleCount++; } } } @@ -4229,7 +4228,8 @@ public class ExamineResultController extends BladeController { List list3 = new ArrayList<>(); list3.add(list2.get(1)); list3.add(list2.get(2)); - Map info = JSON.parseObject(infoStr, new TypeReference>() {}); + Map info = JSON.parseObject(infoStr, new TypeReference>() { + }); List list = new ArrayList<>(info.keySet()); // 公示内容换成真实数据换成真实数据值 @@ -4313,7 +4313,6 @@ public class ExamineResultController extends BladeController { // } // return R.data(read); // } - @PostMapping("/pcrExcel") public R pcrExcel(@RequestBody ExamineResult entry) { List read = JSON.parseArray(entry.getJsonDatas(), PCR2Excel.class); @@ -4372,7 +4371,8 @@ public class ExamineResultController extends BladeController { if (read != null && read.size() > 0) { List list = Arrays.asList("<1", "<1", "1", "2", "3"); List list2 = Arrays.asList("4", "5", "6", "≥6", "7", "8", "9", "≥10", ">=6", ">=10"); - for (XN2Excel excel : read) { + for (int i = 0; i < read.size() - 2; i++) { + XN2Excel excel = read.get(i); if (list.contains(excel.getCtValue())) { excel.setResult("阴性"); } else if (list2.contains(excel.getCtValue())) { @@ -4515,7 +4515,7 @@ public class ExamineResultController extends BladeController { // ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); ExamineWay examineWay = examineWayService.getById(examine.getExamineWayId()); // 如果是布鲁氏杆菌抗体检测 - if ("2".equals(examineWay.getInputMode()) || "6".equals(examineWay.getInputMode())) { + if ("2".equals(examineWay.getInputMode()) || "6".equals(examineWay.getInputMode()) || "7".equals(examineWay.getInputMode())) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SimpleDoExamineLog::getExamineId, id); wrapper.eq(SimpleDoExamineLog::getIsFinished, 0); @@ -4565,6 +4565,12 @@ public class ExamineResultController extends BladeController { pcrExcel.setExperieNum(s); list.add(pcrExcel); } + XNExcel pcrExcel1 = new XNExcel(); + pcrExcel1.setExperieNum("阴性对照"); + list.add(pcrExcel1); + XNExcel pcrExcel2 = new XNExcel(); + pcrExcel2.setExperieNum("阳性对照"); + list.add(pcrExcel2); ExcelUtil.export(response, "结果模板", "结果模板", list, XNExcel.class); } // 普通检测 diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java index b0f26f7..fffd5a9 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleRelController.java @@ -212,7 +212,7 @@ public class SimpleRelController extends BladeController { wrapper.eq(SimpleRel::getOriginalNum, simpleRel.getOriginalNum()); int count = simpleRelService.count(wrapper); // 如果有相同的,抛异常提示 - if (count > 0) { + if (count > 1) { throw new Exception("目标原始编号和现有原始编号重复,请检查!"); } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/ContractSampleMapper.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/ContractSampleMapper.java new file mode 100644 index 0000000..5d5022f --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/ContractSampleMapper.java @@ -0,0 +1,13 @@ + +package org.springblade.lims.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.springblade.lims.entry.ContractSample; + +/** + * @author lt + * @since 2022年11月15日15:52:49 + */ +public interface ContractSampleMapper extends BaseMapper { + +} diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.xml b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.xml index e701ee5..c0c1fa3 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.xml +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/mapper/EntrustMapper.xml @@ -16,6 +16,7 @@ WHERE investigative_type = #{investigativeType} AND create_time >= #{createTime} + AND entrust_type = 1 AND is_deleted in (0,1) AND entrust_status <> - 1 diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IContractSampleService.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IContractSampleService.java new file mode 100644 index 0000000..56ca009 --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IContractSampleService.java @@ -0,0 +1,17 @@ + +package org.springblade.lims.service; + + +import org.springblade.core.mp.base.BaseService; +import org.springblade.lims.entry.Contract; +import org.springblade.lims.entry.ContractSample; + +import javax.servlet.http.HttpServletResponse; + +/** + * @author lt + * @since 2022年11月15日15:53:33 + */ +public interface IContractSampleService extends BaseService { + +} diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IContractService.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IContractService.java index af5d179..15a6127 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IContractService.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/IContractService.java @@ -5,6 +5,8 @@ package org.springblade.lims.service; import org.springblade.core.mp.base.BaseService; import org.springblade.lims.entry.Contract; +import javax.servlet.http.HttpServletResponse; + /** * * @@ -13,4 +15,5 @@ import org.springblade.lims.entry.Contract; */ public interface IContractService extends BaseService { + void contractReview(String id, HttpServletResponse response); } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ContractSampleServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ContractSampleServiceImpl.java new file mode 100644 index 0000000..567eb20 --- /dev/null +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ContractSampleServiceImpl.java @@ -0,0 +1,33 @@ + +package org.springblade.lims.service.impl; + + +import cn.afterturn.easypoi.word.WordExportUtil; +import lombok.AllArgsConstructor; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.springblade.core.mp.base.BaseServiceImpl; +import org.springblade.lims.entry.Contract; +import org.springblade.lims.entry.ContractSample; +import org.springblade.lims.mapper.ContractMapper; +import org.springblade.lims.mapper.ContractSampleMapper; +import org.springblade.lims.service.IContractSampleService; +import org.springblade.lims.service.IContractService; +import org.springblade.system.cache.DictBizCache; +import org.springblade.system.enums.DictBizEnum; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + + +/** + * @author lt + * @since 2022年11月15日15:54:13 + */ +@Service +@AllArgsConstructor +public class ContractSampleServiceImpl extends BaseServiceImpl implements IContractSampleService { + +} diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ContractServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ContractServiceImpl.java index 16582d5..fbc652c 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ContractServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ContractServiceImpl.java @@ -2,13 +2,22 @@ package org.springblade.lims.service.impl; +import cn.afterturn.easypoi.word.WordExportUtil; import lombok.AllArgsConstructor; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.lims.entry.Contract; import org.springblade.lims.mapper.ContractMapper; import org.springblade.lims.service.IContractService; +import org.springblade.system.cache.DictBizCache; +import org.springblade.system.enums.DictBizEnum; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.HashMap; +import java.util.Map; + /** * @@ -19,4 +28,61 @@ import org.springframework.stereotype.Service; @AllArgsConstructor public class ContractServiceImpl extends BaseServiceImpl implements IContractService { + @Override + public void contractReview(String id, HttpServletResponse response) { + Map result = new HashMap<>(); + Contract contract = this.getById(id); + result.put("1", contract.getEntrustUnit()); + result.put("2", contract.getEntryName()); + result.put("3", contract.getContractCode()); + result.put("4", contract.getExamineContent()); + result.put("5", contract.getContractMount()); + result.put("6", contract.getReviewConclusion()); + result.put("7", contract.getCenterDirectorOpinion()); + String url = DictBizCache.getKey(DictBizEnum.PRINT_URL.getName(), "contractPrint"); + + //模板地址 +// String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//委托单(模板).docx"; + + XWPFDocument doc = null; +// FileOutputStream fos = null; + try { + doc = WordExportUtil.exportWord07(url, result); +// fos = new FileOutputStream("C://Users//AAA//Desktop//shuojin//dayin//委托单.docx"); + String filename = "测试.docx"; + + response.setContentType("application/octet-stream"); + response.setHeader("content-disposition", "attachment;filename=12344.docx"); + + doc.write(response.getOutputStream()); + + contract.setStatus(4); + this.updateById(contract); + } catch (Exception e) { + e.printStackTrace(); + } finally { +// if (null != doc) { +//// doc.close(); +// try { +// doc.write(fos); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } +// if (null != fos) { +// try { +// fos.close(); +// } catch (IOException e) { +// e.printStackTrace(); +// } +// } + if (null != doc) { + try { + doc.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + } } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java index 9a1e409..f19bd9a 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/EntrustServiceImpl.java @@ -91,6 +91,8 @@ public class EntrustServiceImpl extends BaseServiceImpl private IContractService contractService; @Autowired private IRepairApplicationService repairApplicationService; + @Autowired + private IContractSampleService contractSampleService; // @Value("${handleUrl}") @@ -175,7 +177,9 @@ public class EntrustServiceImpl extends BaseServiceImpl long id = RandomUtils.nextLong(); // 送检单位、采样单位之类的,如果没有就新增 - addIfNull(entrust); + if (entrust.getContractId() == null) { + addIfNull(entrust); + } // 新增或修改 检测集合 addOrUpdateExamines(entrust.getExamines(), entrust, id); @@ -201,6 +205,20 @@ public class EntrustServiceImpl extends BaseServiceImpl // 委托单入库/修改 addOrUpdateEntrust(entrust, id); + // 合同评审收样登记入库 + if (entrust.getContractId() != null) { + if (CollectionUtils.isNotEmpty(entrust.getContractSamples())) { + List contractSamples = entrust.getContractSamples(); + for (ContractSample contractSample : contractSamples) { + contractSample.setContractId(entrust.getContractId().toString()); + contractSample.setEntrustId(String.valueOf(entrust.getId())); + contractSample.setSampleName(entrust.getSimpleName()); + contractSample.setCollectSampleTime(entrust.getSamplingDate()); + } + contractSampleService.saveBatch(contractSamples); + } + } + return entrust; } @@ -303,7 +321,7 @@ public class EntrustServiceImpl extends BaseServiceImpl result.put("company", entrust.getTakeCompany()); result.put("person", entrust.getTakePerson()); result.put("address", entrust.getTakeCompanyAddress()); - result.put("phone", entrust.getTakePhone()); + result.put("takePhone", entrust.getTakePhone()); result.put("resultList", resultList); result.put("list", resultList1); @@ -3209,7 +3227,8 @@ public class EntrustServiceImpl extends BaseServiceImpl map1.put("3", b1); map1.put("4", b2); map2.put("2", "阴性对照OD平均值与阳性对照OD平均值之差"); - map2.put("3", Math.abs(Double.parseDouble(format) - Double.parseDouble(format1))); + double cha = Double.parseDouble(format) - Double.parseDouble(format1); + map2.put("3", cha > 0 ? cha : -cha); } // 猪瘟病毒间接ELISA抗体检测试剂盒---北京明日达科技发展有限责任公司 else if ("1570671477110534145".equals(reagentId)) { @@ -4343,10 +4362,22 @@ public class EntrustServiceImpl extends BaseServiceImpl */ private Entrust isContractTypeEntrust(Entrust entrust) { if (entrust.getContractId() != null) { +// if (CollectionUtils.isNotEmpty(entrust.getContractSamples())) { +// List contractSamples = entrust.getContractSamples(); +// for (ContractSample contractSample : contractSamples) { +// contractSample.setContractId(entrust.getContractId().toString()); +// contractSample.setEntrustId(String.valueOf(id)); +// contractSample.setSampleName(entrust.getSimpleName()); +// contractSample.setCollectSampleTime(entrust.getSamplingDate()); +// } +// contractSampleService.saveBatch(contractSamples); +// } + Contract byId = contractService.getById(entrust.getContractId()); + entrust.setContractCode(byId.getContractCode()); entrust.setEntrustType(2); Contract contract = new Contract(); contract.setId(entrust.getContractId()); - contract.setStatus(2); + contract.setStatus(6); contractService.updateById(contract); } else { entrust.setEntrustType(1); @@ -4358,6 +4389,21 @@ public class EntrustServiceImpl extends BaseServiceImpl * 样品关联数据入库 */ private Entrust addSimpleRel(Entrust entrust, long id) { + // 合同评审类型委托单计算样品数量计算 + int total = 0; + if (entrust.getContractId() != null) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Entrust::getContractId, entrust.getContractId()); + wrapper.eq(Entrust::getFarmType, entrust.getFarmType()); + wrapper.eq(Entrust::getSimpleName, entrust.getSimpleName()); + List entrusts = this.list(wrapper); + if (CollectionUtils.isNotEmpty(entrusts)) { + for (Entrust entrust1 : entrusts) { + total += entrust1.getSimpleCount(); + } + } + } + List rels = new ArrayList<>(); LocalDateTime now = LocalDateTime.now(); @@ -4370,12 +4416,12 @@ public class EntrustServiceImpl extends BaseServiceImpl // String s = strings[1] + "-" + now.getYear() + month1 + day1 + hour1 + "-"; String s = ""; - StringBuilder simpleName = new StringBuilder(); + String simpleName = ""; Integer simpleCount = 0; List> list = entrust.getSimpleNames(); // 检测编号计数器 - int experieNumCount = 1; + int experieNumCount = total + 1; // 样品排序 for (int sort = 0; sort < list.size(); sort++) { Map map = list.get(sort); @@ -4383,9 +4429,9 @@ public class EntrustServiceImpl extends BaseServiceImpl String name = (String) map.get("simpleName"); // 拼接样品名称并去逗号 if (sort == (list.size() - 1)) { - simpleName.append(name); + simpleName += name; } else { - simpleName.append(name).append(","); + simpleName += name + ","; } // 样品数量 Integer count = (Integer) map.get("simpleCount"); @@ -4430,7 +4476,7 @@ public class EntrustServiceImpl extends BaseServiceImpl } simpleRelService.saveBatch(rels); // 委托单内容补充 - entrust.setSimpleName(simpleName.toString()); + entrust.setSimpleName(simpleName); entrust.setSimpleCount(simpleCount); String originalNum = "01-" + fullByZero(simpleCount); diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineResultServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineResultServiceImpl.java index 1261647..65731a0 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineResultServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/ExamineResultServiceImpl.java @@ -127,7 +127,7 @@ public class ExamineResultServiceImpl extends BaseServiceImpl 0) { + if (split.length > 0) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("entrust_id", byId.getEntrustId()); queryWrapper.eq("experie_num", split); @@ -149,20 +149,23 @@ public class ExamineResultServiceImpl extends BaseServiceImpl queryWrapper = new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("input_mode", "6"); - List list = examineItemService.list(queryWrapper); + List list = examineWayService.list(queryWrapper); if (CollectionUtil.isNotEmpty(list) && list.get(0) != null) { // 布鲁氏杆菌抗体检测(试管凝集微量法) - ExamineItem examineItem = list.get(0); - examine.setExamineItemId(examineItem.getId()); - String wayAndBasis = examineItem.getWayAndBasis(); - List wayAndBaseList = JSON.parseArray(wayAndBasis, WayAndBasis.class); - if (CollectionUtil.isNotEmpty(wayAndBaseList) && wayAndBaseList.get(0) != null) { - WayAndBasis wayAndBasis1 = wayAndBaseList.get(0); - examine.setExamineWayId(Long.valueOf(wayAndBasis1.getExamineWayId())); - examine.setExamineBasisId(Long.valueOf(wayAndBasis1.getExamineBasisId())); - } + ExamineWay examineWay = list.get(0); +// ExamineItem examineItem = list.get(0); +// examine.setExamineItemId(examineItem.getId()); +// String wayAndBasis = examineItem.getWayAndBasis(); +// List wayAndBaseList = JSON.parseArray(wayAndBasis, WayAndBasis.class); +// if (CollectionUtil.isNotEmpty(wayAndBaseList) && wayAndBaseList.get(0) != null) { +// WayAndBasis wayAndBasis1 = wayAndBaseList.get(0); +// examine.setExamineWayId(Long.valueOf(wayAndBasis1.getExamineWayId())); +// examine.setExamineBasisId(Long.valueOf(wayAndBasis1.getExamineBasisId())); +// } + examine.setExamineWayId(examineWay.getId()); + examine.setExamineBasisId(1585248987194306561L); } examine.setIsFinished("-1"); examineService.save(examine); diff --git a/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java b/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java index 5516b82..a560dcf 100644 --- a/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java +++ b/lab-service/lab-user/src/main/java/org/springblade/system/user/service/impl/UserServiceImpl.java @@ -2,6 +2,7 @@ package org.springblade.system.user.service.impl; +import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -113,7 +114,7 @@ public class UserServiceImpl extends BaseServiceImpl implement public boolean updateUserInfo(User user) { String realPath = sysClient.getParamValue("electronic_signature_real_path").getData(); User byId = this.getById(user.getId()); - if (byId.getElectronicSignature() != null && !"".equals(byId.getElectronicSignature())) { + if (StringUtils.isNotBlank(byId.getElectronicSignature()) && StringUtils.isNotBlank(user.getElectronicSignature())) { File file = new File(realPath + byId.getElectronicSignature()); if (file.exists()) { file.delete(); @@ -126,7 +127,7 @@ public class UserServiceImpl extends BaseServiceImpl implement } } user.setPassword(null); - if (!"".equals(user.getElectronicSignature()) && user.getElectronicSignature() != null) { + if (StringUtils.isNotBlank(user.getElectronicSignature())) { Random random = new Random(); String fileName = random.nextLong() + ".png"; String path = realPath + fileName;