ltkj-admin/src/main/java/com/ltkj/web/controller/his/HisApiMethod.java
@@ -18,7 +18,7 @@ import com.ltkj.web.controller.lis.LisApiMethod; import com.ltkj.web.controller.pacs.PacsApiMethodService; import com.ltkj.web.controller.service.TjSysAsyncServiceImpl; import com.ltkj.web.controller.system.TjSamplingController; import com.ltkj.web.controller.system.SamplingServiceApi; import jdk.nashorn.internal.runtime.logging.Logger; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; @@ -81,7 +81,7 @@ @Autowired private ITjSamplingService tjSamplingService; @Autowired private TjSamplingController samplingController; private SamplingServiceApi samplingService; //将方法返回值解析成json格式 @@ -276,6 +276,7 @@ String mxfyxmbm = detail.getMxfyxmbm(); tree.setHisXmdm(mxfyxmbm); tree.setType("检验"); tree.setService("his"); tree.setTjPrice(String.valueOf(detail.getProjg())); LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); if (detail.getSfzhfy().equals("1")) @@ -383,6 +384,7 @@ String mxfyxmbm = detail.getMxfyxmbm(); tree.setHisXmdm(mxfyxmbm); tree.setType("检查"); tree.setService("his"); tree.setTjPrice(String.valueOf(detail.getProjg())); LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); if (detail.getSfzhfy().equals("1")) @@ -585,7 +587,8 @@ LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(TjSampling::getTjNum,tjOrder.getTjNumber()); List<TjSampling> list = tjSamplingService.list(wrapper); // log.info("采样数据 ->{}",list); log.info("采样数据 ->{}",list); if (!list.isEmpty()) { Map<String, List<TjSampling>> listMap = list.stream().collect(Collectors.groupingBy(TjSampling::getSpecimenTypeCode)); // log.info("分组后 ->{}",JSONUtil.toJsonStr(listMap)); ArrayList<String> ids = new ArrayList<>(); @@ -611,10 +614,11 @@ ids.add(samplings.get(0).getId()); } } Boolean confirmed = samplingController.confirmSamplingApi(ids, "Y", "Y"); Boolean confirmed = samplingService.confirmSamplingApi(ids, "Y", "N"); if (!confirmed){ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return AjaxResult.error("处理失败"); } } } @@ -817,17 +821,34 @@ } } } // 作废检验申请 // 作废检验申请 TODO if (jysqdh != null && !jysqdh.isEmpty()){ for (String sqdh : jysqdh) { List<String> huoQuJysqdhNotBuLu = orderService.getHuoQuJysqdhNotBuLu(order.getCardId()); List<String> huoQuJysqdhBuLu = orderService.getHuoQuJysqdhBuLu(order.getCardId()); for (String sqdh : huoQuJysqdhNotBuLu) { AjaxResult cancelLisAjaxResult = lisApiMethod.cancel(sqdh, order.getCardId(), customer1.getCusName()); log.info("lis请求返回 ->{}",JSONUtil.toJsonStr(cancelLisAjaxResult)); if (cancelLisAjaxResult.get("code").toString().equals("200")){ String result = cancelLisAjaxResult.get("data").toString(); JSONObject object = JSONUtil.parseObj(result); String code= object.getStr("ResultCode"); if(code.equals("1")){ orderService.delHuoQuJysqdh(order.getCardId()); } } else { String str = JSONUtil.parseObj(cancelLisAjaxResult.get("result").toString()).getJSONObject("Response").getStr("ResultContent"); if (str.contains("申请已作废")) orderService.delHuoQuJysqdh(order.getCardId()); } } for (String s : huoQuJysqdhBuLu) { ajaxResult = controller.Outpindeltestapply(order.getCardId(), "00029", s); result2 = getAjaxResult(ajaxResult); object1 = getJSONObject(result2); code1 = object1.getStr("ResultCode"); if (code1.equals("0")) { orderService.delHuoQuJysqdh(order.getCardId()); } } } ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
@@ -290,6 +290,7 @@ String mxfyxmbm = detail.getMxfyxmbm(); tree.setHisXmdm(mxfyxmbm); tree.setType("检验"); tree.setService("lis"); tree.setTjPrice(String.valueOf(detail.getProjg())); LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); if (detail.getSfzhfy().equals("1")) ltkj-admin/src/main/java/com/ltkj/web/controller/pacs/PacsApiMethodService.java
@@ -87,16 +87,15 @@ hashMap.put("examNo", examNo); hashMap.put("name", name); log.info("作废检查 ->{}", JSONUtil.toJsonStr(hashMap)); // TODO 暂不发出pacs请求 // return getMethodService.getPacsData("updatePacsApply", hashMap); JSONObject object = JSONUtil.createObj(); object.putOpt("ResultCode","1"); return AjaxResult.success().put("data",JSONUtil.toJsonStr(object)); return getMethodService.getPacsData("updatePacsApply", hashMap); // JSONObject object = JSONUtil.createObj(); // object.putOpt("ResultCode","1"); // return AjaxResult.success().put("data",JSONUtil.toJsonStr(object)); } public Boolean save(TjOrder tjOrder, TjCustomer tjCustomer, List<TbTransition> detailList) { if (true) return true; // if (true) // return true; JSONArray array = JSONUtil.createArray(); ArrayList<SavePacsApply> errorPacsList = new ArrayList<>(); ArrayList<SavePacsApply> successPacsList = new ArrayList<>(); @@ -142,7 +141,7 @@ savePacsApply.setCardNumber(tjCustomer.getCusIdcard()); savePacsApply.setTel(tjCustomer.getCusPhone()); Date date = new Date(); String regNo = "jk" + DateFormatUtils.format(date, "yyyyMMddHHmmss")+ StrUtil.subSuf(tjOrder.getCardId(),4) + project.getHisXmbm(); String regNo = "M_jk" + tjOrder.getCardId() +"_" + project.getHisXmbm(); savePacsApply.setRegNo(regNo); JSONObject jsonObject = JSONUtil.createObj(); jsonObject.putOpt("cardId", tjOrder.getCardId()); @@ -152,7 +151,7 @@ savePacsApply.setCheckItemID(project.getHisXmbm()); savePacsApply.setCheckItem(project.getHisXmmc()); // TODO 检查部位 savePacsApply.setCheckPosition(""); savePacsApply.setCheckPosition("-"); savePacsApply.setAmount(project.getProPrice()); savePacsApply.setApplyDate(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss")); savePacsApply.setApplyDepment("0101"); @@ -163,13 +162,14 @@ savePacsApply.setExecDepmentName("体检中心"); savePacsApply.setCreateTime(savePacsApply.getApplyDate()); // TODO 检查设备 savePacsApply.setDevice(""); savePacsApply.setDevice("-"); // TODO 检查设备类型 savePacsApply.setDeviceType(""); savePacsApply.setDeviceType("-"); log.info("PACS检查申请 ->{}", JSONUtil.toJsonStr(savePacsApply)); AjaxResult ajaxResult = savePacsApply(savePacsApply); log.info("返回 ->{}",JSONUtil.toJsonStr(ajaxResult)); String result = ajaxResult.get("data").toString(); JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result).getStr("Response")); JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result)); log.info("PACS请求返回 ->{}", object); String code = object.getStr("ResultCode"); allTotal++; @@ -182,6 +182,7 @@ tree.setFyhj(String.valueOf(project.getProPrice())); tree.setHisXmdm(project.getHisXmbm()); tree.setType("检查"); tree.setService("pacs"); tree.setTjPrice(String.valueOf(project.getProPrice())); LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); if (project.getSfzhfy().equals("Y")) ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java
@@ -12,7 +12,6 @@ import com.ltkj.common.core.domain.entity.SysUser; import com.ltkj.common.core.redis.RedisCache; import com.ltkj.common.utils.IdUtils; import com.ltkj.common.utils.SecurityUtils; import com.ltkj.common.utils.StringUtils; import com.ltkj.framework.config.MatchUtils; import com.ltkj.hosp.domain.*; @@ -27,12 +26,11 @@ import com.ltkj.system.service.ISysConfigService; import com.ltkj.system.service.ISysDeptService; import com.ltkj.system.service.ISysUserService; import com.ltkj.web.config.IdcardUtil.IdcardUtil; import com.ltkj.web.controller.his.HisApiGetMethodService; import com.ltkj.web.controller.his.HisApiMethodService; import com.ltkj.web.controller.lis.LisApiMethod; import com.ltkj.web.controller.pacs.PacsApiMethodService; import com.ltkj.web.controller.system.TjOrderController; import com.ltkj.web.controller.system.SamplingServiceApi; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; @@ -150,6 +148,8 @@ private LtkjJybbzdService jybbzdService; @Autowired private LisJyflhbService lisJyflhbService; @Autowired private SamplingServiceApi samplingServiceApi; @Override @@ -576,9 +576,9 @@ } @Override @Async("async") // @Async("async") // @Transactional public void iundividualCharges(TjFlowingWater tjFlowingWater, TjOrder order, TjCustomer customer, SysUser sysUser) { public Boolean iundividualCharges(TjFlowingWater tjFlowingWater, TjOrder order, TjCustomer customer, SysUser sysUser) { Date dates = new Date(); final String date = DateUtil.format(dates, "yyyy-MM-dd HH:mm:ss"); @@ -995,13 +995,18 @@ // } } // TODO 和签到登记一样 只有配置中的以及收费类型为体检票时才增加到采样管理表 if (lisApiMethod.isUseLisAndPacsRegister(order) && tjFlowingWater.getPayType() == 6L) { List<TjOrderDetail> detailLists = tjOrderDetailService.getCaiYangDengJiJxbz(order.getOrderId(),jxbz); addCaiYangDengJi(detailLists,!detailLists.isEmpty(), order, sysUser,jxbz); } } // Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order); if(null !=config && config.equals("Y")){ tijianbulushenqing(customer,date,order.getCardId(),jxbz,jianChaProjects); AjaxResult result = tijianbulushenqing(customer, date, order.getCardId(), jxbz, jianChaProjects, tjFlowingWater.getPayType() == 6L); if (!result.get("code").toString().equals("200")) return false; // if (useLisAndPacsRegister) { // List<TjProject> projectList2 = jianYanProjects.stream().distinct().collect(Collectors.toList()); // 检查申请 @@ -1268,19 +1273,54 @@ // tjChargingStandard.setUpdateId(String.valueOf(sysUser.getUserId())); // chargingStandardService.save(tjChargingStandard); // } return true; } //体检对his申请单调用方法 public AjaxResult tijianbulushenqing(TjCustomer customer, String date,String cardId,String jxbz,ArrayList<TjProject> jianChaProjects) { public AjaxResult tijianbulushenqing(TjCustomer customer, String date,String cardId,String jxbz,ArrayList<TjProject> jianChaProjects,Boolean isTuanTiPiao) { TjOrder order = orderService.getOrderByCardId(cardId); if(null !=order){ List<TbTransition> detailList = transitionService.getBlTbTransitionListByCusId(customer.getCusIdcard(),cardId,jxbz); Boolean useLisAndPacsRegister = lisApiMethod.isUseLisAndPacsRegister(order); List<OutpinmedicapplyDetilsDto> outpinmedicapplyDetilsDtos =new ArrayList<>(); if (useLisAndPacsRegister) { if (useLisAndPacsRegister && isTuanTiPiao) { // 检查申请 pacsReg(order, customer, jianChaProjects); LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(TjSampling::getTjNum,order.getTjNumber()); List<TjSampling> list = tjSamplingService.list(wrapper); log.info("采样数据 ->{}",list); if (!list.isEmpty()){ Map<String, List<TjSampling>> listMap = list.stream().collect(Collectors.groupingBy(TjSampling::getSpecimenTypeCode)); log.info("分组后 ->{}",JSONUtil.toJsonStr(listMap)); ArrayList<String> ids = new ArrayList<>(); for (Map.Entry<String, List<TjSampling>> entry : listMap.entrySet()) { log.info("key ->{},val ->{}",entry.getKey(),entry.getValue()); // Lis标本代码 String specimenTypeCode = entry.getKey(); List<TjSampling> samplings = entry.getValue(); if (samplings.size() > 1){ // 进行合并 List<String> stringList = samplings.stream().map(TjSampling::getId).collect(Collectors.toList()); log.info("提取id ->{}",stringList); for (int i = 0; i < stringList.size(); i++) { String s = stringList.get(i); if (tjSamplingService.isMergeItem(s) != 0) { stringList.remove(s); ids.add(s); } } String id = tjSamplingService.mergeCaiYangApi(stringList); ids.add(id); }else { ids.add(samplings.get(0).getId()); } } Boolean confirmed = samplingServiceApi.confirmSamplingApi(ids, "Y", "N"); if (!confirmed) return AjaxResult.error("处理失败"); } }else { //检验申请 OutpintestapplyDto dto = new OutpintestapplyDto(); @@ -1364,6 +1404,7 @@ String mxfyxmbm = detail.getMxfyxmbm(); tree.setHisXmdm(mxfyxmbm); tree.setType("检验"); tree.setService("his"); tree.setTjPrice(String.valueOf(detail.getProjg())); LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); if (detail.getSfzhfy().equals("1")) @@ -1465,6 +1506,7 @@ String mxfyxmbm = detail.getMxfyxmbm(); tree.setHisXmdm(mxfyxmbm); tree.setType("检查"); tree.setService("his"); tree.setTjPrice(String.valueOf(detail.getProjg())); LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>(); if (detail.getSfzhfy().equals("1")) ltkj-hosp/src/main/java/com/ltkj/hosp/domain/LtkjJianchajianyanTree.java
@@ -72,6 +72,8 @@ private Date createTime; private String service; @TableField(exist = false) private static final long serialVersionUID = 1L; } ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java
@@ -247,6 +247,27 @@ @Select("SELECT a.sqdh FROM ltkj_jianchajianyan_tree a WHERE a.card_id=#{cardId} AND a.type='检验' GROUP BY a.sqdh") List<String> getHuoQuJysqdh(String cardId); /** * 查询非补录项目 * LIS作废查询 * @param cardId * @return */ @Select("SELECT a.sqdh FROM ltkj_jianchajianyan_tree a WHERE a.card_id= #{cardId} AND a.type='检验' AND a.jxbz IS NULL GROUP BY a.sqdh") List<String> getHuoQuJysqdhNotBuLu(String cardId); /** * 查询补录项目 * LIS作废查询 * @param cardId * @return */ @Select("SELECT a.sqdh FROM ltkj_jianchajianyan_tree a WHERE a.card_id= #{cardId} AND a.type='检验' AND a.jxbz IS NOT NULL GROUP BY a.sqdh") List<String> getHuoQuJysqdhBuLu(String cardId); @Delete("DELETE FROM ltkj_jianchajianyan_tree WHERE card_id=#{cardId} AND type='检验'") Boolean delHuoQuJysqdh(String cardId); ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java
@@ -373,4 +373,14 @@ public List<LtkjJianchajianyanTree> getBuLuXmXinXi(List<String> bldh,String cardId) { return tjOrderMapper.getBuLuXmXinXi(bldh,cardId); } @Override public List<String> getHuoQuJysqdhNotBuLu(String cardId) { return tjOrderMapper.getHuoQuJysqdhNotBuLu(cardId); } @Override public List<String> getHuoQuJysqdhBuLu(String cardId) { return tjOrderMapper.getHuoQuJysqdhBuLu(cardId); } } ltkj-hosp/src/main/resources/mapper/LtkjJianchajianyanTreeMapper.xml
@@ -14,11 +14,12 @@ <result property="xmfl" column="xmfl" jdbcType="VARCHAR"/> <result property="type" column="type" jdbcType="VARCHAR"/> <result property="pationid" column="pationId" jdbcType="VARCHAR"/> <result property="service" column="service" jdbcType="VARCHAR"/> </resultMap> <sql id="Base_Column_List"> id,his_xmdm,card_id, sqdh,tj_price,fyhj, xmfl,type,pationId xmfl,type,pationId,service </sql> </mapper>