|
|
@ -19,6 +19,8 @@ import com.dsic.gj_erp.pc.dto.sb.*;
|
|
|
|
import com.dsic.gj_erp.pc.dto.tlt.*;
|
|
|
|
import com.dsic.gj_erp.pc.dto.tlt.*;
|
|
|
|
import com.dsic.gj_erp.pc.dto.排产结果;
|
|
|
|
import com.dsic.gj_erp.pc.dto.排产结果;
|
|
|
|
import com.dsic.gj_erp.pc.dto.*;
|
|
|
|
import com.dsic.gj_erp.pc.dto.*;
|
|
|
|
|
|
|
|
import com.dsic.gj_erp.pc.service.工序CD接口;
|
|
|
|
|
|
|
|
import com.dsic.gj_erp.pc.service.设备产能接口;
|
|
|
|
import com.dsic.gj_erp.service.jcsj.EmGcrlService;
|
|
|
|
import com.dsic.gj_erp.service.jcsj.EmGcrlService;
|
|
|
|
import com.dsic.gj_erp.service.jcsj.EmSbcnpService;
|
|
|
|
import com.dsic.gj_erp.service.jcsj.EmSbcnpService;
|
|
|
|
import com.dsic.gj_erp.service.jcsj.EmSbjbbService;
|
|
|
|
import com.dsic.gj_erp.service.jcsj.EmSbjbbService;
|
|
|
@ -34,7 +36,6 @@ import java.util.concurrent.TimeUnit;
|
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
import java.util.concurrent.atomic.AtomicBoolean;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
|
|
|
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.*;
|
|
|
|
|
|
|
|
|
|
|
@ -46,10 +47,16 @@ public class DataFactory {
|
|
|
|
Manager.排产结果=new ArrayList<>();
|
|
|
|
Manager.排产结果=new ArrayList<>();
|
|
|
|
List<钢料需求> list=读取钢料需求();
|
|
|
|
List<钢料需求> list=读取钢料需求();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
工序CD接口 _工序CD接口 = getBean(工序CD接口.class);
|
|
|
|
|
|
|
|
List<工序CD> 工序CDS = _工序CD接口.get();
|
|
|
|
|
|
|
|
Map<Constant.工序,工序CD> 工序CDMap=new HashMap<>();
|
|
|
|
|
|
|
|
工序CDS.forEach(item->工序CDMap.put(item.getGx(),item));
|
|
|
|
|
|
|
|
|
|
|
|
list.forEach(钢料需求 -> {
|
|
|
|
list.forEach(钢料需求 -> {
|
|
|
|
CountDownLatch latch = new CountDownLatch(钢料需求.getBomList().size());
|
|
|
|
CountDownLatch latch = new CountDownLatch(钢料需求.getBomList().size());
|
|
|
|
钢料需求.getBomList().forEach(bom -> {
|
|
|
|
钢料需求.getBomList().forEach(bom -> {
|
|
|
|
套料图工序 _套料图工序 = 套料图工序工厂(bom);
|
|
|
|
套料图工序 _套料图工序 = 套料图工序工厂(bom);
|
|
|
|
|
|
|
|
_套料图工序.set工序CD(工序CDMap);
|
|
|
|
AtomicBoolean atomicBoolean = new AtomicBoolean(false);
|
|
|
|
AtomicBoolean atomicBoolean = new AtomicBoolean(false);
|
|
|
|
if (_套料图工序!=null){
|
|
|
|
if (_套料图工序!=null){
|
|
|
|
_套料图工序.set需求日期(钢料需求.getXzglxq());
|
|
|
|
_套料图工序.set需求日期(钢料需求.getXzglxq());
|
|
|
@ -117,7 +124,7 @@ public class DataFactory {
|
|
|
|
.filter(it -> gx.getCode().contains(it.split("_")[1])).findFirst();
|
|
|
|
.filter(it -> gx.getCode().contains(it.split("_")[1])).findFirst();
|
|
|
|
first.ifPresent(_code -> {
|
|
|
|
first.ifPresent(_code -> {
|
|
|
|
if (ObjUtil.isNotEmpty(套料图工序对应关系.get(_code))) {
|
|
|
|
if (ObjUtil.isNotEmpty(套料图工序对应关系.get(_code))) {
|
|
|
|
Integer cd = 工序CD.get(gx);
|
|
|
|
Integer cd = Constant.工序CD.get(gx);
|
|
|
|
DateTime parse = DateUtil.parse(钢料需求.getXzglxq(), "yyyy/MM/dd");
|
|
|
|
DateTime parse = DateUtil.parse(钢料需求.getXzglxq(), "yyyy/MM/dd");
|
|
|
|
DateTime dateTime = DateUtil.offsetDay(parse, cd);
|
|
|
|
DateTime dateTime = DateUtil.offsetDay(parse, cd);
|
|
|
|
资源 _资源 = 提取资源(dateTime);
|
|
|
|
资源 _资源 = 提取资源(dateTime);
|
|
|
@ -297,70 +304,54 @@ public class DataFactory {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public static 工序产能 工序产能工厂(Constant.工序 _工序) {
|
|
|
|
public static 工序产能 工序产能工厂(Constant.工序 _工序) {
|
|
|
|
Map<String, 设备> _设备 = null;
|
|
|
|
设备产能接口 _设备产能接口 = getBean(设备产能接口.class);
|
|
|
|
|
|
|
|
List<设备产能> 设备产能 = _设备产能接口.get();
|
|
|
|
|
|
|
|
Map<String, 设备> _设备;
|
|
|
|
|
|
|
|
ImmutableMap.Builder<String, 设备> builder = ImmutableMap.builder();
|
|
|
|
switch (_工序) {
|
|
|
|
switch (_工序) {
|
|
|
|
case 上料:
|
|
|
|
case 上料:
|
|
|
|
_设备 = ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备01上料(item)));
|
|
|
|
.put(Constant.设备产能.上料01.设备编号, new 设备01上料(Constant.设备产能.上料01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序01上料(_设备);
|
|
|
|
return new 工序01上料(_设备);
|
|
|
|
case 抛丸:
|
|
|
|
case 抛丸:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备02抛丸(item)));
|
|
|
|
.put(Constant.设备产能.抛丸01.设备编号,new 设备02抛丸(Constant.设备产能.抛丸01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序02抛丸(_设备);
|
|
|
|
return new 工序02抛丸(_设备);
|
|
|
|
case 理料:
|
|
|
|
case 理料:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备03理料(item)));
|
|
|
|
.put(Constant.设备产能.理料01.设备编号,new 设备03理料(Constant.设备产能.理料01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序03理料(_设备);
|
|
|
|
return new 工序03理料(_设备);
|
|
|
|
case 划线:
|
|
|
|
case 划线:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备04划线(item)));
|
|
|
|
.put(Constant.设备产能.划线01.设备编号,new 设备04划线(Constant.设备产能.划线01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序04划线(_设备);
|
|
|
|
return new 工序04划线(_设备);
|
|
|
|
case 切割:
|
|
|
|
case 切割:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备05切割(item)));
|
|
|
|
.put(Constant.设备产能.龙门01.设备编号,new 设备05切割(Constant.设备产能.龙门01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.put(Constant.设备产能.火焰01.设备编号,new 设备05切割(Constant.设备产能.火焰01))
|
|
|
|
|
|
|
|
.put(Constant.设备产能.数控01.设备编号,new 设备05切割(Constant.设备产能.数控01))
|
|
|
|
|
|
|
|
.put(Constant.设备产能.火焰03.设备编号,new 设备05切割(Constant.设备产能.火焰03))
|
|
|
|
|
|
|
|
.put(Constant.设备产能.数控03.设备编号,new 设备05切割(Constant.设备产能.数控03))
|
|
|
|
|
|
|
|
.put(Constant.设备产能.龙门03.设备编号,new 设备05切割(Constant.设备产能.龙门03))
|
|
|
|
|
|
|
|
.put(Constant.设备产能.火焰02.设备编号,new 设备05切割(Constant.设备产能.火焰02))
|
|
|
|
|
|
|
|
.put(Constant.设备产能.数控02.设备编号,new 设备05切割(Constant.设备产能.数控02))
|
|
|
|
|
|
|
|
.put(Constant.设备产能.龙门02.设备编号,new 设备05切割(Constant.设备产能.龙门02))
|
|
|
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序05切割(_设备);
|
|
|
|
return new 工序05切割(_设备);
|
|
|
|
case 坡口:
|
|
|
|
case 坡口:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备07坡口(item)));
|
|
|
|
.put(Constant.设备产能.坡口01.设备编号,new 设备07坡口(Constant.设备产能.坡口01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序07坡口(_设备);
|
|
|
|
return new 工序07坡口(_设备);
|
|
|
|
case 型材面板:
|
|
|
|
case 型材面板:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备10型材(item)));
|
|
|
|
.put(Constant.设备产能.型材01.设备编号,new 设备10型材(Constant.设备产能.型材01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序10型材(_设备);
|
|
|
|
return new 工序10型材(_设备);
|
|
|
|
case 曲型:
|
|
|
|
case 曲型:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备08曲面(item)));
|
|
|
|
.put(Constant.设备产能.曲加工01.设备编号,new 设备08曲面(Constant.设备产能.曲加工01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序08曲面(_设备);
|
|
|
|
return new 工序08曲面(_设备);
|
|
|
|
case 打磨:
|
|
|
|
case 打磨:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备09打磨(item)));
|
|
|
|
.put(Constant.设备产能.打磨01.设备编号, new 设备09打磨(Constant.设备产能.打磨01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序09打磨(_设备);
|
|
|
|
return new 工序09打磨(_设备);
|
|
|
|
case 自由边处理:
|
|
|
|
case 自由边处理:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备21自由边处理(item)));
|
|
|
|
.put(Constant.设备产能.自由边处理01.设备编号, new 设备21自由边处理(Constant.设备产能.自由边处理01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序21自由边处理(_设备);
|
|
|
|
return new 工序21自由边处理(_设备);
|
|
|
|
case 光电结束:
|
|
|
|
case 光电结束:
|
|
|
|
_设备=ImmutableMap.<String, 设备>builder()
|
|
|
|
设备产能.stream().filter(item->item.get_工序()==_工序).forEach(item->builder.put(item.getCode(),new 设备31光电(item)));
|
|
|
|
.put(Constant.设备产能.光电01.设备编号, new 设备31光电(Constant.设备产能.光电01))
|
|
|
|
_设备 = builder.build();
|
|
|
|
.build();
|
|
|
|
|
|
|
|
return new 工序31光电(_设备);
|
|
|
|
return new 工序31光电(_设备);
|
|
|
|
// case 预配盘:
|
|
|
|
// case 预配盘:
|
|
|
|
// return new 工序01上料(_工序,_设备);
|
|
|
|
// return new 工序01上料(_工序,_设备);
|
|
|
|