From ca2e7171d68452998fdfd5d2a8cda9e9768a8abe Mon Sep 17 00:00:00 2001 From: swj <1211312234@qq.com> Date: Fri, 30 Sep 2022 11:29:37 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E7=BA=BF=E4=B8=8A=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E7=9A=84=E4=B8=80=E4=BA=9B=E4=BB=A3=E7=A0=81=E6=8F=90?= =?UTF-8?q?=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/lims/entry/SimpleRel.java | 5 + .../lims/controller/SimpleController.java | 7 +- .../lims/controller/SimpleRelController.java | 25 ++++- .../lims/service/impl/EntrustServiceImpl.java | 10 +- .../lims/service/impl/SimpleServiceImpl.java | 12 ++- .../impl/TaskBlueprintServiceImpl.java | 92 +++++++++++++++---- 6 files changed, 128 insertions(+), 23 deletions(-) diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java index 2325f5e..2fa745d 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/SimpleRel.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiOperation; import lombok.Data; import org.springblade.core.mp.base.BaseEntity; import org.springframework.data.annotation.Id; @@ -50,5 +51,9 @@ public class SimpleRel extends BaseEntity implements Serializable { @TableField(exist = false) private String name; + + // 检测编号前缀 + @TableField(exist = false) + private String experieNumPrefix; } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleController.java index 403f1d8..28aea58 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/SimpleController.java @@ -75,7 +75,12 @@ public class SimpleController extends BladeController { if (simpleList != null && simpleList.size() > 0) { for (Simple simple1 : simpleList) { String[] split = simple1.getExperieNum().split("-"); - int num = Integer.parseInt(split[2]); + int num = 0; + if (split.length > 1) { + num = Integer.parseInt(split[split.length - 1]); + } else { + num = Integer.parseInt(split[0]); + } list.add(num); } } 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 a0a3832..5e19e4e 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 @@ -89,6 +89,9 @@ public class SimpleRelController extends BladeController { simpleRelService.updateBatchById(rels); } + /** + * 此接口前端无调用 .... + */ @GetMapping("/save") public IPage save(String id, Integer count, Query query) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); @@ -126,7 +129,8 @@ public class SimpleRelController extends BladeController { } else { hour1 = "" + hour; } - String s = "W-" + year + month1 + day1 + hour1 + "-"; +// String s = "W-" + year + month1 + day1 + hour1 + "-"; + String s = ""; for (int i = 0; i < count; i++) { SimpleRel simpleRel = new SimpleRel(); simpleRel.setEntrustId(entrust.getId()); @@ -162,6 +166,25 @@ public class SimpleRelController extends BladeController { return R.status(simpleRelService.updateBatchById(rels)); } + @PostMapping("/updateExperieNum") + @SuppressWarnings("all") + public R updateExperieNum(@RequestBody SimpleRel simpleRel) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(SimpleRel::getEntrustId, simpleRel.getEntrustId()); + List rels = simpleRelService.list(wrapper); + if (CollectionUtils.isNotEmpty(rels)) { + for (SimpleRel rel : rels) { + // 实验样品编号 + String[] split1 = rel.getExamineExperieNum().split("-"); + rel.setExamineExperieNum(simpleRel.getExperieNumPrefix() + "-" + split1[split1.length - 1]); + // 留样样品编号 + String[] split2 = rel.getReagentExperieNum().split("-"); + rel.setReagentExperieNum(simpleRel.getExperieNumPrefix() + "-" + split2[split2.length - 1]); + } + } + return R.status(simpleRelService.updateBatchById(rels)); + } + /** * 修改显性原始编号 */ 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 976f700..56346ad 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 @@ -248,7 +248,7 @@ public class EntrustServiceImpl extends BaseServiceImpl result.put("acceptanceNum", entrust.getAcceptanceNum()); result.put("entrustCustomerName", entrust.getEntrustCustomerName()); result.put("submittedBy", entrust.getSubmittedBy()); - result.put("mailAddr", entrust.getMailAddr()); + result.put("mailAddr", entrust.getCustomeAddress()); result.put("postalCode", entrust.getPostalCode()); result.put("facsimile", entrust.getFacsimile()); result.put("phone", entrust.getPhone()); @@ -3220,7 +3220,10 @@ public class EntrustServiceImpl extends BaseServiceImpl map.put("simpleCount", examine.getSimpleCount()); String[] split = examine.getExperieNum().split(","); String[] split1 = split[0].split("-"); - String num = split1[0] + "-" + split1[1]; + String num = split1[0]; + if (split.length > 1) { + num = split1[0] + "-" + split1[1]; + } map.put("experieNum", num + examine.getMin() + "~" + num + examine.getMax()); //检测项目 ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); @@ -3958,7 +3961,8 @@ public class EntrustServiceImpl extends BaseServiceImpl // 检测编号前缀 String[] strings = entrust.getAcceptanceNum().split("-"); - String s = strings[1] + "-" + now.getYear() + month1 + day1 + hour1 + "-"; +// String s = strings[1] + "-" + now.getYear() + month1 + day1 + hour1 + "-"; + String s = ""; StringBuilder simpleName = new StringBuilder(); Integer simpleCount = 0; diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/SimpleServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/SimpleServiceImpl.java index 37ae985..6ffe552 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/SimpleServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/SimpleServiceImpl.java @@ -69,7 +69,11 @@ public class SimpleServiceImpl extends BaseServiceImpl imp for (String str : examineSimpleStr) { Simple simple1 = new Simple(); String[] split = str.split("-"); - simple1.setSort(Integer.parseInt(split[2])); + if (split.length > 1) { + simple1.setSort(Integer.parseInt(split[split.length - 1])); + } else { + simple1.setSort(Integer.parseInt(split[0])); + } simple1.setEntrustId(simple.getEntrustId()); simple1.setSimpleName(simple.getSimpleName()); simple1.setSimpleState(simpleAo.getSimpleState()); @@ -88,7 +92,11 @@ public class SimpleServiceImpl extends BaseServiceImpl imp for (String str : reagentSimpleStr) { Simple simple1 = new Simple(); String[] split = str.split("-"); - simple1.setSort(Integer.parseInt(split[2])); + if (split.length > 1) { + simple1.setSort(Integer.parseInt(split[split.length - 1])); + } else { + simple1.setSort(Integer.parseInt(split[0])); + } simple1.setEntrustId(simple.getEntrustId()); simple1.setSimpleName(simple.getSimpleName()); simple1.setSimpleState(simpleAo.getSimpleState()); diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/TaskBlueprintServiceImpl.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/TaskBlueprintServiceImpl.java index 0d78df6..77d943f 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/TaskBlueprintServiceImpl.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/service/impl/TaskBlueprintServiceImpl.java @@ -1,6 +1,7 @@ package org.springblade.lims.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import lombok.AllArgsConstructor; import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.tool.api.R; @@ -9,6 +10,7 @@ import org.springblade.lims.mapper.TaskBlueprintMapper; import org.springblade.lims.service.*; import org.springblade.resource.enums.SysTypeEnum; import org.springblade.resource.feign.IMessageClient; +import org.springblade.system.entity.Dept; import org.springblade.system.feign.ISysClient; import org.springblade.system.user.entity.User; import org.springblade.system.user.feign.IUserClient; @@ -18,6 +20,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; +import java.util.stream.Collectors; /** * @author swj @@ -65,20 +68,37 @@ public class TaskBlueprintServiceImpl extends BaseServiceImpl eTasks = taskBlueprint.getTasks(); for (ETask eTask : eTasks) { // 发送提示消息 - List userList = userClient.listDeptUserByCurrentUser(eTask.getDeptId().toString()).getData(); - if (userList != null) { - for (User user : userList) { - // position1 - if ("1432876315142520834".equals(user.getRoleId())) { - messageClient.event(SysTypeEnum.INFORM.getValue(), "新的检验", - "你有新的检验待领取,请及时处理", 1, 5, user.getId().toString(), "/plugin/workflow/process/experimentcrew"); - } else { - messageClient.event(SysTypeEnum.INFORM.getValue(), "新的检验", - "你有新的检验待分配,请及时处理", 1, 5, user.getId().toString(), "/plugin/workflow/process/experimentcrew"); - } + sendMessage(String.valueOf(eTask.getDeptId())); + + // 本次传来的检验 + List examines = eTask.getExamines(); + + // 库里的检验 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("dept_id", eTask.getDeptId()); + List examinesInDB = examineService.list(queryWrapper); + + // 要加的检验 + List examinesWillAdd = new ArrayList<>(); + // 要去掉的检验 + List examinesWillSub = new ArrayList<>(); + // 不变的检验 + List examinesWillKeep = new ArrayList<>(); + + // 计算出要保持的 + for (Examine dbExamine : examinesInDB) { + if (examines.contains(dbExamine)) { + examinesWillKeep.add(dbExamine); + examines.remove(dbExamine); + examinesInDB.remove(dbExamine); } } - List examines = eTask.getExamines(); + // 要加的 + examinesWillAdd.addAll(examines); + // 要去掉的 + examinesWillSub.addAll(examinesInDB); + + // 找样品当前位置? String simpleCurrPlace = ""; for (Examine examine : examines) { if (examine.getSimpleCurrPlace() != null && !"".equals(examine.getSimpleCurrPlace())) { @@ -86,7 +106,20 @@ public class TaskBlueprintServiceImpl extends BaseServiceImpl wrapperTemp = new LambdaQueryWrapper<>(); + wrapperTemp.eq(Simple::getEntrustId, taskBlueprint.getEntrustId()); + wrapperTemp.orderByAsc(Simple::getSort); + List simplesTemp = simpleService.list(wrapperTemp); + for (int i = 0; i < simplesTemp.size(); i++) { + simplesTemp.get(i).setIsDistribution(0); + } + simpleService.updateBatchById(simplesTemp); + + // 遍历检验 + List examinesWillAddTemp = new ArrayList<>(); + for (Examine examine : examinesWillAdd) { if (!"".equals(examine.getExperieNum())) { continue; } @@ -94,10 +127,12 @@ public class TaskBlueprintServiceImpl extends BaseServiceImpl wrapper1 = new LambdaQueryWrapper<>(); wrapper1.eq(Simple::getEntrustId, taskBlueprint.getEntrustId()); + // 加这个查询条件是因为防止一个委托单加了牛拭子、牛血清、牛组织导致在样品log表检测编号都一样的情况 wrapper1.eq(Simple::getSimpleName, examine.getSimpleName()); wrapper1.orderByAsc(Simple::getSort); List simples = simpleService.list(wrapper1); + // 组装样品log表 SimpleDoExamineLog log = new SimpleDoExamineLog(); log.setExamineId(examine.getId()); log.setIsFinished(0); @@ -113,19 +148,25 @@ public class TaskBlueprintServiceImpl extends BaseServiceImpl collect = examinesWillSub.stream().map(Examine::getId).collect(Collectors.toList()); + examineService.removeByIds(collect); } } // 第一次计划提交 @@ -228,6 +269,25 @@ public class TaskBlueprintServiceImpl extends BaseServiceImpl userList = userClient.listDeptUserByCurrentUser(deptId).getData(); + if (userList != null) { + for (User user : userList) { + // position1 + if ("1432876315142520834".equals(user.getRoleId())) { + messageClient.event(SysTypeEnum.INFORM.getValue(), "新的检验", + "你有新的检验待领取,请及时处理", 1, 5, user.getId().toString(), "/plugin/workflow/process/experimentcrew"); + } else { + messageClient.event(SysTypeEnum.INFORM.getValue(), "新的检验", + "你有新的检验待分配,请及时处理", 1, 5, user.getId().toString(), "/plugin/workflow/process/experimentcrew"); + } + } + } + } + @Override @Transactional(rollbackFor = Exception.class) public TaskBlueprint continuePlan(String id) {