虚拟清单--导入修改

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