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 detailList){ if (detailList != null && !detailList.isEmpty()) { LambdaQueryWrapper wq = new LambdaQueryWrapper<>(); wq.in(TjProject::getProId, detailList.stream().map(TbTransition::getParentProId).collect(Collectors.toList())); wq.in(TjProject::getDeptId,deptService.getJyDeptIds()); List projects = projectService.list(wq); List detailsDtos = new ArrayList<>(); if (projects != null && !projects.isEmpty()){ LisSaveSqdxxDto lisSaveSqdxxDto = new LisSaveSqdxxDto(); ArrayList 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 wrapper = new LambdaQueryWrapper<>(); wrapper.eq(LtkjJfzhgljyxmzd::getZhxmdm, project.getHisXmbm()); LtkjJfzhgljyxmzd jfzhgljyxmzd = ltkjJfzhgljyxmzdService.getOne(wrapper); if (jfzhgljyxmzd != null) { // LambdaQueryWrapper 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 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 wrapper1 = new LambdaQueryWrapper<>(); if (detail.getSfzhfy().equals("1")) wrapper1.eq(LtkjJfzhglmxjfxmzd::getZhxmdm, mxfyxmbm); else wrapper1.eq(LtkjJfzhglmxjfxmzd::getXmdm, mxfyxmbm); List ltkjJfzhglmxjfxmzds = ltkjJfzhglmxjfxmzdService.list(wrapper1); if (ltkjJfzhglmxjfxmzds != null && !ltkjJfzhglmxjfxmzds.isEmpty()) { String xmdm = ltkjJfzhglmxjfxmzds.get(0).getXmdm(); LambdaQueryWrapper wrapper2 = new LambdaQueryWrapper<>(); wrapper2.eq(LtkjMxjfxmzd::getXmdm, xmdm); LtkjMxjfxmzd mxjfxmzd = ltkjMxjfxmzdService.getOne(wrapper2); LambdaQueryWrapper 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; } }