1.增加使用用板统计表.xlsx数据对余料调用信息进行修正的功能

master
董哲奇 1 week ago
parent e34e02a889
commit 27520ee03a

@ -242,20 +242,14 @@ public class DmYdjh implements Serializable {
private String ylbhgg;
//fixme 正式使用时需取消@TableField(exist = false)
@TableField(exist = false)
private String jhsyylbh;//计划使用余料编号
@TableField(exist = false)
private String ylCh;//来源余料船号
@TableField(exist = false)
private String ylPl;//来源余料批量
@TableField(exist = false)
private String ylTh;//来源余料图号
@TableField(exist = false)
private String ylbh;//来源余料编号
private String parentId;

@ -11,7 +11,6 @@ import lombok.Getter;
import lombok.Setter;
import java.math.BigDecimal;
import java.util.Arrays;
@Getter
@Setter
@ -154,10 +153,4 @@ public class DmYlInfo {
public enum UseStatus{
使,使,,
}
public static void main(String[] args) {
String a="1527*11360";
System.out.println(a.split("\\*").length);
// System.out.println(a.substring(a.indexOf("*")+1));
}
}

@ -20,8 +20,11 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@ -57,6 +60,7 @@ public class BomUploadController {
ResultBean bean= bomUploadService.uploadZ( file , czbh, pl,isupload, req,path);
Map map =(Map)bean.getData();
if(map.get("zt").equals("01")){
bomUploadService.updateYdjhYlUseInfo(file,czbh,pl);
if (uploadPDF(tltList, czbh, pl,date)) {
return bean;
}else {

@ -147,7 +147,7 @@ public class YlController {
out:
for (DmYdjh ydjh:list){
for(DmYlInfo ylInfo:dto.getYlList()){
if (ylInfo.(ydjh.getYlbhgg())){//暂时不支持,仅保留分支流程
if (ylInfo.(ydjh.getJhsyylbh())&&ylInfo.(ydjh)){//暂时不支持,仅保留分支流程
ylInfo.(ydjh);
.add(ylInfo);
continue out;

@ -2,9 +2,12 @@ package com.dsic.gj_erp.service.jcsj.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.dsic.gj_erp.bean.ResultBean;
import com.dsic.gj_erp.bean.jcsj.*;
import com.dsic.gj_erp.bean.jcsj.vo.BomVO;
@ -21,8 +24,10 @@ import com.dsic.gj_erp.service.jhgk.DmTzjhService;
import com.dsic.gj_erp.service.jhgk.DmYdjhService;
import com.dsic.gj_erp.service.pgd.PgdTzjhService;
import com.dsic.gj_erp.service.sy.SYService;
import com.dsic.gj_erp.util.ExcelUtil;
import com.dsic.gj_erp.util.MyFileUtil;
import com.dsic.gj_erp.util.ObjConvertUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -36,6 +41,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
/**
@ -46,6 +53,7 @@ import java.util.stream.Collectors;
* @author xn
* @since 2023-09-11
*/
@Slf4j
@Service
public class BomUploadServiceImpl {
private static String dezt;
@ -89,6 +97,65 @@ public class BomUploadServiceImpl {
@Autowired
DmYdjhService dmYdjhService;
public void updateYdjhYlUseInfo(MultipartFile[] file,String dcCh,String dcPl){
try {
String p=".*用板统计表.*[.xlsx?|.xls?]$";
Pattern r = Pattern.compile(p);
Arrays.stream(file)
.filter(item -> {
if(item.getOriginalFilename()!=null){
Matcher m = r.matcher(item.getOriginalFilename());
return m.matches();
}
return false;
}).forEach(item->{
if(StrUtil.isNotEmpty(item.getOriginalFilename())){
String tzbh="";
try {
List<String> lines = ExcelUtil.ReadExcelByLine(item.getInputStream(), item.getOriginalFilename());
boolean handlerFlag=false;
for (int i = 1; i < lines.size(); i++) {
String lastLine=lines.get(i-1);
if (StrUtil.containsAll(lastLine,"船号","批量")){
handlerFlag=false;
}
String line=lines.get(i);
if (StrUtil.containsAll(line,"船研所船体室套料科","打印时间")){
handlerFlag=false;
}
if (StrUtil.containsAll(lastLine,"余料编号","余料规格","调用信息","转出信息")){
handlerFlag=true;
}
if (handlerFlag){
String[] split = line.split(" ");
if (StrUtil.isAllEmpty(split)){
continue;
}
if (split.length<=8){
continue;
}
tzbh=split[8];
if (StrUtil.isEmpty(tzbh)){
continue;
}
dmYdjhService.update(Wrappers.<DmYdjh>update().set("jhsyylbh",tzbh)
.eq("dc_ch", dcCh)
.eq("dc_pl", dcPl)
.eq("tzbh", split[1])
);
}
}
} catch (IOException e) {
log.info("修正余料计划调用信息失败,船号:{},批次:{},图号:{}",dcCh,dcPl,tzbh);
}
}
});
}catch (Exception e) {
log.info("修正余料计划调用信息失败,船号:{},批次:{}",dcCh,dcPl);
}
}
@Transactional(rollbackFor = Exception.class)
public ResultBean uploadZ(MultipartFile[] file, String czbh, String pl, String isupload, HttpServletRequest req,String path) throws IOException, CustomException, ScriptException {
String savePath = UUID.randomUUID().toString().replace("-", "");

@ -14,6 +14,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
@ -37,6 +38,19 @@ public class ExcelUtil {
return new ArrayList<>();
}
public static List<String> ReadExcelByLine(InputStream fis, String fileName){
try (Workbook workbook = new XSSFWorkbook(fis)) { // 对于xls文件使用HSSFWorkbook
return handler(workbook);
} catch (IOException e) {
try (Workbook workbook = new HSSFWorkbook(fis)){
return handler(workbook);
}catch (IOException e1){
log.info("{}损坏",fileName);
}
}
return new ArrayList<>();
}
private static List<String> handler(Workbook workbook){
ArrayList<String> strs = new ArrayList<>();
Sheet sheet = workbook.getSheetAt(1); // 获取第一个工作表

Loading…
Cancel
Save