From 93e554de49b2b87c337df71ea9ece51dd4e1d31d Mon Sep 17 00:00:00 2001 From: zhanghl <253316343@qq.com> Date: 星期四, 22 五月 2025 15:31:24 +0800 Subject: [PATCH] 更新job计时功能,显示为分秒 --- aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 93 insertions(+), 17 deletions(-) diff --git a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java index 01eb4c1..20bdf34 100644 --- a/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java +++ b/aps-modules/aps-core/src/main/java/com/aps/core/service/impl/ApsMaterialStorageManagementServiceImpl.java @@ -1,16 +1,18 @@ package com.aps.core.service.impl; -import java.util.List; - -import com.alibaba.fastjson2.JSONArray; +import com.alibaba.fastjson2.JSON; import com.alibaba.fastjson2.JSONObject; import com.aps.common.core.utils.DateUtils; +import com.aps.common.core.utils.StringUtils; +import com.aps.core.domain.ApsMaterialStorageManagement; +import com.aps.core.mapper.ApsMaterialStorageManagementMapper; +import com.aps.core.service.IApsMaterialStorageManagementService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; -import com.aps.core.mapper.ApsMaterialStorageManagementMapper; -import com.aps.core.domain.ApsMaterialStorageManagement; -import com.aps.core.service.IApsMaterialStorageManagementService; + +import java.math.BigDecimal; +import java.util.*; /** * 鐗╂枡搴撳瓨绠$悊Service涓氬姟灞傚鐞� @@ -98,21 +100,95 @@ { return apsMaterialStorageManagementMapper.deleteApsMaterialStorageManagementById(id); } + /** + * 鑾峰彇鐗╂枡搴撳瓨淇℃伅 + * */ + @Override + public Optional<ApsMaterialStorageManagement> getItemStorage(String plant, String itemNumber) { + ApsMaterialStorageManagement storageParam = new ApsMaterialStorageManagement(); + storageParam.setItemNumber(itemNumber); + storageParam.setApplicableFactories(plant); + return apsMaterialStorageManagementMapper.selectApsMaterialStorageManagementList(storageParam).stream() + .findFirst(); + } - public ApsMaterialStorageManagement getRdsStorage(String plant,String itemCode){ - - JSONObject materialStorage = (JSONObject)redisTemplate.opsForValue().get("MaterialStorage:Material_"+plant+"_"+itemCode); + /** + * 浠嶳edis涓幏鍙栧簱瀛樹俊鎭� + * + * 姝ゆ柟娉曢鍏堝皾璇曚粠Redis涓幏鍙栨寚瀹氬伐鍘傚拰鐗╂枡浠g爜鐨勫簱瀛樹俊鎭鏋淩edis涓笉瀛樺湪鐩稿叧鏁版嵁锛� + * 鍒欎粠鏁版嵁搴撲腑鏌ヨ锛屽苟灏嗙粨鏋滅紦瀛樺埌Redis涓互鎻愰珮涓嬫鏌ヨ鐨勬晥鐜� + * + * @param plant 宸ュ巶浠g爜锛岀敤浜庢寚瀹氬簱瀛樹俊鎭墍灞炵殑宸ュ巶 + * @param itemCode 鐗╂枡浠g爜锛岀敤浜庢寚瀹氶渶瑕佹煡璇㈢殑鐗╂枡 + * @return ApsMaterialStorageManagement 杩斿洖鑾峰彇鍒扮殑搴撳瓨淇℃伅瀵硅薄锛屽鏋滄病鏈夋壘鍒帮紝鍒欒繑鍥瀗ull + */ + @Override + public Optional<ApsMaterialStorageManagement> getRdsStorage(String plant, String itemCode){ + // 灏濊瘯浠嶳edis涓幏鍙栧簱瀛樹俊鎭� + String key = "MaterialStorage:Material_" + plant + "_" + itemCode; + JSONObject materialStorage = (JSONObject)redisTemplate.opsForValue().get(key); if(materialStorage!=null){ - ApsMaterialStorageManagement apsMaterialStorageManagement = new ApsMaterialStorageManagement(); - apsMaterialStorageManagement.setId(materialStorage.getString("id")); - apsMaterialStorageManagement.setItemNumber(materialStorage.getString("itemNumber")); - apsMaterialStorageManagement.setRemainderStock(materialStorage.getBigDecimal("remainderStock")); - apsMaterialStorageManagement.setVersion(materialStorage.getInteger("version")); - - return apsMaterialStorageManagement; + // 濡傛灉Redis涓湁缂撳瓨锛屽皢鍏惰浆鎹负ApsMaterialStorageManagement瀵硅薄骞惰繑鍥� + ApsMaterialStorageManagement ams= materialStorage.toJavaObject(ApsMaterialStorageManagement.class); + Optional<ApsMaterialStorageManagement> optional = Optional.ofNullable(ams); + return optional ; }else { - return null; + // 浠庢暟鎹簱涓煡璇㈠簱瀛樹俊鎭� + Optional<ApsMaterialStorageManagement> first = getItemStorage( plant, itemCode); + first.ifPresent(apsMaterialStorageManagement -> + redisTemplate.opsForValue().set(key, JSONObject.parseObject(JSON.toJSONString(apsMaterialStorageManagement))) + ); + return first; } + } + /** + * 璁剧疆搴撳瓨鏁版嵁鍒皉edis + * @param orgCode + * @return + */ + @Override + public boolean setStorageDataToRedis(String orgCode) { + try { + Set<String> keys = redisTemplate.keys("MaterialStorage:Material_*"); + if (keys != null && !keys.isEmpty()) { + redisTemplate.delete(keys); + } + ApsMaterialStorageManagement temp = new ApsMaterialStorageManagement(); + if(!StringUtils.isEmpty(orgCode)){ + temp.setApplicableFactories(orgCode); + } + List<ApsMaterialStorageManagement> list = apsMaterialStorageManagementMapper.selectApsMaterialStorageManagementList(temp); + Map<String, Object> bulkData = new HashMap<>(); + list.forEach(apsMaterialStorageManagement -> { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("id", apsMaterialStorageManagement.getId()); + jsonObject.put("itemNumber", apsMaterialStorageManagement.getItemNumber()); + jsonObject.put("remainderStock", apsMaterialStorageManagement.getRemainderStock()); + jsonObject.put("applicableFactories", apsMaterialStorageManagement.getApplicableFactories()); + bulkData.put("MaterialStorage:Material_"+apsMaterialStorageManagement.getApplicableFactories()+"_"+apsMaterialStorageManagement.getItemNumber(), jsonObject); + }); + redisTemplate.opsForValue().multiSet(bulkData); + } catch (Exception e) { + e.printStackTrace(); + return false; + } +// Set<String> keys = redisTemplate.keys("MaterialStorage:Material_*"); +// if (keys != null && !keys.isEmpty()) { +// redisTemplate.delete(keys); +// } + return true; + } + + /** + * 鏇存柊搴撳瓨淇℃伅 + * */ + public int updateMaterialStorageByVersion(String id, BigDecimal remainderStock, Integer version) { + return apsMaterialStorageManagementMapper.updateMaterialStorageByVersion(id, remainderStock, version); + } + + @Override + public int updateRemainderStock(String id, BigDecimal remainderStock, Integer version){ + return apsMaterialStorageManagementMapper.updateRemainderStock(id, remainderStock, version); } } -- Gitblit v1.9.3