From 1e91dc33009cfdc951b2642877f40280b51c3089 Mon Sep 17 00:00:00 2001 From: zjh <1084500556@qq.com> Date: 星期五, 28 二月 2025 15:17:01 +0800 Subject: [PATCH] zjh20250228 --- ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java | 292 ++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 160 insertions(+), 132 deletions(-) diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java index c2f9f49..f30a179 100644 --- a/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java +++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjSamplingController.java @@ -1,9 +1,7 @@ package com.ltkj.web.controller.system; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.text.SimpleDateFormat; +import java.util.*; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.ServletSecurityElement; @@ -13,7 +11,10 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.pinyin.PinyinUtil; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ltkj.common.core.redis.RedisCache; import com.ltkj.common.utils.IdUtils; @@ -21,6 +22,7 @@ import com.ltkj.hosp.domain.*; import com.ltkj.hosp.service.*; import com.ltkj.system.service.ISysConfigService; +import com.ltkj.web.controller.his.HisApiMethod; import com.ltkj.web.controller.lis.LisApiMethod; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -68,9 +70,17 @@ @Autowired private LisApiMethod lisApiMethod; @Autowired - private IdUtils idUtils; - @Autowired private ISysConfigService configService; + @Autowired + private SamplingServiceApi samplingService; + @Autowired + private HisApiMethod hisApiMethod; + @Autowired + private LtkjJianchajianyanTreeService treeService; + @Autowired + private TbLisSqService tbLisSqService; + @Autowired + private LtkjJfxmgljyxmzdService jfxmgljyxmzdService; /** * 鏌ヨ浣撴閲囨牱绠$悊鍒楄〃 @@ -211,6 +221,7 @@ public AjaxResult getCusList(@RequestParam(defaultValue = "1") @ApiParam(value = "0鏄�1鍚�") Integer isSignFor, @RequestParam(required = false) @ApiParam(value = "浣撴鍙�") String tjNum, @RequestParam(required = false) @ApiParam(value = "瀹㈡埛濮撳悕") String name, + @RequestParam(required = false) @ApiParam(value = "鍗曚綅") String dw, @ApiParam(value = "椤电爜鏁�(榛樿1)") @RequestParam(defaultValue = "1") Integer pageNum, @ApiParam(value = "鏄剧ず鏉℃暟(榛樿10)") @RequestParam(defaultValue = "10") Integer pageSize, @ApiParam(value = "寮�濮嬫椂闂�") @RequestParam(required = false) String beginTime, @@ -219,24 +230,40 @@ LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>(); wrapper.eq(TjSampling::getIsSignFor, isSignFor); if (null != tjNum && StrUtil.isNotBlank(tjNum)) - wrapper.eq(TjSampling::getTjNum, tjNum); + wrapper.like(TjSampling::getTjNum, tjNum); if (null != name && StrUtil.isNotBlank(name)) - wrapper.eq(TjSampling::getCusName, name); + wrapper.like(TjSampling::getCusName, name); if (null != beginTime && null != endTime && StrUtil.isNotBlank(beginTime) && StrUtil.isNotBlank(endTime)) wrapper.between(TjSampling::getApplicationTime, beginTime, endTime); + if (StrUtil.isNotBlank(dw)){ + LambdaQueryWrapper<TjOrder> wqq=new LambdaQueryWrapper<>(); + wqq.like(TjOrder::getFirmId,dw); + wqq.select(TjOrder::getTjNumber); + List<TjOrder> orderList = orderService.list(wqq); + if(null !=orderList && !orderList.isEmpty()){ + List<String> list = orderList.stream().map(TjOrder::getTjNumber).collect(Collectors.toList()); + wrapper.in(TjSampling::getTjNum, list); + } + } + wrapper.groupBy(TjSampling::getCusId); + wrapper.orderByDesc(TjSampling::getCreateTime); // wrapper.last("LIMIT " + (pageNum - 1) * pageSize + "," + pageSize); Page<TjSampling> page = tjSamplingService.page(samplingPage, wrapper); List<TjSampling> list = page.getRecords(); ArrayList<TjCustomer> tjCustomers = new ArrayList<>(); for (TjSampling tjSampling : list) { TjCustomer customer = customerService.getById(tjSampling.getCusId()); - customer.setCusName(MatchUtils.hideCusName(customer.getCusName())); - customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone())); - customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard())); - customer.setTjNumber(tjSampling.getTjNum()); - customer.setApplicationTime(tjSampling.getApplicationTime()); - tjCustomers.add(customer); + if(null !=customer){ + TjOrder order = orderService.getOrderByTjNum(tjSampling.getTjNum()); + customer.setCompName(order.getFirmName()); + customer.setCusName(customer.getCusName()); + customer.setCusPhone(MatchUtils.hidePhoneNum(customer.getCusPhone())); + customer.setCusIdcard(MatchUtils.hideIdCardNum(customer.getCusIdcard())); + customer.setTjNumber(tjSampling.getTjNum()); + customer.setApplicationTime(tjSampling.getApplicationTime()); + tjCustomers.add(customer); + } } HashMap<String, Object> hashMap = new HashMap<>(); hashMap.put("list", tjCustomers); @@ -247,87 +274,144 @@ /** * 鏍规嵁瀹㈡埛鑾峰彇閲囨牱鍒楄〃 * - * @param cusId + * @param tjNumber * @return */ @GetMapping("/getCusCyList") @ApiOperation(value = "鏍规嵁瀹㈡埛鑾峰彇閲囨牱鍒楄〃") - public AjaxResult getCusCyList(@RequestParam @ApiParam(value = "瀹㈡埛id") String cusId, + public AjaxResult getCusCyList(@RequestParam @ApiParam(value = "瀹㈡埛id") String tjNumber, @RequestParam(defaultValue = "1") @ApiParam(value = "0鏄�1鍚�") Integer isSignFor) { - if (cusId == null || StrUtil.isBlank(cusId)) + if (tjNumber == null || StrUtil.isBlank(tjNumber)) return AjaxResult.error("鍙傛暟閿欒,鏈紶鍙傛暟"); LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(TjSampling::getCusId, cusId); + String config = configService.selectConfigByKey("sfkqdyhis"); + if (config.equals("Y")){ +// LambdaQueryWrapper<TjSampling> wrapper6 = new LambdaQueryWrapper<>(); +// wrapper6.eq(TjSampling::getTjNum, tjNumber); +// wrapper6.eq(TjSampling::getIsSignFor,isSignFor); +// wrapper6.and(i -> i.isNull(TjSampling::getParentId).or().eq(TjSampling::getIsMerge,1)); +// wrapper6.isNull(TjSampling::getJyxh); +// List<TjSampling> list1 = tjSamplingService.list(wrapper6); +// if (!list1.isEmpty()){ + if (true){ + LambdaQueryWrapper<TjOrder> wrapper1 = new LambdaQueryWrapper<>(); + wrapper1.eq(TjOrder::getTjNumber,tjNumber); + TjOrder tjOrder = orderService.getOne(wrapper1); + hisApiMethod.Getlabreginfoinfo(tjOrder.getCardId(),new SimpleDateFormat("yyyy-MM-dd").format(tjOrder.getCreateTime())); + LambdaQueryWrapper<TbLisSq> wrapper2 = new LambdaQueryWrapper<>(); + wrapper2.eq(TbLisSq::getCardId,tjOrder.getCardId()); + List<TbLisSq> list = tbLisSqService.list(wrapper2); + for (TbLisSq lisSq : list) { + if (!lisSq.getSqdbh().contains("jk")) + continue; + String jyxmdm = lisSq.getJyxmdm(); + LambdaQueryWrapper<TjProject> wrapper4 = new LambdaQueryWrapper<>(); + wrapper4.eq(TjProject::getLisXmbm,jyxmdm); + TjProject project = projectService.getOne(wrapper4); + if (project != null){ + LambdaUpdateWrapper<TjSampling> wrapper5 = new LambdaUpdateWrapper<>(); + String jyxh = ""; + if (StrUtil.isNotBlank(lisSq.getJyxhHb())) + jyxh = lisSq.getJyxhHb(); + else jyxh = lisSq.getJyxh(); + wrapper5.set(TjSampling::getJyxh,jyxh); + wrapper5.set(TjSampling::getJyxmdm,lisSq.getJyxmdm()); + wrapper5.eq(TjSampling::getProId,project.getProParentId()); + wrapper5.eq(TjSampling::getTjNum,tjNumber); + tjSamplingService.update(wrapper5); + } + } + +// JSONArray array = hisApiMethod.Getlabreginfoinfo(tjOrder.getCardId()); +// if (array != null && !array.isEmpty()){ +// for (Object o : array) { +// JSONObject jsonObject = (JSONObject) o; +// String sqdh = jsonObject.getStr("sqdh"); +// String jyxh = jsonObject.getStr("jyxh"); +// LambdaQueryWrapper<LtkjJianchajianyanTree> wrapper2 = new LambdaQueryWrapper<>(); +// wrapper2.eq(LtkjJianchajianyanTree::getCardId,tjOrder.getCardId()); +// wrapper2.eq(LtkjJianchajianyanTree::getType,"妫�楠�"); +// wrapper2.eq(LtkjJianchajianyanTree::getSqdh,sqdh); +// List<LtkjJianchajianyanTree> list = treeService.list(wrapper2); +// List<String> hisXms = list.stream().map(LtkjJianchajianyanTree::getHisXmdm).collect(Collectors.toList()); +// LambdaQueryWrapper<TjProject> wrapper3 = new LambdaQueryWrapper<>(); +// wrapper3.in(TjProject::getHisXmbm,hisXms); +// wrapper3.ne(TjProject::getProParentId,0); +// wrapper3.groupBy(TjProject::getProParentId); +// List<Long> proParentIds = projectService.list(wrapper3).stream().map(TjProject::getProParentId).collect(Collectors.toList()); +// LambdaQueryWrapper<TjProject> wrapper4 = new LambdaQueryWrapper<>(); +// wrapper4.in(TjProject::getProId,proParentIds); +// List<Long> proIds = projectService.list(wrapper4).stream().map(TjProject::getProId).collect(Collectors.toList()); +// LambdaUpdateWrapper<TjSampling> wrapper5 = new LambdaUpdateWrapper<>(); +// wrapper5.set(TjSampling::getJyxh,jyxh); +// wrapper5.in(TjSampling::getProId,proIds); +// wrapper5.eq(TjSampling::getTjNum,tjNumber); +// tjSamplingService.update(wrapper5); +// } +// } + } + } + +// if (config.equals("Y")) +// wrapper.eq(TjSampling::getJyxh,""); + wrapper.eq(TjSampling::getTjNum, tjNumber); wrapper.eq(TjSampling::getIsSignFor,isSignFor); wrapper.and(i -> i.isNull(TjSampling::getParentId).or().eq(TjSampling::getIsMerge,1)); -// wrapper.isNull(TjSampling::getParentId).or().eq(TjSampling::getIsMerge,1); +// wrapper.eq(TjSampling::getIsPay,1); +// if (isSignFor == 1) +// wrapper.eq(TjSampling::getIsApply,0); wrapper.orderByDesc(TjSampling::getIsMerge); + List<TjSampling> list = tjSamplingService.list(wrapper); if (list.isEmpty()){ - logger.info("cusId鍙傛暟浼犵殑鏄�:"+cusId); + logger.info("jtNum ->{}",tjNumber); +// return AjaxResult.error("鏈煡璇㈠埌鏁版嵁锛屼汉鍛樻湭缂磋垂鎴栨病鏈夋湭閲囨牱椤圭洰"); return AjaxResult.error("鍙傛暟閿欒,鏈煡璇㈠埌鏁版嵁"); } +// for (TjSampling sampling : list) { +// TjCustomer customer = customerService.getById(sampling.getCusId()); +// TjOrder order = orderService.getOrderByTjNum(sampling.getTjNum()); +// if(null !=order)sampling.setCardId(order.getCardId()); +// sampling.setCustomer(customer); +// } + + if (list.size() >= 2) { + // 杩涜鍚堝苟 + List<String> stringList = list.stream().map(TjSampling::getId).collect(Collectors.toList()); +// log.info("鎻愬彇id ->{}",stringList); + for (String s : stringList) { + if (tjSamplingService.isMergeItem(s) != 0) { + list.removeIf(item -> Objects.equals(item.getId(), s)); + } + } + String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix"); + Map<String, List<TjSampling>> map = list.stream().filter(i->StrUtil.isNotBlank(i.getSpecimenTypeCode())).collect(Collectors.groupingBy(item -> item.getSpecimenTypeCode())); + for (Map.Entry<String, List<TjSampling>> entry : map.entrySet()) { + List<TjSampling> entryValue = entry.getValue(); + tjSamplingService.mergeCaiYangTran(entryValue.stream().map(TjSampling::getId).collect(Collectors.toList()),lis_tmh_prefix); + } + } + wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(TjSampling::getTjNum, tjNumber); + wrapper.eq(TjSampling::getIsSignFor,isSignFor); + wrapper.and(i -> i.isNull(TjSampling::getParentId).or().eq(TjSampling::getIsMerge,1)); +// wrapper.orderByDesc(TjSampling::getIsMerge); + wrapper.orderByAsc(TjSampling::getSpecimenTypeCode,TjSampling::getIsMerge); + list = tjSamplingService.list(wrapper); for (TjSampling sampling : list) { -// sampling.setCusName(MatchUtils.hideCusName(sampling.getCusName())); - sampling.setCusName(sampling.getCusName()); + TjCustomer customer = customerService.getById(sampling.getCusId()); + TjOrder order = orderService.getOrderByTjNum(sampling.getTjNum()); + if(null !=order)sampling.setCardId(order.getCardId()); + sampling.setCustomer(customer); } return AjaxResult.success(list); } @PostMapping("/mergeCaiYang") @ApiOperation(value = "閲囨牱鐧昏鍚堝苟椤圭洰鎺ュ彛") - @Transactional public AjaxResult mergeCaiYang(@RequestBody List<String> ids) { - if (null != ids && !ids.isEmpty()) { - if(ids.size()==1)return AjaxResult.error("璇烽�夋嫨鑷冲皯涓ゆ潯椤圭洰杩涜鍚堝苟!"); - int i = tjSamplingService.panduanshifoukeyihebing(ids); - if (i > 1) { - return AjaxResult.error("鏍囨湰绫诲瀷涓嶄竴鑷�,涓嶅彲鍚堝苟"); - } - int pdsfczhbxm = tjSamplingService.pdsfczhbxm(ids); - if (pdsfczhbxm == ids.size()) return AjaxResult.error("澶氫釜鍚堝苟椤圭洰涓嶅彲鍐嶇户缁悎骞�!"); - if (pdsfczhbxm > 1) return AjaxResult.error("鏈�澶氬厑璁搁�夋嫨涓�涓悎骞惰繃鐨勯」鐩�!"); - String string = tjSamplingService.getBuKeHebingProName(ids); - if(null !=string){ - return AjaxResult.error(string+"杩欏嚑涓」鐩笉鍙悎骞�!"); - } - if (pdsfczhbxm == 0) { - TjSampling tjSampling = tjSamplingService.getById(ids.get(0)); - Map<String, Object> map = tjSamplingService.hebingCaiYangInFo(ids); - TjSampling sampling = new TjSampling(); - String proId = map.get("proId").toString(); - String proName = map.get("proName").toString(); - BeanUtil.copyProperties(tjSampling, sampling, new String[]{"id"}); - sampling.setProId(proId); - sampling.setProName(proName); - sampling.setIsMerge(1); - sampling.setJyxh(idUtils.generateLisID()); - if (tjSamplingService.save(sampling)) { - if (tjSamplingService.updateHeBingXm(ids, sampling.getId())) { - return AjaxResult.success("鍚堝苟椤圭洰鎴愬姛!"); - } - } - return AjaxResult.error("鎿嶄綔澶辫触!"); - } else { - TjSampling tjSampling = tjSamplingService.getTjSamplingByHb(ids); - List<TjSampling> samplingList = tjSamplingService.getTjSamplingListByHb(ids); - if (null != tjSampling && null != samplingList && !samplingList.isEmpty()) { - List<String> stringList = samplingList.stream().map(TjSampling::getId).collect(Collectors.toList()); - Map<String, Object> map = tjSamplingService.hebingCaiYangInFo(stringList); - String proId = map.get("proId").toString(); - String proName = map.get("proName").toString(); - tjSampling.setProId(proId); - tjSampling.setProName(proName); - if (tjSamplingService.updateById(tjSampling)) { - if (tjSamplingService.updateHeBingXm(stringList, tjSampling.getParentId())) { - return AjaxResult.success("鍚堝苟椤圭洰鎴愬姛!"); - } - } - } - return AjaxResult.error("鎿嶄綔澶辫触!"); - } - } - return AjaxResult.error("璇烽�夋嫨浣犺鍚堝苟鐨勯」鐩�!!!"); + String lis_tmh_prefix = configService.selectConfigByKey("make_lis_tmh_prefix"); + return tjSamplingService.mergeCaiYangTran(ids,lis_tmh_prefix); } @@ -410,64 +494,8 @@ @ApiOperation(value = "纭閲囨牱鎺ュ彛") @Transactional public AjaxResult confirmSampling(@RequestBody List<String> ids) { - if (null == ids || ids.isEmpty()) { - return AjaxResult.error("璇烽�夋嫨瑕佺‘璁ら」"); - } - List<TjSampling> tjSamplings = tjSamplingService.listByIds(ids); - if (tjSamplings.isEmpty()) - return AjaxResult.error("璇烽�夋嫨瑕佺‘璁ら」"); - for (TjSampling sampling : tjSamplings) { - sampling.setIsSignFor("0"); -// LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>(); -// wq.eq(TjProject::getProParentId, sampling.getProId()); -// List<TjProject> projectList = projectService.list(wq); -// List<String> collect = new ArrayList<>(); -// for (TjProject project : projectList) { -// Long proId = project.getProId(); -// collect.add(String.valueOf(proId)); -// } -// LambdaQueryWrapper<TjSampling> wq1 = new LambdaQueryWrapper<>(); -// wq1.eq(TjSampling::getTjNum, sampling.getTjNum()); -// wq1.in(TjSampling::getProId, collect); -// List<TjSampling> samplingList = tjSamplingService.list(wq1); -// if (null != samplingList && samplingList.size() > 0) { -// for (TjSampling tjSampling : samplingList) { -// tjSampling.setIsSignFor("0"); -// tjSamplingService.updateById(tjSampling); -// } -// } - TjOrder tjOrder = orderService.getOrderByTjNum(sampling.getTjNum()); - if(null==tjOrder)return AjaxResult.error("浣撴璁板綍涓嶅瓨鍦�"); - TjCustomer tjCustomer = customerService.getById(tjOrder.getUserId()); - boolean updChild; - String config = configService.selectConfigByKey("sfkqdyhis"); - Boolean save; - if (null != config && config.equals("Y")) { - save = lisApiMethod.save(sampling, tjOrder, tjCustomer); - }else { - save = true; - } - if (save) { - if (sampling.getIsMerge() == 1) { - LambdaQueryWrapper<TjSampling> wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(TjSampling::getParentId, sampling.getId()); - List<TjSampling> list = tjSamplingService.list(wrapper); - for (TjSampling tjSampling : list) { - tjSampling.setIsSignFor("0"); - } - updChild = tjSamplingService.updateBatchById(list); - } else { - updChild = true; - } - if (!tjSamplingService.updateById(sampling) && !updChild) { -// lisApiMethod.cancel(sampling.getJyxh(), tjOrder.getCardId(), PinyinUtil.getFirstLetter(tjCustomer.getCusName(), "")); -// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); - return AjaxResult.error("鎿嶄綔澶辫触璇烽噸璇�"); - } - } else { - return AjaxResult.error("鎿嶄綔澶辫触璇烽噸璇�"); - } - } - return AjaxResult.success("鎿嶄綔鎴愬姛"); + String config = configService.selectConfigByKey("sfkqdyhis"); + String mergeRequest = configService.selectConfigByKey("use_lis_pacs_is_auto_merge_request"); + return samplingService.confirmApi(ids,config,mergeRequest); } } -- Gitblit v1.8.0