From ae30c9855c15cb1b066cdcf3053c6b941a3caaf5 Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Tue, 10 Feb 2026 17:36:20 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=AE=A1=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interfaceCommon/utils/LisWorkUtils.java | 94 ++++++++++++++++++- .../controller/work/BatchCheckController.java | 6 ++ .../liswork/mapper/work/BatchCheckMapper.java | 3 +- .../liswork/service/BatchCheckService.java | 2 + .../impl/work/BatchCheckServiceImpl.java | 39 +++++++- .../mapper/work/BatchCheckMapper.xml | 9 +- 6 files changed, 145 insertions(+), 8 deletions(-) diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java index bd4e04d..27261b6 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkUtils.java @@ -1,10 +1,9 @@ package com.czlis.interfaceCommon.utils; import com.czlis.common.core.domain.Result; -import com.czlis.common.core.domain.entity.lis.LabCheckrules; -import com.czlis.common.core.domain.entity.lis.LabPat; -import com.czlis.common.core.domain.entity.lis.LabResult; +import com.czlis.common.core.domain.entity.lis.*; import com.czlis.interfaceCommon.constants.ComLogConstants; +import com.czlis.interfaceCommon.constants.LabPatConstants; import com.czlis.interfaceCommon.constants.LabReqmainConstants; import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants; import com.czlis.interfaceCommon.mapper.LabCheckrulesMapper; @@ -413,5 +412,94 @@ public class LisWorkUtils extends LisWorkconfirm { return params; } + /** + * 撤销审核报告单全流程 + * + * @param jyrq + * @param yq + * @param ybh + * @param yhdh + * @return + */ + public Result batchUnConfirm(Date jyrq, String yq, String ybh, String yhdh) { + if (yhdh == null || yhdh.isEmpty()) return new Result("-1", "操作者为空,无法解除审核!"); + LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); + //1,解除审核权限校验 + if (!commonUtil.getUserPower(yq, yhdh, 10)) return new Result("-1", "当前操作者无权对本仪器报告解除审核!"); + //2:数据合法性校验 + String jgbz = labPat.getJgbz(); + if (!"2".equals(jgbz)) return new Result("-1", "报告未审核,不需解除!"); + String unconfirmlog = commonUtil.getComOptValue(yq, "unconfirmlog"); + if ("1".equals(unconfirmlog)) { + return new Result("-1", "请填写解除审核原因!"); + } + + //调用his报告接口,完成报告同时调用外部接口任务 + SetReport setReport = new SetReport(); + setReport.setIp(getIP()); + setReport.setJyrq(DateFormatUtils.format(jyrq, "yyyy-MM-dd")); + setReport.setYq(yq.trim()); + setReport.setYbh(ybh); + setReport.setUserid(yhdh); + setReport.setStatus(LisinterfaceNameConstants.REPORTCANCAL); + Result result = lisInterfaceUtil.invokeLisInterface(LisinterfaceNameConstants.SETREPORT, setReport); + if (result.getCode().equals("5")) { + return new Result(result.getCode(), result.getMsg()); + } + if (!result.getCode().equals("0")) return result; + + String sqh = labPat.getSqh(); + LabReqmain labReqmain = commonUtil.getLabReqmainOne(sqh); + if (labReqmain != null) { + String zt = labReqmain.getZt(); + if (!LabReqmainConstants.CANCAL.equals(zt)) { + labReqmain.setConfirmer(""); + labReqmain.setConfirmtime(null); + if (LabReqmainConstants.CONFIRM.equals(zt)) { + labReqmain.setZt(LabReqmainConstants.SIGNFOR); + labReqmain.setConfirmer(""); + labReqmain.setConfirmtime(null); + commonUtil.updateLabReqmain(labReqmain); + } + } + } + String msg = "取消成功!"; + String sp_rebackreport = commonUtil.getHISOPT("sp_rebackreport"); + if ("1".equals(sp_rebackreport)) { + if ("1".equals(labPat.getDybz())) { + msg = msg + LisUtil.LINE_SEPARATOR + "此报告为已打印报告,注意考虑是否追回"; + } + LabPatwarning labPatwarning = commonUtil.getLabPatwarning(jyrq, yq, ybh); + if (labPatwarning != null) { + Date tzsj = labPatwarning.getTzsj(); + long sjc = LisUtil.relativeMinute(tzsj); + if (sjc > 10) { + return new Result("-1", "此报告已发布危急值结果,并且时间超过10分钟了!" + LisUtil.LINE_SEPARATOR + "请输入撤回报告组长代号和密码"); + } + + //权限不足,撤回报告失败组长权限单独接口校验 + int ll_qxz = lisWorkUtilsMapper.getQXZ(yhdh); + if (ll_qxz <= 0) { + return new Result("-1", "权限不足,撤回报告失败!"); + } + + commonUtil.deleteLabPatwarning(jyrq, yq, ybh); + commonUtil.deleteLabResultwarning(jyrq, yq, ybh); + } + } + commonUtil.deleteLabReqreportPdffile(jyrq, yq, ybh); + labPat.setFslx(""); + labPat.setJgbz(LabPatConstants.DEFAULT); + commonUtil.updateLabPat(labPat); + String logdata = commonUtil.getLisPatlogbz(jyrq, yq, ybh); + setComLog(jyrq, yq, ybh, yhdh, ComLogConstants.LG_UCK, logdata); + setpatLog(jyrq, yq, ybh, yhdh); + if (sqh != null) { + setlabReqsteplog(sqh, LabReqmainConstants.START, yhdh); + } + if (!"取消成功!".equals(msg)) return new Result("3", msg); + return new Result("0", msg); + } + } diff --git a/liswork/src/main/java/com/czlis/liswork/controller/work/BatchCheckController.java b/liswork/src/main/java/com/czlis/liswork/controller/work/BatchCheckController.java index 863b50a..ec28eb4 100644 --- a/liswork/src/main/java/com/czlis/liswork/controller/work/BatchCheckController.java +++ b/liswork/src/main/java/com/czlis/liswork/controller/work/BatchCheckController.java @@ -37,4 +37,10 @@ public class BatchCheckController { return batchCheckService.checkData(batchCheckDTOList); } + @ApiOperation("取消审核条码") + @PostMapping("/unCheckData") + public Result unCheckData(@RequestBody List batchCheckDataDTOList){ + return batchCheckService.unChekData(batchCheckDataDTOList); + } + } diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/work/BatchCheckMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/work/BatchCheckMapper.java index 590aa67..5d16c35 100644 --- a/liswork/src/main/java/com/czlis/liswork/mapper/work/BatchCheckMapper.java +++ b/liswork/src/main/java/com/czlis/liswork/mapper/work/BatchCheckMapper.java @@ -4,7 +4,8 @@ import com.czlis.common.core.domain.entity.lis.LabPat; import com.czlis.liswork.pojo.DTO.BatchCheckDTO; import java.util.List; +import java.util.Map; public interface BatchCheckMapper { - List queryData(BatchCheckDTO batchCheckDTO); + List> queryData(BatchCheckDTO batchCheckDTO); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/BatchCheckService.java b/liswork/src/main/java/com/czlis/liswork/service/BatchCheckService.java index 668b565..f83b2e4 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/BatchCheckService.java +++ b/liswork/src/main/java/com/czlis/liswork/service/BatchCheckService.java @@ -10,4 +10,6 @@ public interface BatchCheckService { Result queryData(BatchCheckDTO batchCheckDTO); Result checkData(List batchCheckDTOList); + + Result unChekData(List batchCheckDataDTO); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchCheckServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchCheckServiceImpl.java index 516e9e6..c19430d 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchCheckServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/work/BatchCheckServiceImpl.java @@ -3,7 +3,14 @@ package com.czlis.liswork.service.impl.work; import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.entity.lis.LabPat; +import com.czlis.common.core.domain.entity.lis.LabPatwarning; +import com.czlis.common.core.domain.entity.lis.LabReqmain; import com.czlis.common.core.domain.entity.lis.LabResult; +import com.czlis.interfaceCommon.constants.ComLogConstants; +import com.czlis.interfaceCommon.constants.LabPatConstants; +import com.czlis.interfaceCommon.constants.LabReqmainConstants; +import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants; +import com.czlis.interfaceCommon.pojo.inter.SetReport; import com.czlis.interfaceCommon.utils.CommonUtil; import com.czlis.interfaceCommon.utils.LisUtil; import com.czlis.interfaceCommon.utils.LisWorkUtils; @@ -12,11 +19,13 @@ import com.czlis.liswork.pojo.DTO.BatchCheckDTO; import com.czlis.liswork.pojo.DTO.work.BatchCheckDataDTO; import com.czlis.liswork.service.BatchCheckService; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Date; import java.util.List; +import java.util.Map; @Service @Slf4j @@ -37,7 +46,7 @@ public class BatchCheckServiceImpl implements BatchCheckService { if (jyrq1 == null) return new Result("-1", "检验日期不能为空!"); if (jyrq2 == null) return new Result("-1", "检验日期不能为空!"); if(yq == null) return new Result("-1","仪器不能为空!"); - List labPatList = batchCheckMapper.queryData(batchCheckDTO); + List> labPatList = batchCheckMapper.queryData(batchCheckDTO); return new Result("0", "获取数据成功!", labPatList); } @@ -77,6 +86,32 @@ public class BatchCheckServiceImpl implements BatchCheckService { //审核失败个数 int i1 = batchCheckDTOList.size() - i; - return new Result("1", "执行成功:" + i + "个,失败:" + i1 + "个,\r\n" + errText); + return new Result("1", "批量审核执行成功:" + i + "个,失败:" + i1 + "个,\r\n" + errText); } + + @Override + public Result unChekData(List batchCheckDataDTOList) { + String errText = ""; + int i = 0; + for (BatchCheckDataDTO batchCheckDataDTO : batchCheckDataDTOList) { + Date jyrq = batchCheckDataDTO.getJyrq(); + if(jyrq == null) continue; + String yq = batchCheckDataDTO.getYq(); + if(yq == null) continue; + String ybh = batchCheckDataDTO.getYbh(); + if(ybh == null) continue; + String userId = batchCheckDataDTO.getUserId(); + Result result = lisWorkUtils.batchUnConfirm(jyrq, yq, ybh, userId); + if(!result.getCode().equals("0")) { + errText = "取消审核失败:" + result.getMsg() + "\r\n"; + continue; + } + i++; + } + //审核失败个数 + int i1 = batchCheckDataDTOList.size() - i; + return new Result("1", "批量取消审核执行成功:" + i + "个,失败:" + i1 + "个,\r\n" + errText); + } + + } diff --git a/liswork/src/main/resources/mapper/work/BatchCheckMapper.xml b/liswork/src/main/resources/mapper/work/BatchCheckMapper.xml index b213e7a..b077303 100644 --- a/liswork/src/main/resources/mapper/work/BatchCheckMapper.xml +++ b/liswork/src/main/resources/mapper/work/BatchCheckMapper.xml @@ -2,9 +2,14 @@ - = #{jyrq1} and jyrq <= #{jyrq2} and yq = #{yq} + select *, + (select yqmc from lab_instr where lab_pat.yq = yq) as yqmc, + (select yhxm from com_usr where yhdh = lab_pat.yhdh) as yhdhmc, + (select yhxm from com_usr where yhdh = lab_pat.hdys) as hdysmc, + (select yhxm from com_usr where yhdh = lab_pat.confirmer) as confirmermc + from lab_pat where jyrq >= #{jyrq1} and jyrq <= #{jyrq2} and yq = #{yq} ]]> and ( CASE WHEN ybh NOT LIKE '%[^0-9]%' THEN CAST(ybh AS bigint) ELSE 0 END) between #{ybh1} and #{ybh2} and ksdh = #{ksdh}