diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java index 9e4f6a05..f2baea1b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java @@ -228,13 +228,15 @@ public class ErpMaterialController extends BaseController if (processIsFinish) { // 审核通过 erpMaterialVo.setAuditStatus("1"); + + //审核通过添加物料库存查询记录 + erpMaterialService.addInventoryInquiry(erpMaterialVo); + // 提交 if("submit".equals(instanceType)){ //物料审核通过后,填写通过后库存物料信息初始化,填写对应的信息 // 使用状态-是 erpMaterialVo.setUseStatus("1"); - //审核通过后添加库存物料信息 - erpMaterialService.addStockMaterial(erpMaterialVo); } // 作废 else if("cancel".equals(instanceType)){ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpMaterialService.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpMaterialService.java index 7238540d..dfc05755 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpMaterialService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpMaterialService.java @@ -151,7 +151,10 @@ public interface IErpMaterialService */ public ProcessInstance submitApply(ErpMaterial erpMaterial); - Integer addStockMaterial(ErpMaterialVo erpMaterialVo); + /** + * 审核通过添加物料库存查询记录 + * */ + void addInventoryInquiry(ErpMaterialVo erpMaterialVo); /** diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java index 99a6e1f5..948bc63e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java @@ -754,31 +754,36 @@ public class ErpMaterialServiceImpl implements IErpMaterialService } - /*审核通过添加库存物料信息*/ + /** + * + * 审核通过添加物料库存查询记录 + * */ @Override @Transactional(rollbackFor = Exception.class) - public Integer addStockMaterial(ErpMaterialVo erpMaterialVo) { + public void addInventoryInquiry(ErpMaterialVo erpMaterialVo) { + + String materialNo = erpMaterialVo.getMaterialNo(); + ErpMaterialVo oldErpMaterialVo = erpMaterialMapper.selectErpMaterialByMaterialNo(materialNo); + WarehouseInventoryInquiry warehouseInventoryInquiry = new WarehouseInventoryInquiry(); - warehouseInventoryInquiry.setMaterialNo(erpMaterialVo.getMaterialNo()); - warehouseInventoryInquiry.setMaterialName(erpMaterialVo.getMaterialName()); - warehouseInventoryInquiry.setMaterialDescribe(erpMaterialVo.getDescribe()); - warehouseInventoryInquiry.setMaterialBrand(erpMaterialVo.getBrand()); - warehouseInventoryInquiry.setMaterialProcessMethod(erpMaterialVo.getProcessMethod()); - warehouseInventoryInquiry.setMaterialUnit(erpMaterialVo.getUnit()); - warehouseInventoryInquiry.setMaterialPhotourl(erpMaterialVo.getPhotoUrl()); - warehouseInventoryInquiry.setMaterialType(erpMaterialVo.getMaterialType()); + warehouseInventoryInquiry.setMaterialNo(oldErpMaterialVo.getMaterialNo()); + warehouseInventoryInquiry.setMaterialName(oldErpMaterialVo.getMaterialName()); + warehouseInventoryInquiry.setMaterialDescribe(oldErpMaterialVo.getDescribe()); + warehouseInventoryInquiry.setMaterialBrand(oldErpMaterialVo.getBrand()); + warehouseInventoryInquiry.setMaterialProcessMethod(oldErpMaterialVo.getProcessMethod()); + warehouseInventoryInquiry.setMaterialModel(oldErpMaterialVo.getMaterialModel()); + warehouseInventoryInquiry.setMaterialUnit(oldErpMaterialVo.getUnit()); + warehouseInventoryInquiry.setMaterialPhotourl(oldErpMaterialVo.getPhotoUrl()); + warehouseInventoryInquiry.setMaterialType(oldErpMaterialVo.getMaterialType()); warehouseInventoryInquiry.setMaterialUseStatus(erpMaterialVo.getUseStatus()); - warehouseInventoryInquiry.setWarehouseDept(erpMaterialVo.getWarehouseDept()); - if(erpMaterialVo.getDescribe().contains(",")){ - warehouseInventoryInquiry.setMaterialSpecification(erpMaterialVo.getDescribe().split(" ")[0]); - warehouseInventoryInquiry.setMaterialModel(erpMaterialVo.getDescribe().split(",")[1]); - } - String user = ShiroUtils.getLoginName(); - warehouseInventoryInquiry.setCreateBy(user); + warehouseInventoryInquiry.setWarehouseDept(oldErpMaterialVo.getWarehouseDept()); + String loginName = ShiroUtils.getLoginName(); + warehouseInventoryInquiry.setCreateBy(loginName); warehouseInventoryInquiry.setCreateTime(DateUtils.getNowDate()); - warehouseInventoryInquiry.setUpdateBy(user); - warehouseInventoryInquiry.setUpdateTime(DateUtils.getNowDate()); - return inventoryInquiryMapper.insertWarehouseInventoryInquiry(warehouseInventoryInquiry); + int insertResult = inventoryInquiryMapper.insertWarehouseInventoryInquiry(warehouseInventoryInquiry); + if (insertResult <= 0){ + throw new BusinessException("添加物料库存查询记录失败"); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java index 364d5f87..934afda0 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java @@ -36,6 +36,11 @@ public interface PurchaseOrderMapper List selectAllPurchaseOrderList(PurchaseOrder purchaseOrder); + /** + * 通过采购订单编号查询采购订单集合 + * */ + List selectPurchaseOrderChildListByPurchaseCodeList(List purchaseCodeList); + /** * 通过采购订单号数组查询采购订单集合 @@ -103,4 +108,5 @@ public interface PurchaseOrderMapper //校验采购订单编号是否唯一 public Integer checkPurchaseOrderCodeUnique(String purchaseOrderCode); + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java index 37173877..acb4255c 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java @@ -125,4 +125,9 @@ public interface IPurchaseOrderService int addPurchaseStorageSave(PurchaseOrder purchaseOrder); int detailSave(PurchaseOrder purchaseOrder); + + /** + * 通过采购订单号集合查询采购订单集合 + * */ + List selectPurchaseOrderChildListByPurchaseCodeList(List purchaseCodeList); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java index 420027d8..adb73511 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java @@ -252,6 +252,15 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService return purchaseOrderList; } + /** + * 通过采购订单号集合查询采购订单集合 + * */ + @Override + public List selectPurchaseOrderChildListByPurchaseCodeList(List purchaseCodeList) { + List purchaseOrderList = purchaseOrderMapper.selectPurchaseOrderChildListByPurchaseCodeList(purchaseCodeList); + return purchaseOrderList; + } + /** * 通过采购订单号数组查询采购订单集合 * */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java index 3c03236f..fd6d2a84 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java @@ -72,7 +72,7 @@ public class BaseRequisitioningOrderChild extends BaseEntity /** 物料的数量 */ @Excel(name = "物料的数量") - private Long materialNum; + private Integer materialNum; /** 物料的不含税单价(RMB) */ @Excel(name = "物料的不含税单价(RMB)") @@ -217,8 +217,12 @@ public class BaseRequisitioningOrderChild extends BaseEntity this.unit = unit; } - public void setMaterialNum(Long materialNum) - { + + public Integer getMaterialNum() { + return materialNum; + } + + public void setMaterialNum(Integer materialNum) { this.materialNum = materialNum; } @@ -230,10 +234,6 @@ public class BaseRequisitioningOrderChild extends BaseEntity this.warehouseDept = warehouseDept; } - public Long getMaterialNum() - { - return materialNum; - } public void setMaterialRmb(BigDecimal materialRmb) { this.materialRmb = materialRmb; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java index f89773bb..f339ff49 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java @@ -102,6 +102,9 @@ public interface IBaseRequisitioningOrderService Object getRequisitioningOrder(); - /*生成采购计划*/ - Integer generatePurchasePlan(BaseRequisitioningOrder baseRequisitioningOrder); + /** + * + * 请购单审核通过后生成采购计划 + * */ + void generatePurchasePlan(BaseRequisitioningOrder baseRequisitioningOrder); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java index 7ca3ba55..57540090 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java @@ -587,50 +587,76 @@ public class BaseRequisitioningOrderServiceImpl implements IBaseRequisitioningOr } } + /** + * 请购单审核通过后生成采购计划 + * */ + @Transactional(rollbackFor = Exception.class) @Override - public Integer generatePurchasePlan(BaseRequisitioningOrder requisitioningOrder){ - /*请购的物料信息,封装为采购计划需求的采购信息*/ + public void generatePurchasePlan(BaseRequisitioningOrder requisitioningOrder){ + + String loginName = ShiroUtils.getLoginName(); + List requisitioningOrderDetailList = baseRequisitioningOrderChildMapper.selectBaseRequisitioningOrderChildByCode(requisitioningOrder.getRequisitioningCode()); - //先将请购物料转换为采购物料需求 - List purchasePlanChildList = new ArrayList<>(); - PurchasePlan purchasePlan = new PurchasePlan(); - BigDecimal noRmbSum = BigDecimal.ZERO; - BigDecimal rmbSum = BigDecimal.ZERO; - Integer materialAmount = requisitioningOrderDetailList.size(); - Long materialSum = 0L; - //采购计划关联单号 - purchasePlan.setPurchasePlanCode(redisCache.generateBillNo("CGJH")); - purchasePlan.setPurchasePlanStatus("0"); - purchasePlan.setCorrelationCode(requisitioningOrder.getRequisitioningCode()); - purchasePlan.setPurchasePlanType("2"); - purchasePlan.setMaterialSum(materialAmount); - for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) { - PurchasePlanChild purchasePlanChild = new PurchasePlanChild(); - purchasePlanChild.setPurchasePlanCode(purchasePlan.getPurchasePlanCode()); - purchasePlanChild.setWarehouseDept(requisitioningOrderDetail.getWarehouseDept()); - purchasePlanChild.setMaterialNo(requisitioningOrderDetail.getMaterialCode()); - purchasePlanChild.setMaterialName(requisitioningOrderDetail.getMaterialName()); - purchasePlanChild.setMaterialDescribe(requisitioningOrderDetail.getDescribe()); - purchasePlanChild.setMaterialBrand(requisitioningOrderDetail.getBrand()); - purchasePlanChild.setMaterialUnit(requisitioningOrderDetail.getUnit()); - purchasePlanChild.setMaterialPhotourl(requisitioningOrderDetail.getPhotoUrl()); - purchasePlanChild.setMaterialProcessMethod(requisitioningOrderDetail.getProcessMethod()); - // purchasePlanChild.setMaterialNum(Double.valueOf(requisitioningOrderDetail.getMaterialNum())); - purchasePlanChild.setMaterialType(requisitioningOrderDetail.getMaterialType()); - purchasePlanChild.setMaterialNoRmbSum(requisitioningOrderDetail.getMaterialNoRmb()); - purchasePlanChild.setMaterialRmbSum(requisitioningOrderDetail.getMaterialRmb()); -// noRmbSum = noRmbSum.add(requisitioningOrderDetail.getMaterialNoRmb()); - rmbSum = rmbSum.add(requisitioningOrderDetail.getMaterialRmbSum()); - materialSum += requisitioningOrderDetail.getMaterialNum(); - planChildMapper.insertPurchasePlanChild(purchasePlanChild); - purchasePlanChildList.add(purchasePlanChild); + + + //保留加工方式为采购的 + requisitioningOrderDetailList = requisitioningOrderDetailList.stream().filter(item -> "0".equals(item.getProcessMethod())).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(requisitioningOrderDetailList)){ + int materialNumSum = requisitioningOrderDetailList.stream().mapToInt(BaseRequisitioningOrderChild::getMaterialNum).sum(); + + List purchasePlanChildList = new ArrayList<>(); + PurchasePlan purchasePlan = new PurchasePlan(); + + Integer materialAmount = requisitioningOrderDetailList.size(); + String purchasePlanCode = redisCache.generateBillNo("CGJH"); + //采购计划单号 + purchasePlan.setPurchasePlanCode(purchasePlanCode); + + for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) { + PurchasePlanChild purchasePlanChild = new PurchasePlanChild(); + purchasePlanChild.setPurchasePlanCode(purchasePlanCode); + purchasePlanChild.setPurchasePlanStatus("0"); + + purchasePlanChild.setWarehouseDept(requisitioningOrderDetail.getWarehouseDept()); + purchasePlanChild.setMaterialNo(requisitioningOrderDetail.getMaterialCode()); + purchasePlanChild.setMaterialName(requisitioningOrderDetail.getMaterialName()); + purchasePlanChild.setMaterialDescribe(requisitioningOrderDetail.getDescribe()); + purchasePlanChild.setMaterialBrand(requisitioningOrderDetail.getBrand()); + purchasePlanChild.setMaterialModel(requisitioningOrderDetail.getMaterialModel()); + purchasePlanChild.setMaterialUnit(requisitioningOrderDetail.getUnit()); + purchasePlanChild.setMaterialPhotourl(requisitioningOrderDetail.getPhotoUrl()); + purchasePlanChild.setMaterialProcessMethod(requisitioningOrderDetail.getProcessMethod()); + purchasePlanChild.setMaterialType(requisitioningOrderDetail.getMaterialType()); + purchasePlanChild.setPlanPurchaseNum(requisitioningOrderDetail.getMaterialNum()); + purchasePlanChild.setPurchaseNum(requisitioningOrderDetail.getMaterialNum()); + purchasePlanChild.setCreateTime(new Date()); + purchasePlanChild.setCreateBy(loginName); + purchasePlanChildList.add(purchasePlanChild); + } + + int batchInsertPurchasePlanChildResult = planChildMapper.batchInsertPurchasePlanChild(purchasePlanChildList); + if (batchInsertPurchasePlanChildResult <= 0){ + throw new BusinessException("插入采购计划子表数据失败"); + } + + purchasePlan.setPurchasePlanStatus("0"); + purchasePlan.setCorrelationCode(requisitioningOrder.getRequisitioningCode()); + purchasePlan.setPurchasePlanType("2"); + purchasePlan.setMaterialSum(materialAmount); + purchasePlan.setPlanPurchaseSum(materialNumSum); + purchasePlan.setPurchaseSum(materialNumSum); + + purchasePlan.setCreateBy(requisitioningOrder.getCreateBy()); + purchasePlan.setApplyUser(requisitioningOrder.getApplyUser()); + purchasePlan.setCreateTime(DateUtils.getNowDate()); + int insertPurchasePlanResult = purchasePlanMapper.insertPurchasePlan(purchasePlan); + if (insertPurchasePlanResult <= 0){ + throw new BusinessException("插入采购计划数据失败"); + } + + } - purchasePlan.setMaterialSum(Math.toIntExact(materialSum)); - purchasePlan.setCreateBy(requisitioningOrder.getCreateBy()); - purchasePlan.setApplyUser(requisitioningOrder.getApplyUser()); - purchasePlan.setCreateTime(DateUtils.getNowDate()); - return purchasePlanMapper.insertPurchasePlan(purchasePlan); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java index 5c027c68..aee426ec 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java @@ -1,10 +1,7 @@ package com.ruoyi.warehouse.controller; import java.util.List; - -import com.ruoyi.system.domain.OutsourceQuoteChild; import com.ruoyi.warehouse.domain.WarehouseInventoryInquiryDetail; -import com.ruoyi.warehouse.domain.WarehouseInventoryReportDamage; import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryDetailService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; @@ -163,4 +160,30 @@ public class WarehouseInventoryInquiryController extends BaseController return getDataTable(list); } + + /** + * 修改可用库存 + * */ + @GetMapping("/editAvailableStock/{inventoryInquiryId}") + public String editAvailableStock(@PathVariable("inventoryInquiryId") Long inventoryInquiryId, ModelMap mmap) + { + WarehouseInventoryInquiry warehouseInventoryInquiry = warehouseInventoryInquiryService.showEditAvailableStock(inventoryInquiryId); + + mmap.put("warehouseInventoryInquiry", warehouseInventoryInquiry); + return prefix + "/editAvailableStock"; + } + + + /** + * 修改保存可用库存 + */ + @RequiresPermissions("warehouse:inventoryInquiry:editAvailableStock") + @Log(title = "仓库库存查询", businessType = BusinessType.UPDATE) + @PostMapping("/editAvailableStock") + @ResponseBody + public AjaxResult editAvailableStockSave(WarehouseInventoryInquiry warehouseInventoryInquiry) + { + return toAjax(warehouseInventoryInquiryService.updateAvailableStock(warehouseInventoryInquiry)); + } + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java index d7b2b02d..c8b71881 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java @@ -85,6 +85,16 @@ public class WarehouseInventoryInquiry extends BaseEntity @Excel(name = "可用库存数", sort = 9) private Integer availableStockNum; + + /** 未占用共享可用库存*/ + private Integer noOccupancyNum; + + /** 修改库存数量*/ + private Integer editStockNum; + + /** 修改类型(0增加固定可用库存、1减少固定可用库存)*/ + private String inventoryEditType; + /** 物料归属可用库存数 */ // @Excel(name = "物料归属可用库存数") private Integer attributionAvailableStockNum; @@ -262,6 +272,30 @@ public class WarehouseInventoryInquiry extends BaseEntity this.availableStockNum = availableStockNum; } + public Integer getNoOccupancyNum() { + return noOccupancyNum; + } + + public void setNoOccupancyNum(Integer noOccupancyNum) { + this.noOccupancyNum = noOccupancyNum; + } + + public Integer getEditStockNum() { + return editStockNum; + } + + public void setEditStockNum(Integer editStockNum) { + this.editStockNum = editStockNum; + } + + public String getInventoryEditType() { + return inventoryEditType; + } + + public void setInventoryEditType(String inventoryEditType) { + this.inventoryEditType = inventoryEditType; + } + public Integer getAttributionAvailableStockNum() { return attributionAvailableStockNum; } @@ -352,6 +386,9 @@ public class WarehouseInventoryInquiry extends BaseEntity .append("lockStockNum", getLockStockNum()) .append("stockLossesNum", getStockLossesNum()) .append("availableStockNum", getAvailableStockNum()) + .append("noOccupancyNum", getNoOccupancyNum()) + .append("editStockNum", getEditStockNum()) + .append("inventoryEditType", getInventoryEditType()) .append("attributionAvailableStockNum", getAttributionAvailableStockNum()) .append("noattributionAvailableStockNum", getNoattributionAvailableStockNum()) .append("useNum", getUseNum()) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java index d5b5a676..f1da2998 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java @@ -5,15 +5,14 @@ import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry; /** * 仓库库存查询Service接口 - * + * * @author 刘晓旭 * @date 2024-06-06 */ -public interface IWarehouseInventoryInquiryService -{ +public interface IWarehouseInventoryInquiryService { /** * 查询仓库库存查询 - * + * * @param inventoryInquiryId 仓库库存查询ID * @return 仓库库存查询 */ @@ -21,7 +20,7 @@ public interface IWarehouseInventoryInquiryService /** * 查询仓库库存查询列表 - * + * * @param warehouseInventoryInquiry 仓库库存查询 * @return 仓库库存查询集合 */ @@ -31,7 +30,7 @@ public interface IWarehouseInventoryInquiryService /** * 新增仓库库存查询 - * + * * @param warehouseInventoryInquiry 仓库库存查询 * @return 结果 */ @@ -39,7 +38,7 @@ public interface IWarehouseInventoryInquiryService /** * 修改仓库库存查询 - * + * * @param warehouseInventoryInquiry 仓库库存查询 * @return 结果 */ @@ -47,7 +46,7 @@ public interface IWarehouseInventoryInquiryService /** * 批量删除仓库库存查询 - * + * * @param ids 需要删除的数据ID * @return 结果 */ @@ -55,7 +54,7 @@ public interface IWarehouseInventoryInquiryService /** * 删除仓库库存查询信息 - * + * * @param inventoryInquiryId 仓库库存查询ID * @return 结果 */ @@ -63,6 +62,7 @@ public interface IWarehouseInventoryInquiryService /** * 作废仓库库存查询 + * * @param inventoryInquiryId 仓库库存查询ID * @return */ @@ -70,13 +70,42 @@ public interface IWarehouseInventoryInquiryService /** * 恢复仓库库存查询 + * * @param inventoryInquiryId 仓库库存查询ID * @return */ int restoreWarehouseInventoryInquiryById(Long inventoryInquiryId); /* - * 根据物料号查询库存查询信息 - * */ + * 根据物料号查询库存查询信息 + * */ public WarehouseInventoryInquiry selectWarehouseInventoryInquiryByMaterialNo(String materialNo); + + /** + * 修改可用库存信息 + */ + int updateAvailableStock(WarehouseInventoryInquiry warehouseInventoryInquiry); + + /** + * 显示修改可用库存信息页面 + */ + WarehouseInventoryInquiry showEditAvailableStock(Long inventoryInquiryId); + + + /** + * 计算可用库存数 + * */ + Integer calculateAvailableStockNum(String materialNo); + + /** + * 计算共享可用库存数 + * */ + Integer calculateSharedAvailableStockNum(String materialNo); + + /** + * 计算固定可用库存数 + * */ + Integer calculateFixedAvailableStockNum(String materialNo); + + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java index 7e3e1735..a456a49e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java @@ -1,14 +1,25 @@ package com.ruoyi.warehouse.service.impl; +import java.util.Collections; import java.util.List; +import java.util.Optional; +import java.util.stream.Collectors; + +import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.ShiroUtils; +import com.ruoyi.common.utils.StringUtils; +import com.ruoyi.purchase.domain.PurchaseOrder; +import com.ruoyi.purchase.mapper.PurchaseOrderMapper; +import com.ruoyi.warehouse.domain.WarehouseInventoryInquiryDetail; +import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryDetailMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryMapper; import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry; import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService; import com.ruoyi.common.core.text.Convert; +import org.springframework.util.CollectionUtils; /** * 仓库库存查询Service业务层处理 @@ -17,11 +28,19 @@ import com.ruoyi.common.core.text.Convert; * @date 2024-06-06 */ @Service -public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventoryInquiryService +public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventoryInquiryService { @Autowired private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper; + @Autowired + private WarehouseInventoryInquiryDetailMapper warehouseInventoryInquiryDetailMapper; + + @Autowired + private PurchaseOrderMapper purchaseOrderMapper; + + + /** * 查询仓库库存查询 * @@ -137,4 +156,143 @@ public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventory return warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); } + + /** + * 修改可用库存信息 + * @param warehouseInventoryInquiry + * @return + */ + @Override + public int updateAvailableStock(WarehouseInventoryInquiry warehouseInventoryInquiry) { + + if (StringUtils.isEmpty(warehouseInventoryInquiry.getInventoryEditType())){ + throw new BusinessException("请选择修改类型"); + } + + Long inventoryInquiryId = warehouseInventoryInquiry.getInventoryInquiryId(); + WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryById(inventoryInquiryId); + + + + if (warehouseInventoryInquiry.getInventoryEditType().equals("0")){ + //增加固定可用库存 【共享可用库存】修改为【固定可用库存】 + Integer editStockNum = warehouseInventoryInquiry.getEditStockNum(); + Integer noOccupancyNum = warehouseInventoryInquiry.getNoOccupancyNum(); + Integer fixedAvailableStockNum = warehouseInventoryInquiry.getFixedAvailableStockNum(); + Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum(); + + if (editStockNum > noOccupancyNum){ + editStockNum = sharedAvailableStockNum; + fixedAvailableStockNum += editStockNum; + sharedAvailableStockNum = 0; + }else { + sharedAvailableStockNum -= editStockNum; + fixedAvailableStockNum += editStockNum; + } + warehouseInventoryInquiry.setFixedAvailableStockNum(fixedAvailableStockNum); + warehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); + + }else { + //减少固定可用库存 【固定可用库存】修改为【共享可用库存】 + Integer editStockNum = warehouseInventoryInquiry.getEditStockNum(); + Integer fixedAvailableStockNum = warehouseInventoryInquiry.getFixedAvailableStockNum(); + Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum(); + + if (editStockNum > fixedAvailableStockNum){ + editStockNum = fixedAvailableStockNum; + sharedAvailableStockNum += editStockNum; + fixedAvailableStockNum = 0; + }else { + fixedAvailableStockNum -= editStockNum; + sharedAvailableStockNum += editStockNum; + } + warehouseInventoryInquiry.setFixedAvailableStockNum(fixedAvailableStockNum); + warehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); + } + return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(warehouseInventoryInquiry); + } + + + /** + * 显示修改可用库存信息 + * @param inventoryInquiryId + * @return + */ + @Override + public WarehouseInventoryInquiry showEditAvailableStock(Long inventoryInquiryId) { + WarehouseInventoryInquiry warehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryById(inventoryInquiryId); + + String materialNo = warehouseInventoryInquiry.getMaterialNo(); + List warehouseInventoryInquiryDetails = warehouseInventoryInquiryDetailMapper.selectWarehouseInventoryInquiryDetailByMaterialNo(materialNo); + + //只保留采购订单 + List filterInventoryInquiryDetails = warehouseInventoryInquiryDetails.stream().filter(item -> "0".equals(item.getInquiryBusinessType())).collect(Collectors.toList()); + + List purchaseCodeList = filterInventoryInquiryDetails.stream().map(WarehouseInventoryInquiryDetail::getCorrelationCode).collect(Collectors.toList()); + + List purchaseOrders = purchaseOrderMapper.selectPurchaseOrderChildListByPurchaseCodeList(purchaseCodeList); + + + //审核中的采购订单 + List filterPurchaseOrders = purchaseOrders.stream().filter(item -> "0".equals(item.getAuditStatus())).collect(Collectors.toList()); + + int sharedInventoryOccupancySum = filterPurchaseOrders.stream().mapToInt(PurchaseOrder::getSharedInventoryOccupancySum).sum(); + + Integer sharedAvailableStockNum = warehouseInventoryInquiry.getSharedAvailableStockNum(); + + Integer noOccupancyNum = 0; + + if (sharedAvailableStockNum != null && sharedAvailableStockNum > sharedInventoryOccupancySum){ + noOccupancyNum = sharedAvailableStockNum - sharedInventoryOccupancySum; + }else { + noOccupancyNum = 0; + } + + warehouseInventoryInquiry.setNoOccupancyNum(noOccupancyNum); + return warehouseInventoryInquiry; + } + + + /** + * 计算可用库存数 + * */ + @Override + public Integer calculateAvailableStockNum(String materialNo){ + + //可用库存数=所有【库存履历增加】的数量-【锁定数】-【使用数】-【盘亏数】 + + WarehouseInventoryInquiry warehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); + if (warehouseInventoryInquiry == null){ + return 0; + } + + List warehouseInventoryInquiryDetails = warehouseInventoryInquiryDetailMapper.selectWarehouseInventoryInquiryDetailByMaterialNo(materialNo); + + List filterInventoryInquiryDetails = warehouseInventoryInquiryDetails.stream().filter(item -> "1".equals(item.getInventoryIncreaseDecrease())).collect(Collectors.toList()); + + int totalIncreaseDecreaseNum = CollectionUtils.isEmpty(filterInventoryInquiryDetails) ? 0 : filterInventoryInquiryDetails.stream().mapToInt(WarehouseInventoryInquiryDetail::getIncreaseDecreaseNum).sum(); + + Integer useNum = Optional.ofNullable(warehouseInventoryInquiry.getUseNum()).orElse(0);//使用数 + Integer lockStockNum = Optional.ofNullable(warehouseInventoryInquiry.getLockStockNum()).orElse(0);//锁定数 + Integer stockLossesNum = Optional.ofNullable(warehouseInventoryInquiry.getStockLossesNum()).orElse(0);//盘亏数 + return totalIncreaseDecreaseNum - lockStockNum - useNum - stockLossesNum; + } + + + /** + * 计算共享可用库存数 + * */ + @Override + public Integer calculateSharedAvailableStockNum(String materialNo) { + return null; + } + + /** + * 计算固定可用库存数 + * */ + @Override + public Integer calculateFixedAvailableStockNum(String materialNo) { + //【可用库存数】-【共享可用库存数】 + return null; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java index bbef5538..f2026315 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java @@ -5,6 +5,7 @@ import java.util.Date; import java.util.List; import java.util.Optional; +import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper; import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.utils.DateUtils; @@ -16,8 +17,10 @@ import com.ruoyi.erp.mapper.ErpDevelopModifyorderMapper; import com.ruoyi.erp.mapper.ErpMaterialMapper; import com.ruoyi.purchase.domain.PurchaseOrder; import com.ruoyi.purchase.domain.PurchaseOrderChild; +import com.ruoyi.purchase.domain.PurchasePlan; import com.ruoyi.purchase.mapper.PurchaseOrderChildMapper; import com.ruoyi.purchase.mapper.PurchaseOrderMapper; +import com.ruoyi.purchase.mapper.PurchasePlanMapper; import com.ruoyi.quality.domain.QualityOrder; import com.ruoyi.quality.domain.QualityOrderDetail; import com.ruoyi.quality.domain.QualityRefundsExchanges; @@ -36,6 +39,7 @@ import com.ruoyi.system.service.ISysMakeOrderService; import com.ruoyi.system.service.ISysSalesOrderService; import com.ruoyi.warehouse.domain.*; import com.ruoyi.warehouse.mapper.*; +import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService; import lombok.extern.slf4j.Slf4j; import org.activiti.editor.language.json.converter.util.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; @@ -91,6 +95,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS @Autowired private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper; + @Autowired + private IWarehouseInventoryInquiryService warehouseInventoryInquiryService; + @Autowired private WarehouseInventoryInquiryDetailMapper inventoryInquiryDetailMapper; @@ -101,6 +108,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS @Autowired private PurchaseOrderMapper purchaseOrderMapper; + @Autowired + private PurchasePlanMapper purchasePlanMapper; + @Autowired private ErpMaterialMapper erpMaterialMapper; @@ -112,6 +122,10 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS @Autowired private QualityRefundsExchangesMapper exchangesMapper; + + @Autowired + private AfterSalesShippingDeviceMapper afterSalesShippingDeviceMapper; + /** * 查询仓库入库单 * @@ -542,10 +556,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS } WarehouseStorageOrderDetail updateStorageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId()); - int inventoryInquiryResult = createWarehouseInventoryInquiry(updateStorageOrderDetail); - if (inventoryInquiryResult <= 0){ - throw new BusinessException("更新/新增库存查询失败,未影响任何行"); - } + createWarehouseInventoryInquiry(updateStorageOrderDetail); + } //更新入库单的数据 @@ -658,25 +670,23 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); } WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); - int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); - if (inventoryInquiryResult <= 0){ - throw new BusinessException("更新/新增库存查询失败,未影响任何行"); - } - } + createWarehouseInventoryInquiry(storageOrderDetail); - //更新生产单数据 - int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList); - if (updateMakeOrderResult <= 0){ - throw new BusinessException("更新生产订单失败,未影响任何行"); } - //更新开发修改单数据 - String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode(); - ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); - if (erpDevelopModifyorder != null){ - erpDevelopModifyorder.setPurchaseStorageStatus("8"); - developModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder); - } +// //更新生产单数据 +// int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList); +// if (updateMakeOrderResult <= 0){ +// throw new BusinessException("更新生产订单失败,未影响任何行"); +// } +// +// //更新开发修改单数据 +// String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode(); +// ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); +// if (erpDevelopModifyorder != null){ +// erpDevelopModifyorder.setPurchaseStorageStatus("8"); +// developModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder); +// } if (warehouseStorageOrder.getStorageNum().equals(oldWarehouseStorageOrder.getTemporaryQualifiedNum())){ @@ -708,29 +718,121 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS } // 生成/修改库存查询 - public int createWarehouseInventoryInquiry(WarehouseStorageOrderDetail warehouseStorageOrderDetail){ + public void createWarehouseInventoryInquiry(WarehouseStorageOrderDetail warehouseStorageOrderDetail){ String materialNo = warehouseStorageOrderDetail.getMaterialNo(); String correlationCode = warehouseStorageOrderDetail.getRelatedOrderCode(); String storageCode = warehouseStorageOrderDetail.getWarehouseStorageCode(); WarehouseStorageOrder warehouseStorageOrder = warehouseStorageOrderMapper.selectWarehouseStorageOrderByCode(storageCode); String warehouseStorageType = warehouseStorageOrder.getWarehouseStorageType(); - if(warehouseStorageType.equals("0")) { - // 新增采购入库库存历史记录 -// PurchaseOrder purchaseOrder = purchaseOrderMapper.selectPurchaseOrderByOrderCode() - List purchaseOrderChild = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); - for (PurchaseOrderChild child : purchaseOrderChild) { - if(child.getMaterialNo().equals(materialNo)){ - int storageNum = warehouseStorageOrderDetail.getStorageNum(); - WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); - inquiryDetail = generateInquiryDetailByPurchaseChild(child,storageNum); -// inquiryDetail.setInventoryHistoricalType("0"); -// if (correlationCode.startsWith("QG")) { -//// 有无归属分类 -// } - inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); + Integer storageNum = warehouseStorageOrderDetail.getStorageNum(); + if("0".equals(warehouseStorageType)) { + // 新增采购入库库存历史记录 + String purchasePlanCode = purchaseOrderMapper.selectPurchasePlanCodeByCode(correlationCode); + + PurchasePlan purchasePlan = purchasePlanMapper.selectPurchasePlanByPlanCode(purchasePlanCode); + if ("2".equals(purchasePlan.getPurchasePlanType())){ //来源为请购单 + List purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); + for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { + if(purchaseOrderChild.getMaterialNo().equals(materialNo)){ + + WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); + Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); + historicalTotal += storageNum; + oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); + + Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); + if (availableStockNum == null || availableStockNum == 0){ + availableStockNum = storageNum; + }else { + availableStockNum += storageNum; + } + + oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); +// Integer oldAvailableStockNum = warehouseInventoryInquiryService.calculateAvailableStockNum(materialNo); +// oldWarehouseInventoryInquiry.setAvailableStockNum(oldAvailableStockNum + storageNum); //加上本次入库的数量 + Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum();//共享可用库存 + if (sharedAvailableStockNum == null || sharedAvailableStockNum == 0){ + sharedAvailableStockNum = storageNum; + }else { + sharedAvailableStockNum += storageNum; + } + oldWarehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); + + Integer oldAvailableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); + oldWarehouseInventoryInquiry.setFixedAvailableStockNum(oldAvailableStockNum - sharedAvailableStockNum); //固定可用库存 + + int updateResult = warehouseInventoryInquiryService.updateWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); + if (updateResult <= 0){ + throw new BusinessException("更新库存查询记录失败!"); + } + + WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); + inquiryDetail.setMaterialNo(materialNo); + inquiryDetail.setInquiryWarehouseType("0");//采购入库 + inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); + inquiryDetail.setInquiryOrderType("0"); + inquiryDetail.setInquiryBusinessType("0"); + inquiryDetail.setCorrelationCode(storageCode); + inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); + inquiryDetail.setInventoryIncreaseDecrease("1"); + int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); + if (insertDetailResult <= 0){ + throw new BusinessException("新增库存履历失败!"); + } + } + } + }else if ("1".equals(purchasePlan.getPurchasePlanType())){ //生产订单 + List purchaseOrderChildList = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode); + for (PurchaseOrderChild purchaseOrderChild : purchaseOrderChildList) { + if (purchaseOrderChild.getMaterialNo().equals(materialNo)) { + + WarehouseInventoryInquiry oldWarehouseInventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); + Integer historicalTotal = oldWarehouseInventoryInquiry.getHistoricalTotal(); + historicalTotal += storageNum; + oldWarehouseInventoryInquiry.setHistoricalTotal(historicalTotal); + Integer availableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); + if (availableStockNum == null || availableStockNum == 0){ + availableStockNum = storageNum; + }else { + availableStockNum += storageNum; + } + + oldWarehouseInventoryInquiry.setAvailableStockNum(availableStockNum); +// Integer oldAvailableStockNum = warehouseInventoryInquiryService.calculateAvailableStockNum(materialNo); +// oldWarehouseInventoryInquiry.setAvailableStockNum(oldAvailableStockNum + storageNum); //加上本次入库的数量 + Integer sharedAvailableStockNum = oldWarehouseInventoryInquiry.getSharedAvailableStockNum();//共享可用库存 + if (sharedAvailableStockNum == null || sharedAvailableStockNum == 0){ + sharedAvailableStockNum = storageNum; + }else { + sharedAvailableStockNum += storageNum; + } + oldWarehouseInventoryInquiry.setSharedAvailableStockNum(sharedAvailableStockNum); + Integer oldAvailableStockNum = oldWarehouseInventoryInquiry.getAvailableStockNum(); + oldWarehouseInventoryInquiry.setFixedAvailableStockNum(oldAvailableStockNum - sharedAvailableStockNum); //固定可用库存 + + int updateResult = warehouseInventoryInquiryService.insertWarehouseInventoryInquiry(oldWarehouseInventoryInquiry); + if (updateResult <= 0) { + throw new BusinessException("更新库存查询记录失败!"); + } + + WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); + inquiryDetail.setMaterialNo(materialNo); + inquiryDetail.setInquiryWarehouseType("0");//采购入库 + inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate()); + inquiryDetail.setInquiryOrderType("0"); + inquiryDetail.setInquiryBusinessType("0"); + inquiryDetail.setCorrelationCode(storageCode); + inquiryDetail.setIncreaseDecreaseNum(warehouseStorageOrderDetail.getStorageNum()); + inquiryDetail.setInventoryIncreaseDecrease("1"); + int insertDetailResult = inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); + if (insertDetailResult <= 0) { + throw new BusinessException("新增库存履历失败!"); + } + } } } + }else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录 WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail); @@ -751,48 +853,48 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS scrapSum += scrapSum; } } -// 存在库存查询记录,更新可用库存数 - if(warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo)!=null){ - WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); -// 增加可用库存数 - Integer storage = warehouseStorageOrderDetail.getStorageNum(); - Integer storagenum = storage; - Integer avaliableStorage = inventoryInquiry.getAvailableStockNum(); - avaliableStorage += storagenum; - inventoryInquiry.setAvailableStockNum(avaliableStorage); - inventoryInquiry.setReportDamageNum(scrapSum); -// 设置历史总数 - Integer historicalTotal = inventoryInquiry.getHistoricalTotal(); - historicalTotal += storagenum; - inventoryInquiry.setHistoricalTotal(historicalTotal); - inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); - inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); - return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry); - }else{ - WarehouseInventoryInquiry inventoryInquiry = new WarehouseInventoryInquiry(); - inventoryInquiry.setMaterialNo(materialNo); - inventoryInquiry.setMaterialName(warehouseStorageOrderDetail.getMaterialName()); - inventoryInquiry.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); - inventoryInquiry.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand()); - inventoryInquiry.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe()); - inventoryInquiry.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); - inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); - inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); - Integer storage = warehouseStorageOrderDetail.getStorageNum(); - Integer storagenum = storage; - // 设置历史总数 - inventoryInquiry.setHistoricalTotal(storagenum); - inventoryInquiry.setAvailableStockNum(storagenum); - inventoryInquiry.setReportDamageNum(scrapSum); - - ErpMaterial material = erpMaterialMapper.selectErpMaterialByMaterialNo(materialNo); - inventoryInquiry.setMaterialUseStatus(material.getUseStatus()); - inventoryInquiry.setCreateBy(ShiroUtils.getLoginName()); - inventoryInquiry.setCreateTime(DateUtils.getNowDate()); - inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); - inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); - return warehouseInventoryInquiryMapper.insertWarehouseInventoryInquiry(inventoryInquiry); - } +//// 存在库存查询记录,更新可用库存数 +// if(warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo)!=null){ +// WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); +//// 增加可用库存数 +// Integer storage = warehouseStorageOrderDetail.getStorageNum(); +// Integer storagenum = storage; +// Integer avaliableStorage = inventoryInquiry.getAvailableStockNum(); +// avaliableStorage += storagenum; +// inventoryInquiry.setAvailableStockNum(avaliableStorage); +// inventoryInquiry.setReportDamageNum(scrapSum); +//// 设置历史总数 +// Integer historicalTotal = inventoryInquiry.getHistoricalTotal(); +// historicalTotal += storagenum; +// inventoryInquiry.setHistoricalTotal(historicalTotal); +// inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); +// inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); +// return warehouseInventoryInquiryMapper.updateWarehouseInventoryInquiry(inventoryInquiry); +// }else{ +// WarehouseInventoryInquiry inventoryInquiry = new WarehouseInventoryInquiry(); +// inventoryInquiry.setMaterialNo(materialNo); +// inventoryInquiry.setMaterialName(warehouseStorageOrderDetail.getMaterialName()); +// inventoryInquiry.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); +// inventoryInquiry.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand()); +// inventoryInquiry.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe()); +// inventoryInquiry.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); +// inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); +// inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); +// Integer storage = warehouseStorageOrderDetail.getStorageNum(); +// Integer storagenum = storage; +// // 设置历史总数 +// inventoryInquiry.setHistoricalTotal(storagenum); +// inventoryInquiry.setAvailableStockNum(storagenum); +// inventoryInquiry.setReportDamageNum(scrapSum); +// +// ErpMaterial material = erpMaterialMapper.selectErpMaterialByMaterialNo(materialNo); +// inventoryInquiry.setMaterialUseStatus(material.getUseStatus()); +// inventoryInquiry.setCreateBy(ShiroUtils.getLoginName()); +// inventoryInquiry.setCreateTime(DateUtils.getNowDate()); +// inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); +// inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); +// return warehouseInventoryInquiryMapper.insertWarehouseInventoryInquiry(inventoryInquiry); +// } } // 生成采购订单库存历史记录 @@ -959,18 +1061,16 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); } WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); - int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); - if (inventoryInquiryResult <= 0){ - throw new BusinessException("更新/新增库存查询失败,未影响任何行"); - } - } + createWarehouseInventoryInquiry(storageOrderDetail); - //更新生产单数据 - int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList); - if (updateMakeOrderResult <= 0){ - throw new BusinessException("更新生产订单失败,未影响任何行"); } +// //更新生产单数据 +// int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList); +// if (updateMakeOrderResult <= 0){ +// throw new BusinessException("更新生产订单失败,未影响任何行"); +// } + //更新开发修改单数据 // String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode(); // ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); @@ -1090,10 +1190,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); }else{ WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); - int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); - if (inventoryInquiryResult <= 0){ - throw new BusinessException("更新/新增库存查询失败,未影响任何行"); - } + createWarehouseInventoryInquiry(storageOrderDetail); + } } //更新入库单的数据 @@ -1423,10 +1521,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS } //更新库存查询 WarehouseStorageOrderDetail storageOrderInquiryDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId()); - int inquiryResult = createWarehouseInventoryInquiry(storageOrderInquiryDetail); - if (inquiryResult <= 0){ - throw new BusinessException("更新仓库库存查询失败,未影响任何行"); - } + createWarehouseInventoryInquiry(storageOrderInquiryDetail); + } //更新销售订单子表的数据 diff --git a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml index de53e021..87ca3b07 100644 --- a/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml @@ -93,6 +93,18 @@ WHERE purchase_order_code = #{purchaseOrderCode} + + insert into purchase_order diff --git a/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml index 392aa62c..0d0fa7e2 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml @@ -52,15 +52,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and photoUrl = #{photoUrl} and material_name like concat('%', #{materialName}, '%') and material_type = #{materialType} - and material_model = #{materilaModel} - and specifications = #{specifications} - and brand = #{brand} - and `describe` = #{describe} - and materialNum = #{materialNum} - and materialRmb = #{materialRmb} - and materialNoRmb = #{materialNoRmb} - and materialNoRmbSum = #{materialNoRmbSum} - and materialRmbSum = #{materialRmbSum} and remark = #{remark} and create_by = #{createBy} and create_time between #{params.beginCreateTime} and #{params.endCreateTime} @@ -68,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and use_status = #{useStatus} and audit_status = #{auditStatus} + order by create_time desc + + insert into warehouse_inventory_inquiry_detail diff --git a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml index 02da5d15..b223c55e 100644 --- a/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml @@ -23,6 +23,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + + @@ -39,7 +42,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" select inventory_inquiry_id, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, material_model, material_specification,warehouse_dept, - historical_total, shared_available_stock_num, lock_stock_num, fixed_available_stock_num, stock_losses_num,available_stock_num, attribution_available_stock_num, + historical_total, shared_available_stock_num, lock_stock_num, fixed_available_stock_num, + stock_losses_num,available_stock_num, attribution_available_stock_num, + no_occupancy_num, inventory_edit_type, edit_stock_num, noattribution_available_stock_num, use_num, report_damage_num, material_use_status, remark, create_time, create_by, update_by, update_time from warehouse_inventory_inquiry @@ -52,6 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and material_name like concat('%', #{materialName}, '%') and create_time between #{params.beginCreateTime} and #{params.endCreateTime} + order by create_time desc +
+ +
+ +
+
+
+ +
+ +
+
+ +
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+ + + + + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html b/ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html index 0e735857..fe8e7101 100644 --- a/ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html +++ b/ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html @@ -49,6 +49,10 @@ \ No newline at end of file