|
@@ -70,8 +70,11 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
String deptId = params.get("deptId");
|
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
|
|
|
|
|
|
- QcsMdfFormDo qcsMdfFormDo = qcsMdfFormService.getById(formId);
|
|
|
+ //空的序号排号初始化
|
|
|
+ Thread thread = new Thread(() -> setSecRowSn(formId));
|
|
|
+ thread.start(); // 启动线程
|
|
|
|
|
|
+ QcsMdfFormDo qcsMdfFormDo = qcsMdfFormService.getById(formId);
|
|
|
//先更新修改单的合计金额和实际金额
|
|
|
Map<String, Object> detailMap = qcsMdfFormDao.getAmountSum(formId);
|
|
|
if (detailMap != null) {
|
|
@@ -135,6 +138,69 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ //空的序号排号初始化
|
|
|
+ private void setSecRowSn(String formId) {
|
|
|
+ List<QcsMdfSectionDo> qcsMdfSectionDoList = new ArrayList<>();
|
|
|
+ List<QcsMdfRowDo> qcsMdfRowDoList = new ArrayList<>();
|
|
|
+ List<ImportMdfVo> qcsMdfRowDos = qcsMdfFormDao.getAllRows(formId);
|
|
|
+ //序号分组 空值在后,有值正序在前
|
|
|
+ Map<ImportMdfVo, List<ImportMdfVo>> secMap = qcsMdfRowDos.stream()
|
|
|
+ .sorted(createReverseComparator("sectionsn"))
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ m -> new ImportMdfVo(m.getId(), m.getSectionid(), m.getSectionsn()),
|
|
|
+ LinkedHashMap::new, // 保持分组顺序
|
|
|
+ Collectors.toList()
|
|
|
+ ));
|
|
|
+ AtomicReference<Integer> maxSectionSn = new AtomicReference<>(0);
|
|
|
+ secMap.forEach((mvo, slist) -> {
|
|
|
+ if (StringUtils.isNotBlank(mvo.getSectionsn())) {
|
|
|
+ maxSectionSn.getAndSet(Integer.parseInt(mvo.getSectionsn()));
|
|
|
+ } else {
|
|
|
+ maxSectionSn.getAndSet(maxSectionSn.get() + 1);
|
|
|
+ }
|
|
|
+ AtomicReference<Integer> maxRowSn = new AtomicReference<>(0);
|
|
|
+ //排号分组 空值在后,有值正序在前
|
|
|
+ Map<ImportMdfVo, List<ImportMdfVo>> rowMap = slist.stream()
|
|
|
+ .sorted(createReverseComparator("rowsn"))
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ m -> new ImportMdfVo(m.getId(), m.getSectionid(), m.getSectionsn(), m.getRowid(), m.getRowsn()),
|
|
|
+ LinkedHashMap::new, // 保持分组顺序
|
|
|
+ Collectors.toList()
|
|
|
+ ));
|
|
|
+ rowMap.forEach((rvo, rlist) -> {
|
|
|
+ if (StringUtils.isNotBlank(rvo.getRowsn())) {
|
|
|
+ maxRowSn.getAndSet(Integer.parseInt(rvo.getRowsn()));
|
|
|
+ } else {
|
|
|
+ for (int r = 0; r < rlist.size(); r++) {
|
|
|
+ maxRowSn.getAndSet(maxRowSn.get() + 1);
|
|
|
+ QcsMdfRowDo qcsMdfRowDo = new QcsMdfRowDo();
|
|
|
+ qcsMdfRowDo.setId(rlist.get(r).getRowid());
|
|
|
+ qcsMdfRowDo.setRowsn(maxRowSn.toString());
|
|
|
+ qcsMdfRowDo.setRowsn(maxSectionSn + "-" + qcsMdfRowDo.getRowsn());
|
|
|
+ qcsMdfRowDoList.add(qcsMdfRowDo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ QcsMdfSectionDo qcsMdfSectionDo = new QcsMdfSectionDo();
|
|
|
+ qcsMdfSectionDo.setId(mvo.getSectionid());
|
|
|
+ qcsMdfSectionDo.setSectionsn(maxSectionSn.toString());
|
|
|
+ qcsMdfSectionDoList.add(qcsMdfSectionDo);
|
|
|
+ });
|
|
|
+
|
|
|
+ Boolean bool1 = true;
|
|
|
+ Boolean bool2 = true;
|
|
|
+ if (qcsMdfSectionDoList.size() > 0) {
|
|
|
+ bool1 = qcsMdfSectionService.updateBatchById(qcsMdfSectionDoList);
|
|
|
+ }
|
|
|
+ if (qcsMdfRowDoList.size() > 0) {
|
|
|
+ bool2 = qcsMdfRowService.updateBatchById(qcsMdfRowDoList);
|
|
|
+ }
|
|
|
+ if (!bool1 || !bool2) {
|
|
|
+ log.error("空的序号排号初始化失败");
|
|
|
+ throw new CustomException("空的序号排号初始化失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
//集中派发
|
|
|
@Override
|
|
|
@Transactional
|
|
@@ -273,13 +339,13 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
StringBuilder stringBuilder = new StringBuilder();
|
|
|
ImportMdfVo importMdfVo = new ImportMdfVo();
|
|
|
|
|
|
- String endCell = row.getCell(0).toString().replaceAll("\\s+", "");
|
|
|
+ String endCell = row.getCell(0) == null ? "" : row.getCell(0).toString().replaceAll("\\s+", "");
|
|
|
if (endCell.equals("小计")) {
|
|
|
break;
|
|
|
}
|
|
|
|
|
|
//项目工号
|
|
|
- String procode = row.getCell(2).toString().replaceAll("\\s+", "");
|
|
|
+ String procode = row.getCell(2) == null ? "" : row.getCell(2).toString().replaceAll("\\s+", "");
|
|
|
List<QcsPartNoDo> codeParts = new ArrayList<>();
|
|
|
if (StringUtils.isEmpty(procode)) {
|
|
|
stringBuilder.append("项目工号必填,");
|
|
@@ -300,7 +366,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
|
|
|
//产品类型
|
|
|
- String typename = row.getCell(4).toString().replaceAll("\\s+", "");
|
|
|
+ String typename = row.getCell(4) == null ? "" : row.getCell(4).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(typename)) {
|
|
|
if (StringUtil.isScience(typename)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(typename);
|
|
@@ -308,10 +374,10 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
}
|
|
|
importMdfVo.setTypename(typename);
|
|
|
- importMdfVo.setNumbername(row.getCell(5).toString().replaceAll("\\s+", ""));//专业/类别
|
|
|
+ importMdfVo.setNumbername(row.getCell(5) == null ? "" : row.getCell(5).toString().replaceAll("\\s+", ""));//专业/类别
|
|
|
|
|
|
//修改单编号
|
|
|
- String lossno = row.getCell(6).toString().replaceAll("\\s+", "");
|
|
|
+ String lossno = row.getCell(6) == null ? "" : row.getCell(6).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(lossno)) {
|
|
|
if (StringUtil.isScience(lossno)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(lossno);
|
|
@@ -323,7 +389,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
|
|
|
//修改原因
|
|
|
- String sourcename = row.getCell(9).toString().replaceAll("\\s+", "");
|
|
|
+ String sourcename = row.getCell(9) == null ? "" : row.getCell(9).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(sourcename)) {
|
|
|
//有配置责任单位
|
|
|
resDutyList = resDutyMap.stream()
|
|
@@ -335,7 +401,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setSourcename(sourcename);
|
|
|
|
|
|
//整改编号
|
|
|
- String rectifycode = row.getCell(19).toString().replaceAll("\\s+", "");
|
|
|
+ String rectifycode = row.getCell(19) == null ? "" : row.getCell(19).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(rectifycode)) {
|
|
|
if (StringUtil.isScience(rectifycode)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(rectifycode);
|
|
@@ -345,7 +411,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setRectifycode(rectifycode);
|
|
|
|
|
|
//项目总工
|
|
|
- String managename = row.getCell(20).toString().replaceAll("\\s+", "");
|
|
|
+ String managename = row.getCell(20) == null ? "" : row.getCell(20).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(managename)) {
|
|
|
if (StringUtil.isScience(managename)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(managename);
|
|
@@ -361,10 +427,10 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
}
|
|
|
importMdfVo.setManageadminnickname(managename);
|
|
|
- importMdfVo.setProducename(row.getCell(21).toString().replaceAll("\\s+", ""));//项目生产阶段
|
|
|
+ importMdfVo.setProducename(row.getCell(21) == null ? "" : row.getCell(21).toString().replaceAll("\\s+", ""));//项目生产阶段
|
|
|
|
|
|
//内容序号
|
|
|
- String sectionsn = row.getCell(7).toString().replaceAll("\\s+", "");
|
|
|
+ String sectionsn = row.getCell(7) == null ? "" : row.getCell(7).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(sectionsn)) {
|
|
|
if (StringUtil.isScience(sectionsn)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(sectionsn);
|
|
@@ -377,7 +443,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setSectionsn(sectionsn);
|
|
|
|
|
|
//修改责任方
|
|
|
- String modifyby = row.getCell(8).toString().replaceAll("\\s+", "");
|
|
|
+ String modifyby = row.getCell(8) == null ? "" : row.getCell(8).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(modifyby)) {
|
|
|
List<Map<String, String>> mapList = unitMap.stream()
|
|
|
.filter(umap -> {
|
|
@@ -391,7 +457,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setModifyby(modifyby);
|
|
|
|
|
|
//错误源头图号
|
|
|
- String partno = row.getCell(22).toString().replaceAll("\\s+", "");
|
|
|
+ String partno = row.getCell(22) == null ? "" : row.getCell(22).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(partno)) {
|
|
|
if (StringUtil.isScience(partno)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(partno);
|
|
@@ -408,7 +474,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setErrordesigndtdrawingno(partno);
|
|
|
|
|
|
//设计人
|
|
|
- String dtdesigner = row.getCell(24).toString().replaceAll("\\s+", "");
|
|
|
+ String dtdesigner = row.getCell(24) == null ? "" : row.getCell(24).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(dtdesigner)) {
|
|
|
if (StringUtil.isScience(dtdesigner)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(dtdesigner);
|
|
@@ -426,7 +492,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setDtdesigner(dtdesigner);
|
|
|
|
|
|
//校对人
|
|
|
- String dtwhocollate = row.getCell(25).toString().replaceAll("\\s+", "");
|
|
|
+ String dtwhocollate = row.getCell(25) == null ? "" : row.getCell(25).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(dtwhocollate)) {
|
|
|
if (StringUtil.isScience(dtwhocollate)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(dtwhocollate);
|
|
@@ -444,7 +510,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setDtwhocollate(dtwhocollate);
|
|
|
|
|
|
//审核人
|
|
|
- String dtwhoapprove = row.getCell(26).toString().replaceAll("\\s+", "");
|
|
|
+ String dtwhoapprove = row.getCell(26) == null ? "" : row.getCell(26).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(dtwhoapprove)) {
|
|
|
if (StringUtil.isScience(dtwhoapprove)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(dtwhoapprove);
|
|
@@ -461,20 +527,23 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
importMdfVo.setDtwhoapprove(dtwhoapprove);
|
|
|
|
|
|
- importMdfVo.setErrorroutine(row.getCell(27).toString().replaceAll("\\s+", ""));//常规错误
|
|
|
- importMdfVo.setErroragain(row.getCell(28).toString().replaceAll("\\s+", ""));//二过错误
|
|
|
- importMdfVo.setErrorhard(row.getCell(29).toString().replaceAll("\\s+", ""));//较难发现错误
|
|
|
+ importMdfVo.setErrorroutine(row.getCell(27) == null ? "" : row.getCell(27).toString().replaceAll("\\s+", ""));//常规错误
|
|
|
+ importMdfVo.setErroragain(row.getCell(28) == null ? "" : row.getCell(28).toString().replaceAll("\\s+", ""));//二过错误
|
|
|
+ importMdfVo.setErrorhard(row.getCell(29) == null ? "" : row.getCell(29).toString().replaceAll("\\s+", ""));//较难发现错误
|
|
|
|
|
|
//校对表错误
|
|
|
- String errortable = row.getCell(30).toString().replaceAll("\\s+", "");
|
|
|
- if (errortable.equals("是")) {
|
|
|
- importMdfVo.setErrortable("1");
|
|
|
- } else {
|
|
|
- importMdfVo.setErrortable("0");
|
|
|
+ String errortable = row.getCell(30) == null ? "" : row.getCell(30).toString().replaceAll("\\s+", "");
|
|
|
+ if (StringUtils.isNotEmpty(errortable)) {
|
|
|
+ if (errortable.equals("是")) {
|
|
|
+ errortable = "1";
|
|
|
+ } else {
|
|
|
+ errortable = "0";
|
|
|
+ }
|
|
|
}
|
|
|
+ importMdfVo.setErrortable(errortable);
|
|
|
|
|
|
//修改内容
|
|
|
- String content = row.getCell(10).toString().replaceAll("\\s+", "");
|
|
|
+ String content = row.getCell(10) == null ? "" : row.getCell(10).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(content)) {
|
|
|
if (StringUtil.isScience(content)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(content);
|
|
@@ -486,7 +555,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setContent(content);
|
|
|
|
|
|
//排号
|
|
|
- String rowsn = row.getCell(11).toString().replaceAll("\\s+", "");
|
|
|
+ String rowsn = row.getCell(11) == null ? "" : row.getCell(11).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(rowsn)) {
|
|
|
if (StringUtil.isScience(rowsn)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(rowsn);
|
|
@@ -499,7 +568,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setRowsn(rowsn);
|
|
|
|
|
|
//备注
|
|
|
- String remark = row.getCell(12).toString().replaceAll("\\s+", "");
|
|
|
+ String remark = row.getCell(12) == null ? "" : row.getCell(12).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(remark)) {
|
|
|
if (StringUtil.isScience(remark)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(remark);
|
|
@@ -509,7 +578,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setRemark(remark);
|
|
|
|
|
|
//修改图号(任务单部件)
|
|
|
- String taskdesign = row.getCell(31).toString().replaceAll("\\s+", "");
|
|
|
+ String taskdesign = row.getCell(31) == null ? "" : row.getCell(31).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(taskdesign)) {
|
|
|
if (StringUtil.isScience(taskdesign)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(taskdesign);
|
|
@@ -526,7 +595,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setTaskdesigndtdrawingno(taskdesign);
|
|
|
|
|
|
//修改图号(次级部件)
|
|
|
- String xgth = row.getCell(33).toString().replaceAll("\\s+", "");
|
|
|
+ String xgth = row.getCell(33) == null ? "" : row.getCell(33).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(xgth)) {
|
|
|
if (StringUtil.isScience(xgth)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(xgth);
|
|
@@ -536,7 +605,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setMinordesigndtdrawingno(xgth);
|
|
|
|
|
|
//修改图名(次级部件)
|
|
|
- String xgtm = row.getCell(21).toString().replaceAll("\\s+", "");
|
|
|
+ String xgtm = row.getCell(21) == null ? "" : row.getCell(21).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(xgtm)) {
|
|
|
if (StringUtil.isScience(xgtm)) {
|
|
|
BigDecimal formatProjectCode = new BigDecimal(xgtm);
|
|
@@ -546,7 +615,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setMinordesigndtpartname(xgtm);
|
|
|
|
|
|
//责任单位
|
|
|
- String dutydeptname = row.getCell(13).toString().replaceAll("\\s+", "");
|
|
|
+ String dutydeptname = row.getCell(13) == null ? "" : row.getCell(13).toString().replaceAll("\\s+", "");
|
|
|
if (StringUtils.isNotEmpty(dutydeptname)) {
|
|
|
List<Map<String, String>> mapList = unitMap.stream()
|
|
|
.filter(umap -> {
|
|
@@ -562,7 +631,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
importMdfVo.setDutydeptname(dutydeptname);
|
|
|
|
|
|
//人工
|
|
|
- String mandayStr = row.getCell(14).toString().replaceAll("\\s+", "");
|
|
|
+ String mandayStr = row.getCell(14) == null ? "" : row.getCell(14).toString().replaceAll("\\s+", "");
|
|
|
if (mandayStr != null && StringUtils.isNotEmpty(mandayStr)) {
|
|
|
String toAmount = convertToTwoDecimalPlaces(mandayStr);
|
|
|
if (toAmount.equals("金额要为数字,")) {
|
|
@@ -573,7 +642,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
|
|
|
//材料
|
|
|
- String materStr = row.getCell(15).toString().replaceAll("\\s+", "");
|
|
|
+ String materStr = row.getCell(15) == null ? "" : row.getCell(15).toString().replaceAll("\\s+", "");
|
|
|
if (materStr != null && StringUtils.isNotEmpty(materStr)) {
|
|
|
String toAmount = convertToTwoDecimalPlaces(materStr);
|
|
|
if (toAmount.equals("金额要为数字,")) {
|
|
@@ -584,7 +653,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
|
|
|
//设备
|
|
|
- String equipStr = row.getCell(16).toString().replaceAll("\\s+", "");
|
|
|
+ String equipStr = row.getCell(16) == null ? "" : row.getCell(16).toString().replaceAll("\\s+", "");
|
|
|
if (equipStr != null && StringUtils.isNotEmpty(equipStr)) {
|
|
|
String toAmount = convertToTwoDecimalPlaces(equipStr);
|
|
|
if (toAmount.equals("金额要为数字,")) {
|
|
@@ -595,7 +664,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
|
|
|
//其他
|
|
|
- String otherStr = row.getCell(17).toString().replaceAll("\\s+", "");
|
|
|
+ String otherStr = row.getCell(17) == null ? "" : row.getCell(17).toString().replaceAll("\\s+", "");
|
|
|
if (otherStr != null && StringUtils.isNotEmpty(otherStr)) {
|
|
|
String toAmount = convertToTwoDecimalPlaces(otherStr);
|
|
|
if (toAmount.equals("金额要为数字,")) {
|
|
@@ -630,7 +699,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
f -> new ImportMdfVo(f.getTypename(), f.getSourcename(), f.getNumbername(), f.getRectifycode(), f.getManageadminnickname(), f.getProducename())
|
|
|
));
|
|
|
if (formListMap.size() > 1) {
|
|
|
- allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + "有" + formListMap.size() + "行,但主表列数据产品类型、类别、修改原因、整改编号、项目总工、项目生产阶段有不同,请检查<br>");
|
|
|
+ allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + "有" + formListMap.size() + "行,但产品类型、类别、修改原因、整改编号、项目总工、项目生产阶段有不同,请检查<br>");
|
|
|
} else {
|
|
|
//主表数据
|
|
|
ImportMdfVo mdfVo = qcsMdfFormDos.stream().filter(mv -> fm.getProjectdlprojid().equals(mv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(mv.getSourcenumbercode())).findAny().orElse(null);
|
|
@@ -671,199 +740,222 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
|
|
|
if (StringUtils.isBlank(allStrBuilder.toString())) {
|
|
|
AtomicReference<Integer> maxSectionSn = new AtomicReference<>(0);
|
|
|
- //序号分组
|
|
|
- Map<ImportMdfVo, List<ImportMdfVo>> mdfVoListMap = flist.stream().collect(Collectors.groupingBy(
|
|
|
- p -> new ImportMdfVo(p.getSectionsn(), p.getModifyby(), p.getErrordesigndtdrawingno(), p.getDtdesigner(), p.getDtwhocollate(), p.getDtwhoapprove(), p.getErrorroutine(), p.getErroragain(), p.getErrorhard(), p.getErrortable())
|
|
|
- ));
|
|
|
- String finalFormid = formid;
|
|
|
- String finalFormid1 = formid;
|
|
|
- mdfVoListMap.forEach((mvo, slist) -> {
|
|
|
-// for (int s = 0; s < slist.size(); s++) {
|
|
|
- List<ImportMdfVo> secVos;
|
|
|
- String sectionid = "";
|
|
|
- if (StringUtils.isBlank(mvo.getSectionsn())) {
|
|
|
- sectionid = SecurityUtil.getUUID();
|
|
|
- secVos = qcsMdfFormDos.stream().filter(sv -> fm.getProjectdlprojid().equals(sv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(sv.getSourcenumbercode())).collect(Collectors.toList());
|
|
|
- if (secVos.size() == 0) {
|
|
|
- maxSectionSn.getAndSet(maxSectionSn.get() + 1);
|
|
|
- } else {
|
|
|
- maxSectionSn.getAndSet(Integer.parseInt(secVos.get(secVos.size() - 1).getSectionsn()) + 1);
|
|
|
+ //按照内容序号分组
|
|
|
+ Map<String, List<ImportMdfVo>> snoListMap = flist.stream().collect(Collectors.groupingBy(ImportMdfVo::getSectionsn));
|
|
|
+ snoListMap.forEach((sno, slm) -> {
|
|
|
+ if (StringUtils.isNotBlank(sno)) {
|
|
|
+ Map<ImportMdfVo, List<ImportMdfVo>> difSmap = slm.stream().collect(Collectors.groupingBy(
|
|
|
+ p -> new ImportMdfVo(p.getModifyby(), p.getErrordesigndtdrawingno(), p.getDtdesigner(), p.getDtwhocollate(), p.getDtwhoapprove(), p.getErrorroutine(), p.getErroragain(), p.getErrorhard(), p.getErrortable())
|
|
|
+ ));
|
|
|
+ if (difSmap.size() > 1) {
|
|
|
+ allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + sno + "有" + slm.size() + "行,但修改责任方、错误源头图号、设计人、校对人、审核人、常规错误、二过错误、较难发现错误、校对表错误有不同,请检查<br>");
|
|
|
}
|
|
|
- } else {
|
|
|
- secVos = qcsMdfFormDos.stream().filter(sv -> fm.getProjectdlprojid().equals(sv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(sv.getSourcenumbercode()) && mvo.getSectionsn().equals(sv.getSectionsn())).collect(Collectors.toList());
|
|
|
- if (secVos.size() == 0) {
|
|
|
- sectionid = SecurityUtil.getUUID();
|
|
|
- maxSectionSn.getAndSet(Integer.parseInt(mvo.getSectionsn()));
|
|
|
- } else {
|
|
|
- ImportMdfVo secVo = secVos.get(0);
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- if (!mvo.getModifyby().equals(secVo.getModifyby())) {
|
|
|
- sb.append("修改责任方" + mvo.getModifyby() + "与系统修改责任方" + secVo.getModifyby() + "不同,");
|
|
|
- }
|
|
|
- if (!mvo.getErrordesigndtdrawingno().equals(secVo.getErrordesigndtdrawingno())) {
|
|
|
- sb.append("错误源头图号" + mvo.getErrordesigndtdrawingno() + "与系统错误源头图号" + secVo.getErrordesigndtdrawingno() + "不同,");
|
|
|
- }
|
|
|
- if (!mvo.getDtdesigner().equals(secVo.getDtdesigner())) {
|
|
|
- sb.append("设计人" + mvo.getDtdesigner() + "与系统设计人" + secVo.getDtdesigner() + "不同,");
|
|
|
- }
|
|
|
- if (!mvo.getDtwhocollate().equals(secVo.getDtwhocollate())) {
|
|
|
- sb.append("校对人" + mvo.getDtwhocollate() + "与系统校对人" + secVo.getDtwhocollate() + "不同,");
|
|
|
- }
|
|
|
- if (!mvo.getDtwhoapprove().equals(secVo.getDtwhoapprove())) {
|
|
|
- sb.append("审核人" + mvo.getDtwhoapprove() + "与系统审核人" + secVo.getDtwhoapprove() + "不同,");
|
|
|
- }
|
|
|
- if (!mvo.getErrorroutine().equals(secVo.getErrorroutine())) {
|
|
|
- sb.append("常规错误" + mvo.getErrorroutine() + "与系统常规错误" + secVo.getErrorroutine() + "不同,");
|
|
|
- }
|
|
|
- if (!mvo.getErroragain().equals(secVo.getErroragain())) {
|
|
|
- sb.append("二过错误" + mvo.getErroragain() + "与系统二过错误" + secVo.getErroragain() + "不同,");
|
|
|
- }
|
|
|
- if (!mvo.getErrorhard().equals(secVo.getErrorhard())) {
|
|
|
- sb.append("较难发现错误" + mvo.getErrorhard() + "与系统较难发现错误" + secVo.getErrorhard() + "不同,");
|
|
|
- }
|
|
|
- if (!mvo.getErrortable().equals(secVo.getErrortable())) {
|
|
|
- sb.append("校对表错误" + mvo.getErrortable() + "与系统校对表错误" + secVo.getErrortable() + "不同,");
|
|
|
- }
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- if (StringUtils.isNotBlank(sb.toString())) {
|
|
|
- allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + "已存在,但导入的数据" + sb.toString() + "请检查<br>");
|
|
|
+ if (StringUtils.isBlank(allStrBuilder.toString())) {
|
|
|
+ //序号分组 空值在后,有值正序在前
|
|
|
+ Map<ImportMdfVo, List<ImportMdfVo>> mdfVoListMap = flist.stream()
|
|
|
+ .sorted(createReverseComparator("sectionsn"))
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ p -> new ImportMdfVo(p.getSectionsn(), p.getModifyby(), p.getErrordesigndtdrawingno(), p.getDtdesigner(), p.getDtwhocollate(), p.getDtwhoapprove(), p.getErrorroutine(), p.getErroragain(), p.getErrorhard(), p.getErrortable()),
|
|
|
+ LinkedHashMap::new, // 保持分组顺序
|
|
|
+ Collectors.toList()
|
|
|
+ ));
|
|
|
+ String finalFormid = formid;
|
|
|
+ String finalFormid1 = formid;
|
|
|
+ mdfVoListMap.forEach((mvo, slist) -> {
|
|
|
+// for (int s = 0; s < slist.size(); s++) {
|
|
|
+ List<ImportMdfVo> secVos;
|
|
|
+ String sectionid = "";
|
|
|
+ if (StringUtils.isBlank(mvo.getSectionsn())) {
|
|
|
+ sectionid = SecurityUtil.getUUID();
|
|
|
+ secVos = qcsMdfFormDos.stream().filter(sv -> fm.getProjectdlprojid().equals(sv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(sv.getSourcenumbercode())).collect(Collectors.toList());
|
|
|
+ if (secVos.size() == 0 || maxSectionSn.get() != 0) {
|
|
|
+ maxSectionSn.getAndSet(maxSectionSn.get() + 1);
|
|
|
} else {
|
|
|
- sectionid = secVo.getSectionid();
|
|
|
+ maxSectionSn.getAndSet(Integer.parseInt(secVos.get(secVos.size() - 1).getSectionsn()) + 1);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ secVos = qcsMdfFormDos.stream().filter(sv -> fm.getProjectdlprojid().equals(sv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(sv.getSourcenumbercode()) && mvo.getSectionsn().equals(sv.getSectionsn())).collect(Collectors.toList());
|
|
|
+ if (secVos.size() == 0) {
|
|
|
+ sectionid = SecurityUtil.getUUID();
|
|
|
maxSectionSn.getAndSet(Integer.parseInt(mvo.getSectionsn()));
|
|
|
+ } else {
|
|
|
+ ImportMdfVo secVo = secVos.get(0);
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ if (!mvo.getModifyby().equals(secVo.getModifyby())) {
|
|
|
+ sb.append("修改责任方" + mvo.getModifyby() + "与系统修改责任方" + secVo.getModifyby() + "不同,");
|
|
|
+ }
|
|
|
+ if (!mvo.getErrordesigndtdrawingno().equals(secVo.getErrordesigndtdrawingno())) {
|
|
|
+ sb.append("错误源头图号" + mvo.getErrordesigndtdrawingno() + "与系统错误源头图号" + secVo.getErrordesigndtdrawingno() + "不同,");
|
|
|
+ }
|
|
|
+ if (!mvo.getDtdesigner().equals(secVo.getDtdesigner())) {
|
|
|
+ sb.append("设计人" + mvo.getDtdesigner() + "与系统设计人" + secVo.getDtdesigner() + "不同,");
|
|
|
+ }
|
|
|
+ if (!mvo.getDtwhocollate().equals(secVo.getDtwhocollate())) {
|
|
|
+ sb.append("校对人" + mvo.getDtwhocollate() + "与系统校对人" + secVo.getDtwhocollate() + "不同,");
|
|
|
+ }
|
|
|
+ if (!mvo.getDtwhoapprove().equals(secVo.getDtwhoapprove())) {
|
|
|
+ sb.append("审核人" + mvo.getDtwhoapprove() + "与系统审核人" + secVo.getDtwhoapprove() + "不同,");
|
|
|
+ }
|
|
|
+ if (!mvo.getErrorroutine().equals(secVo.getErrorroutine())) {
|
|
|
+ sb.append("常规错误" + mvo.getErrorroutine() + "与系统常规错误" + secVo.getErrorroutine() + "不同,");
|
|
|
+ }
|
|
|
+ if (!mvo.getErroragain().equals(secVo.getErroragain())) {
|
|
|
+ sb.append("二过错误" + mvo.getErroragain() + "与系统二过错误" + secVo.getErroragain() + "不同,");
|
|
|
+ }
|
|
|
+ if (!mvo.getErrorhard().equals(secVo.getErrorhard())) {
|
|
|
+ sb.append("较难发现错误" + mvo.getErrorhard() + "与系统较难发现错误" + secVo.getErrorhard() + "不同,");
|
|
|
+ }
|
|
|
+ if (!mvo.getErrortable().equals(secVo.getErrortable())) {
|
|
|
+ sb.append("校对表错误" + mvo.getErrortable() + "与系统校对表错误" + secVo.getErrortable() + "不同,");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (StringUtils.isNotBlank(sb.toString())) {
|
|
|
+ allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + "已存在,但导入的数据" + sb.toString() + "请检查<br>");
|
|
|
+ } else {
|
|
|
+ sectionid = secVo.getSectionid();
|
|
|
+ maxSectionSn.getAndSet(Integer.parseInt(mvo.getSectionsn()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- slist.get(0).setSectionsn(maxSectionSn.toString());
|
|
|
+ slist.get(0).setSectionsn(maxSectionSn.toString());
|
|
|
+
|
|
|
+ //按照排号分组
|
|
|
+ Map<String, List<ImportMdfVo>> rnoListMap = slist.stream().collect(Collectors.groupingBy(ImportMdfVo::getRowsn));
|
|
|
+ rnoListMap.forEach((rno, rlm) -> {
|
|
|
+ if (StringUtils.isNotBlank(rno)) {
|
|
|
+ Map<ImportMdfVo, List<ImportMdfVo>> difRMap = rlm.stream().collect(Collectors.groupingBy(
|
|
|
+ m -> new ImportMdfVo(m.getContent(), m.getTaskdesigndtdrawingno(), m.getMinordesigndtdrawingno(), m.getMinordesigndtpartname())
|
|
|
+ ));
|
|
|
+ if (difRMap.size() > 1) {
|
|
|
+ allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",排号" + rno + "有" + rlm.size() + "行,但修改内容、修改图号(任务单部件)、修改图号(次级部件)、修改图名(次级部件)有不同,请检查<br>");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
|
|
|
- if (StringUtils.isBlank(allStrBuilder.toString())) {
|
|
|
- AtomicReference<Integer> maxRowSn = new AtomicReference<>(0);
|
|
|
- //修改图号(任务单部件)分组
|
|
|
- Map<ImportMdfVo, List<ImportMdfVo>> rowListMap = slist.stream().collect(Collectors.groupingBy(
|
|
|
- m -> new ImportMdfVo(m.getContent(), m.getRowsn(), m.getRemark(), mvo.getTaskdesigndtdrawingno(), m.getMinordesigndtdrawingno(), m.getMinordesigndtpartname(), m.getDutydeptname(), m.getManday(), m.getMater(), m.getEquip(), m.getOther())
|
|
|
- ));
|
|
|
- String finalSectionid = sectionid;
|
|
|
- rowListMap.forEach((rvo, rlist) -> {
|
|
|
- for (int r = 0; r < rlist.size(); r++) {
|
|
|
- String rowid = "";
|
|
|
- String detailid = SecurityUtil.getUUID();
|
|
|
- List<ImportMdfVo> secRowVos = qcsMdfFormDos.stream().filter(rv -> fm.getProjectdlprojid().equals(rv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(rv.getSourcenumbercode()) && slist.get(0).getSectionsn().equals(rv.getSectionsn())).collect(Collectors.toList());
|
|
|
- List<ImportMdfVo> rowVos;
|
|
|
- if (StringUtils.isBlank(rlist.get(r).getRowsn())) {
|
|
|
- rowid = SecurityUtil.getUUID();
|
|
|
- if (secRowVos.size() == 0) {
|
|
|
- maxRowSn.getAndSet(maxRowSn.get() + 1);
|
|
|
- } else {
|
|
|
- maxRowSn.getAndSet(Integer.parseInt(secRowVos.get(secRowVos.size() - 1).getRowsn()) + 1);
|
|
|
- }
|
|
|
- } else {
|
|
|
- int finalR = r;
|
|
|
- rowVos = qcsMdfFormDos.stream().filter(rv -> fm.getProjectdlprojid().equals(rv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(rv.getSourcenumbercode()) && slist.get(0).getSectionsn().equals(rv.getSectionsn()) && rlist.get(finalR).getRowsn().equals(rv.getRowsn())).collect(Collectors.toList());
|
|
|
- if (rowVos.size() == 0) {
|
|
|
+ if (StringUtils.isBlank(allStrBuilder.toString())) {
|
|
|
+ AtomicReference<Integer> maxRowSn = new AtomicReference<>(0);
|
|
|
+ //排号分组 空值在后,有值正序在前
|
|
|
+ Map<ImportMdfVo, List<ImportMdfVo>> rowListMap = slist.stream()
|
|
|
+ .sorted(createReverseComparator("rowsn"))
|
|
|
+ .collect(Collectors.groupingBy(
|
|
|
+ m -> new ImportMdfVo(m.getContent(), m.getRowsn(), m.getTaskdesigndtdrawingno(), m.getMinordesigndtdrawingno(), m.getMinordesigndtpartname(), m.getDutydeptname(), m.getManday(), m.getMater(), m.getEquip(), m.getOther()),
|
|
|
+ LinkedHashMap::new, // 保持分组顺序
|
|
|
+ Collectors.toList()
|
|
|
+ ));
|
|
|
+ String finalSectionid = sectionid;
|
|
|
+ rowListMap.forEach((rvo, rlist) -> {
|
|
|
+ for (int r = 0; r < rlist.size(); r++) {
|
|
|
+ String rowid = "";
|
|
|
+ String detailid = SecurityUtil.getUUID();
|
|
|
+ List<ImportMdfVo> secRowVos = qcsMdfFormDos.stream().filter(rv -> fm.getProjectdlprojid().equals(rv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(rv.getSourcenumbercode()) && slist.get(0).getSectionsn().equals(rv.getSectionsn())).collect(Collectors.toList());
|
|
|
+ if (StringUtils.isBlank(rvo.getRowsn())) {
|
|
|
rowid = SecurityUtil.getUUID();
|
|
|
- if (secRowVos.size() == 0) {
|
|
|
+ if (secRowVos.size() == 0 || maxRowSn.get() != 0) {
|
|
|
maxRowSn.getAndSet(maxRowSn.get() + 1);
|
|
|
} else {
|
|
|
maxRowSn.getAndSet(Integer.parseInt(secRowVos.get(secRowVos.size() - 1).getRowsn()) + 1);
|
|
|
}
|
|
|
} else {
|
|
|
- ImportMdfVo rowVo = qcsMdfFormDos.stream().filter(rv -> fm.getProjectdlprojid().equals(rv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(rv.getSourcenumbercode()) && slist.get(0).getSectionsn().equals(rv.getSectionsn()) && rlist.get(finalR).getRowsn().equals(rv.getRowsn()) && unitId.equals(rv.getDeptid())).findAny().orElse(null);
|
|
|
+ int finalR = r;
|
|
|
+ ImportMdfVo rowVo = qcsMdfFormDos.stream().filter(rv -> fm.getProjectdlprojid().equals(rv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(rv.getSourcenumbercode()) && slist.get(0).getSectionsn().equals(rv.getSectionsn()) && rvo.getRowsn().equals(rv.getRowsn()) && rlist.get(finalR).getRemark().equals(rv.getRemark())).findAny().orElse(null);
|
|
|
if (rowVo == null) {
|
|
|
rowid = SecurityUtil.getUUID();
|
|
|
- if (secRowVos.size() == 0) {
|
|
|
- maxRowSn.getAndSet(maxRowSn.get() + 1);
|
|
|
- } else {
|
|
|
- maxRowSn.getAndSet(Integer.parseInt(secRowVos.get(secRowVos.size() - 1).getRowsn()) + 1);
|
|
|
- }
|
|
|
+ maxRowSn.getAndSet(Integer.parseInt(rvo.getRowsn()));
|
|
|
} else {
|
|
|
- if (!rlist.get(r).getRemark().equals(rowVo.getRemark())) {
|
|
|
- rowid = SecurityUtil.getUUID();
|
|
|
- if (secRowVos.size() == 0) {
|
|
|
- maxRowSn.getAndSet(maxRowSn.get() + 1);
|
|
|
- } else {
|
|
|
- maxRowSn.getAndSet(Integer.parseInt(secRowVos.get(secRowVos.size() - 1).getRowsn()) + 1);
|
|
|
- }
|
|
|
+// if (!rlist.get(r).getRemark().equals(rowVo.getRemark())) {
|
|
|
+// rowid = SecurityUtil.getUUID();
|
|
|
+// maxRowSn.getAndSet(Integer.parseInt(rvo.getRowsn()) + 1);
|
|
|
+// } else {
|
|
|
+ if (rowVo.getStatus().equals("已提交") && rowVo.getDeptid().equals(unitId)) {
|
|
|
+ allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + ",排号" + rvo.getRowsn() + "数据已提交,请检查<br>");
|
|
|
} else {
|
|
|
- if (rowVo.getStatus().equals("已提交")) {
|
|
|
- allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + ",排号" + rlist.get(r).getRowsn() + "数据已提交,请检查<br>");
|
|
|
- } else {
|
|
|
- StringBuilder sb = new StringBuilder();
|
|
|
- if (!rlist.get(r).getContent().equals(rowVo.getContent())) {
|
|
|
- sb.append("修改内容" + rlist.get(r).getContent() + "与系统修改内容" + rowVo.getContent() + "不同,");
|
|
|
- }
|
|
|
- if (!rlist.get(r).getTaskdesigndtdrawingno().equals(rowVo.getTaskdesigndtdrawingno())) {
|
|
|
- sb.append("修改图号(任务单部件)" + rlist.get(r).getTaskdesigndtdrawingno() + "与系统修改图号(任务单部件)" + rowVo.getTaskdesigndtdrawingno() + "不同,");
|
|
|
- }
|
|
|
- if (!rlist.get(r).getMinordesigndtdrawingno().equals(rowVo.getMinordesigndtdrawingno())) {
|
|
|
- sb.append("修改图号(次级部件)" + rlist.get(r).getMinordesigndtdrawingno() + "与系统修改图号(次级部件)" + rowVo.getMinordesigndtdrawingno() + "不同,");
|
|
|
- }
|
|
|
- if (!rlist.get(r).getMinordesigndtpartname().equals(rowVo.getMinordesigndtpartname())) {
|
|
|
- sb.append("修改图名(次级部件)" + rlist.get(r).getMinordesigndtpartname() + "与系统修改图名(次级部件)" + rowVo.getMinordesigndtpartname() + "不同,");
|
|
|
- }
|
|
|
+ StringBuilder sb = new StringBuilder();
|
|
|
+ if (!rvo.getContent().equals(rowVo.getContent())) {
|
|
|
+ sb.append("修改内容" + rvo.getContent() + "与系统修改内容" + rowVo.getContent() + "不同,");
|
|
|
+ }
|
|
|
+ if (!rvo.getTaskdesigndtdrawingno().equals(rowVo.getTaskdesigndtdrawingno())) {
|
|
|
+ sb.append("修改图号(任务单部件)" + rvo.getTaskdesigndtdrawingno() + "与系统修改图号(任务单部件)" + rowVo.getTaskdesigndtdrawingno() + "不同,");
|
|
|
+ }
|
|
|
+ if (!rvo.getMinordesigndtdrawingno().equals(rowVo.getMinordesigndtdrawingno())) {
|
|
|
+ sb.append("修改图号(次级部件)" + rvo.getMinordesigndtdrawingno() + "与系统修改图号(次级部件)" + rowVo.getMinordesigndtdrawingno() + "不同,");
|
|
|
+ }
|
|
|
+ if (!rvo.getMinordesigndtpartname().equals(rowVo.getMinordesigndtpartname())) {
|
|
|
+ sb.append("修改图名(次级部件)" + rvo.getMinordesigndtpartname() + "与系统修改图名(次级部件)" + rowVo.getMinordesigndtpartname() + "不同,");
|
|
|
+ }
|
|
|
|
|
|
- if (StringUtils.isNotBlank(sb.toString())) {
|
|
|
- allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + ",排号" + rlist.get(r).getRowsn() + "已存在,但导入的数据" + sb.toString() + "请检查<br>");
|
|
|
- } else {
|
|
|
- rowid = rowVo.getRowid();
|
|
|
+ if (StringUtils.isNotBlank(sb.toString())) {
|
|
|
+ allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + ",排号" + rvo.getRowsn() + "已存在,但导入的数据" + sb.toString() + "请检查<br>");
|
|
|
+ } else {
|
|
|
+ rowid = rowVo.getRowid();
|
|
|
+ if (rowVo.getDeptid().equals(unitId)) {
|
|
|
detailid = rowVo.getDetailid();
|
|
|
- maxRowSn.getAndSet(Integer.parseInt(rlist.get(r).getRowsn()));
|
|
|
}
|
|
|
+ maxRowSn.getAndSet(Integer.parseInt(rvo.getRowsn()));
|
|
|
}
|
|
|
}
|
|
|
+// }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- rlist.get(r).setRowsn(maxRowSn.toString());
|
|
|
-
|
|
|
- if (StringUtils.isBlank(allStrBuilder.toString())) {
|
|
|
- QcsMdfRowDo qcsMdfRowDo = BeanUtil.toBean(rlist.get(r), QcsMdfRowDo.class);
|
|
|
- qcsMdfRowDo.setId(rowid);
|
|
|
- qcsMdfRowDo.setRowsn(slist.get(0).getSectionsn() + "-" + qcsMdfRowDo.getRowsn());
|
|
|
- qcsMdfRowDo.setFormid(finalFormid);
|
|
|
- qcsMdfRowDo.setSectionid(finalSectionid);
|
|
|
- qcsMdfRowDo.setRoption(ropJson);
|
|
|
- qcsMdfRowDoList.add(qcsMdfRowDo);
|
|
|
-
|
|
|
- QcsMdfDetailDo qcsMdfDetailDo = BeanUtil.toBean(rlist.get(r), QcsMdfDetailDo.class);
|
|
|
- qcsMdfDetailDo.setId(detailid);
|
|
|
- qcsMdfDetailDo.setRowid(rowid);
|
|
|
- qcsMdfDetailDo.setFormid(finalFormid);
|
|
|
- qcsMdfDetailDo.setSectionid(finalSectionid);
|
|
|
- qcsMdfDetailDo.setRoption(ropJson);
|
|
|
- qcsMdfDetailDo.setDeptid(unitId);
|
|
|
- qcsMdfDetailDo.setDeptname(finalDeptName);
|
|
|
- qcsMdfDetailDo.setMdfreason(flist.get(0).getSourcename());
|
|
|
- if (rlist.get(r).getProducename().equals("未下料")) {
|
|
|
- qcsMdfDetailDo.setManday(null);
|
|
|
- qcsMdfDetailDo.setMater(null);
|
|
|
- qcsMdfDetailDo.setEquip(null);
|
|
|
- qcsMdfDetailDo.setOther(null);
|
|
|
- } else {
|
|
|
- BigDecimal total = sumTotal(qcsMdfDetailDo);
|
|
|
- qcsMdfDetailDo.setTotalamount(total);
|
|
|
- qcsMdfDetailDo.setActamount(total);
|
|
|
- }
|
|
|
- if (finalResDutyList.size() > 0) {
|
|
|
- qcsMdfDetailDo.setDutydeptid(finalResDutyList.get(0).get("DUTYDEPTID"));
|
|
|
- qcsMdfDetailDo.setDutydeptname(finalResDutyList.get(0).get("DUTYDEPTNAME"));
|
|
|
- } else if (flist.get(0).getSourcename() != null && flist.get(0).getSourcename().equals("基地要求")) {
|
|
|
- qcsMdfDetailDo.setDutydeptid(unitId);
|
|
|
- qcsMdfDetailDo.setDutydeptname(finalDeptName);
|
|
|
+ rlist.get(r).setRowsn(maxRowSn.toString());
|
|
|
+
|
|
|
+ if (StringUtils.isBlank(allStrBuilder.toString())) {
|
|
|
+ QcsMdfRowDo qcsMdfRowDo = BeanUtil.toBean(rlist.get(r), QcsMdfRowDo.class);
|
|
|
+ qcsMdfRowDo.setId(rowid);
|
|
|
+ qcsMdfRowDo.setRowsn(slist.get(0).getSectionsn() + "-" + qcsMdfRowDo.getRowsn());
|
|
|
+ qcsMdfRowDo.setFormid(finalFormid);
|
|
|
+ qcsMdfRowDo.setSectionid(finalSectionid);
|
|
|
+ qcsMdfRowDo.setRoption(ropJson);
|
|
|
+ qcsMdfRowDoList.add(qcsMdfRowDo);
|
|
|
+
|
|
|
+ QcsMdfDetailDo qcsMdfDetailDo = BeanUtil.toBean(rlist.get(r), QcsMdfDetailDo.class);
|
|
|
+ qcsMdfDetailDo.setId(detailid);
|
|
|
+ qcsMdfDetailDo.setRowid(rowid);
|
|
|
+ qcsMdfDetailDo.setFormid(finalFormid);
|
|
|
+ qcsMdfDetailDo.setSectionid(finalSectionid);
|
|
|
+ qcsMdfDetailDo.setRoption(ropJson);
|
|
|
+ qcsMdfDetailDo.setDeptid(unitId);
|
|
|
+ qcsMdfDetailDo.setDeptname(finalDeptName);
|
|
|
+ qcsMdfDetailDo.setMdfreason(flist.get(0).getSourcename());
|
|
|
+ if (rlist.get(r).getProducename().equals("未下料")) {
|
|
|
+ qcsMdfDetailDo.setManday(null);
|
|
|
+ qcsMdfDetailDo.setMater(null);
|
|
|
+ qcsMdfDetailDo.setEquip(null);
|
|
|
+ qcsMdfDetailDo.setOther(null);
|
|
|
+ } else {
|
|
|
+ qcsMdfDetailDo.setManday(qcsMdfDetailDo.getManday() == null ? new BigDecimal(0) : qcsMdfDetailDo.getManday());
|
|
|
+ qcsMdfDetailDo.setMater(qcsMdfDetailDo.getMater() == null ? new BigDecimal(0) : qcsMdfDetailDo.getMater());
|
|
|
+ qcsMdfDetailDo.setEquip(qcsMdfDetailDo.getEquip() == null ? new BigDecimal(0) : qcsMdfDetailDo.getEquip());
|
|
|
+ qcsMdfDetailDo.setOther(qcsMdfDetailDo.getOther() == null ? new BigDecimal(0) : qcsMdfDetailDo.getOther());
|
|
|
+ BigDecimal total = sumTotal(qcsMdfDetailDo);
|
|
|
+ qcsMdfDetailDo.setTotalamount(total);
|
|
|
+ qcsMdfDetailDo.setActamount(total);
|
|
|
+ }
|
|
|
+ if (finalResDutyList.size() > 0) {
|
|
|
+ qcsMdfDetailDo.setDutydeptid(finalResDutyList.get(0).get("DUTYDEPTID"));
|
|
|
+ qcsMdfDetailDo.setDutydeptname(finalResDutyList.get(0).get("DUTYDEPTNAME"));
|
|
|
+ } else if (flist.get(0).getSourcename() != null && flist.get(0).getSourcename().equals("基地要求")) {
|
|
|
+ qcsMdfDetailDo.setDutydeptid(unitId);
|
|
|
+ qcsMdfDetailDo.setDutydeptname(finalDeptName);
|
|
|
+ }
|
|
|
+ qcsMdfDetailDoList.add(qcsMdfDetailDo);
|
|
|
}
|
|
|
- qcsMdfDetailDoList.add(qcsMdfDetailDo);
|
|
|
}
|
|
|
- }
|
|
|
- });
|
|
|
- }
|
|
|
+ });
|
|
|
+ }
|
|
|
|
|
|
- if (StringUtils.isBlank(allStrBuilder.toString())) {
|
|
|
- QcsMdfSectionDo qcsMdfSectionDo = BeanUtil.toBean(slist.get(0), QcsMdfSectionDo.class);
|
|
|
- qcsMdfSectionDo.setId(sectionid);
|
|
|
- qcsMdfSectionDo.setFormid(finalFormid1);
|
|
|
- qcsMdfSectionDo.setRoption(ropJson);
|
|
|
- qcsMdfSectionDoList.add(qcsMdfSectionDo);
|
|
|
- }
|
|
|
+ if (StringUtils.isBlank(allStrBuilder.toString())) {
|
|
|
+ QcsMdfSectionDo qcsMdfSectionDo = BeanUtil.toBean(slist.get(0), QcsMdfSectionDo.class);
|
|
|
+ qcsMdfSectionDo.setId(sectionid);
|
|
|
+ qcsMdfSectionDo.setFormid(finalFormid1);
|
|
|
+ qcsMdfSectionDo.setRoption(ropJson);
|
|
|
+ qcsMdfSectionDoList.add(qcsMdfSectionDo);
|
|
|
+ }
|
|
|
// }
|
|
|
- });
|
|
|
+ });
|
|
|
+ }
|
|
|
if (StringUtils.isBlank(allStrBuilder.toString())) {
|
|
|
QcsMdfFormDo qcsMdfFormDo = BeanUtil.toBean(flist.get(0), QcsMdfFormDo.class);
|
|
|
qcsMdfFormDo.setId(formid);
|
|
@@ -893,6 +985,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
return R.error("没有要导入的数据,请确认");
|
|
|
}
|
|
|
}
|
|
|
+// return R.ok();
|
|
|
|
|
|
if (StringUtils.isNotBlank(allStrBuilder.toString())) {
|
|
|
return R.error(allStrBuilder.toString());
|
|
@@ -917,6 +1010,28 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private Comparator<ImportMdfVo> createReverseComparator(String sortField) {
|
|
|
+ return (p1, p2) -> {
|
|
|
+ try {
|
|
|
+ java.lang.reflect.Field f = ImportMdfVo.class.getDeclaredField(sortField);
|
|
|
+ f.setAccessible(true);
|
|
|
+ Comparable val1 = (Comparable) f.get(p1);
|
|
|
+ Comparable val2 = (Comparable) f.get(p2);
|
|
|
+
|
|
|
+ // 两个都为null,视为相等
|
|
|
+ if (val1 == "" && val2 == "") return 0;
|
|
|
+ // 只有val1为null,val2排前面
|
|
|
+ if (val1 == "") return 1;
|
|
|
+ // 只有val2为null,val1排前面
|
|
|
+ if (val2 == "") return -1;
|
|
|
+ // 两个都不为null,按正序排列
|
|
|
+ return val1.compareTo(val2);
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException("分组排序失败", e);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ }
|
|
|
+
|
|
|
//正整数
|
|
|
public static boolean isPositiveInteger(String str) {
|
|
|
return str != null && str.matches("\\d+") && !str.startsWith("0");
|