zhaowenxuan
2024-10-10 ac8b972231fea9da2ce3cb62920bc8a9ab4683e7
Lis增加作废、取消,修改申请逻辑
1个文件已修改
139 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java 139 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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,37 +53,46 @@
    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);
                            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++));
                                dto.setJyxm(jfzhgljyxmzd.getJyxmdm());
                                dto.setXmmc(jfzhgljyxmzd.getZhxmmc());
                                            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();
@@ -93,33 +105,10 @@
                                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);
                                }
                            }
                        }
                    }
                }
                String sqdh = "检验序号-条码号(10 位,规则不能是 2 开头) 不能重复";
                                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());
@@ -134,7 +123,7 @@
                lisSaveSqdxxDto.setJtzz("");
                Date date = new Date();
                lisSaveSqdxxDto.setSqrq(DateFormatUtils.format(date, "yyyy-MM-dd HH:mm:ss"));
                lisSaveSqdxxDto.setYbbm("样本-回传样本字典中的编码");
                                lisSaveSqdxxDto.setYbbm(jyxmzd.getJybbdm());
                lisSaveSqdxxDto.setCyrq("");
                lisSaveSqdxxDto.setLczd("");
                lisSaveSqdxxDto.setFyje(allPrice.toString());
@@ -142,7 +131,9 @@
                lisSaveSqdxxDto.setKsbm("0101");
                lisSaveSqdxxDto.setSqys("00029");
                lisSaveSqdxxDto.setJyxmlistDtoList(dtos);
                if (!detailsDtos.isEmpty()){
                                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"));
@@ -166,12 +157,12 @@
                            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);
                                                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());
@@ -183,6 +174,52 @@
                }
            }
        }
                    }
                }
            }
        }
        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;
    }
}