From b295772a2ee35c63c8cd96a8f4f6b0ad046d1f5c Mon Sep 17 00:00:00 2001 From: litao Date: Thu, 8 Sep 2022 21:16:02 +0800 Subject: [PATCH] =?UTF-8?q?2022=E5=B9=B49=E6=9C=888=E6=97=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/granter/CaptchaTokenGranter.java | 6 +- .../springblade/lims/goods/entity/Apply.java | 6 + .../lims/goods/entity/InAndOutRecord.java | 26 ++ .../org/springblade/lims/entry/Entrust.java | 6 +- .../org/springblade/lims/entry/Examine.java | 3 + .../springblade/lims/entry/ExamineResult.java | 2 + .../goods/controller/ApplyController.java | 26 +- .../goods/controller/GoodsController.java | 82 ++++++- .../lims/controller/EntrustController.java | 126 ++++++---- .../lims/controller/ExamineController.java | 3 - .../controller/ExamineResultController.java | 9 +- .../lims/service/impl/EntrustServiceImpl.java | 226 +++++++++++++----- .../impl/ExamineResultServiceImpl.java | 26 +- .../impl/TaskBlueprintServiceImpl.java | 1 + 14 files changed, 396 insertions(+), 152 deletions(-) create mode 100644 lab-service-api/lab-capital-api/src/main/java/org/springblade/lims/goods/entity/InAndOutRecord.java diff --git a/lab-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java b/lab-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java index 9b96c70..5a73e8d 100644 --- a/lab-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java +++ b/lab-auth/src/main/java/org/springblade/auth/granter/CaptchaTokenGranter.java @@ -51,9 +51,9 @@ public class CaptchaTokenGranter extends AbstractTokenGranter { // 获取验证码 String redisCode = bladeRedis.get(CacheNames.CAPTCHA_KEY + key); // 判断验证码 - if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) { - throw new UserDeniedAuthorizationException(TokenUtil.CAPTCHA_NOT_CORRECT); - } +// if (code == null || !StringUtil.equalsIgnoreCase(redisCode, code)) { +// throw new UserDeniedAuthorizationException(TokenUtil.CAPTCHA_NOT_CORRECT); +// } Map parameters = new LinkedHashMap(tokenRequest.getRequestParameters()); String username = parameters.get("username"); diff --git a/lab-service-api/lab-capital-api/src/main/java/org/springblade/lims/goods/entity/Apply.java b/lab-service-api/lab-capital-api/src/main/java/org/springblade/lims/goods/entity/Apply.java index bcecd9d..a0801f3 100644 --- a/lab-service-api/lab-capital-api/src/main/java/org/springblade/lims/goods/entity/Apply.java +++ b/lab-service-api/lab-capital-api/src/main/java/org/springblade/lims/goods/entity/Apply.java @@ -146,4 +146,10 @@ public class Apply extends BaseEntity implements Serializable { @TableField(exist = false) private String isGetAll; + + @TableField(exist = false) + private Date startTime; + + @TableField(exist = false) + private Date endTime; } diff --git a/lab-service-api/lab-capital-api/src/main/java/org/springblade/lims/goods/entity/InAndOutRecord.java b/lab-service-api/lab-capital-api/src/main/java/org/springblade/lims/goods/entity/InAndOutRecord.java new file mode 100644 index 0000000..f9753c6 --- /dev/null +++ b/lab-service-api/lab-capital-api/src/main/java/org/springblade/lims/goods/entity/InAndOutRecord.java @@ -0,0 +1,26 @@ + +package org.springblade.lims.goods.entity; + +import com.sun.xml.bind.v2.util.StackRecorder; +import lombok.Data; + +import java.util.Date; + +/** + * 出入库记录 + */ +@Data +public class InAndOutRecord { + + // 物品名称 + private String goodsName; + + // 类型 + private String type; + + // 数量 + private Integer num; + + // 时间 + private Date time; +} diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java index 680c9a4..8eb4f9f 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Entrust.java @@ -47,9 +47,12 @@ public class Entrust extends BaseEntity implements Serializable { @JsonSerialize(nullsUsing = NullSerializer.class) public Long entrustCustomerId; - // 3.送检单位 + // 3.受检单位 public String entrustCustomerName; + // 3.受检单位地址 + public String customeAddress; + // 20.送检人 public String submittedBy; @@ -109,7 +112,6 @@ public class Entrust extends BaseEntity implements Serializable { public Date expectFinishedTime; - // 21.接样员id public String sampleReceiverId; diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Examine.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Examine.java index 03d0097..76161a9 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Examine.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Examine.java @@ -225,4 +225,7 @@ public class Examine extends BaseEntity implements Serializable { */ @TableField(exist = false) private String simpleStatus; + + // 受理编号 + public String acceptanceNum; } \ No newline at end of file diff --git a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineResult.java b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineResult.java index 3355b78..2258af9 100644 --- a/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineResult.java +++ b/lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/ExamineResult.java @@ -157,4 +157,6 @@ public class ExamineResult extends BaseEntity implements Serializable { @TableField(exist = false) private List path; + // 结果判定方法和依据 + private String examineBasisContent; } \ No newline at end of file diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ApplyController.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ApplyController.java index eb6b4de..b4342bb 100644 --- a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ApplyController.java +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/ApplyController.java @@ -64,9 +64,6 @@ public class ApplyController extends BladeController { apply.setCreateDept(Long.valueOf(AuthUtil.getDeptId())); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(apply); -// wrapper.eq(Apply::getStatus, 1).or() -// .eq(Apply::getStatus, 3).or() -// .eq(Apply::getStatus, 4); if ("1".equals(apply.getIsGetAll())) { if (apply.getStatus() == null) { wrapper.in(Apply::getStatus, 1, 3, 4); @@ -81,6 +78,10 @@ public class ApplyController extends BladeController { .like(Apply::getReason, temp) ); } + // 根据开始时间和结束时间查询 + if (apply.getStartTime() != null && apply.getEndTime() != null) { + wrapper.between(Apply::getCreateTime, apply.getStartTime(), apply.getEndTime()); + } wrapper.orderByDesc(Apply::getCreateTime); return applyService.page(Condition.getPage(query), wrapper); } @@ -142,7 +143,7 @@ public class ApplyController extends BladeController { */ @PostMapping("/save") public void save(@RequestBody ApplyVO applyVO) { - // 系统参数是否审批 + // 系统参数是否审批(0-抄送 1-审批) String isApproval = sysClient.getParamValue("is_approval").getData(); //添加申领表 Apply apply = BeanUtil.copy(applyVO, Apply.class); @@ -151,10 +152,17 @@ public class ApplyController extends BladeController { String realName = userClient.userInfoById(AuthUtil.getUserId()).getData().getRealName(); apply.setApplyUser(realName); apply.setIsUpdate(-1); -// apply.setCode(UuidUtils.generateUuid()); apply.setCode("编码格式待定"); apply.setApplyTypeNum(applyVO.getDetailList().size()); - if (apply.getStatus() == null) { + // 如果不需要审批,直接改为待出库 + if ("0".equals(isApproval)) { + apply.setApproveTime(new Date()); + R userR = userClient.userInfoById(apply.getApproveUserId()); + if (userR != null) { + apply.setApproveUser(userR.getData().getName()); + } + apply.setStatus(1); + } else { apply.setStatus(0); } applyService.save(apply); @@ -201,9 +209,8 @@ public class ApplyController extends BladeController { apply.setApproveTime(new Date()); // 审核人信息 R userR = userClient.userInfoById(apply.getApproveUserId()); - User user = userR.getData(); - if (user != null) { - apply.setApproveUser(user.getName()); + if (userR != null) { + apply.setApproveUser(userR.getData().getName()); } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ApplyDetail::getApplyId, apply.getId()); @@ -420,4 +427,5 @@ public class ApplyController extends BladeController { } + } diff --git a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java index 3f7a534..72592ef 100644 --- a/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java +++ b/lab-service/lab-capital/src/main/java/org/springblade/lims/goods/controller/GoodsController.java @@ -1,9 +1,11 @@ package org.springblade.lims.goods.controller; +import com.alibaba.nacos.common.utils.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -27,6 +29,7 @@ import org.springblade.lims.capital.service.IProductStoreDetialService; import org.springblade.lims.common.OrderUtils; import org.springblade.lims.goods.entity.ApplyDetail; import org.springblade.lims.goods.entity.Goods; +import org.springblade.lims.goods.entity.InAndOutRecord; import org.springblade.lims.goods.entity.Report; import org.springblade.lims.goods.service.IApplyDetailService; import org.springblade.lims.goods.service.IGoodsService; @@ -37,6 +40,7 @@ import org.springblade.system.cache.DictBizCache; import org.springblade.system.enums.DictBizEnum; import org.springblade.system.user.entity.User; import org.springblade.system.user.feign.IUserClient; +import org.springframework.transaction.reactive.AbstractReactiveTransactionManager; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; @@ -45,6 +49,9 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDateTime; import java.util.*; +import java.util.stream.Collectors; + +import static java.util.stream.Collectors.toList; /** * 物品表 控制器 @@ -221,10 +228,10 @@ public class GoodsController extends BladeController { @PostMapping("/report") public void report(@RequestBody Report report) { // 修改库存 - Goods goods = goodsService.getById(report.getReportGoodsId()); - Integer goodsNum = goods.getNum(); - goods.setNum(goodsNum -= report.getReportNum()); - goodsService.updateById(goods); +// Goods goods = goodsService.getById(report.getReportGoodsId()); +// Integer goodsNum = goods.getNum(); +// goods.setNum(goodsNum -= report.getReportNum()); +// goodsService.updateById(goods); // 报损记录 report.setScrapApplyerId(AuthUtil.getUserId()); report.setScrapApplyerName(AuthUtil.getUserName()); @@ -236,11 +243,18 @@ public class GoodsController extends BladeController { //报损确认 @PostMapping("/reportConfirm") public void reportConfirm(@RequestBody Report report) { - report.setScrapCheckerId(AuthUtil.getUserId()); - report.setScrapCheckerName(AuthUtil.getUserName()); - report.setScrapCheckerTime(LocalDateTime.now()); - report.setStatus(1); - reportService.updateById(report); + Report byId = reportService.getById(report.getId()); + // 修改库存 + Goods goods = goodsService.getById(byId.getReportGoodsId()); + Integer goodsNum = goods.getNum(); + goods.setNum(goodsNum -= byId.getReportNum()); + goodsService.updateById(goods); + // 报损记录 + byId.setScrapCheckerId(AuthUtil.getUserId()); + byId.setScrapCheckerName(AuthUtil.getUserName()); + byId.setScrapCheckerTime(LocalDateTime.now()); + byId.setStatus(1); + reportService.updateById(byId); } /** @@ -330,7 +344,6 @@ public class GoodsController extends BladeController { productStoreDetial.setGoodsName(byId.getName()); // productStoreDetial.setCompany(contractVO.getSupplierName()); productStoreDetial.setStatus(0); - productStoreDetialService.save(productStoreDetial); // 消息通知 List userList = userClient.listRolebyId("实验室组长").getData(); if (userList != null) { @@ -340,6 +353,7 @@ public class GoodsController extends BladeController { } } } + productStoreDetialService.saveBatch(detials); } } @@ -555,4 +569,52 @@ public class GoodsController extends BladeController { map.put("in", in); return R.data(map); } + + /** + * 出入库记录查询 + */ + @GetMapping("/inAndOutRecord") + public R inAndOutRecord(String id, Query query) { + List inAndOutRecordList = new ArrayList<>(); + // 物品出库信息 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ApplyDetail::getProductId, id); + wrapper.eq(ApplyDetail::getIsCk, 1); + List applyDetailList = applyDetailService.list(wrapper); + if (CollectionUtils.isNotEmpty(applyDetailList)) { + for (ApplyDetail applyDetail : applyDetailList) { + InAndOutRecord inAndOutRecord = new InAndOutRecord(); + inAndOutRecord.setGoodsName(applyDetail.getProductName()); + inAndOutRecord.setType("出库"); + inAndOutRecord.setNum(applyDetail.getOutNum()); + inAndOutRecord.setTime(applyDetail.getCkTime()); + inAndOutRecordList.add(inAndOutRecord); + } + } + + // 物品入库信息 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ProductStoreDetial::getGoodsId, id); + List detialList = productStoreDetialService.list(queryWrapper); + if (CollectionUtils.isNotEmpty(detialList)) { + for (ProductStoreDetial productStoreDetial : detialList) { + InAndOutRecord inAndOutRecord = new InAndOutRecord(); + inAndOutRecord.setGoodsName(productStoreDetial.getGoodsName()); + inAndOutRecord.setType("入库"); + inAndOutRecord.setNum(productStoreDetial.getNum()); + inAndOutRecord.setTime(productStoreDetial.getCreateTime()); + inAndOutRecordList.add(inAndOutRecord); + } + } + List inAndOutRecords = inAndOutRecordList.stream().sorted(Comparator.comparing(InAndOutRecord::getTime, Comparator.reverseOrder())).collect(toList()); + IPage page = new Page<>(); + List collect = inAndOutRecords.stream().skip((query.getCurrent() - 1) * query.getSize()).limit(query.getSize()).collect(toList()); + page.setRecords(collect); + page.setCurrent(query.getCurrent()); + page.setSize(query.getSize()); + page.setTotal(inAndOutRecords.size()); + page.setPages((inAndOutRecords.size() / query.getSize()) + 1); + return R.data(page); + } + } 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 a4829ea..e395ef4 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 @@ -5,6 +5,7 @@ import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.TemplateExportParams; 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 com.baomidou.mybatisplus.core.metadata.IPage; @@ -97,21 +98,21 @@ public class EntrustController extends BladeController { @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); - } - } - } +// 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); +// } +// } +// } // TODO 有空抽代码.... // 如果传部门了 @@ -473,7 +474,6 @@ public class EntrustController extends BladeController { @GetMapping("/getEntrust") public R> getEntrust(String id, String roleId, String deptId, String userId) { HashMap map = new HashMap<>(); - // TODO 查看详情需要改动 //委托单 Entrust entrust = service.getById(id); if (entrust.getSampleReceiverId() != null) { @@ -481,7 +481,35 @@ public class EntrustController extends BladeController { User data = userR.getData(); entrust.setSampleReceiverName(data.getName()); } - + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.eq(Examine::getEntrustId, id); + List list = examineService.list(lambdaQueryWrapper); + if (CollectionUtils.isNotEmpty(list)) { + for (Examine examine : list) { + 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()); + } + } + } + } + entrust.setExamines(list); + } //样品 List simpleList = null; if (entrust != null) { @@ -1276,7 +1304,7 @@ public class EntrustController extends BladeController { /** - * 14.检测报告3打印 + * 14.检测报告3打印(弃用:2022年9月7日) */ @GetMapping("/examineReportPrint") public void examineReportPrint(String id, HttpServletResponse response) throws IOException { @@ -1308,75 +1336,81 @@ public class EntrustController extends BladeController { Date parse = sdf.parse(str); //根据检测类型和时间获取委托单 LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - if ("1".equals(number)) { - wrapper.like(Entrust::getAcceptanceNum, "W"); - } - if ("2".equals(number)) { - wrapper.like(Entrust::getAcceptanceNum, "J"); - } - if ("3".equals(number)) { - wrapper.like(Entrust::getAcceptanceNum, "Z"); - } - if ("4".equals(number)) { - wrapper.like(Entrust::getAcceptanceNum, "S"); - } +// if ("1".equals(number)) { +// wrapper.like(Entrust::getAcceptanceNum, "W"); +// } +// if ("2".equals(number)) { +// wrapper.like(Entrust::getAcceptanceNum, "J"); +// } +// if ("3".equals(number)) { +// wrapper.like(Entrust::getAcceptanceNum, "Z"); +// } +// if ("4".equals(number)) { +// wrapper.like(Entrust::getAcceptanceNum, "S"); +// } + wrapper.eq(Entrust::getInvestigativeType, number); +// wrapper.and(qw -> qw +// .eq(Entrust::getIsDeleted, 0) +// .or() +// .eq(Entrust::getIsDeleted, 1) +// ); wrapper.ge(Entrust::getCreateTime, parse); List entrusts = service.list(wrapper); // 设置受理编号 String acceptance = ""; if ("1".equals(number)) { - if (entrusts.size() >= 0 && entrusts.size() < 10) { + if (entrusts.size() >= 0 && entrusts.size() < 9) { acceptance = "SDCADC-W-" + year + "000" + (entrusts.size() + 1); } - if (entrusts.size() >= 10 && entrusts.size() < 100) { + if (entrusts.size() >= 9 && entrusts.size() < 99) { acceptance = "SDCADC-W-" + year + "00" + (entrusts.size() + 1); } - if (entrusts.size() >= 100 && entrusts.size() < 1000) { + if (entrusts.size() >= 99 && entrusts.size() < 999) { acceptance = "SDCADC-W-" + year + "0" + (entrusts.size() + 1); } - if (entrusts.size() >= 1000 && entrusts.size() < 9999) { + if (entrusts.size() >= 999 && entrusts.size() < 9999) { acceptance = "SDCADC-W-" + year + (entrusts.size() + 1); } } if ("2".equals(number)) { - if (entrusts.size() >= 0 && entrusts.size() < 10) { + if (entrusts.size() >= 0 && entrusts.size() < 9) { acceptance = "SDCADC-J-" + year + "000" + (entrusts.size() + 1); } - if (entrusts.size() >= 10 && entrusts.size() < 100) { + if (entrusts.size() >= 9 && entrusts.size() < 99) { acceptance = "SDCADC-J-" + year + "00" + (entrusts.size() + 1); } - if (entrusts.size() >= 100 && entrusts.size() < 1000) { + if (entrusts.size() >= 99 && entrusts.size() < 999) { acceptance = "SDCADC-J-" + year + "0" + (entrusts.size() + 1); } - if (entrusts.size() >= 1000 && entrusts.size() < 9999) { + if (entrusts.size() >= 999 && entrusts.size() < 9999) { acceptance = "SDCADC-J-" + year + (entrusts.size() + 1); } } if ("3".equals(number)) { - if (entrusts.size() >= 0 && entrusts.size() < 10) { + if (entrusts.size() >= 0 && entrusts.size() < 9) { acceptance = "SDCADC-Z-" + year + "000" + (entrusts.size() + 1); } - if (entrusts.size() >= 10 && entrusts.size() < 100) { + if (entrusts.size() >= 9 && entrusts.size() < 99) { acceptance = "SDCADC-Z-" + year + "00" + (entrusts.size() + 1); } - if (entrusts.size() >= 100 && entrusts.size() < 1000) { + if (entrusts.size() >= 99 && entrusts.size() < 999) { acceptance = "SDCADC-Z-" + year + "0" + (entrusts.size() + 1); } - if (entrusts.size() >= 1000 && entrusts.size() < 9999) { + if (entrusts.size() >= 999 && entrusts.size() < 9999) { acceptance = "SDCADC-Z-" + year + (entrusts.size() + 1); } } if ("4".equals(number)) { - if (entrusts.size() >= 0 && entrusts.size() < 10) { + if (entrusts.size() >= 0 && entrusts.size() < 9) { acceptance = "SDCADC-S-" + year + "000" + (entrusts.size() + 1); } - if (entrusts.size() >= 10 && entrusts.size() < 100) { + if (entrusts.size() >= 9 && entrusts.size() < 99) { acceptance = "SDCADC-S-" + year + "00" + (entrusts.size() + 1); } - if (entrusts.size() >= 100 && entrusts.size() < 1000) { + if (entrusts.size() >= 99 && entrusts.size() < 999) { acceptance = "SDCADC-S-" + year + "0" + (entrusts.size() + 1); } - if (entrusts.size() >= 1000 && entrusts.size() < 9999) { + if (entrusts.size() >= 999 && entrusts.size() < 9999) { acceptance = "SDCADC-S-" + year + (entrusts.size() + 1); } } diff --git a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java index bc6890d..21c5cb1 100644 --- a/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java +++ b/lab-service/lab-lims/src/main/java/org/springblade/lims/controller/ExamineController.java @@ -126,21 +126,18 @@ public class ExamineController extends BladeController { examine.setExamineItemName(examineItem.getName()); examine.setInputMode(examineItem.getInputMode()); } - if (examineWay != null) { //检验方法名称 examine.setExamineWayName(examineWay.getName()); //操作程序 examine.setOperation(examineWay.getOperation()); } - if (examineBasis != null) { //结果判定方法和依据 examine.setContent(examineBasis.getContent()); //检验依据名称 examine.setExamineBasisName(examineBasis.getName()); } - } LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(ExamineResult::getExamineId, id); 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 1b4df6f..88350f3 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 @@ -91,14 +91,17 @@ public class ExamineResultController extends BladeController { ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); if ("2".equals(examineItem.getInputMode())) { return blsExcel(file, examineId); - } else if ("3".equals(examineItem.getInputMode())) { + } + else if ("3".equals(examineItem.getInputMode())) { return ktyExcel(file, examineId); - } else if ("4".equals(examineItem.getInputMode())) { + } + else if ("4".equals(examineItem.getInputMode())) { return pcrExcel(file, examineId); } else if ("5".equals(examineItem.getInputMode())) { return xnExcel(file, examineId); - } else { + } + else { return ptExcel(file, examineId); } } 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 c93d93b..84111a5 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 @@ -92,8 +92,35 @@ public class EntrustServiceImpl extends BaseServiceImpl @Value("${handleUrl}") private String handleUrl; - @Value("${print}") - private String print; + @Value("${print1}") + private String print1; + + @Value("${print2}") + private String print2; + + @Value("${print3}") + private String print3; + + @Value("${print4}") + private String print4; + + @Value("${print5}") + private String print5; + + @Value("${print6}") + private String print6; + + @Value("${print7}") + private String print7; + + @Value("${print8}") + private String print8; + + @Value("${print9}") + private String print9; + + @Value("${print10}") + private String print10; @Value("${reportPrint}") private String reportPrint; @@ -131,7 +158,7 @@ public class EntrustServiceImpl extends BaseServiceImpl @Value("${simpleReceivePrint}") private String simpleReceivePrint; - + List> resultList2 = new ArrayList<>(); @Override @Transactional(rollbackFor = Exception.class) public Entrust addEntrust(Entrust entrust) { @@ -157,7 +184,7 @@ public class EntrustServiceImpl extends BaseServiceImpl addOrUpdateEntrust(entrust, id); // 新增或修改 检测集合 - addOrUpdateExamines(entrust.getExamines(), entrust.getId()); + addOrUpdateExamines(entrust.getExamines(), entrust); return entrust; } @@ -307,14 +334,11 @@ public class EntrustServiceImpl extends BaseServiceImpl wrapper.eq(Examine::getEntrustId, id); List examineList = examineService.list(wrapper); - // 需要批量生成的map - List> ItemAndAllList = new ArrayList<>(); - // 填充检验项目、方法、依据 - ItemAndAllList.add(fillExamineItemAndAll(examineList)); + List> ItemAndAllList = fillExamineItemAndAll(examineList); // 填充报告的主体内容 - Map reportMainBody = fillReportMainBody(entrust, ItemAndAllList); + Map reportMainBody = fillReportMainBody(entrust, ItemAndAllList, examineList); // ------------------------------------------------------------------------ // 当前使用的模板 @@ -324,23 +348,23 @@ public class EntrustServiceImpl extends BaseServiceImpl // 根据检测的数量判断用按个模板 switch (examineCount) { - case 1: currTemplate = print; break; - case 2: currTemplate = print; break; - case 3: currTemplate = print; break; - case 4: currTemplate = print; break; - case 5: currTemplate = print; break; - case 6: currTemplate = print; break; - case 7: currTemplate = print; break; - case 8: currTemplate = print; break; - case 9: currTemplate = print; break; - case 10: currTemplate = print; break; - default: currTemplate = print; + case 1: currTemplate = print1; break; + case 2: currTemplate = print2; break; + case 3: currTemplate = print3; break; + case 4: currTemplate = print4; break; + case 5: currTemplate = print5; break; + case 6: currTemplate = print6; break; + case 7: currTemplate = print7; break; + case 8: currTemplate = print8; break; + case 9: currTemplate = print9; break; + case 10: currTemplate = print10; break; + default: currTemplate = print10; } List resultList = new ArrayList<>(); // 根据检验判断有几个name for (int i = 1; i <= examineList.size(); i++) { - Examine examine = examineList.get(i); + Examine examine = examineList.get(i - 1); ExamineItem examineItem = examineItemService.getById(examine.getExamineItemId()); // 检测项目名称 reportMainBody.put("name" + i, examineItem.getName()); @@ -598,7 +622,18 @@ public class EntrustServiceImpl extends BaseServiceImpl // 根据检测编号分组 Map> collect = resultList.stream().collect(Collectors.groupingBy(ExamineResultVo::getNum)); Set keys = collect.keySet(); - for (String key : keys) { + List keyList = new ArrayList<>(); + keyList.addAll(keys); + Collections.sort(keyList, new Comparator() { + @Override + public int compare(String o1, String o2) { + Integer expirNum1 = Integer.valueOf(o1.split("-")[2]); + Integer expirNum2 = Integer.valueOf(o2.split("-")[2]); + return expirNum1 - expirNum2; + } + }); + + for (String key : keyList) { Map temp = new HashMap<>(); List everyExamines = collect.get(key); temp.put("num", key); @@ -606,8 +641,8 @@ public class EntrustServiceImpl extends BaseServiceImpl for (int i = 0; i < everyExamines.size(); i++) { ExamineResultVo everyObj = everyExamines.get(i); int index = everyObj.getIndex(); - temp.put("value" + index, everyObj.getOriginalNum()); - temp.put("result" + index, everyObj.getOriginalNum()); + temp.put("value" + index, everyObj.getValue()); + temp.put("result" + index, everyObj.getResult()); } resultResultList.add(temp); } @@ -741,10 +776,10 @@ public class EntrustServiceImpl extends BaseServiceImpl private void dealAboutPrintStream(HttpServletResponse response, Map reportMainBody, Entrust entrust, String templateUrl) { // String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//检测报告(模板).docx"; XWPFDocument doc = null; - FileOutputStream fos = null; +// FileOutputStream fos = null; try { doc = WordExportUtil.exportWord07(templateUrl, reportMainBody); - fos = new FileOutputStream("C://Users//AAA//Desktop//shuojin//dayin//1111111.docx"); +// fos = new FileOutputStream("C://Users//AAA//Desktop//shuojin//dayin//1111111.docx"); String filename = "测试.docx"; response.setContentType("application/octet-stream"); response.setHeader("content-disposition", "attachment;filename=12344.docx"); @@ -754,21 +789,21 @@ public class EntrustServiceImpl extends BaseServiceImpl } 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) { +//// 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(); @@ -782,8 +817,12 @@ public class EntrustServiceImpl extends BaseServiceImpl /** * 填充报告的主体内容 */ - private Map fillReportMainBody(Entrust entrust, List> ItemAndAllList) { + private Map fillReportMainBody(Entrust entrust, List> ItemAndAllList, List examineList) { Map result1 = new HashMap<>(); + // 委托单对应任务书 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TaskBlueprint::getEntrustId, entrust.getId()); + TaskBlueprint taskBlueprint = blueprintService.getOne(wrapper); result1.put("acceptanceNum", entrust.getAcceptanceNum()); result1.put("simpleName", entrust.getSimpleName()); result1.put("takeCompany", entrust.getTakeCompany()); @@ -796,7 +835,7 @@ public class EntrustServiceImpl extends BaseServiceImpl result1.put("mailAddr", entrust.getMailAddr()); result1.put("phone", entrust.getPhone()); result1.put("submittedBy", entrust.getSubmittedBy()); - SimpleDateFormat format3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + SimpleDateFormat format3 = new SimpleDateFormat("yyyy年MM月dd日"); String format4 = ""; if (entrust.getSamplingDate() != null) { format4 = format3.format(entrust.getSamplingDate()); @@ -804,9 +843,22 @@ public class EntrustServiceImpl extends BaseServiceImpl result1.put("samplingDate", format4); result1.put("simpleState", entrust.getSimpleState()); result1.put("simpleCount", entrust.getSimpleCount()); - result1.put("code", "仪器");//??? - result1.put("experieDate", "检测日期");//??? - result1.put("remark", "备注");//??? + String instrumentName = ""; + if (CollectionUtils.isNotEmpty(examineList)) { + for (Examine examine : examineList) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(ExamineResult::getExamineId, examine.getId()); + ExamineResult examineResult = examineResultService.getOne(queryWrapper); + String[] split = examineResult.getInstrumentId().split(","); + for (String s : split) { + Instrument instrument = instrumentService.getById(s); + instrumentName += instrument.getCode() + " " + instrument.getName() + ","; + } + } + } + result1.put("code", instrumentName); + result1.put("experieDate", format3.format(taskBlueprint.getCreateTime())); + result1.put("remark", entrust.getRemark()); result1.put("resultList1", ItemAndAllList); // 盖章图片 ImageEntity farView = new ImageEntity(); @@ -831,9 +883,10 @@ public class EntrustServiceImpl extends BaseServiceImpl /** * 填充检验项目、方法、依据 */ - private HashMap fillExamineItemAndAll(List examineList) { - HashMap map = new HashMap<>(4); + private List> fillExamineItemAndAll(List examineList) { + List> ItemAndAllList = new ArrayList<>(); for (Examine examine : examineList) { + HashMap map = new HashMap<>(4); if (examine.getExamineItemId() != null) { ExamineItem byId = examineItemService.getById(examine.getExamineItemId()); if (byId != null) { @@ -853,15 +906,16 @@ public class EntrustServiceImpl extends BaseServiceImpl } } map.put("examineResult", "符合标准"); + ItemAndAllList.add(map); } - return map; + return ItemAndAllList; } @Override public void reportPrint(String examineId, HttpServletResponse response) { Map result = new HashMap<>(); List> resultList1 = new ArrayList<>(); - List> resultList2 = new ArrayList<>(); + String url = ""; // 检测数据 Examine examine = examineService.getById(examineId); @@ -901,19 +955,54 @@ public class EntrustServiceImpl extends BaseServiceImpl result.put("7", regentName); // 生产厂家及批号 - String manu = ""; + String manufacturer = ""; List strList = new ArrayList<>(); - for (String o : set) { - strList.add(o); + for (String m : set) { + strList.add(m); } for (int i = 0; i < strList.size(); i++) { if (i == (strList.size() - 1)) { - manu += strList.get(i); + manufacturer += strList.get(i); } else { - manu += strList.get(i) + ","; + manufacturer += strList.get(i) + ","; + } + } + + // 1.先拿到批次号 + String batchNos = examineResult.getBatchNos(); + String[] split3 = batchNos.split(","); + Map> tempListMap = new HashMap(); + for (String batch : split3) { + String reagentId = batch.split("-")[0]; + String realBatch = batch.split("-")[1]; + List list = tempListMap.get(reagentId); + if (CollectionUtils.isNotEmpty(list)) { + list.add(realBatch); + } else { + List temp = new ArrayList<>(); + temp.add(realBatch); + tempListMap.put(reagentId, temp); + } + } + String resultBatchStr = ""; + // 遍历处理批号 + Set strings = tempListMap.keySet(); + for (String reagentId : strings) { + // 根据试剂名称查询厂家名称 + Reagent reagent = reagentService.getById(reagentId); + String manufacturerName = reagent.getManufacturer(); + List list = tempListMap.get(reagentId); + resultBatchStr += manufacturerName + ":批号("; + for (int i = 0; i < list.size(); i++) { + String realBatch = list.get(i); + resultBatchStr += realBatch; + if (i != list.size() - 1) { + resultBatchStr += "、"; + } } + resultBatchStr += ")"; } - result.put("8", manu + "(批号:" + examineResult.getBatchNos() + ")"); + result.put("8", resultBatchStr); // 使用仪器名称及编号 String[] split2 = examineResult.getInstrumentId().split(","); @@ -1938,7 +2027,6 @@ public class EntrustServiceImpl extends BaseServiceImpl } } - // 模板地址 // String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//检测报告2(模板).docx"; XWPFDocument doc = null; @@ -1982,7 +2070,7 @@ public class EntrustServiceImpl extends BaseServiceImpl public void simpleRegisterPrint(String id, HttpServletResponse response) { Map result = new HashMap<>(); List> resultList = new ArrayList<>(); - + Entrust entrust = this.getById(id); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); wrapper.eq(Simple::getEntrustId, id); wrapper.eq(Simple::getIsReagent, "1"); @@ -1996,6 +2084,7 @@ public class EntrustServiceImpl extends BaseServiceImpl resultList.add(map); } result.put("resultList", resultList); + result.put("1", entrust.getAcceptanceNum()); } //模板地址 @@ -2045,11 +2134,13 @@ public class EntrustServiceImpl extends BaseServiceImpl @Override public void simpleNumberPrint(String id, HttpServletResponse response) { Map result = new HashMap<>(); + SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日"); Entrust entrust = this.getById(id); result.put("num", entrust.getAcceptanceNum()); result.put("name", entrust.getSimpleName()); result.put("count", entrust.getSimpleCount()); - + result.put("1", "李玉杰"); + result.put("2", format.format(new Date())); List> resultList1 = new ArrayList<>(); LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -2292,11 +2383,11 @@ public class EntrustServiceImpl extends BaseServiceImpl @Override public void simpleHandlePrint(String id, HttpServletResponse response) { - Entrust entrust = new Entrust(); - entrust.setId(Long.valueOf(id)); + Entrust entrust = this.getById(id); entrust.setIsHandle("1"); this.updateById(entrust); + Map result = new HashMap<>(); List> resultList = new ArrayList<>(); @@ -2316,6 +2407,7 @@ public class EntrustServiceImpl extends BaseServiceImpl resultList.add(map); } result.put("resultList", resultList); + result.put("1", entrust.getAcceptanceNum()); } //模板地址 // String handleUrl = "C://Users//AAA//Desktop//烁今//打印模板//留样处理(销毁)申请表(模板).docx"; @@ -2389,6 +2481,7 @@ public class EntrustServiceImpl extends BaseServiceImpl list.add(map); } result.put("list", list); + result.put("1", currEntrust.getAcceptanceNum()); XWPFDocument doc = null; // FileOutputStream fos = null; try { @@ -2864,7 +2957,11 @@ public class EntrustServiceImpl extends BaseServiceImpl Map map = list.get(sort); // 样品名称 String name = (String) map.get("simpleName"); - simpleName.append(name).append(","); + if (sort == (list.size() - 1)) { + simpleName.append(name); + } else { + simpleName.append(name).append(","); + } // 样品数量 Integer count = (Integer) map.get("simpleCount"); simpleCount += count; @@ -2956,7 +3053,7 @@ public class EntrustServiceImpl extends BaseServiceImpl /** * 新增或修改检验集合 */ - private void addOrUpdateExamines(List examines, Long entrustId) { + private void addOrUpdateExamines(List examines, Entrust entrust) { if (CollectionUtils.isNotEmpty(examines)) { List saveList = new ArrayList<>(); List updateList = new ArrayList<>(); @@ -2970,7 +3067,8 @@ public class EntrustServiceImpl extends BaseServiceImpl examine.setSimpleCount(0); examine.setExperieNum(""); examine.setExamineOrder(i + 1); - examine.setEntrustId(entrustId); + examine.setEntrustId(entrust.getId()); + examine.setAcceptanceNum(entrust.getAcceptanceNum()); examine.setCreateTime(new Date()); examine.setUpdateTime(new Date()); saveList.add(examine); 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 ac7d26f..01e2ef7 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 @@ -260,18 +260,20 @@ public class ExamineResultServiceImpl extends BaseServiceImpl 0) { - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("entrust_id", byId.getEntrustId()); - queryWrapper.eq("experie_num", s); - Simple one = simpleService.getOne(queryWrapper); - one.setStatus(0); - simpleService.updateById(one); - } - } + // TODO 实验提交修改样品状态,现在业务不需要,如果报错再看 +// String[] split = experieNum.split(","); +// List simpleList = new ArrayList<>(); +// for (String s : split) { +// if (split != null && split.length > 0) { +// QueryWrapper queryWrapper = new QueryWrapper<>(); +// queryWrapper.eq("entrust_id", byId.getEntrustId()); +// queryWrapper.eq("experie_num", s); +// Simple one = simpleService.getOne(queryWrapper); +// one.setStatus(0); +// simpleList.add(one); +// } +// } +// simpleService.updateBatchById(simpleList); } simpleDoExamineLogService.updateBatchById(logs); 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 8c9fe7d..e195697 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 @@ -197,6 +197,7 @@ public class TaskBlueprintServiceImpl extends BaseServiceImpl