zhaowenxuan
2024-09-20 96e8bad7c51dd16d6775166c36017d92ce5b7b14
lis申请类
1个文件已修改
178 ■■■■■ 已修改文件
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java 178 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ltkj-admin/src/main/java/com/ltkj/web/controller/lis/LisApiMethod.java
@@ -1,10 +1,188 @@
package com.ltkj.web.controller.lis;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.extra.pinyin.PinyinUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ltkj.common.core.domain.AjaxResult;
import com.ltkj.common.utils.AgeResult;
import com.ltkj.common.utils.DateUtils;
import com.ltkj.hosp.domain.*;
import com.ltkj.hosp.hisDto.OutpintestapplyDetailsDto;
import com.ltkj.hosp.lisDto.LisSaveSqdxxDto;
import com.ltkj.hosp.lisDto.LisSaveSqdxxJyxmlistDto;
import com.ltkj.hosp.service.*;
import com.ltkj.system.service.ISysDeptService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@Component
@Slf4j
public class LisApiMethod {
    @Autowired
    private LisApiMethodService lisApiMethodService;
    @Autowired
    private ISysDeptService deptService;
    @Autowired
    private ITjProjectService projectService;
    @Autowired
    private LtkjJfzhglmxjfxmzdService ltkjJfzhglmxjfxmzdService;
    @Autowired
    private LtkjMxjfxmzdService ltkjMxjfxmzdService;
    @Autowired
    private LtkjEjjfxmzdService ltkjEjjfxmzdService;
    @Autowired
    private LtkjJianchajianyanTreeService ltkjJianchajianyanTreeService;
    @Autowired
    private LtkjJfzhgljyxmzdService ltkjJfzhgljyxmzdService;
    @Autowired
    private LtkjJyxmzdService ltkjJyxmzdService;
    @Autowired
    private LtkjJfxmgljyxmzdService ltkjJfxmgljyxmzdService;
    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) {
                    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);
                                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);
                                }
                            }
                        }
                    }
                }
                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;
    }
}