Browse Source

河南郸城调度计划 详情接口内容增加与代码优化

1037015548@qq.com 11 months ago
parent
commit
c70f49b6a1

+ 15 - 2
src/main/java/com/shkpr/service/aimodelpower/bizmgr/WODispatchPlanTmDoBizFun.java

@@ -12,9 +12,11 @@ import com.shkpr.service.aimodelpower.components.locks.WODispatchPlanLockMgr;
 import com.shkpr.service.aimodelpower.constants.CommFieldStatus;
 import com.shkpr.service.aimodelpower.constants.TaskQueueDataTypeEx;
 import com.shkpr.service.aimodelpower.dbdao.DBMgrProxy;
+import com.shkpr.service.aimodelpower.dbdao.services.intef.WODispatchCmdBatchItemDBService;
 import com.shkpr.service.aimodelpower.dbdao.services.intef.WODispatchPlanDBService;
 import com.shkpr.service.aimodelpower.dbdao.tables.WODispatchPlanInfoTable;
 import com.shkpr.service.aimodelpower.dto.*;
+import com.shkpr.service.aimodelpower.dto.woDispatchPlanModel.DispatchCmdBatchItemModel;
 import com.shkpr.service.aimodelpower.dto.woDispatchPlanModel.DispatchPlanInfoDetailsModel;
 import com.shkpr.service.aimodelpower.dto.woDispatchPlanModel.DispatchPlanInfoModel;
 import com.shkpr.service.aimodelpower.dto.woDispatchPlanModel.DispatchPlanInfoSSModel;
@@ -41,6 +43,7 @@ public class WODispatchPlanTmDoBizFun {
     private final static  String MSG_SUCCESS = "success.";
 
     private static WODispatchPlanDBService getThisDBService(){ return DBMgrProxy.getInstance().applyWODispatchPlanApi();}
+    private static WODispatchCmdBatchItemDBService getItemDBService(){ return DBMgrProxy.getInstance().applyWODispatchItemApi();}
 
     public static ResponseCode produceCmd(String planId, long checkTm){
         ResponseCode code = ResponseCode.RESULT_BAD;
@@ -204,9 +207,19 @@ public class WODispatchPlanTmDoBizFun {
         try{
             Map<String,Object> map = getThisDBService().viewInfo("","",oJsonParam.getPlanId());
             if(map!=null){
-                oRes.setResdata(FastJsonUtil.toJSON(
-                        FastJsonUtil.map2Obj(map,DispatchPlanInfoDetailsModel.class,true)));
+                DispatchPlanInfoDetailsModel model = FastJsonUtil.map2Obj(map,DispatchPlanInfoDetailsModel.class,true);
+
+                //TODO 查询相关联的排班项信息
+                Map<String,Object> andWheres = new HashMap<>();
+                andWheres.put("plan_id",oJsonParam.getPlanId());
+                List<DispatchCmdBatchItemModel> itemModels = getItemDBService().listAllWithsExByDispoal("","",1,0
+                        ,andWheres,new HashMap<>(),"handle_start_time","");
+
+                model.setItemModels(itemModels);
+
+                oRes.setResdata(FastJsonUtil.toJSON(model));
             }
+
             oRes.setRescode(ResponseCode.RESULT_NORMAL.toStrCode());
             oRes.setResmsg(ResponseCode.RESULT_NORMAL.toStrMsg());
             return oRes;

+ 4 - 0
src/main/java/com/shkpr/service/aimodelpower/dbdao/DBMgrProxy.java

@@ -14,6 +14,7 @@ public class DBMgrProxy {
     private volatile TypeDefineDBService typeDefineDBService = null;
     private volatile TestGeomInfoDBService testGeomInfoDBService = null;
     private volatile WODispatchPlanDBService woDispatchPlanDBService = null;
+    private volatile WODispatchCmdBatchItemDBService woDispatchCmdBatchItemDBService = null;
 
     //TODO 其他数据源
     private volatile WaterTapWaterService waterTapWaterService = null;
@@ -52,6 +53,8 @@ public class DBMgrProxy {
             waterCollecationService = (WaterCollecationService)SpringContextUtil.getBean(WaterCollecationService.class);
         if (woDispatchPlanDBService == null)
             woDispatchPlanDBService = (WODispatchPlanDBService)SpringContextUtil.getBean(WODispatchPlanDBService.class);
+        if (woDispatchCmdBatchItemDBService == null)
+            woDispatchCmdBatchItemDBService = (WODispatchCmdBatchItemDBService) SpringContextUtil.getBean(WODispatchCmdBatchItemDBService.class);
     }
 
     public RolePowerDBService applyRolePowerApi() {return rolePowerDBService;}
@@ -73,4 +76,5 @@ public class DBMgrProxy {
     public WaterCollecationService applyWaterCollecationService() {return  waterCollecationService;}
 
     public WODispatchPlanDBService applyWODispatchPlanApi() {return woDispatchPlanDBService;}
+    public WODispatchCmdBatchItemDBService applyWODispatchItemApi() {return woDispatchCmdBatchItemDBService;}
 }

+ 98 - 0
src/main/java/com/shkpr/service/aimodelpower/dbdao/services/WODispatchCmdBatchItemDBServiceImpl.java

@@ -0,0 +1,98 @@
+package com.shkpr.service.aimodelpower.dbdao.services;
+
+import com.global.base.log.LogLevelFlag;
+import com.global.base.log.LogPrintMgr;
+import com.global.base.tools.FastJsonUtil;
+import com.shkpr.service.aimodelpower.commtools.CommTool;
+import com.shkpr.service.aimodelpower.constants.LogFlagBusiType;
+import com.shkpr.service.aimodelpower.dbdao.mapper.WODispatchCmdPatchDisposalMapper;
+import com.shkpr.service.aimodelpower.dbdao.mapper.WODispatchCmdPatchItemMapper;
+import com.shkpr.service.aimodelpower.dbdao.services.intef.WODispatchCmdBatchItemDBService;
+import com.shkpr.service.aimodelpower.dbdao.tables.WODispatchCmdPatchItemTable;
+import com.shkpr.service.aimodelpower.dto.woDispatchPlanModel.DispatchCmdBatchDispoalModel;
+import com.shkpr.service.aimodelpower.dto.woDispatchPlanModel.DispatchCmdBatchItemModel;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName WODispatchCmdBatchItemDBServiceImpl
+ * @Description: TODO
+ * @Author LX
+ * @Date 2024/7/9
+ * @Version V1.0
+ **/
+@Service
+public class WODispatchCmdBatchItemDBServiceImpl implements WODispatchCmdBatchItemDBService,WODispatchCmdPatchItemTable {
+
+    private String mStrClassName = "";
+    private String mBusinessType = "";
+    private String logTag = "";
+    public WODispatchCmdBatchItemDBServiceImpl() {
+        mStrClassName = this.getClass().getSimpleName();
+        mBusinessType = LogFlagBusiType.BUSI_DB_WO_DISPATCH_PLAN.toStrValue();
+        logTag = "WO Dispatch Cmd Batch Item";
+    }
+
+    @SuppressWarnings("all")
+    @Autowired
+    WODispatchCmdPatchItemMapper woDispatchCmdPatchItemMapper;
+
+    @SuppressWarnings("all")
+    @Autowired
+    WODispatchCmdPatchDisposalMapper woDispatchCmdPatchDisposalMapper;
+
+    @Override
+    public List<DispatchCmdBatchItemModel> listAllWithsExByDispoal(String table, String filed, int limit, int offset, Map<String, Object> andWheres, Map<String, Object> orWheres, String orderBy, String extend) {
+        int nCode = 0;
+        String strMsg = "Success";
+        List<Map<String, Object>> arrRes = null;
+        List<DispatchCmdBatchItemModel> newArrRes = null;
+        try {
+            arrRes = woDispatchCmdPatchItemMapper.listAllWiths(table, filed, limit, offset, andWheres, orWheres, orderBy, extend);
+
+            if(!CollectionUtils.isEmpty(arrRes)){
+                newArrRes = new ArrayList<>();
+                for (int i = 0; i < arrRes.size(); i++) {
+                    DispatchCmdBatchItemModel dispatchCmdBatchItemModel = FastJsonUtil.map2Obj(arrRes.get(0),DispatchCmdBatchItemModel.class,true);
+
+                    //查询相关联的处置建议
+                    Map<String,Object> queryMap = new HashMap<>();
+                    queryMap.put(R_INFO.PRIMARY_KEY,arrRes.get(i).get(R_INFO.PRIMARY_KEY));
+                    List<Map<String,Object>> disposalMapList = woDispatchCmdPatchDisposalMapper.listAllWiths("","",1,0,queryMap,new HashMap<>(),"","");
+                    List<DispatchCmdBatchDispoalModel> dispoalModels = new ArrayList<>();
+                    if(!CollectionUtils.isEmpty(disposalMapList)){
+                        dispoalModels = FastJsonUtil.batchMap2Obj(disposalMapList,DispatchCmdBatchDispoalModel.class,true);
+                    }
+                    dispatchCmdBatchItemModel.setDispoalModels(dispoalModels);
+                    newArrRes.add(dispatchCmdBatchItemModel);
+                }
+            }
+            return newArrRes;
+        }catch (Exception e){
+            nCode = LogLevelFlag.LOG_ERROR.ordinal();
+            strMsg = e.getLocalizedMessage();
+        }finally {
+            LogPrintMgr.getInstance().printLogMsg(LogLevelFlag.valueFromInt(nCode)
+                    , mBusinessType
+                    , mStrClassName
+                    , String.format("List All %s lines(limit=%d, offset=%d, orderBy=%s, back.size=%d) from database, code:{%d} msg:{%s} ..."
+                            , logTag
+                            , limit, offset
+                            , orderBy
+                            , CommTool.listSize(arrRes)
+                            , nCode, strMsg));
+        }
+        return newArrRes;
+    }
+
+    @Override
+    public int totalCountsEx(String table, Map<String, Object> andWheres, Map<String, Object> orWheres, String extend) {
+        return 0;
+    }
+}

+ 31 - 0
src/main/java/com/shkpr/service/aimodelpower/dbdao/services/intef/WODispatchCmdBatchItemDBService.java

@@ -0,0 +1,31 @@
+package com.shkpr.service.aimodelpower.dbdao.services.intef;
+
+import com.shkpr.service.aimodelpower.dto.woDispatchPlanModel.DispatchCmdBatchItemModel;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName WODispatchCmdBatchItemDBService
+ * @Description: TODO
+ * @Author LX
+ * @Date 2024/7/9
+ * @Version V1.0
+ **/
+public interface WODispatchCmdBatchItemDBService {
+
+    List<DispatchCmdBatchItemModel> listAllWithsExByDispoal(String table, String filed
+            , int limit
+            , int offset
+            , Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String orderBy
+            , String extend);
+
+
+    int totalCountsEx(String table
+            , Map<String, Object> andWheres
+            , Map<String, Object> orWheres
+            , String extend);
+
+}

+ 1 - 1
src/main/java/com/shkpr/service/aimodelpower/dbdao/tables/WODispatchCmdPatchDisposalTable.java

@@ -2,7 +2,7 @@ package com.shkpr.service.aimodelpower.dbdao.tables;
 
 public interface WODispatchCmdPatchDisposalTable {
     interface R_INFO{
-        String TABLE = "";
+        String TABLE = "k4_wo_dispatch_cmd_batch_disposal";
         String PRIMARY_KEY = "key";
         String ALL_FILED = "*";
         String UNIQUE_ID = "key";

+ 1 - 1
src/main/java/com/shkpr/service/aimodelpower/dbdao/tables/WODispatchCmdPatchItemTable.java

@@ -2,7 +2,7 @@ package com.shkpr.service.aimodelpower.dbdao.tables;
 
 public interface WODispatchCmdPatchItemTable {
     interface R_INFO{
-        String TABLE = "";
+        String TABLE = "k4_wo_dispatch_cmd_batch_item";
         String PRIMARY_KEY = "batch_item_id";
         String ALL_FILED = "*";
         String UNIQUE_ID = "batch_item_id";

+ 5 - 5
src/main/java/com/shkpr/service/aimodelpower/dto/woDispatchPlanModel/DispatchCmdBatchDispoal.java

@@ -3,18 +3,18 @@ package com.shkpr.service.aimodelpower.dto.woDispatchPlanModel;
 import lombok.Data;
 
 /**
- * @ClassName DispatchCmdBatchDispoal
+ * @ClassName DispatchCmdBatchDispoalModel
  * @Description: TODO
  * @Author LX
  * @Date 2024/6/28
  * @Version V1.0
  **/
 @Data
-public class DispatchCmdBatchDispoal {
-    private String disposalId;//处置建议_id
+public class DispatchCmdBatchDispoalModel {
+    private String key;//处置建议_id
     private String batchItemId;//排班id
-    private String createTime;//数据创建时间
-    private String updateTime;//数据修改时间
+    private long createTime;//数据创建时间
+    private long updateTime;//数据修改时间
     private String data;//处置内容
     private String did;//处置建议id(如存分区或站点id)
     private String dname;//工单关心以及需要存储的事情(如存处置对象名称)

+ 6 - 3
src/main/java/com/shkpr/service/aimodelpower/dto/woDispatchPlanModel/DispatchCmdBatchItemModel.java

@@ -2,6 +2,7 @@ package com.shkpr.service.aimodelpower.dto.woDispatchPlanModel;
 
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -13,13 +14,15 @@ import java.util.List;
  **/
 @Data
 public class DispatchCmdBatchItemModel {
-    private String batchItem_id;//批次项id
+    private String batchItemId;//批次项id
     private String planId;//所属计划id
     private String headUserId;//指定负责人uid
     private String handleStartTime;//指定处理有效起始时间(HH:mm:ss) 日期为计划的预计开始时间
     private String handleEndTime;//指定处理有效截止时间(HH:mm:ss) 日期为计划的预计开始时间
-    private String createTime;//数据创建时间
-    private String updateTime;//数据修改时间
+    private long createTime;//数据创建时间
+    private long updateTime;//数据修改时间
     private String handleAddress;//处置实际地址
     private String gis;//处置地址gis坐标
+
+    private List<DispatchCmdBatchDispoalModel> dispoalModels = new ArrayList<>();
 }

+ 3 - 0
src/main/java/com/shkpr/service/aimodelpower/dto/woDispatchPlanModel/DispatchPlanInfoDetailsModel.java

@@ -5,6 +5,7 @@ import com.shkpr.service.aimodelpower.jsonbean.woDispatchPlan.JPDispatchPlanInfo
 import com.shkpr.service.aimodelpower.jsonbean.woDispatchPlan.JPDispatchPlanInfoTagsSave;
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -30,4 +31,6 @@ public class DispatchPlanInfoDetailsModel {
     private String zoneId;
     private String zoneType;
 
+    private List<DispatchCmdBatchItemModel> itemModels = new ArrayList<>();
+
 }

+ 1 - 1
src/main/java/com/shkpr/service/aimodelpower/jsonbean/woDispatchPlan/JPDispatchCmdBatchDispoal.java

@@ -6,7 +6,7 @@ import org.springframework.util.StringUtils;
 import java.io.Serializable;
 
 /**
- * @ClassName DispatchCmdBatchDispoal
+ * @ClassName DispatchCmdBatchDispoalModel
  * @Description: TODO
  * @Author LX
  * @Date 2024/6/28

+ 27 - 0
src/main/java/com/shkpr/service/aimodelpower/jsonbean/woDispatchPlan/JPDispatchPlanInfoRuleUpdate.java

@@ -0,0 +1,27 @@
+package com.shkpr.service.aimodelpower.jsonbean.woDispatchPlan;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName DispatchPlanInfoRuleModel
+ * @Description: TODO 计划的智能匹配规则修改
+ * @Author LX
+ * @Date 2024/6/28
+ * @Version V1.0
+ **/
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class JPDispatchPlanInfoRuleUpdate extends JPDispatchPlanInfoRuleSave implements Serializable{
+
+//   private String updateTime;//创建/修改时间
+
+   private String planId;
+
+   public boolean checkValid(){
+      return true;
+   }
+
+}

+ 35 - 0
src/main/java/com/shkpr/service/aimodelpower/jsonbean/woDispatchPlan/JPDispatchPlanInfoTagsUpdate.java

@@ -0,0 +1,35 @@
+package com.shkpr.service.aimodelpower.jsonbean.woDispatchPlan;
+
+import lombok.Data;
+import org.springframework.util.StringUtils;
+
+import java.io.Serializable;
+
+/**
+ * @ClassName DispatchPlanInfoRuleModel
+ * @Description: TODO 计划附加标签项
+ * @Author LX
+ * @Date 2024/6/28
+ * @Version V1.0
+ **/
+@Data
+public class JPDispatchPlanInfoTagsUpdate implements Serializable {
+
+   private String planId;//计划id,如果不为空则要查询planId和key是否存在,存在就修改, 不存在就新增
+   private String key;//附加标签标识符
+   private String data;//附加标签值
+   private Integer ifDel=0;//是否删除 0 否 1是
+
+   public boolean checkValid(){
+      if(StringUtils.isEmpty(planId)){
+         return false;
+      }
+      if(StringUtils.isEmpty(key)){
+         return false;
+      }
+      if(StringUtils.isEmpty(data)){
+         return false;
+      }
+      return true;
+   }
+}

+ 1 - 1
src/main/java/com/shkpr/service/aimodelpower/jsonbean/woDispatchPlan/JPDispatchPlanInfoUpdate.java

@@ -103,7 +103,7 @@ public class JPDispatchPlanInfoUpdate {
 
     //TODO 相关关联子对象参数
     //① 计划相关触发规则
-    private List<JPDispatchPlanInfoRuleSave> rulesList;
+    private List<JPDispatchPlanInfoRuleUpdate> rulesList;
     //② 计划附加标签项
     private List<JPDispatchPlanInfoTagsSave> tagsList;
     //③ 排班班次项