diff --git a/nursing-unit-common/src/main/java/com/nu/entity/InvoicingQldGwcEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/InvoicingQldGwcEntity.java index 242b2a5..df3967e 100644 --- a/nursing-unit-common/src/main/java/com/nu/entity/InvoicingQldGwcEntity.java +++ b/nursing-unit-common/src/main/java/com/nu/entity/InvoicingQldGwcEntity.java @@ -61,4 +61,6 @@ public class InvoicingQldGwcEntity { */ private MaterialInfoEntity materialInfo; + private String qldNo; + } diff --git a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java index ca06e18..dfe7487 100644 --- a/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java +++ b/nursing-unit-invoicing/nu-invoicing-biz/src/main/java/com/nu/modules/qld/service/impl/QingLingServiceImpl.java @@ -245,120 +245,154 @@ public class QingLingServiceImpl implements IQinglingApi { @Transactional(rollbackFor = Exception.class) public Map submitQld(InvoicingQldGwcEntity dto) { Map result = Maps.newHashMap(); - //当前购物车信息 - QueryWrapper gwcQW = new QueryWrapper<>(); - gwcQW.eq("nu_id", dto.getNuId()); - gwcQW.eq("elder_id", dto.getElderId()); - List gwcList = invoicingQldGwcService.list(gwcQW); - - //检测哪些物料有未完成请领流程的 - { - //请领流程未完成物料id - List disabledWlList = invoicingQldMainMapper.queryUnFinishWlid(dto); - if (!CollectionUtils.isEmpty(disabledWlList)) { - // 提取gwcList中的所有wlId - Set gwcWlIds = gwcList.stream() - .map(NuInvoicingQldGwc::getWlId) - .collect(Collectors.toSet()); - - // 过滤disabledWlList,只保留在gwcList中也存在的wlId - disabledWlList = disabledWlList.stream() - .filter(item -> gwcWlIds.contains(item.getWlId())) - .collect(Collectors.toList()); - if (!CollectionUtils.isEmpty(disabledWlList)) { - result.put("status", "exist"); - result.put("existList", disabledWlList); - return result; - } - } - } - - //可以正常提交 - String status = "1";//待出库(已提交) - LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - - //存储主表数据 - NuInvoicingQldMain saveData = new NuInvoicingQldMain(); - //处理请领单编号 - { - // 查询机构编码 - JSONObject deptInfo = sysBaseAPI.getDeptInfo(); - String deptCode = deptInfo.getString("code"); - String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); - - // 构建今天的前缀模式 - String todayPrefix = "Q" + deptCode + today; - - // 查询今天所有的编号 + if (StringUtils.isNotBlank(dto.getQldNo())) { + //回退单-提交 QueryWrapper qw = new QueryWrapper<>(); - qw.likeRight("qld_no", todayPrefix); - qw.select("qld_no"); + qw.eq("qld_no", dto.getQldNo()); + NuInvoicingQldMain one = invoicingQldMainService.getOne(qw); + dto.setNuId(one.getNuId()); + dto.setElderId(one.getElderId()); + String status = "1"; + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); - List list = invoicingQldMainService.list(qw); - int maxOrderNo = 0; + //日志表插记录 + NuInvoicingQldLog logData = new NuInvoicingQldLog(); + logData.setQldNo(dto.getQldNo());//请领单号 + logData.setStatus(status);//单子操作状态 + logData.setJdMc(status);//节点mc(字典qld_status) + logData.setOpeBy(sysUser.getId());//操作人 + logData.setOpeTime(new Date());//操作时间 + logData.setNuId(dto.getNuId());//护理单元id + logData.setElderId(dto.getElderId());//长者id + invoicingQldLogMapper.insert(logData); - if (list != null && !list.isEmpty()) { - // 从qldNo中提取序号,找到最大值 - for (NuInvoicingQldMain item : list) { - if (item.getQldNo() != null && item.getQldNo().startsWith(todayPrefix)) { - // 提取序号部分(最后几位) - String orderStr = item.getQldNo().substring(todayPrefix.length()); - try { - int order = Integer.parseInt(orderStr); - if (order > maxOrderNo) { - maxOrderNo = order; - } - } catch (NumberFormatException e) { - // 如果解析失败,跳过 - } + //更新单子为待收货 + one.setStatus(status); + one.setIzYgRead("N");//员工改为未读 + one.setIzKgRead("N");//库管改为未读 + one.setTjBy(sysUser.getId());//作废人 + one.setTjTime(new Date());//作废时间 + invoicingQldMainService.updateById(one); + + result.put("status", "success"); + return null; + } else { + //购物车-提交 + //当前购物车信息 + QueryWrapper gwcQW = new QueryWrapper<>(); + gwcQW.eq("nu_id", dto.getNuId()); + gwcQW.eq("elder_id", dto.getElderId()); + List gwcList = invoicingQldGwcService.list(gwcQW); + + //检测哪些物料有未完成请领流程的 + { + //请领流程未完成物料id + List disabledWlList = invoicingQldMainMapper.queryUnFinishWlid(dto); + if (!CollectionUtils.isEmpty(disabledWlList)) { + // 提取gwcList中的所有wlId + Set gwcWlIds = gwcList.stream() + .map(NuInvoicingQldGwc::getWlId) + .collect(Collectors.toSet()); + + // 过滤disabledWlList,只保留在gwcList中也存在的wlId + disabledWlList = disabledWlList.stream() + .filter(item -> gwcWlIds.contains(item.getWlId())) + .collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(disabledWlList)) { + result.put("status", "exist"); + result.put("existList", disabledWlList); + return result; } } } - int nextOrderNo = maxOrderNo + 1; - String qldOrder = String.format("%03d", nextOrderNo); - saveData.setQldNo(todayPrefix + qldOrder); + //可以正常提交 + String status = "1";//待出库(已提交) + LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); + + //存储主表数据 + NuInvoicingQldMain saveData = new NuInvoicingQldMain(); + //处理请领单编号 + { + // 查询机构编码 + JSONObject deptInfo = sysBaseAPI.getDeptInfo(); + String deptCode = deptInfo.getString("code"); + String today = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd")); + + // 构建今天的前缀模式 + String todayPrefix = "Q" + deptCode + today; + + // 查询今天所有的编号 + QueryWrapper qw = new QueryWrapper<>(); + qw.likeRight("qld_no", todayPrefix); + qw.select("qld_no"); + + List list = invoicingQldMainService.list(qw); + int maxOrderNo = 0; + + if (list != null && !list.isEmpty()) { + // 从qldNo中提取序号,找到最大值 + for (NuInvoicingQldMain item : list) { + if (item.getQldNo() != null && item.getQldNo().startsWith(todayPrefix)) { + // 提取序号部分(最后几位) + String orderStr = item.getQldNo().substring(todayPrefix.length()); + try { + int order = Integer.parseInt(orderStr); + if (order > maxOrderNo) { + maxOrderNo = order; + } + } catch (NumberFormatException e) { + // 如果解析失败,跳过 + } + } + } + } + + int nextOrderNo = maxOrderNo + 1; + String qldOrder = String.format("%03d", nextOrderNo); + saveData.setQldNo(todayPrefix + qldOrder); + } + saveData.setStatus(status); + saveData.setIzYgRead("N");//员工有新消息 + saveData.setIzKgRead("N");//库管有新消息 + saveData.setTjBy(sysUser.getId());//提交人 + saveData.setTjTime(new Date());//提交时间 + saveData.setJdMc(status);//节点名称 + saveData.setNuId(dto.getNuId()); + saveData.setElderId(dto.getElderId()); + invoicingQldMainService.save(saveData); + + //子表存储 + List infoList = BeanUtil.copyToList(gwcList, NuInvoicingQldInfo.class); + infoList.stream().forEach(item -> { + item.setQldNo(saveData.getQldNo());//请领单单号 + item.setCreateBy(null); + item.setCreateTime(null); + item.setUpdateBy(null); + item.setUpdateTime(null); + }); + invoicingQldInfoService.saveBatch(infoList); + + //清空购物车信息 + InvoicingQldQueryEntity gwcDeleteParam = new InvoicingQldQueryEntity(); + gwcDeleteParam.setNuId(dto.getNuId()); + gwcDeleteParam.setElderId(dto.getElderId()); + invoicingQldGwcService.removeAllGwc(gwcDeleteParam); + + //日志表插记录 + NuInvoicingQldLog logData = new NuInvoicingQldLog(); + logData.setQldNo(saveData.getQldNo());//请领单号 + logData.setStatus(status);//单子操作状态 + logData.setJdMc(status);//节点mc(字典qld_status) + logData.setOpeBy(sysUser.getId());//操作人 + logData.setOpeTime(new Date());//操作时间 + logData.setNuId(dto.getNuId());//护理单元id + logData.setElderId(dto.getElderId());//长者id + invoicingQldLogMapper.insert(logData); + + result.put("status", "success"); + return result; } - saveData.setStatus(status); - saveData.setIzYgRead("N");//员工有新消息 - saveData.setIzKgRead("N");//库管有新消息 - saveData.setTjBy(sysUser.getId());//提交人 - saveData.setTjTime(new Date());//提交时间 - saveData.setJdMc(status);//节点名称 - saveData.setNuId(dto.getNuId()); - saveData.setElderId(dto.getElderId()); - invoicingQldMainService.save(saveData); - - //子表存储 - List infoList = BeanUtil.copyToList(gwcList, NuInvoicingQldInfo.class); - infoList.stream().forEach(item -> { - item.setQldNo(saveData.getQldNo());//请领单单号 - item.setCreateBy(null); - item.setCreateTime(null); - item.setUpdateBy(null); - item.setUpdateTime(null); - }); - invoicingQldInfoService.saveBatch(infoList); - - //清空购物车信息 - InvoicingQldQueryEntity gwcDeleteParam = new InvoicingQldQueryEntity(); - gwcDeleteParam.setNuId(dto.getNuId()); - gwcDeleteParam.setElderId(dto.getElderId()); - invoicingQldGwcService.removeAllGwc(gwcDeleteParam); - - //日志表插记录 - NuInvoicingQldLog logData = new NuInvoicingQldLog(); - logData.setQldNo(saveData.getQldNo());//请领单号 - logData.setStatus(status);//单子操作状态 - logData.setJdMc(status);//节点mc(字典qld_status) - logData.setOpeBy(sysUser.getId());//操作人 - logData.setOpeTime(new Date());//操作时间 - logData.setNuId(dto.getNuId());//护理单元id - logData.setElderId(dto.getElderId());//长者id - invoicingQldLogMapper.insert(logData); - - result.put("status", "success"); - return result; }