1.临时提交

master
董哲奇 8 months ago
parent 63f940a69c
commit 56a4f65267

@ -412,107 +412,6 @@ public class DataFactory {
return map.get(dcch); return map.get(dcch);
} }
public static void () {
.clear();
List<> list = .list;
List<DmBom> = new ArrayList<>();
list.clear();
List<DmSygdxq> = getBean(DmSygdxqService.class).getXqWithBom(from, to);
.forEach( -> {
.getBomList().forEach(bom -> {
Arrays.stream(Constant..values()).forEach(gx -> {
if (StrUtil.isEmpty(gx.getCode())) return;
//todo 由于工序code存在多个值的情况,这里需要抽象套料图工序,修改后同时可支持多线程运算
Optional<String> first = .keySet().stream()
.filter(it -> it.startsWith(bom.getKw() + bom.getZl()))
.filter(it -> gx.getCode().contains(it.split("_")[1])).findFirst();
first.ifPresent(_code -> {
if (ObjUtil.isNotEmpty(.get(_code))) {
Integer cd = Constant.CD.get(gx);
DateTime parse = DateUtil.parse(.getXzglxq(), "yyyy/MM/dd");
DateTime dateTime = DateUtil.offsetDay(parse, cd);
_ = (dateTime);
//除切割工序外默认需求数量都是1
//todo 如果是切割工序需要获取切割长度
double = bom.getTlsl().doubleValue();
Optional.of(_).ifPresent(it -> {
= null;
= .get(bom.getTzbh());
if ( != null) {
= .getMAP().get(gx);
}
if ( != null && .get().contains(bom.getTzbh())) {
bom.set(it);
Optional<> _ = .(bom.getTzbh());
_.ifPresent(bom::set);
} else {
= it.getMAP().get(gx);
Optional<> _ = .();
final = ;
_.ifPresent(tmp -> {
bom.set(tmp);
tmp.(bom.getTzbh(), );
bom.set(it);
final.(bom.getTzbh(), );
.put(bom.getTzbh(), it);
});
}
});
//没有可用资源是全局搜索可用资源,进行排产
if (bom.get() == null) {
Optional<> = (gx, DateUtil.parse(from, "yyyy/MM/dd"), parse, );
.ifPresent(tmp -> {
_ = tmp.getMAP().get(gx);
Optional<> _ = _.(0);
_.ifPresent(tmp -> {
tmp.(bom.getTzbh(), );
bom.set(tmp);
_.(bom.getTzbh(), );
bom.set(tmp);
.put(bom.getTzbh(), tmp);
});
});
}
//没有可用资源放入月末(强占),待手工调整
if (bom.get() == null) {
.add(bom);
tmp = (DateUtil.endOfMonth(DateUtil.parse(.getXzglxq(), "yyyy/MM/dd")));
_ = tmp.getMAP().get(gx);
Optional<> _ = _.get().values().stream().findAny();
bom.set(_.orElse(null));
bom.set(tmp);
_.(bom.getTzbh(), 0);
.put(bom.getTzbh(), tmp);
}
}
});
});
});
});
// Manager.排产结果=按需求日期排序的钢料需求;
//========调试打印===========
.forEach((day,item)->{
System.out.println("====打印资源===");
System.out.println(day);
Map<Constant., > MAP = item.getMAP();
MAP.forEach((,)->{
if (.get().size()>0){
System.out.println("工序:"+);
if ("2024/06/03".equals(day)){
System.out.println(.get());
}
System.out.println("工序产能:"+.get().size());
}
});
System.out.println("====打印资源完成===");
});
System.out.println(.size());
//========调试打印结束===========
}
public static Optional<> (Constant. ,Date ,Date , double ){ public static Optional<> (Constant. ,Date ,Date , double ){
return .values().stream().filter(->{ return .values().stream().filter(->{
= .getMAP().get(); = .getMAP().get();

Loading…
Cancel
Save