aps-api/aps-api-system/src/main/java/com/aps/system/api/RemoteCoreService.java
@@ -3,6 +3,7 @@ import com.aps.common.core.constant.SecurityConstants; import com.aps.common.core.constant.ServiceNameConstants; import com.aps.common.core.domain.R; import com.aps.common.core.web.domain.AjaxResult; import com.aps.system.api.factory.RemoteCoreFallbackFactory; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -42,4 +43,12 @@ @PostMapping("/materialStorageManagement/setStorageDataToRedis") R<Boolean> setStorageDataToRedis(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** * 刷新钣金子单数据到Redis * @param source * @return */ @PostMapping("/apsPlatePlan/setPlateSubPlansToRedis") R<AjaxResult> setPlateSubPlansToRedis(@RequestHeader(SecurityConstants.FROM_SOURCE) String source); } aps-api/aps-api-system/src/main/java/com/aps/system/api/factory/RemoteCoreFallbackFactory.java
@@ -1,6 +1,7 @@ package com.aps.system.api.factory; import com.aps.common.core.domain.R; import com.aps.common.core.web.domain.AjaxResult; import com.aps.system.api.RemoteCoreService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,6 +41,11 @@ { return R.fail("库存数据存储到Redis中失败:" + throwable.getMessage()); } @Override public R<AjaxResult> setPlateSubPlansToRedis(String source) { return R.fail("钣金子单计划数据存储到Redis中失败:" + throwable.getMessage()); } }; } } aps-modules/aps-core/src/main/java/com/aps/core/controller/ApsPlatePlanController.java
@@ -214,4 +214,19 @@ util.exportExcel(response, planListExport, "钣金冗余工单报表数据"); } /** * 将钣金子单数据存到redis中 * @return */ @PostMapping("/setPlateSubPlansToRedis") public AjaxResult setPlateSubPlansToRedis() { try { apsPlatePlanService.setSubPlansToRedis(); return success(); } catch (Exception e) { e.printStackTrace(); return error(); } } } aps-modules/aps-core/src/main/java/com/aps/core/mapper/ApsPlatePlanMapper.java
@@ -1,7 +1,9 @@ package com.aps.core.mapper; import com.alibaba.fastjson2.JSONObject; import com.aps.core.domain.ApsPlatePlan; import org.apache.ibatis.annotations.Mapper; import java.util.List; /** @@ -97,4 +99,10 @@ * 更新子件工单未匹配数量和版本 * */ int updatePlanUnMatchQtyAndVersion(ApsPlatePlan plan); /** * 查询钣金子单数据 * @return */ List<JSONObject> selectApsSubPlatePlan(); } aps-modules/aps-core/src/main/java/com/aps/core/service/IApsPlatePlanService.java
@@ -2,7 +2,6 @@ import com.aps.core.domain.ApsPlatePlan; import com.aps.core.domain.ApsPlatePlanTemp; import com.aps.core.domain.ApsPlateStandardRequire; import java.util.Hashtable; import java.util.List; @@ -85,4 +84,6 @@ ApsPlatePlan selectUnMatchPlateSubPlan(String plant, String itemNumber, Hashtable<String, List<ApsPlatePlan>> subPlans); // ApsPlatePlan selectUnMatchPlateSubPlan(ApsPlateStandardRequire require); boolean setSubPlansToRedis(); } aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsPlatePlanServiceImpl.java
@@ -1,6 +1,7 @@ package com.aps.core.service.impl; import cn.hutool.core.util.IdUtil; import com.alibaba.fastjson2.JSONObject; import com.aps.common.core.utils.DateUtils; import com.aps.common.core.utils.uuid.IdUtils; import com.aps.common.security.utils.DictUtils; @@ -14,12 +15,12 @@ import org.apache.logging.log4j.util.Strings; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.util.Hashtable; import java.util.List; import java.util.Optional; import java.util.*; import java.util.stream.Collectors; /** * 钣金计划管理Service业务层处理 @@ -35,8 +36,12 @@ @Autowired private ApsPartPlanTempMapper apsPartPlanTempMapper; @Autowired private ApsPlatePlanTempMapper apsPlatePlanTempMapper; @Autowired public RedisTemplate redisTemplate; /** * 查询钣金计划管理 @@ -211,4 +216,28 @@ } } } @Override public boolean setSubPlansToRedis() { try { Set<String> keys = redisTemplate.keys("PLATE_SUB_PLAN:*"); if (keys != null && !keys.isEmpty()) { redisTemplate.delete(keys); } List<JSONObject> subPlans = apsPlatePlanMapper.selectApsSubPlatePlan(); // ApsPlatePlan a = JSONObject.parseObject(String.valueOf(subPlans.get(0)), ApsPlatePlan.class); Map<String, List<JSONObject>> groupByItemNumber = subPlans.stream().collect(Collectors.groupingBy(obj -> obj.getString("itemNumber"))); Map<String, Object> bulkData = new HashMap<>(); for (Map.Entry<String, List<JSONObject>> entry : groupByItemNumber.entrySet()) { String key = entry.getKey(); List<JSONObject> value = entry.getValue(); bulkData.put("PLATE_SUB_PLAN:"+key, value); } redisTemplate.opsForValue().multiSet(bulkData); return true; } catch (Exception e) { e.printStackTrace(); return false; } } } aps-modules/aps-core/src/main/resources/mapper/core/ApsPlatePlanMapper.xml
@@ -334,4 +334,8 @@ set unmatched_quantity=#{unmatchedQuantity},version=#{version},update_time=now() where id=#{id} </update> <select id="selectApsSubPlatePlan" resultType="com.alibaba.fastjson2.JSONObject"> SELECT id,item_number as "itemNumber",document_number as "documentNumber",production_quantity as "unmatchedQuantity" FROM aps_plate_plan WHERE item_number in (SELECT item_number FROM aps_plate_plan WHERE professional_affiliation='sub' GROUP BY item_number) order by item_number </select> </mapper> aps-modules/aps-job/src/main/java/com/aps/job/task/RyTask.java
@@ -191,5 +191,11 @@ apsMaterialManagementJobService.syncApsMaterialDataJob(pageIndex, pageSize, orgCode, itemCodeList); } /** * 刷新钣金子单数据到Redis */ public void setPlateSubPlansToRedis(){ remoteCoreService.setPlateSubPlansToRedis(SecurityConstants.INNER); } }