Browse Source

[fix]

仓库管理 入库单
修改生成/更新库存查询service方法,设置入库数累加为历史总数;
修改保存入库-采购单(仓库入库)service方法,添加子表已入库数的更新;
修改生产单-出库service方法,领料后更新生产订单生产状态为生产中;
修改采购入库页面和详情页面,添加品质已合格数字段;
修改委外入库单生成入库单service方法,补充字段;
dev
王晓迪 3 months ago
parent
commit
b27d96c315
  1. 25
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceStorageOrderServiceImpl.java
  2. 1
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseStorageOrderService.java
  3. 6
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java
  4. 48
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java
  5. 8
      ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchaseWarehouse.html
  6. 5
      ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchaseWarehouseDetail.html

25
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceStorageOrderServiceImpl.java

@ -68,12 +68,16 @@ public class OutsourceStorageOrderServiceImpl implements IOutsourceStorageOrderS
WarehouseStorageOrder warehouseStorageOrder = new WarehouseStorageOrder(); WarehouseStorageOrder warehouseStorageOrder = new WarehouseStorageOrder();
String loginName = ShiroUtils.getLoginName(); String loginName = ShiroUtils.getLoginName();
warehouseStorageOrder.setCreateBy(loginName); warehouseStorageOrder.setCreateBy(loginName);
warehouseStorageOrder.setCreateTime(DateUtils.getNowDate());
warehouseStorageOrder.setWarehouseOrderType("3");
warehouseStorageOrder.setWarehouseStorageType("4");
warehouseStorageOrder.setWarehouseStorageStatus("0");
warehouseStorageOrder.setWarehouseQualityStatus("0");
String warehouseStorageCode = redisCache.generateBillNo("RK"); String warehouseStorageCode = redisCache.generateBillNo("RK");
warehouseStorageOrder.setCreateTime(DateUtils.getNowDate());
warehouseStorageOrder.setWarehouseOrderType("3");//委外订单
warehouseStorageOrder.setWarehouseStorageType("4");//委外入库
warehouseStorageOrder.setWarehouseStorageStatus("0");//待暂收
warehouseStorageOrder.setWarehouseQualityStatus("0");//待品质
warehouseStorageOrder.setWarehouseDeptType("0");//入库部门-仓库
warehouseStorageOrder.setStorageNum(0);
warehouseStorageOrder.setQualityQualifiedNum(0);
warehouseStorageOrder.setQualityUnqualifiedNum(0);
warehouseStorageOrder.setWarehouseStorageCode(warehouseStorageCode); warehouseStorageOrder.setWarehouseStorageCode(warehouseStorageCode);
warehouseStorageOrder.setNotifyArrivedNum(outsourceStorage.getNotifyArrivedNum()); warehouseStorageOrder.setNotifyArrivedNum(outsourceStorage.getNotifyArrivedNum());
warehouseStorageOrder.setArrivedTime(DateUtils.getNowDate()); warehouseStorageOrder.setArrivedTime(DateUtils.getNowDate());
@ -99,7 +103,7 @@ public class OutsourceStorageOrderServiceImpl implements IOutsourceStorageOrderS
// 获取列表中的第一条记录 // 获取列表中的第一条记录
if (!details.isEmpty()) { if (!details.isEmpty()) {
OutsourceStorageDetail firstDetail = details.get(0); OutsourceStorageDetail firstDetail = details.get(0);
System.out.println("Material No: " + materialNo + ", First Detail: " + firstDetail); // System.out.println("Material No: " + materialNo + ", First Detail: " + firstDetail);
WarehouseStorageOrderDetail warehouseStorageOrderDetail = generateWarehouseStorageOrderDetail(firstDetail); WarehouseStorageOrderDetail warehouseStorageOrderDetail = generateWarehouseStorageOrderDetail(firstDetail);
warehouseStorageOrderDetail.setWarehouseStorageCode(warehouseStorageCode); warehouseStorageOrderDetail.setWarehouseStorageCode(warehouseStorageCode);
warehouseStorageOrderDetailList.add(warehouseStorageOrderDetail); warehouseStorageOrderDetailList.add(warehouseStorageOrderDetail);
@ -122,7 +126,14 @@ public class OutsourceStorageOrderServiceImpl implements IOutsourceStorageOrderS
storageOrderDetail.setWarehouseStorageType("4"); storageOrderDetail.setWarehouseStorageType("4");
storageOrderDetail.setWarehouseOrderType("3"); storageOrderDetail.setWarehouseOrderType("3");
storageOrderDetail.setNotifyArriveNum(outstorageDetail.getTakingMaterial().intValue()); storageOrderDetail.setNotifyArriveNum(outstorageDetail.getTakingMaterial().intValue());
storageOrderDetail.setActualHasArrivedNum(outstorageDetail.getTakingMaterial().intValue()); // storageOrderDetail.setActualHasArrivedNum(outstorageDetail.getTakingMaterial().intValue());
storageOrderDetail.setNotifyHasArrivedNum(outstorageDetail.getTakingMaterial().intValue());
storageOrderDetail.setHasStorageNum(0);
storageOrderDetail.setActualHasArrivedNum(0);
storageOrderDetail.setTemporaryHasQualifiedNum(0);
storageOrderDetail.setQualityQualifiedNum(0);
storageOrderDetail.setQualityHasQualifiedNum(0);
storageOrderDetail.setMaterialNo(outstorageDetail.getMaterialNo()); storageOrderDetail.setMaterialNo(outstorageDetail.getMaterialNo());
storageOrderDetail.setMaterialName(outstorageDetail.getMaterialName()); storageOrderDetail.setMaterialName(outstorageDetail.getMaterialName());
storageOrderDetail.setMaterialType(outstorageDetail.getMaterialType()); storageOrderDetail.setMaterialType(outstorageDetail.getMaterialType());

1
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseStorageOrderService.java

@ -101,7 +101,6 @@ public interface IWarehouseStorageOrderService
/** /**
* 修改保存暂收-委外单(委外入库) * 修改保存暂收-委外单(委外入库)
* */ * */
@Transactional(rollbackFor = Exception.class)
int temporaryOutsourceSave(WarehouseStorageOrder warehouseStorageOrder); int temporaryOutsourceSave(WarehouseStorageOrder warehouseStorageOrder);
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)

6
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseOutOrderServiceImpl.java

@ -1016,6 +1016,12 @@ public class WarehouseOutOrderServiceImpl implements IWarehouseOutOrderService
log.warn("更新生产领料单信息失败"); log.warn("更新生产领料单信息失败");
throw new BusinessException("更新生产领料单信息失败"); throw new BusinessException("更新生产领料单信息失败");
} }
SysMakeOrder makeOrder = sysMakeOrderMapper.selectMakeOrderByMakeNo(oldMakeorderPick.getMakeNo());
makeOrder.setMakeStatus("4");//生产中
makeOrder.setUpdateBy(loginName);
makeOrder.setUpdateTime(new Date());
sysMakeOrderMapper.updateSysMakeOrder(makeOrder);
return warehouseOutOrderMapper.updateWarehouseOutOrder(warehouseOutOrder); return warehouseOutOrderMapper.updateWarehouseOutOrder(warehouseOutOrder);
} }

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

@ -412,8 +412,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
String loginName = ShiroUtils.getLoginName(); String loginName = ShiroUtils.getLoginName();
warehouseStorageOrder.setUpdateBy(loginName); warehouseStorageOrder.setUpdateBy(loginName);
warehouseStorageOrder.setUpdateTime(DateUtils.getNowDate()); warehouseStorageOrder.setUpdateTime(DateUtils.getNowDate());
//改变状态为已暂收 //改变状态为待入库
warehouseStorageOrder.setWarehouseStorageStatus("1"); warehouseStorageOrder.setWarehouseStorageStatus("2");
//设置品质状态,为待品质 //设置品质状态,为待品质
warehouseStorageOrder.setWarehouseQualityStatus("0"); warehouseStorageOrder.setWarehouseQualityStatus("0");
warehouseStorageOrder.setWarehouseEmployee(loginName); warehouseStorageOrder.setWarehouseEmployee(loginName);
@ -432,11 +432,11 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
actualArriveNum = warehouseStorageOrderDetailList.stream().mapToInt(WarehouseStorageOrderDetail::getActualArriveNum).sum(); actualArriveNum = warehouseStorageOrderDetailList.stream().mapToInt(WarehouseStorageOrderDetail::getActualArriveNum).sum();
int temporaryQualifiedNum = 0; int temporaryQualifiedNum = 0;
//检查填写的品质合格数是否有空值 //检查填写的暂收合格数是否有空值
boolean hasTemporaryQualifiedNumNull = warehouseStorageOrderDetailList.stream() boolean hasTemporaryQualifiedNumNull = warehouseStorageOrderDetailList.stream()
.anyMatch(item -> item.getTemporaryQualifiedNum() == null); .anyMatch(item -> item.getTemporaryQualifiedNum() == null);
if (hasTemporaryQualifiedNumNull) { if (hasTemporaryQualifiedNumNull) {
throw new BusinessException("存在品质合格数为空,请检查!"); throw new BusinessException("存在暂收合格数为空,请检查!");
} }
//入库单主表的暂收合格数为子表的合计 //入库单主表的暂收合格数为子表的合计
temporaryQualifiedNum = warehouseStorageOrderDetailList.stream().mapToInt(WarehouseStorageOrderDetail::getTemporaryQualifiedNum).sum(); temporaryQualifiedNum = warehouseStorageOrderDetailList.stream().mapToInt(WarehouseStorageOrderDetail::getTemporaryQualifiedNum).sum();
@ -461,7 +461,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
if (updateResult <= 0) { if (updateResult <= 0) {
throw new BusinessException("更新入库单主记录失败"); throw new BusinessException("更新入库单主记录失败");
} }
if(temporaryQualifiedNum>0){
try { try {
qualityOrderService.insertQualityOrderByOutsourceStorageOrder(warehouseStorageOrder, warehouseStorageOrder.getWarehouseStorageOrderDetailList()); qualityOrderService.insertQualityOrderByOutsourceStorageOrder(warehouseStorageOrder, warehouseStorageOrder.getWarehouseStorageOrderDetailList());
} catch (Exception e) { } catch (Exception e) {
@ -469,7 +469,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
log.error("生成品质单时发生错误", e); log.error("生成品质单时发生错误", e);
throw new BusinessException("生成品质单时发生错误"); throw new BusinessException("生成品质单时发生错误");
} }
}
return updateResult; return updateResult;
} }
@ -752,17 +752,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
inventoryInquiry.setAvailableStockNum(avaliableStorage); inventoryInquiry.setAvailableStockNum(avaliableStorage);
inventoryInquiry.setReportDamageNum(scrapSum); inventoryInquiry.setReportDamageNum(scrapSum);
// 设置历史总数 // 设置历史总数
if(warehouseStorageType.equals("0")){
BigDecimal historicalNum = getHistoricalTotalFromQualityOrder(warehouseStorageOrderDetail);
BigDecimal historicalTotal = inventoryInquiry.getHistoricalTotal();
historicalTotal = historicalTotal.add(historicalNum);
inventoryInquiry.setHistoricalTotal(historicalTotal);
}else{
BigDecimal historicalNum = BigDecimal.valueOf(warehouseStorageOrderDetail.getStorageNum());
BigDecimal historicalTotal = inventoryInquiry.getHistoricalTotal(); BigDecimal historicalTotal = inventoryInquiry.getHistoricalTotal();
historicalTotal = historicalTotal.add(historicalNum); historicalTotal = historicalTotal.add(storagenum);
inventoryInquiry.setHistoricalTotal(historicalTotal); inventoryInquiry.setHistoricalTotal(historicalTotal);
}
inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName());
inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); inventoryInquiry.setUpdateTime(DateUtils.getNowDate());
return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry); return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry);
@ -779,12 +771,7 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
Integer storage = warehouseStorageOrderDetail.getStorageNum(); Integer storage = warehouseStorageOrderDetail.getStorageNum();
BigDecimal storagenum = BigDecimal.valueOf(storage); BigDecimal storagenum = BigDecimal.valueOf(storage);
// 设置历史总数 // 设置历史总数
if(warehouseStorageType.equals("0")){
BigDecimal historicalNum = getHistoricalTotalFromQualityOrder(warehouseStorageOrderDetail);
inventoryInquiry.setHistoricalTotal(historicalNum);
}else{
inventoryInquiry.setHistoricalTotal(storagenum); inventoryInquiry.setHistoricalTotal(storagenum);
}
inventoryInquiry.setAvailableStockNum(storagenum); inventoryInquiry.setAvailableStockNum(storagenum);
inventoryInquiry.setReportDamageNum(scrapSum); inventoryInquiry.setReportDamageNum(scrapSum);
@ -931,9 +918,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
oldPurchaseOrderChild.setUpdateTime(DateUtils.getNowDate()); oldPurchaseOrderChild.setUpdateTime(DateUtils.getNowDate());
Integer storageNumDetail = warehouseStorageOrderDetail.getStorageNum(); Integer storageNumDetail = warehouseStorageOrderDetail.getStorageNum();
Integer temporaryQualifiedNum = warehouseStorageOrderDetail.getTemporaryQualifiedNum(); Integer qualityHasQualifiedNum = warehouseStorageOrderDetail.getQualityHasQualifiedNum();
if (temporaryQualifiedNum < storageNumDetail){ if (qualityHasQualifiedNum < storageNumDetail){
throw new BusinessException("入库数量不能大于暂收合格数"); throw new BusinessException("入库数量不能大于品质合格数");
} }
Integer hasStorageNum = warehouseStorageOrderDetail.getHasStorageNum(); Integer hasStorageNum = warehouseStorageOrderDetail.getHasStorageNum();
@ -941,19 +928,22 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
//更新已入库数 //更新已入库数
hasStorageNum = storageNumDetail; hasStorageNum = storageNumDetail;
oldPurchaseOrderChild.setHasStorageNum(hasStorageNum); oldPurchaseOrderChild.setHasStorageNum(hasStorageNum);
warehouseStorageOrderDetail.setHasStorageNum(hasStorageNum);
}else{ }else{
hasStorageNum = hasStorageNum + storageNumDetail; hasStorageNum = hasStorageNum + storageNumDetail;
oldPurchaseOrderChild.setHasStorageNum(hasStorageNum); oldPurchaseOrderChild.setHasStorageNum(hasStorageNum);
warehouseStorageOrderDetail.setHasStorageNum(hasStorageNum);
} }
if (temporaryQualifiedNum < hasStorageNum){ if (qualityHasQualifiedNum < hasStorageNum){
throw new BusinessException("已入库数量不能大于暂收合格数"); throw new BusinessException("已入库数量不能大于品质合格数");
} }
int updatePurchaseOrderChildResult = purchaseOrderChildMapper.updatePurchaseOrderChild(oldPurchaseOrderChild); int updatePurchaseOrderChildResult = purchaseOrderChildMapper.updatePurchaseOrderChild(oldPurchaseOrderChild);
if (updatePurchaseOrderChildResult <= 0){ if (updatePurchaseOrderChildResult <= 0){
throw new BusinessException("更新采购订单子表数据失败"); throw new BusinessException("更新采购订单子表数据失败");
} }
int updateWarehouseStorageOrderDetailResult = storageOrderDetailMapper.updateWarehouseStorageOrderDetail(warehouseStorageOrderDetail); int updateWarehouseStorageOrderDetailResult = storageOrderDetailMapper.updateWarehouseStorageOrderDetail(warehouseStorageOrderDetail);
if (updateWarehouseStorageOrderDetailResult <= 0){ if (updateWarehouseStorageOrderDetailResult <= 0){
throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); throw new BusinessException("更新仓库入库单详情失败,未影响任何行");
@ -966,10 +956,10 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
} }
//更新生产单数据 //更新生产单数据
// int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList); int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList);
// if (updateMakeOrderResult <= 0){ if (updateMakeOrderResult <= 0){
// throw new BusinessException("更新生产订单失败,未影响任何行"); throw new BusinessException("更新生产订单失败,未影响任何行");
// } }
//更新开发修改单数据 //更新开发修改单数据
// String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode(); // String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode();

8
ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchaseWarehouse.html

@ -163,6 +163,7 @@
"notifyArriveNum": item.notifyArriveNum, "notifyArriveNum": item.notifyArriveNum,
"actualArriveNum": item.actualArriveNum, "actualArriveNum": item.actualArriveNum,
"temporaryQualifiedNum": item.temporaryQualifiedNum, "temporaryQualifiedNum": item.temporaryQualifiedNum,
"qualityHasQualifiedNum":item.qualityHasQualifiedNum,
"temporaryRemark": item.temporaryRemark, "temporaryRemark": item.temporaryRemark,
"temporaryReportUrl": item.temporaryReportUrl, "temporaryReportUrl": item.temporaryReportUrl,
"storageNum": item.storageNum, "storageNum": item.storageNum,
@ -269,6 +270,11 @@
title: '暂收已合格数', title: '暂收已合格数',
field: 'temporaryHasQualifiedNum', field: 'temporaryHasQualifiedNum',
}, },
{
title: '品质已合格数',
align: 'center',
field: 'qualityHasQualifiedNum',
},
{ {
title: '已入库数', title: '已入库数',
field: 'hasStorageNum', field: 'hasStorageNum',
@ -324,7 +330,7 @@
} }
// 检查 storageNum 是否存在 // 检查 storageNum 是否存在
if (row.storageNum === undefined || row.storageNum === null) { if (row.storageNum === undefined || row.storageNum === null|| row.storageNum === 0) {
return ""; return "";
} }

5
ruoyi-admin/src/main/resources/templates/warehouse/storageOrder/storagePurchaseWarehouseDetail.html

@ -268,6 +268,11 @@
title: '暂收已合格数', title: '暂收已合格数',
field: 'temporaryHasQualifiedNum', field: 'temporaryHasQualifiedNum',
}, },
{
title: '品质已合格数',
align: 'center',
field: 'qualityHasQualifiedNum',
},
{ {
title: '已入库数', title: '已入库数',
field: 'hasStorageNum', field: 'hasStorageNum',

Loading…
Cancel
Save