Bläddra i källkod

脏数据处理

fangpy 1 år sedan
förälder
incheckning
7a19baabbc

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

@@ -34,4 +34,6 @@ public interface ZhcxItpProjectNodesService extends IService<ZhcxItpProjectNodes
      */
     void exportProjectInspectionPoint(OutsideInspectionProjectPointDto excelData, HttpServletResponse response);
 
+    void erroDataUpdate();
+
 }

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

@@ -586,4 +586,39 @@ public class ZhcxItpProjectNodesServiceImpl extends ServiceImpl<ZhcxItpProjectNo
         List<Map<String, Object>> nodes = commonSqlDao.sqlExecutu(sql);
         return nodes;
     }
+
+    /**
+     * 脏数据更新
+     */
+    @Override
+    public void erroDataUpdate() {
+        List<ZhcxItpProjectNodesDo> projectNodesDos = new ArrayList<>();
+        String sql1 = "select distinct m.* from( \n" +
+                "select a.* from ZHCX_ITP_PROJECT_NODES a left join ZHCX_ITP_TEMPLATE_NODES b on a.ITPNODEID=b.id and a.ITPID=b.ITPID\n" +
+                "where a.deleted='0' and a.NODETYPE='phase' and b.deleted='1'\n" +
+                "union\n" +
+                "select a.* from ZHCX_ITP_PROJECT_NODES a left join ZHCX_ITP_TEMPLATE_NODES b on a.ITPNODEID=b.id  and a.ITPID=b.ITPID\n" +
+                "where a.deleted='0' and a.NODETYPE='phase' and b.deleted is null\n" +
+                ") m";
+        List<Map<String, Object>> projectnodes = commonSqlDao.sqlExecutu(sql1);
+        for (Map<String, Object> projectnode : projectnodes) {
+            String sql2 = "select * from ZHCX_ITP_TEMPLATE_NODES where ITPID='"+projectnode.get("ITPID")+"' and deleted='0' and NODENAME='"+projectnode.get("NODENAME")+"' and NODETYPE='phase'";
+            List<Map<String, Object>> tepnodes = commonSqlDao.sqlExecutu(sql2);
+            if(tepnodes != null && tepnodes.size()==1){
+                ZhcxItpProjectNodesDo pn = new ZhcxItpProjectNodesDo();
+                pn.setId(projectnode.get("ID").toString());
+                pn.setItpnodeid(tepnodes.get(0).get("ID").toString());
+                projectNodesDos.add(pn);
+            }
+            // 项目构件数据
+            String sql3 = "select * from ZHCX_ITP_PROJECT_NODES where PID='"+projectnode.get("ID")+"' and deleted='0'";
+            List<Map<String, Object>> tepnodes1 = commonSqlDao.sqlExecutu(sql3);
+            for (Map<String, Object> map : tepnodes1) {
+
+            }
+
+        }
+
+        this.updateBatchById(projectNodesDos);
+    }
 }

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

@@ -50,7 +50,7 @@ public class ZhcxItpTemplateNodesServiceImpl extends ServiceImpl<ZhcxItpTemplate
      * @param zhcxItpTemplateNodeSyncProjectVo
      */
     @Override
-    @Transactional(rollbackFor = RuntimeException.class)
+//    @Transactional(rollbackFor = RuntimeException.class)
     public void itpTemplateAddNodeSyncProjects(ZhcxItpTemplateNodeSyncProjectVo zhcxItpTemplateNodeSyncProjectVo){
         if(StringUtils.isNotBlank(zhcxItpTemplateNodeSyncProjectVo.getNodeid())
                 && zhcxItpTemplateNodeSyncProjectVo.getProjectids() != null && zhcxItpTemplateNodeSyncProjectVo.getProjectids().size()>0){
@@ -100,6 +100,63 @@ public class ZhcxItpTemplateNodesServiceImpl extends ServiceImpl<ZhcxItpTemplate
                         }
                     }
                 }
+
+                // 根据名称判断
+                String sql1 = "select a.NODENAME AS \"NAMEONE\",a.ID AS \"IDONE\",b.NODENAME AS \"NAMETWO\",b.ID AS \"IDTWO\",c.NODENAME AS \"NAMETHREE\",c.ID AS \"IDTHREE\"\n" +
+                        "from ZHCX_ITP_TEMPLATE_NODES a \n" +
+                        "left join ZHCX_ITP_TEMPLATE_NODES b on a.pid=b.id\n" +
+                        "left join ZHCX_ITP_TEMPLATE_NODES c on b.pid=c.id\n" +
+                        "where a.ID='"+zhcxItpTemplateNodeSyncProjectVo.getNodeid()+"'";
+                List<Map<String, Object>> nodes = commonSqlDao.sqlExecutu(sql1);
+                // 1级
+                List<ZhcxItpProjectNodesDo> namethree = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>()
+                        .eq(ZhcxItpProjectNodesDo::getProjectid, projectid).eq(ZhcxItpProjectNodesDo::getNodetype, CxConstants.ITP_NODETYPE_PHASE)
+                        .eq(ZhcxItpProjectNodesDo::getNodename, nodes.get(0).get("NAMETHREE")));
+                if(namethree != null && namethree.size()>0){
+                    if(!namethree.get(0).getItpnodeid().equals(nodes.get(0).get("IDTHREE"))){
+                        ZhcxItpProjectNodesDo node1 = new ZhcxItpProjectNodesDo();
+                        node1.setId(namethree.get(0).getId());
+                        node1.setItpnodeid(nodes.get(0).get("IDTHREE").toString());
+                        zhcxItpProjectNodesService.updateById(node1);
+                        // 2级
+                        List<String> a = new ArrayList<>();
+                        a.add(CxConstants.ITP_NODETYPE_SMALL);a.add(CxConstants.ITP_NODETYPE_BIG);
+                        List<ZhcxItpProjectNodesDo> nametwo = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>()
+                                .eq(ZhcxItpProjectNodesDo::getProjectid, projectid).in(ZhcxItpProjectNodesDo::getNodetype,a)
+                                .eq(ZhcxItpProjectNodesDo::getNodename, nodes.get(0).get("NAMETWO")).eq(ZhcxItpProjectNodesDo::getPid,node1.getId()));
+                        if(nametwo != null && nametwo.size()>0){
+                            if(!nametwo.get(0).getItpnodeid().equals(nodes.get(0).get("IDTWO"))){
+                                ZhcxItpProjectNodesDo node2 = new ZhcxItpProjectNodesDo();
+                                node2.setId(nametwo.get(0).getId());
+                                node2.setItpnodeid(nodes.get(0).get("IDTWO").toString());
+                                zhcxItpProjectNodesService.updateById(node2);
+                                // 3级
+                                List<ZhcxItpProjectNodesDo> nameone = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>()
+                                        .eq(ZhcxItpProjectNodesDo::getProjectid, projectid).eq(ZhcxItpProjectNodesDo::getNodetype,CxConstants.ITP_NODETYPE_CHECKPOINT)
+                                        .eq(ZhcxItpProjectNodesDo::getNodename, nodes.get(0).get("NAMEONE")).eq(ZhcxItpProjectNodesDo::getPid,node2.getId()));
+                                if(!nameone.get(0).getItpnodeid().equals(nodes.get(0).get("IDONE"))){
+                                    ZhcxItpProjectNodesDo node3 = new ZhcxItpProjectNodesDo();
+                                    node3.setId(nameone.get(0).getId());
+                                    node3.setItpnodeid(nodes.get(0).get("IDONE").toString());
+                                    ZhcxItpTemplateNodesDo idone = this.getById(nodes.get(0).get("IDONE").toString());
+                                    node3.setIsneedout(idone.getIsneedout());
+                                    node3.setInspectiontype(idone.getInspectiontype());
+                                    node3.setIssupp(idone.getIssupp());
+                                    node3.setChecktmpid(idone.getChecktmpid());
+                                    node3.setCheckrole(idone.getCheckrole());
+                                    node3.setCheckroleid(idone.getCheckroleid());
+                                    node3.setOrgid(idone.getOrgid());
+                                    node3.setOrgname(idone.getOrgname());
+                                    node3.setCheckfile(idone.getCheckfile());
+                                    node3.setNodename(idone.getNodename());
+                                    node3.setIsneedinput(idone.getIsneedinput());
+                                    zhcxItpProjectNodesService.updateById(node3);
+                                }
+                            }
+                        }
+                    }
+                }
+
                 // 获取当前项目是否有当前报验点
                 List<ZhcxItpProjectNodesDo> projectNodesDos = zhcxItpProjectNodesService.list(new LambdaQueryWrapper<ZhcxItpProjectNodesDo>().
                         eq(ZhcxItpProjectNodesDo::getProjectid, projectid).in(ZhcxItpProjectNodesDo::getItpnodeid, nodeids));