| | |
| | | |
| | | |
| | | 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; |
| | |
| | | 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 |
| | |
| | | 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(); |
| | |
| | | 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()); |
| | |
| | | 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()); |
| | |
| | | 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")); |
| | |
| | | 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()); |
| | |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | 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; |
| | | } |
| | | } |