Commit 0db0fc39 hc

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

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