1.修正排产均衡日期错误问题

2.月度计划审核生成作业计划时根据已存在作业计划进行修正
3.作业计划执行反馈时间精确到秒
master
董哲奇 6 months ago
parent 9fa85e2a5d
commit cecf3ca15f

@ -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;
}

@ -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);

@ -160,8 +160,10 @@ public class DataFactory {
AtomicReference<> _tmp= new AtomicReference<>();
//查找最小可用资源,进行占用
tmpList.sort(Comparator.comparingDouble((tmp)->tmp.getMAP().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());

@ -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所在资源(_资源);

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

@ -101,14 +101,23 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
return dmSygdMx;
}).collect(Collectors.toList());
this.updateBatchById(collect);
//获取已存在作业计划
List<DmYdjh> oldYdjhList = this.ydjhService.list(Wrappers.<DmYdjh>lambdaQuery().between(DmYdjh::getJssj, from, to));
//生成作业计划
this.generateYdjh(sygdMxes);
List<DmYdjh> dmYdjhs = this.generateYdjh(sygdMxes, oldYdjhList);
ydjhService.saveOrUpdateBatch(dmYdjhs);
}
}
@Transactional(rollbackFor = Exception.class)
public void generateYdjh(List<DmSygdMx> sygdMxes) {
List<DmYdjh> ydjhList = sygdMxes.stream().map(item -> {
private List<DmYdjh> generateYdjh(List<DmSygdMx> sygdMxes,List<DmYdjh> oldYdjhList){
Map<String, DmYdjh> 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<DmSygdMxMapper, DmSygdMx> 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<String,List<EmGcrlDto>> getMxMap(String begin,String end){
@ -984,11 +995,11 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
}
public List<DmYdjhxf> tqSygd2(String begin,String end,String zt){
List<String> slkw=Arrays.asList("7","8","9","5","6","15","11","14");
List<String> slkw=Arrays.asList("7","8","9","5","10","6","15","11","12","13","14");
List<DmSygdMx> list = this.list(Wrappers.<DmSygdMx>lambdaQuery()
.eq(StrUtil.isNotEmpty(zt),DmSygdMx::getZt,zt)
.between(DmSygdMx::getJssj, begin, end)
.orderBy(true,true,DmSygdMx::getSlrq)
.orderByAsc(DmSygdMx::getSlrq)
);
Map<String, List<DmSygdMx>> collect = list.stream().collect(Collectors.groupingBy(item -> item.getDcCh() +"_"+ item.getDcPl()));

@ -229,7 +229,7 @@ public class DmSygdxqServiceImpl extends ServiceImpl<DmSygdxqMapper, DmSygdxq> 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()));
}
}
}

Loading…
Cancel
Save