2 次代碼提交 2694e6afa4 ... a73fcb06f3

作者 SHA1 備註 提交日期
  Mr.Feng a73fcb06f3 同步数据代码修改 1 月之前
  Mr.Feng 885c13f678 同步数据代码修改 1 月之前

+ 12 - 4
ruoyi-admin/src/main/resources/application-druid.yml

@@ -6,16 +6,24 @@ spring:
         druid:
             # 主库数据源
             master:
-                url: jdbc:mysql://8.137.121.180:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+#                url: jdbc:mysql://8.137.121.180:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+#                url: jdbc:mysql://172.19.164.203:30306/subject_api?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8
+                url: jdbc:mysql://localhost:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
                 username: root
-                password: 287988448lp5421
+#                password: Hm13579!@#
+#                password: 287988448lp5421
+                password: 123456
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭
                 enabled: true
-                url: jdbc:mysql://139.155.7.62:3306/subject?useUnicode=true&useSSL=false&characterEncoding=UTF-8&autoReconnect=true
+#                url: jdbc:mysql://172.16.40.20:3306/subject?useUnicode=true&useSSL=false&characterEncoding=UTF-8&autoReconnect=true
+#                url: jdbc:mysql://139.155.7.62:3306/subject?useUnicode=true&useSSL=false&characterEncoding=UTF-8&autoReconnect=true
+                url: jdbc:mysql://localhost:3306/subject?useUnicode=true&useSSL=false&characterEncoding=UTF-8&autoReconnect=true
                 username: root
-                password: Chaoliu@0917!@#
+#                password: Hm13579!@#
+#                password: Chaoliu@0917!@#
+                password: 123456
             # 初始连接数
             initialSize: 5
             # 最小连接池数量

+ 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);
 }

+ 296 - 92
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;
@@ -157,26 +158,58 @@ public class SubInfoServiceImpl extends ServiceImpl<SubInfoMapper, SubInfo> impl
 
         if (lstSubInfo.size() > 0) {
             for (SubInfo subInfo : lstSubInfo) {
-                subInfo.setSubName(sub.getProjectname());
-                subInfo.setSubCode(sub.getProjectid());
-                subInfo.setIndusKind(kind.getId());
-                subInfo.setContent(sub.getConstructionscale());
-                subInfo.setSubjectId(addressVist.getSysId());
-                subInfo.setBeginDate(sub.getStarttime());
-                subInfo.setEndDate(sub.getEndtime());
-                subInfo.setUnitId(unit.getId());
-                subInfo.setKindNature(sub.getZjlx());
-                subInfo.setNameZrr(sub.getAgename());
-                subInfo.setNameLead(sub.getPagename());
-                subInfo.setCreateTime(sub.getCreatetime());
-                subInfo.setTelLead(sub.getAgephone());
-                subInfo.setTel(sub.getAgemobile());
-                subInfo.setReason(sub.getCbsnum());
-                subInfo.setAmtTotal(sub.getGrossinvestment());
-                subInfo.setLastUpdateTime(new Date());
-                if (sub.getStatu().equals("2")) {
-                    subInfo.setLogicDeleteFlag(1);
+                if(StringUtils.isEmpty(subInfo.getSubName())) {
+                    subInfo.setSubName(sub.getProjectname());
+                }
+                if(StringUtils.isEmpty(subInfo.getSubCode())) {
+                    subInfo.setSubCode(sub.getProjectid());
+                }
+                if(StringUtils.isEmpty(subInfo.getIndusKind())) {
+                    subInfo.setIndusKind(kind.getId());
+                }
+                if(StringUtils.isEmpty(subInfo.getContent())) {
+                    subInfo.setContent(sub.getConstructionscale());
+                }
+                if(StringUtils.isEmpty(subInfo.getSubjectId())) {
+                    subInfo.setSubjectId(addressVist.getSysId());
+                }
+                if(subInfo.getBeginDate()==null) {
+                    subInfo.setBeginDate(sub.getStarttime());
+                }
+                if(subInfo.getEndDate()==null) {
+                    subInfo.setEndDate(sub.getEndtime());
+                }
+                if(StringUtils.isEmpty(subInfo.getUnitId())) {
+                    subInfo.setUnitId(unit.getId());
+                }
+                if(StringUtils.isEmpty(subInfo.getKindNature())) {
+                    subInfo.setKindNature(sub.getZjlx());
+                }
+                if(StringUtils.isEmpty(subInfo.getNameZrr())) {
+                    subInfo.setNameZrr(sub.getAgename());
+                }
+                if(StringUtils.isEmpty(subInfo.getNameLead())) {
+                    subInfo.setNameLead(sub.getPagename());
+                }
+                if(subInfo.getCreateTime()==null) {
+                    subInfo.setCreateTime(sub.getCreatetime());
                 }
+                if(StringUtils.isEmpty(subInfo.getTelLead())) {
+                    subInfo.setTelLead(sub.getAgephone());
+                }
+                if(StringUtils.isEmpty(subInfo.getTel())) {
+                    subInfo.setTel(sub.getAgemobile());
+                }
+                if(StringUtils.isEmpty(subInfo.getReason())) {
+                    subInfo.setReason(sub.getCbsnum());
+                }
+                if(subInfo.getAmtTotal()==null) {
+                    subInfo.setAmtTotal(sub.getGrossinvestment());
+                }
+                subInfo.setLastUpdateTime(new Date());
+//                if (sub.getStatu().equals("2")) {
+//                    subInfo.setLogicDeleteFlag(1);
+//                }
                 subInfoMapper.updateById(subInfo);
                 if (!this.hanlderResouce(sub, subInfo, map)) {
                     return false;
@@ -265,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);
                         }
                     }
                 }
@@ -335,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");
@@ -352,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();
@@ -388,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);
@@ -479,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);
@@ -622,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());
@@ -651,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);