Prechádzať zdrojové kódy

后勤接口代码优化

yangbq 2 mesiacov pred
rodič
commit
570d441336

+ 10 - 4
project-zcustom/src/main/java/com/project/zcustom/domain/basics/PlatAppOrg.java

@@ -40,28 +40,34 @@ public class PlatAppOrg extends CustomBaseEntity {
     /**
      * 地区编码
      */
-    @Excel(name = "地区编码")
     @ApiModelProperty("地区编码")
     private String appOrg;
 
     /**
+     * 地区编码(后勤资产)
+     */
+    private String appCode;
+
+    /**
+     * 地区编码(公务用车)
+     */
+    private String appEncode;
+
+    /**
      * 父地区编码
      */
-    @Excel(name = "父地区编码")
     @ApiModelProperty("父地区编码")
     private String appParentOrg;
 
     /**
      * 地区名称
      */
-    @Excel(name = "地区名称")
     @ApiModelProperty("地区名称")
     private String appName;
 
     /**
      * 接入标志
      */
-    @Excel(name = "接入标志")
     @ApiModelProperty("接入标志")
     private String connectFlag;
 

+ 6 - 0
project-zcustom/src/main/java/com/project/zcustom/service/basics/IPlatAppOrgService.java

@@ -98,4 +98,10 @@ public interface IPlatAppOrgService extends IService<PlatAppOrg> {
     public List<PlatAppOrg> getAllCameraCondition();
 
     public PlatAppOrg getCameraConditionByAppOrg(String appOrg);
+
+    /**
+     * 查询后勤资产 部门编码
+     * @return
+     */
+    List<PlatAppOrg> selectAppCodeList();
 }

+ 12 - 0
project-zcustom/src/main/java/com/project/zcustom/service/basics/impl/PlatAppOrgServiceImpl.java

@@ -221,4 +221,16 @@ public class PlatAppOrgServiceImpl extends ServiceImpl<PlatAppOrgMapper, PlatApp
     public PlatAppOrg getCameraConditionByAppOrg(String appOrg){
         return platAppOrgMapper.getCameraConditionByAppOrg(appOrg);
     }
+
+    @Override
+    public List<PlatAppOrg> selectAppCodeList() {
+        LambdaQueryWrapper<PlatAppOrg> lqw = new LambdaQueryWrapper<PlatAppOrg>();
+        lqw.select(
+                PlatAppOrg::getId,
+                PlatAppOrg::getAppCode,
+                PlatAppOrg::getAppName
+        );
+        lqw.isNotNull(PlatAppOrg::getAppCode);
+        return this.list(lqw);
+    }
 }

+ 1 - 7
project-zcustom/src/main/java/com/project/zcustom/tools/GuaranteeService.java

@@ -23,7 +23,7 @@ import java.util.Objects;
 
 
 /**
- * 数据获取
+ *  后勤服务保障中心
  *
  * @author change
  * @date 2024-10-21
@@ -54,7 +54,6 @@ public class GuaranteeService {
      */
     public void getServiceData(String appOrg, String appName) {
         String url = ApiUrlConfig.getServiceUrl();
-        System.out.printf("------------服务保障中心:%s", url);
         JSONObject params = new JSONObject();
         params.put("appOrg", appOrg);
         String result = HttpUtils.sendPost(url, params.toJSONString());
@@ -65,7 +64,6 @@ public class GuaranteeService {
         platApiRecord.setAppOrg(appOrg);
         iPlatApiRecordService.save(platApiRecord);
 
-        System.out.printf("------------接口返回:%s", result);
         if (StringUtils.isNotBlank(result)) {
             Map<String, Object> resultMap = JSONObject.parseObject(result, Map.class);
             if (Objects.equals(resultMap.get("code").toString(), "200") && resultMap.containsKey("entity")) {
@@ -101,8 +99,4 @@ public class GuaranteeService {
         }
     }
 
-
-
-
-
 }

+ 50 - 27
project-zcustom/src/main/java/com/project/zcustom/tools/LogisticsService.java

@@ -5,13 +5,18 @@ import com.alibaba.fastjson2.JSONArray;
 import com.alibaba.fastjson2.JSONObject;
 import com.project.zcustom.domain.addional.LargeAssetDirs;
 import com.project.zcustom.domain.addional.LargeLogistics;
+import com.project.zcustom.domain.basics.PlatAppOrg;
 import com.project.zcustom.mapper.logistics.PlatLogisticsMapper;
+import com.project.zcustom.service.basics.IPlatAppOrgService;
+import org.apache.commons.compress.utils.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * @Description 后勤资源监控服务
@@ -24,6 +29,8 @@ public class LogisticsService {
 
     @Autowired
     private PlatLogisticsMapper platLogisticsMapper;
+    @Autowired
+    private IPlatAppOrgService platAppOrgService;
 
     public void getLogisticsData(){
         String json = "{\n" +
@@ -176,38 +183,29 @@ public class LogisticsService {
         List<LargeAssetDirs> officeAssetList = new ArrayList<>();
         List<LargeAssetDirs> buildingAssetList = new ArrayList<>();
         List<LargeAssetDirs> serviceAssetList = new ArrayList<>();
+
+        // 查询所有组织信息
+        List<PlatAppOrg> orgList = platAppOrgService.selectAppCodeList();
+        Map<String, String> orgMap = orgList.stream().collect(Collectors.toMap(PlatAppOrg::getAppCode, PlatAppOrg::getAppName, (v1, v2) -> v1));
+
         for (int i = 0; i < dataArray.size(); i++) {
             JSONObject dataItem = dataArray.getJSONObject(i);
             LargeLogistics largeLogistics = JSON.parseObject(dataItem.toString(), LargeLogistics.class);
-
-            JSONArray officeAssetArray = dataItem.getJSONArray("officeAssetDistrs");
-            for (int j = 0; j < dataArray.size(); j++) {
-                LargeAssetDirs largeAssetDirs = new LargeAssetDirs();
-                JSONObject assetItem = officeAssetArray.getJSONObject(j);
-                largeAssetDirs.setAppCode(largeLogistics.getOrgId());
-                largeAssetDirs.setCategoryName(assetItem.getString("categoryName"));
-                largeAssetDirs.setAssetNum(Long.valueOf(assetItem.getString("assetNum")));
-                officeAssetList.add(largeAssetDirs);
-            }
-            JSONArray buildingAssetArray = dataItem.getJSONArray("buildingAssetDistrs");
-            for (int j = 0; j < dataArray.size(); j++) {
-                LargeAssetDirs largeAssetDirs = new LargeAssetDirs();
-                JSONObject assetItem = buildingAssetArray.getJSONObject(j);
-                largeAssetDirs.setAppCode(largeLogistics.getOrgId());
-                largeAssetDirs.setCategoryName(assetItem.getString("categoryName"));
-                largeAssetDirs.setAssetNum(Long.valueOf(assetItem.getString("assetNum")));
-                buildingAssetList.add(largeAssetDirs);
-            }
-            JSONArray serviceAssetArray = dataItem.getJSONArray("serviceAssetDistrs");
-            for (int j = 0; j < dataArray.size(); j++) {
-                LargeAssetDirs largeAssetDirs = new LargeAssetDirs();
-                JSONObject assetItem = serviceAssetArray.getJSONObject(j);
-                largeAssetDirs.setAppCode(largeLogistics.getOrgId());
-                largeAssetDirs.setCategoryName(assetItem.getString("categoryName"));
-                largeAssetDirs.setAssetNum(Long.valueOf(assetItem.getString("assetNum")));
-                serviceAssetList.add(largeAssetDirs);
+            // 业务方提供的数据包含一些不需要的部门数据进行过滤
+            if ( !orgMap.containsKey(largeLogistics.getOrgId())){
+                break;
             }
 
+            // 资产列表数据提取
+            List<LargeAssetDirs> officeList = getAssetList(dataItem, largeLogistics.getOrgId(), "officeAssetDistrs");
+            officeAssetList.addAll(officeList);
+
+            List<LargeAssetDirs> buildingList = getAssetList(dataItem, largeLogistics.getOrgId(),"buildingAssetDistrs");
+            buildingAssetList.addAll(buildingList);
+
+            List<LargeAssetDirs> serviceList = getAssetList(dataItem, largeLogistics.getOrgId(), "serviceAssetDistrs");
+            serviceAssetList.addAll(serviceList);
+
             list.add(largeLogistics);
         }
         platLogisticsMapper.deleteLogistics();
@@ -219,4 +217,29 @@ public class LogisticsService {
         platLogisticsMapper.deleteServiceAssetDirs();
         platLogisticsMapper.insertServiceAssetDirs(serviceAssetList);
     }
+
+    /**
+     * officeAssetDistrs 办公资产分布列表
+     * buildingAssetDistrs 楼宇设备分布列表
+     * serviceAssetDistrs 服务设备分布列表
+     * @param dataItem
+     * @param appCode
+     * @param jsonKey
+     * @return
+     */
+    private List<LargeAssetDirs> getAssetList(JSONObject dataItem, String appCode, String jsonKey){
+        List<LargeAssetDirs> list = Lists.newArrayList();
+        JSONArray buildingAssetArray = dataItem.getJSONArray(jsonKey);
+        for (int k = 0; k < buildingAssetArray.size(); k++) {
+            LargeAssetDirs largeAssetDirs = new LargeAssetDirs();
+            JSONObject assetItem = buildingAssetArray.getJSONObject(k);
+            largeAssetDirs.setAppCode(appCode);
+            largeAssetDirs.setCategoryName(assetItem.getString("categoryName"));
+            largeAssetDirs.setAssetNum(assetItem.getLong("assetNum"));
+            list.add(largeAssetDirs);
+        }
+        return list;
+    }
+
+
 }