Parcourir la source

Merge remote-tracking branch 'origin/master'

zhuang il y a 7 mois
Parent
commit
00a61ff623
25 fichiers modifiés avec 810 ajouts et 22 suppressions
  1. 36 0
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxInsideInspectionDao.java
  2. 41 0
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxItpProjectNodesDao.java
  3. 20 0
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxOutsideInspectionItpDao.java
  4. 34 1
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPMQMDao.java
  5. 3 0
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementDao.java
  6. 28 0
      business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementSourceDao.java
  7. 28 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxInsideInspectionService.java
  8. 9 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxItpProjectNodesService.java
  9. 15 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxOutsideInspectionItpService.java
  10. 4 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPmqManagementSourceService.java
  11. 8 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxProjectManageService.java
  12. 342 3
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxInsideInspectionServiceImpl.java
  13. 15 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxItpProjectNodesServiceImpl.java
  14. 22 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxOutsideInspectionItpServiceImpl.java
  15. 15 8
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPMQMServiceImpl.java
  16. 9 6
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementLogServiceImpl.java
  17. 5 1
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementRecoredServiceImpl.java
  18. 88 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementSourceServiceImpl.java
  19. 13 0
      business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxProjectManageServiceImpl.java
  20. 1 1
      business-common/src/main/resources/mybatis/business/ZhcxPmqManagementDistributionDetailDao.xml
  21. 26 0
      business-entity/src/main/java/com/rongwei/bsentity/dto/outside/DoPointOutSideBO.java
  22. 13 0
      business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxInsideInspectionController.java
  23. 16 1
      business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPMQMController.java
  24. 5 1
      business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPmqManagementController.java
  25. 14 0
      business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPmqManagementSourceController.java

+ 36 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxInsideInspectionDao.java

@@ -81,4 +81,40 @@ public interface ZhcxInsideInspectionDao extends BaseMapper<ZhcxInsideInspection
             " AND NOT EXISTS (SELECT * FROM ZHCX_ITP_PROJECT_NODE_STATE_INSIDE zipnsi WHERE zipnsi.INSPECTIONCODE = zii.INSPECTIONCODE) " +
             " AND zii.INSPECTIONSTATUS IN ('30', '40') and zii.LAUNCHTYPE = 'itp' ORDER by zii.INSPECTIONCODE ASC limit 500")
     List<JSONObject> getInitNodeStateInspection();
+
+
+    /**
+     * 获取已经删除报验点的报验单
+     *
+     * @param projectId
+     * @return
+     */
+    @Select("SELECT " +
+            " zii.*, " +
+            " isd.INSPECTIONCONCLUSION " +
+            "FROM " +
+            " ZHCX_INSIDE_INSPECTION zii " +
+            "JOIN ZHCX_INSIDE_INSPECTION_DISPATCH isd ON isd.INSIDEID = zii.ID  " +
+            "JOIN ZHCX_ITP_PROJECT_NODES zipn ON " +
+            " zii.INSPECTIONCONTENTID = zipn.ID " +
+            " AND zipn.DELETED = '1' " +
+            "WHERE " +
+            " zii.DELETED = '0' AND zii.PROJECTID = #{projectId}")
+    List<JSONObject> getDeletedNodeInspection(@Param("projectId") String projectId);
+
+    /**
+     * 获取已删除报验点项目
+     *
+     * @return
+     */
+    @Select("SELECT " +
+            " DISTINCT zii.PROJECTID,zii.PROJECTCODE , zii.PROJECTNAME  " +
+            "FROM " +
+            " ZHCX_INSIDE_INSPECTION zii  " +
+            "JOIN ZHCX_ITP_PROJECT_NODES zipn ON " +
+            " zii.INSPECTIONCONTENTID = zipn.ID " +
+            " AND zipn.DELETED = '1' " +
+            "WHERE " +
+            " zii.DELETED = '0'")
+    List<JSONObject> getDeletedNodeProject();
 }

+ 41 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxItpProjectNodesDao.java

@@ -1,5 +1,6 @@
 package com.rongwei.bscommon.sys.dao;
 
+import com.alibaba.fastjson.JSONObject;
 import com.rongwei.bsentity.domain.ZhcxItpProjectNodesDo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
@@ -63,4 +64,44 @@ public interface ZhcxItpProjectNodesDao extends BaseMapper<ZhcxItpProjectNodesDo
             "   AND l3.ISNEEDOUT = 'true')) " +
             " )")
     List<ZhcxItpProjectNodesDo> getNodesByProjectId(String projectId);
+
+    /**
+     * 查询项目报验点及所属构件,项目id不传会查询所有报验点
+     *
+     * @param projectId
+     * @return
+     */
+    @Select("<script>SELECT " +
+            " if(l2.PNODENAME IS NULL OR l2.PNODENAME = '', l2.NODENAME , CONCAT(l2.PNODENAME, '/', l2.NODENAME)) as PNODENAME, " +
+            " l3.NODENAME, " +
+            " l3.PID, " +
+            " l3.ID " +
+            "FROM " +
+            " ZHCX_ITP_PROJECT_NODES l3 " +
+            "JOIN ZHCX_ITP_PROJECT_NODES l2 ON " +
+            " l2.ID = l3.PID " +
+            "<where>" +
+            "<if test='projectId != null'>" +
+            " l3.PROJECTID = #{projectId}" +
+            "</if>" +
+            " AND l2.DELETED = '0' AND l3.DELETED = '0' " +
+            "</where>" +
+            "</script>")
+    List<JSONObject> getPrjNode(@Param("projectId") String projectId);
+
+    /**
+     * 获取已删除报验点项目
+     *
+     * @return
+     */
+    @Select("SELECT " +
+            " DISTINCT zii.PROJECTID,zii.PROJECTCODE , zii.PROJECTNAME  " +
+            "FROM " +
+            " ZHCX_OUTSIDE_INSPECTION_ITP zii  " +
+            "JOIN ZHCX_ITP_PROJECT_NODES zipn ON " +
+            " zii.INSPECTIONCONTENTID = zipn.ID " +
+            " AND zipn.DELETED = '1' " +
+            "WHERE " +
+            " zii.DELETED = '0'")
+    List<JSONObject> getDeletedNodeProject();
 }

+ 20 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxOutsideInspectionItpDao.java

@@ -5,6 +5,7 @@ import com.rongwei.bsentity.domain.ZhcxOutsideInspectionItpDo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.rongwei.bsentity.dto.OutsideInspactionSyncDto;
 import com.rongwei.bsentity.dto.OutsideInspactionSyncReqquest;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
@@ -69,4 +70,23 @@ public interface ZhcxOutsideInspectionItpDao extends BaseMapper<ZhcxOutsideInspe
             "AND NOT EXISTS (SELECT * FROM ZHCX_ITP_PROJECT_NODE_STATE_OUTSIDE zipnsi WHERE zipnsi.INSPECTIONCODE = itp.INSPECTIONCODE) " +
             "AND INSPECTIONSTATUS IN ('30', '40') and itp.LAUNCHTYPE = 'itp' ORDER by itp.INSPECTIONCODE ASC limit 500")
     List<JSONObject> getInitNodeStateInspection();
+
+    /**
+     * 获取已经删除报验点的报验单
+     *
+     * @param projectId
+     * @return
+     */
+    @Select("SELECT " +
+            " zii.*, " +
+            " isd.INSPECTIONCONCLUSION " +
+            "FROM " +
+            " ZHCX_OUTSIDE_INSPECTION_ITP zii " +
+            "JOIN ZHCX_OUTSIDE_INSPECTION_ITP_SUPERVISION_DISPATCH isd ON isd.ITPID = zii.ID  " +
+            "JOIN ZHCX_ITP_PROJECT_NODES zipn ON " +
+            " zii.INSPECTIONCONTENTID = zipn.ID " +
+            " AND zipn.DELETED = '1' " +
+            "WHERE " +
+            " zii.DELETED = '0' AND zii.PROJECTID = #{projectId}")
+    List<JSONObject> getDeletedNodeInspection(@Param("projectId") String projectId);
 }

+ 34 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPMQMDao.java

@@ -3,6 +3,7 @@ import com.rongwei.bsentity.domain.ZhcxPmqManagementMapDo;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementRecoredDo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Select;
+import org.apache.ibatis.annotations.Update;
 
 import java.util.List;
 import java.util.Map;
@@ -34,4 +35,36 @@ public interface ZhcxPMQMDao {
             " WHERE\n" +
             "    recored.DELETED = '0' AND recored.DISPATCHSTATUS = '0' AND t2.ISFLOWERDEPT= 'true'")
     List<ZhcxPmqManagementRecoredDo> getAllRecoredDoListInFlowerDept();
-}
+
+    @Update("UPDATE\n" +
+            "\tINCONTROL.ZHCX_PMQ_MANAGEMENT_RECORED recored\n" +
+            "SET\n" +
+            "\tCLOSESTATUS = 'NA',\n" +
+            "\tDISPATCHSTATUS = '1',\n" +
+            "\tREMARK = '职能部门设置NA'\n" +
+            "WHERE\n" +
+            "\tID IN (\n" +
+            "\tSELECT\n" +
+            "\t\trecored.ID\n" +
+            "\tFROM\n" +
+            "\t\tINCONTROL.ZHCX_PMQ_MANAGEMENT_RECORED recored\n" +
+            "\tLEFT JOIN (\n" +
+            "\t\tSELECT\n" +
+            "\t\t\tDISTINCT NXDEPTID,\n" +
+            "\t\t\tNXDEPTNAME,\n" +
+            "\t\t\tPARENTNXDEPTNAME,\n" +
+            "\t\t\tISFLOWERDEPT,\n" +
+            "\t\t\tQCUSERID,\n" +
+            "\t\t\tQCUSERNAME\n" +
+            "\t\tFROM\n" +
+            "\t\t\tINCONTROL.ZHCX_PMQ_MANAGEMENT_MAP m\n" +
+            "\t\tWHERE\n" +
+            "\t\t\tm.DELETED = '0'\n" +
+            "                ) t2 ON\n" +
+            "\t\tt2.NXDEPTID = recored.DEPTID\n" +
+            "\tWHERE\n" +
+            "\t\trecored.DELETED = '0'\n" +
+            "\t\tAND recored.DISPATCHSTATUS = '0'\n" +
+            "\t\tAND t2.ISFLOWERDEPT = 'true')")
+    void updateAllRecoredDoListInFlowerDept();
+}

+ 3 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementDao.java

@@ -18,4 +18,7 @@ import java.util.Map;
 public interface ZhcxPmqManagementDao extends BaseMapper<ZhcxPmqManagementDo> {
     @Select("SELECT * FROM ZHCX_PMQ_MANAGEMENT WHERE DELETED = '0' AND ORDERNO = #{orderno}")
     List<ZhcxPmqManagementDo> getByCode(Map<String, String> map);
+
+    @Select("SELECT * FROM ZHCX_PMQ_MANAGEMENT WHERE DELETED = '0' AND CONCAT(ORDERNO, '|-_-|', PROJECTNO, '|-_-|', ORDERTYPE) = #{orderno}")
+    List<ZhcxPmqManagementDo> getByCodeUnit(Map<String, String> map);
 }

+ 28 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementSourceDao.java

@@ -1,7 +1,9 @@
 package com.rongwei.bscommon.sys.dao;
 
+import com.rongwei.bsentity.domain.ZhcxPmqManagementRecoredDo;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementSourceDo;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 
@@ -26,4 +28,30 @@ public interface ZhcxPmqManagementSourceDao extends BaseMapper<ZhcxPmqManagement
      */
     @Update("UPDATE ZHCX_PMQ_MANAGEMENT t1 SET t1.PROJECTID = (SELECT t2.ID FROM ZHCX_PROJECT_MANAGE t2 WHERE t2.PROJECT_CODE = t1.PROJECTNO AND t2.DELETED = '0') WHERE t1.PROJECTID IS NULL")
     void updateProjectId();
+
+    @Select("SELECT\n" +
+            "    ORDERNO\n" +
+            "FROM\n" +
+            "    (\n" +
+            "        SELECT\n" +
+            "            WM_CONCAT(DISTINCT ORDERTYPE) AS ORDERTYPE,\n" +
+            "            ORDERNO,\n" +
+            "            WM_CONCAT(DISTINCT PROJECTNO) AS PROJECTNO\n" +
+            "        FROM\n" +
+            "            INCONTROL.ZHCX_PMQ_MANAGEMENT_SOURCE x\n" +
+            "        WHERE\n" +
+            "            PROJECTNO NOT IN ('1002000777','1002000995','1002001161','1002001003','1002001194','1004001405','1002001159','1002000836','1002001135','1002001143','1002001152','1002001157','1002001169') \n" +
+            "        GROUP BY\n" +
+            "            ORDERNO\n" +
+            "    ) subquery\n" +
+            "WHERE\n" +
+            "    INSTR(ORDERTYPE, ',') > 0 \n" +
+            "    and INSTR(PROJECTNO, ',') = 0")
+    List<String> getAllOrderNoList();
+
+    @Select("SELECT x.* FROM INCONTROL.ZHCX_PMQ_MANAGEMENT_SOURCE x WHERE ORDERNO = #{orderNo} AND DELETED ='0'")
+    List<ZhcxPmqManagementSourceDo> getSourceDataByOrderNo(@Param("orderNo") String orderNo);
+
+    @Select("SELECT x.* FROM INCONTROL.ZHCX_PMQ_MANAGEMENT_RECORED x WHERE SEQNO = #{seqno} AND DEPTID = #{deptid} AND DELETED ='0'")
+    List<ZhcxPmqManagementRecoredDo> getRecoredDoListBySeqnoAndDeptid(@Param("seqno") Integer seqno,@Param("deptid") String deptid);
 }

+ 28 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxInsideInspectionService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.rongwei.bsentity.dto.InsideInspectionOperRequest;
 import com.rongwei.bsentity.dto.inside.*;
 import com.rongwei.bsentity.vo.ZhcxInsideInspectionVo;
+import org.apache.ibatis.annotations.Param;
 
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
@@ -130,4 +131,31 @@ public interface ZhcxInsideInspectionService extends IService<ZhcxInsideInspecti
      * 获取初始化报验点状态报验单
      */
     List<JSONObject> getInitNodeStateInspection();
+
+    /**
+     * 获取已经删除报验点的报验单
+     *
+     * @param projectId
+     * @return
+     */
+    List<JSONObject> getDeletedNodeInspection(String projectId);
+
+    /**
+     * 获取已删除报验点项目
+     *
+     * @return
+     */
+    List<JSONObject> getDeletedNodeProject();
+
+    /**
+     * 处理已删除报验点的报验单
+     *
+     */
+    void doDeletedPoint(String projectId);
+
+    /**
+     * 处理已删除报验点的报验单
+     *
+     */
+    void doDeletedPointByPrjCode(String prjCode);
 }

+ 9 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxItpProjectNodesService.java

@@ -1,5 +1,6 @@
 package com.rongwei.bscommon.sys.service;
 
+import com.alibaba.fastjson.JSONObject;
 import com.rongwei.bsentity.domain.ZhcxItpProjectNodesDo;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.rongwei.bsentity.dto.OutsideInspectionProjectPointDto;
@@ -43,4 +44,12 @@ public interface ZhcxItpProjectNodesService extends IService<ZhcxItpProjectNodes
      */
     List<String> getStructureByProjectId(String projectId);
 
+    /**
+     * 查询项目报验点及所属构件,项目id不传会查询所有报验点
+     *
+     * @param projectId
+     * @return
+     */
+    List<JSONObject> getPrjNode(String projectId);
+
 }

+ 15 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxOutsideInspectionItpService.java

@@ -74,5 +74,20 @@ public interface ZhcxOutsideInspectionItpService extends IService<ZhcxOutsideIns
     List<JSONObject> getInitNodeStateInspection();
 
     void batchDownloadFile(List<ZhcxOutsideExportVo> list, HttpServletResponse response);
+
+    /**
+     * 查询项目报验点及所属构件,项目id不传会查询所有报验点
+     *
+     * @param projectId
+     * @return
+     */
+    List<JSONObject> getDeletedNodeInspection(String projectId);
+
+    /**
+     * 获取已删除报验点项目
+     *
+     * @return
+     */
+    List<JSONObject> getDeletedNodeProject();
 }
 

+ 4 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPmqManagementSourceService.java

@@ -13,4 +13,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface ZhcxPmqManagementSourceService extends IService<ZhcxPmqManagementSourceDo> {
 
+    /**
+     * 修复三单主表数据
+     */
+    void repairZhcxPmqManagementData();
 }

+ 8 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxProjectManageService.java

@@ -103,4 +103,12 @@ public interface ZhcxProjectManageService extends IService<ZhcxProjectManageDo>
     void cronGenerateRectifyData();
 
     List<ZhcxProjectRectifyMachineVo> getListApiData(Map<String, Object> map);
+
+    /**
+     * 通过项目编码获取项目
+     *
+     * @param prjCode
+     * @return
+     */
+    ZhcxProjectManageDo getByCode(String prjCode);
 }

+ 342 - 3
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxInsideInspectionServiceImpl.java

@@ -8,7 +8,6 @@ import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.ZipUtil;
-import cn.hutool.json.JSONUtil;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -23,16 +22,15 @@ import com.rongwei.bscommon.sys.dao.ZhcxInsideInspectionDao;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.rongwei.bsentity.dto.*;
 import com.rongwei.bsentity.dto.inside.*;
+import com.rongwei.bsentity.dto.outside.DoPointOutSideBO;
 import com.rongwei.bsentity.dto.project.node.ProjectNodeStateBo;
 import com.rongwei.bsentity.dto.project.node.UnItpNodeStateBo;
 import com.rongwei.bsentity.vo.ZhcxInsideInspectionVo;
 import com.rongwei.commonservice.serial.service.SysSerialNumberService;
-import com.rongwei.rwadmincommon.system.domain.PagePartDo;
 import com.rongwei.rwadmincommon.system.domain.SysRoleDo;
 import com.rongwei.rwadmincommon.system.domain.SysUserDo;
 import com.rongwei.rwadmincommon.system.service.PagePartService;
 import com.rongwei.rwadmincommon.system.service.SysGeneralCRUDService;
-import com.rongwei.rwadmincommon.system.service.SysModulePagePartRelService;
 import com.rongwei.rwadmincommon.system.service.SysUserService;
 import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.exception.CustomException;
@@ -57,6 +55,7 @@ import java.io.*;
 import java.net.URLEncoder;
 import java.text.SimpleDateFormat;
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -99,6 +98,12 @@ public class ZhcxInsideInspectionServiceImpl extends ServiceImpl<ZhcxInsideInspe
     @Autowired
     private ZhcxItpProjectNodeStateService itpProjectNodeStateService;
 
+    @Autowired
+    private ZhcxItpProjectNodeStateOutsideService itpProjectNodeStateOutsideService;
+
+    @Autowired
+    private ZhcxItpProjectNodeStateInsideService itpProjectNodeStateInsideService;
+
     @Autowired
     private ZhcxInsideInspectionCoreIndicatorsService insideInspectionCoreIndicatorsService;
 
@@ -111,6 +116,15 @@ public class ZhcxInsideInspectionServiceImpl extends ServiceImpl<ZhcxInsideInspe
     @Value("${temp.filepath:#{null}}")
     private String filepath;
 
+    @Autowired
+    private ZhcxItpProjectNodesService itpProjectNodesService;
+
+    @Autowired
+    private ZhcxOutsideInspectionItpService outsideInspectionItpService;
+
+    @Autowired
+    private ZhcxProjectManageService projectManageService;
+
     /**
      * 保存报验单
      *
@@ -841,6 +855,331 @@ public class ZhcxInsideInspectionServiceImpl extends ServiceImpl<ZhcxInsideInspe
         return dao.getInitNodeStateInspection();
     }
 
+    /**
+     * 获取已经删除报验点的报验单
+     *
+     * @param projectId
+     * @return
+     */
+    @Override
+    public List<JSONObject> getDeletedNodeInspection(String projectId) {
+        return dao.getDeletedNodeInspection(projectId);
+    }
+
+    /**
+     * 获取已删除报验点项目
+     *
+     * @return
+     */
+    @Override
+    public List<JSONObject> getDeletedNodeProject() {
+        return dao.getDeletedNodeProject();
+    }
+
+    /**
+     * 处理已删除报验点的报验单
+     *
+     */
+    @Transactional
+    @Override
+    public void doDeletedPoint(String projectId) {
+
+        //获取项目中报验点及所属构件
+        final List<JSONObject> prjNodeList = itpProjectNodesService.getPrjNode(projectId);
+        Map<String, JSONObject> prjNodeMap = new HashMap<>(prjNodeList.size()); //key:构件_报验点,value:报验点信息
+        prjNodeList.stream().forEach(item -> prjNodeMap.put(item.getString("PNODENAME").concat("_").concat(item.getString("NODENAME")), item));
+
+        //外部报验单
+        final List<JSONObject> outsideList = outsideInspectionItpService.getDeletedNodeInspection(projectId); //报验点已经删除的外部报验单
+        Map<String, List<JSONObject>> outsideMap = new HashMap<>(outsideList.size());//key:构件_报验点, value:外部报验单列表
+        for(JSONObject outside : outsideList) {
+            String key = getPointKey4Inspection(outside);
+            if(ObjectUtil.isEmpty(key)) {//构件或者报验点为空不做处理
+                continue;
+            }
+            putInspectionMap(key, outside, outsideMap); //转map
+        }
+
+        List<ZhcxInsideInspectionDo> updateInsideList = new ArrayList<>(); //需要更新的报验单
+        List<ZhcxOutsideInspectionItpDo> updateOutsideList = new ArrayList<>(); //需要更新的报验单
+        List<String> outsideCodeDoneList = new ArrayList<>(); //已处理外部报验单号
+
+        //内部报验单
+        final List<JSONObject> insideList = getDeletedNodeInspection(projectId); //已删除报验点的报验单
+        Map<String, List<JSONObject>> insideMap = new HashMap<>(insideList.size());//key:构件_报验点, value:外部报验单列表
+        for(JSONObject inside : insideList) {
+            String key = getPointKey4Inspection(inside);
+            if(ObjectUtil.isEmpty(key)) {//构件或者报验点为空不做处理
+                continue;
+            }
+
+            //为了方便处理未操作的外部报验单
+            putInspectionMap(key, inside, insideMap); //转map
+
+            final JSONObject prjNode = prjNodeMap.get(key);
+            if(ObjectUtil.isNull(prjNode)) {//报验点已删除,并且没有新建的报验点,这样的报验单不做处理
+                continue;
+            }
+
+            //同一个报验点发起的外部报验单
+            final DoPointOutSideBO pointOutSideBO = doPointOutside(outsideMap.get(key), prjNode);
+            updateOutsideList.addAll(pointOutSideBO.getUpdateList());
+            outsideCodeDoneList.addAll(pointOutSideBO.getUpdateCodeList());
+
+            ZhcxInsideInspectionDo entity = new ZhcxInsideInspectionDo();
+            entity.setStructureid(prjNode.getString("PID")); //未删除的构件id
+            entity.setInspectioncontentid(prjNode.getString("ID")); //未删除的报验点id
+            entity.setId(inside.getString("ID"));
+            updateInsideList.add(entity);
+
+            String machineNo = inside.getString("MACHINENO");
+            if (ObjectUtil.isEmpty(machineNo)) {
+                machineNo = inside.getString("STRUCTUREMACHINENO");
+            }
+            String[] machinenos = machineNo.split(",");
+
+            //已删除报验点状态
+            LambdaQueryWrapper<ZhcxItpProjectNodeStateDo> nodeStateWrapper = Wrappers.lambdaQuery();
+            nodeStateWrapper.eq(ZhcxItpProjectNodeStateDo::getNodeid, inside.getString("INSPECTIONCONTENTID"))
+                    .in(ZhcxItpProjectNodeStateDo::getMathinecode, machinenos)
+                    .eq(ZhcxItpProjectNodeStateDo::getDeleted, "0");
+            final List<ZhcxItpProjectNodeStateDo> nodeStateList = itpProjectNodeStateService.list(nodeStateWrapper);
+
+            //内部报验单
+            if(ObjectUtil.isEmpty(nodeStateList)) { //已删除报验单不存在报验点状态
+                continue;
+            }
+
+            //新的报验点
+            nodeStateWrapper = Wrappers.lambdaQuery();
+            nodeStateWrapper.eq(ZhcxItpProjectNodeStateDo::getNodeid, prjNode.getString("ID"))
+                    .in(ZhcxItpProjectNodeStateDo::getMathinecode, machinenos)
+                    .eq(ZhcxItpProjectNodeStateDo::getDeleted, "0");
+            List<ZhcxItpProjectNodeStateDo> nodeStateNewList = itpProjectNodeStateService.list(nodeStateWrapper);
+            if(ObjectUtil.isEmpty(nodeStateNewList)) {//新的没值
+                //将报验点状态中报验点id换成新的报验点id
+                List<String> nodeStateIdList = nodeStateList.stream().map(item -> item.getId()).collect(Collectors.toList());
+                ZhcxItpProjectNodeStateDo nodeStateDo = new ZhcxItpProjectNodeStateDo();
+                nodeStateDo.setNodeid(prjNode.getString("ID"));
+                LambdaUpdateWrapper<ZhcxItpProjectNodeStateDo> updateWrapper = Wrappers.lambdaUpdate();
+                updateWrapper.in(ZhcxItpProjectNodeStateDo::getId, nodeStateIdList);
+                itpProjectNodeStateService.update(nodeStateDo, updateWrapper);
+            } else {
+                //新的报验点已经创建报验点状态,只需要修改内外部报验点的内外部报验单的报验点状态id,并删除旧的报验点状态
+                Map<String, ZhcxItpProjectNodeStateDo> oldNodeStateMap = new HashMap<>();
+                for(ZhcxItpProjectNodeStateDo old : nodeStateList) {
+                    oldNodeStateMap.put(old.getMathinecode(), old);
+                }
+
+                List<String> oldNodeStateIdList = new ArrayList<>();
+                for(ZhcxItpProjectNodeStateDo newState : nodeStateNewList) {
+                    ZhcxItpProjectNodeStateDo oldNodeStateDo = oldNodeStateMap.get(newState.getMathinecode());
+                    if(ObjectUtil.isEmpty(oldNodeStateDo)) {
+                        continue;
+                    }
+
+                    oldNodeStateIdList.add(oldNodeStateDo.getId());
+
+                    //外部报验单
+                    LambdaUpdateWrapper<ZhcxItpProjectNodeStateOutsideDo> outsideLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+                    outsideLambdaUpdateWrapper.eq(ZhcxItpProjectNodeStateOutsideDo::getStateid, oldNodeStateDo.getId())
+                            .set(ZhcxItpProjectNodeStateOutsideDo::getStateid, newState.getId());
+                    itpProjectNodeStateOutsideService.update(outsideLambdaUpdateWrapper);
+
+                    //内部报验单
+                    LambdaUpdateWrapper<ZhcxItpProjectNodeStateInsideDo> isideLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+                    isideLambdaUpdateWrapper.eq(ZhcxItpProjectNodeStateInsideDo::getStateid, oldNodeStateDo.getId())
+                            .set(ZhcxItpProjectNodeStateInsideDo::getStateid, newState.getId());
+                    itpProjectNodeStateInsideService.update(isideLambdaUpdateWrapper);
+                }
+                //删除已经处理过的旧的报验单状态
+                if(ObjectUtil.isNotEmpty(oldNodeStateIdList)) {
+                    itpProjectNodeStateService.removeByIds(oldNodeStateIdList);
+                }
+            }
+        }
+
+        //更新外部报验单
+        if(ObjectUtil.isNotEmpty(updateOutsideList)) {
+            outsideInspectionItpService.updateBatchById(updateOutsideList);
+        }
+        //更新内部报验点
+        if(ObjectUtil.isNotEmpty(updateInsideList)) {
+            updateBatchById(updateInsideList);
+        }
+
+        //找出未处理的外部报验单,处理外部报验单---------------未处理的外部报验单
+        updateOutsideList = new ArrayList<>();
+        List<JSONObject> notDoOutsideList = outsideList.stream()
+                .filter(item -> !outsideCodeDoneList.contains(item.getString("INSPECTIONCODE")))
+                .collect(Collectors.toList());
+
+        if(ObjectUtil.isEmpty(notDoOutsideList)) {
+            return ;
+        }
+
+        for(JSONObject outside : notDoOutsideList) {
+            String key = getPointKey4Inspection(outside);
+            if(ObjectUtil.isEmpty(key)) {//构件或者报验点为空不做处理
+                continue;
+            }
+
+            final JSONObject prjNode = prjNodeMap.get(key);
+            if(ObjectUtil.isNull(prjNode)) {//报验点已删除,并且没有新建的报验点,这样的报验单不做处理
+                continue;
+            }
+
+            ZhcxOutsideInspectionItpDo entity = new ZhcxOutsideInspectionItpDo();
+            entity.setStructureid(prjNode.getString("PID")); //未删除的构件id
+            entity.setInspectioncontentid(prjNode.getString("ID")); //未删除的报验点id
+            entity.setId(outside.getString("ID"));
+            updateOutsideList.add(entity);
+
+            String machineNo = outside.getString("MACHINENO");
+            if (ObjectUtil.isEmpty(machineNo)) {
+                machineNo = outside.getString("STRUCTUREMACHINENO");
+            }
+            String[] machinenos = machineNo.split(",");
+
+            //已删除报验点状态
+            LambdaQueryWrapper<ZhcxItpProjectNodeStateDo> nodeStateWrapper = Wrappers.lambdaQuery();
+            nodeStateWrapper.eq(ZhcxItpProjectNodeStateDo::getNodeid, outside.getString("INSPECTIONCONTENTID"))
+                    .in(ZhcxItpProjectNodeStateDo::getMathinecode, machinenos)
+                    .eq(ZhcxItpProjectNodeStateDo::getDeleted, "0");
+            final List<ZhcxItpProjectNodeStateDo> nodeStateList = itpProjectNodeStateService.list(nodeStateWrapper);
+
+            if(ObjectUtil.isEmpty(nodeStateList)) { //已删除报验单不存在报验点状态
+                continue;
+            }
+
+            //新的报验点
+            nodeStateWrapper = Wrappers.lambdaQuery();
+            nodeStateWrapper.eq(ZhcxItpProjectNodeStateDo::getNodeid, prjNode.getString("ID"))
+                    .in(ZhcxItpProjectNodeStateDo::getMathinecode, machinenos)
+                    .eq(ZhcxItpProjectNodeStateDo::getDeleted, "0");
+            List<ZhcxItpProjectNodeStateDo> nodeStateNewList = itpProjectNodeStateService.list(nodeStateWrapper);
+            if(ObjectUtil.isEmpty(nodeStateNewList)) {//新的没值
+                //将报验点状态中报验点id换成新的报验点id
+                List<String> nodeStateIdList = nodeStateList.stream().map(item -> item.getId()).collect(Collectors.toList());
+                ZhcxItpProjectNodeStateDo nodeStateDo = new ZhcxItpProjectNodeStateDo();
+                nodeStateDo.setNodeid(prjNode.getString("ID"));
+                LambdaUpdateWrapper<ZhcxItpProjectNodeStateDo> updateWrapper = Wrappers.lambdaUpdate();
+                updateWrapper.in(ZhcxItpProjectNodeStateDo::getId, nodeStateIdList);
+                itpProjectNodeStateService.update(nodeStateDo, updateWrapper);
+            } else {
+                //新的报验点已经创建报验点状态,只需要修改内外部报验点的内外部报验单的报验点状态id,并删除旧的报验点状态
+                Map<String, ZhcxItpProjectNodeStateDo> oldNodeStateMap = new HashMap<>();
+                for(ZhcxItpProjectNodeStateDo old : nodeStateList) {
+                    oldNodeStateMap.put(old.getMathinecode(), old);
+                }
+
+                List<String> oldNodeStateIdList = new ArrayList<>();
+                for(ZhcxItpProjectNodeStateDo newState : nodeStateNewList) {
+                    ZhcxItpProjectNodeStateDo oldNodeStateDo = oldNodeStateMap.get(newState.getMathinecode());
+                    if(ObjectUtil.isEmpty(oldNodeStateDo)) {
+                        continue;
+                    }
+
+                    oldNodeStateIdList.add(oldNodeStateDo.getId());
+
+                    //外部报验单
+                    LambdaUpdateWrapper<ZhcxItpProjectNodeStateOutsideDo> outsideLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+                    outsideLambdaUpdateWrapper.eq(ZhcxItpProjectNodeStateOutsideDo::getStateid, oldNodeStateDo.getId())
+                            .set(ZhcxItpProjectNodeStateOutsideDo::getStateid, newState.getId());
+                    itpProjectNodeStateOutsideService.update(outsideLambdaUpdateWrapper);
+
+                    //内部报验单
+                    LambdaUpdateWrapper<ZhcxItpProjectNodeStateInsideDo> isideLambdaUpdateWrapper = Wrappers.lambdaUpdate();
+                    isideLambdaUpdateWrapper.eq(ZhcxItpProjectNodeStateInsideDo::getStateid, oldNodeStateDo.getId())
+                            .set(ZhcxItpProjectNodeStateInsideDo::getStateid, newState.getId());
+                    itpProjectNodeStateInsideService.update(isideLambdaUpdateWrapper);
+                }
+                //删除已经处理过的旧的报验单状态
+                if(ObjectUtil.isNotEmpty(oldNodeStateIdList)) {
+                    itpProjectNodeStateService.removeByIds(oldNodeStateIdList);
+                }
+            }
+        }
+        //更新外部报验单
+        if(ObjectUtil.isNotEmpty(updateOutsideList)) {
+            outsideInspectionItpService.updateBatchById(updateOutsideList);
+        }
+
+    }
+
+    /**
+     * 处理已删除报验点的报验单
+     *
+     */
+    @Override
+    public void doDeletedPointByPrjCode(String prjCode) {
+        final ZhcxProjectManageDo project = projectManageService.getByCode(prjCode);
+        doDeletedPoint(project.getId());
+    }
+
+    /**
+     * 报验单list转map
+     *
+     * @param key
+     * @param side
+     * @param map
+     */
+    private void putInspectionMap(String key, JSONObject side, Map<String, List<JSONObject>> map) {
+        List<JSONObject> pointInspectionList = map.get(key);
+        if(ObjectUtil.isNull(pointInspectionList)) {
+            pointInspectionList = new ArrayList<>();
+        }
+        pointInspectionList.add(side);
+        map.put(key, pointInspectionList);
+    }
+
+    /**
+     * 处理同一个报验点的外部报验单
+     *
+     * @param pointOutsideList
+     * @param prjNode
+     * @return
+     */
+    private DoPointOutSideBO doPointOutside(List<JSONObject> pointOutsideList, JSONObject prjNode) {
+        if(ObjectUtil.isEmpty(pointOutsideList)) {
+            return DoPointOutSideBO.builder()
+                    .updateList(Collections.EMPTY_LIST)
+                    .updateCodeList(Collections.EMPTY_LIST)
+                    .build();
+        }
+
+        List<ZhcxOutsideInspectionItpDo> updateList = new ArrayList<>(pointOutsideList.size());
+        List<String> updateCodeList = new ArrayList<>(pointOutsideList.size());
+        ZhcxOutsideInspectionItpDo entity;
+        for(JSONObject outside : pointOutsideList) {
+            entity = new ZhcxOutsideInspectionItpDo();
+            entity.setStructureid(prjNode.getString("PID")); //未删除的构件id
+            entity.setInspectioncontentid(prjNode.getString("ID")); //未删除的报验点id
+            entity.setId(outside.getString("ID"));
+            updateList.add(entity);
+            updateCodeList.add(outside.getString("INSPECTIONCODE"));
+        }
+
+        return DoPointOutSideBO.builder()
+                .updateList(updateList)
+                .updateCodeList(updateCodeList)
+                .build();
+    }
+
+    /**
+     * 获取报验点key 构件_报验点
+     *
+     * @param item
+     * @return
+     */
+    private String getPointKey4Inspection(JSONObject item) {
+        if(ObjectUtil.isEmpty(item.getString("STRUCTURENAME")) || ObjectUtil.isEmpty(item.getString("INSPECTIONPOINT"))) {
+            return null;
+        }
+        //获取未删除报验点
+        return item.getString("STRUCTURENAME").concat("_").concat(item.getString("INSPECTIONPOINT"));
+    }
+
     /**
      * 保存历史记录
      *

+ 15 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxItpProjectNodesServiceImpl.java

@@ -2,6 +2,7 @@ package com.rongwei.bscommon.sys.service.impl;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.util.ObjectUtil;
+import com.alibaba.fastjson.JSONObject;
 import com.aspose.cells.SaveFormat;
 import com.aspose.cells.Workbook;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -55,6 +56,9 @@ public class ZhcxItpProjectNodesServiceImpl extends ServiceImpl<ZhcxItpProjectNo
     @Autowired
     private CommonSqlDao commonSqlDao;
 
+    @Autowired
+    private ZhcxItpProjectNodesDao dao;
+
     @Autowired
     private ExcelUtils excelUtils;
 
@@ -647,4 +651,15 @@ public class ZhcxItpProjectNodesServiceImpl extends ServiceImpl<ZhcxItpProjectNo
 
         return list.stream().map(item -> item.getNodename()).collect(Collectors.toList());
     }
+
+    /**
+     * 查询项目报验点及所属构件,项目id不传会查询所有报验点
+     *
+     * @param projectId
+     * @return
+     */
+    @Override
+    public List<JSONObject> getPrjNode(String projectId) {
+        return dao.getPrjNode(projectId);
+    }
 }

+ 22 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxOutsideInspectionItpServiceImpl.java

@@ -1442,6 +1442,28 @@ public class ZhcxOutsideInspectionItpServiceImpl extends ServiceImpl<ZhcxOutside
         }
     }
 
+    /**
+     * 查询项目报验点及所属构件,项目id不传会查询所有报验点
+     *
+     * @param projectId
+     * @return
+     */
+    @Override
+    public List<JSONObject> getDeletedNodeInspection(String projectId) {
+        final List<JSONObject> list = dao.getDeletedNodeInspection(projectId);
+        return ObjectUtil.isNull(list) ? Collections.emptyList() : list;
+    }
+
+    /**
+     * 获取已删除报验点项目
+     *
+     * @return
+     */
+    @Override
+    public List<JSONObject> getDeletedNodeProject() {
+        return dao.getInitNodeStateInspection();
+    }
+
     private boolean isWithinAllowedTime() {
         // 获取当前时间
         LocalTime now = LocalTime.now();

+ 15 - 8
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPMQMServiceImpl.java

@@ -83,13 +83,16 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
         List<Map<String, Object>> allUser = pmqmDao.getAllUser();
 
         // 将NX系统数据写入ZHCX_PMQ_MANAGEMENT和ZHCX_PMQ_MANAGEMENT_RECORD
+        // 以Orderno|-_-|Projectno|-_-|Ordertype形式分组
         Map<String, List<ZhcxPmqManagementSourceDo>> groupedByOrderNo = nxSystemData.stream()
-                .collect(Collectors.groupingBy(ZhcxPmqManagementSourceDo::getOrderno));
+               .collect(Collectors.groupingBy(ZhcxPmqManagementSourceDo -> ZhcxPmqManagementSourceDo.getOrderno()+"|-_-|"+
+                       ZhcxPmqManagementSourceDo.getProjectno()+"|-_-|"+
+                       ZhcxPmqManagementSourceDo.getOrdertype()));
         // 按编号分组
         groupedByOrderNo.forEach((orderNo, items) -> {
             Map<String, String> queryPRowMap = new HashMap<>();
             queryPRowMap.put("orderno", orderNo);
-            List<ZhcxPmqManagementDo> queryParentRows = managementDao.getByCode(queryPRowMap);
+            List<ZhcxPmqManagementDo> queryParentRows = managementDao.getByCodeUnit(queryPRowMap);
             String pid = SecurityUtil.getUUID();
             // 搜索该编号是否已存在
             if (!queryParentRows.isEmpty()) {
@@ -181,10 +184,13 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
 
     // 全量处理职能部门
     private void disposeFlowerDept(){
-        try {
-        List<ZhcxPmqManagementRecoredDo> list = zhcxPMQMDao.getAllRecoredDoListInFlowerDept();
-        if(!list.isEmpty()){
-            log.info("开始全量处理职能部门");
+        log.info("开始全量处理职能部门");
+        zhcxPMQMDao.updateAllRecoredDoListInFlowerDept();
+        log.info("开始全量处理职能部门");
+        /*try {
+            List<ZhcxPmqManagementRecoredDo> list = zhcxPMQMDao.getAllRecoredDoListInFlowerDept();
+            if(!list.isEmpty()){
+            // 执行太慢了 姐妹
             for (ZhcxPmqManagementRecoredDo recoredDo : list) {
                 List<ZhcxPmqManagementDistributionDo> distributions = recoredDao.getDistributionsByPid(recoredDo.getId());
                 for (ZhcxPmqManagementDistributionDo distribution : distributions) {
@@ -199,10 +205,11 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
                 recoredDao.updateById(recoredDo);
                 zhcxPmqManagementDistributionDetailService.updateClosedStateInSecondFloor(recoredDo.getId());
             }
-        }} catch (Exception e) {
+        }
+        } catch (Exception e) {
             e.printStackTrace();
             log.error("全量处理职能部门派单数据异常!!");
-        }
+        }*/
     }
 
     private void updateDeptForMap(){

+ 9 - 6
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementLogServiceImpl.java

@@ -42,8 +42,11 @@ public class ZhcxPmqManagementLogServiceImpl extends ServiceImpl<ZhcxPmqManageme
     @Autowired
     private ZhcxPmqManagementRecoredService recoredService;
 
+    @Autowired
+    private ZhcxPmqManagementLogDao logDao;
+
     @Override
-    @Async("batchSaveThreadPool")
+    //@Async("batchSaveThreadPool")
     public R logForSecondFloor(String id, String type) {
         ZhcxPmqManagementRecoredDo recoredDo = recoredService.getById(id);
         Date nowDate = DateUtil.parse(DateUtil.now(), "yyyy-MM-dd HH:mm:ss");
@@ -60,13 +63,13 @@ public class ZhcxPmqManagementLogServiceImpl extends ServiceImpl<ZhcxPmqManageme
                 .setOperationtime(nowDate)
                 .setPmqmid(recoredDo.getPmqmid())
                 .setRecoredid(id);
-        this.save(zhcxPmqManagementLogDo);
+        logDao.insert(zhcxPmqManagementLogDo);
         log.info("记录日志");
         return R.ok("记录日志");
     }
 
     @Override
-    @Async("batchSaveThreadPool")
+    //@Async("batchSaveThreadPool")
     public R logFoThirdFloor(String id, String type) {
         ZhcxPmqManagementDistributionDetailDo detailDo = detailService.getById(id);
         ZhcxPmqManagementRecoredDo recoredDo = recoredService.getById(detailDo.getPid());
@@ -86,13 +89,13 @@ public class ZhcxPmqManagementLogServiceImpl extends ServiceImpl<ZhcxPmqManageme
                 .setRecoredid(recoredDo.getId())
                 .setDistributionid(detailDo.getDistributid())
                 .setDetailid(id);
-        this.save(zhcxPmqManagementLogDo);
+        logDao.insert(zhcxPmqManagementLogDo);
         log.info("记录日志");
         return R.ok("记录日志");
     }
 
     @Override
-    @Async("batchSaveThreadPool")
+    //@Async("batchSaveThreadPool")
     public R logFoThirdFloor(String id, String type,String description) {
         ZhcxPmqManagementDistributionDetailDo detailDo = detailService.getById(id);
         ZhcxPmqManagementRecoredDo recoredDo = recoredService.getById(detailDo.getPid());
@@ -113,7 +116,7 @@ public class ZhcxPmqManagementLogServiceImpl extends ServiceImpl<ZhcxPmqManageme
                 .setDistributionid(detailDo.getDistributid())
                 .setDetailid(id)
                 .setDescription(description);
-        this.save(zhcxPmqManagementLogDo);
+        logDao.insert(zhcxPmqManagementLogDo);
         log.info("记录日志");
         return R.ok("记录日志");
     }

+ 5 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementRecoredServiceImpl.java

@@ -532,7 +532,11 @@ public class ZhcxPmqManagementRecoredServiceImpl extends ServiceImpl<ZhcxPmqMana
                 result.setConfirmerid(zhcxPmqManagementDistributionDTO.getConfirmerid());
                 result.setConfirmer(zhcxPmqManagementDistributionDTO.getConfirmer());
                 // 关闭状态
-                result.setStatus(status);
+                if(!StringUtils.isEmpty(zhcxPmqManagementDistributionDTO.getStatus())) {
+                    result.setStatus(zhcxPmqManagementDistributionDTO.getStatus());
+                }else {
+                    result.setStatus(status);
+                }
                 if(!StringUtils.isEmpty(String.valueOf(recoredDo.getSeqno()))) {
                     result.setSerialnumber(String.valueOf(recoredDo.getSeqno()));
                 }

+ 88 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxPmqManagementSourceServiceImpl.java

@@ -1,11 +1,23 @@
 package com.rongwei.bscommon.sys.service.impl;
 
+import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementDao;
+import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementRecoredDao;
+import com.rongwei.bscommon.sys.service.ZhcxPmqManagementDistributionDetailService;
+import com.rongwei.bsentity.domain.ZhcxPmqManagementDo;
+import com.rongwei.bsentity.domain.ZhcxPmqManagementRecoredDo;
 import com.rongwei.bsentity.domain.ZhcxPmqManagementSourceDo;
 import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementSourceDao;
 import com.rongwei.bscommon.sys.service.ZhcxPmqManagementSourceService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.rongwei.rwcommon.utils.SecurityUtil;
+import com.rongwei.rwcommon.utils.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.*;
+import java.util.stream.Collectors;
+
 /**
  * <p>
  * NX系统三单数据 服务实现类
@@ -14,7 +26,83 @@ import org.springframework.stereotype.Service;
  * @author wm
  * @since 2024-10-30
  */
+@Slf4j
 @Service
 public class ZhcxPmqManagementSourceServiceImpl extends ServiceImpl<ZhcxPmqManagementSourceDao, ZhcxPmqManagementSourceDo> implements ZhcxPmqManagementSourceService {
 
+    @Autowired
+    private ZhcxPmqManagementDao managementDao;
+
+    @Autowired
+    private ZhcxPmqManagementRecoredDao recoredDao;
+
+    @Autowired
+    private ZhcxPmqManagementDistributionDetailService detailService;
+
+    @Override
+    public void repairZhcxPmqManagementData() {
+        // 1.先找出存在多个单据类别的单据编号
+        List<String> orderNoList = baseMapper.getAllOrderNoList();
+
+        log.info("开始修复数据");
+        for (String orderNos : orderNoList) {
+            // 根据单据编号找源数据
+            List<ZhcxPmqManagementSourceDo> sourceList = baseMapper.getSourceDataByOrderNo(orderNos);
+            // 以Orderno|-_-|Projectno|-_-|Ordertype形式分组
+            Map<String, List<ZhcxPmqManagementSourceDo>> groupedByOrderNo = sourceList.stream()
+                    .collect(Collectors.groupingBy(ZhcxPmqManagementSourceDo -> ZhcxPmqManagementSourceDo.getOrderno()+"|-_-|"+
+                            ZhcxPmqManagementSourceDo.getProjectno()+"|-_-|"+
+                            ZhcxPmqManagementSourceDo.getOrdertype()));
+            groupedByOrderNo.forEach((orderNo, items) -> {
+                Map<String, String> queryPRowMap = new HashMap<>();
+                queryPRowMap.put("orderno", orderNo);
+                List<ZhcxPmqManagementDo> queryParentRows = managementDao.getByCodeUnit(queryPRowMap);
+                String pid = SecurityUtil.getUUID();
+                if (!queryParentRows.isEmpty()) {
+                    pid = queryParentRows.get(0).getId();
+                }
+                ZhcxPmqManagementSourceDo tempRow1 = items.get(0);
+                ZhcxPmqManagementDo pRow = new ZhcxPmqManagementDo();
+                pRow.setId(pid);
+                pRow.setRemark("24-12-26修复数据");
+                pRow.setOrdertype(tempRow1.getOrdertype());
+                pRow.setOrderno(tempRow1.getOrderno());
+                pRow.setProjectno(tempRow1.getProjectno());
+                pRow.setProjectname(tempRow1.getProjectname());
+                pRow.setThemepoint(tempRow1.getThemepoint());
+                // 搜索最大的下发时间
+                Optional<ZhcxPmqManagementSourceDo> maxEtimeObj = items.stream()
+                        .filter(obj -> obj.getDistributetime() != null) // 过滤掉etime为null的对象
+                        .max(Comparator.comparing(ZhcxPmqManagementSourceDo::getDistributetime));
+                Date maxDistributetime = maxEtimeObj.map(ZhcxPmqManagementSourceDo::getDistributetime).orElse(null);
+                pRow.setDistributetime(maxDistributetime);
+                if (queryParentRows.isEmpty()) {
+                    managementDao.insert(pRow);
+                    for (ZhcxPmqManagementSourceDo item : items) {
+                        // 根据流水号+部门id  锁定第二层的数据
+                        Integer seqno = item.getSeqno();
+                        String deptid = item.getDeptid();
+                        if(seqno!=null && StringUtils.isNotBlank(deptid)){
+                            List<ZhcxPmqManagementRecoredDo> list = baseMapper.getRecoredDoListBySeqnoAndDeptid(seqno,deptid);
+                            if(!list.isEmpty()){
+                                ZhcxPmqManagementRecoredDo zhcxPmqManagementRecoredDo = list.get(0);
+                                zhcxPmqManagementRecoredDo.setPmqmid(pid);
+                                zhcxPmqManagementRecoredDo.setRemark("24-12-26修复数据");
+                                recoredDao.updateById(zhcxPmqManagementRecoredDo);
+                            }
+                        }
+                    }
+                    // 需要去更新新增的第一层的状态
+                    log.info("更新新增的第一层的状态");
+                    detailService.updateClosedStateInFirstFloor(pid);
+                }else {
+                    // 拆开之后主表更新状态
+                    detailService.updateClosedStateInFirstFloor(pid);
+                }
+            });
+        }
+        // 需要更新第一层的项目id
+        baseMapper.updateProjectId();
+        log.info("修复数据结束");
+    }
 }

+ 13 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/impl/ZhcxProjectManageServiceImpl.java

@@ -478,6 +478,19 @@ public class ZhcxProjectManageServiceImpl extends ServiceImpl<ZhcxProjectManageD
         return zhcxProjectManageDao.getListApiData(map);
     }
 
+    /**
+     * 通过项目编码获取项目
+     *
+     * @param prjCode
+     * @return
+     */
+    @Override
+    public ZhcxProjectManageDo getByCode(String prjCode) {
+        final LambdaQueryWrapper<ZhcxProjectManageDo> queryWrapper = Wrappers.lambdaQuery();
+        queryWrapper.eq(ZhcxProjectManageDo::getProjectCode, prjCode);
+        return getOne(queryWrapper);
+    }
+
     //private static final BeanCopier copier = BeanCopier.create(ZhcxProjectRectifyDo.class, ZhcxProjectRectifyVo.class, false);
     @Override
     public R getRectifyListData(Map<String, Object> map) {

+ 1 - 1
business-common/src/main/resources/mybatis/business/ZhcxPmqManagementDistributionDetailDao.xml

@@ -15,7 +15,7 @@
                                 WHERE PMQMID = #{id}
                                   AND DELETED = '0'
                                   AND (CLOSESTATUS IS NULL
-                                    OR CLOSESTATUS = '未关闭')) THEN '未关闭'
+                                    OR CLOSESTATUS = '未关闭' OR CLOSESTATUS = '')) THEN '未关闭'
                    WHEN NOT EXISTS (SELECT 1
                                     FROM INCONTROL.ZHCX_PMQ_MANAGEMENT_RECORED x
                                     WHERE PMQMID = #{id}

+ 26 - 0
business-entity/src/main/java/com/rongwei/bsentity/dto/outside/DoPointOutSideBO.java

@@ -0,0 +1,26 @@
+package com.rongwei.bsentity.dto.outside;
+
+import com.rongwei.bsentity.domain.ZhcxOutsideInspectionItpDo;
+import lombok.*;
+
+import java.util.List;
+
+@Setter
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class DoPointOutSideBO {
+
+    /**
+     * 需要更新的列表
+     *
+     */
+    private List<ZhcxOutsideInspectionItpDo> updateList;
+
+    /**
+     * 更新列表的报验单号
+     *
+     */
+    private List<String> updateCodeList;
+}

+ 13 - 0
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxInsideInspectionController.java

@@ -3,6 +3,7 @@ package com.rongwei.bsserver.controller;
 
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.rongwei.bscommon.sys.service.ZhcxInsideInspectionService;
 import com.rongwei.bsentity.dto.InsideInspectionOperRequest;
 import com.rongwei.bsentity.dto.inside.*;
@@ -245,5 +246,17 @@ public class ZhcxInsideInspectionController {
         service.updateSupervision(list);
         return R.ok();
     }
+
+    /**
+     * 删除报验点处理
+     *
+     * @param json
+     */
+    @PostMapping("/doDeletedPointInspection")
+    @ResponseBody
+    public R doDeletedPointInspection(@RequestBody JSONObject json) {
+        service.doDeletedPointByPrjCode(json.getString("projectCode"));
+        return R.ok();
+    }
 }
 

Fichier diff supprimé car celui-ci est trop grand
+ 16 - 1
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPMQMController.java


+ 5 - 1
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPmqManagementController.java

@@ -69,8 +69,12 @@ public class ZhcxPmqManagementController {
                 return R.error("id不能为空");
             }
             log.info("更新关闭状态-第三层(在已保存状态的情况后)__>map:{}",map.get("id"));
+            String type = "关闭";
+            if(!Objects.isNull(map.get("type"))){
+                type = (String) map.get("type");
+            }
             // 塞入操作日志
-            logService.logFoThirdFloor((String) map.get("id"),"关闭");
+            logService.logFoThirdFloor((String) map.get("id"),type);
             return distributionDetailService.updateClosedStateInThirdFloor((String) map.get("id"));
         } catch (Exception e) {
             log.info(String.valueOf(e));

+ 14 - 0
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPmqManagementSourceController.java

@@ -1,6 +1,11 @@
 package com.rongwei.bsserver.controller;
 
 
+import com.rongwei.bscommon.sys.service.ZhcxPmqManagementSourceService;
+import com.rongwei.rwcommon.base.R;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
@@ -16,5 +21,14 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/zhcxPmqManagementSource")
 public class ZhcxPmqManagementSourceController {
 
+    @Autowired
+    private ZhcxPmqManagementSourceService zhcxPmqManagementSourceService;
+
+    @PostMapping("/repairZhcxPmqManagementData")
+    @ApiOperation("修复三单主表数据")
+    public R repairZhcxPmqManagementData() {
+        zhcxPmqManagementSourceService.repairZhcxPmqManagementData();
+        return R.ok("修复三单主表数据完成");
+    }
 }