Explorar el Código

三单同步数据接口逻辑修改

wangxuan hace 8 meses
padre
commit
5278e32945

+ 2 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPMQMDao.java

@@ -13,4 +13,6 @@ public interface ZhcxPMQMDao {
     @Select("SELECT PROJECT_CODE FROM ZHCX_PROJECT_MANAGE WHERE DELETED = '0' AND PROJECT_CODE IS NOT NULL")
     List<Map<String, Object>> getAllProjectCode();
 
+    @Select("select a.PROJECT_CODE from INCONTROL.ZHCX_PROJECT_MANAGE a WHERE a.PROPERTIES = '长兴基地项目' AND DELETED = '0' AND STATUS = '在制'")
+    List<String> getAllProjectCodeInZz();
 }

+ 16 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementLogDao.java

@@ -0,0 +1,16 @@
+package com.rongwei.bscommon.sys.dao;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementLogDo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * 三单管理_操作日志 Mapper 接口
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-22
+ */
+public interface ZhcxPmqManagementLogDao extends BaseMapper<ZhcxPmqManagementLogDo> {
+
+}

+ 2 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementMapDao.java

@@ -25,4 +25,6 @@ public interface ZhcxPmqManagementMapDao extends BaseMapper<ZhcxPmqManagementMap
     @Select("SELECT * FROM ZHCX_PMQ_MANAGEMENT_MAP WHERE DELETED = '0' AND NXDEPTNAME = #{dept} AND NXQCUSERNAME = #{user}")
     List<ZhcxPmqManagementMapDo> getDataByNXUserAndDept(Map<String, String> map);
 
+    @Select("SELECT * FROM ZHCX_PMQ_MANAGEMENT_MAP WHERE DELETED = '0' AND NXDEPTNAME = #{dept}")
+    List<ZhcxPmqManagementMapDo> getDataByNXUserAndDept2(Map<String, String> map);
 }

+ 4 - 1
business-common/src/main/java/com/rongwei/bscommon/sys/dao/ZhcxPmqManagementSourceDao.java

@@ -21,6 +21,9 @@ public interface ZhcxPmqManagementSourceDao extends BaseMapper<ZhcxPmqManagement
     @Select("SELECT * FROM ZHCX_PMQ_MANAGEMENT_SOURCE WHERE DELETED = '0' AND DISTRIBUTETIME > #{maxtime} ORDER BY ORDERNO ASC")
     List<ZhcxPmqManagementSourceDo> getMockData(Map<String, String> map);
 
-    @Update("UPDATE ZHCX_PMQ_MANAGEMENT t1 SET t1.PROJECTID = (SELECT t2.ID FROM ZHCX_PROJECT_MANAGE t2 WHERE t2.PROJECT_CODE = t1.PROJECTNO) WHERE t1.PROJECTID IS NULL")
+    /**
+     * 根据项目编号全量更新
+     */
+    @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();
 }

+ 16 - 0
business-common/src/main/java/com/rongwei/bscommon/sys/service/ZhcxPmqManagementLogService.java

@@ -0,0 +1,16 @@
+package com.rongwei.bscommon.sys.service;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementLogDo;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+/**
+ * <p>
+ * 三单管理_操作日志 服务类
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-22
+ */
+public interface ZhcxPmqManagementLogService extends IService<ZhcxPmqManagementLogDo> {
+
+}

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

@@ -113,6 +113,8 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
                 // 编号已存在则更新最近下发时间
                 ZhcxPmqManagementDo saveRow = queryParentRows.get(0);
                 saveRow.setDistributetime(maxDistributetime);
+                // 更新关闭状态
+                saveRow.setClosestatus("未关闭");
                 managementDao.updateById(saveRow);
             }
 
@@ -171,7 +173,8 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
             queryMap.put("user", userName);
             queryMap.put("dept", deptName);
             if (StringUtils.isNotBlank(deptName) && StringUtils.isNotBlank(userName)) {
-                List<ZhcxPmqManagementMapDo> list = mapDao.getDataByNXUserAndDept(queryMap);
+                //List<ZhcxPmqManagementMapDo> list = mapDao.getDataByNXUserAndDept(queryMap);
+                List<ZhcxPmqManagementMapDo> list = mapDao.getDataByNXUserAndDept2(queryMap);
                 if (list.isEmpty()) {
                     ZhcxPmqManagementMapDo saveRow = new ZhcxPmqManagementMapDo();
                     saveRow.setId(SecurityUtil.getUUID());
@@ -216,10 +219,12 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
                 .collect(Collectors.toSet());
         List<ZhcxPmqManagementRecoredDo> tempList1 = recoredDao.getMaxDatetime();
         //String maxTime = "2024-07-01 10:01:01";
-        String maxTime = "2024-11-11 00:01:01";
+        String maxTime = "2021-01-10 00:01:01";
         if (!tempList1.isEmpty() && tempList1.get(0) != null && tempList1.get(0).getDistributetime() != null) {
             maxTime = DateFormatUtils.format(tempList1.get(0).getDistributetime(), "yyyy-MM-dd HH:mm:ss");
         }
+        // 查找本项目下 所有项目性质是长兴基地项目和项目状态为在制 的项目工号
+        List<String> projectNo = zhcxPMQMDao.getAllProjectCodeInZz();
         List<ZhcxPmqManagementSourceDo> list = new ArrayList<>();
         String url ="jdbc:sqlserver://"+nxurl+":1433;databaseName="+nxdbname+";"+nxurlfix+"";
         log.info("三单连接字符串" + url);
@@ -228,9 +233,10 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
         try(Connection connection = DriverManager.getConnection(url,nxdbuser,nxdbpw);
             Statement statement = connection.createStatement()) {
             log.info("开启连接三单");
+            String projectNoStr = String.join(",", projectNo.stream().map(pn -> "'" + pn + "'").collect(Collectors.toList()));
             //String sqlStr = "SELECT TOP (300) * FROM JUV1841 WHERE 下发日期 > '"+maxTime+"'";
-            String sqlStr = "SELECT * FROM JUV1841 WHERE 下发日期 > '"+maxTime+"'";
-            log.info("三单连接SQL" + sqlStr);
+            String sqlStr = "SELECT * FROM JUV1841 WHERE 下发日期 > '"+maxTime+"' and 项目工号 in (" + projectNoStr+ ") ";
+            log.info("三单连接SQL:" + sqlStr);
             try(ResultSet resultSet = statement.executeQuery(sqlStr)) {
                 while (resultSet.next()) {
                     ZhcxPmqManagementSourceDo entity = new ZhcxPmqManagementSourceDo();
@@ -267,7 +273,7 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
 
             e2.printStackTrace();
     }
-
+    log.info("三单数据数量:{}",list.size());
     return list;
     }
 }

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

@@ -103,18 +103,19 @@ public class ZhcxPmqManagementDistributionServiceImpl extends ServiceImpl<ZhcxPm
         if(!updateList.isEmpty()){
             detailService.updateBatchById(updateList);
         }
-        // 可能会涉及到改派 TODO
-        //dispatchTochange(pid,baseList);
+        List<ZhcxPmqManagementDistributionDetailDo> resultList = new ArrayList<>();
+        resultList.addAll(addList);
+        resultList.addAll(updateList);
+        // 拿到第三层子表的id
+        List<String> detailIds = resultList.stream().map(ZhcxPmqManagementDistributionDetailDo::getId).collect(Collectors.toList());
+        // 可能会涉及到改派 TODO 未写完
+        // dispatchTochange(pid,detailIds);
         // 更新第二层的派单状态
         baseMapper.updateDispatchStatus(pid);
         return R.ok("派单成功");
     }
 
-    private void dispatchTochange(String pid,List<ZhcxPmqManagementDistributionDo> baseList){
-        // baseList -> List<confirmerid>
-        List<String> confirmerids = baseList.stream().
-                map(ZhcxPmqManagementDistributionDo::getConfirmerid)
-                .collect(Collectors.toList());
+    private void dispatchTochange(String pid,List<String> baseList){
         LambdaQueryWrapper<ZhcxPmqManagementDistributionDetailDo> queryWrapper = new LambdaQueryWrapper<>();
         queryWrapper.eq(ZhcxPmqManagementDistributionDetailDo::getDeleted,"0")
                 .eq(ZhcxPmqManagementDistributionDetailDo::getPid,pid);
@@ -122,9 +123,9 @@ public class ZhcxPmqManagementDistributionServiceImpl extends ServiceImpl<ZhcxPm
         // 需要删除的数据集合
         List<ZhcxPmqManagementDistributionDetailDo> resultList = new ArrayList<>();
         if(!detailDos.isEmpty()){
-            // 证明有改派的数据,找出改派的数据然后删了 TODO xuan 这根据人的id判断不准确
+            // 证明有改派的数据,找出改派的数据然后删了
             for (ZhcxPmqManagementDistributionDetailDo detailDo : detailDos) {
-                if (!confirmerids.contains(detailDo.getDistributid())) {
+                if (!baseList.contains(detailDo.getId())) {
                     // 如果在confirmerids里面,
                     detailDo.setDeleted("1"); // 伪删
                     detailDo.setRemark("改派删除");

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

@@ -0,0 +1,20 @@
+package com.rongwei.bscommon.sys.service.impl;
+
+import com.rongwei.bsentity.domain.ZhcxPmqManagementLogDo;
+import com.rongwei.bscommon.sys.dao.ZhcxPmqManagementLogDao;
+import com.rongwei.bscommon.sys.service.ZhcxPmqManagementLogService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 三单管理_操作日志 服务实现类
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-22
+ */
+@Service
+public class ZhcxPmqManagementLogServiceImpl extends ServiceImpl<ZhcxPmqManagementLogDao, ZhcxPmqManagementLogDo> implements ZhcxPmqManagementLogService {
+
+}

+ 89 - 0
business-entity/src/main/java/com/rongwei/bsentity/domain/ZhcxPmqManagementLogDo.java

@@ -0,0 +1,89 @@
+package com.rongwei.bsentity.domain;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.rongwei.rwcommon.base.BaseDo;
+import java.util.Date;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+/**
+ * <p>
+ * 三单管理_操作日志
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-22
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@Accessors(chain = true)
+@TableName("ZHCX_PMQ_MANAGEMENT_LOG")
+public class ZhcxPmqManagementLogDo extends BaseDo {
+
+    private static final long serialVersionUID=1L;
+
+    /**
+     * 主键
+     */
+    @TableField("ID")
+    private String id;
+    /**
+     * 租户id
+     */
+    @TableField("TENANTID")
+    private String tenantid;
+    /**
+     * 扩展json
+     */
+    @TableField("ROPTION")
+    private String roption;
+    /**
+     * 操作人
+     */
+    @TableField("OPERATOR")
+    private String operator;
+    /**
+     * 操作人id
+     */
+    @TableField("OPERATORID")
+    private String operatorid;
+    /**
+     * 操作类型
+     */
+    @TableField("OPERATIONTYPE")
+    private String operationtype;
+    /**
+     * 操作时间
+     */
+    @TableField("OPERATIONTIME")
+    private Date operationtime;
+    /**
+     * 操作描述
+     */
+    @TableField("DESCRIPTION")
+    private String description;
+    /**
+     * 主表id
+     */
+    @TableField("PMQMID")
+    private String pmqmid;
+    /**
+     * 第二层表id
+     */
+    @TableField("RECOREDID")
+    private String recoredid;
+    /**
+     * 第2.5层id
+     */
+    @TableField("DISTRIBUTIONID")
+    private String distributionid;
+    /**
+     * 执行表id(第三层表id)
+     */
+    @TableField("DETAILID")
+    private String detailid;
+
+
+}

+ 2 - 2
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPMQMController.java

@@ -41,8 +41,8 @@ public class ZhcxPMQMController {
         return R.ok(list);
     }
 
-    @GetMapping("/gdfnx")
-    @ApiOperation("获取NX系统的三单数据")
+    @PostMapping("/gdfnxTest")
+    @ApiOperation("获取NX系统的三单数据(测试)")
     public R getDataFromNXTest() {
         List<ZhcxPmqManagementSource> list = SqlServerJdbcUtils.queryZHCXPMQMANAGEMENTSOURCEDataPRO();
         for (ZhcxPmqManagementSource zhcxPmqManagementSource : list) {

+ 20 - 0
business-server/src/main/java/com/rongwei/bsserver/controller/ZhcxPmqManagementLogController.java

@@ -0,0 +1,20 @@
+package com.rongwei.bsserver.controller;
+
+
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * <p>
+ * 三单管理_操作日志 前端控制器
+ * </p>
+ *
+ * @author xuan
+ * @since 2024-11-22
+ */
+@RestController
+@RequestMapping("/zhcxPmqManagementLog")
+public class ZhcxPmqManagementLogController {
+
+}
+