Bläddra i källkod

修复三单管理bug

sola 9 månader sedan
förälder
incheckning
2a54335e16

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

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Select;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * <p>
@@ -17,4 +18,11 @@ import java.util.List;
 public interface ZhcxPmqManagementMapDao extends BaseMapper<ZhcxPmqManagementMapDo> {
     @Select("SELECT * FROM ZHCX_PMQ_MANAGEMENT_MAP WHERE DELETED = '0'")
     List<ZhcxPmqManagementMapDo> getAllData();
+
+    @Select("SELECT * FROM ZHCX_PMQ_MANAGEMENT_MAP WHERE DELETED = '0' AND (DEPTID IS NOT NULL OR QCUSERID IS NOT NULL OR LABORATORYID IS NOT NULL)")
+    List<ZhcxPmqManagementMapDo> getAllMapdData();
+
+    @Select("SELECT * FROM ZHCX_PMQ_MANAGEMENT_MAP WHERE DELETED = '0' AND NXDEPTNAME = #{dept} AND NXQCUSERNAME = #{user}")
+    List<ZhcxPmqManagementMapDo> getDataByNXUserAndDept(Map<String, String> map);
+
 }

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

@@ -50,6 +50,7 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
 
         // 抽取NX系统数据
         List<ZhcxPmqManagementSourceDo> nxSystemData = sourceDao.getMockData();
+        newMapData(nxSystemData);
 
         for (ZhcxPmqManagementSourceDo row : nxSystemData) {
             // 将NX系统数据写入ZHCX_PMQ_MANAGEMENT_SOURCE表
@@ -62,9 +63,6 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
 //            sourceDao.insert(row);
         }
 
-        // 抽取映射表数据
-        List<ZhcxPmqManagementMapDo> pmqmMapList = mapDao.getAllData();
-
         // 获取所有用户
         List<Map<String, Object>> allUser = pmqmDao.getAllUser();
 
@@ -154,41 +152,27 @@ public class ZhcxPMQMServiceImpl implements ZhcxPMQMService {
         return res;
     }
 
-    /**
-     * 更新关闭状态
-     * @param id
-     */
-    void updateCloseStatusBySeq(String id) {
-        ZhcxPmqManagementDo row = managementDao.selectById(id);
-        Map<String, String> queryMap = new HashMap<>();
-        queryMap.put("pid", id);
-        List<ZhcxPmqManagementRecoredDo> list = recoredDao.getByPid(queryMap);
-        if (!list.isEmpty()) {
-            // 搜索最大的下发时间
-            Optional<ZhcxPmqManagementRecoredDo> maxEtimeObj = list.stream()
-                    .filter(obj -> obj.getDistributetime() != null) // 过滤掉etime为null的对象
-                    .max(Comparator.comparing(ZhcxPmqManagementRecoredDo::getDistributetime));
-            Date maxDistributetime = maxEtimeObj.map(ZhcxPmqManagementRecoredDo::getDistributetime).orElse(null);
-
-            for (ZhcxPmqManagementRecoredDo item : list) {
-                Date newDate = item.getDistributetime();
-                if (newDate.before(maxDistributetime)) {
-                    String closeStatusStr = item.getClosestatus();
-                    if (StringUtils.isBlank(closeStatusStr) || (StringUtils.isNotBlank(closeStatusStr) && closeStatusStr.equals("未关闭"))) {
-                        item.setClosestatus("NA");
-                        recoredDao.updateById(item);
-                    }
+    void newMapData(List<ZhcxPmqManagementSourceDo> nxSystemData) {
+        Date currentDate = new Date();
+        for (ZhcxPmqManagementSourceDo item : nxSystemData) {
+            String userName = item.getQcname();
+            String deptName = item.getDeptname();
+            Map<String, String> queryMap = new HashMap<>();
+            queryMap.put("user", userName);
+            queryMap.put("dept", deptName);
+            if (StringUtils.isNotBlank(deptName) && StringUtils.isNotBlank(userName)) {
+                List<ZhcxPmqManagementMapDo> list = mapDao.getDataByNXUserAndDept(queryMap);
+                if (list.isEmpty()) {
+                    ZhcxPmqManagementMapDo saveRow = new ZhcxPmqManagementMapDo();
+                    saveRow.setId(SecurityUtil.getUUID());
+                    saveRow.setDeleted("0");
+                    saveRow.setCreatedate(currentDate);
+                    saveRow.setModifydate(currentDate);
+                    saveRow.setNxqcusername(userName);
+                    saveRow.setNxdeptname(deptName);
+                    mapDao.insert(saveRow);
                 }
             }
-            List<ZhcxPmqManagementRecoredDo> closeList = list.stream().filter(
-                    obj -> StringUtils.isNotBlank(obj.getClosestatus()) && (obj.getClosestatus().equals("已关闭") || obj.getClosestatus().equals("NA"))
-            ).collect(Collectors.toList());
-            if (closeList.size() == list.size()) {
-                row.setClosestatus("已关闭");
-            } else {
-                row.setClosestatus("未关闭");
-            }
-            managementDao.updateById(row);
         }
     }