Browse Source

修改单导入时工号+编号唯一

DLC 1 week ago
parent
commit
b949acc128

+ 3 - 0
qcs-common/src/main/java/com/rongwei/bscommon/sys/dao/QcsMdfFormDao.java

@@ -66,4 +66,7 @@ public interface QcsMdfFormDao extends BaseMapper<QcsMdfFormDo> {
 
     @Select("select distinct DUTYDEPTID from qcs_mdf_detail where DELETED='0' and FORMID=#{formId} and IFNULL(DUTYDEPTID,'')!=''")
     List<QcsMdfDetailDo> getDutyDeptIds(@Param(value = "formId") String formId);
+
+    @Select("select ID,PROJECTDLPROJID,SOURCENUMBERCODE from qcs_mdf_form where DELETED='0'")
+    List<QcsMdfFormDo> getMdfForms();
 }

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

@@ -240,6 +240,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
         List<SysUserDo> sysUserDos = qcsMdfFormDao.getAllUsers();//人员信息
         List<Map<String, String>> unitMap = qcsMdfFormDao.getUnitMap();//基地信息
         List<Map<String, String>> resDutyMap = qcsMdfFormDao.getResDuty();//修改原因与责任单位配置信息
+        List<QcsMdfFormDo> qcsMdfFormDos = qcsMdfFormDao.getMdfForms();//已存在的修改单
         String deptName = "";
         List<Map<String, String>> unitList = unitMap.stream()
                 .filter(umap -> {
@@ -554,83 +555,88 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                 ));
                 List<Map<String, String>> finalResDutyList = resDutyList;
                 formList.forEach((fm, flist) -> {
-                    //修改单分组
-                    Map<ImportMdfVo, List<ImportMdfVo>> formListMap = flist.stream().collect(Collectors.groupingBy(
-                            f -> new ImportMdfVo(f.getSourcename(), f.getNumbername(), f.getRectifycode(), f.getManageadminnickname(), f.getProducename())
-                    ));
-                    if (formListMap.size() > 1) {
-                        allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + "有" + formListMap.size() + "行数据重复,请检查");
+                    List<QcsMdfFormDo> hasMdfForms = qcsMdfFormDos.stream().filter(hm -> hm.getProjectdlprojid().equals(fm.getProjectdlprojid()) && hm.getSourcenumbercode().equals(fm.getSourcenumbercode())).collect(Collectors.toList());
+                    if (hasMdfForms.size() > 0) {
+                        allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + "系统已存在,请确认");
                     } else {
-                        String formid = SecurityUtil.getUUID();
-                        //序号分组
-                        Map<ImportMdfVo, List<ImportMdfVo>> mdfVoListMap = flist.stream().collect(Collectors.groupingBy(
-                                p -> new ImportMdfVo(p.getErrordesigndtdrawingno(), p.getDtdesigner(), p.getDtwhocollate(), p.getDtwhoapprove(), p.getModifyby(), p.getErrorroutine(), p.getErroragain(), p.getErrorhard(), p.getErrortable())
+                        //修改单分组
+                        Map<ImportMdfVo, List<ImportMdfVo>> formListMap = flist.stream().collect(Collectors.groupingBy(
+                                f -> new ImportMdfVo(f.getSourcename(), f.getNumbername(), f.getRectifycode(), f.getManageadminnickname(), f.getProducename())
                         ));
-                        mdfVoListMap.forEach((mvo, slist) -> {
-                            for (int s = 0; s < slist.size(); s++) {
-                                String sectionid = SecurityUtil.getUUID();
-                                //修改图号(任务单部件)分组
-                                Map<ImportMdfVo, List<ImportMdfVo>> rowListMap = slist.stream().collect(Collectors.groupingBy(
-                                        m -> new ImportMdfVo(mvo.getTaskdesigndtdrawingno(), m.getMinordesigndtdrawingno(), m.getMinordesigndtpartname(), m.getContent(), m.getManday(), m.getMater(), m.getEquip(), m.getOther())
-                                ));
-                                rowListMap.forEach((rvo, rlist) -> {
-                                    for (int r = 0; r < rlist.size(); r++) {
-                                        String rowid = SecurityUtil.getUUID();
-                                        QcsMdfRowDo qcsMdfRowDo = BeanUtil.toBean(rlist.get(r), QcsMdfRowDo.class);
-                                        qcsMdfRowDo.setId(rowid);
-                                        qcsMdfRowDo.setFormid(formid);
-                                        qcsMdfRowDo.setSectionid(sectionid);
-                                        qcsMdfRowDo.setRoption(ropJson);
-                                        qcsMdfRowDoList.add(qcsMdfRowDo);
-
-                                        QcsMdfDetailDo qcsMdfDetailDo = BeanUtil.toBean(rlist.get(r), QcsMdfDetailDo.class);
-                                        qcsMdfDetailDo.setId(SecurityUtil.getUUID());
-                                        qcsMdfDetailDo.setRowid(rowid);
-                                        qcsMdfDetailDo.setFormid(formid);
-                                        qcsMdfDetailDo.setSectionid(sectionid);
-                                        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 (formListMap.size() > 1) {
+                            allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + "有" + formListMap.size() + "行数据重复,请检查");
+                        } else {
+                            String formid = SecurityUtil.getUUID();
+                            //序号分组
+                            Map<ImportMdfVo, List<ImportMdfVo>> mdfVoListMap = flist.stream().collect(Collectors.groupingBy(
+                                    p -> new ImportMdfVo(p.getErrordesigndtdrawingno(), p.getDtdesigner(), p.getDtwhocollate(), p.getDtwhoapprove(), p.getModifyby(), p.getErrorroutine(), p.getErroragain(), p.getErrorhard(), p.getErrortable())
+                            ));
+                            mdfVoListMap.forEach((mvo, slist) -> {
+                                for (int s = 0; s < slist.size(); s++) {
+                                    String sectionid = SecurityUtil.getUUID();
+                                    //修改图号(任务单部件)分组
+                                    Map<ImportMdfVo, List<ImportMdfVo>> rowListMap = slist.stream().collect(Collectors.groupingBy(
+                                            m -> new ImportMdfVo(mvo.getTaskdesigndtdrawingno(), m.getMinordesigndtdrawingno(), m.getMinordesigndtpartname(), m.getContent(), m.getManday(), m.getMater(), m.getEquip(), m.getOther())
+                                    ));
+                                    rowListMap.forEach((rvo, rlist) -> {
+                                        for (int r = 0; r < rlist.size(); r++) {
+                                            String rowid = SecurityUtil.getUUID();
+                                            QcsMdfRowDo qcsMdfRowDo = BeanUtil.toBean(rlist.get(r), QcsMdfRowDo.class);
+                                            qcsMdfRowDo.setId(rowid);
+                                            qcsMdfRowDo.setFormid(formid);
+                                            qcsMdfRowDo.setSectionid(sectionid);
+                                            qcsMdfRowDo.setRoption(ropJson);
+                                            qcsMdfRowDoList.add(qcsMdfRowDo);
+
+                                            QcsMdfDetailDo qcsMdfDetailDo = BeanUtil.toBean(rlist.get(r), QcsMdfDetailDo.class);
+                                            qcsMdfDetailDo.setId(SecurityUtil.getUUID());
+                                            qcsMdfDetailDo.setRowid(rowid);
+                                            qcsMdfDetailDo.setFormid(formid);
+                                            qcsMdfDetailDo.setSectionid(sectionid);
+                                            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().equals("基地要求")) {
+                                                qcsMdfDetailDo.setDutydeptid(unitId);
+                                                qcsMdfDetailDo.setDutydeptname(finalDeptName);
+                                            }
+                                            qcsMdfDetailDoList.add(qcsMdfDetailDo);
                                         }
-                                        if (finalResDutyList.size() > 0) {
-                                            qcsMdfDetailDo.setDutydeptid(finalResDutyList.get(0).get("DUTYDEPTID"));
-                                            qcsMdfDetailDo.setDutydeptname(finalResDutyList.get(0).get("DUTYDEPTNAME"));
-                                        } else if (flist.get(0).getSourcename().equals("基地要求")) {
-                                            qcsMdfDetailDo.setDutydeptid(unitId);
-                                            qcsMdfDetailDo.setDutydeptname(finalDeptName);
-                                        }
-                                        qcsMdfDetailDoList.add(qcsMdfDetailDo);
+                                    });
+
+                                    if (StringUtils.isBlank(allStrBuilder.toString())) {
+                                        QcsMdfSectionDo qcsMdfSectionDo = BeanUtil.toBean(slist.get(s), QcsMdfSectionDo.class);
+                                        qcsMdfSectionDo.setId(sectionid);
+                                        qcsMdfSectionDo.setFormid(formid);
+                                        qcsMdfSectionDo.setRoption(ropJson);
+                                        qcsMdfSectionDoList.add(qcsMdfSectionDo);
                                     }
-                                });
-
-                                if (StringUtils.isBlank(allStrBuilder.toString())) {
-                                    QcsMdfSectionDo qcsMdfSectionDo = BeanUtil.toBean(slist.get(s), QcsMdfSectionDo.class);
-                                    qcsMdfSectionDo.setId(sectionid);
-                                    qcsMdfSectionDo.setFormid(formid);
-                                    qcsMdfSectionDo.setRoption(ropJson);
-                                    qcsMdfSectionDoList.add(qcsMdfSectionDo);
                                 }
+                            });
+                            if (StringUtils.isBlank(allStrBuilder.toString())) {
+                                QcsMdfFormDo qcsMdfFormDo = BeanUtil.toBean(flist.get(0), QcsMdfFormDo.class);
+                                qcsMdfFormDo.setId(formid);
+                                qcsMdfFormDo.setRoption(ropJson);
+                                qcsMdfFormDo.setBaseid(unitId);
+                                qcsMdfFormDo.setBasename(finalDeptName1);
+                                qcsMdfFormDo.setDatasource("质量成本系统");
+                                qcsMdfFormDoList.add(qcsMdfFormDo);
+                                formids.add(formid);
                             }
-                        });
-                        if (StringUtils.isBlank(allStrBuilder.toString())) {
-                            QcsMdfFormDo qcsMdfFormDo = BeanUtil.toBean(flist.get(0), QcsMdfFormDo.class);
-                            qcsMdfFormDo.setId(formid);
-                            qcsMdfFormDo.setRoption(ropJson);
-                            qcsMdfFormDo.setBaseid(unitId);
-                            qcsMdfFormDo.setBasename(finalDeptName1);
-                            qcsMdfFormDo.setDatasource("质量成本系统");
-                            qcsMdfFormDoList.add(qcsMdfFormDo);
-                            formids.add(formid);
                         }
                     }
                 });