Browse Source

同步数据代码修改

Mr.Feng 1 month ago
parent
commit
a73fcb06f3

+ 1 - 1
ruoyi-admin/src/main/resources/logback.xml

@@ -90,4 +90,4 @@
     <logger name="sys-user" level="info">
         <appender-ref ref="sys-user"/>
     </logger>
-</configuration> 
+</configuration>

+ 1 - 1
ruoyi-framework/src/main/java/com/ruoyi/framework/datasource/DynamicDataSourceContextHolder.java

@@ -23,7 +23,7 @@ public class DynamicDataSourceContextHolder
      */
     public static void setDataSourceType(String dsType)
     {
-        log.info("切换到{}数据源", dsType);
+//        log.info("切换到{}数据源", dsType);
         CONTEXT_HOLDER.set(dsType);
     }
 

+ 2 - 2
ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java

@@ -84,11 +84,11 @@ public class RyTask {
             this.syncPreNew();
 //           //同步住建局手续
             this.syncDoc();
-            this.syncDocLog();
+//            this.syncDocLog();
 //            //从公共资源交易中心同步招投标信息
             this.syncTender();
 //           //从公共资源交易中心同步招投标信息
-            this.syncTenderLog();
+//            this.syncTenderLog();
             isRun = false;
         }
 /*        //同步自治区前期手续信息

+ 7 - 1
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysTableMapper.java

@@ -2,8 +2,9 @@ package com.ruoyi.system.mapper;
 
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.ruoyi.system.domain.SyncLog;
 import com.ruoyi.system.domain.SysTable;
+import com.ruoyi.system.domain.vo.UnitAndTSystableVo;
+import org.apache.ibatis.annotations.Select;
 
 /**
  * 参数配置 数据层
@@ -12,4 +13,9 @@ import com.ruoyi.system.domain.SysTable;
  */
 public interface SysTableMapper extends BaseMapper<SysTable> {
 
+    @Select("SELECT c.title subjectName, e.title unitName,e.id unitId\n" +
+            "from t_systable c\n" +
+            "LEFT JOIN j_unit e ON e.kind = '2' and c.unit_id = e.id\n" +
+            "where c.kind = 'JSDD' and c.logic_delete_flag = 0 AND c.code=#{subjectId}")
+    UnitAndTSystableVo getUnitNameAndUnitId(String subjectId);
 }

+ 245 - 73
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SubInfoServiceImpl.java

@@ -10,6 +10,7 @@ import com.ruoyi.common.annotation.DataSource;
 import com.ruoyi.common.enums.DataSourceType;
 import com.ruoyi.common.utils.*;
 import com.ruoyi.system.domain.*;
+import com.ruoyi.system.domain.vo.UnitAndTSystableVo;
 import com.ruoyi.system.mapper.*;
 import com.ruoyi.system.service.ISubInfoService;
 import org.apache.poi.util.Internal;
@@ -297,7 +298,7 @@ public class SubInfoServiceImpl extends ServiceImpl<SubInfoMapper, SubInfo> impl
                             if (json.getBigDecimal(key).compareTo(BigDecimal.ZERO) == 0) {
                                 subSource.setLogicDeleteFlag(1);
                             }
-                            subSourceMapper.updateById(subSource);
+//                            subSourceMapper.updateById(subSource);
                         }
                     }
                 }
@@ -367,16 +368,21 @@ public class SubInfoServiceImpl extends ServiceImpl<SubInfoMapper, SubInfo> impl
 
     @Override
     public boolean syncDocument(SubDocument document, String company) {
-        //名称
+        //通过项目名字找项目
         List<SubInfo> lstSubInfo = subInfoMapper.selectList(new LambdaQueryWrapper<SubInfo>().eq(SubInfo::getSubName, document.getProjectname()));
         if (lstSubInfo == null || lstSubInfo.size() == 0) {
+//           //没找到项目,再通过项目代码去找
             lstSubInfo = subInfoMapper.selectList(new LambdaQueryWrapper<SubInfo>().eq(SubInfo::getSubCode, document.getProjectid()));
         }
+        //找到了对应的项目
         if (lstSubInfo.size() > 0) {
+            //可能找到多个相同项目,遍历
             for (SubInfo subInfo : lstSubInfo) {
                 SubPreNew subPreNew = null;
+                //在sync_visit这个对照表找对应的手续进行对照
                 List<SyncVisit> flowVistList = visitMapper.selectList(new LambdaQueryWrapper<SyncVisit>().eq(SyncVisit::getOtherTitle, document.getSxzxname()).eq(SyncVisit::getCat, "5"));
                 SubPreFlow flow = null;
+                //如果对照表没找到,则记录日志
                 if (flowVistList.size() <= 0) {
                     SyncLog log = new SyncLog();
                     log.setCat("4").setId(UUID.randomUUID().toString()).setCompany(company).setContent(JSONUtil.toJsonStr(document)).setState("1");
@@ -384,24 +390,29 @@ public class SubInfoServiceImpl extends ServiceImpl<SubInfoMapper, SubInfo> impl
                     syncLogMapper.insert(log);
                     return false;
                 } else {
+                    //如果对照找到了,取第一个
                     SyncVisit flowVist = flowVistList.get(0);
                     flow = subFlowMapper.selectOne(new LambdaQueryWrapper<SubPreFlow>().eq(SubPreFlow::getTitle, flowVist.getTitle()).eq(SubPreFlow::getLogicDeleteFlag, 0));
                 }
                 if (flow == null) {
-                    //自动创建
+                    //再次验证对照的手续
                     SyncLog log = new SyncLog();
                     log.setCat("4").setId(UUID.randomUUID().toString()).setCompany(company).setContent(JSONUtil.toJsonStr(document)).setState("1");
                     log.setCreateTime(DateUtil.date()).setIsHandle("1").setRemark(String.format("同步前期办理手续失败:项目名称【%s】和项目代码【%s】已找到,手续【%s】未找到", document.getProjectname(), document.getProjectid(), document.getSxzxname()));
                     syncLogMapper.insert(log);
                     return false;
                 }
+                //从项目手续表中获取数据,判断是否存在数据
                 subPreNew = subPreNewMapper.selectOne(new LambdaQueryWrapper<SubPreNew>().eq(SubPreNew::getSubId, subInfo.getId()).eq(SubPreNew::getPreFlowId, flow.getId()).eq(SubPreNew::getLogicDeleteFlag, 0));
                 boolean isUpdate = true;
                 if (subPreNew == null) {
+                    //没有找到,则是增加操作
                     isUpdate = false;
                     subPreNew = new SubPreNew();
                     subPreNew.setId(UUID.randomUUID().toString());
                 }
+
+                //到对照表中找审批单位
                 SyncVisit unitVist = visitMapper.selectOne(new LambdaQueryWrapper<SyncVisit>().eq(SyncVisit::getOtherTitle, document.getDeptname()).eq(SyncVisit::getCat, "4"));
                 if (unitVist == null) {
                     SyncLog log = new SyncLog();
@@ -420,34 +431,107 @@ public class SubInfoServiceImpl extends ServiceImpl<SubInfoMapper, SubInfo> impl
                     syncLogMapper.insert(log);
                     return false;
                 }
-                subPreNew.setSubId(subInfo.getId());
-                subPreNew.setPreFlowId(flow.getId());
-                subPreNew.setCreateTime(new Date());
-                /*                subPreNew.setFileAddre(document.getFileurl());*/
-                subPreNew.setDatePlan(document.getApplytime());
-                subPreNew.setDateConfirm(document.getEndfortime());
-                subPreNew.setTransactors(document.getUsername());
-                subPreNew.setTransactorsPhone(document.getMobile());
-                subPreNew.setLogicDeleteFlag(0);
-                subPreNew.setCreateTime(new Date());
-                subPreNew.setUnitDesc(document.getDeptname());
-                subPreNew.setSubUnitId(unit.getId());
-                if (document.getApplytime() != null) {
-                    subPreNew.setStatusConf("1");
-                }
-                subPreNew.setNum1(flow.getNum1());
-                subPreNew.setNum2(flow.getNum2());
-                subPreNew.setNumStage(flow.getNumStage());
-                if (document.getEndfortime() != null) {
-                    subPreNew.setStatusConf("2");
-                    subPreNew.setNum3(DateUtils.differentDaysByMillisecond(document.getEndfortime(), document.getApplytime()));
-                }
-                if (document.getState().equals("3")) {
-                    subPreNew.setLogicDeleteFlag(1);
-                }
+                //根据subjectId获取单位名称
+                UnitAndTSystableVo unitAndTSystableVo=sysTableMapper.getUnitNameAndUnitId(subInfo.getSubjectId());
+
+                //存在手续
                 if (isUpdate) {
+
+                    if (StringUtils.isEmpty(subPreNew.getSubId())){
+                        subPreNew.setSubId(subInfo.getId());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getPreFlowId())) {
+                        subPreNew.setPreFlowId(flow.getId());
+                    }
+                    if (subPreNew.getCreateTime()==null) {
+                        subPreNew.setCreateTime(new Date());
+                    }
+                    if (subPreNew.getDatePlan()==null) {
+                        subPreNew.setDatePlan(document.getApplytime());
+                    }
+                    if (subPreNew.getDateConfirm()==null) {
+                        subPreNew.setDateConfirm(document.getEndfortime());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getTransactors())) {
+                        subPreNew.setTransactors(document.getUsername());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getTransactorsPhone())) {
+                        subPreNew.setTransactorsPhone(document.getMobile());
+                    }
+                    if (subPreNew.getLogicDeleteFlag()==null) {
+                        subPreNew.setLogicDeleteFlag(0);
+                    }
+                    if (subPreNew.getCreateTime()==null) {
+                        subPreNew.setCreateTime(new Date());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getUnitDesc())) {
+                        //默认以平台为主
+                        //防止无数据
+                        if (StringUtils.isEmpty(subPreNew.getSubUnitId())) {
+                            subPreNew.setUnitDesc(unitAndTSystableVo.getUnitName());
+                        }
+                    }
+                    //默认以平台为主
+                    if (StringUtils.isEmpty(subPreNew.getSubUnitId())){
+                        //防止无数据
+                        subPreNew.setSubUnitId(unit.getId());
+                    }
+
+                    if (subPreNew.getStatusConf() == null) {
+                        if (document.getApplytime() != null) {
+                            subPreNew.setStatusConf("1");
+                        }
+                    }
+                    if (subPreNew.getNum1() == null) {
+                        subPreNew.setNum1(flow.getNum1());
+                    }
+                    if (subPreNew.getNum2() == null) {
+                        subPreNew.setNum2(flow.getNum2());
+                    }
+                    if (subPreNew.getNumStage() == null) {
+                        subPreNew.setNumStage(flow.getNumStage());
+                    }
+
+                    if (document.getEndfortime() != null) {
+                        if (StringUtils.isEmpty(subPreNew.getStatusConf())) {
+                            subPreNew.setStatusConf("2");
+                        }
+                        if (subPreNew.getNum3() == null) {
+                            subPreNew.setNum3(DateUtils.differentDaysByMillisecond(document.getEndfortime(), document.getApplytime()));
+                        }
+                    }
+/*
+                        if (document.getState().equals("3")) {
+                            subPreNew.setLogicDeleteFlag(1);
+                        }
+*/
                     subPreNewMapper.updateById(subPreNew);
                 } else {
+                    subPreNew.setSubId(subInfo.getId());
+                    subPreNew.setPreFlowId(flow.getId());
+                    subPreNew.setCreateTime(new Date());
+                    subPreNew.setDatePlan(document.getApplytime());
+                    subPreNew.setDateConfirm(document.getEndfortime());
+                    subPreNew.setTransactors(document.getUsername());
+                    subPreNew.setTransactorsPhone(document.getMobile());
+                    subPreNew.setLogicDeleteFlag(0);
+                    subPreNew.setCreateTime(new Date());
+                    //确保单位与平台一致
+                    subPreNew.setUnitDesc(unitAndTSystableVo.getUnitName());
+                    subPreNew.setSubUnitId(unit.getId());
+                    if (document.getApplytime() != null) {
+                        subPreNew.setStatusConf("1");
+                    }
+                    subPreNew.setNum1(flow.getNum1());
+                    subPreNew.setNum2(flow.getNum2());
+                    subPreNew.setNumStage(flow.getNumStage());
+                    if (document.getEndfortime() != null) {
+                        subPreNew.setStatusConf("2");
+                        subPreNew.setNum3(DateUtils.differentDaysByMillisecond(document.getEndfortime(), document.getApplytime()));
+                    }
+                    if (document.getState().equals("3")) {
+                        subPreNew.setLogicDeleteFlag(1);
+                    }
                     subPreNewMapper.insert(subPreNew);
                 }
                 this.setSubInfoStatus(subInfo);
@@ -511,35 +595,100 @@ public class SubInfoServiceImpl extends ServiceImpl<SubInfoMapper, SubInfo> impl
                 if (unit == null) {
                     unit = this.autoUnitAndUser(document.getDeptName(), "", "2", "1", document.getDeptName(), "005");
                 }
-                subPreNew.setSubId(subInfo.getId());
-                subPreNew.setPreFlowId(flow.getId());
-                subPreNew.setCreateTime(new Date());
-                subPreNew.setFileAddre(document.getFileUrl());
-                subPreNew.setFileType(document.getFileType());
-                subPreNew.setDatePlan(document.getApplyTime());
-                subPreNew.setDateConfirm(document.getEndforTime());
-                subPreNew.setTransactors(document.getUserName());
-                subPreNew.setTransactorsPhone(document.getMobile());
-                subPreNew.setLogicDeleteFlag(0);
-                subPreNew.setLastUpdateTime(new Date());
-                subPreNew.setUnitDesc(document.getDeptName());
-                subPreNew.setSubUnitId(unit.getId());
-                if (document.getApplyTime() != null) {
-                    subPreNew.setStatusConf("1");
-                }
-                subPreNew.setNum1(flow.getNum1());
-                subPreNew.setNum2(flow.getNum2());
-                subPreNew.setNumStage(flow.getNumStage());
-                if (document.getEndforTime() != null) {
-                    subPreNew.setStatusConf("2");
-                    subPreNew.setNum3(DateUtils.differentDaysByMillisecond(document.getEndforTime(), document.getApplyTime()));
-                }
-                if (document.getState().equals("3")) {
-                    subPreNew.setLogicDeleteFlag(1);
-                }
+                UnitAndTSystableVo unitAndTSystableVo=sysTableMapper.getUnitNameAndUnitId(subInfo.getSubjectId());
+
                 if (isUpdate) {
+                    if (StringUtils.isEmpty(subPreNew.getSubId())){
+                        subPreNew.setSubId(subInfo.getId());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getPreFlowId())) {
+                        subPreNew.setPreFlowId(flow.getId());
+                    }
+                    if (subPreNew.getCreateTime()==null) {
+                        subPreNew.setCreateTime(new Date());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getFileAddre())) {
+                        subPreNew.setFileAddre(document.getFileUrl());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getFileType())) {
+                        subPreNew.setFileType(document.getFileType());
+                    }
+                    if (subPreNew.getDatePlan()==null) {
+                        subPreNew.setDatePlan(document.getApplyTime());
+                    }
+                    if (subPreNew.getDateConfirm()==null) {
+                        subPreNew.setDateConfirm(document.getEndforTime());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getTransactors())) {
+                        subPreNew.setTransactors(document.getUserName());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getTransactorsPhone())) {
+                        subPreNew.setTransactorsPhone(document.getMobile());
+                    }
+                    if (subPreNew.getLogicDeleteFlag()==null) {
+                        subPreNew.setLogicDeleteFlag(0);
+                    }
+                    subPreNew.setLastUpdateTime(new Date());
+                    if (StringUtils.isEmpty(subPreNew.getUnitDesc())) {
+                        //默认以平台为主
+                        //防止无数据
+                        if (StringUtils.isEmpty(subPreNew.getSubUnitId())) {
+                            subPreNew.setUnitDesc(unitAndTSystableVo.getUnitName());
+                        }
+                    }
+                    //默认以平台为主
+                    if (StringUtils.isEmpty(subPreNew.getSubUnitId())){
+                        //防止无数据
+                        subPreNew.setSubUnitId(unit.getId());
+                    }
+                    if (document.getApplyTime() != null) {
+                        subPreNew.setStatusConf("1");
+                    }
+                    if (subPreNew.getNum1() == null) {
+                        subPreNew.setNum1(flow.getNum1());
+                    }
+                    if (subPreNew.getNum2() == null) {
+                        subPreNew.setNum2(flow.getNum2());
+                    }
+                    if (subPreNew.getNumStage() == null) {
+                        subPreNew.setNumStage(flow.getNumStage());
+                    }
+                    if (document.getEndforTime() != null) {
+                        subPreNew.setStatusConf("2");
+                        subPreNew.setNum3(DateUtils.differentDaysByMillisecond(document.getEndforTime(), document.getApplyTime()));
+                    }
+                    /*if (document.getState().equals("3")) {
+                        subPreNew.setLogicDeleteFlag(1);
+                    }*/
+
                     subPreNewMapper.updateById(subPreNew);
                 } else {
+                    subPreNew.setSubId(subInfo.getId());
+                    subPreNew.setPreFlowId(flow.getId());
+                    subPreNew.setCreateTime(new Date());
+                    subPreNew.setFileAddre(document.getFileUrl());
+                    subPreNew.setFileType(document.getFileType());
+                    subPreNew.setDatePlan(document.getApplyTime());
+                    subPreNew.setDateConfirm(document.getEndforTime());
+                    subPreNew.setTransactors(document.getUserName());
+                    subPreNew.setTransactorsPhone(document.getMobile());
+                    subPreNew.setLogicDeleteFlag(0);
+                    subPreNew.setLastUpdateTime(new Date());
+                    subPreNew.setUnitDesc(unitAndTSystableVo.getUnitName());
+                    subPreNew.setSubUnitId(unit.getId());
+                    if (document.getApplyTime() != null) {
+                        subPreNew.setStatusConf("1");
+                    }
+                    subPreNew.setNum1(flow.getNum1());
+                    subPreNew.setNum2(flow.getNum2());
+                    subPreNew.setNumStage(flow.getNumStage());
+                    if (document.getEndforTime() != null) {
+                        subPreNew.setStatusConf("2");
+                        subPreNew.setNum3(DateUtils.differentDaysByMillisecond(document.getEndforTime(), document.getApplyTime()));
+                    }
+                    if (document.getState().equals("3")) {
+                        subPreNew.setLogicDeleteFlag(1);
+                    }
                     subPreNewMapper.insert(subPreNew);
                 }
                 this.setSubInfoStatus(subInfo);
@@ -654,10 +803,6 @@ public class SubInfoServiceImpl extends ServiceImpl<SubInfoMapper, SubInfo> impl
         }
 
         cnt = subPreNewMapper.selectCount(new LambdaQueryWrapper<SubPreNew>().eq(SubPreNew::getSubId, subInfo.getId()).eq(SubPreNew::getLogicDeleteFlag, 0).in(SubPreNew::getPreFlowId, new int[]{17, 34, 50}).eq(SubPreNew::getStatusConf, "2"));
-
-     /*   cnt = subPreNewMapper.selectCount(new LambdaQueryWrapper<SubPreNew>().eq(SubPreNew::getSubId, subInfo.getId()).eq(SubPreNew::getLogicDeleteFlag, 0).in(SubPreNew::getPreFlowId, new int[]{17, 34, 50}).eq(SubPreNew::getStatusConf, "2"));
-*/
-
         if (cnt > 0) {
             subInfo.setStatus("A");
             subInfo.setLastUpdateTime(new Date());
@@ -683,24 +828,51 @@ public class SubInfoServiceImpl extends ServiceImpl<SubInfoMapper, SubInfo> impl
                     subPreNew = new SubPreNew();
                     subPreNew.setId(UUID.randomUUID().toString());
                 }
-                subPreNew.setSubId(subInfo.getId());
-                subPreNew.setPreFlowId("16");
-                subPreNew.setCreateTime(new Date());
-                subPreNew.setFileAddre(tender.getFileUrl());
-                subPreNew.setDatePlan(DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", tender.getSiteDate()));
-                subPreNew.setDateConfirm(DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", tender.getPublishDate()));
-                subPreNew.setTransactors(tender.getUser());
-                subPreNew.setTransactorsPhone(tender.getPhone());
-                subPreNew.setLogicDeleteFlag(0);
-                if (StringUtils.isNotEmpty(tender.getPublishDate())) {
-                    subPreNew.setStatusConf("2"); //废标后设置未办理
-                }
-                if (tender.getState().equals("2") || tender.getState().equals("3")) {
-                    subPreNew.setLogicDeleteFlag(1);
-                }
                 if (isUpdate) {
+                    if(StringUtils.isEmpty(subPreNew.getSubId())){
+                        subPreNew.setSubId(subInfo.getId());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getPreFlowId())){
+                        subPreNew.setPreFlowId("16");
+                    }
+                    if (subPreNew.getCreateTime()==null){
+                        subPreNew.setCreateTime(new Date());
+                    }
+                    if(StringUtils.isEmpty(subPreNew.getFileAddre())) {
+                        subPreNew.setFileAddre(tender.getFileUrl());
+                    }
+                    if (subPreNew==null){
+                        subPreNew.setDatePlan(DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", tender.getSiteDate()));
+                    }
+                    if (subPreNew.getDateConfirm()==null){
+                        subPreNew.setDateConfirm(DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", tender.getPublishDate()));
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getTransactors())){
+                        subPreNew.setTransactors(tender.getUser());
+                    }
+                    if (StringUtils.isEmpty(subPreNew.getTransactors())) {
+                        subPreNew.setTransactorsPhone(tender.getPhone());
+                    }
+                    if (subPreNew.getLogicDeleteFlag()==null){
+                        subPreNew.setLogicDeleteFlag(0);
+                    }
                     subPreNewMapper.updateById(subPreNew);
                 } else {
+                    subPreNew.setSubId(subInfo.getId());
+                    subPreNew.setPreFlowId("16");
+                    subPreNew.setCreateTime(new Date());
+                    subPreNew.setFileAddre(tender.getFileUrl());
+                    subPreNew.setDatePlan(DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", tender.getSiteDate()));
+                    subPreNew.setDateConfirm(DateUtils.dateTime("yyyy-MM-dd HH:mm:ss", tender.getPublishDate()));
+                    subPreNew.setTransactors(tender.getUser());
+                    subPreNew.setTransactorsPhone(tender.getPhone());
+                    subPreNew.setLogicDeleteFlag(0);
+                    if (StringUtils.isNotEmpty(tender.getPublishDate())) {
+                        subPreNew.setStatusConf("2"); //废标后设置未办理
+                    }
+                    if (tender.getState().equals("2") || tender.getState().equals("3")) {
+                        subPreNew.setLogicDeleteFlag(1);
+                    }
                     subPreNewMapper.insert(subPreNew);
                 }
                 this.setSubInfoStatus(subInfo);