Commit 0db0fc39 hc

1.gr手动入库过账数量计算逻辑优化 2.虚拟仓手动出库菜单增加

1 个父辈 9791e27e
......@@ -204,6 +204,8 @@ public class DataInitManager {
addNewFunctionMenu(2, manual, "manualGrStorage", "手动GR入库", "manualGrStorage", "manualGrStorage/index", "manualGrSto", functionMenuMap);
// 手动GR入库
addNewFunctionMenu(3, manual, "manualGrStorageVirtual", "虚拟仓手动GR入库", "manualGrStorageVirtual", "manualGrStorageVirtual/index", "manualGrStoVirt", functionMenuMap);
// 虚拟仓手动出库
addNewFunctionMenu(4, manual, "manualVirOut", "虚拟仓手动出库", "manualVirOut", "manualVirOut/index", "manualVirOut", functionMenuMap);
Menu doc = Menu.CreatePMenu("单据操作", 5, "doc", 1, "docOp", raw);
......
......@@ -74,6 +74,11 @@ public class QueryGrStatusResult {
private String UD_QTY;
/**
* 过账数量 (用这个)
*/
private String PICKED_QTY;
/**
* 单据数量
*/
private String LOT_QTY;
......
......@@ -13,7 +13,7 @@ public class GrUdNum {
private String grItem;
private int udQty;
private int pickedQty;
private int lotQty;
}
......@@ -75,6 +75,11 @@ public class QueryGrStatusDto {
private String udQty;
/**
* 过账数量 (用这个)
*/
private String pickedQty;
/**
* 单据数量
*/
private String lotQty;
......@@ -119,6 +124,7 @@ public class QueryGrStatusDto {
queryGrStatusResultDto.setWarehouseCode(result.getWAREHOUSE_CODE());
queryGrStatusResultDto.setUdCode(result.getUD_CODE());
queryGrStatusResultDto.setUdQty(result.getUD_QTY());
queryGrStatusResultDto.setPickedQty(result.getPICKED_QTY());
queryGrStatusResultDto.setLotQty(result.getLOT_QTY());
queryGrStatusResultDto.setPostDate(result.getPOST_DATE());
queryGrStatusResultDto.setBatchCode(result.getBATCH_CODE());
......
......@@ -101,7 +101,7 @@ public class ManualGrPutInController {
@RequestMapping("/bindGrUdQty")
@AnonymousAccess
public ResultBean bindGrUdQty(@RequestBody GrUdNum grUdNum) {
GrUtil.updateGrUdQty(grUdNum.getCode(), grUdNum.getGrCode(), grUdNum.getGrItem(), grUdNum.getUdQty(), grUdNum.getLotQty());
GrUtil.updateGrUdQty(grUdNum.getCode(), grUdNum.getGrCode(), grUdNum.getGrItem(), grUdNum.getPickedQty(), grUdNum.getLotQty());
return ResultBean.newOkResult(GrUtil.getGrUdQty(grUdNum.getGrCode(), grUdNum.getGrItem()));
}
......
......@@ -25,7 +25,7 @@ public class GrUtil {
@Autowired
public void setCodeResolve(CodeResolve codeResolve) {
this.codeResolve = codeResolve;
GrUtil.codeResolve = codeResolve;
}
private static DataCache dataCache;
......@@ -37,13 +37,13 @@ public class GrUtil {
GrUtil.dataCache = cache;
}
public synchronized static void updateGrUdQty(String code, String grCode, String grItem, int udQty, int lotQty) {
public synchronized static void updateGrUdQty(String code, String grCode, String grItem, int pickedQty, int lotQty) {
Map<String, GrUdNum> cacheMap = dataCache.getCache(CACHE_GR_UDQTY);
if (cacheMap == null) {
cacheMap = Maps.newConcurrentMap();
}
String key = grCode + "_" + grItem;
cacheMap.put(key, new GrUdNum(code, grCode, grItem, udQty, lotQty));
cacheMap.put(key, new GrUdNum(code, grCode, grItem, pickedQty, lotQty));
dataCache.updateCache(CACHE_GR_UDQTY, cacheMap);
}
......@@ -61,7 +61,7 @@ public class GrUtil {
String key = grCode + "_" + grItem;
GrUdNum grUdNum = cacheMap.get(key);
// 服务器端刷新条件
if (grUdNum.getLotQty() <= grUdNum.getUdQty()) {
if (grUdNum.getLotQty() <= grUdNum.getPickedQty()) {
return refreshGrNumFromAPI(grCode, grItem);
}
return grUdNum;
......@@ -96,7 +96,7 @@ public class GrUtil {
throw new ValidateException("smfcore.error", "更新GR过账信息缓存失败");
}
grUdNum.setLotQty(Double.valueOf(queryGrStatusDto.getLotQty()).intValue());
grUdNum.setUdQty(Double.valueOf(queryGrStatusDto.getUdQty()).intValue());
grUdNum.setPickedQty(Double.valueOf(queryGrStatusDto.getPickedQty()).intValue());
cacheMap.put(key, grUdNum);
dataCache.updateCache(CACHE_GR_UDQTY, cacheMap);
}
......@@ -111,11 +111,11 @@ public class GrUtil {
String key = grCode + "_" + grItem;
GrUdNum grUdNum = cacheMap.get(key);
synchronized (grUdNum) {
if (canPutIn(grCode, grItem, count)) {
if (!canPutIn(grCode, grItem, count)) {
throw new ValidateException("smfcore.error", "正在过账的物料数量大于当前GR所需过账数量");
}
grUdNum.setPickedQty(grUdNum.getPickedQty()+count);
}
grUdNum.setUdQty(grUdNum.getUdQty()+count);
}
public static boolean canPutIn(String grCode, String grItem, int addCount) {
......@@ -126,11 +126,11 @@ public class GrUtil {
String key = grCode + "_" + grItem;
GrUdNum grUdNum = cacheMap.get(key);
synchronized (grUdNum) {
boolean canPutIn = grUdNum.getUdQty() + addCount <= grUdNum.getLotQty();
boolean canPutIn = grUdNum.getPickedQty() + addCount <= grUdNum.getLotQty();
if (!canPutIn) {
refreshGrNumFromAPI(grCode, grItem);
}
return grUdNum.getUdQty() + addCount <= grUdNum.getLotQty();
return grUdNum.getPickedQty() + addCount <= grUdNum.getLotQty();
}
}
......
支持 Markdown 格式
你添加了 0 到此讨论。请谨慎行事。
Finish editing this message first!