diff --git a/lab-service-api/lab-iot-api/lab-iot-api.iml b/lab-service-api/lab-iot-api/lab-iot-api.iml index 0cd55b6..eb13efe 100644 --- a/lab-service-api/lab-iot-api/lab-iot-api.iml +++ b/lab-service-api/lab-iot-api/lab-iot-api.iml @@ -15,8 +15,8 @@ - - + + 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 17aa9ff..a9ec136 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 @@ -59,7 +59,6 @@ public class SimpleRelController extends BladeController { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId()); wrapper.eq(SimpleRel::getStatus, 0); -// wrapper.orderByAsc(SimpleRel::getSort); List rels = simpleRelService.list(wrapper); // 3.开始计算 int num = 1; 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 9bd03d7..d2b4ac9 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 @@ -3,23 +3,19 @@ package org.springblade.lims.service.impl; import cn.afterturn.easypoi.entity.ImageEntity; import cn.afterturn.easypoi.word.WordExportUtil; import com.alibaba.fastjson.JSON; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import lombok.AllArgsConstructor; import lombok.NoArgsConstructor; import org.apache.commons.lang3.RandomUtils; import org.apache.poi.xwpf.usermodel.XWPFDocument; -import org.checkerframework.checker.units.qual.A; import org.springblade.core.tool.api.R; import org.springblade.lims.entry.*; import org.springblade.lims.excel.ExamineTemplate2Excel; import org.springblade.lims.excel.PCR2Excel; -import org.springblade.lims.excel.PCRExcel; import org.springblade.lims.mapper.EntrustMapper; import org.springblade.lims.service.*; import org.springblade.core.mp.base.BaseServiceImpl; -import org.springblade.resource.enums.SysTypeEnum; -import org.springblade.resource.feign.IMessageClient; import org.springblade.system.cache.DictBizCache; import org.springblade.system.enums.DictBizEnum; import org.springblade.system.feign.ISysClient; @@ -130,160 +126,159 @@ public class EntrustServiceImpl extends BaseServiceImpl @Override @Transactional(rollbackFor = Exception.class) public Entrust addEntrust(Entrust entrust) { - // 如果不是追加检测项目走if内 - if (entrust.getOperatType() == null || !"1".equals(entrust.getOperatType())) { - long id = RandomUtils.nextLong(); - // 送检单位 - Long entrustCustomerId = entrust.getEntrustCustomerId(); - String entrustCustomerName = entrust.getEntrustCustomerName(); - EntrustCustomer byId = customerService.getById(entrustCustomerId); - if (byId != null) { - entrust.setEntrustCustomerName(byId.getName()); - } else { - EntrustCustomer customer = new EntrustCustomer(); - customer.setFullName(entrust.getSubmittedBy()); - customer.setName(entrust.getEntrustCustomerName()); - customer.setEmail(entrust.getPostalCode()); - customer.setFax(entrust.getFacsimile()); - customer.setPhone(entrust.getPhone()); - customer.setStatus(1); - customer.setId(RandomUtils.nextLong()); - customerService.save(customer); - } - // 采样单位 - EntrustCustomer byId1 = customerService.getById(entrust.getTakeCompanyId()); - if (byId1 != null) { - entrust.setTakeCompany(byId1.getName()); - } else { - EntrustCustomer customer = new EntrustCustomer(); - customer.setFullName(entrust.getTakePerson()); - customer.setName(entrust.getTakeCompany()); - customer.setAddress(entrust.getTakeCompanyAddress()); - customer.setPhone(entrust.getTakePhone()); - customer.setStatus(2); - customer.setId(RandomUtils.nextLong()); - customerService.save(customer); - } + // 如果是追加检测项目 + if (entrust.getOperatType() != null && "1".equals(entrust.getOperatType())) { + entrust.setEntrustStatus("2.1"); + this.updateById(entrust); + return entrust; + } - // 样品关联表入库 - List rels = new ArrayList<>(); - LocalDateTime now = LocalDateTime.now(); - int year = now.getYear(); - String month1; - int month = now.getMonthValue(); - String day1; - int day = now.getDayOfMonth(); - String hour1; - int hour = now.getHour(); - - if (month < 10) { - month1 = "0" + month; - } else { - month1 = "" + month; - } - if (day < 10) { - day1 = "0" + day; - } else { - day1 = "" + day; - } - if (hour < 10) { - hour1 = "0" + hour; - } else { - hour1 = "" + hour; - } - // 检测编号前缀 - String[] strings = entrust.getAcceptanceNum().split("-"); - String s = strings[1] + year + month1 + day1 + hour1 + "-"; - - StringBuilder simpleName = new StringBuilder(); - Integer simpleCount = 0; - List> list = entrust.getSimpleNames(); - - // 样品排序 - int sort = 1; - for (Map map : list) { - // 样品名称 - String name = (String) map.get("simpleName"); - simpleName.append(name).append(","); - // 样品数量 - Integer count = (Integer) map.get("simpleCount"); - simpleCount += count; - // 原始编号 - String num = (String) map.get("originalNum"); - String[] split = num.split("-"); - int a = Integer.parseInt(split[0]); - - for (int i = 0; i < count; i++) { - SimpleRel simpleRel = new SimpleRel(); - if (entrust.getId() != null) { - simpleRel.setEntrustId(entrust.getId()); - } else { - simpleRel.setEntrustId(id); - } - simpleRel.setSimpleName(name); - simpleRel.setReagentNum(1); - simpleRel.setReagentExperieNum(s + ((a - 1) * 2 + i + 1 + count)); - simpleRel.setExamineNum(1); - simpleRel.setExamineExperieNum(s + ((a - 1) * 2 + i + 1)); - simpleRel.setRecessiveNum((i + a) + ""); - simpleRel.setOriginalNum((i + a) + ""); - simpleRel.setStatus(0); - simpleRel.setSort(sort); - rels.add(simpleRel); - } - sort++; - } - simpleRelService.saveBatch(rels); - - // 委托单入库/修改 - if (entrust.getSampleReceiverId() != null) { - R userR = userClient.userInfoById(Long.valueOf(entrust.getSampleReceiverId())); - User data = userR.getData(); - if (data != null) { - entrust.setSampleReceiverName(data.getName()); + long id = RandomUtils.nextLong(); + + // 送检单位、采样单位之类的,如果没有就新增 + addIfNull(entrust); + + // 样品关联表入库 + List rels = new ArrayList<>(); + LocalDateTime now = LocalDateTime.now(); + + String month1 = fullByZero(now.getMonthValue()); + String day1 = fullByZero(now.getDayOfMonth()); + String hour1 = fullByZero(now.getHour()); + + // 检测编号前缀 + String[] strings = entrust.getAcceptanceNum().split("-"); + String s = strings[1] + now.getYear() + month1 + day1 + hour1 + "-"; + + StringBuilder simpleName = new StringBuilder(); + Integer simpleCount = 0; + List> list = entrust.getSimpleNames(); + + // 样品排序 + int sort = 1; + for (Map map : list) { + // 样品名称 + String name = (String) map.get("simpleName"); + simpleName.append(name).append(","); + // 样品数量 + Integer count = (Integer) map.get("simpleCount"); + simpleCount += count; + // 原始编号 + String num = (String) map.get("originalNum"); + String[] split = num.split("-"); + int a = Integer.parseInt(split[0]); + + for (int i = 0; i < count; i++) { + SimpleRel simpleRel = new SimpleRel(); + if (entrust.getId() != null) { + simpleRel.setEntrustId(entrust.getId()); + } else { + simpleRel.setEntrustId(id); } + simpleRel.setSimpleName(name); + simpleRel.setReagentNum(1); + simpleRel.setReagentExperieNum(s + ((a - 1) * 2 + i + 1 + count)); + simpleRel.setExamineNum(1); + simpleRel.setExamineExperieNum(s + ((a - 1) * 2 + i + 1)); + simpleRel.setRecessiveNum((i + a) + ""); + simpleRel.setOriginalNum((i + a) + ""); + simpleRel.setStatus(0); + simpleRel.setSort(sort); + rels.add(simpleRel); } - entrust.setSimpleName(simpleName.toString()); - entrust.setSimpleCount(simpleCount); - String originalNum = ""; - if (simpleCount > 9) { - originalNum = "01-" + simpleCount; - } else { - originalNum = "01-0" + simpleCount; - } - String s1 = JSON.toJSONString(entrust.getSimpleNames()); - entrust.setSimpleJson(s1); - entrust.setOriginalNum(originalNum); - entrust.setIsDeleted(0); - entrust.setCreateUser(null); - entrust.setCreateTime(new Date()); - entrust.setUpdateTime(new Date()); - entrust.setUpdateUser(null); - entrust.setEntrustStatus("1"); - // 是否为合同新增委托单 - if (entrust.getContractId() != null) { - entrust.setEntrustType(2); - Contract contract = new Contract(); - contract.setId(entrust.getContractId()); - contract.setStatus(2); - contractService.updateById(contract); - } else { - entrust.setEntrustType(1); - } - - if (entrust.getId() != null) { - this.updateById(entrust); - } else { - entrust.setId(id); - this.save(entrust); + sort++; + } + simpleRelService.saveBatch(rels); + + // 委托单入库/修改 + if (entrust.getSampleReceiverId() != null) { + R userR = userClient.userInfoById(Long.valueOf(entrust.getSampleReceiverId())); + User data = userR.getData(); + if (data != null) { + entrust.setSampleReceiverName(data.getName()); } + } + entrust.setSimpleName(simpleName.toString()); + entrust.setSimpleCount(simpleCount); + String originalNum = ""; + if (simpleCount > 9) { + originalNum = "01-" + simpleCount; } else { - entrust.setEntrustStatus("2.1"); + originalNum = "01-0" + simpleCount; + } + String s1 = JSON.toJSONString(entrust.getSimpleNames()); + entrust.setSimpleJson(s1); + entrust.setOriginalNum(originalNum); + entrust.setIsDeleted(0); + entrust.setCreateUser(null); + entrust.setCreateTime(new Date()); + entrust.setUpdateTime(new Date()); + entrust.setUpdateUser(null); + entrust.setEntrustStatus("1"); + // 是否为合同新增委托单 + if (entrust.getContractId() != null) { + entrust.setEntrustType(2); + Contract contract = new Contract(); + contract.setId(entrust.getContractId()); + contract.setStatus(2); + contractService.updateById(contract); + } else { + entrust.setEntrustType(1); + } + + if (entrust.getId() != null) { this.updateById(entrust); + } else { + entrust.setId(id); + this.save(entrust); + } + // 新增或修改 检测集合 + addOrUpdateExamines(entrust.getExamines(), entrust.getId()); + return entrust; + } + + /** + * 如果有就取用,没有就新增 + * 有共同点,待抽 + */ + private void addIfNull(Entrust entrust) { + // 送检单位 + EntrustCustomer byId = customerService.getById(entrust.getEntrustCustomerId()); + if (byId != null) { + entrust.setEntrustCustomerName(byId.getName()); + } else { + EntrustCustomer customer = new EntrustCustomer(); + customer.setStatus(1); + customer.setPhone(entrust.getPhone()); + customer.setId(RandomUtils.nextLong()); + customer.setFax(entrust.getFacsimile()); + customer.setEmail(entrust.getPostalCode()); + customer.setFullName(entrust.getSubmittedBy()); + customer.setName(entrust.getEntrustCustomerName()); + customerService.save(customer); + } + + // 采样单位 + EntrustCustomer byId1 = customerService.getById(entrust.getTakeCompanyId()); + if (byId1 != null) { + entrust.setTakeCompany(byId1.getName()); + } else { + EntrustCustomer customer = new EntrustCustomer(); + customer.setStatus(2); + customer.setId(RandomUtils.nextLong()); + customer.setPhone(entrust.getTakePhone()); + customer.setName(entrust.getTakeCompany()); + customer.setFullName(entrust.getTakePerson()); + customer.setAddress(entrust.getTakeCompanyAddress()); + customerService.save(customer); } - // 委托单对应检测 - List examines = entrust.getExamines(); - if (examines != null && examines.size() > 0) { + } + + /** + * 新增或修改检验集合 + */ + private void addOrUpdateExamines(List examines, Long entrustId) { + if (CollectionUtils.isNotEmpty(examines)) { List saveList = new ArrayList<>(); List updateList = new ArrayList<>(); for (int i = 0; i < examines.size(); i++) { @@ -291,40 +286,53 @@ public class EntrustServiceImpl extends BaseServiceImpl if (examine.getId() != null) { updateList.add(examine); } else { - examine.setExamineOrder(i + 1); - examine.setEntrustId(entrust.getId()); - examine.setExperieNum(""); examine.setStatus(0); examine.setIsDeleted(0); examine.setSimpleCount(0); -// examine.setSimpleName(entrust.getSimpleName()); + examine.setExperieNum(""); + examine.setExamineOrder(i + 1); + examine.setEntrustId(entrustId); examine.setCreateTime(new Date()); examine.setUpdateTime(new Date()); saveList.add(examine); } - if (examine.getExamineItemId() != null) { - ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); - Integer useCount = examineItem.getUseCount(); - examineItem.setUseCount(++useCount); - examineItemService.updateById(examineItem); - } - if (examine.getExamineWayId() != null) { - ExamineWay examineWay = examineWayService.getById(examine.getExamineWayId()); - Integer useCount = examineWay.getUseCount(); - examineWay.setUseCount(++useCount); - examineWayService.updateById(examineWay); - } - if (examine.getExamineBasisId() != null) { - ExamineBasis examineBasis = examineBasisService.getById(examine.getExamineBasisId()); - Integer useCount = examineBasis.getUseCount(); - examineBasis.setUseCount(++useCount); - examineBasisService.updateById(examineBasis); - } + // 使用次数 +1 操作 + addUseCount(1, examine.getExamineItemId()); + addUseCount(2, examine.getExamineWayId()); + addUseCount(3, examine.getExamineBasisId()); } examineService.saveBatch(saveList); examineService.updateBatchById(updateList); } - return entrust; + } + + private void addUseCount(int type, Long elementId) { + if (elementId == null) { return; } + if (type == 1) { + ExamineItem examineItem = examineItemService.getById(elementId); + Integer useCount = examineItem.getUseCount(); + examineItem.setUseCount(++ useCount); + examineItemService.updateById(examineItem); + } + if (type == 2) { + ExamineWay examineWay = examineWayService.getById(elementId); + Integer useCount = examineWay.getUseCount(); + examineWay.setUseCount(++useCount); + examineWayService.updateById(examineWay); + } + if (type == 3) { + ExamineBasis examineBasis = examineBasisService.getById(elementId); + Integer useCount = examineBasis.getUseCount(); + examineBasis.setUseCount(++useCount); + examineBasisService.updateById(examineBasis); + } + } + + /** + * 工具类: 补0 + */ + private String fullByZero(int i) { + return i < 10 ? "0" + i : String.valueOf(i); } @Override @@ -336,7 +344,7 @@ public class EntrustServiceImpl extends BaseServiceImpl LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Examine::getEntrustId, id); List examineList = examineService.list(wrapper); - if (examineList != null && examineList.size() > 0) { + if (CollectionUtils.isNotEmpty(examineList)) { for (Examine examine : examineList) { Map map = new HashMap<>(); //检测项目 @@ -467,12 +475,12 @@ public class EntrustServiceImpl extends BaseServiceImpl //检测数据 List examineList = new ArrayList<>(); ExamineResult examineResult = null; - if (eTaskList != null && eTaskList.size() > 0) { + if (CollectionUtils.isNotEmpty(eTaskList)) { eTaskList.forEach(item -> { QueryWrapper examineQueryWrapper = new QueryWrapper<>(); examineQueryWrapper.eq("e_task_id", item.getId()); List list1 = examineService.list(examineQueryWrapper); - if (list1 != null && list1.size() > 0) { + if (CollectionUtils.isNotEmpty(list1)) { for (Examine examine : list1) { examineList.add(examine); } @@ -1522,7 +1530,7 @@ public class EntrustServiceImpl extends BaseServiceImpl wrapper.eq(Simple::getEntrustId, id); wrapper.eq(Simple::getIsReagent, "1"); List simples = simpleService.list(wrapper); - if (simples != null && simples.size() > 0) { + if (CollectionUtils.isNotEmpty(simples)) { for (Simple simple : simples) { Map map = new HashMap<>(); map.put("originalNum", simple.getOriginalNum()); @@ -1600,7 +1608,7 @@ public class EntrustServiceImpl extends BaseServiceImpl keyValueList.add(temp); } - if (keyValueList != null && keyValueList.size() > 0) { + if (CollectionUtils.isNotEmpty(keyValueList)) { if (keyValueList.size() % 2 == 0) { for (int i = 0; i < keyValueList.size() / 2; i++) { Map row = new HashMap<>(); @@ -1754,7 +1762,7 @@ public class EntrustServiceImpl extends BaseServiceImpl queryWrapper.eq(Examine::getEntrustId, id); queryWrapper.eq(Examine::getDeptId, deptId); List examineList = examineService.list(queryWrapper); - if (examineList != null && examineList.size() > 0) { + if (CollectionUtils.isNotEmpty(examineList)) { for (Examine examine : examineList) { map.put("simpleName", examine.getSimpleName()); map.put("simpleCount", examine.getSimpleCount()); @@ -1841,7 +1849,7 @@ public class EntrustServiceImpl extends BaseServiceImpl // position1 wrapper.eq(Simple::getIsReagent, "1"); List simpleList = simpleService.list(wrapper); - if (simpleList != null && simpleList.size() > 0) { + if (CollectionUtils.isNotEmpty(simpleList)) { for (Simple simple : simpleList) { Map map = new HashMap<>(); map.put("experieNum", simple.getExperieNum()); 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 6293ea7..1c3385d 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 @@ -1,5 +1,6 @@ package org.springblade.lims.service.impl; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.AllArgsConstructor; @@ -111,7 +112,7 @@ public class ExamineResultServiceImpl extends BaseServiceImpl logs = simpleDoExamineLogService.list(wrapper1); String experieNum = ""; - if (logs != null && logs.size() > 0) { + if (CollectionUtils.isNotEmpty(logs)) { for (SimpleDoExamineLog simpleDoExamineLog : logs) { simpleDoExamineLog.setIsFinished(1); experieNum += simpleDoExamineLog.getExperieNum(); @@ -127,7 +128,7 @@ public class ExamineResultServiceImpl extends BaseServiceImpl list = simpleService.list(queryWrapper); - if (list != null && list.size() > 0) { + if (CollectionUtils.isNotEmpty(list)) { for (Simple simple : list) { simple.setStatus(0); } @@ -240,7 +241,7 @@ public class ExamineResultServiceImpl extends BaseServiceImpl wrapper1 = new LambdaQueryWrapper<>(); wrapper1.eq(SimpleDoExamineLog::getExamineId, byId.getId()); List logs = simpleDoExamineLogService.list(wrapper1); - if (logs != null && logs.size() > 0) { + if (CollectionUtils.isNotEmpty(logs)) { String experieNum = ""; for (SimpleDoExamineLog simpleDoExamineLog : logs) { experieNum += simpleDoExamineLog.getExperieNum(); @@ -270,7 +271,7 @@ public class ExamineResultServiceImpl extends BaseServiceImpl path = entry.getPath(); - if (path != null && path.size() > 0) { + if (CollectionUtils.isNotEmpty(path)) { String picturePath = ""; if (path.size() > 1) { for (String s : path) { @@ -288,7 +289,7 @@ public class ExamineResultServiceImpl extends BaseServiceImpl path = entry.getPath(); - if (path != null && path.size() > 0) { + if (CollectionUtils.isNotEmpty(path)) { String picturePath = ""; if (path.size() > 1) { for (String s : path) {