1.月度计划导入

master
董哲奇 5 months ago
parent 40e9732910
commit 8fc046bd0d

@ -0,0 +1,573 @@
package com.dsic.gj_erp.service.jhgk.impl;
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.jcsj.DmBom;
import com.dsic.gj_erp.bean.jhgk.DmSygd;
import com.dsic.gj_erp.bean.jhgk.DmSygdMx;
import com.dsic.gj_erp.bean.jhgk.DmSygdMxLj;
import com.dsic.gj_erp.bean.jhgk.excel.JhxfExcel;
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.jhgk.DmSygdMxService;
import com.dsic.gj_erp.service.jhgk.DmSygdService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
@Service
@AllArgsConstructor
public class YdjhImportService extends ServiceImpl<DmSygdMxMapper, DmSygdMx> {
private final DmSygdxqMapper sygdxqMapper;
private final DmSygdMxLjService ljService;
@Transactional(rollbackFor = Exception.class)
public void handler(List<JhxfExcel> objList){
List<JhxfExcel> qwb = objList.stream().filter(JhxfExcel::isAvailable)
.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<JhxfExcel> list = objList.stream().filter(JhxfExcel::isAvailable)
.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(list);
}
// @Transactional(rollbackFor = Exception.class)
// public void handlerLj(List<DmSygdMx> mxList){
// //处理零件信息
// List<DmSygdMxLj> ljList = sygdxqMapper.getSygdLjMx(begin,end);
// ljList.forEach(lj-> mxList.forEach(mx->{
// if (lj.getDcch().equals(mx.getDcCh())
// &&lj.getPl().equals(mx.getDcPl())
// && (StrUtil.isBlank(lj.getTzbh())||lj.getTzbh().equals(mx.getTzbh()))){
// lj.setParentId(mx.getId());
// }
// }));
// ljService.saveBatch(ljList,500);
// }
/**
* ,使使
*/
@Transactional(rollbackFor = Exception.class)
public void execute(List<JhxfExcel> objList) {
objList.forEach(item->{
if (item.getDcPl().contains("A")){
item.setDcPl(item.getDcPl().replace("A",""));
}
if (item.getDcPl().contains("B")){
item.setDcPl(item.getDcPl().replace("B",""));
}
if (item.getDcPl().contains("C")){
item.setDcPl(item.getDcPl().replace("C",""));
}
if (item.getDcPl().contains("Q")){
item.setDcPl(item.getDcPl().replace("Q",""));
item.setQwbBs(true);
}
String format = String.format("%03d", Integer.parseInt(item.getDcPl()));
item.setDcPl(format);
String[] dcfd=item.getDcFd().split("\\.");
for (int fdIndex=0;fdIndex<dcfd.length;fdIndex++){
String dcFd=dcfd[fdIndex];
baseMapper.delete(new QueryWrapper<DmSygdMx>()
.eq("dc_ch",item.getDcCh())
.eq("dc_pl",item.getDcPl())
.eq("dc_fd",dcFd)
);
ljService.remove(new QueryWrapper<DmSygdMxLj>()
.eq("dcch",item.getDcCh())
.eq("pl",item.getDcPl())
.eq("fd",dcFd)
);
List<DmSygdMx> addList=new ArrayList<>();
if (!item.isAvailable()){
addList.add(this.initDefault(item,dcFd));
continue;
}
List<DmSygdMxLj> ljList = sygdxqMapper.getSygdLjMx1(item.getDcCh(), item.getDcPl(),dcFd);
List<DmSygdMx> sygdMxes;
if (item.getQwbBs()){
sygdMxes = this.initBySl(item,ljList.stream()
.filter(it->"3".equals(it.getTzbh().substring(5,6)))
.collect(Collectors.toList()),dcFd
);
}else{
sygdMxes = this.initBySl(item,ljList.stream()
.filter(it->!"3".equals(it.getTzbh().substring(5,6)))
.collect(Collectors.toList()),dcFd
);
}
addList.addAll(sygdMxes);
int _index=0;
int start=0;
int yklmbs=0;
try {
yklmbs=Integer.parseInt(item.getYklm());
}catch (Exception ignored){}
if (yklmbs>0){
if (!sygdMxes.isEmpty()){
_index+=yklmbs;
if (_index>sygdMxes.size()){
_index=sygdMxes.size();
//throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},一垮龙门板数超过上料张数",item.getDcCh(),item.getDcPl()));
}
for (int i=start;i<_index;i++){
this.updateByYklm(item,sygdMxes.get(i));
}
start+=yklmbs;
}else{
List<DmSygdMx> list = this.initByYklm(item, yklmbs,ljList,dcFd);
addList.addAll(list);
}
}
int yksk=0;
try {
yksk=Integer.parseInt(item.getYksk());
}catch (Exception ignored){}
if (yksk>0){
if (!sygdMxes.isEmpty()){
_index+=yksk;
if (_index>sygdMxes.size()){
_index=sygdMxes.size();
//throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},一垮数控板数超过上料张数",item.getDcCh(),item.getDcPl()));
}
for (int i=start;i<_index;i++){
this.updateByYksk(item,sygdMxes.get(i));
}
start+=yksk;
}else{
List<DmSygdMx> list = this.initByYksk(item, yksk,ljList,dcFd);
addList.addAll(list);
}
}
int eklmbs=0;
try {
eklmbs=Integer.parseInt(item.getEklmbs());
}catch (Exception ignored){}
if (eklmbs>0){
if (!sygdMxes.isEmpty()){
_index+=eklmbs;
if (_index>sygdMxes.size()){
_index=sygdMxes.size();
//throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},二垮龙门板数超过上料张数",item.getDcCh(),item.getDcPl()));
}
for (int i=start;i<_index;i++){
this.updateByEklm(item,sygdMxes.get(i));
}
start+=eklmbs;
}else{
List<DmSygdMx> list = this.initByEklmbs(item, eklmbs,ljList,dcFd);
addList.addAll(list);
}
}
int eksk=0;
try {
eksk=Integer.parseInt(item.getEksk());
}catch (Exception ignored){}
if (eksk>0){
if (!sygdMxes.isEmpty()){
_index+=eksk;
if (_index>sygdMxes.size()){
_index=sygdMxes.size();
//throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},二垮数控板数超过上料张数",item.getDcCh(),item.getDcPl()));
}
for (int i=start;i<_index;i++){
this.updateByEksk(item,sygdMxes.get(i));
}
start+=eksk;
}else{
List<DmSygdMx> list = this.initByEksk(item, eksk,ljList,dcFd);
addList.addAll(list);
}
}
int sksk=0;
try {
sksk=Integer.parseInt(item.getSksk());
}catch (Exception ignored){}
if (sksk>0){
if (!sygdMxes.isEmpty()){
_index+=sksk;
if (_index>sygdMxes.size()){
_index=sygdMxes.size();
//throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},三垮数控板数超过上料张数",item.getDcCh(),item.getDcPl()));
}
for (int i=start;i<_index;i++){
this.updateBySksk(item,sygdMxes.get(i));
}
start+=sksk;
}else{
List<DmSygdMx> list = this.initBySksk(item, sksk,ljList,dcFd);
addList.addAll(list);
}
}
int skpt=0;
try {
skpt=Integer.parseInt(item.getSkpt());
}catch (Exception ignored){}
if (skpt>0){
if (!sygdMxes.isEmpty()){
_index+=skpt;
if (_index>sygdMxes.size()){
_index=sygdMxes.size();
//throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},三垮平铁板数超过上料张数",item.getDcCh(),item.getDcPl()));
}
for (int i=start;i<_index;i++){
this.updateBySkpt(item,sygdMxes.get(i));
}
start+=skpt;
}else{
List<DmSygdMx> list = this.initBySkpt(item, skpt,ljList,dcFd);
addList.addAll(list);
}
}
int skbs=0;
try {
skbs=Integer.parseInt(item.getSkbs());
}catch (Exception ignored){}
if (skbs>0){
if (!sygdMxes.isEmpty()){
_index+=skbs;
if (_index>sygdMxes.size()){
_index=sygdMxes.size();
//throw new ServiceException(10009, StrUtil.format("船号:{},批次:{},三垮数控板数超过上料张数",item.getDcCh(),item.getDcPl()));
}
for (int i=start;i<_index;i++){
this.updateBySkbs(item,sygdMxes.get(i));
}
start+=skbs;
}else{
List<DmSygdMx> list = this.initBySkbs(item, skbs,ljList,dcFd);
addList.addAll(list);
}
}
this.saveBatch(addList);
ljList.forEach(lj-> addList.forEach(mx->{
if (lj.getDcch().equals(mx.getDcCh())
&&lj.getPl().equals(mx.getDcPl())
&& (StrUtil.isBlank(lj.getTzbh())||lj.getTzbh().equals(mx.getTzbh()))){
lj.setParentId(mx.getId());
}
}));
ljService.saveBatch(ljList,500);
}
});
}
private DmSygdMx initDefault(JhxfExcel item,String dcFd){
DmSygdMx dmSygdMx = new DmSygdMx();
dmSygdMx.setDcCh(item.getDcCh());
dmSygdMx.setDcPl(item.getDcPl());
dmSygdMx.setDcFd(dcFd);
dmSygdMx.setJssj(item.getFdxq());
if (item.getQwbBs()){
dmSygdMx.setQbs("1");
}
return dmSygdMx;
}
private List<DmSygdMx> initBySl(JhxfExcel item,List<DmSygdMxLj> bomList,String dcFd){
int slbs=0;
try {
slbs=Integer.parseInt(item.getBs1());
}catch (Exception ignored){}
List<DmSygdMx> addList=new ArrayList<>();
if (slbs>0){
if (bomList.isEmpty()){
DmSygdMx dmSygdMx = this.initDefault(item,dcFd);
addList.add(dmSygdMx);
return addList;
}
ArrayList<DmSygdMxLj> list = bomList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new)
);
for(int i=0;i<slbs;i++){
if (i>=list.size()){
break;
}
DmSygdMx init = this.initBySl(item,list.get(i),dcFd);
addList.add(init);
}
}
return addList;
}
private List<DmSygdMx> initByYklm(JhxfExcel item,int sl,List<DmSygdMxLj> bomList,String dcFd){
List<DmSygdMx> addList=new ArrayList<>();
if (bomList.isEmpty()){
DmSygdMx dmSygdMx = this.initDefault(item,dcFd);
addList.add(dmSygdMx);
return addList;
}
ArrayList<DmSygdMxLj> list = bomList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new)
);
for(int i=0;i<sl;i++){
if (i>=list.size()){
break;
}
DmSygdMx init = this.initByYklm(item,list.get(i),dcFd);
addList.add(init);
}
return addList;
}
private List<DmSygdMx> initByYksk(JhxfExcel item,int sl,List<DmSygdMxLj> bomList,String dcFd){
List<DmSygdMx> addList=new ArrayList<>();
if (bomList.isEmpty()){
DmSygdMx dmSygdMx = this.initDefault(item,dcFd);
addList.add(dmSygdMx);
return addList;
}
ArrayList<DmSygdMxLj> list = bomList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new)
);
for(int i=0;i<sl;i++){
if (i>=list.size()){
break;
}
DmSygdMx init = this.initByYksk(item,list.get(i),dcFd);
addList.add(init);
}
return addList;
}
private List<DmSygdMx> initByEklmbs(JhxfExcel item,int sl,List<DmSygdMxLj> bomList,String dcFd){
List<DmSygdMx> addList=new ArrayList<>();
if (bomList.isEmpty()){
DmSygdMx dmSygdMx = this.initDefault(item,dcFd);
addList.add(dmSygdMx);
return addList;
}
ArrayList<DmSygdMxLj> list = bomList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new)
);
for(int i=0;i<sl;i++){
if (i>=list.size()){
break;
}
DmSygdMx init = this.initByEklmbs(item,list.get(i),dcFd);
addList.add(init);
}
return addList;
}
private List<DmSygdMx> initByEksk(JhxfExcel item,int sl,List<DmSygdMxLj> bomList,String dcFd){
List<DmSygdMx> addList=new ArrayList<>();
if (bomList.isEmpty()){
DmSygdMx dmSygdMx = this.initDefault(item,dcFd);
addList.add(dmSygdMx);
return addList;
}
ArrayList<DmSygdMxLj> list = bomList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new)
);
for(int i=0;i<sl;i++){
if (i>=list.size()){
break;
}
DmSygdMx init = this.initByEksk(item,list.get(i),dcFd);
addList.add(init);
}
return addList;
}
private List<DmSygdMx> initBySksk(JhxfExcel item,int sl,List<DmSygdMxLj> bomList,String dcFd){
List<DmSygdMx> addList=new ArrayList<>();
if (bomList.isEmpty()){
DmSygdMx dmSygdMx = this.initDefault(item,dcFd);
addList.add(dmSygdMx);
return addList;
}
ArrayList<DmSygdMxLj> list = bomList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new)
);
for(int i=0;i<sl;i++){
if (i>=list.size()){
break;
}
DmSygdMx init = this.initBySksk(item,list.get(i),dcFd);
addList.add(init);
}
return addList;
}
private List<DmSygdMx> initBySkpt(JhxfExcel item,int sl,List<DmSygdMxLj> bomList,String dcFd){
List<DmSygdMx> addList=new ArrayList<>();
if (bomList.isEmpty()){
DmSygdMx dmSygdMx = this.initDefault(item,dcFd);
addList.add(dmSygdMx);
return addList;
}
ArrayList<DmSygdMxLj> list = bomList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new)
);
for(int i=0;i<sl;i++){
if (i>=list.size()){
break;
}
DmSygdMx init = this.initBySkpt(item,list.get(i),dcFd);
addList.add(init);
}
return addList;
}
private List<DmSygdMx> initBySkbs(JhxfExcel item,int sl,List<DmSygdMxLj> bomList,String dcFd){
List<DmSygdMx> addList=new ArrayList<>();
if (bomList.isEmpty()){
DmSygdMx dmSygdMx = this.initDefault(item,dcFd);
addList.add(dmSygdMx);
return addList;
}
ArrayList<DmSygdMxLj> list = bomList.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(DmSygdMxLj::getUniqueData))), ArrayList::new)
);
for(int i=0;i<sl;i++){
if (i>=list.size()){
break;
}
DmSygdMx init = this.initBySkbs(item,list.get(i),dcFd);
addList.add(init);
}
return addList;
}
private void updateByYklm(JhxfExcel item, DmSygdMx dmSygdMx){
dmSygdMx.setKw("7");
dmSygdMx.setQgrq(item.getYkpkjs());
}
private void updateByYksk(JhxfExcel item, DmSygdMx dmSygdMx){
dmSygdMx.setKw("8");
dmSygdMx.setQgrq(item.getYkpkjs());
}
private void updateByEklm(JhxfExcel item, DmSygdMx dmSygdMx){
dmSygdMx.setKw("5");
dmSygdMx.setQgrq(item.getLmqgks());
}
private void updateByEksk(JhxfExcel item, DmSygdMx dmSygdMx){
dmSygdMx.setKw("9");
dmSygdMx.setQgrq(item.getEkskks());
}
private void updateBySksk(JhxfExcel item, DmSygdMx dmSygdMx){
dmSygdMx.setKw("14");
dmSygdMx.setQgrq(item.getSkskqgks());
dmSygdMx.setQjgrq(item.getQptjs());
}
private void updateBySkpt(JhxfExcel item, DmSygdMx dmSygdMx){
dmSygdMx.setKw("6");
dmSygdMx.setQgrq(item.getPtks());
}
private void updateBySkbs(JhxfExcel item, DmSygdMx dmSygdMx){
dmSygdMx.setKw("15");
dmSygdMx.setQgrq(item.getPkqgjs());
}
private DmSygdMx initBySl(JhxfExcel item, DmSygdMxLj bom,String dcFd){
DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom);
dmSygdMx.setDcFd(dcFd);
dmSygdMx.setSlrq(item.getSl());
dmSygdMx.setXcpw(item.getXcpw());
dmSygdMx.setPwrq(item.getPw());
return dmSygdMx;
}
private DmSygdMx initByYklm(JhxfExcel item, DmSygdMxLj bom,String dcFd){
DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom);
dmSygdMx.setDcFd(dcFd);
this.updateByYklm(item,dmSygdMx);
return dmSygdMx;
}
private DmSygdMx initByYksk(JhxfExcel item, DmSygdMxLj bom,String dcFd){
DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom);
dmSygdMx.setDcFd(dcFd);
this.updateByYksk(item,dmSygdMx);
return dmSygdMx;
}
private DmSygdMx initByEklmbs(JhxfExcel item, DmSygdMxLj bom,String dcFd){
DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom);
dmSygdMx.setDcFd(dcFd);
this.updateByEklm(item,dmSygdMx);
return dmSygdMx;
}
private DmSygdMx initByEksk(JhxfExcel item, DmSygdMxLj bom,String dcFd){
DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom);
dmSygdMx.setDcFd(dcFd);
this.updateByEksk(item,dmSygdMx);
return dmSygdMx;
}
private DmSygdMx initBySksk(JhxfExcel item, DmSygdMxLj bom,String dcFd){
DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom);
dmSygdMx.setDcFd(dcFd);
this.updateBySksk(item,dmSygdMx);
return dmSygdMx;
}
private DmSygdMx initBySkpt(JhxfExcel item, DmSygdMxLj bom,String dcFd){
DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom);
dmSygdMx.setDcFd(dcFd);
this.updateBySkpt(item,dmSygdMx);
return dmSygdMx;
}
private DmSygdMx initBySkbs(JhxfExcel item, DmSygdMxLj bom,String dcFd){
DmSygdMx dmSygdMx = DmSygdMx.ofWithDmSygdMxlj(bom);
dmSygdMx.setDcFd(dcFd);
this.updateBySkbs(item,dmSygdMx);
return dmSygdMx;
}
}
Loading…
Cancel
Save