Commit cc485925 LN

过期时间增加供应商配置

1 个父辈 0e1f94f9
...@@ -169,7 +169,6 @@ public class Constants { ...@@ -169,7 +169,6 @@ public class Constants {
public static final String CACHE_SAME_BARCODE_SETTINGS ="CACHE_sameBarcode_settings"; public static final String CACHE_SAME_BARCODE_SETTINGS ="CACHE_sameBarcode_settings";
public static final String CHCHE_ExpirationDateConfig = "micron_expiration_config";
/** /**
* 当前入库信息: * 当前入库信息:
*/ */
...@@ -201,4 +200,9 @@ public class Constants { ...@@ -201,4 +200,9 @@ public class Constants {
* 入库检测配置 * 入库检测配置
*/ */
public static final String CACHE_INPUT_CHECK = "CACHE_INPUT_CHECK"; public static final String CACHE_INPUT_CHECK = "CACHE_INPUT_CHECK";
public static final String CHCHE_ExpirationDateConfig = "micron_expiration_config";
// public static final String ExpirationDateConfig = "micron_expiration_config";
public static final String CACHE_ExpirationDateConfig_N = "micron_expiration_config_new";
} }
...@@ -12,6 +12,7 @@ import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager; ...@@ -12,6 +12,7 @@ import com.neotel.smfcore.core.barcode.service.manager.IBarcodeManager;
import com.neotel.smfcore.core.barcode.service.manager.IComponentManager; import com.neotel.smfcore.core.barcode.service.manager.IComponentManager;
import com.neotel.smfcore.core.barcode.service.po.Barcode; import com.neotel.smfcore.core.barcode.service.po.Barcode;
import com.neotel.smfcore.core.barcode.service.po.Component; import com.neotel.smfcore.core.barcode.service.po.Component;
import com.neotel.smfcore.custom.micron1053.bean.ExpConfig;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -35,7 +36,9 @@ public class CodeResolve { ...@@ -35,7 +36,9 @@ public class CodeResolve {
private List<BarcodeRule> barcodeRuleList; private List<BarcodeRule> barcodeRuleList;
private Integer defaultExpiresDay=0; private Integer defaultExpiresDay=0;
Map<String, Integer> configMap =new HashMap<>();
private List<ExpConfig> configList=new ArrayList<>();
// Map<String, Integer> configMap =new HashMap<>();
public void updateBarcodeRuleList(List<String> ruleList){ public void updateBarcodeRuleList(List<String> ruleList){
barcodeRuleList = Lists.newArrayList(); barcodeRuleList = Lists.newArrayList();
...@@ -49,17 +52,19 @@ public class CodeResolve { ...@@ -49,17 +52,19 @@ public class CodeResolve {
defaultExpiresDay=expiresDay; defaultExpiresDay=expiresDay;
} }
public void updateConfigMap(Map<String,Integer> map){ // public void updateConfigMap(Map<String,Integer> map){
this.configMap=map; // this.configMap=map;
// }
public void updateConfigMap(List<ExpConfig> configs){
this.configList=configs;
} }
public CodeBean resolveSingleCode(String barcodeItemStr ){ public CodeBean resolveSingleCode(String barcodeItemStr ){
return resolveSingleCode(barcodeItemStr, COMPONENT_TYPE.COMPONENT); return resolveSingleCode(barcodeItemStr, COMPONENT_TYPE.COMPONENT);
} }
public int getTargetValid(String pn,int validDay) { public int getTargetValid(String pn,String manufacture, int validDay) {
try { try {
if (validDay > 0) { if (validDay > 0) {
...@@ -67,14 +72,38 @@ public class CodeResolve { ...@@ -67,14 +72,38 @@ public class CodeResolve {
} }
int year = 0; int year = 0;
if (configMap != null) // if (configMap != null)
for (String key : // for (String key :
configMap.keySet()) { // configMap.keySet()) {
if (pn.startsWith(key)) { // if (pn.startsWith(key)) {
year = configMap.get(key); // year = configMap.get(key);
// break;
// }
// }
if(manufacture==null){
manufacture="";
}
if(configList!=null){
for (ExpConfig conf :
configList) {
if (pn.startsWith(conf.getKey()) && conf.getManufacture().equals(manufacture)) {
year = conf.getValue();
break; break;
} }
} }
if(year<=0){
for (ExpConfig conf :
configList) {
if (pn.startsWith(conf.getKey()) && ObjectUtil.isEmpty(conf.getManufacture())) {
year = conf.getValue();
break;
}
}
}
}
if (year > 0) { if (year > 0) {
return year * 365; return year * 365;
} }
...@@ -229,7 +258,7 @@ public class CodeResolve { ...@@ -229,7 +258,7 @@ public class CodeResolve {
// if(validDay<=0&& defaultExpiresDay!=null&&defaultExpiresDay>0){ // if(validDay<=0&& defaultExpiresDay!=null&&defaultExpiresDay>0){
// validDay=defaultExpiresDay; // validDay=defaultExpiresDay;
// } // }
validDay=getTargetValid(barcode.getPartNumber(),validDay); validDay=getTargetValid(barcode.getPartNumber(),barcode.getProvider(), validDay);
if((!setSize)&& codeBeanFromRule.hasReelSizeInfo()){ if((!setSize)&& codeBeanFromRule.hasReelSizeInfo()){
//如果客户端传入的有尺寸,但尺寸不一致,使用上传上来的尺寸 //如果客户端传入的有尺寸,但尺寸不一致,使用上传上来的尺寸
if(barcode.getHeight() != codeBeanFromRule.getReelHeight() || barcode.getPlateSize() != codeBeanFromRule.getReelWidth()){ if(barcode.getHeight() != codeBeanFromRule.getReelHeight() || barcode.getPlateSize() != codeBeanFromRule.getReelWidth()){
...@@ -367,7 +396,7 @@ public class CodeResolve { ...@@ -367,7 +396,7 @@ public class CodeResolve {
Date produceDate = barcodeFromRule.getProduceDate(); Date produceDate = barcodeFromRule.getProduceDate();
int validDay = component.getValidDay(); int validDay = component.getValidDay();
validDay = getTargetValid(component.getPartNumber(), validDay); validDay = getTargetValid(component.getPartNumber(),component.getProvider(), validDay);
if (validDay > 0 && (produceDate != null)) { if (validDay > 0 && (produceDate != null)) {
log.info("设置" + barcodeFromRule.getBarcode() + "的过期时间"); log.info("设置" + barcodeFromRule.getBarcode() + "的过期时间");
Date expireDate = DateUtil.addDays(produceDate, validDay); Date expireDate = DateUtil.addDays(produceDate, validDay);
......
...@@ -16,7 +16,6 @@ import com.neotel.smfcore.core.device.bean.BoxStatusBean; ...@@ -16,7 +16,6 @@ import com.neotel.smfcore.core.device.bean.BoxStatusBean;
import com.neotel.smfcore.core.device.bean.StatusBean; import com.neotel.smfcore.core.device.bean.StatusBean;
import com.neotel.smfcore.core.inList.util.InListCache; import com.neotel.smfcore.core.inList.util.InListCache;
import com.neotel.smfcore.core.inout.service.manager.IInOutDataManager; import com.neotel.smfcore.core.inout.service.manager.IInOutDataManager;
import com.neotel.smfcore.core.inout.service.po.InOutData;
import com.neotel.smfcore.core.language.service.bean.LanguageInfo; import com.neotel.smfcore.core.language.service.bean.LanguageInfo;
import com.neotel.smfcore.core.language.util.MessageUtils; import com.neotel.smfcore.core.language.util.MessageUtils;
import com.neotel.smfcore.core.storage.bean.InventoryItem; import com.neotel.smfcore.core.storage.bean.InventoryItem;
...@@ -34,7 +33,7 @@ import com.neotel.smfcore.core.system.service.po.CacheItem; ...@@ -34,7 +33,7 @@ import com.neotel.smfcore.core.system.service.po.CacheItem;
import com.neotel.smfcore.core.system.service.po.Settings; import com.neotel.smfcore.core.system.service.po.Settings;
import com.neotel.smfcore.core.storage.service.po.Storage; import com.neotel.smfcore.core.storage.service.po.Storage;
import com.neotel.smfcore.core.system.util.DevicesStatusUtil; import com.neotel.smfcore.core.system.util.DevicesStatusUtil;
import com.neotel.smfcore.custom.micron1053.loading.util.LoadingUtil; import com.neotel.smfcore.custom.micron1053.bean.ExpConfig;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -120,8 +119,29 @@ public class DataCache { ...@@ -120,8 +119,29 @@ public class DataCache {
Integer expireDay = getCache(Constants.CACHE_ExpiresDay); Integer expireDay = getCache(Constants.CACHE_ExpiresDay);
codeResolve.updateExpiresDay(expireDay); codeResolve.updateExpiresDay(expireDay);
Map<String, Integer> conMap=getCache(Constants.CHCHE_ExpirationDateConfig); // Map<String, Integer> conMap=getCache(Constants.CHCHE_ExpirationDateConfig);
codeResolve.updateConfigMap(conMap); // codeResolve.updateConfigMap(conMap);
//转存过期配置数据
Map<String, Integer> oldconfigMap = getCache(Constants.CHCHE_ExpirationDateConfig);
List<ExpConfig> configs=getCache(Constants.CACHE_ExpirationDateConfig_N);
if(oldconfigMap!=null&&configs==null) {
configs = new ArrayList<>();
for (String key :
oldconfigMap.keySet()) {
ExpConfig config = new ExpConfig(key, "", oldconfigMap.get(key));
configs.add(config);
}
updateCache(Constants.CACHE_ExpirationDateConfig_N, configs);
}
codeResolve.updateConfigMap(configs);
// if (oldconfigMap == null) {
// oldconfigMap = new HashMap<>();
// oldconfigMap.put(key, value);
// }
} }
private void initCacheItem() { private void initCacheItem() {
...@@ -186,8 +206,11 @@ public class DataCache { ...@@ -186,8 +206,11 @@ public class DataCache {
if (cacheKey.equals(Constants.CACHE_ExpiresDay)) { if (cacheKey.equals(Constants.CACHE_ExpiresDay)) {
codeResolve.updateExpiresDay((Integer) value); codeResolve.updateExpiresDay((Integer) value);
} }
if (cacheKey.equals(Constants.CHCHE_ExpirationDateConfig)) { // if (cacheKey.equals(Constants.CHCHE_ExpirationDateConfig)) {
codeResolve.updateConfigMap((Map<String, Integer>) value); // codeResolve.updateConfigMap((Map<String, Integer>) value);
// }
if (cacheKey.equals(Constants.CACHE_ExpirationDateConfig_N)) {
codeResolve.updateConfigMap((List<ExpConfig>) value);
} }
log.info("updateCache [" + cacheKey + "]=[" + value + "]"); log.info("updateCache [" + cacheKey + "]=[" + value + "]");
......
package com.neotel.smfcore.custom.micron1053.bean;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.io.Serializable;
@Data
@Slf4j
@AllArgsConstructor
@NoArgsConstructor
public class ExpConfig implements Serializable {
private String key;
private String manufacture;
private Integer value;
}
package com.neotel.smfcore.custom.micron1053.controller; package com.neotel.smfcore.custom.micron1053.controller;
import cn.hutool.core.util.ObjectUtil;
import com.neotel.smfcore.common.bean.ResultBean; import com.neotel.smfcore.common.bean.ResultBean;
import com.neotel.smfcore.common.utils.Constants;
import com.neotel.smfcore.common.utils.StringUtils; import com.neotel.smfcore.common.utils.StringUtils;
import com.neotel.smfcore.core.device.util.DataCache; import com.neotel.smfcore.core.device.util.DataCache;
import com.neotel.smfcore.custom.micron1053.bean.ExpConfig;
import com.neotel.smfcore.security.annotation.AnonymousAccess; import com.neotel.smfcore.security.annotation.AnonymousAccess;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
...@@ -11,8 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired; ...@@ -11,8 +14,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap; import java.util.ArrayList;
import java.util.Map; import java.util.List;
@Slf4j @Slf4j
@RestController @RestController
...@@ -20,57 +23,124 @@ import java.util.Map; ...@@ -20,57 +23,124 @@ import java.util.Map;
@RequestMapping("/rest/micron/group") @RequestMapping("/rest/micron/group")
public class MicronGroupController { public class MicronGroupController {
public static final String ExpirationDateConfig = "micron_expiration_config";
@Autowired @Autowired
private DataCache dataCache; private DataCache dataCache;
private List<ExpConfig> getConfigList(){
List<ExpConfig> configList=dataCache.getCache((Constants.CACHE_ExpirationDateConfig_N));
if(configList==null) {
configList = new ArrayList<>();
}
return configList;
}
@ApiOperation("增加过期设置") @ApiOperation("增加过期设置")
@RequestMapping("/addExpirationDateConfig") @RequestMapping("/addExpirationDateConfig")
@AnonymousAccess @AnonymousAccess
public ResultBean addExpirationDateConfig(String key, int value) { public ResultBean addExpirationDateConfig(String key,String manufacture, int value) {
Map<String, Integer> configMap = dataCache.getCache(ExpirationDateConfig); if(ObjectUtil.isEmpty(manufacture)){
if (configMap == null) { manufacture="";
configMap = new HashMap<>(); }
configMap.put(key, value); ExpConfig config=new ExpConfig(key,manufacture,value);
} else {
if (configMap.get(key) != null) { List<ExpConfig> configList=dataCache.getCache((Constants.CACHE_ExpirationDateConfig_N));
return ResultBean.newErrorResult(-1, "smfcore.expiration.ameExists", "过期配置[{0}]已存在", new String[]{key}); if(configList==null){
configList=new ArrayList<>();
configList.add(config);
}else{
//查找是否已存在
boolean has=false;
for (ExpConfig cc :configList
) {
if(cc.getKey().equals(config.getKey())&&cc.getManufacture().equals(config.getManufacture())){
has=true;
return ResultBean.newErrorResult(-1, "smfcore.expiration.ameExists", "过期配置[{0}]已存在", new String[]{key+"-"+manufacture});
}
} }
configMap.put(key, value); configList.add(config);
} }
dataCache.updateCache(ExpirationDateConfig, configMap); dataCache.updateCache(Constants.CACHE_ExpirationDateConfig_N, configList);
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
// Map<String, Integer> configMap = dataCache.getCache(ExpirationDateConfig);
// if (configMap == null) {
// configMap = new HashMap<>();
// configMap.put(key, value);
// } else {
// if (configMap.get(key) != null) {
// return ResultBean.newErrorResult(-1, "smfcore.expiration.ameExists", "过期配置[{0}]已存在", new String[]{key});
// }
// configMap.put(key, value);
// }
// dataCache.updateCache(ExpirationDateConfig, configMap);
// return ResultBean.newOkResult("");
} }
@ApiOperation("删除过期设置") @ApiOperation("删除过期设置")
@RequestMapping("/deleteExpirationDateConfig") @RequestMapping("/deleteExpirationDateConfig")
@AnonymousAccess @AnonymousAccess
public ResultBean deleteExpirationDateConfig(String key) { public ResultBean deleteExpirationDateConfig(String key,String manufacture) {
Map<String, Integer> configMap = dataCache.getCache(ExpirationDateConfig); if(ObjectUtil.isEmpty(manufacture)){
if (configMap == null) { manufacture="";
configMap = new HashMap<>(); } List<ExpConfig> configList=getConfigList();
int index=-1;
for (int i=0;i<configList.size();i++) {
if (configList.get(i).getKey().equals(key)&&configList.get(i).getManufacture().equals(manufacture) ){
index=i;
break;
}
}
if(index>=0){
configList.remove(index);
} }
configMap.remove(key); dataCache.updateCache(Constants.CACHE_ExpirationDateConfig_N, configList);
dataCache.updateCache(ExpirationDateConfig, configMap);
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
// Map<String, Integer> configMap = dataCache.getCache(ExpirationDateConfig);
// if (configMap == null) {
// configMap = new HashMap<>();
// }
// configMap.remove(key);
// dataCache.updateCache(ExpirationDateConfig, configMap);
// return ResultBean.newOkResult("");
} }
@ApiOperation("修改过期设置") @ApiOperation("修改过期设置")
@RequestMapping("/updateExpirationDateConfig") @RequestMapping("/updateExpirationDateConfig")
@AnonymousAccess @AnonymousAccess
public ResultBean updateExpirationDateConfig(String key, int value) { public ResultBean updateExpirationDateConfig(String key,String manufacture, int value) {
Map<String, Integer> configMap = dataCache.getCache(ExpirationDateConfig); if(ObjectUtil.isEmpty(manufacture)){
if (configMap == null) { manufacture="";
configMap = new HashMap<>(); } List<ExpConfig> configList=getConfigList();
int index=-1;
for (int i=0;i<configList.size();i++) {
if (configList.get(i).getKey().equals(key)&&configList.get(i).getManufacture().equals(manufacture) ){
index=i;
break;
}
} }
Integer config = configMap.get(key); ExpConfig con=new ExpConfig(key,manufacture,value);
if (config == null) { if(index>=0){
return ResultBean.newErrorResult(-1, "smfcore.expiration.notExist", "过期配置[{0}]不存在 ", new String[]{key}); configList.set(index,con);
}else{
return ResultBean.newErrorResult(-1, "smfcore.expiration.notExist", "过期配置[{0}]不存在 ", new String[]{key+"-"+manufacture});
} }
configMap.put(key, value); dataCache.updateCache(Constants.CACHE_ExpirationDateConfig_N, configList);
dataCache.updateCache(ExpirationDateConfig, configMap);
return ResultBean.newOkResult(""); return ResultBean.newOkResult("");
// Map<String, Integer> configMap = dataCache.getCache(ExpirationDateConfig);
// if (configMap == null) {
// configMap = new HashMap<>();
// }
// Integer config = configMap.get(key);
// if (config == null) {
// return ResultBean.newErrorResult(-1, "smfcore.expiration.notExist", "过期配置[{0}]不存在 ", new String[]{key});
// }
// configMap.put(key, value);
// dataCache.updateCache(ExpirationDateConfig, configMap);
// return ResultBean.newOkResult("");
} }
...@@ -78,18 +148,33 @@ public class MicronGroupController { ...@@ -78,18 +148,33 @@ public class MicronGroupController {
@RequestMapping("/getExpirationDateConfig") @RequestMapping("/getExpirationDateConfig")
@AnonymousAccess @AnonymousAccess
public ResultBean getExpirationDateConfig(String key) { public ResultBean getExpirationDateConfig(String key) {
Map<String, Integer> configMap = dataCache.getCache(ExpirationDateConfig);
if (configMap == null) { List<ExpConfig> configList = getConfigList();
configMap = new HashMap<>(); if (StringUtils.isNotBlank(key)) {
} else { List<ExpConfig> result = new ArrayList<>();
if (StringUtils.isNotBlank(key)) { for (ExpConfig cc : configList
HashMap<String, Integer> resultMap = new HashMap<>(); ) {
if (configMap.get(key) != null) { if (cc.getKey().equals(key)) {
resultMap.put(key, configMap.get(key)); result.add(cc);
} }
return ResultBean.newOkResult(resultMap);
} }
return ResultBean.newOkResult(result);
} }
return ResultBean.newOkResult(configMap); return ResultBean.newOkResult(configList);
// Map<String, Integer> configMap = dataCache.getCache(ExpirationDateConfig);
// if (configMap == null) {
// configMap = new HashMap<>();
// } else {
// if (StringUtils.isNotBlank(key)) {
// HashMap<String, Integer> resultMap = new HashMap<>();
// if (configMap.get(key) != null) {
// resultMap.put(key, configMap.get(key));
// }
// return ResultBean.newOkResult(resultMap);
// }
// }
// return ResultBean.newOkResult(configMap);
} }
} }
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!