1.排产临时提交

master
董哲奇 1 year ago
parent 2da9eceff2
commit 47583b333b

@ -19,6 +19,21 @@
</properties> </properties>
<dependencies> <dependencies>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-base</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-web</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>cn.afterturn</groupId>
<artifactId>easypoi-annotation</artifactId>
<version>3.2.0</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.pdfbox</groupId> <groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox</artifactId> <artifactId>pdfbox</artifactId>
@ -254,6 +269,11 @@
<artifactId>mybatisplus-plus</artifactId> <artifactId>mybatisplus-plus</artifactId>
<version>1.7.4-RELEASE</version> <version>1.7.4-RELEASE</version>
</dependency>--> </dependency>-->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>21.0</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

@ -1,7 +1,9 @@
package com.dsic.gj_erp.bean.jcsj; package com.dsic.gj_erp.bean.jcsj;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.dsic.gj_erp.pc.dto.;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -217,7 +219,7 @@ public class DmBom implements Serializable {
// 反馈工时 // 反馈工时
private String fkgs; private String fkgs;
@TableField(exist = false)
private ;
} }

@ -3,12 +3,14 @@ package com.dsic.gj_erp.bean.jhgk;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.dsic.gj_erp.bean.jcsj.DmBom;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.io.Serializable; import java.io.Serializable;
import java.util.List;
/** /**
* <p> * <p>
@ -90,5 +92,7 @@ public class DmSygdxq implements Serializable {
private String xqzt="0"; private String xqzt="0";
@TableField(exist = false)
private List<DmBom> bomList;
} }

@ -18,4 +18,6 @@ import java.util.List;
*/ */
public interface DmSygdxqMapper extends BaseMapper<DmSygdxq> { public interface DmSygdxqMapper extends BaseMapper<DmSygdxq> {
List<DmSygdxq> getXqWithBom(String from,String to);
} }

@ -0,0 +1,162 @@
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.;
import com.google.common.collect.ImmutableMap;
import lombok.AllArgsConstructor;
import lombok.Getter;
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<, Integer> CD = ImmutableMap.<, Integer>builder()
.put(., -10)
.put(., -8)
.put(., -8)
.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(., 0)
.put(., -3)
.put(., 0)
.build();
//来源数据库
// ImmutableMap<String, 工序> 套料图工序对应关系 = ImmutableMap.of();
// .<String, 工序>builder()
//二跨超长超宽曲板小组
// .put("10101019", 工序.上料)
// .put("10101020", 工序.抛丸)
// .put("10101021", 工序.理料)
// .put("10101004", 工序.二跨数控切割)
// .put("10101008", 工序.坡口)
// .put("10101018", 工序.曲加工)
//二跨超长超宽曲板中大组
// .put("10111019", 工序.上料)
// .put("10111020", 工序.抛丸)
// .put("10111021", 工序.理料)
// .put("10111004", 工序.二跨数控切割)
// .put("10111008", 工序.坡口)
// .put("10111018", 工序.曲加工)
// .build();
//来源数据库
ImmutableMap<, Map<String, >> = ImmutableMap.<, Map<String, >>builder()
//二跨超长超宽曲板小组
.put(., ImmutableMap.<String, >builder()
.put("",new 01())
.build())
.put(., ImmutableMap.<String, >builder()
.put("",new 02())
.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),
;
public _;
public String ;
public String ;
public double ;
public double ;
public double ;
public double ;
public double ;
}
@AllArgsConstructor
enum {
NULL(""),
("19"),
("20"),
("21"),
线("01"),
("03"),("04"),("04"),("04"),("05"),("06"),
("08"),
("17"),
("18"),
("13"),("16"),
(""),
(""),
(""),
;
@Getter
private String code;
//通过code获取工序
public static getGxByCode(String code) {
for ( gx : .values()) {
if (gx.getCode().equals(code)) {
return gx;
}
}
return .NULL;
}
//判断工序是否时NULL的
public static boolean isNull( gx) {
return gx==.NULL;
}
}
}

@ -0,0 +1,179 @@
package com.dsic.gj_erp.pc;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsic.gj_erp.bean.SpringContextHolder;
import com.dsic.gj_erp.bean.jcsj.EmGcrl;
import com.dsic.gj_erp.bean.jcsj.EmSbcnp;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
import com.dsic.gj_erp.bean.jhgk.DmSygdxq;
import com.dsic.gj_erp.pc.dto.gx.*;
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.service.jcsj.EmGcrlService;
import com.dsic.gj_erp.service.jcsj.EmSbcnpService;
import com.dsic.gj_erp.service.jcsj.EmSbjbbService;
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;
import static com.dsic.gj_erp.pc.Manager.*;
public class DataFactory {
public static void (){
.clear();
List<> list = .list;
list.clear();
List<DmSygdxq> xqWithBom = getBean(DmSygdxqService.class).getXqWithBom(from, to);
xqWithBom.forEach(xq->{
xq.getBomList().forEach(bom->{
Arrays.stream(Constant..values()).forEach(gx->{
if (StrUtil.isEmpty(gx.getCode()))return;
if (ObjUtil.isNotEmpty(.get(bom.getKw()+bom.getZl()+"_"+gx.getCode()))){
Integer cd = CD.get(gx);
DateTime parse = DateUtil.parse(xq.getXzglxq(), "yyyy/MM/dd");
DateTime dateTime = DateUtil.offsetDay(parse, cd);
_ = (dateTime);
Optional.of(_).ifPresent(it->{
=null;
= .get(bom.getTzbh());
if (!=null){
= .get(bom.getTzbh()).getMAP().get(gx);
}
if (!=null&&.get().contains(bom.getTzbh())){
bom.set(_);
}else{
= it.getMAP().get(gx);
//直接占用资源
.(bom.getTzbh(), bom.getTlsl().doubleValue());
bom.set(_);
.put(bom.getTzbh(),_);
}
});
}
});
});
});
System.out.println(111);
}
public static (Date date){
= .get(DateUtil.format(date, "yyyy/MM/dd"));
if (==null){
return (DateUtil.offsetDay(date,-1));
}
return ;
}
public static void (){
.clear();
Map<Constant., > map=new HashMap<>();
Arrays.stream(Constant..values()).forEach(item->{
if (StrUtil.isNotEmpty(item.getCode())){
map.put(item,(item));
}
});
.stream().filter(item -> "1".equals(item.getXxr()))
.forEach(item -> .put(item.getGl(),.of(item.getGl(), map)));
}
public static (Constant. _){
Map<String, > _ = Constant..get(_);
switch (_){
case :
return new 01(_,_);
case :
return new 02(_,_);
case :
return new 03(_,_);
case 线:
return new 04线(_,_);
case :
case :
case :
case :
case :
case :
return new 05(_,_);
case :
return new 07(_,_);
case :
return new 10(_,_);
case :
return new 08(_,_);
case :
case :
return new 09(_,_);
// case 预配盘:
// return new 工序01上料(_工序,_设备);
// case 光电结束:
// return new 工序01上料(_工序,_设备);
// case 配送:
// return new 工序01上料(_工序,_设备);
default:
return new 99(_,_);
}
}
public static void (){
List<EmGcrl> list = getBean(EmGcrlService.class).getList(new JSONObject());
.clear();
.addAll(list);
}
public static void (){
.clear();
List<EmSbcnp> list = getBean(EmSbcnpService.class).list();
Map<String, List<EmSbcnp>> map = list.stream().collect(Collectors.groupingBy(l -> l.getTzbh() + l.getZl()+"_"+l.getGx()));
map.keySet().forEach(key->{
String gxCode=key.split("_")[1];
.put(key,Constant..getGxByCode(gxCode));
});
}
public static void (){
List<EmSbjbb> deviceList = getBean(EmSbjbbService.class).list(Wrappers.<EmSbjbb>lambdaQuery().like(EmSbjbb::getScbs, "1"));
.clear();
.addAll(deviceList);
}
public static void (){
.clear();
Arrays.stream(Constant..values()).forEach(gx->{
if (StrUtil.isNotEmpty(gx.getCode())){
.putIfAbsent(gx, .stream().filter(d->d.getGx().equals(gx.getCode())).collect(Collectors.toList()));
}
});
}
public static void EXCEL(OutputStream stream){
}
public static void EXCEL(String fileName){
try(FileOutputStream fos=new FileOutputStream(fileName)) {
EXCEL(fos);
}catch (Exception e){
e.printStackTrace();
}
}
private static <T> T getBean(Class<T> clazz) {
return SpringContextHolder.getBean(clazz);
}
private DataFactory(){}
}

@ -0,0 +1,26 @@
package com.dsic.gj_erp.pc;
import com.dsic.gj_erp.bean.jcsj.EmGcrl;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
import com.dsic.gj_erp.pc.dto.;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
public class Manager {
public static String from;
public static String to;
public static ;
public static final List<EmGcrl> =new ArrayList<>();
public static final Map<String,> = new ConcurrentHashMap<>();
//key=tlth+"_"+工序名称
public static final Map<String,> = new ConcurrentHashMap<>();
public static final Map<String, Constant.> = new ConcurrentHashMap<>();
public static final List<EmSbjbb> = new ArrayList<>();
//实时加载
public static final Map<Constant., List<EmSbjbb>> = new ConcurrentHashMap<>();
private Manager(){}
}

@ -0,0 +1,22 @@
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 01 extends {
public 01(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.(1.0);
}
}

@ -0,0 +1,22 @@
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 02 extends {
public 02(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.(1.0);
}
}

@ -0,0 +1,22 @@
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 03 extends {
public 03(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.();
}
}

@ -0,0 +1,23 @@
package com.dsic.gj_erp.pc.dto.gx;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
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 04线 extends {
public 04线(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.();
}
}

@ -0,0 +1,23 @@
package com.dsic.gj_erp.pc.dto.gx;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
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 05 extends {
public 05(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.();
}
}

@ -0,0 +1,23 @@
package com.dsic.gj_erp.pc.dto.gx;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
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 07 extends {
public 07(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.();
}
}

@ -0,0 +1,23 @@
package com.dsic.gj_erp.pc.dto.gx;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
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 08 extends {
public 08(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.();
}
}

@ -0,0 +1,23 @@
package com.dsic.gj_erp.pc.dto.gx;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
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 09 extends {
public 09(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.();
}
}

@ -0,0 +1,23 @@
package com.dsic.gj_erp.pc.dto.gx;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
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 10 extends {
public 10(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.();
}
}

@ -0,0 +1,22 @@
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 99 extends {
public 99(Constant. , Map<String, > _) {
super(,_);
}
@Override
public void (double ) {
super.();
}
}

@ -0,0 +1,8 @@
package com.dsic.gj_erp.pc.dto.sb;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
import com.dsic.gj_erp.pc.dto.;
public class 01 extends {
}

@ -0,0 +1,7 @@
package com.dsic.gj_erp.pc.dto.sb;
import com.dsic.gj_erp.pc.dto.;
public class 02 extends {
}

@ -0,0 +1,83 @@
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;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
@Getter
@Setter
public abstract class implements {
protected Constant. ;
protected double ;
protected double ;
protected double ;
protected double =0.0;
protected int cd;
protected Constant. CD;//需要根据对应工序进行计算cd
protected Map<String,> ;
protected List<String> ;
/**
*
*/
public (Constant. , Map<String,> ){
this.=;
this.=;
this.=7;
this.=0;
.values().forEach(item->{
this.+=item.*this.+item.*this.;
});
this.=Constant..get();
this.cd=Constant.CD.get();
=new ArrayList<>();
}
public (Constant. , Map<String,> ,double ,double ){
this.=;
this.=;
this.=;
this.=;
this.=0;
.values().forEach(item->{
this.+=item.*this.+item.*this.;
});
this.cd=Constant.CD.get();
=new ArrayList<>();
}
public (double ){
return this..values().stream()
.filter(item -> this.(item., )).findFirst().orElse(null);
}
public boolean (String ,double ){
_ = .get();
return _.+<=_.;
}
public boolean (double ){
return this.+<=this.;
}
public void (double ){
this.=this.+;
}
public void (String ){
this..add();
}
@Override
public void (String ,String ) {
_ = .get();
_..add();
}
}

@ -0,0 +1,23 @@
package com.dsic.gj_erp.pc.dto;
import com.dsic.gj_erp.bean.jhgk.DmSygdxq;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public class {
private String date;
private Double bbsc=7.0;//白班时长
private Double ybsc=0.0;//夜班时长
private String gx;//工序;上料,抛丸,切割...
private String gw;//工位;几跨什么
private Double gxde;//工序定额
private String sbbh;//设备编码
private String sbmc;//设备名称
private String degs;//设备定额
List<DmSygdxq> sygdxqList;//钢料需求
}

@ -0,0 +1,23 @@
package com.dsic.gj_erp.pc.dto;
import com.dsic.gj_erp.pc.Constant;
import lombok.Getter;
import lombok.Setter;
import java.util.List;
@Getter
@Setter
public abstract class {
protected String ;
protected String ;
protected double ;
protected double ;
protected double ;
protected double =0.0;
protected List<String> ;
public (Constant. _){
}
}

@ -0,0 +1,33 @@
package com.dsic.gj_erp.pc.dto;
import com.dsic.gj_erp.pc.Constant;
import lombok.Getter;
import lombok.Setter;
import java.util.Map;
import java.util.Optional;
@Getter
@Setter
public class {
private String date;
private Map<Constant.,> MAP;
public void (Constant. ,String ,double ){
= MAP.get();
Optional.of().ifPresent(it->{
if (it.()){
it.(,);
}
});
}
public static of(String date,Map<Constant.,> MAP){
= new ();
.date=date;
.MAP=MAP;
return ;
}
private (){}
}

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

@ -0,0 +1,58 @@
package com.dsic.gj_erp.pc;
import com.dsic.gj_erp.pc.dto.;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.Semaphore;
@Getter
@Setter
public class {
private String from;
private String to;
private boolean complete;
List<> list;
private static Semaphore semaphore = new Semaphore(1);
public static void execute(@NotNull String from, @NotNull String to) {
_=null;
try {
semaphore.acquire();
_ = .of(from,to);
DataFactory.();
}catch (Exception e){
e.printStackTrace();
}finally {
if (_!=null){
_.complete = true;
}
semaphore.release();
}
}
private static of(@NotNull String from, @NotNull String to){
if (!from.equals(Manager.from)||!to.equals(Manager.to)){
= new ();
.from=from;
.to=to;
.complete=false;
.list=new ArrayList<>();
Manager.=;
Manager.from = from;
Manager.to = to;
DataFactory.();
DataFactory.();
DataFactory.();
DataFactory.();
DataFactory.();
}
return Manager.;
}
private (){}
}

@ -17,4 +17,6 @@ import java.util.List;
public interface DmSygdxqService extends IService<DmSygdxq> { public interface DmSygdxqService extends IService<DmSygdxq> {
void saveXzList(List<DmSygdxq> list, String username, String day); void saveXzList(List<DmSygdxq> list, String username, String day);
void saveDzList(List<DmSygdxq> list, String username, String day); void saveDzList(List<DmSygdxq> list, String username, String day);
List<DmSygdxq> getXqWithBom(String from, String to);
} }

@ -127,6 +127,11 @@ public class DmSygdxqServiceImpl extends ServiceImpl<DmSygdxqMapper, DmSygdxq> i
} }
@Override
public List<DmSygdxq> getXqWithBom(String from, String to) {
return baseMapper.getXqWithBom(from,to);
}
//零件信息 //零件信息
public void correctSygdmx(String ch,String pl,String fd,String xqsj){ public void correctSygdmx(String ch,String pl,String fd,String xqsj){
//根据:本次导入的三月需求期 提取BOM 生成三月需求零件信息 //根据:本次导入的三月需求期 提取BOM 生成三月需求零件信息

@ -2,6 +2,53 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dsic.gj_erp.mapper.jhgk.DmSygdxqMapper"> <mapper namespace="com.dsic.gj_erp.mapper.jhgk.DmSygdxqMapper">
<resultMap id="sqgdxqVo" type="dmSygdxq">
<id column="id" property="id" jdbcType="VARCHAR" />
<result column="dc_ch" property="dcCh" jdbcType="VARCHAR" />
<result column="dc_pl" property="dcPl" jdbcType="VARCHAR" />
<result column="dc_fd" property="dcFd" jdbcType="VARCHAR" />
<result column="zdh" property="zdh" jdbcType="VARCHAR" />
<result column="xzglxq" property="xzglxq" jdbcType="VARCHAR" />
<collection property="bomList" ofType="dmBom" javaType="java.util.ArrayList" columnPrefix="bom_" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="dcch" property="dcch" jdbcType="VARCHAR" />
<result column="pl" property="pl" jdbcType="VARCHAR" />
<result column="fd" property="fd" jdbcType="VARCHAR" />
<result column="kw" property="kw" jdbcType="VARCHAR" />
<result column="zl" property="zl" jdbcType="VARCHAR" />
<result column="tzbh" property="tzbh" jdbcType="VARCHAR" />
<result column="wpgg" property="wpgg" jdbcType="VARCHAR" />
<result column="wpcz" property="wpcz" jdbcType="VARCHAR" />
<result column="ljsl" property="ljsl" jdbcType="DOUBLE" />
<result column="fkgs" property="fkgs" jdbcType="VARCHAR" />
<result column="tlsl" property="tlsl" jdbcType="VARCHAR" />
</collection>
</resultMap>
<select id="getXqWithBom" resultMap="sqgdxqVo">
select
xq.id,
xq.dc_ch,
xq.dc_pl,
xq.dc_fd,
xq.xzglxq,
bom.id as bom_id,
bom.dcch as bom_dcch,
bom.pl as bom_pl,
bom.fd as bom_fd,
bom.kw as bom_kw,
bom.zl as bom_zl,
bom.tzbh as bom_tzbh,
bom.wpgg as bom_wpgg,
bom.wpcz as bom_wpcz,
bom.ljsl as bom_ljsl,
bom.fkgs as bom_fkgs,
bom.tlsl as bom_tlsl
from
dm_sygdxq xq left join dm_bom bom on bom.dcch = xq.DC_CH and bom.pl = xq.DC_PL and bom.fd = xq.DC_FD
where
xq.xzglxq between #{from} and #{to}
order by xq.xzglxq
</select>
</mapper> </mapper>

@ -12,7 +12,7 @@
a.nest_cut_ho as 'nest_cut_ho' a.nest_cut_ho as 'nest_cut_ho'
FROM tbl_nest_mast a FROM tbl_nest_mast a
WHERE WHERE
isnull(a.nest_ext_c02,'') != '' and a.nest_kakuyaku_date between #{st} and #{ed} isnull(a.nest_ext_c02,'') != '' and a.nest_kakuyaku_date between #{st} and #{ed} and nest_cut_lengs>0
and not EXISTS( and not EXISTS(
select b.czbh as nest_ext_c02,b.kw as nest_ext_c03 ,b.pl as nest_ext_c04 select b.czbh as nest_ext_c02,b.kw as nest_ext_c03 ,b.pl as nest_ext_c04
from pgd_qgjh b from pgd_qgjh b

Loading…
Cancel
Save