浏览代码

修改单导入调整

DLC 6 天之前
父节点
当前提交
efd0c31c57

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

@@ -18,8 +18,8 @@ import java.util.List;
 import java.util.Map;
 
 public interface QcsMdfFormDao extends BaseMapper<QcsMdfFormDo> {
-    @Select("select ID from qcs_mdf_form where DELETED='0' and DTWHOAPPROVETIME>='${dtwhoapproveTime} 00:00:00' and DTWHOAPPROVETIME<='${dtwhoapproveTime} 23:59:59'")
-    List<QcsMdfFormDo> getQcsMdfForms(@Param("dtwhoapproveTime") String dtwhoapproveTime);
+    @Select("select ID,PROJECTDLPROJID,SOURCENUMBERCODE from qcs_mdf_form where DELETED='0'")
+    List<QcsMdfFormDo> getQcsMdfForms();
 
     @Delete("delete from qcs_part_no ")
     void deleteAll();
@@ -74,7 +74,7 @@ public interface QcsMdfFormDao extends BaseMapper<QcsMdfFormDo> {
             "\tIFNULL(s.DTWHOAPPROVE,'') as DTWHOAPPROVE,IFNULL(s.ERRORROUTINE,'') as ERRORROUTINE,IFNULL(s.ERRORAGAIN,'') as ERRORAGAIN,IFNULL(s.ERRORHARD,'') as ERRORHARD,\n" +
             "\tIFNULL(s.ERRORTABLE,'') as ERRORTABLE,d.ROWID,IFNULL(r.CONTENT,'') as CONTENT,SUBSTRING_INDEX(r.ROWSN, '-', -1)as ROWSN, IFNULL(r.REMARK,'') as REMARK,\n" +
             "\tIFNULL(r.TASKDESIGNDTDRAWINGNO,'') as TASKDESIGNDTDRAWINGNO,IFNULL(r.MINORDESIGNDTDRAWINGNO,'') as MINORDESIGNDTDRAWINGNO, IFNULL(r.MINORDESIGNDTPARTNAME,'') as MINORDESIGNDTPARTNAME,\n" +
-            "\td.ID as DETAILID,d.STATUS,IFNULL(d.DEPTID,'') as DEPTID\n" +
+            "\td.ID as DETAILID,d.STATUS,IFNULL(d.DEPTID,'') as DEPTID,IFNULL(f.BASEID,'') as BASEID,IFNULL(f.SHAREDEPTIDS,'') as SHAREDEPTIDS\n" +
             "FROM qcs_mdf_detail d LEFT JOIN qcs_mdf_row r ON d.ROWID=r.ID\n" +
             "LEFT JOIN qcs_mdf_section s ON r.SECTIONID=s.ID\n" +
             "LEFT JOIN qcs_mdf_form f ON s.FORMID=f.ID\n" +

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

@@ -14,13 +14,11 @@ import com.rongwei.bsentity.vo.QcsMdfRowVo;
 import com.rongwei.bsentity.vo.QcsMdfSectionVo;
 import com.rongwei.rwcommon.base.R;
 import com.rongwei.rwcommon.utils.StringUtils;
-import com.rongwei.rwcommon.vo.CriteriaQuery;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestBody;
 
 import java.text.SimpleDateFormat;
 import java.time.LocalTime;
@@ -87,14 +85,14 @@ public class CommonServiceImpl implements CommonService {
             List<QcsMdfFormVo> mdfFormVoList = JSON.parseArray(JSON.toJSONString(mdfmap.get("data")), QcsMdfFormVo.class);
             if (mdfFormVoList.size() > 0) {
                 //已有修改单数据
-                List<QcsMdfFormDo> qcsMdfFormDos = qcsMdfFormDao.getQcsMdfForms(dtwhoapproveTime);
+                List<QcsMdfFormDo> qcsMdfFormDos = qcsMdfFormDao.getQcsMdfForms();
 
                 List<QcsMdfFormDo> qcsMdfFormDoList = new ArrayList<>();
                 List<QcsMdfSectionDo> qcsMdfSectionDoList = new ArrayList<>();
                 List<QcsMdfRowDo> qcsMdfRowDoList = new ArrayList<>();
                 List<QcsMdfFileDo> qcsMdfFileDoList = new ArrayList<>();
                 for (QcsMdfFormVo qcsMdfFormVo : mdfFormVoList) {
-                    List<QcsMdfFormDo> hasMdfForms = qcsMdfFormDos.stream().filter(mdf -> mdf.getId().equals(qcsMdfFormVo.getId())).collect(Collectors.toList());
+                    List<QcsMdfFormDo> hasMdfForms = qcsMdfFormDos.stream().filter(mdf -> mdf.getProjectdlprojid().equals(qcsMdfFormVo.getProjectdlprojid()) && mdf.getSourcenumbercode().equals(qcsMdfFormVo.getSourcenumbercode())).collect(Collectors.toList());
                     if (hasMdfForms.size() > 0) {
                         continue;
                     }

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

@@ -635,8 +635,10 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                         //主表数据
                         ImportMdfVo mdfVo = qcsMdfFormDos.stream().filter(mv -> fm.getProjectdlprojid().equals(mv.getProjectdlprojid()) && fm.getSourcenumbercode().equals(mv.getSourcenumbercode())).findAny().orElse(null);
                         String formid = "";
+                        Boolean isnew = false;
                         if (mdfVo == null) {
                             formid = SecurityUtil.getUUID();
+                            isnew = true;
                         } else {
                             StringBuilder sb = new StringBuilder();
                             if (!flist.get(0).getTypename().equals(mdfVo.getTypename())) {
@@ -662,6 +664,8 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                                 allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + "已存在,但导入的主表数据" + sb.toString() + "请检查<br>");
                             } else {
                                 formid = mdfVo.getId();
+                                flist.get(0).setBaseid(mdfVo.getBaseid());
+                                flist.get(0).setSharedeptids(mdfVo.getSharedeptids());
                             }
                         }
 
@@ -742,30 +746,42 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                                         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();
-                                                rowVos = 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 (rowVos.size() == 0) {
+                                                if (secRowVos.size() == 0) {
                                                     maxRowSn.getAndSet(maxRowSn.get() + 1);
                                                 } else {
-                                                    maxRowSn.getAndSet(Integer.parseInt(rowVos.get(rowVos.size() - 1).getRowsn()) + 1);
+                                                    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) {
                                                     rowid = SecurityUtil.getUUID();
-                                                    maxRowSn.getAndSet(Integer.parseInt(rlist.get(r).getRowsn()));
+                                                    if (secRowVos.size() == 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);
                                                     if (rowVo == null) {
                                                         rowid = SecurityUtil.getUUID();
-                                                        maxRowSn.getAndSet(Integer.parseInt(rowVos.get(rowVos.size() - 1).getRowsn()) + 1);
+                                                        if (secRowVos.size() == 0) {
+                                                            maxRowSn.getAndSet(maxRowSn.get() + 1);
+                                                        } else {
+                                                            maxRowSn.getAndSet(Integer.parseInt(secRowVos.get(secRowVos.size() - 1).getRowsn()) + 1);
+                                                        }
                                                     } else {
                                                         if (!rlist.get(r).getRemark().equals(rowVo.getRemark())) {
                                                             rowid = SecurityUtil.getUUID();
-                                                            maxRowSn.getAndSet(Integer.parseInt(rowVos.get(rowVos.size() - 1).getRowsn()) + 1);
+                                                            if (secRowVos.size() == 0) {
+                                                                maxRowSn.getAndSet(maxRowSn.get() + 1);
+                                                            } else {
+                                                                maxRowSn.getAndSet(Integer.parseInt(secRowVos.get(secRowVos.size() - 1).getRowsn()) + 1);
+                                                            }
                                                         } else {
                                                             if (rowVo.getStatus().equals("已提交")) {
                                                                 allStrBuilder.append("项目工号" + fm.getProjectdlprojid() + ",修改单编号" + fm.getSourcenumbercode() + ",内容序号" + mvo.getSectionsn() + ",排号" + rlist.get(r).getRowsn() + "数据已提交,请检查<br>");
@@ -852,8 +868,20 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
                                 QcsMdfFormDo qcsMdfFormDo = BeanUtil.toBean(flist.get(0), QcsMdfFormDo.class);
                                 qcsMdfFormDo.setId(formid);
                                 qcsMdfFormDo.setRoption(ropJson);
-                                qcsMdfFormDo.setBaseid(unitId);
-                                qcsMdfFormDo.setBasename(finalDeptName1);
+                                if (isnew) {
+                                    qcsMdfFormDo.setBaseid(unitId);
+                                    qcsMdfFormDo.setBasename(finalDeptName1);
+                                } else {
+                                    if (StringUtils.isNotBlank(qcsMdfFormDo.getBaseid()) && !qcsMdfFormDo.getBaseid().equals(unitId)) {
+                                        if (StringUtils.isNotBlank(qcsMdfFormDo.getSharedeptids())) {
+                                            if (!Arrays.asList(qcsMdfFormDo.getSharedeptids().split(",")).contains(unitId)) {
+                                                qcsMdfFormDo.setSharedeptids(qcsMdfFormDo.getSharedeptids() + "," + unitId);
+                                            }
+                                        } else {
+                                            qcsMdfFormDo.setSharedeptids(unitId);
+                                        }
+                                    }
+                                }
                                 qcsMdfFormDo.setDatasource("质量成本系统");
                                 qcsMdfFormDoList.add(qcsMdfFormDo);
                                 formids.add(formid);
@@ -901,7 +929,7 @@ public class QcsMdfFormServiceImpl extends ServiceImpl<QcsMdfFormDao, QcsMdfForm
         String deptId = params.get("deptId");
         QcsMdfFormDo qcsMdfFormDo = qcsMdfFormService.getById(formId);
         String whr = "";
-        if (StringUtils.isNotBlank(deptId) && StringUtils.isNotBlank(qcsMdfFormDo.getCopydeptids()) && !Arrays.asList(qcsMdfFormDo.getCopydeptids().split(",")).contains(deptId)) {
+        if (StringUtils.isNotBlank(deptId) && (StringUtils.isBlank(qcsMdfFormDo.getCopydeptids()) || (StringUtils.isNotBlank(qcsMdfFormDo.getCopydeptids()) && !Arrays.asList(qcsMdfFormDo.getCopydeptids().split(",")).contains(deptId)))) {
             whr = " and r.ID in(select distinct ROWID from qcs_mdf_detail where DELETED='0' and DEPTID='" + deptId + "')";
         }
         List<QcsMdfRowDo> qcsMdfRowDos = qcsMdfFormDao.getReportRows(formId, whr);

+ 13 - 0
qcs-entity/src/main/java/com/rongwei/bsentity/domain/QcsMdfFormDo.java

@@ -261,37 +261,50 @@ public class QcsMdfFormDo extends BaseDo {
     /**
      * 一级单位ID
      */
+    @TableField("BASEID")
     private String baseid;
 
     /**
      * 一级单位
      */
+    @TableField("BASENAME")
     private String basename;
 
     /**
      * 提交的一级单位
      */
+    @TableField("SUBMITDEPTID")
     private String submitdeptid;
 
     /**
      * 集中派发
      */
+    @TableField("CENTERSELL")
     private String centersell;
 
     /**
      * 派发施工单位
      */
+    @TableField("SELLDEPTIDS")
     private String selldeptids;
 
     /**
      * 抄送单位
      */
+    @TableField("COPYDEPTIDS")
     private String copydeptids;
 
     /**
      * 修改单跟进人
      */
+    @TableField("FOLLOWUSER")
     private String followuser;
 
+    /**
+     * 共用修改单部门ids
+     */
+    @TableField("SHAREDEPTIDS")
+    private String sharedeptids;
+
 
 }

+ 2 - 0
qcs-entity/src/main/java/com/rongwei/bsentity/vo/ImportMdfVo.java

@@ -17,6 +17,8 @@ public class ImportMdfVo {
     private String manageadminid;//项目总工id
     private String manageadminnickname;//项目总工
     private String producename;//项目生产阶段
+    private String baseid;//一级单位ID
+    private String sharedeptids;//共用修改单部门ids
 
     private String sectionid;
     private String sectionsn;//内容序号