1.提高设备产能

2.优化排产算法结果记录逻辑及日志输入出
3.增加自由边处理工序及设备定义
master
董哲奇 2 years ago
parent 971e71b59b
commit d22bd9ecdd

@ -29,27 +29,29 @@ public interface Constant {
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
enum 设备产能{ enum 设备产能{
上料01(工序.上料,"上料01","",0,0,200.0,200.0,400), 上料01(工序.上料,"上料01","",0,0,500.0,400.0,400),
抛丸01(工序.抛丸,"抛丸01","",0,0,240.0,286.0,526.0), 抛丸01(工序.抛丸,"抛丸01","",0,0,480.0,286.0,526.0),
理料01(工序.理料,"理料01","",0,0,240.0,286.0,526.0), 理料01(工序.理料,"理料01","",0,0,480.0,286.0,526.0),
划线01(工序.划线,"划线01","",0,0,240.0,286.0,526.0), 划线01(工序.划线,"划线01","",0,0,480.0,286.0,526.0),
龙门01(工序.切割,"龙门01","",2.4,3.6,19.6,15.6,25.2), 龙门01(工序.切割,"龙门01","",2.4,3.6,40,15.6,25.2),
火焰01(工序.切割,"火焰01","",0.3,11.15,2.0,0,2.0), 火焰01(工序.切割,"火焰01","",0.3,11.15,40.0,0,2.0),
数控01(工序.切割,"数控01","",1.5,3.0,0,8.5,8.5), 数控01(工序.切割,"数控01","",1.5,3.0,0,8.5,8.5),
火焰03(工序.切割, "火焰03", "", 0.3, 11.5, 12.0, 0, 2.0), 火焰03(工序.切割, "火焰03", "", 0.3, 11.5, 40.0, 0, 2.0),
数控03(工序.切割, "数控03", "", 2.0, 4.2, 0, 14.0, 14.0), 数控03(工序.切割, "数控03", "", 2.0, 4.2, 0, 14.0, 14.0),
龙门03(工序.切割, "龙门03", "", 1.6, 3.2, 17.2, 11.2, 18.4), 龙门03(工序.切割, "龙门03", "", 1.6, 3.2, 40.0, 11.2, 18.4),
火焰02(工序.切割, "火焰02", "", 0.3, 11.5, 13.9, 0, 3.9), 火焰02(工序.切割, "火焰02", "", 0.3, 11.5, 40.0, 0, 3.9),
数控02(工序.切割, "数控02", "", 1.4, 3.0, 0, 18.2, 18.2), 数控02(工序.切割, "数控02", "", 1.4, 3.0, 0, 18.2, 18.2),
龙门02(工序.切割, "龙门02", "", 2.0, 3.0, 20.0, 13.0, 13.0), 龙门02(工序.切割, "龙门02", "", 2.0, 3.0, 40.0, 13.0, 13.0),
坡口01(工序.坡口, "坡口01", "", 2.0, 3.0, 50.0, 13.0, 13.0), 坡口01(工序.坡口, "坡口01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
型材01(工序.型材面板, "型材01", "", 2.0, 3.0, 50.0, 13.0, 13.0), 型材01(工序.型材面板, "型材01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
曲加工01(工序.曲型, "曲加工01", "", 2.0, 3.0, 10.0, 13.0, 13.0), 曲加工01(工序.曲型, "曲加工01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
打磨01(工序.打磨, "打磨01", "", 2.0, 3.0, 10.0, 13.0, 13.0), 打磨01(工序.打磨, "打磨01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
未知01(工序.NULL, "未知01", "", 2.0, 3.0, 10.0, 13.0, 13.0),
自由边处理01(工序.自由边处理, "自由边处理01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
未知01(工序.NULL, "未知01", "", 2.0, 3.0, 100.0, 13.0, 13.0),
; ;
public 工序 _工序; public 工序 _工序;
public String 设备编号; public String 设备编号;
@ -69,14 +71,14 @@ public interface Constant {
理料("21"), 理料("21"),
划线("01"), 划线("01"),
切割("03,04,05,06"), 切割("03,04,05,06"),
// 一跨龙门切割("03"),一跨数控切割("04"),二跨数控切割("04"),三跨数控切割("04"),三跨平铁切割("05"),手工切割("06"), //一跨龙门切割("03"),一跨数控切割("04"),二跨数控切割("04"),三跨数控切割("04"),三跨平铁切割("05"),手工切割("06"),
坡口("08"), 坡口("08"),
型材面板("17"), 型材面板("17"),
自由边处理("14,15"), 自由边处理("14,15"),
曲型("18"), 曲型("18"),
打磨("13,16"), 打磨("13,16"),
号料("02"), 号料("02"),
// 平铁打磨("13"),手工打磨("16"), //平铁打磨("13"),手工打磨("16"),
倒棱("09"), 倒棱("09"),
切端头("11"), 切端头("11"),
预配盘(""), 预配盘(""),

@ -24,6 +24,7 @@ import com.dsic.gj_erp.service.jcsj.EmSbcnpService;
import com.dsic.gj_erp.service.jcsj.EmSbjbbService; import com.dsic.gj_erp.service.jcsj.EmSbjbbService;
import com.dsic.gj_erp.service.jhgk.DmSygdxqService; import com.dsic.gj_erp.service.jhgk.DmSygdxqService;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import lombok.extern.slf4j.Slf4j;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.OutputStream; import java.io.OutputStream;
@ -38,6 +39,7 @@ import static com.dsic.gj_erp.pc.Constant.工序CD;
import static com.dsic.gj_erp.pc.Manager.排产; import static com.dsic.gj_erp.pc.Manager.排产;
import static com.dsic.gj_erp.pc.Manager.*; import static com.dsic.gj_erp.pc.Manager.*;
@Slf4j
public class DataFactory { public class DataFactory {
public static void 排产2() { public static void 排产2() {
@ -76,6 +78,9 @@ public class DataFactory {
} }
}); });
清理冗余数据(list); 清理冗余数据(list);
if (Manager.排产结果.size()>0){
log.info("排产异常--{}个未完整排产,{}",Manager.排产结果.size(),Manager.排产结果);
}
} }
private static void 清理冗余数据(List<钢料需求> list){ private static void 清理冗余数据(List<钢料需求> list){
@ -348,6 +353,11 @@ public class DataFactory {
.put(Constant.设备产能.打磨01.设备编号, new 设备09打磨(Constant.设备产能.打磨01)) .put(Constant.设备产能.打磨01.设备编号, new 设备09打磨(Constant.设备产能.打磨01))
.build(); .build();
return new 工序09打磨(_设备); return new 工序09打磨(_设备);
case 自由边处理:
_设备=ImmutableMap.<String, 设备>builder()
.put(Constant.设备产能.自由边处理01.设备编号, new 设备21自由边处理(Constant.设备产能.自由边处理01))
.build();
return new 工序21自由边处理(_设备);
// case 预配盘: // case 预配盘:
// return new 工序01上料(_工序,_设备); // return new 工序01上料(_工序,_设备);
// case 光电结束: // case 光电结束:

@ -0,0 +1,33 @@
package com.dsic.gj_erp.pc.dto.gx;
import com.dsic.gj_erp.pc.Constant;
import com.dsic.gj_erp.pc.dto.工序产能;
import com.dsic.gj_erp.pc.dto.设备;
import lombok.Getter;
import lombok.Setter;
import java.util.Map;
@Getter
@Setter
public class 工序21自由边处理 extends 工序产能 {
public 工序21自由边处理(Map<String, 设备> _设备) {
super(Constant.工序.自由边处理,_设备);
}
@Override
public void 计算工作量() {
this.产能=0;
if (this.白班时长>0){
this.产能+=this.白班时长*Constant.设备产能.型材01.get白班设备产能()/7.0;
}
if (this.二班时长>0){
this.产能+=this.二班时长*Constant.设备产能.型材01.get二班设备产能()/7.0;
}
}
@Override
public void 占用资源(double 所需产能) {
super.占用资源(所需产能);
}
}

@ -0,0 +1,11 @@
package com.dsic.gj_erp.pc.dto.sb;
import com.dsic.gj_erp.pc.Constant;
import com.dsic.gj_erp.pc.dto.设备;
public class 设备21自由边处理 extends 设备 {
public 设备21自由边处理(Constant.设备产能 _设备产能) {
super(_设备产能);
}
}

@ -50,13 +50,13 @@ public abstract class 套料图工序 implements 套料图工序接口 {
this.bom.get已排工序().add(0,_工序); this.bom.get已排工序().add(0,_工序);
} }
}); });
if (bom.get已排工序().size()==0) {
Manager.排产结果.add(this.bom);
atomicBoolean.set(true);
}
} }
}); });
//排产失败相关记录
if (bom.get已排工序().size()!=this.工序.size()) {
Manager.排产结果.add(this.bom);
atomicBoolean.set(true);
}
} }
protected boolean 占用资源(Constant.工序 _工序,double 需求数量){ protected boolean 占用资源(Constant.工序 _工序,double 需求数量){

Loading…
Cancel
Save