diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java index b1e9139..4ffd899 100644 --- a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java +++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmYdjh.java @@ -265,12 +265,21 @@ public class DmYdjh implements Serializable { private String slxzxqrq; // 小组需求期 private String sldzxqrq; // 大组需求期 + + private String ckbzrq; + private String ckbzry; + private String bmbzrq; + private String bmbzry; + private String bmxgry; + private String bmxgrq; + // 上料信息 private String slkcdw; // 库存垛位 private String slcs; // 层数 private String slxhth; // 小合同号 private String slhth; // 合同号 private String slwlh; // 物料号 + private String kcch; // 物料号 private String slkcxx; // 所有库存信息 private Integer slycldw; // 预处理垛位 private Integer slyclcs; // 预处理垛位 diff --git a/src/main/java/com/dsic/gj_erp/controller/pgd/PgdSljhController.java b/src/main/java/com/dsic/gj_erp/controller/pgd/PgdSljhController.java index 7c3e1ec..693f173 100644 --- a/src/main/java/com/dsic/gj_erp/controller/pgd/PgdSljhController.java +++ b/src/main/java/com/dsic/gj_erp/controller/pgd/PgdSljhController.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.dsic.gj_erp.annotation.AuthFunction; import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.fd.DmCzjbb; @@ -19,6 +20,8 @@ import com.dsic.gj_erp.bean.pgd.PgdTzjh; import com.dsic.gj_erp.bean.sy.Dm_zhbmp; import com.dsic.gj_erp.dao.sy.Dm_zhbmpRepository; import com.dsic.gj_erp.exception.CustomException; +import com.dsic.gj_erp.exception.ServiceException; +import com.dsic.gj_erp.mapper.jhgk.DmYdjhMapper; import com.dsic.gj_erp.mapper.kc.ImCkwpkwpMapper; import com.dsic.gj_erp.service.fd.DmCzjbbService; import com.dsic.gj_erp.service.jcsj.DmCbxxpService; @@ -35,6 +38,8 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.regex.Matcher; +import java.util.regex.Pattern; import java.util.stream.Collectors; /** @@ -56,6 +61,9 @@ public class PgdSljhController { @Autowired DmYdjhService dmYdjhService; + @Autowired + DmYdjhMapper dmYdjhMapper; + @Autowired ImCkwpkwpMapper imCkwpkwpMapper; @@ -268,7 +276,9 @@ public class PgdSljhController { } String cjs1=cjs; DmYdjh dmYdjh = ydjhs.stream() - .filter(fst -> fst.getDcCh().equalsIgnoreCase(slKc.getDCCH()) &&StringUtils.isNotBlank(fst.getWpgg())&& StringUtils.isNotBlank(fst.getWpxh()) + .filter(fst -> fst.getDcCh().equalsIgnoreCase(slKc.getDCCH()) + &&StringUtils.isNotBlank(fst.getWpgg()) + && StringUtils.isNotBlank(fst.getWpxh()) && fst.getWpgg().equalsIgnoreCase(slKc.getWPGG()) && (fst.getWpxh().equalsIgnoreCase(slKc.getWPXH()) || (cjs1 + fst.getWpxh()).equalsIgnoreCase(slKc.getWPXH())) @@ -320,6 +330,153 @@ public class PgdSljhController { return new ResultBean(retrunMap); } + /** + * + * @param req + * 需求船号 需求批量 流向 抛丸位置 切割跨位(根据 合同号生成) 备注 + * 根据 需求船号 需求批量 去 dm_ydjh 表中 查询 反写 库存垛位 上料层数,小合同号,合同号,物料号 + * 库存表 增加 dm_ydjh 表 id (dm_ydjh 中 有数据 ) + * @return + * @throws Exception + * @throws CustomException + */ + @PostMapping("kcAdnSlBd1") + @ResponseBody + public ResultBean kcAdnSlBd1(HttpServletRequest req, @RequestBody List slKcs) throws Exception, CustomException { + + + + List czList = dmCbxxpService.list(); + ListydupList=new ArrayList<>(); + ListydadList=new ArrayList<>(); + ListckupList=new ArrayList<>(); + // 进行比对 + for(SlKc slKc :slKcs){ + // 获取船级社 + String cjs=""; + DmCbxxp dmCzjbb = czList.stream().filter(fst -> fst.getCbbm().equalsIgnoreCase(slKc.getDCCH())).findFirst().orElse(null); + + if(null!=dmCzjbb){ + cjs=dmCzjbb.getCjs(); + } + String cjs1=cjs; + // 根据需求批量 船号 去 查询 + List ydjhs = dmYdjhService.list(new QueryWrapper().eq("dc_ch", slKc.getZYCH() ).eq("isnull(ZT,'')","2") + .eq("dc_pl",slKc.getZYPL()) + ); + DmYdjh dmYdjh = ydjhs.stream() + .filter(fst -> fst.getDcCh().equalsIgnoreCase(slKc.getZYCH()) + &&StringUtils.isNotBlank(fst.getWpgg()) + && StringUtils.isNotBlank(fst.getWpxh()) + && fst.getWpgg().equalsIgnoreCase(slKc.getWPGG()) + && (fst.getWpxh().equalsIgnoreCase(slKc.getWPXH()) + || (cjs1 + fst.getWpxh()).equalsIgnoreCase(slKc.getWPXH())) + && fst.getDcPl().equalsIgnoreCase(slKc.getZYPL()) + ) + .findFirst() + .orElse(null); + + if(null!=dmYdjh){ + System.out.println("slKc = " + slKc); + + System.out.println(slKc.getCFCS1()+dmYdjh.getId()); + dmYdjh.setSlkcdw(slKc.getKWH()); + dmYdjh.setSlcs(slKc.getCFCS1()); + dmYdjh.setSlxhth(slKc.getGCDDH()); + dmYdjh.setSlhth(slKc.getDcFd()); + dmYdjh.setSlwlh(slKc.getWPH()); + dmYdjh.setKcch(slKc.getDCCH()); + ydupList.add(dmYdjh); + + + slKc.setZYLX(getLx(dmYdjh.getLqlb(), dmYdjh.getZl())); + slKc.setSLDW(dmYdjh.getKw()); + slKc.setDHH(dmYdjh.getSljhrq()); + //slKc.setPwwz(dmYdjh.getKw()); + slKc.setYdid(dmYdjh.getId()); + slKc.setDCTH(dmYdjh.getTzbh()); + ydjhs.remove(dmYdjh); // 从列表中移除找到的元素 + ckupList.add(slKc); + }else{ + // 等于nul应该就是没有 + // 新增月度计划 + // 根据 月度计划新增一条信息。 + // 获取 + DmYdjh ydjhMin = dmYdjhMapper.getYdjhMin(slKc.getZYCH(), slKc.getZYPL()); + if(null!=ydjhMin){ + DmYdjh ydjh =new DmYdjh(); + ydjh.setId(IdWorker.get32UUID()); + ydjh.setDcCh(slKc.getZYCH()); + ydjh.setDcPl(slKc.getZYPL()); + ydjh.setWpgg(slKc.getWPGG()); + ydjh.setWpxh(slKc.getWPXH()); + ydjh.setSlrq(ydjhMin.getSlrq()); + ydjh.setPwrq(ydjhMin.getPwrq()); + ydjh.setHxrq(ydjhMin.getHxrq()); + ydjh.setQgrq(ydjhMin.getQgrq()); + ydjh.setDmrq(ydjhMin.getDmrq()); + ydjh.setQjgrq(ydjhMin.getQgjhrq()); + ydjh.setJssj(ydjhMin.getJssj()); + ydjh.setSljhrq(ydjhMin.getSljhrq()); + ydjh.setPwjhrq(ydjhMin.getPwjhrq()); + ydjh.setLljhrq(ydjhMin.getLljhrq()); + ydjh.setHxjhrq(ydjhMin.getHxjhrq()); + ydjh.setQgjhrq(ydjhMin.getQgjhrq()); + ydjh.setKw(extractNumber(slKc.getDcFd())); + ydjh.setCkbzrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm")); + ydjh.setCkbzry((String) req.getAttribute("yhms")); + + //------ + ydjh.setSlkcdw(slKc.getKWH()); + ydjh.setSlcs(slKc.getCFCS1()); + ydjh.setSlxhth(slKc.getGCDDH()); + ydjh.setSlhth(slKc.getDcFd()); + ydjh.setSlwlh(slKc.getWPH()); + ydjh.setKcch(slKc.getDCCH()); + slKc.setYdid(ydjh.getId()); + //ydjhs.remove(dmYdjh); // 从列表中移除找到的元素 + ckupList.add(slKc); + + ydadList.add(ydjh); + //----- + }else{ + throw new ServiceException(10001,slKc.getZYCH()+"船只"+slKc.getZYPL()+"未进行排产"); + } + + } + + + } + dmYdjhService.updateBatchById(ydupList); + dmYdjhService.saveBatch(ydadList); + for(SlKc slKc :slKcs){ + ImCkwpkwp imCkwpkwp =new ImCkwpkwp(); + imCkwpkwp.setCkh(slKc.getCKH()); + imCkwpkwp.setWph(slKc.getWPH()); + imCkwpkwp.setKwh(slKc.getKWH()); + imCkwpkwp.setNbsbm(slKc.getNBSBM()); + imCkwpkwp.setYdid(slKc.getYdid()); + imCkwpkwp.setZych(slKc.getZYCH()); + imCkwpkwp.setZypl(slKc.getZYPL()); + imCkwpkwp.setZylx(slKc.getZYLX()); + imCkwpkwp.setSldw(slKc.getSLDW()); + imCkwpkwp.setPwwz(slKc.getPwwz()); + imCkwpkwp.setBz(slKc.getBZ()); + imCkwpkwp.setDhh(slKc.getDHH()); + imCkwpkwp.setDcTh(slKc.getDCTH()); + imCkwpkwp.setYdid(slKc.getYdid()); + imCkwpkwpService.updateByMultiId(imCkwpkwp); + } + return new ResultBean(); + } + public String extractNumber(String str) { + Pattern pattern = Pattern.compile("-(\\d+)"); + Matcher matcher = pattern.matcher(str); + if (matcher.find()) { + return matcher.group(1); + } + return ""; + } @PostMapping("kcAdnSlZx") @ResponseBody public ResultBean kcAdnSlZx(HttpServletRequest req, @RequestBody Map map) throws Exception, CustomException { @@ -331,6 +488,7 @@ public class PgdSljhController { ListydupList=new ArrayList<>(); + ListckupList=new ArrayList<>(); //String id = syService.f_getpjh("DM", "SYSTEM", "YLBH"); for(SlKc slKc :slKcs){ @@ -473,5 +631,95 @@ public class PgdSljhController { } return ""; } + + @PostMapping("kcAdnSlBd2") + @ResponseBody + public ResultBean kcAdnSlBd2(HttpServletRequest req, @RequestBody Map map) throws Exception, CustomException { + + String str= JSON.toJSONString(map.get("data1")); + List slKcs= JSONObject.parseArray(str, SlKc.class); + + + QueryWrapper qw =new QueryWrapper<>(); + qw.eq(StrUtil.isNotEmpty((String)map.get("dcch")),"dc_ch",(String)map.get("dcch")); + qw.eq(StrUtil.isNotEmpty((String)map.get("dcpl")),"dc_pl",(String)map.get("dcpl")); + qw.eq("isnull(ZT,'')","2").eq("isnull(slkcdw,'')",""); + List ydjhs = dmYdjhService.list(qw); + //库存标识 不等于 01 没有匹配上 + + + + + + + + List czList = dmCbxxpService.list(); + ListydupList=new ArrayList<>(); + ListckupList=new ArrayList<>(); + // 进行比对 + for(SlKc slKc :slKcs){ + // 获取船级社 + String cjs=""; + DmCbxxp dmCzjbb = czList.stream().filter(fst -> fst.getCbbm().equalsIgnoreCase(slKc.getDCCH())).findFirst().orElse(null); + + if(null!=dmCzjbb){ + cjs=dmCzjbb.getCjs(); + } + String cjs1=cjs; + DmYdjh dmYdjh = ydjhs.stream() + .filter(fst -> fst.getDcCh().equalsIgnoreCase(slKc.getDCCH()) + &&StringUtils.isNotBlank(fst.getWpgg()) + && StringUtils.isNotBlank(fst.getWpxh()) + && fst.getWpgg().equalsIgnoreCase(slKc.getWPGG()) + && (fst.getWpxh().equalsIgnoreCase(slKc.getWPXH()) + || (cjs1 + fst.getWpxh()).equalsIgnoreCase(slKc.getWPXH())) + ) + .findFirst() + .orElse(null); + + if(null!=dmYdjh){ + System.out.println("slKc = " + slKc); + dmYdjh.setSlkcdw(slKc.getKWH()); + System.out.println(slKc.getCFCS1()+dmYdjh.getId()); + dmYdjh.setSlcs(slKc.getCFCS1()); + dmYdjh.setSlxhth(slKc.getGCDDH()); + dmYdjh.setSlhth(slKc.getDcFd()); + dmYdjh.setSlwlh(slKc.getWPH()); + dmYdjh.setSlycldw((Integer) map.get("dw")); + + +// ImCkwpkwp imCkwpkwp =new ImCkwpkwp(); +// imCkwpkwp.setCkh(slKc.getCKH()); +// imCkwpkwp.setWph(slKc.getWPH()); +// imCkwpkwp.setKwh(slKc.getKWH()); +// imCkwpkwp.setNbsbm(slKc.getNBSBM()); +// imCkwpkwp.setYdid(dmYdjh.getId()); +// imCkwpkwp.setZych(dmYdjh.getDcCh()); +// imCkwpkwp.setZypl(dmYdjh.getDcPl()); +// imCkwpkwp.setZylx(dmYdjh.getZl()); +// imCkwpkwp.setSldw(dmYdjh.getKw()); + ydupList.add(dmYdjh); + // ckupList.add(imCkwpkwp); + + slKc.setZYLX(getLx(dmYdjh.getLqlb(), dmYdjh.getZl())); + slKc.setZYCH(dmYdjh.getDcCh()); + slKc.setZYPL(dmYdjh.getDcPl()); + slKc.setDCTH(dmYdjh.getTzbh()); + // slKc.setZYLX(dmYdjh.getZl()); + slKc.setSLDW(dmYdjh.getKw()); + slKc.setDHH(dmYdjh.getSljhrq()); + //slKc.setPwwz(dmYdjh.getKw()); + slKc.setYdid(dmYdjh.getId()); + ydjhs.remove(dmYdjh); // 从列表中移除找到的元素 + ckupList.add(slKc); + } + // 填写 库存垛位 kwh 层数 cfcs1 小合同号 gcddh 合同工 dc_fd 物料号 wph 炉批号 lph + + } + Map retrunMap =new HashMap(); + retrunMap.put("slkcs",ckupList); + // retrunMap.put("ydjhs",ydupList); + return new ResultBean(retrunMap); + } } diff --git a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java index 916e7e8..336c659 100644 --- a/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java +++ b/src/main/java/com/dsic/gj_erp/mapper/jhgk/DmYdjhMapper.java @@ -49,4 +49,6 @@ public interface DmYdjhMapper extends BaseMapper { List> gxjhwcqk(String from,String to); List> gcjd(List czbh); + + DmYdjh getYdjhMin(@Param("dcch") String dcch, @Param("dcpl") String dcpl); } diff --git a/src/main/resources/mappers/jhgk/DmYdjhMapper.xml b/src/main/resources/mappers/jhgk/DmYdjhMapper.xml index c13870b..a6b0773 100644 --- a/src/main/resources/mappers/jhgk/DmYdjhMapper.xml +++ b/src/main/resources/mappers/jhgk/DmYdjhMapper.xml @@ -822,4 +822,21 @@ #{item} + +