From ac8b972231fea9da2ce3cb62920bc8a9ab4683e7 Mon Sep 17 00:00:00 2001
From: zhaowenxuan <chacca165@163.com>
Date: 星期四, 10 十月 2024 10:00:13 +0800
Subject: [PATCH] Lis增加作废、取消,修改申请逻辑

---
 ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java |  257 +++++++++++++++++++++++++++++----------------------
 1 files changed, 147 insertions(+), 110 deletions(-)

diff --git a/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java b/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
index cb7c29f..e9eb47c 100644
--- a/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
+++ b/ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
@@ -2,7 +2,8 @@
 
 
 import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.RandomUtil;
+import cn.hutool.core.util.StrUtil;
 import cn.hutool.extra.pinyin.PinyinUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
@@ -25,6 +26,8 @@
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Objects;
+import java.util.concurrent.atomic.AtomicInteger;
 import java.util.stream.Collectors;
 
 @Component
@@ -50,139 +53,173 @@
     private LtkjJyxmzdService ltkjJyxmzdService;
     @Autowired
     private LtkjJfxmgljyxmzdService ltkjJfxmgljyxmzdService;
+    @Autowired
+    private LtkjJyxmzdService jyxmzdService;
 
+    /**
+     * 淇濆瓨妫�楠屽崟鐢宠淇℃伅
+     * @param tjOrder
+     * @param tjCustomer
+     * @param detailList
+     * @return
+     */
     public Boolean save(TjOrder tjOrder, TjCustomer tjCustomer, List<TbTransition> detailList){
         if (detailList != null && !detailList.isEmpty()) {
             LambdaQueryWrapper<TjProject> wq = new LambdaQueryWrapper<>();
             wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList()));
             wq.in(TjProject::getDeptId,deptService.getJyDeptIds());
             List<TjProject> projects = projectService.list(wq);
-            List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
             if (projects != null && !projects.isEmpty()){
-                LisSaveSqdxxDto lisSaveSqdxxDto = new LisSaveSqdxxDto();
-                ArrayList<LisSaveSqdxxJyxmlistDto> dtos = new ArrayList<>();
-                BigDecimal allPrice = new BigDecimal("0");
                 // 鏍规嵁project琛ㄧ殑his_xmbm鏌ョ粍鍚堝叧鑱旇〃 ltkj_jfzhgljyxmzd 鏍规嵁瀛楁`zhxmdm`
                 // - 鏌ュ埌 浣跨敤瀛楁`jyxmdm`鏌ユ楠岄」鐩瓧鍏歌〃 ltkj_jyxmzd 鏍规嵁瀛楁`jyxmdm`
                 // - 鏈煡鍒� 鏌ラ」鐩叧鑱旇〃ltkj_jfxmgljyxmzd 鏍规嵁瀛楁`xmdm`
-                int xh = 0;
                 for (TjProject project : projects) {
+                    List<OutpintestapplyDetailsDto> detailsDtos = new ArrayList<>();
                     if (0 == project.getProParentId() && project.getProPrice().compareTo(BigDecimal.ZERO) != 0) {
                         if (null != project.getHisXmbm()) {
-                            allPrice.add(project.getProPrice());
-                            LambdaQueryWrapper<LtkjJfzhgljyxmzd> wrapper = new LambdaQueryWrapper<>();
-                            wrapper.eq(LtkjJfzhgljyxmzd::getZhxmdm, project.getHisXmbm());
-                            LtkjJfzhgljyxmzd jfzhgljyxmzd = ltkjJfzhgljyxmzdService.getOne(wrapper);
-                            if (jfzhgljyxmzd != null) {
-//                                LambdaQueryWrapper<LtkjJyxmzd> wrapper1 = new LambdaQueryWrapper<>();
-//                                wrapper1.eq(LtkjJyxmzd::getJyxmdm, jfzhgljyxmzd.getJyxmdm());
-//                                LtkjJyxmzd jyxmzd = ltkjJyxmzdService.getOne(wrapper1);
-                                LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
-                                dto.setXh(String.valueOf(xh++));
-                                dto.setJyxm(jfzhgljyxmzd.getJyxmdm());
-                                dto.setXmmc(jfzhgljyxmzd.getZhxmmc());
-                                dtos.add(dto);
+                            LisSaveSqdxxDto lisSaveSqdxxDto = new LisSaveSqdxxDto();
+                            LtkjJyxmzd jyxmzd = getGetYbDm(project);
+                            BigDecimal allPrice = new BigDecimal("0");
+                            detailList.stream().filter(item -> Objects.equals(item.getParentProId(), project.getProId()))
+                                    .forEach(item -> allPrice.add(item.getNowPrice()));
+                            if (jyxmzd != null) {
+                                ArrayList<LisSaveSqdxxJyxmlistDto> dtos = new ArrayList<>();
+                                AtomicInteger xh = new AtomicInteger();
+                                detailList.stream().filter(detail -> detail.getParentProId().equals(project.getProId()))
+                                        .forEach(item -> {
+                                            LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
+                                            dto.setXh(String.valueOf(xh.getAndIncrement()));
+                                            dto.setJyxm(item.getProName());
+                                            TjProject project1 = projectService.getById(item.getProId());
+                                            LtkjJyxmzd jyxmzd1 = getGetYbDm(project1);
+                                            dto.setXmmc(jyxmzd1.getJyxmdm());
+                                            dtos.add(dto);
 
-                                OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
-                                detailsDto.setMxfyxmbm(project.getHisXmbm());
-                                if (project.getSfzhfy().equals("Y")) {
-                                    detailsDto.setSfzhfy("1");
-                                } else {
-                                    detailsDto.setSfzhfy("0");
-                                }
-                                detailsDto.setSl(project.getSl());
-                                detailsDto.setProjg(project.getProPrice());
-                                detailsDtos.add(detailsDto);
-                            }else {
-                                LambdaQueryWrapper<LtkjJfxmgljyxmzd> wrapper1 = new LambdaQueryWrapper<>();
-                                wrapper1.eq(LtkjJfxmgljyxmzd::getXmdm, project.getHisXmbm());
-                                LtkjJfxmgljyxmzd jfxmgljyxmzd = ltkjJfxmgljyxmzdService.getOne(wrapper1);
-                                if (jfxmgljyxmzd != null) {
-                                    LisSaveSqdxxJyxmlistDto dto = new LisSaveSqdxxJyxmlistDto();
-                                    dto.setXh(String.valueOf(xh++));
-                                    dto.setJyxm(jfxmgljyxmzd.getJyxmdm());
-                                    dto.setXmmc(jfxmgljyxmzd.getXmmc());
-                                    dtos.add(dto);
+                                            OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
+                                            detailsDto.setMxfyxmbm(project.getHisXmbm());
+                                            if (project.getSfzhfy().equals("Y")) {
+                                                detailsDto.setSfzhfy("1");
+                                            } else {
+                                                detailsDto.setSfzhfy("0");
+                                            }
+                                            detailsDto.setSl(project.getSl());
+                                            detailsDto.setProjg(project.getProPrice());
+                                            detailsDtos.add(detailsDto);
+                                        });
 
-                                    OutpintestapplyDetailsDto detailsDto = new OutpintestapplyDetailsDto();
-                                    detailsDto.setMxfyxmbm(project.getHisXmbm());
-                                    if (project.getSfzhfy().equals("Y")) {
-                                        detailsDto.setSfzhfy("1");
-                                    } else {
-                                        detailsDto.setSfzhfy("0");
+                                String yyyyMMdd = DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyyMMdd");
+                                String sqdh = "3"+yyyyMMdd.substring(2)+ RandomUtil.randomString(String.valueOf(System.currentTimeMillis()), 3);
+                                lisSaveSqdxxDto.setJyxh(sqdh);
+                                lisSaveSqdxxDto.setBah(tjOrder.getCardId());
+                                lisSaveSqdxxDto.setBrxm(tjCustomer.getCusName());
+                                lisSaveSqdxxDto.setBrdm(PinyinUtil.getPinyin(tjCustomer.getCusName()));
+                                lisSaveSqdxxDto.setXb(tjCustomer.getCusSex()==1?"2":"1");
+                                lisSaveSqdxxDto.setCsrq(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
+                                AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
+                                lisSaveSqdxxDto.setNl(String.valueOf(ageResult.getAge()));
+                                lisSaveSqdxxDto.setNldw(String.valueOf(ageResult.getUnit()));
+                                lisSaveSqdxxDto.setSfzh(tjCustomer.getCusIdcard());
+                                lisSaveSqdxxDto.setLxdh(tjCustomer.getCusPhone());
+                                lisSaveSqdxxDto.setJtzz("");
+                                Date date = new Date();
+                                lisSaveSqdxxDto.setSqrq(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
+                                lisSaveSqdxxDto.setYbbm(jyxmzd.getJybbdm());
+                                lisSaveSqdxxDto.setCyrq("");
+                                lisSaveSqdxxDto.setLczd("");
+                                lisSaveSqdxxDto.setFyje(allPrice.toString());
+                                lisSaveSqdxxDto.setBz("");
+                                lisSaveSqdxxDto.setKsbm("0101");
+                                lisSaveSqdxxDto.setSqys("00029");
+                                lisSaveSqdxxDto.setJyxmlistDtoList(dtos);
+                                System.out.println(JSONUtil.toJsonStr(lisSaveSqdxxDto));
+                                // TODO 鏆備笉鍙戝嚭璇锋眰
+                                if (!detailsDtos.isEmpty() && false) {
+                                    AjaxResult ajaxResult = lisApiMethodService.saveSqdxx(lisSaveSqdxxDto);
+                                    String result = ajaxResult.get("data").toString();
+                                    JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result).getStr("Response"));
+                                    log.info("璇锋眰杩斿洖 ->{}",object);
+                                    String code = object.getStr("ResultCode");
+                                    if(code.equals("0")){
+                                        for (OutpintestapplyDetailsDto detail : detailsDtos) {
+                                            LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
+                                            tree.setCardId(tjOrder.getCardId());
+                                            tree.setPationid(tjCustomer.getPationId());
+                                            tree.setSqdh(sqdh);
+                                            tree.setFyhj(allPrice.toString());
+                                            String mxfyxmbm = detail.getMxfyxmbm();
+                                            tree.setHisXmdm(mxfyxmbm);
+                                            tree.setType("妫�楠�");
+                                            tree.setTjPrice(String.valueOf(detail.getProjg()));
+                                            LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
+                                            if (detail.getSfzhfy().equals("1"))
+                                                wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
+                                            else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
+                                            List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
+                                            if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
+                                                String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
+                                                LambdaQueryWrapper<LtkjMxjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
+                                                wrapper3.eq(LtkjMxjfxmzd::getXmdm, xmdm);
+                                                LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper3);
+                                                LambdaQueryWrapper<LtkjEjjfxmzd> wrapper4 = new LambdaQueryWrapper<>();
+                                                wrapper4.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
+                                                LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper4);
+                                                tree.setXmfl(ejjfxmzd.getYjkmdm());
+                                            }
+                                            tree.setCreateTime(DateUtil.date());
+                                            ltkjJianchajianyanTreeService.save(tree);
+                                        }
+                                    }else {
+                                        log.error("璇锋眰澶辫触 ->{}",lisSaveSqdxxDto);
                                     }
-                                    detailsDto.setSl(project.getSl());
-                                    detailsDto.setProjg(project.getProPrice());
-                                    detailsDtos.add(detailsDto);
                                 }
                             }
                         }
-                    }
-                }
-                String sqdh = "妫�楠屽簭鍙�-鏉$爜鍙凤紙10 浣嶏紝瑙勫垯涓嶈兘鏄� 2 寮�澶达級 涓嶈兘閲嶅";
-                lisSaveSqdxxDto.setJyxh(sqdh);
-                lisSaveSqdxxDto.setBah(tjOrder.getCardId());
-                lisSaveSqdxxDto.setBrxm(tjCustomer.getCusName());
-                lisSaveSqdxxDto.setBrdm(PinyinUtil.getPinyin(tjCustomer.getCusName()));
-                lisSaveSqdxxDto.setXb(tjCustomer.getCusSex()==1?"2":"1");
-                lisSaveSqdxxDto.setCsrq(DateFormatUtils.format(tjCustomer.getCusBrithday(), "yyyy-MM-dd"));
-                AgeResult ageResult = DateUtils.calculateAge(tjCustomer.getCusBrithday());
-                lisSaveSqdxxDto.setNl(String.valueOf(ageResult.getAge()));
-                lisSaveSqdxxDto.setNldw(String.valueOf(ageResult.getUnit()));
-                lisSaveSqdxxDto.setSfzh(tjCustomer.getCusIdcard());
-                lisSaveSqdxxDto.setLxdh(tjCustomer.getCusPhone());
-                lisSaveSqdxxDto.setJtzz("");
-                Date date = new Date();
-                lisSaveSqdxxDto.setSqrq(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
-                lisSaveSqdxxDto.setYbbm("鏍锋湰-鍥炰紶鏍锋湰瀛楀吀涓殑缂栫爜");
-                lisSaveSqdxxDto.setCyrq("");
-                lisSaveSqdxxDto.setLczd("");
-                lisSaveSqdxxDto.setFyje(allPrice.toString());
-                lisSaveSqdxxDto.setBz("");
-                lisSaveSqdxxDto.setKsbm("0101");
-                lisSaveSqdxxDto.setSqys("00029");
-                lisSaveSqdxxDto.setJyxmlistDtoList(dtos);
-                if (!detailsDtos.isEmpty()){
-                    AjaxResult ajaxResult = lisApiMethodService.saveSqdxx(lisSaveSqdxxDto);
-                    String result = ajaxResult.get("data").toString();
-                    JSONObject object = JSONUtil.parseObj(JSONUtil.parseObj(result).getStr("Response"));
-                    log.info("璇锋眰杩斿洖 ->{}",object);
-                    String code = object.getStr("ResultCode");
-                    if(code.equals("0")){
-                        for (OutpintestapplyDetailsDto detail : detailsDtos) {
-                            LtkjJianchajianyanTree tree = new LtkjJianchajianyanTree();
-                            tree.setCardId(tjOrder.getCardId());
-                            tree.setPationid(tjCustomer.getPationId());
-                            tree.setSqdh(sqdh);
-                            tree.setFyhj(allPrice.toString());
-                            String mxfyxmbm = detail.getMxfyxmbm();
-                            tree.setHisXmdm(mxfyxmbm);
-                            tree.setType("妫�楠�");
-                            tree.setTjPrice(String.valueOf(detail.getProjg()));
-                            LambdaQueryWrapper<LtkjJfzhglmxjfxmzd> wrapper1 = new LambdaQueryWrapper<>();
-                            if (detail.getSfzhfy().equals("1"))
-                                wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm);
-                            else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm);
-                            List<LtkjJfzhglmxjfxmzd> ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1);
-                            if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) {
-                                String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm();
-                                LambdaQueryWrapper<LtkjMxjfxmzd> wrapper2 = new LambdaQueryWrapper<>();
-                                wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm);
-                                LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2);
-                                LambdaQueryWrapper<LtkjEjjfxmzd> wrapper3 = new LambdaQueryWrapper<>();
-                                wrapper3.eq(LtkjEjjfxmzd::getEjkmdm, mxjfxmzd.getEjkmdm());
-                                LtkjEjjfxmzd ejjfxmzd = ltkjEjjfxmzdService.getOne(wrapper3);
-                                tree.setXmfl(ejjfxmzd.getYjkmdm());
-                            }
-                            tree.setCreateTime(DateUtil.date());
-                            ltkjJianchajianyanTreeService.save(tree);
-                        }
-                    }else {
-                        log.error("璇锋眰澶辫触 ->{}",lisSaveSqdxxDto);
                     }
                 }
             }
         }
         return true;
     }
+
+    /**
+     * 鑾峰彇妫�楠岀粨鏋�
+     * @param cardId
+     * @return
+     */
+    public AjaxResult getJyJg(String cardId){
+        return lisApiMethodService.getJyjg(cardId);
+    }
+
+    /**
+     * 浣滃簾鐢宠鍗�
+     * @param jyxh
+     * @param cardId
+     * @param cusName
+     * @return
+     */
+    public AjaxResult cancel(String jyxh,String cardId,String cusName){
+        return lisApiMethodService.updateSqdxx(cardId,jyxh,cusName);
+    }
+
+
+
+    private LtkjJyxmzd getGetYbDm(TjProject project) {
+        String jyxmdm = "";
+        LambdaQueryWrapper<LtkjJfzhgljyxmzd> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(LtkjJfzhgljyxmzd::getZhxmdm, project.getHisXmbm());
+        LtkjJfzhgljyxmzd jfzhgljyxmzd = ltkjJfzhgljyxmzdService.getOne(wrapper);
+        if (jfzhgljyxmzd != null) jyxmdm = jfzhgljyxmzd.getJyxmdm();
+        else {
+            LambdaQueryWrapper<LtkjJfxmgljyxmzd> wrapper1 = new LambdaQueryWrapper<>();
+            wrapper1.eq(LtkjJfxmgljyxmzd::getXmdm, project.getHisXmbm());
+            LtkjJfxmgljyxmzd jfxmgljyxmzd = ltkjJfxmgljyxmzdService.getOne(wrapper1);
+            if (jfxmgljyxmzd != null) jyxmdm = jfxmgljyxmzd.getJyxmdm();
+        }
+        if (StrUtil.isBlank(jyxmdm)) log.error("鑾峰彇妫�楠岄」鐩唬鐮佷负绌� ->{}", project);
+        LambdaQueryWrapper<LtkjJyxmzd> wrapper2 = new LambdaQueryWrapper<>();
+        wrapper2.eq(LtkjJyxmzd::getJyxmdm,jyxmdm);
+        LtkjJyxmzd jyxmzd = jyxmzdService.getOne(wrapper2);
+        if (jyxmzd != null) return jyxmzd;
+        return null;
+    }
 }

--
Gitblit v1.8.0