Browse Source

Merge remote-tracking branch 'origin/dev' into dev

dev
王晓迪 3 months ago
parent
commit
63a5de13a2
  1. 6
      ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java
  2. 5
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpMaterialService.java
  3. 45
      ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java
  4. 6
      ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java
  5. 5
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java
  6. 9
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java
  7. 14
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java
  8. 7
      ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java
  9. 70
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java
  10. 29
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java
  11. 37
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java
  12. 33
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java
  13. 158
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java
  14. 280
      ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseStorageOrderServiceImpl.java
  15. 12
      ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml
  16. 10
      ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml
  17. 5
      ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml
  18. 17
      ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml
  19. 3
      ruoyi-admin/src/main/resources/templates/system/requisitioning/add.html
  20. 5
      ruoyi-admin/src/main/resources/templates/system/requisitioning/requisitioning.html
  21. 83
      ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/editAvailableStock.html
  22. 37
      ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html

6
ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpMaterialController.java

@ -228,13 +228,15 @@ public class ErpMaterialController extends BaseController
if (processIsFinish) { if (processIsFinish) {
// 审核通过 // 审核通过
erpMaterialVo.setAuditStatus("1"); erpMaterialVo.setAuditStatus("1");
//审核通过添加物料库存查询记录
erpMaterialService.addInventoryInquiry(erpMaterialVo);
// 提交 // 提交
if("submit".equals(instanceType)){ if("submit".equals(instanceType)){
//物料审核通过后,填写通过后库存物料信息初始化,填写对应的信息 //物料审核通过后,填写通过后库存物料信息初始化,填写对应的信息
// 使用状态-是 // 使用状态-是
erpMaterialVo.setUseStatus("1"); erpMaterialVo.setUseStatus("1");
//审核通过后添加库存物料信息
erpMaterialService.addStockMaterial(erpMaterialVo);
} }
// 作废 // 作废
else if("cancel".equals(instanceType)){ else if("cancel".equals(instanceType)){

5
ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpMaterialService.java

@ -151,7 +151,10 @@ public interface IErpMaterialService
*/ */
public ProcessInstance submitApply(ErpMaterial erpMaterial); public ProcessInstance submitApply(ErpMaterial erpMaterial);
Integer addStockMaterial(ErpMaterialVo erpMaterialVo); /**
* 审核通过添加物料库存查询记录
* */
void addInventoryInquiry(ErpMaterialVo erpMaterialVo);
/** /**

45
ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpMaterialServiceImpl.java

@ -754,31 +754,36 @@ public class ErpMaterialServiceImpl implements IErpMaterialService
} }
/*审核通过添加库存物料信息*/ /**
*
* 审核通过添加物料库存查询记录
* */
@Override @Override
@Transactional(rollbackFor = Exception.class) @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 warehouseInventoryInquiry = new WarehouseInventoryInquiry();
warehouseInventoryInquiry.setMaterialNo(erpMaterialVo.getMaterialNo()); warehouseInventoryInquiry.setMaterialNo(oldErpMaterialVo.getMaterialNo());
warehouseInventoryInquiry.setMaterialName(erpMaterialVo.getMaterialName()); warehouseInventoryInquiry.setMaterialName(oldErpMaterialVo.getMaterialName());
warehouseInventoryInquiry.setMaterialDescribe(erpMaterialVo.getDescribe()); warehouseInventoryInquiry.setMaterialDescribe(oldErpMaterialVo.getDescribe());
warehouseInventoryInquiry.setMaterialBrand(erpMaterialVo.getBrand()); warehouseInventoryInquiry.setMaterialBrand(oldErpMaterialVo.getBrand());
warehouseInventoryInquiry.setMaterialProcessMethod(erpMaterialVo.getProcessMethod()); warehouseInventoryInquiry.setMaterialProcessMethod(oldErpMaterialVo.getProcessMethod());
warehouseInventoryInquiry.setMaterialUnit(erpMaterialVo.getUnit()); warehouseInventoryInquiry.setMaterialModel(oldErpMaterialVo.getMaterialModel());
warehouseInventoryInquiry.setMaterialPhotourl(erpMaterialVo.getPhotoUrl()); warehouseInventoryInquiry.setMaterialUnit(oldErpMaterialVo.getUnit());
warehouseInventoryInquiry.setMaterialType(erpMaterialVo.getMaterialType()); warehouseInventoryInquiry.setMaterialPhotourl(oldErpMaterialVo.getPhotoUrl());
warehouseInventoryInquiry.setMaterialType(oldErpMaterialVo.getMaterialType());
warehouseInventoryInquiry.setMaterialUseStatus(erpMaterialVo.getUseStatus()); warehouseInventoryInquiry.setMaterialUseStatus(erpMaterialVo.getUseStatus());
warehouseInventoryInquiry.setWarehouseDept(erpMaterialVo.getWarehouseDept()); warehouseInventoryInquiry.setWarehouseDept(oldErpMaterialVo.getWarehouseDept());
if(erpMaterialVo.getDescribe().contains(",")){ String loginName = ShiroUtils.getLoginName();
warehouseInventoryInquiry.setMaterialSpecification(erpMaterialVo.getDescribe().split(" ")[0]); warehouseInventoryInquiry.setCreateBy(loginName);
warehouseInventoryInquiry.setMaterialModel(erpMaterialVo.getDescribe().split(",")[1]);
}
String user = ShiroUtils.getLoginName();
warehouseInventoryInquiry.setCreateBy(user);
warehouseInventoryInquiry.setCreateTime(DateUtils.getNowDate()); warehouseInventoryInquiry.setCreateTime(DateUtils.getNowDate());
warehouseInventoryInquiry.setUpdateBy(user); int insertResult = inventoryInquiryMapper.insertWarehouseInventoryInquiry(warehouseInventoryInquiry);
warehouseInventoryInquiry.setUpdateTime(DateUtils.getNowDate()); if (insertResult <= 0){
return inventoryInquiryMapper.insertWarehouseInventoryInquiry(warehouseInventoryInquiry); throw new BusinessException("添加物料库存查询记录失败");
}
} }

6
ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderMapper.java

@ -36,6 +36,11 @@ public interface PurchaseOrderMapper
List<PurchaseOrder> selectAllPurchaseOrderList(PurchaseOrder purchaseOrder); List<PurchaseOrder> selectAllPurchaseOrderList(PurchaseOrder purchaseOrder);
/**
* 通过采购订单编号查询采购订单集合
* */
List<PurchaseOrder> selectPurchaseOrderChildListByPurchaseCodeList(List<String> purchaseCodeList);
/** /**
* 通过采购订单号数组查询采购订单集合 * 通过采购订单号数组查询采购订单集合
@ -103,4 +108,5 @@ public interface PurchaseOrderMapper
//校验采购订单编号是否唯一 //校验采购订单编号是否唯一
public Integer checkPurchaseOrderCodeUnique(String purchaseOrderCode); public Integer checkPurchaseOrderCodeUnique(String purchaseOrderCode);
} }

5
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderService.java

@ -125,4 +125,9 @@ public interface IPurchaseOrderService
int addPurchaseStorageSave(PurchaseOrder purchaseOrder); int addPurchaseStorageSave(PurchaseOrder purchaseOrder);
int detailSave(PurchaseOrder purchaseOrder); int detailSave(PurchaseOrder purchaseOrder);
/**
* 通过采购订单号集合查询采购订单集合
* */
List<PurchaseOrder> selectPurchaseOrderChildListByPurchaseCodeList(List<String> purchaseCodeList);
} }

9
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderServiceImpl.java

@ -252,6 +252,15 @@ public class PurchaseOrderServiceImpl implements IPurchaseOrderService
return purchaseOrderList; return purchaseOrderList;
} }
/**
* 通过采购订单号集合查询采购订单集合
* */
@Override
public List<PurchaseOrder> selectPurchaseOrderChildListByPurchaseCodeList(List<String> purchaseCodeList) {
List<PurchaseOrder> purchaseOrderList = purchaseOrderMapper.selectPurchaseOrderChildListByPurchaseCodeList(purchaseCodeList);
return purchaseOrderList;
}
/** /**
* 通过采购订单号数组查询采购订单集合 * 通过采购订单号数组查询采购订单集合
* */ * */

14
ruoyi-admin/src/main/java/com/ruoyi/system/domain/BaseRequisitioningOrderChild.java

@ -72,7 +72,7 @@ public class BaseRequisitioningOrderChild extends BaseEntity
/** 物料的数量 */ /** 物料的数量 */
@Excel(name = "物料的数量") @Excel(name = "物料的数量")
private Long materialNum; private Integer materialNum;
/** 物料的不含税单价(RMB) */ /** 物料的不含税单价(RMB) */
@Excel(name = "物料的不含税单价(RMB)") @Excel(name = "物料的不含税单价(RMB)")
@ -217,8 +217,12 @@ public class BaseRequisitioningOrderChild extends BaseEntity
this.unit = unit; this.unit = unit;
} }
public void setMaterialNum(Long materialNum)
{ public Integer getMaterialNum() {
return materialNum;
}
public void setMaterialNum(Integer materialNum) {
this.materialNum = materialNum; this.materialNum = materialNum;
} }
@ -230,10 +234,6 @@ public class BaseRequisitioningOrderChild extends BaseEntity
this.warehouseDept = warehouseDept; this.warehouseDept = warehouseDept;
} }
public Long getMaterialNum()
{
return materialNum;
}
public void setMaterialRmb(BigDecimal materialRmb) public void setMaterialRmb(BigDecimal materialRmb)
{ {
this.materialRmb = materialRmb; this.materialRmb = materialRmb;

7
ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseRequisitioningOrderService.java

@ -102,6 +102,9 @@ public interface IBaseRequisitioningOrderService
Object getRequisitioningOrder(); Object getRequisitioningOrder();
/*生成采购计划*/ /**
Integer generatePurchasePlan(BaseRequisitioningOrder baseRequisitioningOrder); *
* 请购单审核通过后生成采购计划
* */
void generatePurchasePlan(BaseRequisitioningOrder baseRequisitioningOrder);
} }

70
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 @Override
public Integer generatePurchasePlan(BaseRequisitioningOrder requisitioningOrder){ public void generatePurchasePlan(BaseRequisitioningOrder requisitioningOrder){
/*请购的物料信息,封装为采购计划需求的采购信息*/
String loginName = ShiroUtils.getLoginName();
List<BaseRequisitioningOrderChild> requisitioningOrderDetailList = List<BaseRequisitioningOrderChild> requisitioningOrderDetailList =
baseRequisitioningOrderChildMapper.selectBaseRequisitioningOrderChildByCode(requisitioningOrder.getRequisitioningCode()); baseRequisitioningOrderChildMapper.selectBaseRequisitioningOrderChildByCode(requisitioningOrder.getRequisitioningCode());
//先将请购物料转换为采购物料需求
//保留加工方式为采购的
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<PurchasePlanChild> purchasePlanChildList = new ArrayList<>(); List<PurchasePlanChild> purchasePlanChildList = new ArrayList<>();
PurchasePlan purchasePlan = new PurchasePlan(); PurchasePlan purchasePlan = new PurchasePlan();
BigDecimal noRmbSum = BigDecimal.ZERO;
BigDecimal rmbSum = BigDecimal.ZERO;
Integer materialAmount = requisitioningOrderDetailList.size(); Integer materialAmount = requisitioningOrderDetailList.size();
Long materialSum = 0L; String purchasePlanCode = redisCache.generateBillNo("CGJH");
//采购计划关联单号 //采购计划单号
purchasePlan.setPurchasePlanCode(redisCache.generateBillNo("CGJH")); purchasePlan.setPurchasePlanCode(purchasePlanCode);
purchasePlan.setPurchasePlanStatus("0");
purchasePlan.setCorrelationCode(requisitioningOrder.getRequisitioningCode());
purchasePlan.setPurchasePlanType("2");
purchasePlan.setMaterialSum(materialAmount);
for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) { for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) {
PurchasePlanChild purchasePlanChild = new PurchasePlanChild(); PurchasePlanChild purchasePlanChild = new PurchasePlanChild();
purchasePlanChild.setPurchasePlanCode(purchasePlan.getPurchasePlanCode()); purchasePlanChild.setPurchasePlanCode(purchasePlanCode);
purchasePlanChild.setPurchasePlanStatus("0");
purchasePlanChild.setWarehouseDept(requisitioningOrderDetail.getWarehouseDept()); purchasePlanChild.setWarehouseDept(requisitioningOrderDetail.getWarehouseDept());
purchasePlanChild.setMaterialNo(requisitioningOrderDetail.getMaterialCode()); purchasePlanChild.setMaterialNo(requisitioningOrderDetail.getMaterialCode());
purchasePlanChild.setMaterialName(requisitioningOrderDetail.getMaterialName()); purchasePlanChild.setMaterialName(requisitioningOrderDetail.getMaterialName());
purchasePlanChild.setMaterialDescribe(requisitioningOrderDetail.getDescribe()); purchasePlanChild.setMaterialDescribe(requisitioningOrderDetail.getDescribe());
purchasePlanChild.setMaterialBrand(requisitioningOrderDetail.getBrand()); purchasePlanChild.setMaterialBrand(requisitioningOrderDetail.getBrand());
purchasePlanChild.setMaterialModel(requisitioningOrderDetail.getMaterialModel());
purchasePlanChild.setMaterialUnit(requisitioningOrderDetail.getUnit()); purchasePlanChild.setMaterialUnit(requisitioningOrderDetail.getUnit());
purchasePlanChild.setMaterialPhotourl(requisitioningOrderDetail.getPhotoUrl()); purchasePlanChild.setMaterialPhotourl(requisitioningOrderDetail.getPhotoUrl());
purchasePlanChild.setMaterialProcessMethod(requisitioningOrderDetail.getProcessMethod()); purchasePlanChild.setMaterialProcessMethod(requisitioningOrderDetail.getProcessMethod());
// purchasePlanChild.setMaterialNum(Double.valueOf(requisitioningOrderDetail.getMaterialNum()));
purchasePlanChild.setMaterialType(requisitioningOrderDetail.getMaterialType()); purchasePlanChild.setMaterialType(requisitioningOrderDetail.getMaterialType());
purchasePlanChild.setMaterialNoRmbSum(requisitioningOrderDetail.getMaterialNoRmb()); purchasePlanChild.setPlanPurchaseNum(requisitioningOrderDetail.getMaterialNum());
purchasePlanChild.setMaterialRmbSum(requisitioningOrderDetail.getMaterialRmb()); purchasePlanChild.setPurchaseNum(requisitioningOrderDetail.getMaterialNum());
// noRmbSum = noRmbSum.add(requisitioningOrderDetail.getMaterialNoRmb()); purchasePlanChild.setCreateTime(new Date());
rmbSum = rmbSum.add(requisitioningOrderDetail.getMaterialRmbSum()); purchasePlanChild.setCreateBy(loginName);
materialSum += requisitioningOrderDetail.getMaterialNum();
planChildMapper.insertPurchasePlanChild(purchasePlanChild);
purchasePlanChildList.add(purchasePlanChild); purchasePlanChildList.add(purchasePlanChild);
} }
purchasePlan.setMaterialSum(Math.toIntExact(materialSum));
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.setCreateBy(requisitioningOrder.getCreateBy());
purchasePlan.setApplyUser(requisitioningOrder.getApplyUser()); purchasePlan.setApplyUser(requisitioningOrder.getApplyUser());
purchasePlan.setCreateTime(DateUtils.getNowDate()); purchasePlan.setCreateTime(DateUtils.getNowDate());
return purchasePlanMapper.insertPurchasePlan(purchasePlan); int insertPurchasePlanResult = purchasePlanMapper.insertPurchasePlan(purchasePlan);
if (insertPurchasePlanResult <= 0){
throw new BusinessException("插入采购计划数据失败");
}
}
} }
} }

29
ruoyi-admin/src/main/java/com/ruoyi/warehouse/controller/WarehouseInventoryInquiryController.java

@ -1,10 +1,7 @@
package com.ruoyi.warehouse.controller; package com.ruoyi.warehouse.controller;
import java.util.List; import java.util.List;
import com.ruoyi.system.domain.OutsourceQuoteChild;
import com.ruoyi.warehouse.domain.WarehouseInventoryInquiryDetail; import com.ruoyi.warehouse.domain.WarehouseInventoryInquiryDetail;
import com.ruoyi.warehouse.domain.WarehouseInventoryReportDamage;
import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryDetailService; import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryDetailService;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -163,4 +160,30 @@ public class WarehouseInventoryInquiryController extends BaseController
return getDataTable(list); 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));
}
} }

37
ruoyi-admin/src/main/java/com/ruoyi/warehouse/domain/WarehouseInventoryInquiry.java

@ -85,6 +85,16 @@ public class WarehouseInventoryInquiry extends BaseEntity
@Excel(name = "可用库存数", sort = 9) @Excel(name = "可用库存数", sort = 9)
private Integer availableStockNum; private Integer availableStockNum;
/** 未占用共享可用库存*/
private Integer noOccupancyNum;
/** 修改库存数量*/
private Integer editStockNum;
/** 修改类型(0增加固定可用库存、1减少固定可用库存)*/
private String inventoryEditType;
/** 物料归属可用库存数 */ /** 物料归属可用库存数 */
// @Excel(name = "物料归属可用库存数") // @Excel(name = "物料归属可用库存数")
private Integer attributionAvailableStockNum; private Integer attributionAvailableStockNum;
@ -262,6 +272,30 @@ public class WarehouseInventoryInquiry extends BaseEntity
this.availableStockNum = availableStockNum; 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() { public Integer getAttributionAvailableStockNum() {
return attributionAvailableStockNum; return attributionAvailableStockNum;
} }
@ -352,6 +386,9 @@ public class WarehouseInventoryInquiry extends BaseEntity
.append("lockStockNum", getLockStockNum()) .append("lockStockNum", getLockStockNum())
.append("stockLossesNum", getStockLossesNum()) .append("stockLossesNum", getStockLossesNum())
.append("availableStockNum", getAvailableStockNum()) .append("availableStockNum", getAvailableStockNum())
.append("noOccupancyNum", getNoOccupancyNum())
.append("editStockNum", getEditStockNum())
.append("inventoryEditType", getInventoryEditType())
.append("attributionAvailableStockNum", getAttributionAvailableStockNum()) .append("attributionAvailableStockNum", getAttributionAvailableStockNum())
.append("noattributionAvailableStockNum", getNoattributionAvailableStockNum()) .append("noattributionAvailableStockNum", getNoattributionAvailableStockNum())
.append("useNum", getUseNum()) .append("useNum", getUseNum())

33
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/IWarehouseInventoryInquiryService.java

@ -9,8 +9,7 @@ import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry;
* @author 刘晓旭 * @author 刘晓旭
* @date 2024-06-06 * @date 2024-06-06
*/ */
public interface IWarehouseInventoryInquiryService public interface IWarehouseInventoryInquiryService {
{
/** /**
* 查询仓库库存查询 * 查询仓库库存查询
* *
@ -63,6 +62,7 @@ public interface IWarehouseInventoryInquiryService
/** /**
* 作废仓库库存查询 * 作废仓库库存查询
*
* @param inventoryInquiryId 仓库库存查询ID * @param inventoryInquiryId 仓库库存查询ID
* @return * @return
*/ */
@ -70,6 +70,7 @@ public interface IWarehouseInventoryInquiryService
/** /**
* 恢复仓库库存查询 * 恢复仓库库存查询
*
* @param inventoryInquiryId 仓库库存查询ID * @param inventoryInquiryId 仓库库存查询ID
* @return * @return
*/ */
@ -79,4 +80,32 @@ public interface IWarehouseInventoryInquiryService
* 根据物料号查询库存查询信息 * 根据物料号查询库存查询信息
* */ * */
public WarehouseInventoryInquiry selectWarehouseInventoryInquiryByMaterialNo(String materialNo); 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);
} }

158
ruoyi-admin/src/main/java/com/ruoyi/warehouse/service/impl/WarehouseInventoryInquiryServiceImpl.java

@ -1,14 +1,25 @@
package com.ruoyi.warehouse.service.impl; package com.ruoyi.warehouse.service.impl;
import java.util.Collections;
import java.util.List; 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.DateUtils;
import com.ruoyi.common.utils.ShiroUtils; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryMapper; import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryMapper;
import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry; import com.ruoyi.warehouse.domain.WarehouseInventoryInquiry;
import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService; import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService;
import com.ruoyi.common.core.text.Convert; import com.ruoyi.common.core.text.Convert;
import org.springframework.util.CollectionUtils;
/** /**
* 仓库库存查询Service业务层处理 * 仓库库存查询Service业务层处理
@ -22,6 +33,14 @@ public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventory
@Autowired @Autowired
private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper; private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper;
@Autowired
private WarehouseInventoryInquiryDetailMapper warehouseInventoryInquiryDetailMapper;
@Autowired
private PurchaseOrderMapper purchaseOrderMapper;
/** /**
* 查询仓库库存查询 * 查询仓库库存查询
* *
@ -137,4 +156,143 @@ public class WarehouseInventoryInquiryServiceImpl implements IWarehouseInventory
return warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); 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<WarehouseInventoryInquiryDetail> warehouseInventoryInquiryDetails = warehouseInventoryInquiryDetailMapper.selectWarehouseInventoryInquiryDetailByMaterialNo(materialNo);
//只保留采购订单
List<WarehouseInventoryInquiryDetail> filterInventoryInquiryDetails = warehouseInventoryInquiryDetails.stream().filter(item -> "0".equals(item.getInquiryBusinessType())).collect(Collectors.toList());
List<String> purchaseCodeList = filterInventoryInquiryDetails.stream().map(WarehouseInventoryInquiryDetail::getCorrelationCode).collect(Collectors.toList());
List<PurchaseOrder> purchaseOrders = purchaseOrderMapper.selectPurchaseOrderChildListByPurchaseCodeList(purchaseCodeList);
//审核中的采购订单
List<PurchaseOrder> 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<WarehouseInventoryInquiryDetail> warehouseInventoryInquiryDetails = warehouseInventoryInquiryDetailMapper.selectWarehouseInventoryInquiryDetailByMaterialNo(materialNo);
List<WarehouseInventoryInquiryDetail> 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;
}
} }

280
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.List;
import java.util.Optional; import java.util.Optional;
import com.ruoyi.aftersales.mapper.AfterSalesShippingDeviceMapper;
import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.BusinessException; import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.utils.DateUtils; 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.erp.mapper.ErpMaterialMapper;
import com.ruoyi.purchase.domain.PurchaseOrder; import com.ruoyi.purchase.domain.PurchaseOrder;
import com.ruoyi.purchase.domain.PurchaseOrderChild; import com.ruoyi.purchase.domain.PurchaseOrderChild;
import com.ruoyi.purchase.domain.PurchasePlan;
import com.ruoyi.purchase.mapper.PurchaseOrderChildMapper; import com.ruoyi.purchase.mapper.PurchaseOrderChildMapper;
import com.ruoyi.purchase.mapper.PurchaseOrderMapper; import com.ruoyi.purchase.mapper.PurchaseOrderMapper;
import com.ruoyi.purchase.mapper.PurchasePlanMapper;
import com.ruoyi.quality.domain.QualityOrder; import com.ruoyi.quality.domain.QualityOrder;
import com.ruoyi.quality.domain.QualityOrderDetail; import com.ruoyi.quality.domain.QualityOrderDetail;
import com.ruoyi.quality.domain.QualityRefundsExchanges; 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.system.service.ISysSalesOrderService;
import com.ruoyi.warehouse.domain.*; import com.ruoyi.warehouse.domain.*;
import com.ruoyi.warehouse.mapper.*; import com.ruoyi.warehouse.mapper.*;
import com.ruoyi.warehouse.service.IWarehouseInventoryInquiryService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.activiti.editor.language.json.converter.util.CollectionUtils; import org.activiti.editor.language.json.converter.util.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -91,6 +95,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
@Autowired @Autowired
private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper; private WarehouseInventoryInquiryMapper warehouseInventoryInquiryMapper;
@Autowired
private IWarehouseInventoryInquiryService warehouseInventoryInquiryService;
@Autowired @Autowired
private WarehouseInventoryInquiryDetailMapper inventoryInquiryDetailMapper; private WarehouseInventoryInquiryDetailMapper inventoryInquiryDetailMapper;
@ -101,6 +108,9 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
@Autowired @Autowired
private PurchaseOrderMapper purchaseOrderMapper; private PurchaseOrderMapper purchaseOrderMapper;
@Autowired
private PurchasePlanMapper purchasePlanMapper;
@Autowired @Autowired
private ErpMaterialMapper erpMaterialMapper; private ErpMaterialMapper erpMaterialMapper;
@ -112,6 +122,10 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
@Autowired @Autowired
private QualityRefundsExchangesMapper exchangesMapper; private QualityRefundsExchangesMapper exchangesMapper;
@Autowired
private AfterSalesShippingDeviceMapper afterSalesShippingDeviceMapper;
/** /**
* 查询仓库入库单 * 查询仓库入库单
* *
@ -542,10 +556,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
} }
WarehouseStorageOrderDetail updateStorageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail updateStorageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId());
int inventoryInquiryResult = createWarehouseInventoryInquiry(updateStorageOrderDetail); createWarehouseInventoryInquiry(updateStorageOrderDetail);
if (inventoryInquiryResult <= 0){
throw new BusinessException("更新/新增库存查询失败,未影响任何行");
}
} }
//更新入库单的数据 //更新入库单的数据
@ -658,25 +670,23 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); throw new BusinessException("更新仓库入库单详情失败,未影响任何行");
} }
WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId());
int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); createWarehouseInventoryInquiry(storageOrderDetail);
if (inventoryInquiryResult <= 0){
throw new BusinessException("更新/新增库存查询失败,未影响任何行");
}
}
//更新生产单数据
int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList);
if (updateMakeOrderResult <= 0){
throw new BusinessException("更新生产订单失败,未影响任何行");
} }
//更新开发修改单数据 // //更新生产单数据
String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode(); // int updateMakeOrderResult = sysMakeOrderService.updateSysMakeOrderByWarehouseStorageOrder(warehouseStorageOrder,oldWarehouseStorageOrder, warehouseStorageOrderDetailList);
ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); // if (updateMakeOrderResult <= 0){
if (erpDevelopModifyorder != null){ // throw new BusinessException("更新生产订单失败,未影响任何行");
erpDevelopModifyorder.setPurchaseStorageStatus("8"); // }
developModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder); //
} // //更新开发修改单数据
// String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode();
// ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode);
// if (erpDevelopModifyorder != null){
// erpDevelopModifyorder.setPurchaseStorageStatus("8");
// developModifyorderMapper.updateErpDevelopModifyorder(erpDevelopModifyorder);
// }
if (warehouseStorageOrder.getStorageNum().equals(oldWarehouseStorageOrder.getTemporaryQualifiedNum())){ 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 materialNo = warehouseStorageOrderDetail.getMaterialNo();
String correlationCode = warehouseStorageOrderDetail.getRelatedOrderCode(); String correlationCode = warehouseStorageOrderDetail.getRelatedOrderCode();
String storageCode = warehouseStorageOrderDetail.getWarehouseStorageCode(); String storageCode = warehouseStorageOrderDetail.getWarehouseStorageCode();
WarehouseStorageOrder warehouseStorageOrder = warehouseStorageOrderMapper.selectWarehouseStorageOrderByCode(storageCode); WarehouseStorageOrder warehouseStorageOrder = warehouseStorageOrderMapper.selectWarehouseStorageOrderByCode(storageCode);
String warehouseStorageType = warehouseStorageOrder.getWarehouseStorageType(); String warehouseStorageType = warehouseStorageOrder.getWarehouseStorageType();
if(warehouseStorageType.equals("0")) {
Integer storageNum = warehouseStorageOrderDetail.getStorageNum();
if("0".equals(warehouseStorageType)) {
// 新增采购入库库存历史记录 // 新增采购入库库存历史记录
String purchasePlanCode = purchaseOrderMapper.selectPurchasePlanCodeByCode(correlationCode);
PurchasePlan purchasePlan = purchasePlanMapper.selectPurchasePlanByPlanCode(purchasePlanCode);
if ("2".equals(purchasePlan.getPurchasePlanType())){ //来源为请购单
List<PurchaseOrderChild> 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("更新库存查询记录失败!");
}
// PurchaseOrder purchaseOrder = purchaseOrderMapper.selectPurchaseOrderByOrderCode()
List<PurchaseOrderChild> purchaseOrderChild = purchaseOrderChildMapper.selectPurchaseOrderChildByOrderCode(correlationCode);
for (PurchaseOrderChild child : purchaseOrderChild) {
if(child.getMaterialNo().equals(materialNo)){
int storageNum = warehouseStorageOrderDetail.getStorageNum();
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail = generateInquiryDetailByPurchaseChild(child,storageNum); inquiryDetail.setMaterialNo(materialNo);
// inquiryDetail.setInventoryHistoricalType("0"); inquiryDetail.setInquiryWarehouseType("0");//采购入库
// if (correlationCode.startsWith("QG")) { inquiryDetail.setInventoryHistoricalTime(DateUtils.getNowDate());
//// 有无归属分类 inquiryDetail.setInquiryOrderType("0");
// } inquiryDetail.setInquiryBusinessType("0");
inventoryInquiryDetailMapper.insertWarehouseInventoryInquiryDetail(inquiryDetail); 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<PurchaseOrderChild> 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")){//新增生产入库库存历史记录 }else if(warehouseStorageType.equals("5")){//新增生产入库库存历史记录
WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail(); WarehouseInventoryInquiryDetail inquiryDetail = new WarehouseInventoryInquiryDetail();
inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail); inquiryDetail = createMakeInOrderInquiryDetail(warehouseStorageOrderDetail);
@ -751,48 +853,48 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
scrapSum += scrapSum; scrapSum += scrapSum;
} }
} }
// 存在库存查询记录,更新可用库存数 //// 存在库存查询记录,更新可用库存数
if(warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo)!=null){ // if(warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo)!=null){
WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo); // WarehouseInventoryInquiry inventoryInquiry = warehouseInventoryInquiryMapper.selectWarehouseInventoryInquiryByMaterialNo(materialNo);
// 增加可用库存数 //// 增加可用库存数
Integer storage = warehouseStorageOrderDetail.getStorageNum(); // Integer storage = warehouseStorageOrderDetail.getStorageNum();
Integer storagenum = storage; // Integer storagenum = storage;
Integer avaliableStorage = inventoryInquiry.getAvailableStockNum(); // Integer avaliableStorage = inventoryInquiry.getAvailableStockNum();
avaliableStorage += storagenum; // avaliableStorage += storagenum;
inventoryInquiry.setAvailableStockNum(avaliableStorage); // inventoryInquiry.setAvailableStockNum(avaliableStorage);
inventoryInquiry.setReportDamageNum(scrapSum); // inventoryInquiry.setReportDamageNum(scrapSum);
// 设置历史总数 //// 设置历史总数
Integer historicalTotal = inventoryInquiry.getHistoricalTotal(); // Integer historicalTotal = inventoryInquiry.getHistoricalTotal();
historicalTotal += storagenum; // historicalTotal += 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);
}else{ // }else{
WarehouseInventoryInquiry inventoryInquiry = new WarehouseInventoryInquiry(); // WarehouseInventoryInquiry inventoryInquiry = new WarehouseInventoryInquiry();
inventoryInquiry.setMaterialNo(materialNo); // inventoryInquiry.setMaterialNo(materialNo);
inventoryInquiry.setMaterialName(warehouseStorageOrderDetail.getMaterialName()); // inventoryInquiry.setMaterialName(warehouseStorageOrderDetail.getMaterialName());
inventoryInquiry.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl()); // inventoryInquiry.setMaterialPhotourl(warehouseStorageOrderDetail.getMaterialPhotourl());
inventoryInquiry.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand()); // inventoryInquiry.setMaterialBrand(warehouseStorageOrderDetail.getMaterialBrand());
inventoryInquiry.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe()); // inventoryInquiry.setMaterialDescribe(warehouseStorageOrderDetail.getMaterialDescribe());
inventoryInquiry.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit()); // inventoryInquiry.setMaterialUnit(warehouseStorageOrderDetail.getMaterialUnit());
inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType()); // inventoryInquiry.setMaterialType(warehouseStorageOrderDetail.getMaterialType());
inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod()); // inventoryInquiry.setMaterialProcessMethod(warehouseStorageOrderDetail.getMaterialProcessMethod());
Integer storage = warehouseStorageOrderDetail.getStorageNum(); // Integer storage = warehouseStorageOrderDetail.getStorageNum();
Integer storagenum = storage; // Integer storagenum = storage;
// 设置历史总数 // // 设置历史总数
inventoryInquiry.setHistoricalTotal(storagenum); // inventoryInquiry.setHistoricalTotal(storagenum);
inventoryInquiry.setAvailableStockNum(storagenum); // inventoryInquiry.setAvailableStockNum(storagenum);
inventoryInquiry.setReportDamageNum(scrapSum); // inventoryInquiry.setReportDamageNum(scrapSum);
//
ErpMaterial material = erpMaterialMapper.selectErpMaterialByMaterialNo(materialNo); // ErpMaterial material = erpMaterialMapper.selectErpMaterialByMaterialNo(materialNo);
inventoryInquiry.setMaterialUseStatus(material.getUseStatus()); // inventoryInquiry.setMaterialUseStatus(material.getUseStatus());
inventoryInquiry.setCreateBy(ShiroUtils.getLoginName()); // inventoryInquiry.setCreateBy(ShiroUtils.getLoginName());
inventoryInquiry.setCreateTime(DateUtils.getNowDate()); // inventoryInquiry.setCreateTime(DateUtils.getNowDate());
inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName()); // inventoryInquiry.setUpdateBy(ShiroUtils.getLoginName());
inventoryInquiry.setUpdateTime(DateUtils.getNowDate()); // inventoryInquiry.setUpdateTime(DateUtils.getNowDate());
return warehouseInventoryInquiryMapper.insertWarehouseInventoryInquiry(inventoryInquiry); // return warehouseInventoryInquiryMapper.insertWarehouseInventoryInquiry(inventoryInquiry);
} // }
} }
// 生成采购订单库存历史记录 // 生成采购订单库存历史记录
@ -959,18 +1061,16 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); throw new BusinessException("更新仓库入库单详情失败,未影响任何行");
} }
WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId());
int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); createWarehouseInventoryInquiry(storageOrderDetail);
if (inventoryInquiryResult <= 0){
throw new BusinessException("更新/新增库存查询失败,未影响任何行");
}
}
//更新生产单数据
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(); // String relatedOrderCode = warehouseStorageOrder.getRelatedOrderCode();
// ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode); // ErpDevelopModifyorder erpDevelopModifyorder = developModifyorderMapper.selectErpDevelopModifyorderByCode(relatedOrderCode);
@ -1090,10 +1190,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
throw new BusinessException("更新仓库入库单详情失败,未影响任何行"); throw new BusinessException("更新仓库入库单详情失败,未影响任何行");
}else{ }else{
WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail storageOrderDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(warehouseStorageOrderDetail.getWarehouseStorageDetailId());
int inventoryInquiryResult = createWarehouseInventoryInquiry(storageOrderDetail); createWarehouseInventoryInquiry(storageOrderDetail);
if (inventoryInquiryResult <= 0){
throw new BusinessException("更新/新增库存查询失败,未影响任何行");
}
} }
} }
//更新入库单的数据 //更新入库单的数据
@ -1423,10 +1521,8 @@ public class WarehouseStorageOrderServiceImpl implements IWarehouseStorageOrderS
} }
//更新库存查询 //更新库存查询
WarehouseStorageOrderDetail storageOrderInquiryDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId()); WarehouseStorageOrderDetail storageOrderInquiryDetail = storageOrderDetailMapper.selectWarehouseStorageOrderDetailById(storageOrderDetail.getWarehouseStorageDetailId());
int inquiryResult = createWarehouseInventoryInquiry(storageOrderInquiryDetail); createWarehouseInventoryInquiry(storageOrderInquiryDetail);
if (inquiryResult <= 0){
throw new BusinessException("更新仓库库存查询失败,未影响任何行");
}
} }
//更新销售订单子表的数据 //更新销售订单子表的数据

12
ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderMapper.xml

@ -93,6 +93,18 @@
WHERE purchase_order_code = #{purchaseOrderCode} WHERE purchase_order_code = #{purchaseOrderCode}
</select> </select>
<select id="selectPurchaseOrderChildListByPurchaseCodeList" parameterType="list" resultMap="PurchaseOrderResult">
<include refid="selectPurchaseOrderVo"/>
<where>
<if test="list != null and list.size > 0">
purchase_order_code in
<foreach collection="list" item="purchaseOrderCode" open="(" separator="," close=")">
#{purchaseOrderCode}
</foreach>
</if>
</where>
</select>
<insert id="insertPurchaseOrder" parameterType="PurchaseOrder" useGeneratedKeys="true" keyProperty="purchaseOrderId"> <insert id="insertPurchaseOrder" parameterType="PurchaseOrder" useGeneratedKeys="true" keyProperty="purchaseOrderId">
insert into purchase_order insert into purchase_order

10
ruoyi-admin/src/main/resources/mapper/system/BaseRequisitioningOrderChildMapper.xml

@ -52,15 +52,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="photoUrl != null and photoUrl != ''"> and photoUrl = #{photoUrl}</if> <if test="photoUrl != null and photoUrl != ''"> and photoUrl = #{photoUrl}</if>
<if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if> <if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if>
<if test="materialType != null and materialType != ''"> and material_type = #{materialType}</if> <if test="materialType != null and materialType != ''"> and material_type = #{materialType}</if>
<if test="materialModel != null and materialModel != ''"> and material_model = #{materilaModel}</if>
<if test="specifications != null and specifications != ''"> and specifications = #{specifications}</if>
<if test="brand != null and brand != ''"> and brand = #{brand}</if>
<if test="describe != null and describe != ''"> and `describe` = #{describe}</if>
<if test="materialNum != null "> and materialNum = #{materialNum}</if>
<if test="materialRmb != null "> and materialRmb = #{materialRmb}</if>
<if test="materialNoRmb != null "> and materialNoRmb = #{materialNoRmb}</if>
<if test="materialNoRmbSum != null "> and materialNoRmbSum = #{materialNoRmbSum}</if>
<if test="materialRmbSum != null "> and materialRmbSum = #{materialRmbSum}</if>
<if test="remark != null and remark != ''"> and remark = #{remark}</if> <if test="remark != null and remark != ''"> and remark = #{remark}</if>
<if test="createBy != null and createBy != ''"> and create_by = #{createBy}</if> <if test="createBy != null and createBy != ''"> and create_by = #{createBy}</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if> <if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if>
@ -68,6 +59,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="useStatus != null and useStatus != ''"> and use_status = #{useStatus}</if> <if test="useStatus != null and useStatus != ''"> and use_status = #{useStatus}</if>
<if test="auditStatus != null and auditStatus != ''"> and audit_status = #{auditStatus}</if> <if test="auditStatus != null and auditStatus != ''"> and audit_status = #{auditStatus}</if>
</where> </where>
order by create_time desc
</select> </select>
<select id="selectBaseRequisitioningOrderChildById" parameterType="Long" resultMap="BaseRequisitioningOrderChildResult"> <select id="selectBaseRequisitioningOrderChildById" parameterType="Long" resultMap="BaseRequisitioningOrderChildResult">

5
ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryDetailMapper.xml

@ -37,6 +37,11 @@
where inventory_inquiry_detail_id = #{inventoryInquiryDetailId} where inventory_inquiry_detail_id = #{inventoryInquiryDetailId}
</select> </select>
<select id="selectWarehouseInventoryInquiryDetailByMaterialNo" parameterType="String" resultMap="WarehouseInventoryInquiryDetailResult" >
<include refid="selectWarehouseInventoryInquiryDetailVo"/>
where material_no = #{materialNo}
</select>
<insert id="insertWarehouseInventoryInquiryDetail" parameterType="WarehouseInventoryInquiryDetail" useGeneratedKeys="true" keyProperty="inventoryInquiryDetailId"> <insert id="insertWarehouseInventoryInquiryDetail" parameterType="WarehouseInventoryInquiryDetail" useGeneratedKeys="true" keyProperty="inventoryInquiryDetailId">
insert into warehouse_inventory_inquiry_detail insert into warehouse_inventory_inquiry_detail
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">

17
ruoyi-admin/src/main/resources/mapper/warehouse/WarehouseInventoryInquiryMapper.xml

@ -23,6 +23,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="fixedAvailableStockNum" column="fixed_available_stock_num" /> <result property="fixedAvailableStockNum" column="fixed_available_stock_num" />
<result property="stockLossesNum" column="stock_losses_num" /> <result property="stockLossesNum" column="stock_losses_num" />
<result property="availableStockNum" column="available_stock_num" /> <result property="availableStockNum" column="available_stock_num" />
<result property="noOccupancyNum" column="no_occupancy_num" />
<result property="editStockNum" column="edit_stock_num" />
<result property="inventoryEditType" column="inventory_edit_type" />
<result property="attributionAvailableStockNum" column="attribution_available_stock_num" /> <result property="attributionAvailableStockNum" column="attribution_available_stock_num" />
<result property="noattributionAvailableStockNum" column="noattribution_available_stock_num" /> <result property="noattributionAvailableStockNum" column="noattribution_available_stock_num" />
<result property="useNum" column="use_num" /> <result property="useNum" column="use_num" />
@ -39,7 +42,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select inventory_inquiry_id, material_no, material_name, material_type, select inventory_inquiry_id, material_no, material_name, material_type,
material_photoUrl, material_brand, material_unit, material_describe, material_photoUrl, material_brand, material_unit, material_describe,
material_process_method, material_model, material_specification,warehouse_dept, 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, noattribution_available_stock_num, use_num, report_damage_num, material_use_status,
remark, create_time, create_by, update_by, update_time remark, create_time, create_by, update_by, update_time
from warehouse_inventory_inquiry from warehouse_inventory_inquiry
@ -52,6 +57,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if> <if test="materialName != null and materialName != ''"> and material_name like concat('%', #{materialName}, '%')</if>
<if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if> <if test="params.beginCreateTime != null and params.beginCreateTime != '' and params.endCreateTime != null and params.endCreateTime != ''"> and create_time between #{params.beginCreateTime} and #{params.endCreateTime}</if>
</where> </where>
order by create_time desc
</select> </select>
<select id="selectWarehouseInventoryInquiryById" parameterType="Long" resultMap="WarehouseInventoryInquiryResult"> <select id="selectWarehouseInventoryInquiryById" parameterType="Long" resultMap="WarehouseInventoryInquiryResult">
@ -92,6 +98,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fixedAvailableStockNum != null">fixed_available_stock_num,</if> <if test="fixedAvailableStockNum != null">fixed_available_stock_num,</if>
<if test="stockLossesNum != null">stock_losses_num,</if> <if test="stockLossesNum != null">stock_losses_num,</if>
<if test="availableStockNum != null">available_stock_num,</if> <if test="availableStockNum != null">available_stock_num,</if>
<if test="noOccupancyNum != null">no_occupancy_num,</if>
<if test="editStockNum != null">edit_stock_num,</if>
<if test="inventoryEditType != null">inventory_edit_type,</if>
<if test="attributionAvailableStockNum != null">attribution_available_stock_num,</if> <if test="attributionAvailableStockNum != null">attribution_available_stock_num,</if>
<if test="noattributionAvailableStockNum != null">noattribution_available_stock_num,</if> <if test="noattributionAvailableStockNum != null">noattribution_available_stock_num,</if>
<if test="useNum != null">use_num,</if> <if test="useNum != null">use_num,</if>
@ -121,6 +130,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fixedAvailableStockNum != null">#{fixedAvailableStockNum},</if> <if test="fixedAvailableStockNum != null">#{fixedAvailableStockNum},</if>
<if test="stockLossesNum != null">#{stockLossesNum},</if> <if test="stockLossesNum != null">#{stockLossesNum},</if>
<if test="availableStockNum != null">#{availableStockNum},</if> <if test="availableStockNum != null">#{availableStockNum},</if>
<if test="noOccupancyNum != null">#{noOccupancyNum},</if>
<if test="editStockNum != null">#{editStockNum},</if>
<if test="inventoryEditType != null">#{inventoryEditType},</if>
<if test="attributionAvailableStockNum != null">#{attributionAvailableStockNum},</if> <if test="attributionAvailableStockNum != null">#{attributionAvailableStockNum},</if>
<if test="noattributionAvailableStockNum != null">#{noattributionAvailableStockNum},</if> <if test="noattributionAvailableStockNum != null">#{noattributionAvailableStockNum},</if>
<if test="useNum != null">#{useNum},</if> <if test="useNum != null">#{useNum},</if>
@ -154,6 +166,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="fixedAvailableStockNum != null">fixed_available_stock_num = #{fixedAvailableStockNum},</if> <if test="fixedAvailableStockNum != null">fixed_available_stock_num = #{fixedAvailableStockNum},</if>
<if test="stockLossesNum != null">stock_losses_num = #{stockLossesNum},</if> <if test="stockLossesNum != null">stock_losses_num = #{stockLossesNum},</if>
<if test="availableStockNum != null">available_stock_num = #{availableStockNum},</if> <if test="availableStockNum != null">available_stock_num = #{availableStockNum},</if>
<if test="noOccupancyNum != null">no_occupancy_num = #{noOccupancyNum},</if>
<if test="editStockNum != null">edit_stock_num = #{editStockNum},</if>
<if test="inventoryEditType != null">inventory_edit_type = #{inventoryEditType},</if>
<if test="attributionAvailableStockNum != null">attribution_available_stock_num = #{attributionAvailableStockNum},</if> <if test="attributionAvailableStockNum != null">attribution_available_stock_num = #{attributionAvailableStockNum},</if>
<if test="noattributionAvailableStockNum != null">noattribution_available_stock_num = #{noattributionAvailableStockNum},</if> <if test="noattributionAvailableStockNum != null">noattribution_available_stock_num = #{noattributionAvailableStockNum},</if>
<if test="useNum != null">use_num = #{useNum},</if> <if test="useNum != null">use_num = #{useNum},</if>

3
ruoyi-admin/src/main/resources/templates/system/requisitioning/add.html

@ -85,7 +85,7 @@
return $.table.selectCategoryLabel(materialTypeDatas, value); return $.table.selectCategoryLabel(materialTypeDatas, value);
} }
}, },
{title: '型号',field: 'materialModel',visible: false,align: 'center'}, {title: '型号',field: 'materialModel',align: 'center'},
{title: '规格',field: 'specification',visible: false,align: 'center'}, {title: '规格',field: 'specification',visible: false,align: 'center'},
{ title: '描述',field: 'describe',align: 'center'}, { title: '描述',field: 'describe',align: 'center'},
{title: '品牌',field: 'brand',align: 'center'}, {title: '品牌',field: 'brand',align: 'center'},
@ -229,6 +229,7 @@
materialName: rowData.materialName, materialName: rowData.materialName,
materialType: rowData.materialType, materialType: rowData.materialType,
describe: rowData.describe, describe: rowData.describe,
materialModel: rowData.materialModel,
brand: rowData.brand, brand: rowData.brand,
unit: rowData.unit, unit: rowData.unit,
processMethod: rowData.processMethod, processMethod: rowData.processMethod,

5
ruoyi-admin/src/main/resources/templates/system/requisitioning/requisitioning.html

@ -158,7 +158,7 @@
} }
}, },
{title: '物料合计',field: 'materialAmount',align: 'center', {title: '物料合计',field: 'materialAmount',align: 'center',
formatter: function(value) { footerFormatter: function(value) {
var sum = 0; var sum = 0;
for (var i in value) { for (var i in value) {
sum += parseFloat(value[i].materialAmount) || 0; sum += parseFloat(value[i].materialAmount) || 0;
@ -167,7 +167,7 @@
} }
}, },
{title: '数量总计',field: 'materialSum',align: 'center', {title: '数量总计',field: 'materialSum',align: 'center',
formatter: function(value){ footerFormatter: function(value){
var sum = 0; var sum = 0;
for (var i in value) { for (var i in value) {
@ -202,6 +202,7 @@
} }
}, },
{title: '备注',field: 'remark',align: 'center',}, {title: '备注',field: 'remark',align: 'center',},
{title: '创建时间',field: 'createTime',align: 'center',},
{title: '上次更新时间',field: 'updateTime',align: 'center',}, {title: '上次更新时间',field: 'updateTime',align: 'center',},
{title: '操作',align: 'center', {title: '操作',align: 'center',
formatter: function (value, row, index) { formatter: function (value, row, index) {

83
ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/editAvailableStock.html

@ -0,0 +1,83 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改可用库存')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-inventoryInquiry-editAvailableStock" th:object="${warehouseInventoryInquiry}">
<input name="inventoryInquiryId" th:field="*{inventoryInquiryId}" type="hidden">
<div class="form-group">
<label class="col-sm-4 control-label">料号:</label>
<div class="col-sm-8">
<input name="materialNo" th:field="*{materialNo}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">物料名称:</label>
<div class="col-sm-8">
<input name="materialName" th:field="*{materialName}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">固定可用库存数:</label>
<div class="col-sm-8">
<input name="fixedAvailableStockNum" th:field="*{fixedAvailableStockNum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label">未占用共享可用库存数:</label>
<div class="col-sm-8">
<input name="noOccupancyNum" th:field="*{noOccupancyNum}" class="form-control" type="text" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label is-required">修改类型:</label>
<div class="col-sm-8">
<select name="inventoryEditType" class="form-control m-b" th:with="type=${@dict.getType('inventory_edit_type')}">
<!-- 默认选项 -->
<option value="" selected="selected">请选择</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{inventoryEditType}" required></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-4 control-label is-required">修改数量:</label>
<div class="col-sm-8">
<input name="editStockNum" th:field="*{editStockNum}" class="form-control" type="text" required>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "warehouse/inventoryInquiry";
$("#form-inventoryInquiry-editAvailableStock").validate({
rules: {
editStockNum: {
number: true,
min: 1
},
},
messages: {
editStockNum: {
number: "请输入有效的数字",
min: "修改数量必须大于0"
}
},
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/editAvailableStock", $('#form-inventoryInquiry-editAvailableStock').serialize());
}
}
</script>
</body>
</html>

37
ruoyi-admin/src/main/resources/templates/warehouse/inventoryInquiry/inventoryInquiry.html

@ -49,6 +49,10 @@
<th:block th:include="include :: footer" /> <th:block th:include="include :: footer" />
<script th:inline="javascript"> <script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('warehouse:inventoryInquiry:edit')}]]; var editFlag = [[${@permission.hasPermi('warehouse:inventoryInquiry:edit')}]];
var editAvailableStockFlag = [[${@permission.hasPermi('warehouse:inventoryInquiry:editAvailableStockFlag')}]];
var materialUseStatusDatas = [[${@dict.getType('useStatus')}]]; var materialUseStatusDatas = [[${@dict.getType('useStatus')}]];
var auditStatusDatas = [[${@dict.getType('auditStatus')}]]; var auditStatusDatas = [[${@dict.getType('auditStatus')}]];
var useStatusDatas = [[${@dict.getType('useStatus')}]]; var useStatusDatas = [[${@dict.getType('useStatus')}]];
@ -108,9 +112,13 @@
}, },
{title: '历史总数量', field: 'historicalTotal',}, {title: '历史总数量', field: 'historicalTotal',},
{title: '可用库存数', field: 'availableStockNum',}, {title: '可用库存数', field: 'availableStockNum',},
{title: '有归属可用库存数', field: 'attributionAvailableStockNum',visible: false}, {title: '固定可用库存数', field: 'fixedAvailableStockNum',},
{title: '无归属可用库存数', field: 'noattributionAvailableStockNum',visible: false}, {title: '共享可用库存数', field: 'sharedAvailableStockNum',},
{title: '锁定库存数', field: 'lockStockNum',},
{title: '使用数', field: 'useNum',}, {title: '使用数', field: 'useNum',},
{title: '盘亏数', field: 'stockLossesNum',},
{title: '报损数', field: 'reportDamageNum',}, {title: '报损数', field: 'reportDamageNum',},
{title: '使用状态', field: 'materialUseStatus', {title: '使用状态', field: 'materialUseStatus',
formatter: function(value, row, index) { formatter: function(value, row, index) {
@ -121,13 +129,17 @@
{title: '录入人', field: 'createBy',visible: false}, {title: '录入人', field: 'createBy',visible: false},
{title: '更新人', field: 'updateBy',}, {title: '更新人', field: 'updateBy',},
{title: '上次更新时间', field: 'updateTime',}, {title: '上次更新时间', field: 'updateTime',},
// {title: '操作', align: 'center', {title: '操作', align: 'center',
// formatter: function(value, row, index) { formatter: function(value, row, index) {
// var actions = []; var actions = [];
// actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.inventoryInquiryId + '\')"><i class="fa fa-edit"></i>编辑</a> '); if (row.materialProcessMethod != 1 && row.materialProcessMethod != 3){
// return actions.join(''); //生产加工和生产装配的不支持转化
// } actions.push('<a class=" ' + editAvailableStockFlag + '" href="javascript:void(0)" onclick="editAvailableStock(\'' + row.inventoryInquiryId + '\')"><i class="fa fa-edit"></i>修改可用库存</a> ');
// } }
var actionLinks = actions.join('');
return $.table.dropdownToggle(actionLinks);
}
}
] ]
}; };
$.table.init(options); $.table.init(options);
@ -167,6 +179,13 @@
}); });
}); });
} }
//修改可用库存
function editAvailableStock(inventoryInquiryId) {
var url = prefix + "/editAvailableStock/" + inventoryInquiryId;
$.modal.open("修改可用库存", url);
}
</script> </script>
</body> </body>
</html> </html>
Loading…
Cancel
Save