ソースを参照

修改单导入优化

DLC 2 日 前
コミット
a0a5446d50

+ 1 - 1
qcs-common/src/main/java/com/rongwei/bscommon/sys/service/impl/CommonServiceImpl.java

@@ -155,7 +155,7 @@ public class CommonServiceImpl implements CommonService {
             searStr = " and t.DTDRAWINGNO like '%" + dtdrawingno + "%'";
         }
         if (StringUtils.isNotBlank(dtpartname)) {
-            searStr += " and t.DTPARTNAME like '" + dtpartname + "'";
+            searStr += " and t.DTPARTNAME like '%" + dtpartname + "%'";
         }
 //        log.info("获取获取部件图号开始");
         List<QcsPartNoDo> qcsPartNoDos = slaveDao.getPartnos(procode, searStr);

+ 46 - 19
qcs-common/src/main/java/com/rongwei/bscommon/sys/service/impl/QcsMdfFormServiceImpl.java

@@ -357,10 +357,18 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
 
                 String finalProcode = procode;
                 codeParts = allPartnos.stream().filter(c -> c.getDlprojid().equals(finalProcode)).collect(Collectors.toList());
+                importMdfVo.setProjectdlprojid(procode);
                 if (codeParts.size() == 0) {
-                    stringBuilder.append("项目工号" + procode + "不存在,");
+//                    stringBuilder.append("项目工号" + procode + "不存在,");
+                    String proname = row.getCell(3) == null ? "" : row.getCell(3).toString().replaceAll("\\s+", "");//项目名称
+                    if (StringUtils.isNotEmpty(proname)) {
+                        if (StringUtil.isScience(proname)) {
+                            BigDecimal formatProjectCode = new BigDecimal(proname);
+                            proname = formatProjectCode.setScale(0, BigDecimal.ROUND_HALF_UP).toPlainString();
+                        }
+                    }
+                    importMdfVo.setProjectdlprojname(proname);
                 } else {
-                    importMdfVo.setProjectdlprojid(procode);
                     importMdfVo.setProjectdlprojname(codeParts.get(0).getDlprojname());
                 }
             }
@@ -466,9 +474,17 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                 String finalPartno = partno;
                 List<QcsPartNoDo> partNos = codeParts.stream().filter(p -> p.getDtdrawingno().equals(finalPartno)).collect(Collectors.toList());
                 if (partNos.size() == 0) {
-                    stringBuilder.append("错误源头图号" + partno + "与项目工号" + procode + "不匹配,");
+//                    stringBuilder.append("错误源头图号" + partno + "与项目工号" + procode + "不匹配,");
+                    String errordesigndtpartname = row.getCell(23) == null ? "" : row.getCell(23).toString().replaceAll("\\s+", "");//错误源头图名
+                    if (StringUtils.isNotEmpty(errordesigndtpartname)) {
+                        if (StringUtil.isScience(errordesigndtpartname)) {
+                            BigDecimal formatProjectCode = new BigDecimal(errordesigndtpartname);
+                            errordesigndtpartname = formatProjectCode.setScale(0, BigDecimal.ROUND_HALF_UP).toPlainString();
+                        }
+                    }
+                    importMdfVo.setErrordesigndtpartname(errordesigndtpartname);
                 } else {
-                    importMdfVo.setErrordesigndtpartname(partNos.get(0).getDtpartname());
+                    importMdfVo.setErrordesigndtpartname(partNos.get(0).getDtpartname());//错误源头图名
                 }
             }
             importMdfVo.setErrordesigndtdrawingno(partno);
@@ -587,7 +603,15 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                 String finaltaskdesign = taskdesign;
                 List<QcsPartNoDo> taskdesigns = codeParts.stream().filter(p -> p.getDtdrawingno().equals(finaltaskdesign)).collect(Collectors.toList());
                 if (taskdesigns.size() == 0) {
-                    stringBuilder.append("修改图号(任务单部件)" + taskdesign + "与项目工号" + procode + "不匹配,");
+//                    stringBuilder.append("修改图号(任务单部件)" + taskdesign + "与项目工号" + procode + "不匹配,");
+                    String taskdesigndtpartname = row.getCell(32) == null ? "" : row.getCell(32).toString().replaceAll("\\s+", "");//修改图名(任务单部件)
+                    if (StringUtils.isNotEmpty(taskdesigndtpartname)) {
+                        if (StringUtil.isScience(taskdesigndtpartname)) {
+                            BigDecimal formatProjectCode = new BigDecimal(taskdesigndtpartname);
+                            taskdesigndtpartname = formatProjectCode.setScale(0, BigDecimal.ROUND_HALF_UP).toPlainString();
+                        }
+                    }
+                    importMdfVo.setTaskdesigndtpartname(taskdesigndtpartname);
                 } else {
                     importMdfVo.setTaskdesigndtpartname(taskdesigns.get(0).getDtpartname());
                 }
@@ -746,6 +770,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
 
                         if (StringUtils.isBlank(allStrBuilder.toString())) {
                             AtomicReference<Integer> maxSectionSn = new AtomicReference<>(0);
+                            final Boolean[] sUseMax = {false};
                             //序号分组 空值在后,有值正序在前
                             Map<ImportMdfVo, List<ImportMdfVo>> mdfVoListMap = flist.stream()
                                     .sorted(createReverseComparator("sectionsn"))
@@ -783,10 +808,11 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                                         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 {
+                                            if (secVos.size() > 0 && !sUseMax[0]) {
                                                 maxSectionSn.getAndSet(Integer.parseInt(secVos.get(secVos.size() - 1).getSectionsn()) + 1);
+                                                sUseMax[0] = true;
+                                            } else {
+                                                maxSectionSn.getAndSet(maxSectionSn.get() + 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());
@@ -840,6 +866,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
 
                                         if (StringUtils.isBlank(allStrBuilder.toString())) {
                                             AtomicReference<Integer> maxRowSn = new AtomicReference<>(0);
+                                            final Boolean[] rUseMax = {false};
                                             //排号分组 空值在后,有值正序在前
                                             Map<ImportMdfVo, List<ImportMdfVo>> rowListMap = slist.stream()
                                                     .sorted(createReverseComparator("rowsn"))
@@ -859,28 +886,28 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                                                     List<ImportMdfVo> secRowVos = qcsMdfFormDos.stream().filter(rv -> fm.getProjectdlprojid().equals(rv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(rv.getSourcenumbercode()) && slist.get(finalS).getSectionsn().equals(rv.getSectionsn())).collect(Collectors.toList());
                                                     if (StringUtils.isBlank(rvo.getRowsn())) {
                                                         rowid = SecurityUtil.getUUID();
-                                                        if (secRowVos.size() == 0 || maxRowSn.get() != 0) {
-                                                            maxRowSn.getAndSet(maxRowSn.get() + 1);
-                                                        } else {
+                                                        if (secRowVos.size() > 0 && !rUseMax[0]) {
                                                             maxRowSn.getAndSet(Integer.parseInt(secRowVos.get(secRowVos.size() - 1).getRowsn()) + 1);
+                                                            rUseMax[0] = true;
+                                                        } else {
+                                                            maxRowSn.getAndSet(maxRowSn.get() + 1);
                                                         }
                                                     } else {
-//                                                            int finalR = r;
                                                         List<ImportMdfVo> rowVos = qcsMdfFormDos.stream().filter(rv -> fm.getProjectdlprojid().equals(rv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(rv.getSourcenumbercode()) && slist.get(finalS).getSectionsn().equals(rv.getSectionsn()) && rvo.getRowsn().equals(rv.getRowsn()) && rlist.get(0).getRemark().equals(rv.getRemark())).collect(Collectors.toList());
                                                         if (rowVos.size() == 0) {
                                                             rowVos = qcsMdfFormDos.stream().filter(rv -> fm.getProjectdlprojid().equals(rv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(rv.getSourcenumbercode()) && slist.get(finalS).getSectionsn().equals(rv.getSectionsn()) && rvo.getRowsn().equals(rv.getRowsn())).collect(Collectors.toList());
                                                         }
-                                                        ImportMdfVo rowVo = rowVos.stream().filter(ro -> unitId.equals(ro.getDeptid())).findAny().orElse(null);
+                                                        ImportMdfVo rowVo = rowVos.stream().filter(ro -> unitId.equals(ro.getDeptid()) && rvo.getRemark().equals(ro.getRemark())).findAny().orElse(null);
                                                         if (rowVo == null) {
                                                             rowid = SecurityUtil.getUUID();
                                                             maxRowSn.getAndSet(Integer.parseInt(rvo.getRowsn()));
                                                         } else {
-//                                                        if (!rlist.get(r).getRemark().equals(rowVo.getRemark())) {
-//                                                            rowid = SecurityUtil.getUUID();
-//                                                            maxRowSn.getAndSet(Integer.parseInt(rvo.getRowsn()) + 1);
-//                                                        } else {
                                                             if (rowVo.getStatus().equals("已提交")) {
-                                                                allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + ",排号" + rvo.getRowsn() + "数据已提交,请检查<br>");
+                                                                if (StringUtils.isBlank(rvo.getRemark())) {
+                                                                    allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + ",排号" + rvo.getRowsn() + "数据已提交,请检查<br>");
+                                                                } else {
+                                                                    allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + ",排号" + rvo.getRowsn() + ",备注" + rvo.getRemark() + "数据已提交,请检查<br>");
+                                                                }
                                                             } else {
                                                                 StringBuilder sb = new StringBuilder();
                                                                 if (rowVo.getRcreateuserid().equals("0")) {
@@ -910,7 +937,6 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                                                                     maxRowSn.getAndSet(Integer.parseInt(rvo.getRowsn()));
                                                                 }
                                                             }
-//                                                        }
                                                         }
                                                     }
                                                     rlist.get(0).setRowsn(maxRowSn.toString());
@@ -986,6 +1012,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                                     qcsMdfFormDo = BeanUtil.toBean(flist.get(0), QcsMdfFormDo.class);
                                     qcsMdfFormDo.setId(formid);
                                     qcsMdfFormDo.setRoption(ropJson);
+                                    qcsMdfFormDo.setRemark(qcsMdfFormDo.getProjectdlprojid());
                                     if (isnew) {
                                         qcsMdfFormDo.setBaseid(unitId);
                                         qcsMdfFormDo.setBasename(finalDeptName1);