虚拟清单--导入修改

This commit is contained in:
zhn
2022-04-22 11:49:45 +08:00
parent edd0c04251
commit ed9ec17a36
@@ -418,7 +418,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
//titleTwo //titleTwo
String[] headerArrTwo = titleTwo.split(","); String[] headerArrTwo = titleTwo.split(",");
for (int j = 0; j < headerArrTwo.length; j++) { for (int j = 0; j < headerArrTwo.length; j++) {
row.createCell(7+j).setCellValue(headerArrTwo[j]); row.createCell(8+j).setCellValue(headerArrTwo[j]);
} }
}else{ }else{
short height = (short) (7 * 252); short height = (short) (7 * 252);
@@ -584,7 +584,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
public void importData(MultipartFile file, DummyInventoryInfoEO dummyInventoryInfoEO) { public void importData(MultipartFile file, DummyInventoryInfoEO dummyInventoryInfoEO) {
String title = ""; String title = "";
if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){
title = "编号,标题,子标题,适用范围,状态,对应标准,实施类别,新车实施日期,在产车实施日期,WVTA ID,认证类型,认证级别,技术领域,责任领域,适用地区,备注," + title = "*编号,子标题,实施类别,WVTA ID,认证类型,*认证级别,*责任领域,备注," +
"设计交付物类型,设计交付物模板,设计发起人,设计责任人,pre交付物类型,pre交付物模板,pre发起人,pre责任人,验证交付物类型,验证交付物模板,验证发起人,验证责任人"; "设计交付物类型,设计交付物模板,设计发起人,设计责任人,pre交付物类型,pre交付物模板,pre发起人,pre责任人,验证交付物类型,验证交付物模板,验证发起人,验证责任人";
}else{ }else{
@@ -689,9 +689,6 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
StringBuilder headerSb = new StringBuilder(); StringBuilder headerSb = new StringBuilder();
int rowNos = sheet.getLastRowNum();// 得到excel的总记录条数 int rowNos = sheet.getLastRowNum();// 得到excel的总记录条数
for (int i = 0; i <= rowNos; i++) { for (int i = 0; i <= rowNos; i++) {
// if (i == 1) {
// continue;
// }
Row row = sheet.getRow(i); Row row = sheet.getRow(i);
Row headerRow = sheet.getRow(i); Row headerRow = sheet.getRow(i);
boolean isBlank = isRowEmpty(row); boolean isBlank = isRowEmpty(row);
@@ -706,21 +703,21 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
if (i == 0) { if (i == 0) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING); cell.setCellType(HSSFCell.CELL_TYPE_STRING);
headerSb.append(cell.getStringCellValue() + ","); headerSb.append(cell.getStringCellValue() + ",");
if(j == 15){ if(j == 7){
break; break;
} }
}else if(i == 1){ }else if(i == 1){
if(j > 15){ if(j > 7){
String flag = ""; String flag = "";
if(15 < j && j < 20){ if(7 < j && j < 12){
flag ="设计"; flag ="设计";
key = flag + headerCell.getStringCellValue(); key = flag + headerCell.getStringCellValue();
} }
if(19 < j && j < 24){ if(11 < j && j < 16){
flag ="pre"; flag ="pre";
key = flag + headerCell.getStringCellValue(); key = flag + headerCell.getStringCellValue();
} }
if(23 < j && j < 28){ if(15 < j && j < 20){
flag ="验证"; flag ="验证";
key = flag + headerCell.getStringCellValue(); key = flag + headerCell.getStringCellValue();
@@ -819,7 +816,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
List<String> msgList = new ArrayList<>(); List<String> msgList = new ArrayList<>();
String value = ""; String value = "";
boolean flag = true; boolean flag = true;
//编号验重 //编号验证
List<BussDocumentLibraryEO> bussDocumentLibraryEOList = verifySerialNumber(dataList); List<BussDocumentLibraryEO> bussDocumentLibraryEOList = verifySerialNumber(dataList);
for (DummyInventoryInfoEO dummyInventoryInfoEO : dataList) { for (DummyInventoryInfoEO dummyInventoryInfoEO : dataList) {
i++; i++;
@@ -832,28 +829,25 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
//编号 //编号
String serialNumber = dummyInventoryInfoEO.getSerialNumber(); String serialNumber = dummyInventoryInfoEO.getSerialNumber();
//标题 //标题
String title = dummyInventoryInfoEO.getTitle(); // String title = dummyInventoryInfoEO.getTitle();
//子标题 //子标题
String subtitle = dummyInventoryInfoEO.getSubtitle(); String subtitle = dummyInventoryInfoEO.getSubtitle();
//对应标准 //对应标准
String correspondingStandard = dummyInventoryInfoEO.getCorrespondingStandard(); // String correspondingStandard = dummyInventoryInfoEO.getCorrespondingStandard();
//状态 //状态
String state = dummyInventoryInfoEO.getState(); // String state = dummyInventoryInfoEO.getState();
//认证级别 //认证级别
String attestationRank = dummyInventoryInfoEO.getAttestationRank(); String attestationRank = dummyInventoryInfoEO.getAttestationRank();
//责任领域 //责任领域
String dutyTerritory = dummyInventoryInfoEO.getDutyTerritory(); String dutyTerritory = dummyInventoryInfoEO.getDutyTerritory();
//适用范围 //适用范围
String shi4Yong4Fan4Wei2 = dummyInventoryInfoEO.getShi4Yong4Fan4Wei2(); // String shi4Yong4Fan4Wei2 = dummyInventoryInfoEO.getShi4Yong4Fan4Wei2();
//认证类型 //认证类型
String attestationType = dummyInventoryInfoEO.getAttestationType(); String attestationType = dummyInventoryInfoEO.getAttestationType();
//责任领域
//认证级别
//实施类别 //实施类别
String implementType = dummyInventoryInfoEO.getImplementType(); String implementType = dummyInventoryInfoEO.getImplementType();
//适用地区 //适用地区
String region = dummyInventoryInfoEO.getRegion(); // String region = dummyInventoryInfoEO.getRegion();
//设计交付物类型 //设计交付物类型
String designDeliverableType = dummyInventoryInfoEO.getDesignDeliverableType(); String designDeliverableType = dummyInventoryInfoEO.getDesignDeliverableType();
//设计发起人 //设计发起人
@@ -873,11 +867,11 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
//确认责任人 //确认责任人
String verifyDuty = dummyInventoryInfoEO.getVerifyDuty(); String verifyDuty = dummyInventoryInfoEO.getVerifyDuty();
//技术领域 //技术领域
String technologyTerritory = dummyInventoryInfoEO.getTechnologyTerritory(); // String technologyTerritory = dummyInventoryInfoEO.getTechnologyTerritory();
//新车型实施日期 //新车型实施日期
Date xin1Che1Xing2Shi2Shi1Ri4Qi1 = dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1(); // Date xin1Che1Xing2Shi2Shi1Ri4Qi1 = dummyInventoryInfoEO.getXin1Che1Xing2Shi2Shi1Ri4Qi1();
//在产车实施日期 //在产车实施日期
Date implementTime = dummyInventoryInfoEO.getImplementTime(); // Date implementTime = dummyInventoryInfoEO.getImplementTime();
//文件 //文件
String designDeliverableTemplate = dummyInventoryInfoEO.getDesignDeliverableTemplate(); String designDeliverableTemplate = dummyInventoryInfoEO.getDesignDeliverableTemplate();
String prehomoDeliverableTemplate = dummyInventoryInfoEO.getPrehomoDeliverableTemplate(); String prehomoDeliverableTemplate = dummyInventoryInfoEO.getPrehomoDeliverableTemplate();
@@ -887,47 +881,47 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
flag = must(dummyInventoryInfoEO, errorMsg, msgList, serialNumber, "编号", "serial number"); flag = must(dummyInventoryInfoEO, errorMsg, msgList, serialNumber, "编号", "serial number");
//标题(输入框必填) //标题(输入框必填)
if(StringUtils.isBlank(title)){ // if(StringUtils.isBlank(title)){
//必填验证 // //必填验证
if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){ // if(CutEnum.CN.getValue().equals(dummyInventoryInfoEO.getCut())){
errorMsg += "标题为必填项,不能为空"; // errorMsg += "标题为必填项,不能为空";
}else{ // }else{
errorMsg += "title this parameter is mandatory and cannot be empty"; // errorMsg += "title this parameter is mandatory and cannot be empty";
} // }
msgList.add(errorMsg); // msgList.add(errorMsg);
} // }
//适用范围(多选不必填) //适用范围(多选不必填)
value = pullMore(dictItemList, dummyInventoryInfoEO, errorMsg, shi4Yong4Fan4Wei2,msgList,"适用范围","scope of application");; // value = pullMore(dictItemList, dummyInventoryInfoEO, errorMsg, shi4Yong4Fan4Wei2,msgList,"适用范围","scope of application");;
if (StringUtils.isNotBlank(value)) { // if (StringUtils.isNotBlank(value)) {
dummyInventoryInfoEO.setShi4Yong4Fan4Wei2(value); // dummyInventoryInfoEO.setShi4Yong4Fan4Wei2(value);
} // }
//状态(单选必填) //状态(单选必填)
flag = must(dummyInventoryInfoEO, errorMsg, msgList, state, "状态", "state"); // flag = must(dummyInventoryInfoEO, errorMsg, msgList, state, "状态", "state");
if(flag){ // if(flag){
value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, state, msgList, "状态", "state"); // value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, state, msgList, "状态", "state");
if(StringUtils.isNotBlank(value)){ // if(StringUtils.isNotBlank(value)){
dummyInventoryInfoEO.setState(value); // dummyInventoryInfoEO.setState(value);
} // }
} // }
//对应标准 //对应标准
flag = must(dummyInventoryInfoEO, errorMsg, msgList, correspondingStandard,"对应标准","corresponding standard"); // flag = must(dummyInventoryInfoEO, errorMsg, msgList, correspondingStandard,"对应标准","corresponding standard");
if(flag){ // if(flag){
StringBuilder sb = new StringBuilder(); // StringBuilder sb = new StringBuilder();
for (String s : correspondingStandard.split(",")) { // for (String s : correspondingStandard.split(",")) {
List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream() // List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
.filter(e -> s.equals(e.getSerialNumber())).collect(Collectors.toList()); // .filter(e -> s.equals(e.getSerialNumber())).collect(Collectors.toList());
if(collect.size() == 0){ // if(collect.size() == 0){
sb.append(s+","); // sb.append(s+",");
}else{ // }else{
sb.append(collect.get(0).getId()+","); // sb.append(collect.get(0).getId()+",");
} // }
} // }
if(StringUtils.isNotBlank(sb)){ // if(StringUtils.isNotBlank(sb)){
String substring = sb.substring(0, sb.length() - 1); // String substring = sb.substring(0, sb.length() - 1);
dummyInventoryInfoEO.setCorrespondingStandard(substring); // dummyInventoryInfoEO.setCorrespondingStandard(substring);
} // }
} // }
//实施类别(单选不必填) //实施类别(单选不必填)
value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, implementType,msgList,"实施类别","implementation category"); value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, implementType,msgList,"实施类别","implementation category");
@@ -936,16 +930,16 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
} }
//新车实施日期 xin1Che1Xing2Shi2Shi1Ri4Qi1 //新车实施日期 xin1Che1Xing2Shi2Shi1Ri4Qi1
flag = dateVerify(dummyInventoryInfoEO, errorMsg, xin1Che1Xing2Shi2Shi1Ri4Qi1,msgList,"新车实施日期","new car implementation date"); // flag = dateVerify(dummyInventoryInfoEO, errorMsg, xin1Che1Xing2Shi2Shi1Ri4Qi1,msgList,"新车实施日期","new car implementation date");
if(flag){ // if(flag){
dummyInventoryInfoEO.setXin1Che1Xing2Shi2Shi1Ri4Qi1(xin1Che1Xing2Shi2Shi1Ri4Qi1); // dummyInventoryInfoEO.setXin1Che1Xing2Shi2Shi1Ri4Qi1(xin1Che1Xing2Shi2Shi1Ri4Qi1);
} // }
//在产车实施日期 implementTime //在产车实施日期 implementTime
flag = dateVerify(dummyInventoryInfoEO, errorMsg, implementTime,msgList,"在产车实施日期","on the production vehicle implementation date"); // flag = dateVerify(dummyInventoryInfoEO, errorMsg, implementTime,msgList,"在产车实施日期","on the production vehicle implementation date");
if(flag){ // if(flag){
dummyInventoryInfoEO.setImplementTime(implementTime); // dummyInventoryInfoEO.setImplementTime(implementTime);
} // }
//认证类型(单选不必填) //认证类型(单选不必填)
value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, attestationType,msgList,"认证类型","certification type"); value = pullSingle(dictItemList, dummyInventoryInfoEO, errorMsg, attestationType,msgList,"认证类型","certification type");
if(StringUtils.isNotBlank(value)){ if(StringUtils.isNotBlank(value)){
@@ -962,7 +956,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
} }
//技术领域 //技术领域
tree(categoryList,msgList, dummyInventoryInfoEO, errorMsg, technologyTerritory); // tree(categoryList,msgList, dummyInventoryInfoEO, errorMsg, technologyTerritory);
//责任领域(多选必填) //责任领域(多选必填)
flag = must(dummyInventoryInfoEO, errorMsg, msgList, dutyTerritory,"责任领域","area of responsibility"); flag = must(dummyInventoryInfoEO, errorMsg, msgList, dutyTerritory,"责任领域","area of responsibility");
@@ -974,10 +968,10 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
} }
//适用地区(多选不必填) //适用地区(多选不必填)
value = pullMore(dictItemList, dummyInventoryInfoEO, errorMsg, region,msgList,"适用地区","zone of application");; // value = pullMore(dictItemList, dummyInventoryInfoEO, errorMsg, region,msgList,"适用地区","zone of application");;
if (StringUtils.isNotBlank(value)) { // if (StringUtils.isNotBlank(value)) {
dummyInventoryInfoEO.setRegion(value); // dummyInventoryInfoEO.setRegion(value);
} // }
//备注 //备注
//设计 //设计
@@ -1073,15 +1067,28 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
} }
private List<BussDocumentLibraryEO> verifySerialNumber(List<DummyInventoryInfoEO> dataList) { private List<BussDocumentLibraryEO> verifySerialNumber(List<DummyInventoryInfoEO> dataList) {
List<String> correspondingStandardIdList = dataList.stream().map(DummyInventoryInfoEO::getCorrespondingStandard).collect(Collectors.toList()); //文档库数据
List<String> serialNumberList = dataList.stream().map(DummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList()); List<String> serialNumberList = dataList.stream().map(DummyInventoryInfoEO::getSerialNumber).collect(Collectors.toList());
LambdaQueryWrapper<BussDocumentLibraryEO> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<BussDocumentLibraryEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(BussDocumentLibraryEO::getId,correspondingStandardIdList); wrapper.in(BussDocumentLibraryEO::getSerialNumber,serialNumberList);
List<BussDocumentLibraryEO> bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(wrapper); List<BussDocumentLibraryEO> bussDocumentLibraryEOList = iBussDocumentLibraryEOService.list(wrapper);
//文档库中可能存在重复的标准号
List<String> serialNumberListTemp = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).distinct().collect(Collectors.toList());
//虚拟清单数据
LambdaQueryWrapper<DummyInventoryInfoEO> wrapperTemp = new LambdaQueryWrapper<>(); LambdaQueryWrapper<DummyInventoryInfoEO> wrapperTemp = new LambdaQueryWrapper<>();
wrapperTemp.in(DummyInventoryInfoEO::getSerialNumber,serialNumberList); wrapperTemp.in(DummyInventoryInfoEO::getSerialNumber,serialNumberList);
List<DummyInventoryInfoEO> dummyInventoryInfoEOList = this.list(wrapperTemp); List<DummyInventoryInfoEO> dummyInventoryInfoEOList = this.list(wrapperTemp);
if(serialNumberList.size() != serialNumberListTemp.size()){
//存在文档库没有的数据
List<String> collect = bussDocumentLibraryEOList.stream().map(BussDocumentLibraryEO::getSerialNumber).collect(Collectors.toList());
List<String> serialNumbers = serialNumberList.stream().filter(e -> !collect.contains(e)).collect(Collectors.toList());
if(CutEnum.CN.getValue().equals(dataList.get(0).getCut())){
throw new JeroBootException(StringUtils.join(serialNumbers,",")+"文档库中不存在,不能添加");
}else{
throw new JeroBootException(StringUtils.join(serialNumbers,",")+" does not exist in the document library and cannot be added");
}
}
if(dummyInventoryInfoEOList.size() > 0){ if(dummyInventoryInfoEOList.size() > 0){
if(CutEnum.CN.getValue().equals(dataList.get(0).getCut())){ if(CutEnum.CN.getValue().equals(dataList.get(0).getCut())){
throw new JeroBootException(StringUtils.join(serialNumberList,",")+"已存在,不能重复添加"); throw new JeroBootException(StringUtils.join(serialNumberList,",")+"已存在,不能重复添加");
@@ -1089,6 +1096,20 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
throw new JeroBootException(StringUtils.join(serialNumberList,",")+" already exists and cannot be added again"); throw new JeroBootException(StringUtils.join(serialNumberList,",")+" already exists and cannot be added again");
} }
} }
//通过编号将导入的数据与文档库进行关联
for (DummyInventoryInfoEO dummyInventoryInfoEO : dataList) {
List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
.filter(e -> e.getSerialNumber().equals(dummyInventoryInfoEO.getSerialNumber())).collect(Collectors.toList());
dummyInventoryInfoEO.setTitle(collect.get(0).getTitle());
dummyInventoryInfoEO.setState(collect.get(0).getState());
dummyInventoryInfoEO.setCorrespondingStandard(collect.get(0).getCorrespondingStandard());
dummyInventoryInfoEO.setTechnologyTerritory(collect.get(0).getTechnologyTerritory());
dummyInventoryInfoEO.setRegion(collect.get(0).getRegion());
dummyInventoryInfoEO.setShi4Yong4Fan4Wei2(collect.get(0).getShi4Yong4Fan4Wei2());
dummyInventoryInfoEO.setImplementTime(collect.get(0).getImplementTime());
dummyInventoryInfoEO.setXin1Che1Xing2Shi2Shi1Ri4Qi1(collect.get(0).getXin1Che1Xing2Shi2Shi1Ri4Qi1());
}
return bussDocumentLibraryEOList; return bussDocumentLibraryEOList;
} }
@@ -1248,7 +1269,7 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
private String fieldConvert(String field){ private String fieldConvert(String field){
if (field == null) return null; if (field == null) return null;
switch (field) { switch (field) {
case "编号": return "serialNumber"; case "*编号": return "serialNumber";
case "标题": return "title"; case "标题": return "title";
case "子标题": return "subtitle"; case "子标题": return "subtitle";
case "适用范围": return "shi4Yong4Fan4Wei2"; case "适用范围": return "shi4Yong4Fan4Wei2";
@@ -1259,9 +1280,9 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
case "在产车实施日期": return "implementTime"; case "在产车实施日期": return "implementTime";
case "WVTA ID": return "wvtaId"; case "WVTA ID": return "wvtaId";
case "认证类型": return "attestationType"; case "认证类型": return "attestationType";
case "认证级别": return "attestationRank"; case "*认证级别": return "attestationRank";
case "技术领域": return "technologyTerritory"; case "技术领域": return "technologyTerritory";
case "责任领域": return "dutyTerritory"; case "*责任领域": return "dutyTerritory";
case "适用地区": return "region"; case "适用地区": return "region";
case "备注": return "remark"; case "备注": return "remark";
case "设计交付物类型": return "designDeliverableType"; case "设计交付物类型": return "designDeliverableType";