Browse Source

[fix]

仓库管理 入库单
修改保存委外单入库service方法;
dev
王晓迪 3 months ago
parent
commit
e4a07f1e58
  1. 48
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java

48
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java

@ -480,51 +480,60 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
@Override @Override
public int updateOutsourceStorageSave(WarehouseStorageOrder warehouseStorageOrder) { public int updateOutsourceStorageSave(WarehouseStorageOrder warehouseStorageOrder) {
String loginName = ShiroUtils.getLoginName(); String loginName = ShiroUtils.getLoginName();
//假设全部入库
warehouseStorageOrder.setWarehouseStorageStatus("4");
warehouseStorageOrder.setUpdateBy(loginName); warehouseStorageOrder.setUpdateBy(loginName);
warehouseStorageOrder.setUpdateTime(DateUtils.getNowDate()); warehouseStorageOrder.setUpdateTime(DateUtils.getNowDate());
//记录一下入库时间 //记录一下入库时间
warehouseStorageOrder.setStorageTime(DateUtils.getNowDate()); warehouseStorageOrder.setStorageTime(DateUtils.getNowDate());
List<WarehouseStorageOrderDetail> warehouseStorageOrderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList(); List<WarehouseStorageOrderDetail> storageOrderDetailList = warehouseStorageOrder.getWarehouseStorageOrderDetailList();
if (StringUtils.isEmpty(warehouseStorageOrderDetailList)){ if (StringUtils.isEmpty(storageOrderDetailList)){
log.warn("入库单详情数据为空:{}",warehouseStorageOrderDetailList);
throw new BusinessException("入库单详情数据为空"); throw new BusinessException("入库单详情数据为空");
} }
//入库数 //入库数
Integer storageNum = 0; Integer storageNum = 0;
// 检查storageNum是否含有null值 // 检查storageNum是否含有null值
boolean hasThisStorageNumNull = warehouseStorageOrderDetailList.stream() boolean hasThisStorageNumNull = storageOrderDetailList.stream()
.anyMatch(item -> item.getStorageNum() == null); .anyMatch(item -> item.getStorageNum() == null);
if (hasThisStorageNumNull) { if (hasThisStorageNumNull) {
throw new BusinessException("存在入库数为空,请检查!"); throw new BusinessException("存在入库数为空,请检查!");
} }
// 计算各个字段的总和 // 计算各个字段的总和
storageNum = warehouseStorageOrderDetailList.stream() storageNum = storageOrderDetailList.stream()
.mapToInt(WarehouseStorageOrderDetail::getStorageNum) .mapToInt(WarehouseStorageOrderDetail::getStorageNum)
.sum(); .sum();
for (WarehouseStorageOrderDetail detail: storageOrderDetailList) {
int detailStorageNum = detail.getHasStorageNum() + detail.getStorageNum();
if(detailStorageNum > detail.getQualityQualifiedNum()){
throw new BusinessException("物料" +detail.getMaterialNo()+ "总入库数大于品质合格数");
}
}
//插入主表入库数量 //插入主表入库数量
warehouseStorageOrder.setStorageNum(storageNum); int orderStorageNum = warehouseStorageOrder.getStorageNum();
orderStorageNum = orderStorageNum + storageNum;
warehouseStorageOrder.setStorageNum(orderStorageNum);
for (WarehouseStorageOrderDetail warehouseStorageOrderDetail : warehouseStorageOrderDetailList) { for (WarehouseStorageOrderDetail storageOrderDetail : storageOrderDetailList) {
//更新入库单详情的数据 //更新入库单详情的数据
warehouseStorageOrderDetail.setUpdateBy(loginName); storageOrderDetail.setUpdateBy(loginName);
warehouseStorageOrderDetail.setUpdateTime(DateUtils.getNowDate()); storageOrderDetail.setUpdateTime(DateUtils.getNowDate());
//更新已入库数 //更新已入库数
warehouseStorageOrderDetail.setHasStorageNum(warehouseStorageOrderDetail.getStorageNum()); int detailStorageNum = storageOrderDetail.getHasStorageNum() + storageOrderDetail.getStorageNum();
int updateWarehouseStorageOrderDetailResult = storageOrderDetailMapper.updateWarehouseStorageOrderDetail(warehouseStorageOrderDetail); storageOrderDetail.setHasStorageNum(detailStorageNum);
int updateWarehouseStorageOrderDetailResult = storageOrderDetailMapper.updateWarehouseStorageOrderDetail(storageOrderDetail);
if (updateWarehouseStorageOrderDetailResult <= 0){ if (updateWarehouseStorageOrderDetailResult <= 0){
throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); throw new BusinessException("更新仓库入库单详情失败,未影响任何行");
} }
//更新委外入库单详情,(只更新子表,详情页面需要展示,主表直接使用入库单,不存在
OutsourceStorageDetail tempOut = new OutsourceStorageDetail(); OutsourceStorageDetail tempOut = new OutsourceStorageDetail();
tempOut.setWarehouseStorageCode(warehouseStorageOrderDetail.getWarehouseStorageCode()); tempOut.setWarehouseStorageCode(storageOrderDetail.getWarehouseStorageCode());
tempOut.setMaterialNo(warehouseStorageOrderDetail.getMaterialNo()); tempOut.setMaterialNo(storageOrderDetail.getMaterialNo());
List<OutsourceStorageDetail> outStorageDetails = outsourceStorageDetailMapper.selectOutsourceStorageDetailList(tempOut); List<OutsourceStorageDetail> outStorageDetails = outsourceStorageDetailMapper.selectOutsourceStorageDetailList(tempOut);
OutsourceStorageDetail updateDetail = outStorageDetails.get(0); OutsourceStorageDetail updateDetail = outStorageDetails.get(0);
updateDetail.setTakenMaterial(new BigDecimal(warehouseStorageOrderDetail.getHasStorageNum())); updateDetail.setTakenMaterial(new BigDecimal(storageOrderDetail.getHasStorageNum()));//入库单详情已领料数已更新
updateDetail.setUpdateBy(loginName); updateDetail.setUpdateBy(loginName);
updateDetail.setUpdateTime(DateUtils.getNowDate()); updateDetail.setUpdateTime(DateUtils.getNowDate());
int outUpdateResult = outsourceStorageDetailMapper.updateOutsourceStorageDetail(updateDetail); int outUpdateResult = outsourceStorageDetailMapper.updateOutsourceStorageDetail(updateDetail);
@ -532,12 +541,11 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
throw new BusinessException("更新委外入库单详情失败!"); throw new BusinessException("更新委外入库单详情失败!");
} }
WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail updateStorageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId());
int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); int inventoryInquiryResult = createWarehouseInventoryInquiry(updateStorageOrderDetail);
if (inventoryInquiryResult <= 0){ if (inventoryInquiryResult <= 0){
throw new BusinessException("更新/新增库存查询失败,未影响任何行"); throw new BusinessException("更新/新增库存查询失败,未影响任何行");
} }
} }
//更新入库单的数据 //更新入库单的数据
@ -740,7 +748,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
if(StringUtils.isNotEmpty(damageChildren)){ if(StringUtils.isNotEmpty(damageChildren)){
for (WarehouseInventoryReportDamageChild damageChild:damageChildren) { for (WarehouseInventoryReportDamageChild damageChild:damageChildren) {
BigDecimal scrapNum = damageChild.getActualScrapQuantity(); BigDecimal scrapNum = damageChild.getActualScrapQuantity();
scrapSum = scrapSum.add(scrapSum); scrapSum = scrapSum.add(scrapNum);
} }
} }
// 存在库存查询记录,更新可用库存数 // 存在库存查询记录,更新可用库存数

Loading…
Cancel
Save