Merge remote-tracking branch 'origin/master'

master
董哲奇 7 months ago
commit 3042d2633c

@ -206,6 +206,27 @@ public class DmSygdMx implements Serializable {
private String dmgxbm; private String dmgxbm;
private String qjggxbm; private String qjggxbm;
@ApiModelProperty(value = "面板挤边")
private String mbjb;
@ApiModelProperty(value = "七垮型材米数")
private String qkxcms;
@ApiModelProperty(value = "型材面板")
private String xcmb;
@ApiModelProperty(value = "分段需求/小组配送结束")
private String fdxq;
@ApiModelProperty(value = "光电结束")
private String gdjs;
@ApiModelProperty(value = "备注")
private String bz;
private String bzry;
private String bzrq;
private String drbs;
public void (Constant. _,String date){ public void (Constant. _,String date){
switch(_){ switch(_){

@ -0,0 +1,207 @@
package com.dsic.gj_erp.bean.jhgk.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* JhxfExcel:
*
* @author xhj
* @date 2024/10/09
*/
@Data
public class JhxfExcel {
@ExcelProperty("产品")
private String dcCh;
@ExcelProperty("批量")
private String dcPl;
@ExcelProperty("分段")
private String dcFd;
@ApiModelProperty(value = "板数")
@ExcelProperty("板数")
private String bs1;
@ApiModelProperty(value = "上料")
@ExcelProperty("上料")
@DateTimeFormat("yyyy/MM/dd")
private String sl;
@ApiModelProperty(value = "型材抛丸")
@ExcelProperty("型材抛丸")
@DateTimeFormat("yyyy/MM/dd")
private String xcpw;
@ApiModelProperty(value = "抛丸")
@ExcelProperty("抛丸")
@DateTimeFormat("yyyy/MM/dd")
private String pw;
@ApiModelProperty(value = "一垮龙门板数")
@ExcelProperty("一垮龙门板数")
private String yklm;
@ApiModelProperty(value = "一垮数控板数")
@ExcelProperty("一垮数控板数")
private String yksk;
@ExcelProperty("大板切割开始")
@DateTimeFormat("yyyy/MM/dd")
private String dbqgks;
@ApiModelProperty(value = "坡口切割结束")
@ExcelProperty("坡口切割结束")
@DateTimeFormat("yyyy/MM/dd")
private String ykpkjs;
@ExcelProperty("二垮龙门板数")
private String eklmbs;
@ExcelProperty("龙门切割开始")
@DateTimeFormat("yyyy/MM/dd")
private String lmqgks;
@ExcelProperty("龙门切割结束")
@DateTimeFormat("yyyy/MM/dd")
private String lmqgjs;
@ApiModelProperty(value = "二垮数控板数")
@ExcelProperty("二垮数控板数")
private String eksk;
@ApiModelProperty(value = "数控切割开始")
@ExcelProperty(value ="数控切割开始",index=16)
@DateTimeFormat("yyyy/MM/dd")
private String ekskks;
@ApiModelProperty(value = "坡口切割结束")
@ExcelProperty(value ="坡口切割结束",index=17)
@DateTimeFormat("yyyy/MM/dd")
private String ekpkjs;
@ApiModelProperty(value = "三垮数控板数")
@ExcelProperty("三垮数控板数")
private String sksk;
@ApiModelProperty(value = "数控切割开始")
@ExcelProperty(value ="数控切割开始",index=19)
@DateTimeFormat("yyyy/MM/dd")
private String skskqgks;
@ApiModelProperty(value = "坡口切割结束")
@ExcelProperty(value ="坡口切割结束",index=20)
@DateTimeFormat("yyyy/MM/dd")
private String skpkjs;
@ApiModelProperty(value = "三垮平铁板数")
@ExcelProperty("三垮平铁板数")
private String skpt;
@ApiModelProperty(value = "平铁切割开始")
@ExcelProperty("平铁切割开始")
@DateTimeFormat("yyyy/MM/dd")
private String ptks;
@ApiModelProperty(value = "平铁切割结束")
@ExcelProperty("平铁切割结束")
@DateTimeFormat("yyyy/MM/dd")
private String ptjs;
@ApiModelProperty(value = "曲平铁转结束")
@ExcelProperty("曲平铁转结束")
@DateTimeFormat("yyyy/MM/dd")
private String qpt_zjs;
@ApiModelProperty(value = "曲平铁结束")
@ExcelProperty("曲平铁结束")
@DateTimeFormat("yyyy/MM/dd")
private String qptjs;
@ApiModelProperty(value = "曲外板结束")
@ExcelProperty("曲外板结束")
@DateTimeFormat("yyyy/MM/dd")
private String qwbjs;
@ApiModelProperty(value = "组立")
@ExcelProperty("组立")
private String zl;
@ApiModelProperty(value = "腹板板数")
@ExcelProperty("腹板板数")
private String fbbs;
@ApiModelProperty(value = "腹板切割开始")
@ExcelProperty("腹板切割开始")
@DateTimeFormat("yyyy/MM/dd")
private String fbqgks;
@ApiModelProperty(value = "腹板切割结束")
@ExcelProperty("腹板切割结束")
@DateTimeFormat("yyyy/MM/dd")
private String fbqgjs;
@ApiModelProperty(value = "数控板数")
@ExcelProperty("数控板数")
private String skbs;
@ApiModelProperty(value = "数控切割开始")
@ExcelProperty(value = "数控切割开始",index = 32)
@DateTimeFormat("yyyy/MM/dd")
private String skqgks;
@ApiModelProperty(value = "坡口切割结束")
@ExcelProperty(value = "坡口切割结束",index = 33)
@DateTimeFormat("yyyy/MM/dd")
private String pkqgjs;
@ApiModelProperty(value = "面板挤边")
@ExcelProperty("面板挤边")
@DateTimeFormat("yyyy/MM/dd")
private String mbjb;
@ApiModelProperty(value = "七垮型材米数")
@ExcelProperty("七垮型材米数")
private String qkxcms;
@ApiModelProperty(value = "型材面板")
@ExcelProperty("型材面板")
@DateTimeFormat("yyyy/MM/dd")
private String xcmb;
@ApiModelProperty(value = "分段需求/小组配送结束")
@ExcelProperty("小组配送结束")
@DateTimeFormat("yyyy/MM/dd")
private String fdxq;
@ApiModelProperty(value = "光电结束")
@ExcelProperty("光电结束")
@DateTimeFormat("yyyy/MM/dd")
private String gdjs;
@ApiModelProperty(value = "备注")
@ExcelProperty("备注")
private String bz;
}

@ -3,6 +3,7 @@ package com.dsic.gj_erp.controller.jhgk;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.dsic.gj_erp.annotation.AuthFunction; import com.dsic.gj_erp.annotation.AuthFunction;
@ -11,22 +12,29 @@ import com.dsic.gj_erp.bean.jcsj.DmCzplpNew;
import com.dsic.gj_erp.bean.jcsj.EmGcrl; import com.dsic.gj_erp.bean.jcsj.EmGcrl;
import com.dsic.gj_erp.bean.jcsj.EmSbcnp; import com.dsic.gj_erp.bean.jcsj.EmSbcnp;
import com.dsic.gj_erp.bean.jcsj.EmSbjbb; import com.dsic.gj_erp.bean.jcsj.EmSbjbb;
import com.dsic.gj_erp.bean.jcsj.excel.PlExcel;
import com.dsic.gj_erp.bean.jhgk.DmQfxq; import com.dsic.gj_erp.bean.jhgk.DmQfxq;
import com.dsic.gj_erp.bean.jhgk.DmSygd; import com.dsic.gj_erp.bean.jhgk.DmSygd;
import com.dsic.gj_erp.bean.jhgk.DmSygdMx; import com.dsic.gj_erp.bean.jhgk.DmSygdMx;
import com.dsic.gj_erp.bean.jhgk.DmYdjhxf; import com.dsic.gj_erp.bean.jhgk.DmYdjhxf;
import com.dsic.gj_erp.bean.jhgk.excel.JhxfExcel;
import com.dsic.gj_erp.handler.ComputePlan; import com.dsic.gj_erp.handler.ComputePlan;
import com.dsic.gj_erp.listeners.ExcelJhxfListener;
import com.dsic.gj_erp.listeners.ExcelPlListener;
import com.dsic.gj_erp.pc.Manager; import com.dsic.gj_erp.pc.Manager;
import com.dsic.gj_erp.pc.; import com.dsic.gj_erp.pc.;
import com.dsic.gj_erp.service.jcsj.EmGcrlService; import com.dsic.gj_erp.service.jcsj.EmGcrlService;
import com.dsic.gj_erp.service.jcsj.EmSbcnpService; import com.dsic.gj_erp.service.jcsj.EmSbcnpService;
import com.dsic.gj_erp.service.jhgk.DmSygdMxService; import com.dsic.gj_erp.service.jhgk.DmSygdMxService;
import com.dsic.gj_erp.service.sy.SYService; import com.dsic.gj_erp.service.sy.SYService;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.*; import java.util.*;
import java.util.concurrent.Semaphore; import java.util.concurrent.Semaphore;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -144,5 +152,21 @@ public class DmSygdMxController {
return service.tqSygd(from,to); return service.tqSygd(from,to);
} }
@RequestMapping("/ydjhImport")
@AuthFunction
public ResultBean ydjhImport(@RequestParam("file") MultipartFile file , String isupload, HttpServletRequest req) throws IOException {
ExcelJhxfListener objectListener = new ExcelJhxfListener();
EasyExcel.read(file.getInputStream(), JhxfExcel.class, objectListener).sheet(0).headRowNumber(1).doRead();
List<JhxfExcel> objList = objectListener.getObjectList();
service.ydjhImport(objList);
return new ResultBean();
}
} }

@ -0,0 +1,154 @@
package com.dsic.gj_erp.listeners;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.dsic.gj_erp.bean.jhgk.excel.JhxfExcel;
import com.dsic.gj_erp.util.ObjConvertUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* Excel
*/
public class ExcelJhxfListener extends AnalysisEventListener<JhxfExcel> {
private static final int BATCH_COUNT = 5;
List<JhxfExcel> objectList = new ArrayList<>();
List<Object> headList = new ArrayList<>();
private String sheetName;
List<JhxfExcel> datas = new ArrayList<JhxfExcel>();
private String dcch;
private String dcpl;
@Override
public void invoke(JhxfExcel excelDemo, AnalysisContext analysisContext) {
//每解析一行数据,就会调用该方法一次
//正常在这里调用数据处理得办法
//一条数据添加到暂时存储的存储结构中
if(StringUtils.isBlank(excelDemo.getDcCh())){
excelDemo.setDcCh(dcch);
}else{
dcch=excelDemo.getDcCh();
}
if(StringUtils.isBlank(excelDemo.getDcPl())){
excelDemo.setDcPl(dcpl);
}else{
dcpl=excelDemo.getDcPl();
}
boolean a=false;
// 9个数量都为空 不导入
if(StringUtils.isBlank(excelDemo.getBs1()) &&
StringUtils.isBlank(excelDemo.getYklm())&&
StringUtils.isBlank(excelDemo.getYksk())&&
StringUtils.isBlank(excelDemo.getEklmbs())&&
StringUtils.isBlank(excelDemo.getEksk())&&
StringUtils.isBlank(excelDemo.getSksk())&&
StringUtils.isBlank(excelDemo.getSkpt())&&
StringUtils.isBlank(excelDemo.getFbbs())&&
StringUtils.isBlank(excelDemo.getSkbs())
){
a=true;
}
boolean b = ObjConvertUtils.checkObjAllFieldsIsNull(excelDemo);
if(!b && !a){
datas.add(excelDemo);
}
//
// 达到BATCH_COUNT了需要去存储一次数据库防止数据几万条数据在内存容易OOM
if (datas.size() >= BATCH_COUNT) {
saveData();
// 存储完成清理 list
datas.clear();
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
//获取sheetName
saveData();
sheetName = context.readSheetHolder().getSheetName();
// LOGGER.info("所有数据解析完成!");
}
//获取表头
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
//把表头数据加入到存储结构中
headList.add(headMap);
}
/**
*
*/
private void saveData() {
//添加到返回的存储结构中,也可直接存储到数据库
objectList.addAll(datas);
}
public List<JhxfExcel> getDatas() {
return datas;
}
public void setDatas(List<JhxfExcel> datas) {
this.datas = datas;
}
public List<JhxfExcel> getObjectList() {
return objectList;
}
public void setObjectList(List<JhxfExcel> objectList) {
this.objectList = objectList;
}
public String getSheetName() {
return sheetName;
}
public void setSheetName(String sheetName) {
this.sheetName = sheetName;
}
public List<Object> getHeadList() {
return headList;
}
public void setHeadList(List<Object> headList) {
this.headList = headList;
}
public String getDcch() {
return dcch;
}
public void setDcch(String dcch) {
this.dcch = dcch;
}
public String getDcpl() {
return dcpl;
}
public void setDcpl(String dcpl) {
this.dcpl = dcpl;
}
}

@ -2,9 +2,11 @@ package com.dsic.gj_erp.service.jhgk;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.ResultBean;
import com.dsic.gj_erp.bean.jcsj.excel.PlExcel;
import com.dsic.gj_erp.bean.jhgk.DmSygdMx; import com.dsic.gj_erp.bean.jhgk.DmSygdMx;
import com.dsic.gj_erp.bean.jhgk.DmYdjhxf; import com.dsic.gj_erp.bean.jhgk.DmYdjhxf;
import com.dsic.gj_erp.bean.jhgk.dto.*; import com.dsic.gj_erp.bean.jhgk.dto.*;
import com.dsic.gj_erp.bean.jhgk.excel.JhxfExcel;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import java.util.HashMap; import java.util.HashMap;
@ -32,4 +34,7 @@ public interface DmSygdMxService extends IService<DmSygdMx> {
List<DmYdjhxf> tqSygd1(String begin, String end); List<DmYdjhxf> tqSygd1(String begin, String end);
Object cgjhdhqk(Map<String,Object> map); Object cgjhdhqk(Map<String,Object> map);
void ydjhImport(List<JhxfExcel> objList);
} }

@ -9,12 +9,15 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature; import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.dsic.gj_erp.bean.ResultBean; import com.dsic.gj_erp.bean.ResultBean;
import com.dsic.gj_erp.bean.jcsj.*; import com.dsic.gj_erp.bean.jcsj.*;
import com.dsic.gj_erp.bean.jhgk.*; import com.dsic.gj_erp.bean.jhgk.*;
import com.dsic.gj_erp.bean.jhgk.dto.*; import com.dsic.gj_erp.bean.jhgk.dto.*;
import com.dsic.gj_erp.bean.jhgk.excel.JhxfExcel;
import com.dsic.gj_erp.bean.sy.Dm_zhbmp; import com.dsic.gj_erp.bean.sy.Dm_zhbmp;
import com.dsic.gj_erp.dao.sy.Dm_zhbmpRepository; import com.dsic.gj_erp.dao.sy.Dm_zhbmpRepository;
import com.dsic.gj_erp.handler.ComputePlan; import com.dsic.gj_erp.handler.ComputePlan;
@ -22,6 +25,8 @@ import com.dsic.gj_erp.handler.dto.RealCapacity;
import com.dsic.gj_erp.mapper.jhgk.DmSygdMxMapper; import com.dsic.gj_erp.mapper.jhgk.DmSygdMxMapper;
import com.dsic.gj_erp.service.jcsj.EmSbcnpService; import com.dsic.gj_erp.service.jcsj.EmSbcnpService;
import com.dsic.gj_erp.service.jhgk.*; import com.dsic.gj_erp.service.jhgk.*;
import com.dsic.gj_erp.util.MyString;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -171,6 +176,8 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
return baseMapper.cgjhdhqk(map); return baseMapper.cgjhdhqk(map);
} }
/** /**
* *
* BOM * BOM
@ -936,6 +943,7 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
if ("5".equals(item.getKw())){ if ("5".equals(item.getKw())){
eksk2.updateAndGet(v -> v + 1); eksk2.updateAndGet(v -> v + 1);
} }
if ("14".equals(item.getKw())){ if ("14".equals(item.getKw())){
sksk.updateAndGet(v -> v + 1); sksk.updateAndGet(v -> v + 1);
} }
@ -965,6 +973,10 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
val.stream().filter(item->StrUtil.isNotEmpty(item.getPwrq())) val.stream().filter(item->StrUtil.isNotEmpty(item.getPwrq()))
.min(Comparator.comparing(DmSygdMx::getPwrq)).ifPresent(item -> dmYdjhxf.setPw(item.getPwrq())); .min(Comparator.comparing(DmSygdMx::getPwrq)).ifPresent(item -> dmYdjhxf.setPw(item.getPwrq()));
val.stream().filter(item->StrUtil.isNotEmpty(item.getGdjs()))
.min(Comparator.comparing(DmSygdMx::getPwrq)).ifPresent(item -> dmYdjhxf.setGdjs(item.getGdjs()));
//一跨龙门数量 //一跨龙门数量
dmYdjhxf.setYklm(yklm.get()+""); dmYdjhxf.setYklm(yklm.get()+"");
//一跨数控数量 //一跨数控数量
@ -989,7 +1001,8 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
dmYdjhxf.setSkpt(skpt.get()+""); dmYdjhxf.setSkpt(skpt.get()+"");
val.stream().filter(item->"6".equals(item.getKw())) val.stream().filter(item->"6".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setPtks(item.getQgrq())); .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setPtks(item.getQgrq()));
val.stream().filter(item->"6".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setPtjs(item.getQjgrq()));
dmYdjhxf.setSkbs(skbs.get()+""); dmYdjhxf.setSkbs(skbs.get()+"");
val.stream().filter(item->"15".equals(item.getKw())) val.stream().filter(item->"15".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkqgks(item.getQgrq())); .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkqgks(item.getQgrq()));
@ -998,6 +1011,9 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
val.stream().filter(item->"11".equals(item.getKw())) val.stream().filter(item->"11".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkbs2(item.getQgrq())); .min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setSkbs2(item.getQgrq()));
val.stream().filter(item->"7".equals(item.getKw()))
.min(Comparator.comparing(DmSygdMx::getQgrq)).ifPresent(item -> dmYdjhxf.setYkpkjs(item.getQgrq()));
dmYdjhxf.setFdxq(val.get(0).getJssj()); dmYdjhxf.setFdxq(val.get(0).getJssj());
list2.add(dmYdjhxf); list2.add(dmYdjhxf);
}); });
@ -1045,4 +1061,381 @@ public class DmSygdMxServiceImpl extends ServiceImpl<DmSygdMxMapper, DmSygdMx> i
return this.tqSygd2(begin,end); return this.tqSygd2(begin,end);
} }
@Override
public void ydjhImport(List<JhxfExcel> objList) {
// 1,同产品与批量视为一条记录 dcch dcpl
// 2,板数是否为空 不为空循环板数增加记录(还有一个其他集合) bs1=7
//3,后续数量中 bs2=2 bs3=5 其中两条rq='2024/10/25' 另外五条rq='2024/10/23'
String dcch="";
String dcpl="";
int zz=0;
int num=0;
int zsl=0;
List<DmSygdMx> overlist=new ArrayList<>();
Map<String,List<DmSygdMx>> map =new HashMap();
for (int i = 0; i < objList.size(); i++) {
JhxfExcel jhxfExcel = objList.get(i);
if(!dcch.equals(jhxfExcel.getDcCh()) || !dcpl.equals(jhxfExcel.getDcPl())){
//if(StringUtils.isBlank(dcch)){
dcch=jhxfExcel.getDcCh();
//}
// if(StringUtils.isBlank(dcpl)){
dcpl=jhxfExcel.getDcPl();
num=0;
zsl=0;
zz=0;
// }
//进行循环
String bs1 = jhxfExcel.getBs1();
// int num=0;
if(StringUtils.isNotBlank(bs1)){
num= MyString.convertStringToNumber(bs1);
}
List<DmSygdMx> insertsOne= new ArrayList<>();
if(num>0){
for (int j = 0; j < num; j++) {
// 生成数据
DmSygdMx sygdMx= new DmSygdMx();
sygdMx.setDcCh(jhxfExcel.getDcCh());
sygdMx.setDcPl(jhxfExcel.getDcPl());
sygdMx.setDcFd(jhxfExcel.getDcFd());
sygdMx.setSlrq(jhxfExcel.getSl());
sygdMx.setPwrq(jhxfExcel.getPw());
sygdMx.setZl(jhxfExcel.getZl());
sygdMx.setJssj(jhxfExcel.getFdxq());
// @ApiModelProperty(value = "面板挤边")
// private String mbjb;
// @ApiModelProperty(value = "七垮型材米数")
// private String qkxcms;
// @ApiModelProperty(value = "型材面板")
// private String xcmb;
// @ApiModelProperty(value = "分段需求/小组配送结束")
// private String fdxq;
// @ApiModelProperty(value = "光电结束")
// private String gdjs;
// @ApiModelProperty(value = "备注")
// private String bz;
//
// private String bzry;
// private String bzrq;
sygdMx.setMbjb(jhxfExcel.getMbjb());
sygdMx.setQkxcms(jhxfExcel.getQkxcms());
sygdMx.setXcmb(jhxfExcel.getXcmb());
sygdMx.setFdxq(jhxfExcel.getFdxq());
sygdMx.setGdjs(jhxfExcel.getGdjs());
sygdMx.setBz(jhxfExcel.getBz());
insertsOne.add(sygdMx);
}
}else{
continue;
}
int yklm=0;
if(StringUtils.isNotBlank(jhxfExcel.getYklm())){
yklm= MyString.convertStringToNumber(jhxfExcel.getYklm());
}
if(yklm>0){
zz=yklm;
for (int j = 0; j < yklm; j++) {
// 生成数据
insertsOne.get(j).setKw("7");
insertsOne.get(j).setQgrq(jhxfExcel.getYkpkjs());
zsl++;
if(zsl>num){
continue;
}
}
}
int yksk=0;
if(StringUtils.isNotBlank(jhxfExcel.getYksk())){
yksk= MyString.convertStringToNumber(jhxfExcel.getYksk());
}
if(yksk>0){
for (int j = 0; j < yksk; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("8");
insertsOne.get(zz+j).setQgrq(jhxfExcel.getYkpkjs());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+yksk;
}
int eklmbs=0;
if(StringUtils.isNotBlank(jhxfExcel.getEklmbs())){
eklmbs= MyString.convertStringToNumber(jhxfExcel.getEksk());
}
if(eklmbs>0){
for (int j = 0; j < eklmbs; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("5");
insertsOne.get(zz+j).setQgrq(jhxfExcel.getLmqgks());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+eklmbs;
}
int eksk=0;
if(StringUtils.isNotBlank(jhxfExcel.getEksk())){
eksk= MyString.convertStringToNumber(jhxfExcel.getEksk());
}
if(eksk>0){
for (int j = 0; j < eksk; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("9");/// 2跨超长超宽曲板 // 2跨T型材腹板 //2跨超长超宽板
insertsOne.get(zz+j).setQgrq(jhxfExcel.getEkskks());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+eksk;
}
int sksk=0;
if(StringUtils.isNotBlank(jhxfExcel.getSksk())){
sksk= MyString.convertStringToNumber(jhxfExcel.getSksk());
}
if(sksk>0){
for (int j = 0; j < sksk; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("14");///3跨曲板 // 3跨厚板
insertsOne.get(zz+j).setQgrq(jhxfExcel.getSkskqgks());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+sksk;
}
int skpt=0;
if(StringUtils.isNotBlank(jhxfExcel.getSkpt())){
skpt= MyString.convertStringToNumber(jhxfExcel.getSkpt());
}
if(skpt>0){
for (int j = 0; j < skpt; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("6");///3跨曲板 // 3跨厚板
insertsOne.get(zz+j).setQgrq(jhxfExcel.getPtks());
insertsOne.get(zz+j).setQjgrq(jhxfExcel.getQptjs());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+skpt;
}
int skbs=0;
if(StringUtils.isNotBlank(jhxfExcel.getSkbs())){
skbs= MyString.convertStringToNumber(jhxfExcel.getSkbs());
}
if(skbs>0){
for (int j = 0; j < skbs; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("15");///3跨曲板 // 3跨厚板
insertsOne.get(zz+j).setQgrq(jhxfExcel.getSkqgks());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+skbs;
}
map.put(dcch+dcpl,insertsOne);
}{
List<DmSygdMx> insertsOne = map.get(dcch + dcpl);
int yklm=0;
if(StringUtils.isNotBlank(jhxfExcel.getYklm())){
yklm= MyString.convertStringToNumber(jhxfExcel.getYklm());
}
if(yklm>0){
zz=yklm;
for (int j = 0; j < yklm; j++) {
// 生成数据
insertsOne.get(j).setKw("7");
insertsOne.get(j).setQgrq(jhxfExcel.getYkpkjs());
zsl++;
if(zsl>num){
continue;
}
}
}
int yksk=0;
if(StringUtils.isNotBlank(jhxfExcel.getYksk())){
yksk= MyString.convertStringToNumber(jhxfExcel.getYksk());
}
if(yksk>0){
for (int j = 0; j <yksk; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("8");
insertsOne.get(zz+j).setQgrq(jhxfExcel.getYkpkjs());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+yksk;
}
int eklmbs=0;
if(StringUtils.isNotBlank(jhxfExcel.getEklmbs())){
eklmbs= MyString.convertStringToNumber(jhxfExcel.getEksk());
}
if(eklmbs>0){
for (int j = 0; j < eklmbs; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("5");
insertsOne.get(zz+j).setQgrq(jhxfExcel.getLmqgks());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+eklmbs;
}
int eksk=0;
if(StringUtils.isNotBlank(jhxfExcel.getEksk())){
eksk= MyString.convertStringToNumber(jhxfExcel.getEksk());
}
if(eksk>0){
for (int j = 0; j < eksk; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("9");/// 2跨超长超宽曲板 // 2跨T型材腹板 //2跨超长超宽板
insertsOne.get(zz+j).setQgrq(jhxfExcel.getEkskks());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+eksk;
}
int sksk=0;
if(StringUtils.isNotBlank(jhxfExcel.getSksk())){
sksk= MyString.convertStringToNumber(jhxfExcel.getSksk());
}
if(sksk>0){
for (int j = 0; j < sksk; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("14");///3跨曲板 // 3跨厚板
insertsOne.get(zz+j).setQgrq(jhxfExcel.getSkskqgks());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+sksk;
}
int skpt=0;
if(StringUtils.isNotBlank(jhxfExcel.getSkpt())){
skpt= MyString.convertStringToNumber(jhxfExcel.getSkpt());
}
if(skpt>0){
for (int j = 0; j < skpt; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("6");///3跨曲板 // 3跨厚板
insertsOne.get(zz+j).setQgrq(jhxfExcel.getPtks());
insertsOne.get(zz+j).setQjgrq(jhxfExcel.getQptjs());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+skpt;
}
int skbs=0;
if(StringUtils.isNotBlank(jhxfExcel.getSkbs())){
skbs= MyString.convertStringToNumber(jhxfExcel.getSkbs());
}
if(skbs>0){
for (int j = 0; j < skbs; j++) {
// 生成数据
insertsOne.get(zz+j).setKw("15");///3跨曲板 // 3跨厚板
insertsOne.get(zz+j).setQgrq(jhxfExcel.getSkqgks());
zsl++;
if(zsl>num){
continue;
}
}
zz=zz+skbs;
}
map.put(dcch+dcpl,insertsOne);
}
}
for (Map.Entry<String, List<DmSygdMx>> entry : map.entrySet()) {
String key = entry.getKey();
List<DmSygdMx> value = entry.getValue();
// 打印键和值
System.out.println("Key: " + key);
System.out.println("Value: " + value);
// 如果需要这里还可以进一步遍历List<DmSygdMx>
for (DmSygdMx item : value) {
// 对每个DmSygdMx对象进行操作
System.out.println("DmSygdMx Object: " + item);
/// 简单根据 船号 批量 删除后重复导入
this.remove(new QueryWrapper<DmSygdMx>().eq("dc_ch",item.getDcCh()).eq("dc_pl",item.getDcPl())
.eq("dc_fd",item.getDcFd())
);
}
for (DmSygdMx item : value) {
item.setId(IdWorker.get32UUID());
item.setDrbs("Y");
this.save(item);
}
}
}
} }

@ -24,6 +24,28 @@ public class MyString {
return sb.toString(); return sb.toString();
} }
public static Integer convertStringToNumber(String str) {
// 判断字符串是否为 null 或者空字符串
if (str == null || str.isEmpty()) {
return null; // 这里返回 null 或者其他逻辑
}
// 判断字符串是否为数字
for (char c : str.toCharArray()) {
if (!Character.isDigit(c)) {
return null; // 这里返回 null 或者其他逻辑
}
}
try {
// 将字符串转换为数字
return Integer.parseInt(str);
} catch (NumberFormatException e) {
e.printStackTrace();
return null; // 转换失败时返回 null
}
}
/** /**
* findtest * findtest
* @param srcText * @param srcText

Loading…
Cancel
Save