From 17e75c4c5254732084fc0fa810a3567ca571f21e Mon Sep 17 00:00:00 2001 From: tangw Date: Sat, 9 Aug 2025 22:28:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=BB=E7=A8=8B=E5=BA=8F=E6=8A=A5=E5=91=8A?= =?UTF-8?q?=E5=A4=84=E7=90=86=E5=AE=A1=E6=A0=B8=E5=88=9D=E6=AD=A5=E4=BB=A3?= =?UTF-8?q?=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../czlis/common/constant/CacheConstants.java | 5 + .../czlis/common/utils/ComOptionUtils.java | 57 +++++++ .../interfaceCommon/mapper/CommonMapper.java | 4 + .../interfaceCommon/mapper/LabPatMapper.java | 6 +- .../mapper/LabReqdetailMapper.java | 1 + .../interfaceCommon/utils/CommonUtil.java | 68 ++++++--- .../czlis/interfaceCommon/utils/LisUtil.java | 53 ++++++- .../main/resources/mapper/CommonMapper.xml | 9 +- .../resources/mapper/LabReqdetailMapper.xml | 4 +- .../work/LisWorkOperController.java | 14 ++ .../liswork/mapper/LisWorkOperMapper.java | 11 +- .../czlis/liswork/service/LabPatService.java | 4 +- .../liswork/service/LisWorkOperService.java | 2 + .../service/impl/LabPatServiceImpl.java | 4 +- .../service/impl/LisWorkOperServiceImpl.java | 140 ++++++++++++++++-- .../resources/mapper/LisWorkOperMapper.xml | 25 +++- 16 files changed, 356 insertions(+), 51 deletions(-) create mode 100644 lis-common/src/main/java/com/czlis/common/utils/ComOptionUtils.java diff --git a/lis-common/src/main/java/com/czlis/common/constant/CacheConstants.java b/lis-common/src/main/java/com/czlis/common/constant/CacheConstants.java index 4427c03..c7fa6db 100644 --- a/lis-common/src/main/java/com/czlis/common/constant/CacheConstants.java +++ b/lis-common/src/main/java/com/czlis/common/constant/CacheConstants.java @@ -46,4 +46,9 @@ public class CacheConstants * lis字典缓存 */ public static final String COM_DICT_KEY = "com_dict:"; + /** + * lis设置缓存 + */ + public static final String COM_OPT_KEY = "com_opt:"; + } diff --git a/lis-common/src/main/java/com/czlis/common/utils/ComOptionUtils.java b/lis-common/src/main/java/com/czlis/common/utils/ComOptionUtils.java new file mode 100644 index 0000000..bdd01a7 --- /dev/null +++ b/lis-common/src/main/java/com/czlis/common/utils/ComOptionUtils.java @@ -0,0 +1,57 @@ +package com.czlis.common.utils; + +import com.alibaba.fastjson2.JSONArray; +import com.czlis.common.constant.CacheConstants; +import com.czlis.common.core.domain.entity.lis.ComOpt; +import com.czlis.common.core.redis.RedisCache; +import com.czlis.common.utils.spring.SpringUtils; + +import java.util.Collection; +import java.util.List; + +public class ComOptionUtils { + + /** + * 设置字典缓存 + * + * @param key 参数键 + * @param dictDatas 字典数据列表 + */ + public static void setOptCache(String key, List optDatas) { + //先清除该key的所有缓存,然后再重新设置该key的缓存 + SpringUtils.getBean(RedisCache.class).deleteObject(key); + SpringUtils.getBean(RedisCache.class).setCacheObject(getCacheKey(key), optDatas); + } + /** + * 清空字典缓存 + */ + public static void clearOptCache() { + Collection keys = SpringUtils.getBean(RedisCache.class).keys("com_opt:" + "*"); + SpringUtils.getBean(RedisCache.class).deleteObject(keys); + } + /** + * 获取字典缓存 + * + * @param key 参数键 + * @return dictDatas 字典数据列表 + */ + public static List getOptCache(String key) { + JSONArray arrayCache = SpringUtils.getBean(RedisCache.class).getCacheObject(getCacheKey(key)); + if (StringUtils.isNotNull(arrayCache)) { + return arrayCache.toList(ComOpt.class); + } + return null; + } + + + + /** + * 设置cache key + * + * @param configKey 参数键 + * @return 缓存键key + */ + public static String getCacheKey(String configKey) { + return CacheConstants.COM_OPT_KEY + configKey; + } +} diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/CommonMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/CommonMapper.java index fada2c0..8902366 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/CommonMapper.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/CommonMapper.java @@ -1,7 +1,11 @@ package com.czlis.interfaceCommon.mapper; +import org.apache.ibatis.annotations.Param; + import java.util.Date; public interface CommonMapper { Date getCurrentTime(); + String getyhjs(@Param("yhdh")String yhdh); + String getUserPower(@Param("yq")String yq,@Param("yhdh")String yhdh); } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatMapper.java index e7ec438..f21a9ce 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatMapper.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabPatMapper.java @@ -13,11 +13,11 @@ public interface LabPatMapper { List getSampleList(@Param("jyrq") Date jyrq, @Param("yq") String yq); List getSampleListday(@Param("yq") String yq,@Param("days")Long days); List getLabPat(LabPat labPat); - int delLabPat(@Param("jyrq") String jyrq, @Param("yq") String yq,@Param("ybh") String ybh); + int delLabPat(@Param("jyrq") Date jyrq, @Param("yq") String yq,@Param("ybh") String ybh); int updateLabPat(LabPat labPat); //根据主键判断是否存在数据 - int getCountByKey(@Param("jyrq") String jyrq, @Param("yq") String yq,@Param("ybh") String ybh) ; + int getCountByKey(@Param("jyrq") Date jyrq, @Param("yq") String yq,@Param("ybh") String ybh) ; //根据编号查sqh - String getSqhByKey(@Param("jyrq")String jyrq,@Param("yq") String yq,@Param("ybh") String ybh); + String getSqhByKey(@Param("jyrq")Date jyrq,@Param("yq") String yq,@Param("ybh") String ybh); } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqdetailMapper.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqdetailMapper.java index 1d4441d..d4eed86 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqdetailMapper.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/mapper/LabReqdetailMapper.java @@ -6,4 +6,5 @@ import java.util.List; public interface LabReqdetailMapper { List getLabReqdetailList(String sqh); + int getCountByKey(String sqh); } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java index c44ab0f..be5b0d9 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/CommonUtil.java @@ -1,9 +1,9 @@ package com.czlis.interfaceCommon.utils; -import com.czlis.common.core.domain.entity.lis.LabPat; -import com.czlis.common.core.domain.entity.lis.LabReqdetail; -import com.czlis.common.core.domain.entity.lis.LabReqmain; -import com.czlis.common.core.domain.entity.lis.LabResult; +import com.czlis.common.core.domain.Result; +import com.czlis.common.core.domain.entity.lis.*; +import com.czlis.common.utils.ComDictUtils; +import com.czlis.common.utils.ComOptionUtils; import com.czlis.interfaceCommon.mapper.*; import org.apache.commons.lang3.time.DateFormatUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -43,8 +43,8 @@ public class CommonUtil { public int delLabPat(LabPat labPat){return labPatMapper.updateLabPat(labPat);} @Transactional(rollbackFor = Exception.class) public int updateLabPat(LabPat labPat){return labPatMapper.updateLabPat(labPat);} - public int getCountByKey(String jyrq, String yq,String ybh) {return labPatMapper.getCountByKey(jyrq,yq,ybh);} - public String getSqhByKey(String jyrq,String yq,String ybh){return labPatMapper.getSqhByKey(jyrq,yq,ybh);} + public int getCountByKey(Date jyrq, String yq,String ybh) {return labPatMapper.getCountByKey(jyrq,yq,ybh);} + public String getSqhByKey(Date jyrq,String yq,String ybh){return labPatMapper.getSqhByKey(jyrq,yq,ybh);} //申请单主表方法集合 public LabReqmain getLabReqmainOne(String sqh){ return labReqmainMapper.getLabReqmainOne(sqh); @@ -88,24 +88,35 @@ public class CommonUtil { } //字典查询方法集合 - public String getComDictNameById(String zdlb,String xxdh){ - String zdmc = comDictMapper.getComDictNameById(zdlb,xxdh); - if(zdmc == null || zdmc.equals("")){ - return xxdh; - }else{ - return zdmc; - } + public String getComDictNameById(String zdlb, String zddh) { + List comDictList =getDictCache(zdlb); + if(comDictList!=null){ + for (ComDict dict : comDictList) { + if (zddh.equals(dict.getZddh())) { + return dict.getZdmc(); + } + }} + return comDictMapper.getComDictNameById(zdlb,zddh); } - public String getComDictIdByName(String zdlb,String zdmc){ - String zddh = comDictMapper.getComDictIdByName(zdlb,zdmc); - if(zddh == null || zddh.equals("")){ - return zdmc; - }else{ - return zddh; - } + public String getComDictIdByName(String zdlb,String zdmc) { + List comDictList =getDictCache(zdlb); + if(comDictList!=null){ + for (ComDict dict : comDictList) { + if (zdmc.equals(dict.getZdmc())) { + return dict.getZddh(); + } + }} + return comDictMapper.getComDictIdByName(zdlb,zdmc); } public String getComOptValue(String yq,String xxdh){ + List comOptList =getOptCache(yq); + if(comOptList!=null){ + for (ComOpt opt : comOptList) { + if (xxdh.equals(opt.getXxdh())) { + return opt.getXxqz(); + } + }} return comOptMapper.getComOptValue(yq,xxdh); } @@ -113,6 +124,21 @@ public class CommonUtil { return labReqdetailMapper.getLabReqdetailList(sqh); } + private List getDictCache(String zdlb) { + return ComDictUtils.getDictCache(zdlb); + } + private List getOptCache(String yq) { + return ComOptionUtils.getOptCache(yq); + } - + public Boolean getUserPower(String yq,String yhdh,int powerIdx){ + if ("LIS".equals(yhdh)) return true; + if ("lis".equals(yhdh)) return true; + String yhjs= commonMapper.getyhjs(yhdh); + if ("S".equals(yhjs)) return true; + String userPower=commonMapper.getUserPower(yq,yhdh); + if(userPower==null) return false; + if("Y".equals(userPower.substring(powerIdx - 1,1)))return true; + return false; + } } diff --git a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java index f3759b4..31a34c3 100644 --- a/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java +++ b/lis-interfaceCommon/src/main/java/com/czlis/interfaceCommon/utils/LisUtil.java @@ -1,14 +1,8 @@ package com.czlis.interfaceCommon.utils; -import cn.hutool.core.date.DateUnit; -import cn.hutool.core.date.DateUtil; - -import java.text.SimpleDateFormat; -import java.util.Calendar; +import java.io.UnsupportedEncodingException; import java.util.Date; -import java.util.HashMap; import java.util.Map; - public class LisUtil { /** @@ -29,4 +23,49 @@ public class LisUtil { public static Date getBirthDayFromAge(int nl, String nldw) { return AgeUtils.getBirthDayFromAge(nl,nldw); } + + /** + * 按GBK编码的字节宽度截取字符串,最多取cutlens个字节(避免截取半个汉字) + * @param str 原始字符串 + * @param beginidx 起始位置 + * @param cutlens 截取长度 + * @return 截取后的字符串 + */ + public static String substringByGbkWidth(String str,int beginidx,int cutlens) { + if (str == null || str.isEmpty()) { + return ""; + } + + int targetWidth = cutlens; // 目标字节宽度 + int currentWidth =beginidx; // 当前累计字节宽度 + StringBuilder result = new StringBuilder(); + + for (char c : str.toCharArray()) { + // 计算当前字符在GBK编码下的字节数 + int charWidth; + try { + // GBK编码中,汉字占2字节,英文等占1字节 + charWidth = String.valueOf(c).getBytes("GBK").length; + } catch (UnsupportedEncodingException e) { + // 理论上GBK是Java默认支持的编码,不会走到这里 + throw new RuntimeException("不支持GBK编码", e); + } + + // 判断加上当前字符后是否超过目标宽度 + if (currentWidth + charWidth > targetWidth) { + break; // 超过则停止,不截取当前字符 + } + + // 未超过则累加宽度并添加字符 + currentWidth += charWidth; + result.append(c); + + // 如果刚好达到目标宽度,提前结束 + if (currentWidth == targetWidth) { + break; + } + } + + return result.toString(); + } } diff --git a/lis-interfaceCommon/src/main/resources/mapper/CommonMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/CommonMapper.xml index c5678f3..e11f992 100644 --- a/lis-interfaceCommon/src/main/resources/mapper/CommonMapper.xml +++ b/lis-interfaceCommon/src/main/resources/mapper/CommonMapper.xml @@ -5,9 +5,12 @@ - - - + + diff --git a/lis-interfaceCommon/src/main/resources/mapper/LabReqdetailMapper.xml b/lis-interfaceCommon/src/main/resources/mapper/LabReqdetailMapper.xml index 876162b..92635f3 100644 --- a/lis-interfaceCommon/src/main/resources/mapper/LabReqdetailMapper.xml +++ b/lis-interfaceCommon/src/main/resources/mapper/LabReqdetailMapper.xml @@ -6,6 +6,8 @@ - + diff --git a/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkOperController.java b/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkOperController.java index 61cd9bf..bc6fdc9 100644 --- a/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkOperController.java +++ b/liswork/src/main/java/com/czlis/liswork/controller/work/LisWorkOperController.java @@ -37,4 +37,18 @@ public class LisWorkOperController extends BaseController { public Result changePat(LabPat labPat){ return lisWorkOperService.changePat(labPat); } + + /** + * 修改病人信息 + * @param jyrq 检验日期 + * @param yq 仪器 + * @param ybh 样本号 + * @param hdys 核对医生 + * @return + */ + @ApiOperation("修改病人信息") + @PostMapping("/check2") + public Result check2(Date jyrq, String yq, String ybh,String hdys){ + return lisWorkOperService.check2(jyrq, yq, ybh, hdys); + } } diff --git a/liswork/src/main/java/com/czlis/liswork/mapper/LisWorkOperMapper.java b/liswork/src/main/java/com/czlis/liswork/mapper/LisWorkOperMapper.java index a7e852c..240ae3f 100644 --- a/liswork/src/main/java/com/czlis/liswork/mapper/LisWorkOperMapper.java +++ b/liswork/src/main/java/com/czlis/liswork/mapper/LisWorkOperMapper.java @@ -1,5 +1,14 @@ package com.czlis.liswork.mapper; +import org.apache.ibatis.annotations.Param; +import java.util.Date; +import java.util.Map; + public interface LisWorkOperMapper { - Long checkReqClass(String sqh,String yq); + Long checkReqClass(@Param("sqh") String sqh,@Param("yq") String yq); + String selectsqxmdh(String sqh); + String selectyqdl(String yq); + void sp_setrefs(Map map); + void updatelabresultsqxmdhall(@Param("jyrq") Date jyrq,@Param("yq") String yq,@Param("ybh") String ybh,@Param("sqxmdh") String sqxmdh); + void updatelabresultsqxmdh(@Param("jyrq") Date jyrq,@Param("yq") String yq,@Param("ybh") String ybh,@Param("sqh") String sqh); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/LabPatService.java b/liswork/src/main/java/com/czlis/liswork/service/LabPatService.java index a0ced3a..c7522f3 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/LabPatService.java +++ b/liswork/src/main/java/com/czlis/liswork/service/LabPatService.java @@ -14,8 +14,8 @@ public interface LabPatService { Result delLabPat(LabPat labPat); Result updateLabPat(LabPat labPat); //根据主键判断是否存在数据 - int getCountById(String jyrq, String yq,String ybh) ; + int getCountById(Date jyrq, String yq,String ybh) ; //根据编号查sqh - String getSqhById(String jyrq,String yq,String ybh); + String getSqhById(Date jyrq,String yq,String ybh); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/LisWorkOperService.java b/liswork/src/main/java/com/czlis/liswork/service/LisWorkOperService.java index ea82bf6..4006557 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/LisWorkOperService.java +++ b/liswork/src/main/java/com/czlis/liswork/service/LisWorkOperService.java @@ -8,4 +8,6 @@ import java.util.Date; public interface LisWorkOperService { Result newPatInfo(Date jyrq,String ybh, String sqh, String yq, Long userId); Result changePat(LabPat labPat); + + Result check2(Date jyrq, String yq, String ybh, String hdys); } diff --git a/liswork/src/main/java/com/czlis/liswork/service/impl/LabPatServiceImpl.java b/liswork/src/main/java/com/czlis/liswork/service/impl/LabPatServiceImpl.java index affdc65..038c178 100644 --- a/liswork/src/main/java/com/czlis/liswork/service/impl/LabPatServiceImpl.java +++ b/liswork/src/main/java/com/czlis/liswork/service/impl/LabPatServiceImpl.java @@ -63,13 +63,13 @@ public class LabPatServiceImpl implements LabPatService { //根据主键判断是否存在数据 @Transactional(rollbackFor = Exception.class) @Override - public int getCountById(String jyrq, String yq,String ybh) { + public int getCountById(Date jyrq, String yq,String ybh) { return labPatMapper.getCountByKey(jyrq,yq,ybh); } //根据编号查sqh @Transactional(rollbackFor = Exception.class) @Override - public String getSqhById(String jyrq,String yq,String ybh){ + public String getSqhById(Date jyrq,String yq,String ybh){ return labPatMapper.getSqhByKey(jyrq,yq,ybh); } 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 fec0aae..aeab11b 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 @@ -2,20 +2,21 @@ package com.czlis.liswork.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.json.JSONUtil; +import com.czlis.common.core.domain.entity.lis.*; import com.czlis.interfaceCommon.constants.LisinterfaceNameConstants; import com.czlis.common.core.domain.Result; -import com.czlis.common.core.domain.entity.lis.LabPat; -import com.czlis.common.core.domain.entity.lis.LabReqmain; import com.czlis.interfaceCommon.constants.SampleStatusConstants; +import com.czlis.interfaceCommon.mapper.LabReqdetailMapper; import com.czlis.interfaceCommon.mapper.LabReqmainMapper; import com.czlis.interfaceCommon.pojo.inter.DayMessage; import com.czlis.interfaceCommon.pojo.inter.GetReqInterface; import com.czlis.interfaceCommon.pojo.inter.SetReqStatus; +import com.czlis.interfaceCommon.utils.AgeUtils; import com.czlis.interfaceCommon.utils.CommonUtil; import com.czlis.interfaceCommon.utils.LisInterfaceUtil; +import com.czlis.interfaceCommon.utils.LisUtil; import com.czlis.liswork.mapper.LisWorkOperMapper; import com.czlis.liswork.mapper.dict.LabInstrvsreqclassMapper; -import com.czlis.common.core.domain.entity.lis.LabInstrvsreqclass; import com.czlis.liswork.service.LisWorkOperService; import com.czlis.liswork.utils.LisWorkUtil; import lombok.extern.slf4j.Slf4j; @@ -40,7 +41,8 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { LabInstrvsreqclassMapper labInstrvsreqclassMapper; @Autowired LabReqmainMapper labReqmainMapper; - + @Autowired + LabReqdetailMapper labReqdetailMapper; @Override public Result newPatInfo(Date jyrq,String ybh, String sqh, String yq, Long userId) { @@ -161,17 +163,17 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { labPat.setBrxb(labReqmain.getBrxb()); labPat.setBrly(labReqmain.getBrly()); labPat.setCh(labReqmain.getCh()); - Map ageFromBirthDay = LisWorkUtil.getAgeFromBirthDay(DateUtil.format(labReqmain.getBrsr(), "yyyy-MM-dd")); - String age = ageFromBirthDay.get("age"); - String unit = ageFromBirthDay.get("unit"); + Map ageFromBirthDay = AgeUtils.getAgeByBirthDate(labReqmain.getBrsr()); + String age = ageFromBirthDay.get("nl").toString(); + String unit = ageFromBirthDay.get("nldw").toString(); labPat.setNl(Integer.parseInt(age)); labPat.setNldw(unit); labPat.setSqh(sqh); - labPat.setSqsj(labReqmain.getSqsj()); + labPat.setSqsj(commonUtil.getCurrentTime()); labPat.setJgbz("0"); labPat.setZd(labReqmain.getZd()); labPat.setCyrq(labReqmain.getCysj()); - labPat.setJymd(labReqmain.getJymd()); + labPat.setJymd(LisUtil.substringByGbkWidth(labReqmain.getJymd(),0,50)); labPat.setLastuser(userId); labPat.setLastdt(commonUtil.getCurrentTime()); labPat.setShcs(0); @@ -192,5 +194,125 @@ public class LisWorkOperServiceImpl implements LisWorkOperService { labReqmainMapper.updateLabReqmainZT(map); } + /** + * 审核报告单全流程 + * @param jyrq + * @param yq + * @param ybh + * @param hdys + * @return + */ + public Result check2(Date jyrq, String yq, String ybh, String hdys){ + //1,审核权限校验 + if(!commonUtil.getUserPower(yq,hdys,20))return new Result("-1","当前核对者无权对本仪器报告审核!"); + //2:数据合法性校验 + Result result=beforecheck2(jyrq, yq, ybh, hdys); + if("0".equals(result.getCode()))return result; + //3:数据完整性校验 + result= saveallresult(jyrq, yq, ybh, hdys); + if("0".equals(result.getCode()))return result; + //4:CA请求业务的处理 + //Result result=addCA(jyrq, yq, ybh, hdys); + //if("0".equals(result.getCode()))return result; + //5:数据状态修改,异步上传接口作业创建 + //Result result=aftercheck2(jyrq, yq, ybh, hdys); + //if("0".equals(result.getCode()))return result; + return new Result("0","保存成功!"); + } + public Result beforecheck2(Date jyrq, String yq, String ybh, String hdys){ + if(hdys==null || "".equals(hdys) ) new Result("-1","审核者为空,无法审核!"); + LabPat labPat=commonUtil.getLabPatOne(jyrq, yq, ybh); + if(labPat==null)return new Result("-1","病人信息为空禁止审核!"); + String jgbz=labPat.getJgbz(); + if("2".equals(jgbz)) new Result("0","保存成功!"); + if("5".equals(jgbz)) return new Result("-1","已锁定报告禁止审核!"); + if(!"1".equals(jgbz)){ + String f_check1=commonUtil.getComOptValue(yq,"f_check1"); + if("1".equals(f_check1)) return new Result("-1","审核前必须先初审!"); + } + String brxm=labPat.getBrxm(); + if(brxm==null || "".equals(brxm) ) new Result("-1","姓名为空禁止审核!"); + return new Result("0","保存成功!"); + } + + /** + * 保存所有结果的修正值,涉及:空结果清除,计算项目添加,添加单位,添加申请项目编码,参考值重新计算更新,结果标志重新计算更新,危急值标志计算更新 + * @param jyrq + * @return + */ + public Result saveallresult(Date jyrq, String yq, String ybh, String hdys){ + List labResultList =commonUtil.getLabResultList(jyrq, yq, ybh); + if(labResultList==null)return new Result("-1","结果为空禁止审核!"); + for (LabResult labResult : labResultList) { + String csjg=labResult.getCsjg(); + if ("未做".equals(csjg)) { + return new Result("-1","还有结果为“未做”的项目,不可审核!"); + } + if(csjg!=null ) { + if(csjg.contains("ERR"))return new Result("-1","有结果错误,不可审核!"); + if(csjg.contains("需稀释"))return new Result("-1","有结果需稀释,不可审核!"); + if(csjg.contains("需复做"))return new Result("-1","有结果需复做,不可审核!"); + + } + } + String keepnodataitem=commonUtil.getComOptValue(yq,"keepnodataitem"); + if("1".equals(keepnodataitem)){}else{ + for (LabResult labResult : labResultList) { + String csjg=labResult.getCsjg(); + if (csjg==null || "".equals(csjg)) { + commonUtil.delLabResult(labResult); + } + + } + } + String yqdl=lisWorkOperMapper.selectyqdl(yq); + if(!"细菌仪".equals(yqdl)) { + Map map = new HashMap<>(); + map.put("jyrq", jyrq); + map.put("yq", yq); + map.put("ybh", ybh); + map.put("settype", "1"); + map.put("retcode", ""); + map.put("retmsg", ""); + lisWorkOperMapper.sp_setrefs(map); + String retCode = String.valueOf(map.get("retcode")); + String retMsg = String.valueOf(map.get("retmsg")); + log.info("调用存储过程{}返回值:{},{}", "sp_setrefs", retCode, retMsg); + if (retCode == null || "".equals(retCode) || "-1".equals(retCode)) + return new Result("-1", "保存常规参考值失败!"); + } + setItemSqxmdh(jyrq, yq, ybh); + return new Result("0","保存成功!"); + } + + /** + * 结果表补充申请单项目代码 + * @param jyrq + * @param yq + * @param ybh + */ + public void setItemSqxmdh(Date jyrq, String yq, String ybh){ + String sqh=commonUtil.getSqhByKey(jyrq,yq,ybh); + if (sqh==null || "".equals(sqh)) {}else{ + int sl=labReqdetailMapper.getCountByKey(sqh); + if(sl==1){ + String sqxmdh=lisWorkOperMapper.selectsqxmdh(sqh); + lisWorkOperMapper.updatelabresultsqxmdhall(jyrq,yq,ybh,sqxmdh); + }else{ + lisWorkOperMapper.updatelabresultsqxmdh(jyrq,yq,ybh,sqh); + } + } + } + + /** + * 计算项目增加及重新计算 + * @param jyrq + * @param yq + * @param ybh + */ + public void calcsample(Date jyrq, String yq, String ybh){ + + } + } diff --git a/liswork/src/main/resources/mapper/LisWorkOperMapper.xml b/liswork/src/main/resources/mapper/LisWorkOperMapper.xml index f36530b..7da986f 100644 --- a/liswork/src/main/resources/mapper/LisWorkOperMapper.xml +++ b/liswork/src/main/resources/mapper/LisWorkOperMapper.xml @@ -8,6 +8,27 @@ where lab_reqdetail.sqxmdh=xm_feeinstr.sfxmdh and lab_reqdetail.sqh=#{sqh} and xm_feeinstr.yq=#{yq}; - - + + + + update lab_result set sqxmdh=#{sqxmdh} where yq=#{yq} and jyrq=#{jyrq} and ybh=#{ybh}; + + + + +