From a7b2592c0a4ef8c75236a53fc321e8d89fe0c79d Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Wed, 13 May 2026 16:37:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E6=89=93=E5=8D=B0=20?= =?UTF-8?q?=EF=BC=8C=E6=89=B9=E9=87=8F=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/work/BatchInController.java | 46 +++++++ .../controller/work/BatchPrintController.java | 41 +++++++ .../liswork/mapper/work/BatchPrintMapper.java | 10 ++ .../com/czlis/liswork/pojo/VO/BatchInVO.java | 23 ++++ .../liswork/pojo/VO/BatchPrintQueryVO.java | 33 ++++++ .../czlis/liswork/pojo/VO/BatchPrintVO.java | 17 +++ .../czlis/liswork/service/BatchInService.java | 12 ++ .../liswork/service/BatchPrintService.java | 13 ++ .../service/impl/work/BatchInServiceImpl.java | 112 ++++++++++++++++++ .../impl/work/BatchPrintServiceImpl.java | 74 ++++++++++++ .../czlis/liswork/utils/LisCommonUtil.java | 59 +++++++++ .../mapper/work/BatchPrintMapper.xml | 33 ++++++ 12 files changed, 473 insertions(+) create mode 100644 liswork/src/main/java/com/czlis/liswork/controller/work/BatchInController.java create mode 100644 liswork/src/main/java/com/czlis/liswork/controller/work/BatchPrintController.java create mode 100644 liswork/src/main/java/com/czlis/liswork/mapper/work/BatchPrintMapper.java create mode 100644 liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchInVO.java create mode 100644 liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchPrintQueryVO.java create mode 100644 liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchPrintVO.java create mode 100644 liswork/src/main/java/com/czlis/liswork/service/BatchInService.java create mode 100644 liswork/src/main/java/com/czlis/liswork/service/BatchPrintService.java create mode 100644 liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchInServiceImpl.java create mode 100644 liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchPrintServiceImpl.java create mode 100644 liswork/src/main/java/com/czlis/liswork/utils/LisCommonUtil.java create mode 100644 liswork/src/main/resources/mapper/work/BatchPrintMapper.xml diff --git a/liswork/src/main/java/com/czlis/liswork/controller/work/BatchInController.java b/liswork/src/main/java/com/czlis/liswork/controller/work/BatchInController.java new file mode 100644 index 0000000..5f6485b --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/controller/work/BatchInController.java @@ -0,0 +1,46 @@ +package com.czlis.liswork.controller.work; + + +import com.czlis.common.core.controller.BaseController; +import com.czlis.common.core.domain.Result; +import com.czlis.liswork.pojo.VO.BatchInVO; +import com.czlis.liswork.service.BatchInService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * 批量输入 + */ +@RestController +@RequestMapping("/batchIn") +@Slf4j +@Api(tags = "批量输入") +public class BatchInController extends BaseController { + + @Autowired + private BatchInService batchInService; + + + @ApiOperation("获取模版数据") + @GetMapping("/getInputMdl") + public Result getInputMdl(String yq){ + return batchInService.getInputMdl(yq); + } + + @ApiOperation("获取模版明细数据") + @GetMapping("/getInputMdlDetail") + public Result getInputMdlDetail(String yq,String mbmc){ + return batchInService.getInputMdlDetail(yq,mbmc); + } + + + @ApiOperation("确认模版数据") + @PostMapping("/confirmInputMdl") + public Result confirmInputMdl(@RequestBody BatchInVO batchInVO){ + batchInVO.setYhdh(getUsername()); + return batchInService.confirmInputMdl(batchInVO); + } +} diff --git a/liswork/src/main/java/com/czlis/liswork/controller/work/BatchPrintController.java b/liswork/src/main/java/com/czlis/liswork/controller/work/BatchPrintController.java new file mode 100644 index 0000000..d2487a8 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/controller/work/BatchPrintController.java @@ -0,0 +1,41 @@ +package com.czlis.liswork.controller.work; + +import com.czlis.common.core.domain.Result; +import com.czlis.liswork.pojo.VO.BatchPrintQueryVO; +import com.czlis.liswork.pojo.VO.BatchPrintVO; +import com.czlis.liswork.service.BatchPrintService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; + +/** + * 批量打印 + */ +@RestController +@RequestMapping("/batchPrint") +@Slf4j +@Api(tags = "批量打印") +public class BatchPrintController { + + @Autowired + BatchPrintService batchPrintService; + + @ApiOperation("打印数据") + @PostMapping("/printAll") + public Result printAll(@RequestBody List batchPrintVOList){ + return batchPrintService.printAll(batchPrintVOList); + } + + @ApiOperation("查询需要打印的数据") + @PostMapping("/queryList") + public Result queryList(@RequestBody BatchPrintQueryVO batchPrintQueryVO){ + return batchPrintService.queryList(batchPrintQueryVO); + } +} diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/work/BatchPrintMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/work/BatchPrintMapper.java new file mode 100644 index 0000000..719bc8b --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/mapper/work/BatchPrintMapper.java @@ -0,0 +1,10 @@ +package com.czlis.liswork.mapper.work; + +import com.czlis.liswork.pojo.VO.BatchPrintQueryVO; + +import java.util.List; +import java.util.Map; + +public interface BatchPrintMapper { + List> queryList(BatchPrintQueryVO batchPrintQueryVO); +} diff --git a/liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchInVO.java b/liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchInVO.java new file mode 100644 index 0000000..0096e1e --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchInVO.java @@ -0,0 +1,23 @@ +package com.czlis.liswork.pojo.VO; + + +import com.czlis.common.core.domain.entity.lis.LabInputmdlDetail; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.List; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class BatchInVO { + private String yq; + private Date jyrq; + private String ybh; + private String mbmc; + private String yblx; + private String yhdh; + private List labInputmdlDetailList; +} diff --git a/liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchPrintQueryVO.java b/liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchPrintQueryVO.java new file mode 100644 index 0000000..04c1b97 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchPrintQueryVO.java @@ -0,0 +1,33 @@ +package com.czlis.liswork.pojo.VO; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import javax.validation.constraints.NotBlank; +import java.util.Date; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class BatchPrintQueryVO { + private Date jyrq; + @NotBlank(message = "样本号不能为空") + private String ybh; + private String brly; + private String ksdh; + private String yq; + private String notksdh; + private String notbrly; + private String fzdy; + private String dybz; + private String jgbz; + private String sorttype; + private String nobrxm; + private String nocsjg; + private String jgbz2; + private String yqz; + private String dyyx; + private String pcyx; + +} diff --git a/liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchPrintVO.java b/liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchPrintVO.java new file mode 100644 index 0000000..62e1895 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/pojo/VO/BatchPrintVO.java @@ -0,0 +1,17 @@ +package com.czlis.liswork.pojo.VO; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class BatchPrintVO { + private Date jyrq; + private String yq; + private String ybh; + +} diff --git a/liswork/src/main/java/com/czlis/liswork/service/BatchInService.java b/liswork/src/main/java/com/czlis/liswork/service/BatchInService.java new file mode 100644 index 0000000..62e483a --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/service/BatchInService.java @@ -0,0 +1,12 @@ +package com.czlis.liswork.service; + +import com.czlis.common.core.domain.Result; +import com.czlis.liswork.pojo.VO.BatchInVO; + +public interface BatchInService { + Result getInputMdl(String yq); + + Result getInputMdlDetail(String yq, String mbmc); + + Result confirmInputMdl(BatchInVO batchInVO); +} diff --git a/liswork/src/main/java/com/czlis/liswork/service/BatchPrintService.java b/liswork/src/main/java/com/czlis/liswork/service/BatchPrintService.java new file mode 100644 index 0000000..bf61056 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/service/BatchPrintService.java @@ -0,0 +1,13 @@ +package com.czlis.liswork.service; + +import com.czlis.common.core.domain.Result; +import com.czlis.liswork.pojo.VO.BatchPrintQueryVO; +import com.czlis.liswork.pojo.VO.BatchPrintVO; + +import java.util.List; + +public interface BatchPrintService { + Result printAll(List batchPrintVOList); + + Result queryList(BatchPrintQueryVO batchPrintQueryVO); +} diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchInServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchInServiceImpl.java new file mode 100644 index 0000000..ac6e795 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchInServiceImpl.java @@ -0,0 +1,112 @@ +package com.czlis.liswork.service.impl.work; + +import com.czlis.common.core.domain.Result; +import com.czlis.common.core.domain.entity.lis.LabInputmdl; +import com.czlis.common.core.domain.entity.lis.LabInputmdlDetail; +import com.czlis.common.core.domain.entity.lis.LabPat; +import com.czlis.common.core.domain.entity.lis.LabResult; +import com.czlis.common.utils.DateUtils; +import com.czlis.interfaceCommon.utils.CommonUtil; +import com.czlis.interfaceCommon.utils.LisUtil; +import com.czlis.interfaceCommon.utils.LisWorkBase; +import com.czlis.liswork.pojo.VO.BatchInVO; +import com.czlis.liswork.service.BatchInService; +import com.czlis.liswork.utils.LisCommonUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +@Slf4j +@Service +public class BatchInServiceImpl implements BatchInService { + + @Autowired + CommonUtil commonUtil; + @Autowired + LisWorkBase lisWorkBase; + @Resource + private ApplicationContext applicationContext; + + @Override + public Result getInputMdl(String yq) { + List labInputmdlList = commonUtil.getLabInputmdl(yq); + return new Result("0","操作成功",labInputmdlList); + } + + @Override + public Result getInputMdlDetail(String yq, String mbmc) { + List labInputmdlDetailList = commonUtil.getLabInputmdlDetail(yq, mbmc); + return new Result("0","查询成功!",labInputmdlDetailList); + } + + @Override + public Result confirmInputMdl(BatchInVO batchInVO) { + String yq = batchInVO.getYq(); + + Result result = LisCommonUtil.changeYBHToList(batchInVO.getYbh()); + if(!result.getCode().equals("0")) return result; + List ybhList = (List) result.getData(); + List resultList = new ArrayList<>(); + for (String ybh : ybhList) { + LabPat labPatOne = commonUtil.getLabPatOne(batchInVO.getJyrq(), batchInVO.getYq(), ybh); + if(!lisWorkBase.canmodifysample(labPatOne)) return new Result("-1","样本号:"+ybh+",没有修改权限!"); + List labInputmdlDetailList = batchInVO.getLabInputmdlDetailList(); + for (LabInputmdlDetail labInputmdlDetail : labInputmdlDetailList) { + LabResult labResult = commonUtil.getLabResult(batchInVO.getJyrq(), yq, ybh, labInputmdlDetail.getXmdh()); + if(labResult != null){ + String csjg = LisUtil.isBank(labResult.getCsjg()); + String mrz = LisUtil.isBank(labInputmdlDetail.getMrz()); + if(csjg.equals(mrz)) continue; + } + LabResult labResult1 = new LabResult(); + labResult1.setJyrq(batchInVO.getJyrq()); + labResult1.setYq(yq); + labResult1.setYbh(ybh); + labResult1.setXmdh(labInputmdlDetail.getXmdh()); + labResult1.setCsjg(labInputmdlDetail.getMrz()); + //TODO 这里是不是需要增加一个jgbz字段 写入 + //labResult1.setJgbz("M"); + applicationContext.getBean(BatchInServiceImpl.class).updateLabResult(labResult1); + + + //TODO 增加计算项目 + + } + + //更新标本上传标志和操作员 + LabPat labPat = new LabPat(); + labPat.setLastuser(batchInVO.getYhdh()); + labPat.setLastdt(commonUtil.getCurrentTime()); + labPat.setJgbz("0"); + labPat.setYblx(batchInVO.getYblx()); + labPat.setJyrq(batchInVO.getJyrq()); + labPat.setYq(yq); + labPat.setYbh(ybh); + commonUtil.updateLabPat(labPat); + resultList.add("样本号:"+ybh+",添加成功!"); + //写日志 + lisWorkBase.setpatLog(batchInVO.getJyrq(), yq, batchInVO.getYbh(), batchInVO.getYhdh()); + } + + + return new Result("0","操作成功!",resultList); + } + + + @Transactional + public void updateLabResult(LabResult labResult){ + String csjg = labResult.getCsjg(); + labResult.setCsjg(null); + commonUtil.delLabResult(labResult); + labResult.setCsjg(csjg); + commonUtil.insertLabResult(labResult); + } + +} diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchPrintServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchPrintServiceImpl.java new file mode 100644 index 0000000..3c8e696 --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchPrintServiceImpl.java @@ -0,0 +1,74 @@ +package com.czlis.liswork.service.impl.work; + +import cn.hutool.core.util.StrUtil; +import com.czlis.common.core.domain.Result; +import com.czlis.common.core.domain.entity.lis.LabInstr; +import com.czlis.interfaceCommon.utils.CommonUtil; +import com.czlis.liswork.mapper.work.BatchPrintMapper; +import com.czlis.liswork.pojo.VO.BatchPrintQueryVO; +import com.czlis.liswork.pojo.VO.BatchPrintVO; +import com.czlis.liswork.service.BatchPrintService; +import com.czlis.liswork.utils.LisCommonUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +@Slf4j +@Service +public class BatchPrintServiceImpl implements BatchPrintService { + + @Autowired + CommonUtil commonUtil; + @Autowired + BatchPrintMapper batchPrintMapper; + + + @Override + public Result printAll(List batchPrintVOList) { + //TODO 直接过滤掉未审核的报告了,如果需要后面再加吧 + if(batchPrintVOList.size() <= 0) return new Result("0","没有数据可打印!"); + LabInstr labInstr = commonUtil.getLabInstr(batchPrintVOList.get(0).getYq()); + if(labInstr.getPcdyms().equals("所有标本")){ + for (BatchPrintVO batchPrintVO : batchPrintVOList) { + + } + } + + + return null; + } + + @Override + public Result queryList(BatchPrintQueryVO batchPrintQueryVO) { + int perpage = 0; + + //校验参数 + String ybh = batchPrintQueryVO.getYbh().trim(); + + + + Result result = LisCommonUtil.changeYBHToSQL(ybh); + if(!result.getCode().equals("0")) return result; + ybh = result.getData().toString(); + batchPrintQueryVO.setYbh(ybh); + //TODO 调用查询sql + + + String yq = batchPrintQueryVO.getYq(); + String autofeedpaper = commonUtil.getComOptValue(yq, "AUTOFEEDPAPER"); + LabInstr labInstr = commonUtil.getLabInstr(yq); + if(labInstr != null){ + perpage = labInstr.getMyhs(); + }else{ + perpage = 15; + } + List> mapList = batchPrintMapper.queryList(batchPrintQueryVO); + if(mapList.size() <= 0) return new Result("-1","没有符合条件的数据!"); + + return new Result("0","查询成功!",mapList); + } +} diff --git a/liswork/src/main/java/com/czlis/liswork/utils/LisCommonUtil.java b/liswork/src/main/java/com/czlis/liswork/utils/LisCommonUtil.java new file mode 100644 index 0000000..259637e --- /dev/null +++ b/liswork/src/main/java/com/czlis/liswork/utils/LisCommonUtil.java @@ -0,0 +1,59 @@ +package com.czlis.liswork.utils; + +import cn.hutool.core.util.StrUtil; +import com.czlis.common.core.domain.Result; + +import java.util.ArrayList; +import java.util.List; + +public class LisCommonUtil { + + public static Result changeYBHToSQL(String ybh) { + //转换样本号 + ybh = ybh.replaceAll(",",","); + ybh = ybh.replaceAll("--","-"); + String[] strings = StrUtil.splitToArray(ybh, ","); + String ybhSQL = "",ybhSQL_ = ""; + for (String string : strings) { + if(string.contains("-")){ + String[] split = StrUtil.splitToArray(string, "-"); + if(split.length != 2) return new Result("-1","样本号输入非法!"); + int start = Integer.parseInt(split[0]); + int end = Integer.parseInt(split[1]); + if(start > end) return new Result("-1","样本号输入非法!"); + ybhSQL_ = ybhSQL_ + " or (ybh >= '"+ start + "' and ybh <='" + end + "') "; + }else{ + //全是,的 + ybhSQL = ybhSQL + "'" + string + "',"; + } + } + ybhSQL = "ybh in (" + ybhSQL + ")"; + ybh = "("+ybhSQL + ybhSQL_ + ")"; + return new Result("0","样本号转换成功!",ybh); + } + + public static Result changeYBHToList(String ybhStr){ + ybhStr = ybhStr.replaceAll(",",","); + ybhStr = ybhStr.replaceAll("--","-"); + String[] strings = StrUtil.splitToArray(ybhStr, ","); + List ybhList = new ArrayList<>(); + for (String string : strings) { + if(string.contains("-")){ + String[] split = StrUtil.splitToArray(string, "-"); + if(split.length != 2) return new Result("-1","样本号输入非法!"); + int start = Integer.parseInt(split[0]); + int end = Integer.parseInt(split[1]); + if(start > end) return new Result("-1","样本号输入非法!"); + for (int i = start; i <= end; i++) { + if(!ybhList.contains(String.valueOf(i))){ + ybhList.add(String.valueOf(i)); + } + } + }else{ + //全是,的 + ybhList.add( string); + } + } + return new Result("0","样本号转换成功!",ybhList); + } +} diff --git a/liswork/src/main/resources/mapper/work/BatchPrintMapper.xml b/liswork/src/main/resources/mapper/work/BatchPrintMapper.xml new file mode 100644 index 0000000..3b31df6 --- /dev/null +++ b/liswork/src/main/resources/mapper/work/BatchPrintMapper.xml @@ -0,0 +1,33 @@ + + + + + +