diff --git a/src/main/java/com/dsic/gj_erp/controller/jcsj/DmBomController.java b/src/main/java/com/dsic/gj_erp/controller/jcsj/DmBomController.java index f11cdc5..56ae4fa 100644 --- a/src/main/java/com/dsic/gj_erp/controller/jcsj/DmBomController.java +++ b/src/main/java/com/dsic/gj_erp/controller/jcsj/DmBomController.java @@ -7,10 +7,7 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; 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.jcsj.DmBchxjbp; -import com.dsic.gj_erp.bean.jcsj.DmBchxmxp; -import com.dsic.gj_erp.bean.jcsj.DmBchxylp; -import com.dsic.gj_erp.bean.jcsj.DmBom; +import com.dsic.gj_erp.bean.jcsj.*; import com.dsic.gj_erp.bean.jcsj.vo.BomVO; import com.dsic.gj_erp.bean.jhgk.DmYdjh; import com.dsic.gj_erp.bean.sy.Dm_zhbmp; @@ -25,6 +22,7 @@ import com.dsic.gj_erp.service.jhgk.DmYdjhService; import com.dsic.gj_erp.service.sy.SYService; import com.dsic.gj_erp.util.ObjConvertUtils; import io.swagger.annotations.ApiOperation; +import jdk.nashorn.internal.ir.ReturnNode; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -142,7 +140,7 @@ public class DmBomController { // return null; } - @ApiOperation(value = "生成月度计划") + @ApiOperation(value = "生成月度计划根套料图") @PostMapping("/scydjh") public ResultBean scydjh(HttpServletRequest req) throws CustomException { @@ -245,6 +243,13 @@ public class DmBomController { return new ResultBean(); } + @ApiOperation(value = "生成月度计划根据dm_bchxylp") + @PostMapping("/scydjhByDm_bchxylp") + public ResultBean scydjhByDm_bchxylp(HttpServletRequest req) throws CustomException { + + bomUploadService.bomxzjhByDm_bchxylp("T300K-103","057",req); + return new ResultBean(); + } diff --git a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/BomUploadServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/BomUploadServiceImpl.java index 4df4bff..9244835 100644 --- a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/BomUploadServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/BomUploadServiceImpl.java @@ -177,6 +177,7 @@ public class BomUploadServiceImpl { for (MultipartFile file1 : file) { System.out.println(file1.getOriginalFilename()); } + String ydf=""; for (MultipartFile f : file) { String fname = f.getOriginalFilename(); @@ -249,6 +250,7 @@ public class BomUploadServiceImpl { int indexOfSecondUnderscore = fname.lastIndexOf('_'); pl = fname.substring(indexOfUnderscore + 1, fname.lastIndexOf('套')); Map map = this.bctltUpload(lines, fname, req, isupload, tld,f, path); + ydf=(String) map.get("yd"); tld++; if (map.get("zt").equals("02")) { return new ResultBean(map); @@ -275,6 +277,10 @@ public class BomUploadServiceImpl { // del++; } + if("".equals(ydf)){ + this.bomxzjhByDm_bchxylp(czbh,pl,req); + } + // 修正数据 dmYdjhMapper.xzylbs(czbh,pl); dmYdjhMapper.updatezyq(czbh,pl); @@ -1167,6 +1173,7 @@ public class BomUploadServiceImpl { // qw1.eq("dc_fd", fd); pgdTzjhService.update(qw1); }); + map.put("yd","yd"); return map; } @Transactional(rollbackFor = Exception.class) @@ -2114,7 +2121,10 @@ public class BomUploadServiceImpl { String s = (String) kwxxMap.get(tzbh.substring(4, 7)); String zzcj = (String) qgKwMap.get(s); //xhj dmYdjhadd.setKw(zzcj); - dmYdjhadd.setDcFd(StringUtils.isBlank(bchxmxp.getWph()) ? "" : bchxmxp.getWph().substring(0, 4)); + if(null!=bchxmxp){ + dmYdjhadd.setDcFd(StringUtils.isBlank(bchxmxp.getWph()) ? "" : bchxmxp.getWph().substring(0, 4)); + } + dmYdjhadd.setZt("2"); dmYdjhadd.setId(IdWorker.get32UUID()); @@ -2173,4 +2183,318 @@ public class BomUploadServiceImpl { return rMap; } + + public void bomxzjhByDm_bchxylp(String dcch ,String dcpl,HttpServletRequest req ){ + List zllbs = dm_zhbmpRepository.findByBMLB("ZLLB"); + List kwxxs = dm_zhbmpRepository.findByBMLB("KWXX"); + List qgkws = dm_zhbmpRepository.findByBMLB("QGKW"); + Map zllbMap = zllbs.stream().collect(Collectors.toMap(Dm_zhbmp::getBmsm, Dm_zhbmp::getBM)); + Map kwxxMap = kwxxs.stream().collect(Collectors.toMap(Dm_zhbmp::getBM, Dm_zhbmp::getBmsm)); + Map kwmcMap = kwxxs.stream().collect(Collectors.toMap(Dm_zhbmp::getBM, Dm_zhbmp::getZfbz)); + Map qgKwMap = qgkws.stream().collect(Collectors.toMap(Dm_zhbmp::getBmsm, Dm_zhbmp::getBM)); + List bclqmxpList = bclqmxpService.list(new QueryWrapper().eq("DC_CH_z", dcch) + .eq("DC_PL_z", dcpl) + ); + List tjListOld = bchxylpService.list(new QueryWrapper().eq("dc_ch", dcch).eq("dc_pl", dcpl)); + List ydjhs = dmYdjhService.list(new QueryWrapper().eq("dc_ch", dcch ) + .eq("dc_pl",dcpl) + ); + + DmYdjh ydjhMin=null; + Boolean f=true; + if(ydjhs.size()<0){ + f=false; + }else{ + ydjhMin = dmYdjhMapper.getYdjhMin(dcch, dcpl); + } + List czList = dmCbxxpService.list(); + DmCbxxp dmCzjbb = czList.stream().filter(fst -> fst.getCbbm().equalsIgnoreCase(dcch)).findFirst().orElse(null); + String cjs=""; + if(null!=dmCzjbb){ + cjs=dmCzjbb.getCjs(); + } + String cjs1=cjs; + List adds =new ArrayList<>(); + List ups =new ArrayList<>(); + + for(DmBchxylp dmBchxylp :tjListOld){ + boolean aa=false; + for(DmYdjh ydjh :adds){ + if(ydjh.getTzbh().equals(dmBchxylp.getTzbh())){ + aa=true; + continue; + } + } + if(aa){ + continue; + } + DmBchxylp dmBchxylp1 = (DmBchxylp) ObjConvertUtils.checkNullNew(dmBchxylp); + // dmBchxjbp + String wpgg = dmBchxylp1.getWpgg(); + String wpxh = dmBchxylp1.getWpxh(); + String tzbh = dmBchxylp1.getTzbh(); + String hxfl = dmBchxylp1.getHxfl(); + if(StringUtils.isBlank(wpgg)||"hxfl".equals("X")){ + continue; + } + DmYdjh dmYdjh = ydjhs.stream() + .filter(fst -> StringUtils.isNotBlank(fst.getWpgg()) + && StringUtils.isNotBlank(fst.getWpxh()) + && fst.getWpgg().equalsIgnoreCase(dmBchxylp1.getWpgg()) + && (fst.getWpxh().equalsIgnoreCase(dmBchxylp1.getWpxh()) + || (cjs1 + fst.getWpxh()).equalsIgnoreCase(dmBchxylp1.getWpxh()) || ( fst.getWpxh()).equalsIgnoreCase(cjs1 +dmBchxylp1.getWpxh())) + && fst.getTzbh().equalsIgnoreCase(dmBchxylp1.getTzbh()) + ) + .findFirst() + .orElse(null); + if(null!=dmYdjh){ + + String hxlx=""; + if (tzbh.substring(4, 5).equals("S")) { + hxlx = "1010"; + } else if (tzbh.substring(4, 5).equals("N")) { + hxlx = "1020"; + } + + dmYdjh.setLqlb(hxlx); + dmYdjh.setTzbh(tzbh); + //dmYdjh.setHxcd(dmBchxjbp.getHxcd().doubleValue()); + //dmYdjh.setQgcd(dmBchxjbp.getYlzd4().doubleValue()); + // dmYdjh.setLjsl(dmBchxjbp.getLjsl().doubleValue()); + // dmYdjh.setZl(dmBchxjbp.getDcZl()); + String s = (String) kwxxMap.get(tzbh.substring(4, 7)); + String b = (String) kwmcMap.get(tzbh.substring(4, 7)); + dmYdjh.setKwmc(b); + String zzcj = (String) qgKwMap.get(s); //xhj + + dmYdjh.setKw(zzcj); + // if(null!=bchxylp){ + dmYdjh.setYlbs(null==dmBchxylp1.getSfyl()?"":dmBchxylp1.getSfyl()); + // } + + // dmYdjh.setDcFd(dmBchxjbp.getDcFd()); + + if(tzbh.substring(4, 5).equals("X")){ + dmYdjh.setLx("X"); + }else{ + dmYdjh.setLx("B"); + } + // dmYdjh.setDcFd(StringUtils.isBlank(bchxmxp.getWph()) ? "" : bchxmxp.getWph().substring(0, 4)); + dmYdjh.setBmxgrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm")); + dmYdjh.setBmxgry((String) req.getAttribute("yhms")); + if(StringUtils.isNotBlank(dmYdjh.getSlxhth())){ // 说明已经上料 需要修正数据 + // 修正 + + }else{ + // 没上料 规格材质 + dmYdjh.setWpgg(dmBchxylp1.getWpgg()); + dmYdjh.setWpxh(dmBchxylp1.getWpxh()); + } +// if(collect11.size()>0){ +// dmYdjh.setBcylzl(null==collect11.get(0).getYlzl()? null:collect11.get(0).getYlzl().doubleValue()); +// dmYdjh.setBclqzl(null==collect11.get(0).getLqzl()? null:collect11.get(0).getLqzl().doubleValue()); +// dmYdjh.setBcshzl(null==collect11.get(0).getShzl()? null:collect11.get(0).getShzl().doubleValue()); +// dmYdjh.setBcljtlzl(null==collect11.get(0).getLjzl()? null:collect11.get(0).getLjzl().doubleValue()); +// dmYdjh.setBcqpyld(null==collect11.get(0).getQpyld()? null:collect11.get(0).getQpyld().doubleValue()); +// } + + if(f){ + dmYdjh.setSlrq(ydjhMin.getSlrq()); + dmYdjh.setPwrq(ydjhMin.getPwrq()); + dmYdjh.setHxrq(ydjhMin.getHxrq()); + dmYdjh.setQgrq(ydjhMin.getQgrq()); + dmYdjh.setDmrq(ydjhMin.getDmrq()); + dmYdjh.setQjgrq(ydjhMin.getQgjhrq()); + dmYdjh.setJssj(ydjhMin.getJssj()); + dmYdjh.setSljhrq(ydjhMin.getSljhrq()); + dmYdjh.setPwjhrq(ydjhMin.getPwjhrq()); + dmYdjh.setLljhrq(ydjhMin.getLljhrq()); + dmYdjh.setHxjhrq(ydjhMin.getHxjhrq()); + dmYdjh.setQgjhrq(ydjhMin.getQgjhrq()); + } + + ups.add(dmYdjh); + ydjhs.remove(dmYdjh); // 从列表中移除找到的元素 + + }else{ + dmYdjh = ydjhs.stream() + .filter(fst -> StringUtils.isNotBlank(fst.getWpgg()) + && StringUtils.isNotBlank(fst.getWpxh()) + && fst.getWpgg().equalsIgnoreCase(dmBchxylp1.getWpgg()) + && (fst.getWpxh().equalsIgnoreCase(dmBchxylp1.getWpxh()) + || (cjs1 + fst.getWpxh()).equalsIgnoreCase(dmBchxylp1.getWpxh()) || ( fst.getWpxh()).equalsIgnoreCase(cjs1 +dmBchxylp1.getWpxh()) ) + + ) + .findFirst() + .orElse(null); + if(dmYdjh!=null){ + String hxlx=""; + if (tzbh.substring(4, 5).equals("S")) { + hxlx = "1010"; + } else if (tzbh.substring(4, 5).equals("N")) { + hxlx = "1020"; + } +// if(collect11.size()>0) { +// dmYdjh.setBcylzl(null == collect11.get(0).getYlzl() ? null : collect11.get(0).getYlzl().doubleValue()); +// dmYdjh.setBclqzl(null == collect11.get(0).getLqzl() ? null : collect11.get(0).getLqzl().doubleValue()); +// dmYdjh.setBcshzl(null == collect11.get(0).getShzl() ? null : collect11.get(0).getShzl().doubleValue()); +// dmYdjh.setBcljtlzl(null == collect11.get(0).getLjzl() ? null : collect11.get(0).getLjzl().doubleValue()); +// dmYdjh.setBcqpyld(null == collect11.get(0).getQpyld() ? null : collect11.get(0).getQpyld().doubleValue()); +// } + dmYdjh.setLqlb(hxlx); + dmYdjh.setTzbh(tzbh); +// dmYdjh.setHxcd(dmBchxjbp.getHxcd().doubleValue()); +// dmYdjh.setQgcd(dmBchxjbp.getYlzd4().doubleValue()); +// dmYdjh.setLjsl(dmBchxjbp.getLjsl().doubleValue()); +// dmYdjh.setZl(dmBchxjbp.getDcZl()); + // if(null!=bchxylp) { + dmYdjh.setYlbs(null == dmBchxylp1.getSfyl() ? "" : dmBchxylp1.getSfyl()); + // } + String b = (String) kwmcMap.get(tzbh.substring(4, 7)); + dmYdjh.setKwmc(b); + String s = (String) kwxxMap.get(tzbh.substring(4, 7)); + String zzcj = (String) qgKwMap.get(s); //xhj + + dmYdjh.setKw(zzcj); + // dmYdjh.setDcFd(dmBchxjbp.getDcFd()); + + if(tzbh.substring(4, 5).equals("X")){ + dmYdjh.setLx("X"); + }else{ + dmYdjh.setLx("B"); + } + + // dmYdjh.setDcFd(StringUtils.isBlank(bchxmxp.getWph()) ? "" : bchxmxp.getWph().substring(0, 4)); + dmYdjh.setBmxgrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm")); + dmYdjh.setBmxgry((String) req.getAttribute("yhms")); + if(StringUtils.isNotBlank(dmYdjh.getSlxhth())){ // 说明已经上料 需要修正数据 + // 修正 + dmYdjh.setJhlx("3"); + }else{ + // 没上料 规格材质 + dmYdjh.setWpgg(dmBchxylp1.getWpgg()); + dmYdjh.setWpxh(dmBchxylp1.getWpxh()); + } + if(f){ + dmYdjh.setSlrq(ydjhMin.getSlrq()); + dmYdjh.setPwrq(ydjhMin.getPwrq()); + dmYdjh.setHxrq(ydjhMin.getHxrq()); + dmYdjh.setQgrq(ydjhMin.getQgrq()); + dmYdjh.setDmrq(ydjhMin.getDmrq()); + dmYdjh.setQjgrq(ydjhMin.getQgjhrq()); + dmYdjh.setJssj(ydjhMin.getJssj()); + dmYdjh.setSljhrq(ydjhMin.getSljhrq()); + dmYdjh.setPwjhrq(ydjhMin.getPwjhrq()); + dmYdjh.setLljhrq(ydjhMin.getLljhrq()); + dmYdjh.setHxjhrq(ydjhMin.getHxjhrq()); + dmYdjh.setQgjhrq(ydjhMin.getQgjhrq()); + } + ups.add(dmYdjh); + ydjhs.remove(dmYdjh); // 从列表中移除找到的元素 + + }else{ + // 没找到需要把这几条月度计划id 状态改成 -1 + + DmYdjh dmYdjhadd =new DmYdjh(); + String hxlx=""; + if (tzbh.substring(4, 5).equals("S")) { + hxlx = "1010"; + } else if (tzbh.substring(4, 5).equals("N")) { + hxlx = "1020"; + } + dmYdjhadd.setDcCh(dmBchxylp1.getDcCh()); + dmYdjhadd.setDcPl(dmBchxylp1.getDcPl()); + if(tzbh.substring(4, 5).equals("X")){ + dmYdjhadd.setLx("X"); + }else{ + dmYdjhadd.setLx("B"); + } + + dmYdjhadd.setWpgg(dmBchxylp1.getWpgg()); + dmYdjhadd.setWpxh(dmBchxylp1.getWpxh()); + // if(null!=bchxylp){ + dmYdjhadd.setYlbs( null==dmBchxylp1.getSfyl()?"":dmBchxylp1.getSfyl()); + // } +// if(collect11.size()>0) { +// dmYdjhadd.setBcylzl(null == collect11.get(0).getYlzl() ? null : collect11.get(0).getYlzl().doubleValue()); +// dmYdjhadd.setBclqzl(null == collect11.get(0).getLqzl() ? null : collect11.get(0).getLqzl().doubleValue()); +// dmYdjhadd.setBcshzl(null == collect11.get(0).getShzl() ? null : collect11.get(0).getShzl().doubleValue()); +// dmYdjhadd.setBcljtlzl(null == collect11.get(0).getLjzl() ? null : collect11.get(0).getLjzl().doubleValue()); +// dmYdjhadd.setBcqpyld(null == collect11.get(0).getQpyld() ? null : collect11.get(0).getQpyld().doubleValue()); +// } + dmYdjhadd.setLqlb(hxlx); + dmYdjhadd.setTzbh(tzbh); +// dmYdjhadd.setHxcd(dmBchxjbp.getHxcd().doubleValue()); +// dmYdjhadd.setQgcd(dmBchxjbp.getYlzd4().doubleValue()); +// dmYdjhadd.setLjsl(dmBchxjbp.getLjsl().doubleValue()); +// dmYdjhadd.setZl(dmBchxjbp.getDcZl()); + String b = (String) kwmcMap.get(tzbh.substring(4, 7)); + dmYdjhadd.setKwmc(b); + String s = (String) kwxxMap.get(tzbh.substring(4, 7)); + String zzcj = (String) qgKwMap.get(s); //xhj + dmYdjhadd.setKw(zzcj); + // dmYdjhadd.setDcFd(StringUtils.isBlank(bchxmxp.getWph()) ? "" : bchxmxp.getWph().substring(0, 4)); + dmYdjhadd.setZt("2"); + + dmYdjhadd.setId(IdWorker.get32UUID()); + dmYdjhadd.setBmbzrq(DateUtil.format(DateUtil.date(), "yyyy/MM/dd HH:mm")); + dmYdjhadd.setBmbzry((String) req.getAttribute("yhms")); + + // 新增数据得时候 应该看 是不是有排产数据 有排产数据 给上日期 + if(f){ + dmYdjhadd.setSlrq(ydjhMin.getSlrq()); + dmYdjhadd.setPwrq(ydjhMin.getPwrq()); + dmYdjhadd.setHxrq(ydjhMin.getHxrq()); + dmYdjhadd.setQgrq(ydjhMin.getQgrq()); + dmYdjhadd.setDmrq(ydjhMin.getDmrq()); + dmYdjhadd.setQjgrq(ydjhMin.getQgjhrq()); + dmYdjhadd.setJssj(ydjhMin.getJssj()); + dmYdjhadd.setSljhrq(ydjhMin.getSljhrq()); + dmYdjhadd.setPwjhrq(ydjhMin.getPwjhrq()); + dmYdjhadd.setLljhrq(ydjhMin.getLljhrq()); + dmYdjhadd.setHxjhrq(ydjhMin.getHxjhrq()); + dmYdjhadd.setQgjhrq(ydjhMin.getQgjhrq()); + dmYdjhadd.setJhlx("3"); + }else{ + // 新增 没有 日期 数据 + dmYdjhadd.setJhlx("0"); + dmYdjhadd.setSlrq(""); + dmYdjhadd.setPwrq(""); + dmYdjhadd.setHxrq(""); + dmYdjhadd.setQgrq(""); + dmYdjhadd.setDmrq(""); + dmYdjhadd.setQjgrq(""); + dmYdjhadd.setJssj(""); + dmYdjhadd.setSljhrq(""); + dmYdjhadd.setPwjhrq(""); + dmYdjhadd.setLljhrq(""); + dmYdjhadd.setHxjhrq(""); + dmYdjhadd.setQgjhrq(""); + } +// dmYdjhadd + adds.add(dmYdjhadd); + } + + + + + } + } + // rMap.put("adds",adds); + // rMap.put("ups",ups); + // rMap.put("ydjhs",ydjhs); + + dmYdjhService.saveBatch(adds); + dmYdjhService.updateBatchById(ups); + if(ydjhs.size()>0){ + for(DmYdjh dmYdjh:ydjhs){ + DmYdjh dmYdjh1 =new DmYdjh(); + dmYdjh1.setZt("99"); + dmYdjh1.setId(dmYdjh.getId()); + dmYdjhService.updateById(dmYdjh1); + } + } + //return rMap; + } + }