以往阶段已采购,当前阶段没有采购,采购数量为负数,在当前阶段新增该条目
This commit is contained in:
@@ -1010,6 +1010,7 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
|
|||||||
nowCount = new BigDecimal(ExcelUtil2.getCellValue(row.getCell(13)));
|
nowCount = new BigDecimal(ExcelUtil2.getCellValue(row.getCell(13)));
|
||||||
}
|
}
|
||||||
BigDecimal count = BigDecimal.ZERO;
|
BigDecimal count = BigDecimal.ZERO;
|
||||||
|
BigDecimal negativeCount = BigDecimal.ZERO;
|
||||||
if (firstStage) {
|
if (firstStage) {
|
||||||
if (ExcelUtil2.getCellValue(row.getCell(13)).equals("")){
|
if (ExcelUtil2.getCellValue(row.getCell(13)).equals("")){
|
||||||
// throw new RuntimeException("本次采购量不能为空");
|
// throw new RuntimeException("本次采购量不能为空");
|
||||||
@@ -1056,27 +1057,36 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
|
|||||||
// map.put("preCount",useCount);
|
// map.put("preCount",useCount);
|
||||||
// map.put("errorMessage","当前阶段较以往阶段采购数量减少");
|
// map.put("errorMessage","当前阶段较以往阶段采购数量减少");
|
||||||
// specialList.add(map);
|
// specialList.add(map);
|
||||||
|
negativeCount = count;
|
||||||
count = BigDecimal.ZERO;
|
count = BigDecimal.ZERO;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
item.setNeedCount(needCount);
|
item.setNeedCount(needCount);
|
||||||
if (stockMap.containsKey(materialOrder.getProgressId()+"_"+item.getProductCode())){
|
item.setCount(count.add(negativeCount));
|
||||||
ProgressStock stockProduct = stockMap.get(materialOrder.getProgressId()+"_"+item.getProductCode());
|
//后续添加虚拟仓库时使用下列代码,目前绑定在库存管理错误
|
||||||
if (stockProduct.getStockCount().compareTo(count)>=0){
|
// if (stockMap.containsKey(materialOrder.getProgressId()+"_"+item.getProductCode())){
|
||||||
item.setCount(BigDecimal.ZERO);
|
// ProgressStock stockProduct = stockMap.get(materialOrder.getProgressId()+"_"+item.getProductCode());
|
||||||
item.setUseStockCount(count);
|
// if (stockProduct.getStockCount().compareTo(count)>=0){
|
||||||
stockProduct.setStockCount(stockProduct.getStockCount().subtract(count));
|
//// item.setCount(BigDecimal.ZERO);
|
||||||
}else {
|
// item.setCount(negativeCount);
|
||||||
item.setCount(count.subtract(stockProduct.getStockCount()));
|
// item.setUseStockCount(count);
|
||||||
item.setUseStockCount(stockProduct.getStockCount());
|
// stockProduct.setStockCount(stockProduct.getStockCount().subtract(count));
|
||||||
stockProduct.setStockCount(BigDecimal.ZERO);
|
// count=BigDecimal.ZERO;
|
||||||
}
|
// }else {
|
||||||
stockMap.put(materialOrder.getProgressId()+"_"+item.getProductCode(),stockProduct);
|
// item.setCount(count.subtract(stockProduct.getStockCount()));
|
||||||
}else {
|
// item.setUseStockCount(stockProduct.getStockCount());
|
||||||
item.setCount(count);
|
// stockProduct.setStockCount(BigDecimal.ZERO);
|
||||||
}
|
// count=count.subtract(stockProduct.getStockCount());
|
||||||
|
// }
|
||||||
|
// stockMap.put(materialOrder.getProgressId()+"_"+item.getProductCode(),stockProduct);
|
||||||
|
// }else {
|
||||||
|
// item.setCount(count);
|
||||||
|
// }
|
||||||
item.setTotalWeight(totalWeight == null ? (product.getgWeight()==null?BigDecimal.ZERO:product.getgWeight()).multiply(count) : totalWeight);
|
item.setTotalWeight(totalWeight == null ? (product.getgWeight()==null?BigDecimal.ZERO:product.getgWeight()).multiply(count) : totalWeight);
|
||||||
orderCount = orderCount.add(count);
|
orderCount = orderCount.add(count);
|
||||||
|
if(negativeCount.compareTo(BigDecimal.ZERO)<0){//后续阶段数量意外减少,采购数量为负数
|
||||||
|
orderCount = orderCount.add(negativeCount);
|
||||||
|
}
|
||||||
|
|
||||||
item.setSupplierIds(new ArrayList<>());
|
item.setSupplierIds(new ArrayList<>());
|
||||||
for (Integer key : valueMap.keySet()) {
|
for (Integer key : valueMap.keySet()) {
|
||||||
@@ -1188,7 +1198,7 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
|
|||||||
MaterialOrder materialOrder = find(materialOrderId);
|
MaterialOrder materialOrder = find(materialOrderId);
|
||||||
//获取以前阶段
|
//获取以前阶段
|
||||||
Map<String,BigDecimal> prevMap = new HashMap<>();
|
Map<String,BigDecimal> prevMap = new HashMap<>();
|
||||||
Map<String,String> LongMap = new HashMap<>();
|
Map<String,MaterialOrderItem> prevMapM = new HashMap<>();
|
||||||
List<MaterialOrder> prevMaterialOrderList = findByStageNum(materialOrder.getPreTitle(), materialOrder.getStageNum(), materialOrder.getProgressId());
|
List<MaterialOrder> prevMaterialOrderList = findByStageNum(materialOrder.getPreTitle(), materialOrder.getStageNum(), materialOrder.getProgressId());
|
||||||
for (MaterialOrder prevMaterialOrder : prevMaterialOrderList) {
|
for (MaterialOrder prevMaterialOrder : prevMaterialOrderList) {
|
||||||
List<MaterialOrderItem> prevItemList = materialOrderItemService.findByVersionNum(prevMaterialOrder.getVersionNum(), prevMaterialOrder.getId());
|
List<MaterialOrderItem> prevItemList = materialOrderItemService.findByVersionNum(prevMaterialOrder.getVersionNum(), prevMaterialOrder.getId());
|
||||||
@@ -1197,18 +1207,22 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
|
|||||||
+"_"+prevItem.getLineAccount()+"_"+prevItem.getProductCode();
|
+"_"+prevItem.getLineAccount()+"_"+prevItem.getProductCode();
|
||||||
if (!prevMap.containsKey(str)){
|
if (!prevMap.containsKey(str)){
|
||||||
prevMap.put(str,prevItem.getCount());
|
prevMap.put(str,prevItem.getCount());
|
||||||
|
prevMapM.put(str,prevItem);
|
||||||
}else {
|
}else {
|
||||||
BigDecimal prevCount = prevMap.get(str).add(prevItem.getCount());
|
BigDecimal prevCount = prevMap.get(str).add(prevItem.getCount());
|
||||||
prevMap.put(str,prevCount);
|
prevMap.put(str,prevCount);
|
||||||
|
prevMapM.put(str,prevItem);
|
||||||
}
|
}
|
||||||
LongMap.put(str,prevItem.getLongDescription());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//获取当前阶段
|
//获取当前阶段
|
||||||
List<MaterialOrderItem> itemList = materialOrderItemService.findByVersionNum(materialOrder.getVersionNum(), materialOrder.getId());
|
List<MaterialOrderItem> itemList = materialOrderItemService.findByVersionNum(materialOrder.getVersionNum(), materialOrder.getId());
|
||||||
|
int ind=0;
|
||||||
for (MaterialOrderItem item : itemList){
|
for (MaterialOrderItem item : itemList){
|
||||||
String str = item.getName()+"_"+item.getUnitAccount()+"_"+item.getSiteAccount()
|
String str = item.getName()+"_"+item.getUnitAccount()+"_"+item.getSiteAccount()
|
||||||
+"_"+item.getLineAccount()+"_"+item.getProductCode();
|
+"_"+item.getLineAccount()+"_"+item.getProductCode();
|
||||||
|
if (ind<item.getInd())
|
||||||
|
ind=item.getInd();
|
||||||
if (prevMap.containsKey(str)){
|
if (prevMap.containsKey(str)){
|
||||||
BigDecimal prevCount = prevMap.get(str);
|
BigDecimal prevCount = prevMap.get(str);
|
||||||
if (prevCount.compareTo(item.getNeedCount()) > 0){
|
if (prevCount.compareTo(item.getNeedCount()) > 0){
|
||||||
@@ -1239,6 +1253,7 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
|
|||||||
specialList.add(map);
|
specialList.add(map);
|
||||||
}
|
}
|
||||||
prevMap.remove(str);
|
prevMap.remove(str);
|
||||||
|
prevMapM.remove(str);
|
||||||
} else {
|
} else {
|
||||||
map = new HashMap<>();
|
map = new HashMap<>();
|
||||||
map.put("ind",item.getInd());
|
map.put("ind",item.getInd());
|
||||||
@@ -1254,20 +1269,82 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
|
|||||||
specialList.add(map);
|
specialList.add(map);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Map.Entry<String,BigDecimal> entry : prevMap.entrySet()) {
|
// for (Map.Entry<String,BigDecimal> entry : prevMap.entrySet()) {
|
||||||
|
// map = new HashMap<>();
|
||||||
|
// map.put("ind",' ');
|
||||||
|
// map.put("name",entry.getKey().split("_")[0]);
|
||||||
|
// map.put("unit",entry.getKey().split("_")[1]);
|
||||||
|
// map.put("site",entry.getKey().split("_")[2]);
|
||||||
|
// map.put("line",entry.getKey().split("_")[3]);
|
||||||
|
// map.put("code",entry.getKey().split("_")[4]);
|
||||||
|
// map.put("longDescription",LongMap.get(entry.getKey()));
|
||||||
|
// map.put("needCount",' ');
|
||||||
|
// map.put("preCount",entry.getValue());
|
||||||
|
// map.put("errorMessage","以往阶段已采购,当前阶段没有采购");
|
||||||
|
// specialList.add(map);
|
||||||
|
// }
|
||||||
|
for (Map.Entry<String,MaterialOrderItem> entry : prevMapM.entrySet()) {
|
||||||
|
System.out.println(materialOrder);
|
||||||
|
MaterialOrderItem materialOrderItem = new MaterialOrderItem();
|
||||||
|
materialOrderItem.setMaterialOrder(materialOrder);
|
||||||
|
ind=ind+1;
|
||||||
|
materialOrderItem.setInd(ind);
|
||||||
|
materialOrderItem.setBigProductTypeId(entry.getValue().getBigProductTypeId());
|
||||||
|
materialOrderItem.setBigProductType(entry.getValue().getBigProductType());
|
||||||
|
materialOrderItem.setBigProductDes(entry.getValue().getBigProductDes());
|
||||||
|
materialOrderItem.setSmallTypeId(entry.getValue().getSmallTypeId());
|
||||||
|
materialOrderItem.setSmallProductType(entry.getValue().getSmallProductType());
|
||||||
|
materialOrderItem.setSmallProductDes(entry.getValue().getSmallProductDes());
|
||||||
|
materialOrderItem.setProductId(entry.getValue().getProductId());
|
||||||
|
materialOrderItem.setName(entry.getValue().getName());
|
||||||
|
materialOrderItem.setAreaAccount(entry.getValue().getAreaAccount());
|
||||||
|
materialOrderItem.setUnitAccount(entry.getValue().getUnitAccount());
|
||||||
|
materialOrderItem.setSiteAccount(entry.getValue().getSiteAccount());
|
||||||
|
materialOrderItem.setLineAccount(entry.getValue().getLineAccount());
|
||||||
|
materialOrderItem.setCodeType(entry.getValue().getCodeType());
|
||||||
|
materialOrderItem.setProductCode(entry.getValue().getProductCode());
|
||||||
|
materialOrderItem.setShortDescription(entry.getValue().getShortDescription());
|
||||||
|
materialOrderItem.setLongDescription(entry.getValue().getLongDescription());
|
||||||
|
materialOrderItem.setgWeight(entry.getValue().getgWeight());
|
||||||
|
materialOrderItem.setUnit(entry.getValue().getUnit());
|
||||||
|
materialOrderItem.setDiameterL(entry.getValue().getDiameterL());
|
||||||
|
materialOrderItem.setDiameterS(entry.getValue().getDiameterS());
|
||||||
|
materialOrderItem.setWallThicknessL(entry.getValue().getWallThicknessL());
|
||||||
|
materialOrderItem.setWallThicknessS(entry.getValue().getWallThicknessS());
|
||||||
|
materialOrderItem.setSize(entry.getValue().getSize());
|
||||||
|
materialOrderItem.setPressureLevel(entry.getValue().getPressureLevel());
|
||||||
|
materialOrderItem.setEndFace(entry.getValue().getEndFace());
|
||||||
|
materialOrderItem.setMaterial(entry.getValue().getMaterial());
|
||||||
|
materialOrderItem.setInsulationCode(entry.getValue().getInsulationCode());
|
||||||
|
materialOrderItem.setSpecialRequest(entry.getValue().getSpecialRequest());
|
||||||
|
materialOrderItem.setMaterialType(entry.getValue().getMaterialType());
|
||||||
|
materialOrderItem.setMakeCode(entry.getValue().getMakeCode());
|
||||||
|
materialOrderItem.setMakeName(entry.getValue().getMakeName());
|
||||||
|
materialOrderItem.setMemo(entry.getValue().getMemo());
|
||||||
|
materialOrderItem.setJacketSpec(entry.getValue().getJacketSpec());
|
||||||
|
materialOrderItem.setVersionNum(materialOrder.getVersionNum());
|
||||||
|
materialOrderItem.setCount(BigDecimal.ZERO.subtract(prevMap.get(entry.getKey())));
|
||||||
|
materialOrderItem.setNeedCount(BigDecimal.ZERO);
|
||||||
|
materialOrderItem.setUseStockCount(BigDecimal.ZERO);
|
||||||
|
materialOrderItem.setTotalWeight(BigDecimal.ZERO);
|
||||||
|
materialOrderItemService.save(materialOrderItem);
|
||||||
|
|
||||||
|
materialOrder.setTotalCount(materialOrder.getTotalCount().subtract(prevMap.get(entry.getKey())));
|
||||||
|
|
||||||
map = new HashMap<>();
|
map = new HashMap<>();
|
||||||
map.put("ind",' ');
|
map.put("ind",' ');
|
||||||
map.put("name",entry.getKey().split("_")[0]);
|
map.put("name",entry.getValue().getName());
|
||||||
map.put("unit",entry.getKey().split("_")[1]);
|
map.put("unit",entry.getValue().getUnitAccount());
|
||||||
map.put("site",entry.getKey().split("_")[2]);
|
map.put("site",entry.getValue().getSiteAccount());
|
||||||
map.put("line",entry.getKey().split("_")[3]);
|
map.put("line",entry.getValue().getLineAccount());
|
||||||
map.put("code",entry.getKey().split("_")[4]);
|
map.put("code",entry.getValue().getProductCode());
|
||||||
map.put("longDescription",LongMap.get(entry.getKey()));
|
map.put("longDescription",entry.getValue().getLongDescription());
|
||||||
map.put("needCount",' ');
|
map.put("needCount",' ');
|
||||||
map.put("preCount",entry.getValue());
|
map.put("preCount",prevMap.get(entry.getKey()));
|
||||||
map.put("errorMessage","以往阶段已采购,当前阶段没有采购");
|
map.put("errorMessage","以往阶段已采购,当前阶段没有采购");
|
||||||
specialList.add(map);
|
specialList.add(map);
|
||||||
}
|
}
|
||||||
|
update(materialOrder);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -3971,22 +4048,23 @@ public class MaterialOrderService extends BaseOrderService<MaterialOrder, Long>
|
|||||||
for(ProgressStock product : progressStockService.findAll()){
|
for(ProgressStock product : progressStockService.findAll()){
|
||||||
productMap.put(product.getProgressId()+"_"+product.getProduct().getCode(),product);
|
productMap.put(product.getProgressId()+"_"+product.getProduct().getCode(),product);
|
||||||
}
|
}
|
||||||
for(Long id : ids){
|
|
||||||
MaterialOrder materialOrder = find(id);
|
|
||||||
List<MaterialOrderItem> materialOrderItemList = materialOrderItemService.findByVersionNum(materialOrder.getVersionNum(),materialOrder.getId());
|
|
||||||
for (MaterialOrderItem item : materialOrderItemList){
|
|
||||||
if (item.getUseStockCount() != null && item.getUseStockCount().compareTo(BigDecimal.ZERO)>0){
|
|
||||||
ProgressStock product = productMap.getOrDefault(item.getMaterialOrder().getProgressId()+"_"+item.getProductCode(),null);
|
|
||||||
if (product != null){
|
|
||||||
product.setStockCount(product.getStockCount().add(item.getUseStockCount()));
|
|
||||||
productMap.put(item.getMaterialOrder().getProgressId()+"_"+item.getProductCode(),product);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
delete(ids);
|
delete(ids);
|
||||||
for (String key : productMap.keySet()){
|
//后续添加虚拟仓库时使用下列代码,目前绑定在库存管理错误
|
||||||
progressStockService.update(productMap.get(key));
|
// for(Long id : ids){
|
||||||
}
|
// MaterialOrder materialOrder = find(id);
|
||||||
|
// List<MaterialOrderItem> materialOrderItemList = materialOrderItemService.findByVersionNum(materialOrder.getVersionNum(),materialOrder.getId());
|
||||||
|
// for (MaterialOrderItem item : materialOrderItemList){
|
||||||
|
// if (item.getUseStockCount() != null && item.getUseStockCount().compareTo(BigDecimal.ZERO)>0){
|
||||||
|
// ProgressStock product = productMap.getOrDefault(item.getMaterialOrder().getProgressId()+"_"+item.getProductCode(),null);
|
||||||
|
// if (product != null){
|
||||||
|
// product.setStockCount(product.getStockCount().add(item.getUseStockCount()));
|
||||||
|
// productMap.put(item.getMaterialOrder().getProgressId()+"_"+item.getProductCode(),product);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// for (String key : productMap.keySet()){
|
||||||
|
// progressStockService.update(productMap.get(key));
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user