1.排产临时提交

master
董哲奇 1 year ago
parent cb15bc0cb3
commit 65b67912b7

@ -3,6 +3,7 @@ package com.dsic.gj_erp.bean.jcsj;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.dsic.gj_erp.pc.dto.;
import com.dsic.gj_erp.pc.dto.;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
@ -222,4 +223,7 @@ public class DmBom implements Serializable {
@TableField(exist = false)
private ;
@TableField(exist = false)
private ;
}

@ -1,8 +1,8 @@
package com.dsic.gj_erp.pc;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
import com.dsic.gj_erp.pc.dto.sb.01;
import com.dsic.gj_erp.pc.dto.sb.02;
import com.dsic.gj_erp.pc.dto.sb.05;
import com.dsic.gj_erp.pc.dto.;
import com.google.common.collect.ImmutableMap;
import lombok.AllArgsConstructor;
@ -12,27 +12,27 @@ import java.util.Map;
public interface Constant {
//手动配置,后期可根据设备进行计算(计算方式根据所有设备的产能合并后的结果,设备维护时不计入产能,休息日产能默认为0)
ImmutableMap<, Double> = ImmutableMap.<, Double>builder()
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(.线, 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.put(., 200.0)
.build();
// ImmutableMap<工序, Double> 工序产能 = ImmutableMap.<工序, Double>builder()
// .put(工序.上料, 200.0)
// .put(工序.抛丸, 200.0)
// .put(工序.理料, 200.0)
// .put(工序.划线, 200.0)
//
// .put(工序.一跨龙门切割, 200.0)
// .put(工序.一跨数控切割, 200.0)
// .put(工序.二跨数控切割, 200.0)
// .put(工序.三跨数控切割, 200.0)
// .put(工序.三跨平铁切割, 200.0)
// .put(工序.手工切割, 200.0)
//
// .put(工序.坡口, 200.0)
// .put(工序.型材面板, 200.0)
// .put(工序.曲加工, 200.0)
// .put(工序.平铁打磨, 200.0)
// .put(工序.手工打磨, 200.0)
// .put(工序.预配盘, 200.0)
// .put(工序.光电结束, 200.0)
// .build();
//相对于钢料需求期
ImmutableMap<, Integer> CD = ImmutableMap.<, Integer>builder()
@ -40,19 +40,11 @@ public interface Constant {
.put(., -8)
.put(., -8)
.put(.线, -5)
.put(., -5)
.put(., -5)
.put(., -5)
.put(., -5)
.put(., -5)
.put(., -5)
.put(., -5)
.put(., -3)
.put(., -2)
.put(., -5)
.put(., -5)
.put(., -5)
.put(., -5)
.put(., 0)
.put(., -3)
.put(., 0)
@ -81,38 +73,64 @@ public interface Constant {
ImmutableMap<, Map<String, >> = ImmutableMap.<, Map<String, >>builder()
//二跨超长超宽曲板小组
.put(., ImmutableMap.<String, >builder()
.put("",new 01())
.put(.01.,new 01(.01))
.build())
.put(., ImmutableMap.<String, >builder()
.put("",new 02())
.put(.01.,new 02(.01))
.build())
.put(., ImmutableMap.<String, >builder()
.put(.01.,new 02(.01))
.build())
.put(.线, ImmutableMap.<String, >builder()
.put(.线01.,new 02(.线01))
.build())
.put(., ImmutableMap.<String, >builder()
.put(.01.,new 05(.01))
.put(.01.,new 05(.01))
.put(.01.,new 05(.01))
.put(.03.,new 05(.03))
.put(.03.,new 05(.03))
.put(.03.,new 05(.03))
.put(.02.,new 05(.02))
.put(.02.,new 05(.02))
.put(.02.,new 05(.02))
.build())
.put(., ImmutableMap.<String, >builder()
.put("",new 02(.01))
.build())
.put(., ImmutableMap.<String, >builder()
.put("",new 02(.01))
.build())
.put(., ImmutableMap.<String, >builder()
.put("",new 02(.01))
.build())
.put(., ImmutableMap.<String, >builder()
.put("",new 02(.01))
.build())
// .put(工序.抛丸, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.理料, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.划线, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
//
// .put(工序.一跨龙门切割, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.一跨数控切割, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.二跨数控切割, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.三跨数控切割, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.三跨平铁切割, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
//
// .put(工序.坡口, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.型材面板, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.曲加工, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.平铁打磨, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.手工打磨, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.预配盘, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.光电结束, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
// .put(工序.配送, new EmSbjbb[]{new EmSbjbb(), new EmSbjbb()})
.build();
@Getter
@AllArgsConstructor
enum {
SLSB01(.,"","",0,0,200.0,200.0,400),
PWSB01(.,"","",0,0,240.0,286.0,526.0),
LM01(.,"","",2.4,3.6,9.6,15.6,25.2),
01(.,"","",0.3,11.5,2.0,0,2.0),
01(.,"","",1.5,3.0,0,8.5,25.5),
01(.,"","",0,0,200.0,200.0,400),
01(.,"","",0,0,240.0,286.0,526.0),
01(.,"","",0,0,240.0,286.0,526.0),
线01(.线,"","",0,0,240.0,286.0,526.0),
01(.,"","",2.4,3.6,9.6,15.6,25.2),
01(.,"","",0.3,11.5,2.0,0,2.0),
01(.,"","",1.5,3.0,0,8.5,8.5),
03(.,"","",0.3,11.5,2.0,0,2.0),
03(.,"","",2.0,4.2,0,14.0,14.0),
03(.,"","",1.6,3.2,7.2,11.2,18.4),
02(.,"","",0.3,11.5,3.9,0,3.9),
02(.,"","",1.4,3.0,0,18.2,18.2),
02(.,"","",2.0,3.0,1.0,13.0,13.0),
01(.,"","",2.0,3.0,1.0,13.0,13.0),
01(.,"","",2.0,3.0,1.0,13.0,13.0),
01(.,"","",2.0,3.0,1.0,13.0,13.0),
01(.,"","",2.0,3.0,1.0,13.0,13.0),
;
public _;
public String ;
@ -131,11 +149,13 @@ public interface Constant {
("20"),
("21"),
线("01"),
("03"),("04"),("04"),("04"),("05"),("06"),
("03,04,05,06"),
// 一跨龙门切割("03"),一跨数控切割("04"),二跨数控切割("04"),三跨数控切割("04"),三跨平铁切割("05"),手工切割("06"),
("08"),
("17"),
("18"),
("13"),("16"),
("13,16"),
// 平铁打磨("13"),手工打磨("16"),
(""),
(""),
(""),

@ -24,7 +24,6 @@ import com.dsic.gj_erp.service.jhgk.DmSygdxqService;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.*;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.stream.Collectors;
import static com.dsic.gj_erp.pc.Constant.CD;
@ -46,22 +45,59 @@ public class DataFactory {
DateTime parse = DateUtil.parse(xq.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){
= .get(bom.getTzbh()).getMAP().get(gx);
= .getMAP().get(gx);
}
if (!=null&&.get().contains(bom.getTzbh())){
bom.set(_);
bom.set(it);
Optional<> _ = .(bom.getTzbh());
_.ifPresent(bom::set);
}else{
= it.getMAP().get(gx);
//直接占用资源
.(bom.getTzbh(), bom.getTlsl().doubleValue());
bom.set(_);
.put(bom.getTzbh(),_);
Optional<> _ = .();
final = ;
_.ifPresent(tmp->{
bom.set(tmp);
tmp.(bom.getTzbh(),);
final.(bom.getTzbh(), );
bom.set(it);
.put(bom.getTzbh(),it);
});
}
});
//没有可用资源是全局搜索可用资源,进行排产
if (bom.get()==null){
Optional<> = (gx, );
.ifPresent(tmp->{
_ = tmp.getMAP().get(gx);
Optional<> _ = _.(0);
_.ifPresent(tmp->{
bom.set(tmp);
tmp.(bom.getTzbh(),);
_.(bom.getTzbh(), );
bom.set(tmp);
.put(bom.getTzbh(),tmp);
});
});
}
//没有可用资源放入月末,待手工调整
if (bom.get()==null){
tmp = (DateUtil.endOfMonth(DateUtil.parse(xq.getXzglxq(), "yyyy/MM/dd")));
_ = tmp.getMAP().get(gx);
Optional<> _ = _.(0);
bom.set(_.get());
bom.set(tmp);
_.(bom.getTzbh(),0);
.put(bom.getTzbh(),tmp);
}
}
});
});
@ -69,6 +105,13 @@ public class DataFactory {
System.out.println(111);
}
public static Optional<> (Constant. , double ){
return .values().stream().filter(->{
= .getMAP().get();
return .();
}).findFirst();
}
public static (Date date){
= .get(DateUtil.format(date, "yyyy/MM/dd"));
if (==null){
@ -94,29 +137,23 @@ public class DataFactory {
Map<String, > _ = Constant..get(_);
switch (_){
case :
return new 01(_,_);
return new 01(_);
case :
return new 02(_,_);
return new 02(_);
case :
return new 03(_,_);
return new 03(_);
case 线:
return new 04线(_,_);
case :
case :
case :
case :
case :
case :
return new 05(_,_);
return new 04线(_);
case :
return new 05(_);
case :
return new 07(_,_);
return new 07(_);
case :
return new 10(_,_);
return new 10(_);
case :
return new 08(_,_);
case :
case :
return new 09(_,_);
return new 08(_);
case :
return new 09(_);
// case 预配盘:
// return new 工序01上料(_工序,_设备);
// case 光电结束:
@ -124,7 +161,7 @@ public class DataFactory {
// case 配送:
// return new 工序01上料(_工序,_设备);
default:
return new 99(_,_);
return new 99(Constant..NULL,_);
}
}

@ -11,8 +11,9 @@ import java.util.Map;
@Getter
@Setter
public class 01 extends {
public 01(Constant. , Map<String, > _) {
super(,_);
public 01(Map<String, > _) {
super(Constant..,_);
}
@Override

@ -11,8 +11,8 @@ import java.util.Map;
@Getter
@Setter
public class 02 extends {
public 02(Constant. , Map<String, > _) {
super(,_);
public 02(Map<String, > _) {
super(Constant..,_);
}
@Override

@ -11,8 +11,8 @@ import java.util.Map;
@Getter
@Setter
public class 03 extends {
public 03(Constant. , Map<String, > _) {
super(,_);
public 03(Map<String, > _) {
super(Constant..,_);
}
@Override

@ -12,8 +12,9 @@ import java.util.Map;
@Getter
@Setter
public class 04线 extends {
public 04线(Constant. , Map<String, > _) {
super(,_);
public 04线(Map<String, > _) {
super(Constant..线,_);
}
@Override

@ -12,8 +12,8 @@ import java.util.Map;
@Getter
@Setter
public class 05 extends {
public 05(Constant. , Map<String, > _) {
super(,_);
public 05(Map<String, > _) {
super(Constant..,_);
}
@Override

@ -12,8 +12,8 @@ import java.util.Map;
@Getter
@Setter
public class 07 extends {
public 07(Constant. , Map<String, > _) {
super(,_);
public 07(Map<String, > _) {
super(Constant..,_);
}
@Override

@ -12,8 +12,8 @@ import java.util.Map;
@Getter
@Setter
public class 08 extends {
public 08(Constant. , Map<String, > _) {
super(,_);
public 08(Map<String, > _) {
super(Constant..,_);
}
@Override

@ -12,8 +12,8 @@ import java.util.Map;
@Getter
@Setter
public class 09 extends {
public 09(Constant. , Map<String, > _) {
super(,_);
public 09(Map<String, > _) {
super(Constant..,_);
}
@Override

@ -12,8 +12,8 @@ import java.util.Map;
@Getter
@Setter
public class 10 extends {
public 10(Constant. , Map<String, > _) {
super(,_);
public 10(Map<String, > _) {
super(Constant..,_);
}
@Override

@ -1,8 +1,11 @@
package com.dsic.gj_erp.pc.dto.sb;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
import com.dsic.gj_erp.pc.Constant;
import com.dsic.gj_erp.pc.dto.;
public class 01 extends {
public 01(Constant. _) {
super(_);
}
}

@ -1,7 +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 02 extends {
public 02(Constant. _) {
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 03 extends {
public 03(Constant. _) {
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 04线 extends {
public 04线(Constant. _) {
super(_);
}
}

@ -0,0 +1,30 @@
package com.dsic.gj_erp.pc.dto.sb;
import com.dsic.gj_erp.pc.Constant;
import com.dsic.gj_erp.pc.dto.;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class 05 extends {
private String ;
protected double =7.0;
protected double ;
public 05(Constant. _) {
super(_);
}
@Override
public void (double , double ) {
this.=;
this.=;
this.();
}
public void (){
this.=this.*this.+this.*this.;
}
}

@ -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 07 extends {
public 07(Constant. _) {
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 08 extends {
public 08(Constant. _) {
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 09 extends {
public 09(Constant. _) {
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 10 extends {
public 10(Constant. _) {
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 99 extends {
public 99(Constant. _) {
super(_);
}
}

@ -9,7 +9,6 @@ import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@Getter
@Setter
@ -35,7 +34,6 @@ public abstract class 工序产能 implements 工序排产处理接口 {
.values().forEach(item->{
this.+=item.*this.+item.*this.;
});
this.=Constant..get();
this.cd=Constant.CD.get();
=new ArrayList<>();
}
@ -53,9 +51,24 @@ public abstract class 工序产能 implements 工序排产处理接口 {
=new ArrayList<>();
}
public (double ){
public void (double ,double ){
this.=;
this.=;
.values().forEach(item->{
item.(,);
this.+=item.;
});
}
public Optional<> (String ){
return this..values().stream()
.filter(item -> this.(item., )).findFirst().orElse(null);
.filter(item -> item.get().contains())
.findFirst();
}
public Optional<> (double ){
return this..values().stream()
.filter(item -> this.(item., )).findFirst();
}
public boolean (String ,double ){
@ -75,9 +88,4 @@ public abstract class 工序产能 implements 工序排产处理接口 {
this..add();
}
@Override
public void (String ,String ) {
_ = .get();
_..add();
}
}

@ -1,6 +1,7 @@
package com.dsic.gj_erp.pc.dto;
import com.dsic.gj_erp.pc.Constant;
import com.dsic.gj_erp.pc.service.;
import lombok.Getter;
import lombok.Setter;
@ -8,7 +9,7 @@ import java.util.List;
@Getter
@Setter
public abstract class {
public abstract class implements {
protected String ;
protected String ;
protected double ;
@ -17,7 +18,25 @@ public abstract class 设备 {
protected double =0.0;
protected List<String> ;
public (Constant. _){
@Override
public void (double ) {
this.+=;
}
@Override
public void (String ) {
this..add();
}
@Override
public void (double , double ) {
}
public (Constant. _){
this.= _.;
this.= _.;
this.= _.;
this.= _.;
}
}

@ -1,19 +1,14 @@
package com.dsic.gj_erp.pc.service;
public interface {
void (double ,double );
default void (String ,String ,double ){
(,);
(,);
}
default void (String ,double ){
();
();
}
void (String ,String );
void (double );
void (String );

@ -0,0 +1,14 @@
package com.dsic.gj_erp.pc.service;
public interface {
void (double ,double );
default void (String ,double ){
();
();
}
void (double );
void (String );
}
Loading…
Cancel
Save