From 08a4149b988a8178b9f4398006b4135ee6960c75 Mon Sep 17 00:00:00 2001 From: tangw Date: Tue, 25 Nov 2025 19:36:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E7=94=9F=E7=89=A9=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../interfaceCommon/utils/LisWorkBase.java | 6 +- .../interfaceCommon/utils/LisWorkcom.java | 2 +- .../interfaceCommon/utils/LisWorkconfirm.java | 6 +- .../work/LisWorkGermController.java | 6 +- .../liswork/service/LisWorkGermService.java | 2 +- .../service/impl/LisWorkGermServiceImpl.java | 405 +++++++++++++++++- .../service/impl/LisWorkOperServiceImpl.java | 1 - 7 files changed, 412 insertions(+), 16 deletions(-) diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkBase.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkBase.java index 1dbe1a8..12f9a5b 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkBase.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkBase.java @@ -29,7 +29,7 @@ public class LisWorkBase { /**获取当前用户姓名**/ String getnickname(){return SecurityUtils.getNickName();} /**获取当前客户端电脑IP**/ - String getIP(){ + public String getIP(){ return IpUtils.getIpAddr(); } /**获取当前登录的医疗机构**/ @@ -114,7 +114,7 @@ public class LisWorkBase { * @param labResultList 结果集合 * @return 返回 */ - boolean getAlarmFlag(List labResultList) { + public boolean getAlarmFlag(List labResultList) { boolean wjz = false; if(labResultList==null)return wjz; if(labResultList.size()==0)return wjz; @@ -183,7 +183,7 @@ public class LisWorkBase { * @param ybh 样本号 * @param yhdh 用户 */ - void setpatLog(Date jyrq, String yq, String ybh, String yhdh) { + public void setpatLog(Date jyrq, String yq, String ybh, String yhdh) { Date xgrq = new Date(); String ip = getIP(); commonUtil.insertLabPatlog(jyrq, yq, ybh, xgrq, yhdh, ip); diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkcom.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkcom.java index bd51f19..efdfc4e 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkcom.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkcom.java @@ -577,7 +577,7 @@ public class LisWorkcom extends LisWorkBase{ * @param labResultList * @return */ - String getAlarmMsg(List labResultList) { + public String getAlarmMsg(List labResultList) { StringBuilder wjzmsg = new StringBuilder(); List labResultList0 = labResultList.stream().filter(xm ->xm.getAlarm_flag() != null).filter(xm -> !xm.getAlarm_flag().trim().isEmpty()).collect(Collectors.toList()); if (!labResultList0.isEmpty()) { diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkconfirm.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkconfirm.java index 1b7f0c7..a18c1ad 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkconfirm.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisWorkconfirm.java @@ -314,7 +314,7 @@ public class LisWorkconfirm extends LisWorkcom{ * @param problemId * @return */ - private Result chksample(LabPat labPat, List labResultList, Integer problemId) { + public Result chksample(LabPat labPat, List labResultList, Integer problemId) { //医学审核条件判断 if (problemId < 6) { String checkvalue = checkResultUtils.chksample(labPat, labResultList); @@ -332,7 +332,7 @@ public class LisWorkconfirm extends LisWorkcom{ * @param problemId * @return */ - private Result chksamplenew(LabPat labPat, List labResultList, Integer problemId) { + public Result chksamplenew(LabPat labPat, List labResultList, Integer problemId) { //医学审核条件判断 Boolean setbz = false; String bz = labPat.getBz(); @@ -371,7 +371,7 @@ public class LisWorkconfirm extends LisWorkcom{ * @param problemId * @return */ - private Result afterconfirm(LabPat labPat, Integer problemId) { + public Result afterconfirm(LabPat labPat, Integer problemId) { Date jyrq = labPat.getJyrq(); String yq = labPat.getYq(); String ybh = labPat.getYbh(); diff --git a/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkGermController.java b/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkGermController.java index 280cf45..6273f61 100644 --- a/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkGermController.java +++ b/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkGermController.java @@ -136,5 +136,9 @@ public class LisWorkGermController extends BaseController { clearPage(); } } - + @ApiOperation(value = "微生物报告审核",notes = "结果标志为目标动作,加-前缀为反操作") + @GetMapping("/check") + public Result check(Date jyrq, String yq, String ybh, String yhdh, String jgbz) { + return lisWorkGermService.check(jyrq, yq, ybh, yhdh,jgbz); + } } diff --git a/liswork/src/main/java/com/czlis/liswork/service/LisWorkGermService.java b/liswork/src/main/java/com/czlis/liswork/service/LisWorkGermService.java index 0873c38..38a3e58 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/LisWorkGermService.java +++ b/liswork/src/main/java/com/czlis/liswork/service/LisWorkGermService.java @@ -22,5 +22,5 @@ public interface LisWorkGermService { Result changeresult(LabResult labResult); Result newresult(LabResult labResult); Result saveallresult(List labResult); - + Result check(Date jyrq, String yq, String ybh, String hdys,String type); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkGermServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkGermServiceImpl.java index 90e1132..970827d 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkGermServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkGermServiceImpl.java @@ -3,10 +3,13 @@ package com.czlis.liswork.service.impl; import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.entity.lis.*; import com.czlis.common.utils.SecurityUtils; -import com.czlis.interfaceCommon.constants.LabResultmedConstants; +import com.czlis.common.utils.ServletUtils; +import com.czlis.interfaceCommon.constants.*; import com.czlis.interfaceCommon.mapper.ComDictMapper; import com.czlis.interfaceCommon.mapper.LabResultMedMapper; +import com.czlis.interfaceCommon.pojo.inter.SetReport; import com.czlis.interfaceCommon.utils.CommonUtil; +import com.czlis.interfaceCommon.utils.LisInterfaceUtil; import com.czlis.interfaceCommon.utils.LisUtil; import com.czlis.interfaceCommon.utils.LisWorkUtils; import com.czlis.liswork.mapper.LisWorkGermMapper; @@ -16,6 +19,7 @@ import com.czlis.liswork.pojo.DTO.MediumDTO; import com.czlis.liswork.pojo.HistoryResult; import com.czlis.liswork.service.LisWorkGermService; 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 org.springframework.transaction.annotation.Transactional; @@ -31,6 +35,8 @@ public class LisWorkGermServiceImpl implements LisWorkGermService { @Autowired LisWorkUtils lisWorkUtils; @Autowired + LisInterfaceUtil lisInterfaceUtil; + @Autowired LisWorkGermMapper lisWorkGermMapper; @Override public Result getresultinfo(Date jyrq, String yq, String ybh){ @@ -192,11 +198,12 @@ public class LisWorkGermServiceImpl implements LisWorkGermService { Date jyrq = labResult.getJyrq(); String ybh = labResult.getYbh(); LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); - - if ("2".equals(labPat.getJgbz())) return new Result("-1", "结果已审核禁止修改!"); - if ("5".equals(labPat.getJgbz())) return new Result("-1", "结果已锁定禁止修改!"); - if ("1".equals(labPat.getJgbz())) return new Result("-1", "结果已初审禁止修改!"); - if(!lisWorkUtils.canmodifysample(labPat))return new Result("-1","目标标本不可修改"); + if(labPat!=null) { + if ("2".equals(labPat.getJgbz())) return new Result("-1", "结果已审核禁止修改!"); + if ("5".equals(labPat.getJgbz())) return new Result("-1", "结果已锁定禁止修改!"); + if ("1".equals(labPat.getJgbz())) return new Result("-1", "结果已初审禁止修改!"); + if (!lisWorkUtils.canmodifysample(labPat)) return new Result("-1", "目标标本不可修改"); + } commonUtil.updateLabResult(labResult); return new Result("0", "保存成功"); } @@ -410,4 +417,390 @@ public class LisWorkGermServiceImpl implements LisWorkGermService { commonUtil.delLabResultMed(labResultmed); return new Result("0","成功"); } + @Override + public Result check(Date jyrq, String yq, String ybh, String hdys,String type){ + int problemId = ServletUtils.getParameterToInt("problemId", 0); + String yhdh=hdys; + switch (type){ + case "1": + return lisWorkUtils.confirm1(jyrq, yq, ybh, hdys, problemId); + case "2": + return lisWorkUtils.confirm(jyrq, yq, ybh, hdys, problemId); + case "3": + return checkcbbg(jyrq, yq, ybh, hdys, problemId); + case "4": + return checkejbg(jyrq, yq, ybh, hdys, problemId); + case "5": + if (yhdh == null || yhdh.isEmpty()) return new Result("-1", "锁定者为空,无法锁定报告!"); + LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); + String jgbz = labPat.getJgbz(); + if ("2".equals(jgbz)) return new Result("-1", "报告已审核!"); + if ("5".equals(jgbz)) return new Result("-1", "已锁定报告禁止审核!"); + if (!commonUtil.getUserPower(yq, yhdh, 20)) { + return new Result("-1", "当前锁定者无权对本仪器报告锁定!"); + } + commonUtil.updateLabPatJgbz(jyrq, yq, ybh, LabPatConstants.STOP); + lisWorkUtils.setComLog(jyrq, yq, ybh, yhdh, "LOCK", "锁定报告"); + return new Result("0", "成功"); + case "-1": + return lisWorkUtils.unconfirm1(jyrq, yq, ybh, hdys); + case "-2": + return lisWorkUtils.unconfirm(jyrq, yq, ybh, hdys); + case "-3": + return uncheckcbbg(jyrq, yq, ybh, hdys, problemId); + case "-4": + return uncheckejbg(jyrq, yq, ybh, hdys, problemId); + case "-5": + if (yhdh == null || yhdh.isEmpty()) return new Result("-1", "解锁者为空,无法解锁报告!"); + LabPat labPat0 = commonUtil.getLabPatOne(jyrq, yq, ybh); + String jgbz0 = labPat0.getJgbz(); + if (!"5".equals(jgbz0)) return new Result("-1", "未锁定报告解锁失败!"); + if (!commonUtil.getUserPower(yq, yhdh, 10)) { + if (commonUtil.getUserPower(yq, yhdh, 17)) { + if(yhdh.equals(labPat0.getYhdh())||yhdh.equals(labPat0.getHdys())||yhdh.equals(labPat0.getConfirmer())){ + + }else{ + return new Result("-1", "当前解锁者无权对本仪器报告解锁!"); + } + }else { + return new Result("-1", "当前解锁者无权对本仪器报告解锁!"); + } + } + commonUtil.updateLabPatJgbz(jyrq, yq, ybh, LabPatConstants.DEFAULT); + lisWorkUtils.setComLog(jyrq, yq, ybh, yhdh, "ULOCK", "解锁报告"); + return new Result("0", "成功"); + default: + } + return new Result("-1","未定义审核方式"); + } + private Result checkcbbg(Date jyrq, String yq, String ybh, String hdys,int problemId) { + String yq1=getFirstInstrid(yq); + if(yq1==null)return new Result("-1","没有设置初步报告仪器"); + if (hdys == null || hdys.isEmpty()) return new Result("-1", "审核者为空,无法审核!"); + LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); + labPat.setHdys(hdys); + List labResultList = commonUtil.getLabResultList(jyrq, yq1, ybh); + if (problemId < 3) { + //1,审核权限校验 + if (!commonUtil.getUserPower(yq, hdys, 20)) { + return new Result("-1", "当前核对者无权对本仪器报告审核!"); + } + //2:数据合法性校验 + // Result result0 = beforeconfirm(labPat, labResultList, 2, problemId); + // if (!"0".equals(result0.getCode())) return result0; + } + if (problemId < 3) problemId = 3; + if (problemId < 4) { + //3:数据完整保存 + // labResultList = saveallresult(labPat, labResultList); + boolean wjz = lisWorkUtils.getAlarmFlag(labResultList); + //同步主表危急值标识 + String alarmflag = labPat.getAlarmflag(); + if (("1".equals(alarmflag) && !wjz)) { + labPat.setAlarmflag(""); + commonUtil.updateLabPat(labPat); + } else if (("".equals(alarmflag) || alarmflag == null) && wjz) { + labPat.setAlarmflag("1"); + commonUtil.updateLabPat(labPat); + } + if (wjz) { + return new Result("4", lisWorkUtils.getAlarmMsg(labResultList), 4); + } + } + if (problemId < 5) problemId = 5; + if (problemId < 6) { + //医学审核条件判断 + Result result = lisWorkUtils.chksample(labPat, labResultList, problemId); + if (!"0".equals(result.getCode())) return result; + } + if (problemId < 6) problemId = 6; + if (problemId < 99) { + //高级医学审核条件判断 + Result result = lisWorkUtils.chksamplenew(labPat, labResultList, problemId); + if ("99".equals(result.getCode())) { + labPat.setBz(result.getMsg()); + result.setCode("0"); + } + if (!"0".equals(result.getCode())) return result; + } + if (problemId < 99) problemId = 99; + commonUtil.updateLabPatJgbz(jyrq, yq, ybh,LabPatConstants.FIRST); + Date shsj=new Date(); + labPat.setJgbz(LabPatConstants.CONFIRM); + labPat.setYq(yq1); + labPat.setHdys(hdys); + labPat.setConfirmdt(shsj); + labPat.setConfirmer(hdys); + labPat.setDysj(shsj); + commonUtil.delLabPat(jyrq, yq, ybh); + commonUtil.insertLabPat(labPat); + Result result1 = lisWorkUtils.afterconfirm(labPat, problemId); + if (!"0".equals(result1.getCode())) return result1; + lisWorkUtils.setComLog(jyrq, yq, ybh, hdys, ComLogConstants.LG_CK3, ""); + String sqh = labPat.getSqh(); + if (sqh != null) { + lisWorkUtils.setlabReqsteplog(sqh, LabReqmainConstants.START, hdys); + } + return new Result("0", "审核成功!"); + } + private Result checkejbg(Date jyrq, String yq, String ybh, String hdys,int problemId) { + String yq1=getSecondInstrid(yq); + if(yq1==null)return new Result("-1","没有设置初步报告仪器"); + if (hdys == null || hdys.isEmpty()) return new Result("-1", "审核者为空,无法审核!"); + LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); + labPat.setHdys(hdys); + List labResultList = commonUtil.getLabResultList(jyrq, yq1, ybh); + if (problemId < 3) { + //1,审核权限校验 + if (!commonUtil.getUserPower(yq, hdys, 20)) { + return new Result("-1", "当前核对者无权对本仪器报告审核!"); + } + //2:数据合法性校验 + // Result result0 = beforeconfirm(labPat, labResultList, 2, problemId); + // if (!"0".equals(result0.getCode())) return result0; + } + if (problemId < 3) problemId = 3; + if (problemId < 4) { + //3:数据完整保存 + // labResultList = saveallresult(labPat, labResultList); + boolean wjz = lisWorkUtils.getAlarmFlag(labResultList); + //同步主表危急值标识 + String alarmflag = labPat.getAlarmflag(); + if (("1".equals(alarmflag) && !wjz)) { + labPat.setAlarmflag(""); + commonUtil.updateLabPat(labPat); + } else if (("".equals(alarmflag) || alarmflag == null) && wjz) { + labPat.setAlarmflag("1"); + commonUtil.updateLabPat(labPat); + } + if (wjz) { + return new Result("4", lisWorkUtils.getAlarmMsg(labResultList), 4); + } + } + if (problemId < 5) problemId = 5; + if (problemId < 6) { + //医学审核条件判断 + Result result = lisWorkUtils.chksample(labPat, labResultList, problemId); + if (!"0".equals(result.getCode())) return result; + } + if (problemId < 6) problemId = 6; + if (problemId < 99) { + //高级医学审核条件判断 + Result result = lisWorkUtils.chksamplenew(labPat, labResultList, problemId); + if ("99".equals(result.getCode())) { + labPat.setBz(result.getMsg()); + result.setCode("0"); + } + if (!"0".equals(result.getCode())) return result; + } + if (problemId < 99) problemId = 99; + commonUtil.updateLabPatJgbz(jyrq, yq, ybh,LabPatConstants.SECOND); + Date shsj=new Date(); + labPat.setJgbz(LabPatConstants.CONFIRM); + labPat.setYq(yq1); + labPat.setHdys(hdys); + labPat.setConfirmdt(shsj); + labPat.setConfirmer(hdys); + labPat.setDysj(shsj); + commonUtil.delLabPat(jyrq, yq, ybh); + commonUtil.insertLabPat(labPat); + Result result1 = lisWorkUtils.afterconfirm(labPat, problemId); + if (!"0".equals(result1.getCode())) return result1; + lisWorkUtils.setComLog(jyrq, yq, ybh, hdys, ComLogConstants.LG_CK4, ""); + String sqh = labPat.getSqh(); + if (sqh != null) { + lisWorkUtils.setlabReqsteplog(sqh, LabReqmainConstants.START, hdys); + } + return new Result("0", "审核成功!"); + } + private Result uncheckcbbg(Date jyrq, String yq, String ybh, String yhdh,int problemId) { + String yq1=getFirstInstrid(yq); + if(yq1==null)return new Result("-1","没有设置初步报告仪器"); + if (yhdh == null || yhdh.isEmpty()) return new Result("1", "操作者为空,无法解除审核!"); + LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); + if (problemId < 3) { + //1,解除审核权限校验 + if (!commonUtil.getUserPower(yq, yhdh, 10)) return new Result("-1", "当前操作者无权对本仪器报告解除审核!"); + //2:数据合法性校验 + String jgbz = labPat.getJgbz(); + if ("2".equals(jgbz)) return new Result("1", "报告已终报禁止解除初步报告!"); + if (!"3".equals(jgbz)) return new Result("1", "报告未初步报告,不需解除!"); + } + if (problemId < 3) problemId = 3; + if (problemId < 4) { + String unconfirmlog = commonUtil.getComOptValue(yq, "unconfirmlog"); + if ("1".equals(unconfirmlog)) { + return new Result("4", "请填写解除审核原因!", 4); + } + } + if (problemId < 4) problemId = 4; + //调用his报告接口,完成报告同时调用外部接口任务 + if (problemId < 5) { + SetReport setReport = new SetReport(); + setReport.setIp(lisWorkUtils.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")) { + if (problemId < 5) { + return new Result(result.getCode(), result.getMsg(), 5); + } + } + if (!result.getCode().equals("0")) return result; + } + if (problemId < 5) problemId = 5; + 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, yq1, ybh); + if (labPatwarning != null) { + if (problemId < 6) { + Date tzsj = labPatwarning.getTzsj(); + long sjc = LisUtil.relativeMinute(tzsj); + if (sjc > 10) { + return new Result("4", "此报告已发布危急值结果,并且时间超过10分钟了!" + LisUtil.LINE_SEPARATOR + "请输入撤回报告组长代号和密码", 6); + } + } + //权限不足,撤回报告失败组长权限单独接口校验 +// if (problemId == 6) { +// int ll_qxz = lisWorkUtilsMapper.getQXZ(yhdh); +// if (ll_qxz <= 0) { +// return new Result("-1", "权限不足,撤回报告失败!"); +// } +// } + commonUtil.deleteLabPatwarning(jyrq, yq1, ybh); + commonUtil.deleteLabResultwarning(jyrq, yq1, ybh); + } + } + commonUtil.deleteLabReqreportPdffile(jyrq, yq1, ybh); + commonUtil.updateLabPatJgbz(jyrq, yq, ybh,LabPatConstants.DEFAULT); + commonUtil.updateLabPatJgbz(jyrq, yq1, ybh,LabPatConstants.DEFAULT); + String logdata = commonUtil.getLisPatlogbz(jyrq, yq, ybh); + lisWorkUtils.setComLog(jyrq, yq, ybh, yhdh, ComLogConstants.LG_UCK2, logdata); + // lisWorkUtils.setpatLog(jyrq, yq1, ybh, yhdh); +// if (sqh != null) { +// lisWorkUtils.setlabReqsteplog(sqh, LabReqmainConstants.REPORT, yhdh); +// } + if (!"取消成功!".equals(msg)) return new Result("3", msg); + return new Result("0", msg); + } + private Result uncheckejbg(Date jyrq, String yq, String ybh, String yhdh,int problemId) { + String yq1=getSecondInstrid(yq); + if(yq1==null)return new Result("-1","没有设置初步报告仪器"); + if (yhdh == null || yhdh.isEmpty()) return new Result("1", "操作者为空,无法解除审核!"); + LabPat labPat = commonUtil.getLabPatOne(jyrq, yq, ybh); + if (problemId < 3) { + //1,解除审核权限校验 + if (!commonUtil.getUserPower(yq, yhdh, 10)) return new Result("-1", "当前操作者无权对本仪器报告解除审核!"); + //2:数据合法性校验 + String jgbz = labPat.getJgbz(); + if ("2".equals(jgbz)) return new Result("1", "报告已终报禁止解除二报!"); + if (!"4".equals(jgbz)) return new Result("1", "报告未初步报告,不需解除!"); + } + if (problemId < 3) problemId = 3; + if (problemId < 4) { + String unconfirmlog = commonUtil.getComOptValue(yq, "unconfirmlog"); + if ("1".equals(unconfirmlog)) { + return new Result("4", "请填写解除审核原因!", 4); + } + } + if (problemId < 4) problemId = 4; + //调用his报告接口,完成报告同时调用外部接口任务 + if (problemId < 5) { + SetReport setReport = new SetReport(); + setReport.setIp(lisWorkUtils.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")) { + if (problemId < 5) { + return new Result(result.getCode(), result.getMsg(), 5); + } + } + if (!result.getCode().equals("0")) return result; + } + if (problemId < 5) problemId = 5; + 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, yq1, ybh); + if (labPatwarning != null) { + if (problemId < 6) { + Date tzsj = labPatwarning.getTzsj(); + long sjc = LisUtil.relativeMinute(tzsj); + if (sjc > 10) { + return new Result("4", "此报告已发布危急值结果,并且时间超过10分钟了!" + LisUtil.LINE_SEPARATOR + "请输入撤回报告组长代号和密码", 6); + } + } + //权限不足,撤回报告失败组长权限单独接口校验 +// if (problemId == 6) { +// int ll_qxz = lisWorkUtilsMapper.getQXZ(yhdh); +// if (ll_qxz <= 0) { +// return new Result("-1", "权限不足,撤回报告失败!"); +// } +// } + commonUtil.deleteLabPatwarning(jyrq, yq1, ybh); + commonUtil.deleteLabResultwarning(jyrq, yq1, ybh); + } + } + commonUtil.deleteLabReqreportPdffile(jyrq, yq1, ybh); + commonUtil.updateLabPatJgbz(jyrq, yq1, ybh,LabPatConstants.DEFAULT); + String yq2=getFirstInstrid(yq); + String jgbz =commonUtil.getLabPatJgbz(jyrq, yq2, ybh); + if("2".equals(jgbz)||"3".equals(jgbz)){ + commonUtil.updateLabPatJgbz(jyrq, yq, ybh,LabPatConstants.FIRST); + }else { + commonUtil.updateLabPatJgbz(jyrq, yq, ybh, LabPatConstants.DEFAULT); + } + String logdata = commonUtil.getLisPatlogbz(jyrq, yq, ybh); + lisWorkUtils.setComLog(jyrq, yq, ybh, yhdh, ComLogConstants.LG_UCK3, logdata); + // lisWorkUtils.setpatLog(jyrq, yq1, ybh, yhdh); +// if (sqh != null) { +// lisWorkUtils.setlabReqsteplog(sqh, LabReqmainConstants.REPORT, yhdh); +// } + if (!"取消成功!".equals(msg)) return new Result("3", msg); + return new Result("0", msg); + } } diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java index 931deea..648442a 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/LisWorkOperServiceImpl.java @@ -174,7 +174,6 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { int problemId = ServletUtils.getParameterToInt("problemId", 0); return lisWorkUtils.confirm1(jyrq, yq, ybh, hdys, problemId); } - /** * 保存所有结果的修正值,涉及:空结果清除,计算项目添加,添加单位,添加申请项目编码,参考值重新计算更新,结果标志重新计算更新,危急值标志计算更新 *