From 7bb8eab5600e47ce19f30df6b46e979a60dd7bdd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E8=91=A3=E5=93=B2=E5=A5=87?= <13840175730@139.com>
Date: Sun, 15 Dec 2024 16:56:51 +0800
Subject: [PATCH] =?UTF-8?q?1.=E6=9C=88=E5=BA=A6=E8=AE=A1=E5=88=92=E5=AF=BC?=
=?UTF-8?q?=E5=85=A5?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../com/dsic/gj_erp/bean/jhgk/DmTzjh.java | 8 +
.../com/dsic/gj_erp/bean/jhgk/YdjhImport.java | 20 +
.../com/dsic/gj_erp/bean/pgd/PgdTzjh.java | 14 +-
.../com/dsic/gj_erp/bean/zyjh/DmYppyz.java | 4 +
.../dsic/gj_erp/mapper/jcsj/DmBomMapper.java | 8 +-
.../gj_erp/service/jcsj/DmBomService.java | 2 +-
.../service/jcsj/impl/DmBomServiceImpl.java | 4 +
.../jhgk/impl/DmSygdMxServiceImpl.java | 184 +++++--
.../service/jhgk/impl/YdjhImportService.java | 521 +++++++++---------
.../resources/mappers/jcsj/DmBomMapper.xml | 60 ++
10 files changed, 526 insertions(+), 299 deletions(-)
diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmTzjh.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmTzjh.java
index 81709d1..edf8b9f 100644
--- a/src/main/java/com/dsic/gj_erp/bean/jhgk/DmTzjh.java
+++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/DmTzjh.java
@@ -66,4 +66,12 @@ public class DmTzjh implements Serializable {
private String id;
+ public static DmTzjh of(YdjhImport jh,String fd){
+ DmTzjh tzjh = new DmTzjh();
+ tzjh.setDcCh(jh.getDcCh());
+ tzjh.setDcPl(jh.getDcPl());
+ tzjh.setDcFd(fd);
+ tzjh.setZt("0");
+ return tzjh;
+ }
}
diff --git a/src/main/java/com/dsic/gj_erp/bean/jhgk/YdjhImport.java b/src/main/java/com/dsic/gj_erp/bean/jhgk/YdjhImport.java
index e251071..af1523c 100644
--- a/src/main/java/com/dsic/gj_erp/bean/jhgk/YdjhImport.java
+++ b/src/main/java/com/dsic/gj_erp/bean/jhgk/YdjhImport.java
@@ -1,9 +1,11 @@
package com.dsic.gj_erp.bean.jhgk;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@@ -95,6 +97,24 @@ public class YdjhImport {
private String bz;
+ private String zt;
+
private int importIndex;
+ @ApiModelProperty(value = "前方需求小组期")
+ private String qfxqrqxz;
+
+ @ApiModelProperty(value = "前方需求大组期")
+ private String qfxqrqdz;
+
+ private String extData;//1:无基础数据;船号:使用目标船只基础数据;
+
+ @TableField(exist = false)
+ private Boolean qwbBs;
+
+ public boolean isAvailable(){
+ return !StrUtil.isAllEmpty(this.sl,this.xcpw,this.pw,this.dbqgks,this.ykpkjs,this.lmqgks,this.lmqgjs,
+ this.ekskks,this.ekpkjs,this.skskqgks,this.skpkjs,this.ptks,this.ptjs,this.qpt_zjs,this.qptjs,
+ this.qwbjs,this.fbqgks,this.fbqgjs,this.skqgks,this.pkqgjs,this.mbjb,this.xcmb,this.fdxq,this.gdjs);
+ }
}
diff --git a/src/main/java/com/dsic/gj_erp/bean/pgd/PgdTzjh.java b/src/main/java/com/dsic/gj_erp/bean/pgd/PgdTzjh.java
index c6080ad..f49b25d 100644
--- a/src/main/java/com/dsic/gj_erp/bean/pgd/PgdTzjh.java
+++ b/src/main/java/com/dsic/gj_erp/bean/pgd/PgdTzjh.java
@@ -2,6 +2,7 @@ package com.dsic.gj_erp.bean.pgd;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
+import com.dsic.gj_erp.bean.jhgk.YdjhImport;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -11,7 +12,7 @@ import java.io.Serializable;
/**
*
- *
+ *
*
*
* @author xn
@@ -79,4 +80,15 @@ public class PgdTzjh implements Serializable {
private String fkry;
+ public static PgdTzjh of(YdjhImport jh,String pl,String fd){
+ PgdTzjh tzjh = new PgdTzjh();
+ tzjh.setCzbh(jh.getDcCh());
+ tzjh.setPl(pl);
+ tzjh.setQfxqrqxz(jh.getQfxqrqxz());
+ tzjh.setQfxqrqdz(jh.getQfxqrqdz());
+ tzjh.setFd(fd);
+ tzjh.setZt("01");
+// tzjh.setTzzt("0");
+ return tzjh;
+ }
}
diff --git a/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYppyz.java b/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYppyz.java
index 76665ff..bd6ad45 100644
--- a/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYppyz.java
+++ b/src/main/java/com/dsic/gj_erp/bean/zyjh/DmYppyz.java
@@ -27,4 +27,8 @@ public class DmYppyz {
private String lx;
private String xj;
+
+ private String ppch;//配盘船号
+
+ private String ypph;//预配盘号
}
diff --git a/src/main/java/com/dsic/gj_erp/mapper/jcsj/DmBomMapper.java b/src/main/java/com/dsic/gj_erp/mapper/jcsj/DmBomMapper.java
index 29e41a8..11d7c1d 100644
--- a/src/main/java/com/dsic/gj_erp/mapper/jcsj/DmBomMapper.java
+++ b/src/main/java/com/dsic/gj_erp/mapper/jcsj/DmBomMapper.java
@@ -16,10 +16,12 @@ import java.util.List;
*/
public interface DmBomMapper extends BaseMapper {
+ List getBomWithYlbs(String dcCh,String dcPl);
- int insertBoms(List dmMfgDetails);
- int insertBom(DmBom dmMfgDetails);
+ int insertBoms(List dmMfgDetails);
- int insertFile(@Param("filepath")String filepath,@Param("yhdm") String yhdm);
+ int insertBom(DmBom dmMfgDetails);
+
+ int insertFile(@Param("filepath")String filepath,@Param("yhdm") String yhdm);
}
diff --git a/src/main/java/com/dsic/gj_erp/service/jcsj/DmBomService.java b/src/main/java/com/dsic/gj_erp/service/jcsj/DmBomService.java
index 606b743..9d31836 100644
--- a/src/main/java/com/dsic/gj_erp/service/jcsj/DmBomService.java
+++ b/src/main/java/com/dsic/gj_erp/service/jcsj/DmBomService.java
@@ -19,7 +19,7 @@ import java.util.Map;
*/
public interface DmBomService extends IService {
-
+ List getBomWithYlbs(String dcCh,String dcPl);
ListgetListBom(HttpServletRequest req, Map map) throws CustomException;
ListgetListBomRealy(HttpServletRequest req, Map map) throws CustomException;
void insertBoms(List map) throws CustomException;
diff --git a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/DmBomServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/DmBomServiceImpl.java
index de178f2..d7d6339 100644
--- a/src/main/java/com/dsic/gj_erp/service/jcsj/impl/DmBomServiceImpl.java
+++ b/src/main/java/com/dsic/gj_erp/service/jcsj/impl/DmBomServiceImpl.java
@@ -33,6 +33,10 @@ public class DmBomServiceImpl extends ServiceImpl implements
BomUploadServiceImpl bomUploadService;
@Autowired
DmBomMapper dmBomMapper;
+
+ public List getBomWithYlbs(String dcCh,String dcPl){
+ return dmBomMapper.getBomWithYlbs(dcCh,dcPl);
+ }
@Override
public List getListBom(HttpServletRequest req,Map map) throws CustomException {
// if(map.get("zt").equals("01")){
diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java
index e3f7d8c..c80b737 100644
--- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java
+++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/DmSygdMxServiceImpl.java
@@ -4,6 +4,7 @@ package com.dsic.gj_erp.service.jhgk.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.bean.copier.CopyOptions;
import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray;
@@ -30,6 +31,7 @@ import com.dsic.gj_erp.service.jhgk.*;
import com.dsic.gj_erp.util.MyString;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -67,6 +69,11 @@ public class DmSygdMxServiceImpl extends ServiceImpl i
DmBomService bomService;
@Autowired
DmYdjhService ydjhService;
+ @Autowired
+ IYdjhImportService ydjhImportService;
+
+ @Autowired
+ private RedisTemplate redisTemplate;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -104,61 +111,166 @@ public class DmSygdMxServiceImpl extends ServiceImpl i
//生成作业计划
List dmYdjhs = this.generateYdjh(sygdMxes);
- ydjhService.saveOrUpdateBatch(dmYdjhs);
+
+ String gxsj=DateUtil.date().toString("yyyy/MM/dd HH:mm:ss");
+ Map> map = dmYdjhs.stream().collect(Collectors.groupingBy(it -> it.getDcCh() + "_" + it.getDcPl()));
+ map.forEach((key,val)->{
+ String plXh = this.getPlGdh();
+ val.forEach(item-> item.setPlxh(plXh));
+ });
+
+ //工单号
+ List updateList = dmYdjhs.stream()
+ .filter(item->StrUtil.isNotEmpty(item.getSljhrq()))
+ .map(item->ofXf(item,gxsj)).collect(Collectors.toList());
+
+ ydjhService.updateBatchById(updateList);
+ }
+ }
+
+ private DmYdjh ofXf(DmYdjh item,String gxsj){
+ Long djh=this.handlerDjh(item);
+ DmYdjh dmYdjh = new DmYdjh();
+ dmYdjh.setId(item.getId());
+ dmYdjh.setZt("2");
+ String perfix=item.getSljhrq().replace("/","");
+ perfix=perfix.substring(2);
+ dmYdjh.setDjh(StrUtil.format("{}{}",perfix, String.format("%03d",djh)));
+ dmYdjh.setGxsj(gxsj);
+ dmYdjh.setPlxh(item.getPlxh());
+ return dmYdjh;
+ }
+
+ private Long handlerDjh(DmYdjh item){
+ String key="ZYJH_GDH::";
+ //从101开始生成工单号,方便工人念出
+ if (ObjUtil.isEmpty(redisTemplate.opsForHash().get(key, item.getSljhrq()))) {
+ redisTemplate.opsForHash().put(key, item.getSljhrq(),100);
}
+ return redisTemplate.opsForHash().increment(key, item.getSljhrq(), 1);
+ }
+
+ private String getPlGdh(){
+ String date=DateUtil.date().toString("yyyyMMdd");
+ String key="ZYJH_PLGDH::";
+ Object o = redisTemplate.opsForHash().get(key, date);
+ if (ObjUtil.isEmpty(o)) {
+ redisTemplate.opsForHash().put(key, date,100);
+ }
+ Long xh=redisTemplate.opsForHash().increment(key, date, 1);
+ return StrUtil.format("{}{}",date, String.format("%03d",xh));
}
private List generateYdjh(List sygdMxes){
List list=new ArrayList<>();
+ HashMap map = new HashMap<>();
for(DmSygdMx item:sygdMxes){
- DmYdjh dmYdjh = ydjhService.getOne(Wrappers.query()
- .select("top 1 id,jssj")
+ Object o = map.get(item.getDcCh() + item.getDcPl());
+ AtomicBoolean continueFlag= new AtomicBoolean(false);
+ if (ObjectUtil.isEmpty(o)){
+ List list1 = ydjhImportService.list(Wrappers.lambdaQuery()
+ .eq(YdjhImport::getDcCh, item.getDcCh()));
+ list1.forEach(jh->{
+ if (jh.getDcPl().contains("Q")) {
+ jh.setDcPl(jh.getDcPl().replace("Q", ""));
+ }
+
+ try {
+ String format = String.format("%03d", Integer.parseInt(item.getDcPl()));
+ jh.setDcPl(format);
+ } catch (Exception ignored) {
+ }
+ //没有基础数据在作业计划表中插入一条仅有日期的新数据
+ if(!"1".equals(jh.getExtData())&&item.getDcCh().equals(jh.getDcCh())&&item.getDcPl().equals(jh.getDcPl())){
+ map.put(item.getDcCh()+item.getDcPl(),"1");
+ DmYdjh dmYdjh = new DmYdjh();
+ dmYdjh.setDcCh(jh.getDcCh());
+ dmYdjh.setDcPl(jh.getDcPl());
+ dmYdjh.setJssj(item.getJssj());
+ dmYdjh.setDcCh1(jh.getExtData());//不是“0”为目标船只,“0”表示无
+ dmYdjh.setSljhrq(item.getSlrq());
+ dmYdjh.setPwjhrq(item.getPwrq());
+ dmYdjh.setLljhrq(item.getLlrq());
+ dmYdjh.setHxjhrq(item.getQgrq());
+ dmYdjh.setQgjhrq(item.getQgrq());
+ boolean addFlag=true;
+ for (DmYdjh ydjh:list){
+ if (ydjh.getDcCh().equals(dmYdjh.getDcCh())&&ydjh.getDcPl().equals(ydjh.getDcPl())){
+ addFlag=false;
+ }
+ }
+ if (addFlag){
+ list.add(dmYdjh);
+ }
+ continueFlag.set(true);
+ }
+ });
+ }
+ if (continueFlag.get()){
+ continue;
+ }
+ List ydjhList = ydjhService.list(Wrappers.query()
.eq("dc_ch",item.getDcCh())
.eq("dc_pl",item.getDcPl())
.eq("tzbh",item.getTzbh())
);
- if (dmYdjh != null){
- dmYdjh.setId(dmYdjh.getId());
-
- //计划日期
- dmYdjh.setJssj(item.getJssj());
- dmYdjh.setSljhrq(item.getSlrq());
- dmYdjh.setPwjhrq(item.getPwrq());
- dmYdjh.setHxjhrq(item.getHxrq());
- dmYdjh.setQgjhrq(item.getQgrq());
-
- //重量
- dmYdjh.setBclqzl(item.getBclqzl());
- dmYdjh.setBcshzl(item.getBcshzl());
- dmYdjh.setBcylzl(item.getBcylzl());
- dmYdjh.setBcljtlzl(item.getBcljtlzl());
-
- //比对数据
- dmYdjh.setXzglxq(dmYdjh.getJssj());
- if (StrUtil.isAllNotEmpty(dmYdjh.getXzglxq(),dmYdjh.getJssj())){
- //状态 2拖期 1提前 3追加
- if (dmYdjh.getXzglxq().compareTo(dmYdjh.getJssj())<0){
- if (!DateUtil.isSameMonth(DateUtil.parseDate(dmYdjh.getXzglxq()),DateUtil.parseDate(dmYdjh.getJssj()))){
- dmYdjh.setJhlx("3");
- }else {
- dmYdjh.setJhlx("1");
+
+ for(DmYdjh dmYdjh:ydjhList){
+ if (dmYdjh.getDcCh().equals(item.getDcCh())
+ &&dmYdjh.getDcPl().equals(item.getDcPl())
+ &&dmYdjh.getTzbh().equals(item.getTzbh())
+ ){
+ dmYdjh.setId(dmYdjh.getId());
+
+ this.updateYdjh(dmYdjh,item);
+
+ //比对数据
+ dmYdjh.setXzglxq(dmYdjh.getJssj());
+ if (StrUtil.isAllNotEmpty(dmYdjh.getXzglxq(),dmYdjh.getJssj())){
+ //状态 2拖期 1提前 3追加
+ if (dmYdjh.getXzglxq().compareTo(dmYdjh.getJssj())<0){
+ if (!DateUtil.isSameMonth(DateUtil.parseDate(dmYdjh.getXzglxq()),DateUtil.parseDate(dmYdjh.getJssj()))){
+ dmYdjh.setJhlx("3");
+ }else {
+ dmYdjh.setJhlx("1");
+ }
+ }
+ if (dmYdjh.getXzglxq().compareTo(dmYdjh.getJssj())>0){
+ dmYdjh.setJhlx("2");
}
+ dmYdjh.setJssjOld(StrUtil.isEmpty(dmYdjh.getJssj())?"":dmYdjh.getJssj());
+ dmYdjh.setJssj(dmYdjh.getXzglxq());
}
- if (dmYdjh.getXzglxq().compareTo(dmYdjh.getJssj())>0){
- dmYdjh.setJhlx("2");
+ if (StrUtil.isEmpty(dmYdjh.getTzbh())){
+ dmYdjh.setJhlx("3");
}
- dmYdjh.setJssjOld(StrUtil.isEmpty(dmYdjh.getJssj())?"":dmYdjh.getJssj());
- dmYdjh.setJssj(dmYdjh.getXzglxq());
+ list.add(dmYdjh);
}
- if (StrUtil.isEmpty(dmYdjh.getTzbh())){
- dmYdjh.setJhlx("3");
- }
- list.add(dmYdjh);
+// else{
+// DmYdjh dmYdjh1 = new DmYdjh();
+// this.updateYdjh(dmYdjh1,item);
+// list.add(dmYdjh1);
+// }
}
}
return list;
}
+ private void updateYdjh(DmYdjh dmYdjh,DmSygdMx item){
+ //计划日期
+ dmYdjh.setJssj(item.getJssj());
+ dmYdjh.setSljhrq(item.getSlrq());
+ dmYdjh.setPwjhrq(item.getPwrq());
+ dmYdjh.setHxjhrq(item.getHxrq());
+ dmYdjh.setQgjhrq(item.getQgrq());
+
+ //重量
+ dmYdjh.setBclqzl(item.getBclqzl());
+ dmYdjh.setBcshzl(item.getBcshzl());
+ dmYdjh.setBcylzl(item.getBcylzl());
+ dmYdjh.setBcljtlzl(item.getBcljtlzl());
+ }
+
public Map> getMxMap(String begin,String end){
List list=baseMapper.getMxMap(begin,end);
diff --git a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java
index a4a9dfc..ca36692 100644
--- a/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java
+++ b/src/main/java/com/dsic/gj_erp/service/jhgk/impl/YdjhImportService.java
@@ -6,13 +6,16 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.dsic.gj_erp.bean.jhgk.DmSygdMx;
-import com.dsic.gj_erp.bean.jhgk.DmSygdMxLj;
-import com.dsic.gj_erp.bean.jhgk.YdjhImport;
+import com.dsic.gj_erp.bean.jcsj.DmBom;
+import com.dsic.gj_erp.bean.jcsj.DmCbxxp;
+import com.dsic.gj_erp.bean.jhgk.*;
import com.dsic.gj_erp.bean.jhgk.excel.JhxfExcel;
+import com.dsic.gj_erp.bean.pgd.PgdTzjh;
import com.dsic.gj_erp.mapper.jhgk.DmSygdMxMapper;
import com.dsic.gj_erp.mapper.jhgk.DmSygdxqMapper;
-import com.dsic.gj_erp.service.jhgk.DmSygdMxLjService;
+import com.dsic.gj_erp.service.jcsj.DmBomService;
+import com.dsic.gj_erp.service.jcsj.DmCbxxpService;
+import com.dsic.gj_erp.service.pgd.PgdTzjhService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -25,137 +28,199 @@ import java.util.stream.Collectors;
public class YdjhImportService extends ServiceImpl {
private final DmSygdxqMapper sygdxqMapper;
- private final DmSygdMxLjService ljService;
private final IYdjhImportService importService;
+ private final DmBomService bomService;
+ private final DmCbxxpService dmCbxxpService;
+ private final PgdTzjhService tzjhService;
- public List list(String begin,String end){
+ public List list(String begin, String end) {
return importService.list(Wrappers.lambdaQuery()
.between(YdjhImport::getFdxq, begin, end).or().between(YdjhImport::getQwbjs, begin, end)
- .orderByAsc(YdjhImport::getImportIndex)
+ .orderByAsc(YdjhImport::getId)
);
}
@Transactional(rollbackFor = Exception.class)
- public void handler(List objList){
- this.executeYdjhImport(objList);
-
- List qwb = objList.stream()
- .filter(item->!item.getDcPl().contains("-"))//去除T型材
- .filter(item->!item.getDcPl().contains("/"))//去除T型材
- .filter(item->item.getDcFd()!=null)
- .filter(item -> item.getDcPl().contains("Q")).collect(Collectors.toList());
- this.execute(qwb);
-
- List list = objList.stream()
- .filter(item->!item.getDcPl().contains("-"))//去除T型材
- .filter(item->!item.getDcPl().contains("/"))//去除T型材
- .filter(item->item.getDcFd()!=null)
+ public void handler(List objList) {
+ List ydjhImports = this.executeYdjhImport(objList);
+
+ ydjhImports.forEach(item->{
+ String dcPl=item.getDcPl();
+ if (item.getDcPl().contains("Q")) {
+ dcPl=item.getDcPl().replace("Q", "");
+ }
+
+ try {
+ dcPl = String.format("%03d", Integer.parseInt(dcPl));
+ } catch (Exception ignored) {
+ }
+
+ baseMapper.delete(new QueryWrapper()
+ .eq("dc_ch", item.getDcCh())
+ .eq("dc_pl", dcPl)
+ );
+ });
+// List qwb = ydjhImports.stream()
+// .filter(YdjhImport::isAvailable)
+// .filter(item -> !item.getDcPl().contains("-"))//去除T型材
+// .filter(item -> !item.getDcPl().contains("/"))//去除T型材
+// .filter(item -> StrUtil.isNotEmpty(item.getDcFd()))
+// .filter(item -> item.getDcPl().contains("Q")).collect(Collectors.toList());
+// this.execute(qwb);
+
+ List list = ydjhImports.stream()
+ .filter(YdjhImport::isAvailable)
+ .filter(item -> !item.getDcPl().contains("-"))//去除T型材
+ .filter(item -> !item.getDcPl().contains("/"))//去除T型材
+ .filter(item -> StrUtil.isNotEmpty(item.getDcFd()))
.filter(item -> !item.getDcPl().contains("Q")).collect(Collectors.toList());
this.execute(list);
+
+ ydjhImports.forEach(importService::saveOrUpdate);
+
+ //没有基础数据的计划生成图纸计划
+ List tzjhList = new ArrayList<>();
+ ydjhImports.stream()
+ .filter(item -> !StrUtil.equals(item.getExtData(), "1"))
+ .forEach(item->{
+ String dcPl=item.getDcPl();
+ if (item.getDcPl().contains("Q")) {
+ dcPl=item.getDcPl().replace("Q", "");
+ }
+
+ try {
+ dcPl = String.format("%03d", Integer.parseInt(dcPl));
+ } catch (Exception ignored) {
+ }
+ if (StrUtil.isNotEmpty(item.getDcFd())){
+ String[] dcfd=item.getDcFd().split("\\.");
+ for(String dcFd:dcfd){
+ PgdTzjh dmTzjh = PgdTzjh.of(item,dcPl, dcFd);
+ tzjhList.add(dmTzjh);
+ }
+ }
+ });
+ tzjhService.saveBatch(tzjhList);
+
}
@Transactional(rollbackFor = Exception.class)
- public void executeYdjhImport(List objList){
- Map map=new HashMap<>();
- for (int i=0;i executeYdjhImport(List objList) {
+ Map map = new HashMap<>();
+ List list = new ArrayList<>();
+ for (int i = 0; i < objList.size(); i++) {
+ JhxfExcel item = objList.get(i);
YdjhImport jh = new YdjhImport();
BeanUtil.copyProperties(item, jh);
jh.setImportIndex(i);
YdjhImport _jh = map.get(jh.getDcCh() + jh.getDcPl());
- if (_jh!=null){
- if (_jh.getFdxq()!=null&&jh.getFdxq()==null){
+ if (_jh != null) {
+ if (_jh.getFdxq() != null && jh.getFdxq() == null) {
jh.setFdxq(_jh.getFdxq());
}
- if (_jh.getFdxq()==null&&jh.getFdxq()!=null){
+ if (_jh.getFdxq() == null && jh.getFdxq() != null) {
_jh.setFdxq(jh.getFdxq());
}
- if(_jh.getQwbjs()!=null&&jh.getQwbjs()==null){
+ if (_jh.getQwbjs() != null && jh.getQwbjs() == null) {
jh.setQwbjs(_jh.getQwbjs());
}
- if(_jh.getQwbjs()==null&&jh.getQwbjs()!=null){
+ if (_jh.getQwbjs() == null && jh.getQwbjs() != null) {
_jh.setQwbjs(jh.getQwbjs());
}
- }else {
- map.put(jh.getDcCh() + jh.getDcPl(),jh);
+ } else {
+ map.put(jh.getDcCh() + jh.getDcPl(), jh);
}
- YdjhImport one = importService.getOne(new QueryWrapper()
- .select("top 1 id")
+ importService.remove(new QueryWrapper()
.eq("dc_ch", jh.getDcCh())
.eq("dc_pl", jh.getDcPl())
- .eq("dc_fd", jh.getDcFd())
);
- if (ObjUtil.isNotEmpty(one)){
- jh.setId(one.getId());
- }
- importService.saveOrUpdate(jh);
+ jh.setZt("0");
+ list.add(jh);
}
+ return list;
}
/**
* 月度计划导入,不使用月度计划只能排产功能前提下使用该功能导入月度计划
*/
@Transactional(rollbackFor = Exception.class)
- public void execute(List objList) {
- for(JhxfExcel item:objList){
- if (item.getDcPl().contains("Q")){
- item.setDcPl(item.getDcPl().replace("Q",""));
+ public void execute(List objList) {
+ HashMap _map = new HashMap<>();
+ objList.parallelStream().forEach(item->{
+ String dcPl=item.getDcPl();
+ if (item.getDcPl().contains("Q")) {
+ dcPl=item.getDcPl().replace("Q", "");
item.setQwbBs(true);
}
try {
- String format = String.format("%03d", Integer.parseInt(item.getDcPl()));
- item.setDcPl(format);
- }catch (Exception ignored){}
-
+ dcPl = String.format("%03d", Integer.parseInt(dcPl));
+ } catch (Exception ignored) {
+ }
String[] dcfd=item.getDcFd().split("\\.");
- List addList = new ArrayList<>();
-
- boolean outContinueFlag=false;
- for(String dcFd:dcfd){
- if (!item.isAvailable()) {
- baseMapper.delete(new QueryWrapper()
- .eq("dc_ch", item.getDcCh())
- .eq("dc_pl", item.getDcPl())
- .eq("dc_fd", dcFd)
- );
- addList.add(this.initDefault(item, dcFd));
- outContinueFlag=true;
- }
+ String dcFd=dcfd[0];
+
+ Object o = _map.get(item.getDcCh() + item.getDcPl());
+ if(o==null){
+ _map.put(item.getDcCh() + item.getDcPl(),1);
+ }else{
+ return;
}
- if (outContinueFlag){
- this.saveBatch(addList);
- continue;
+
+ List bomList = bomService.getBomWithYlbs(item.getDcCh(), dcPl);
+
+ String dcCh;
+ //基础数据未导入,使用目标船只
+ if (ObjUtil.isEmpty(bomList)) {
+ DmCbxxp one = dmCbxxpService.getOne(Wrappers.lambdaQuery()
+ .eq(DmCbxxp::getCbbm, item.getDcCh())
+ );
+ if (one != null) {
+ dcCh = one.getCbbm();
+ item.setExtData(dcCh);//使用目标船只基础数据
+ bomList = bomService.getBomWithYlbs(dcCh, dcPl);
+ if (ObjUtil.isEmpty(bomList)) {
+ DmSygdMx dmSygdMx = this.initDefault(item,dcFd,dcPl);
+ dmSygdMx.setDcCh1(dcCh);
+ this.save(dmSygdMx);
+ item.setExtData("0");//无基础数据
+ return;
+ }
+ } else {
+ item.setExtData("0");//无基础数据
+ DmSygdMx dmSygdMx = this.initDefault(item,dcFd,dcPl);
+ this.save(dmSygdMx);
+ return;
+ }
+ } else {
+ item.setExtData("1");//有基础数据
}
- String dcFd=dcfd[0];
- baseMapper.delete(new QueryWrapper()
- .eq("dc_ch", item.getDcCh())
- .eq("dc_pl", item.getDcPl())
- .eq("dc_fd", dcFd)
- );
- ljService.remove(new QueryWrapper()
- .eq("dcch", item.getDcCh())
- .eq("pl", item.getDcPl())
- .eq("fd", dcFd)
- );
+ List dmSygdxqs = sygdxqMapper.selectList(Wrappers.lambdaQuery()
+ .eq(DmSygdxq::getDcCh, item.getDcCh()).eq(DmSygdxq::getDcPl, dcPl));
- List ljList = sygdxqMapper.getSygdLjMx1(item.getDcCh(), item.getDcPl());
+ HashMap