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 aebd99f..d3ac185 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 @@ -1,5 +1,6 @@ package com.dsic.gj_erp.bean.jhgk; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -358,6 +359,11 @@ public class DmYdjh implements Serializable { private String kcbs; // 库存标识 + public String getUniqueData(){ + return StrUtil.format("{}_{}_{}_{}",this.dcCh,this.dcPl,this.dcFd,this.tzbh); + } + + public void setZtForSl(){ this.zt=ZyjhzxEnum.SLFK.code; } diff --git a/src/main/java/com/dsic/gj_erp/controller/zyjh/ZyjhController.java b/src/main/java/com/dsic/gj_erp/controller/zyjh/ZyjhController.java index 7e3351e..6c92c67 100644 --- a/src/main/java/com/dsic/gj_erp/controller/zyjh/ZyjhController.java +++ b/src/main/java/com/dsic/gj_erp/controller/zyjh/ZyjhController.java @@ -54,7 +54,7 @@ public class ZyjhController { Field field=DmYdjh.class.getDeclaredField(dto.getField()); if (ObjUtil.isNotEmpty(field)){ field.setAccessible(true); - String date=DateUtil.date().toString("yyyy/MM/dd"); + String date=DateUtil.date().toString("yyyy/MM/dd HH:mm:ss"); for(DmYdjh dmYdjh:list){ field.set(dmYdjh,date); dmYdjh.setJhlx(null); diff --git a/src/main/java/com/dsic/gj_erp/pc/DataFactory.java b/src/main/java/com/dsic/gj_erp/pc/DataFactory.java index 06c8eee..775ab21 100644 --- a/src/main/java/com/dsic/gj_erp/pc/DataFactory.java +++ b/src/main/java/com/dsic/gj_erp/pc/DataFactory.java @@ -160,8 +160,10 @@ public class DataFactory { AtomicReference<资源> _tmp= new AtomicReference<>(); //查找最小可用资源,进行占用 tmpList.sort(Comparator.comparingDouble((tmp)->tmp.get工序产能MAP().get(Constant.工序.切割).get占用())); + tmpList.stream().findFirst().ifPresent(tmp->{ - 执行排产(item.getBomList(),tmp.get_date(),工序CDMap); + DateTime dateTime = DateUtil.offsetDay(tmp.get_date(), 7); + 执行排产(item.getBomList(),dateTime,工序CDMap); _tmp.set(tmp); }); _资源=_tmp.get(); @@ -188,10 +190,6 @@ public class DataFactory { for (Bom bom:list){ 套料图工序 _套料图工序 = 套料图工序工厂(bom); - if ("G175K-12".equals(bom.getDcch())&&"077".equals(bom.getPl())){ - System.out.println(参照需求日期); - } - if (_套料图工序==null){ latch.countDown(); log.info("船号:{},批次:{},图纸编号:{},无法找到对应套料图",bom.getDcch(),bom.getPl(),bom.getTzbh()); diff --git a/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java b/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java index 3bdfb0d..d24854a 100644 --- a/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java +++ b/src/main/java/com/dsic/gj_erp/pc/dto/套料图工序.java @@ -188,9 +188,6 @@ public abstract class 套料图工序 implements 套料图工序接口 { Integer cd = 工序CD.get(_工序).getCd(); DateTime dateTime = DateUtil.offsetDay(this._需求日期, cd); 资源 _资源 = 提取资源(dateTime); - if ("G175K-12".equals(bom.getDcch())&&"077".equals(bom.getPl())&&_工序== Constant.工序.切割){ - System.out.println(_资源); - } try { if (_资源.占用资源(_工序,this.bom,需求数量)){ // this.bom.set所在资源(_资源); diff --git a/src/main/java/com/dsic/gj_erp/pc/dto/设备.java b/src/main/java/com/dsic/gj_erp/pc/dto/设备.java index 372ab02..b4eb4db 100644 --- a/src/main/java/com/dsic/gj_erp/pc/dto/设备.java +++ b/src/main/java/com/dsic/gj_erp/pc/dto/设备.java @@ -81,6 +81,5 @@ public abstract class 设备 implements 设备接口 { public static void main(String[] args) { int d=-7; DateTime offset = DateUtil.date().offset(DateField.DAY_OF_YEAR, -d); - System.out.println(offset.toDateStr()); } } diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java index 0d1e7bc..311b211 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java @@ -101,14 +101,23 @@ public class DmSygdMxServiceImpl extends ServiceImpl i return dmSygdMx; }).collect(Collectors.toList()); this.updateBatchById(collect); + + //获取已存在作业计划 + List oldYdjhList = this.ydjhService.list(Wrappers.lambdaQuery().between(DmYdjh::getJssj, from, to)); + //生成作业计划 - this.generateYdjh(sygdMxes); + List dmYdjhs = this.generateYdjh(sygdMxes, oldYdjhList); + ydjhService.saveOrUpdateBatch(dmYdjhs); } } - @Transactional(rollbackFor = Exception.class) - public void generateYdjh(List sygdMxes) { - List ydjhList = sygdMxes.stream().map(item -> { + private List generateYdjh(List sygdMxes,List oldYdjhList){ + + Map collect = oldYdjhList.stream().collect( + Collectors.collectingAndThen(Collectors.toMap(DmYdjh::getUniqueData, item -> item), map -> map) + ); + + return sygdMxes.stream().map(item -> { DmYdjh dmYdjh = new DmYdjh(); BeanUtil.copyProperties(item, dmYdjh); dmYdjh.setSljhrq(item.getSlrq()); @@ -116,29 +125,31 @@ public class DmSygdMxServiceImpl extends ServiceImpl i dmYdjh.setHxjhrq(item.getHxrq()); dmYdjh.setQgjhrq(item.getQgrq()); dmYdjh.setZt("0"); - return dmYdjh; - }).collect(Collectors.toList()); - ydjhList.forEach(l->{ - if (StrUtil.isAllNotEmpty(l.getXzglxq(),l.getJssj())){ + DmYdjh _dmYdjh = collect.get(dmYdjh.getUniqueData()); + if (_dmYdjh != null){ + dmYdjh.setId(_dmYdjh.getId()); + dmYdjh.setZt(_dmYdjh.getZt()); + } + if (StrUtil.isAllNotEmpty(dmYdjh.getXzglxq(),dmYdjh.getJssj())){ //状态 2拖期 1提前 3追加 - if (l.getXzglxq().compareTo(l.getJssj())<0){ - if (!DateUtil.isSameMonth(DateUtil.parseDate(l.getXzglxq()),DateUtil.parseDate(l.getJssj()))){ - l.setJhlx("3"); + if (dmYdjh.getXzglxq().compareTo(dmYdjh.getJssj())<0){ + if (!DateUtil.isSameMonth(DateUtil.parseDate(dmYdjh.getXzglxq()),DateUtil.parseDate(dmYdjh.getJssj()))){ + dmYdjh.setJhlx("3"); }else { - l.setJhlx("1"); + dmYdjh.setJhlx("1"); } } - if (l.getXzglxq().compareTo(l.getJssj())>0){ - l.setJhlx("2"); + if (dmYdjh.getXzglxq().compareTo(dmYdjh.getJssj())>0){ + dmYdjh.setJhlx("2"); } - l.setJssjOld(StrUtil.isEmpty(l.getJssj())?"":l.getJssj()); - l.setJssj(l.getXzglxq()); + dmYdjh.setJssjOld(StrUtil.isEmpty(dmYdjh.getJssj())?"":dmYdjh.getJssj()); + dmYdjh.setJssj(dmYdjh.getXzglxq()); } - if (StrUtil.isEmpty(l.getTzbh())){ - l.setJhlx("3"); + if (StrUtil.isEmpty(dmYdjh.getTzbh())){ + dmYdjh.setJhlx("3"); } - }); - ydjhService.saveBatch(ydjhList); + return dmYdjh; + }).collect(Collectors.toList()); } public Map> getMxMap(String begin,String end){ @@ -984,11 +995,11 @@ public class DmSygdMxServiceImpl extends ServiceImpl i } public List tqSygd2(String begin,String end,String zt){ - List slkw=Arrays.asList("7","8","9","5","6","15","11","14"); + List slkw=Arrays.asList("7","8","9","5","10","6","15","11","12","13","14"); List list = this.list(Wrappers.lambdaQuery() .eq(StrUtil.isNotEmpty(zt),DmSygdMx::getZt,zt) .between(DmSygdMx::getJssj, begin, end) - .orderBy(true,true,DmSygdMx::getSlrq) + .orderByAsc(DmSygdMx::getSlrq) ); Map> collect = list.stream().collect(Collectors.groupingBy(item -> item.getDcCh() +"_"+ item.getDcPl())); diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java index 3ed205a..c218d8f 100644 --- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java +++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdxqServiceImpl.java @@ -229,7 +229,7 @@ public class DmSygdxqServiceImpl extends ServiceImpl i xq.setBomList(bomList); } if (ObjUtil.isEmpty(xq.getBomList())){ - throw new ServiceException(10001,StrUtil.format("船只:{},批次{}无法从系列船或订货清单获取基础数据,请先核对数据后再次排产!",xq.getDcCh(),xq.getDcPl())); + //throw new ServiceException(10001,StrUtil.format("船只:{},批次{}无法从系列船或订货清单获取基础数据,请先核对数据后再次排产!",xq.getDcCh(),xq.getDcPl())); } } }