Browse Source

[feat]

删除旧版的采购计划的所有相关的文件,和其数据库的文件
删除旧版的采购计划子表的所有相关的文件,和其数据的文件
修改采购计划前端页面按照新版prd调整
按照新版prd
新增采购计划表purchase_plan
数据库新增5条测试数据
新增采购计划实体类
新增采购计划Controller
新增采购计划Mapper
新增采购计划Mapper.XML
新增采购计划Service接口
新增采购计划ServiceImpl实现类
按照新版prd
新增采购计划子表purchase_plan_child
数据库新增10条测试数据
新增采购计划子表实体类
新增采购计划子表Mapper
新增采购计划子表Mapper.XML
新增采购计划子表Service接口
新增采购计划子表ServiceImpl实现类
修改请购单的关联采购计划的方法,修改部分方法吗,采用最新的字段
dev
liuxiaoxu 2 weeks ago
parent
commit
45f4b369a2
  1. 6
      ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchasePlanController.java
  2. 168
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchasePlan.java
  3. 387
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchasePlanChild.java
  4. 71
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchasePlanServiceImpl.java
  5. 25
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java
  6. 279
      ruoyi-admin/src/main/resources/mapper/purchase/PurchasePlanChildMapper.xml
  7. 95
      ruoyi-admin/src/main/resources/mapper/purchase/PurchasePlanMapper.xml
  8. 36
      ruoyi-admin/src/main/resources/templates/purchase/purchasePlan/purchasePlan.html

6
ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchasePlanController.java

@ -126,9 +126,9 @@ public class PurchasePlanController extends BaseController
List<PurchasePlanChild> purchasePlanChildList = purchasePlanChildService.getPurchasePlanChildByPlanCodes(uniquePurchasePlanCodes);
for(PurchasePlanChild purchasePlanChild : purchasePlanChildList){
String materialCode = purchasePlanChild.getMaterialCode();
List<PurchaseQuoteChild> purchaseQuoteChildList = purchaseQuoteChildService.selectQuoteChildByMaterialCode(materialCode);
purchasePlanChild.setPurchaseSupplierList(purchaseQuoteChildList);
String materialCode = purchasePlanChild.getMaterialNo();
// List<PurchaseQuoteChild> purchaseQuoteChildList = purchaseQuoteChildService.selectQuoteChildByMaterialCode(materialCode);
// purchasePlanChild.setPurchaseSupplierList(purchaseQuoteChildList);
}
//再根据采购计划编号分组查询对应的采购报价数据分组
//用stream流处理相同供应商\物料\

168
ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchasePlan.java

@ -1,86 +1,82 @@
package com.ruoyi.purchase.domain;
import java.math.BigDecimal;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import java.math.BigDecimal;
import java.util.List;
/**
* 采购计划单对象 purchase_plan
*
* @author 刘晓旭
* @date 2024-04-15
* @date 2024-11-15
*/
public class PurchasePlan extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 采购计划索引id */
/** 采购计划id */
private Long purchasePlanId;
/** 采购计划单号 */
@Excel(name = "采购计划单号")
private String purchasePlanCode;
/** 采购计划状态 (0待申请、1申请中、2申请通过、3审核拒绝、4已作废)*/
@Excel(name = "采购计划状态")
/** 采购计划状态(0待申请、1部分申请、2全部申请、3全部作废) */
@Excel(name = "采购计划状态",dictType = "purchase_plan_status")
private String purchasePlanStatus;
/** 关联单号 */
@Excel(name = "关联单号")
private String correlationCode;
/** 采购计划状态 (1生产单、2请购单、3开发修改单)*/
@Excel(name = "采购来源")
/** 采购来源(1生产单、2请购单、3开发修改单) */
@Excel(name = "采购来源",dictType = "purchase_plan_type")
private String purchasePlanType;
/** 物料合计 */
@Excel(name = "物料合计")
private Long materialAmount;
/** 物料合计 */
@Excel(name = "物料合计")
private Integer materialSum;
/** 数量计 */
@Excel(name = "数量计")
private Long materialSum;
/** 数量计 */
@Excel(name = "数量计")
private Integer enterpriseSum;
/** 不含税总价(RMB) */
@Excel(name = "不含税总价(RMB)")
private BigDecimal noRmbSum;
private BigDecimal normbSum;
/** 含税总价(RMB) */
@Excel(name = "含税总价(RMB)")
private BigDecimal rmbSum;
/** 申请人 */
@Excel(name = "申请人")
private String applyUser;
/** 录入时间 */
@Excel(name = "录入时间")
private String firstAddTime;
/** 计划采购总数 */
@Excel(name = "计划采购总数")
private Integer planPurchaseSum;
/** 修改时间 */
@Excel(name = "修改时间")
private String updateInfoTime;
/** 待采购总数 */
@Excel(name = "待采购总数")
private Integer purchaseSum;
/** 审核状态 */
private String auditStatus;
/** 实际采购总数 */
@Excel(name = "实际采购总数")
private Integer actualPurchaseSum;
/** 使用状态 */
private String useStatus;
/** 共享库存占用总数 */
@Excel(name = "共享库存占用总数")
private Integer sharedInventoryOccupancySum;
private List<PurchasePlanChild> purchasePlanDetailList;
/** 作废总数 */
@Excel(name = "作废总数")
private Integer cancelSum;
/** 申请人 */
@Excel(name = "申请人")
private String applyUser;
public List<PurchasePlanChild> getPurchasePlanDetailList() {
return purchasePlanDetailList;
}
public void setPurchasePlanDetailList(List<PurchasePlanChild> purchasePlanDetailList) {
this.purchasePlanDetailList = purchasePlanDetailList;
}
/** 删除标志 0 启用 1逻辑删除 */
private String delFlag;
public void setPurchasePlanId(Long purchasePlanId)
{
@ -127,32 +123,32 @@ public class PurchasePlan extends BaseEntity
{
return purchasePlanType;
}
public void setMaterialAmount(Long materialAmount)
public void setMaterialSum(Integer materialSum)
{
this.materialAmount = materialAmount;
this.materialSum = materialSum;
}
public Long getMaterialAmount()
public Integer getMaterialSum()
{
return materialAmount;
return materialSum;
}
public void setMaterialSum(Long materialSum)
public void setEnterpriseSum(Integer enterpriseSum)
{
this.materialSum = materialSum;
this.enterpriseSum = enterpriseSum;
}
public Long getMaterialSum()
public Integer getEnterpriseSum()
{
return materialSum;
return enterpriseSum;
}
public void setNoRmbSum(BigDecimal noRmbSum)
public void setNormbSum(BigDecimal normbSum)
{
this.noRmbSum = noRmbSum;
this.normbSum = normbSum;
}
public BigDecimal getNoRmbSum()
public BigDecimal getNormbSum()
{
return noRmbSum;
return normbSum;
}
public void setRmbSum(BigDecimal rmbSum)
{
@ -163,50 +159,68 @@ public class PurchasePlan extends BaseEntity
{
return rmbSum;
}
public void setApplyUser(String applyUser)
public void setPlanPurchaseSum(Integer planPurchaseSum)
{
this.applyUser = applyUser;
this.planPurchaseSum = planPurchaseSum;
}
public String getApplyUser()
public Integer getPlanPurchaseSum()
{
return applyUser;
return planPurchaseSum;
}
public void setFirstAddTime(String firstAddTime)
public void setPurchaseSum(Integer purchaseSum)
{
this.firstAddTime = firstAddTime;
this.purchaseSum = purchaseSum;
}
public String getFirstAddTime()
public Integer getPurchaseSum()
{
return firstAddTime;
return purchaseSum;
}
public void setUpdateInfoTime(String updateInfoTime)
public void setActualPurchaseSum(Integer actualPurchaseSum)
{
this.updateInfoTime = updateInfoTime;
this.actualPurchaseSum = actualPurchaseSum;
}
public String getUpdateInfoTime()
public Integer getActualPurchaseSum()
{
return updateInfoTime;
return actualPurchaseSum;
}
public void setAuditStatus(String auditStatus)
public void setSharedInventoryOccupancySum(Integer sharedInventoryOccupancySum)
{
this.auditStatus = auditStatus;
this.sharedInventoryOccupancySum = sharedInventoryOccupancySum;
}
public String getAuditStatus()
public Integer getSharedInventoryOccupancySum()
{
return sharedInventoryOccupancySum;
}
public void setCancelSum(Integer cancelSum)
{
return auditStatus;
this.cancelSum = cancelSum;
}
public Integer getCancelSum()
{
return cancelSum;
}
public void setApplyUser(String applyUser)
{
this.applyUser = applyUser;
}
public String getApplyUser()
{
return applyUser;
}
public void setUseStatus(String useStatus)
public void setDelFlag(String delFlag)
{
this.useStatus = useStatus;
this.delFlag = delFlag;
}
public String getUseStatus()
public String getDelFlag()
{
return useStatus;
return delFlag;
}
@Override
@ -217,20 +231,22 @@ public class PurchasePlan extends BaseEntity
.append("purchasePlanStatus", getPurchasePlanStatus())
.append("correlationCode", getCorrelationCode())
.append("purchasePlanType", getPurchasePlanType())
.append("materialAmount", getMaterialAmount())
.append("materialSum", getMaterialSum())
.append("noRmbSum", getNoRmbSum())
.append("enterpriseSum", getEnterpriseSum())
.append("normbSum", getNormbSum())
.append("rmbSum", getRmbSum())
.append("planPurchaseSum", getPlanPurchaseSum())
.append("purchaseSum", getPurchaseSum())
.append("actualPurchaseSum", getActualPurchaseSum())
.append("sharedInventoryOccupancySum", getSharedInventoryOccupancySum())
.append("cancelSum", getCancelSum())
.append("applyUser", getApplyUser())
.append("firstAddTime", getFirstAddTime())
.append("updateInfoTime", getUpdateInfoTime())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("auditStatus", getAuditStatus())
.append("useStatus", getUseStatus())
.append("remark", getRemark())
.append("delFlag", getDelFlag())
.toString();
}
}

387
ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchasePlanChild.java

@ -1,119 +1,110 @@
package com.ruoyi.purchase.domain;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
/**
* 采购计划单物料信息对象 purchase_plan_child
* 采购计划单对象 purchase_plan_child
*
* @author zhang
* @date 2024-05-16
* @author 刘晓旭
* @date 2024-11-15
*/
public class PurchasePlanChild extends BaseEntity
{
private static final long serialVersionUID = 1L;
public List<PurchaseQuoteChild> parseSupplierMaterialCombinations;
/** 采购计划物料清单索引 */
/** 采购计划子表id */
private Long purchasePlanChildId;
/** 关联采购计划编号字段 */
@Excel(name = "关联采购计划编号字段")
/** 采购计划编号 */
@Excel(name = "采购计划编号")
private String purchasePlanCode;
/** 物料表中的id */
@Excel(name = "物料表中的id")
private Long materialId;
/** 采购计划状态(0待申请、1部分申请、2全部申请、3全部作废) */
@Excel(name = "采购计划状态(0待申请、1部分申请、2全部申请、3全部作废)")
private String purchasePlanStatus;
/** 物料表中的编号 */
@Excel(name = "物料表中的编号")
private String materialCode;
/** 关联单号 */
@Excel(name = "关联单号")
private String correlationCode;
/** 物料的名称 */
@Excel(name = "物料的名称")
private String materialName;
/** 采购来源(1生产单、2请购单、3开发修改单) */
@Excel(name = "采购来源(1生产单、2请购单、3开发修改单)")
private String purchasePlanType;
/** 物料的类型 */
@Excel(name = "物料的类型")
private String materialType;
/** 料号 */
@Excel(name = "料号")
private String materialNo;
/** 物料的加工方式 */
@Excel(name = "物料的加工方式")
private String processMethod;
/** 物料名称 */
@Excel(name = "物料名称")
private String materialName;
/** 物料的品牌 */
@Excel(name = "物料的品牌")
private String brand;
/** 物料类型 */
@Excel(name = "物料类型")
private String materialType;
/** 物料图片 */
@Excel(name = "物料图片")
private String photoUrl;
/** 物料图片地址 */
@Excel(name = "物料图片地址")
private String materialPhotourl;
/** 物料的描述 */
@Excel(name = "物料的描述")
private String describe;
/** 物料品牌 */
@Excel(name = "物料品牌")
private String materialBrand;
/** 物料单位 */
@Excel(name = "物料单位")
private String unit;
@Excel(name = "物料入库部门")
private String warehouseDept;
private String materialUnit;
/** 采购计划数 */
@Excel(name = "采购计划数")
private Double materialNum;
/** 物料描述 */
@Excel(name = "物料描述")
private String materialDescribe;
/** 物料的对外报价 */
private Long materialSole;
/** 物料加工方式 */
@Excel(name = "物料加工方式")
private String materialProcessMethod;
/** 物料的不含税单价(RMB) */
private BigDecimal materialRmb;
/** 物料型号 */
@Excel(name = "物料型号")
private String materialModel;
/** 物料的含税单价(RMB) */
private BigDecimal materialNoRmb;
/*供应商编号*/
private String supplierCode;
/** 物料供应商 */
private String supplierName;
/** 入库部门(0仓库、1采购) */
@Excel(name = "入库部门(0仓库、1采购)")
private String warehouseDept;
/** 使用状态 */
private String useStatus;
/** 物料不含税总价(RMB) */
@Excel(name = "物料不含税总价(RMB)")
private BigDecimal materialNormbSum;
/** 审核状态 */
private String auditStatus;
/** 物料含税总价(RMB) */
@Excel(name = "物料含税总价(RMB)")
private BigDecimal materialRmbSum;
/** 删除标志 */
private String delFlag;
/** 关联供应商编号 */
private String supplierCodes;
/** 关联采购报价单编号 */
private String correlationCodes;
/** 计划采购数 */
@Excel(name = "计划采购数")
private Integer planPurchaseNum;
private String planCodes;
private List<PurchaseQuoteChild> purchaseSupplierList;
/** 待采购数 */
@Excel(name = "待采购数")
private Integer purchaseNum;
public String getSupplierCodes() {
return supplierCodes;
}
/** 实际采购数 */
@Excel(name = "实际采购数")
private Integer actualPurchaseNum;
public void setSupplierCodes(String supplierCodes) {
this.supplierCodes = supplierCodes;
}
/** 共享库存占用数 */
@Excel(name = "共享库存占用数")
private Integer sharedInventoryOccupancyNum;
public String getCorrelationCodes() {
return correlationCodes;
}
/** 作废数 */
@Excel(name = "作废数")
private Integer cancelNum;
public void setCorrelationCodes(String correlationCodes) {
this.correlationCodes = correlationCodes;
}
/** 删除标志 0 启用 1逻辑删除 */
private String delFlag;
public void setPurchasePlanChildId(Long purchasePlanChildId)
{
@ -133,23 +124,41 @@ public class PurchasePlanChild extends BaseEntity
{
return purchasePlanCode;
}
public void setMaterialId(Long materialId)
public void setPurchasePlanStatus(String purchasePlanStatus)
{
this.materialId = materialId;
this.purchasePlanStatus = purchasePlanStatus;
}
public Long getMaterialId()
public String getPurchasePlanStatus()
{
return materialId;
return purchasePlanStatus;
}
public void setMaterialCode(String materialCode)
public void setCorrelationCode(String correlationCode)
{
this.materialCode = materialCode;
this.correlationCode = correlationCode;
}
public String getMaterialCode()
public String getCorrelationCode()
{
return correlationCode;
}
public void setPurchasePlanType(String purchasePlanType)
{
return materialCode;
this.purchasePlanType = purchasePlanType;
}
public String getPurchasePlanType()
{
return purchasePlanType;
}
public void setMaterialNo(String materialNo)
{
this.materialNo = materialNo;
}
public String getMaterialNo()
{
return materialNo;
}
public void setMaterialName(String materialName)
{
@ -169,214 +178,172 @@ public class PurchasePlanChild extends BaseEntity
{
return materialType;
}
public void setProcessMethod(String processMethod)
public void setMaterialPhotourl(String materialPhotourl)
{
this.processMethod = processMethod;
this.materialPhotourl = materialPhotourl;
}
public String getProcessMethod()
public String getMaterialPhotourl()
{
return processMethod;
return materialPhotourl;
}
public void setBrand(String brand)
public void setMaterialBrand(String materialBrand)
{
this.brand = brand;
this.materialBrand = materialBrand;
}
public String getBrand()
public String getMaterialBrand()
{
return brand;
return materialBrand;
}
public void setPhotoUrl(String photoUrl)
public void setMaterialUnit(String materialUnit)
{
this.photoUrl = photoUrl;
this.materialUnit = materialUnit;
}
public String getPhotoUrl()
public String getMaterialUnit()
{
return photoUrl;
return materialUnit;
}
public void setDescribe(String describe)
public void setMaterialDescribe(String materialDescribe)
{
this.describe = describe;
this.materialDescribe = materialDescribe;
}
public String getDescribe()
public String getMaterialDescribe()
{
return describe;
return materialDescribe;
}
public String getUnit() {
return unit;
}
public void setUnit(String unit) {
this.unit = unit;
}
public Double getMaterialNum() {
return materialNum;
}
public void setMaterialNum(Double materialNum) {
this.materialNum = materialNum;
}
public List<PurchaseQuoteChild> getParseSupplierMaterialCombinations() {
return parseSupplierMaterialCombinations;
}
public void setParseSupplierMaterialCombinations(List<PurchaseQuoteChild> parseSupplierMaterialCombinations) {
this.parseSupplierMaterialCombinations = parseSupplierMaterialCombinations;
}
public void setMaterialSole(Long materialSole)
public void setMaterialProcessMethod(String materialProcessMethod)
{
this.materialSole = materialSole;
this.materialProcessMethod = materialProcessMethod;
}
public Long getMaterialSole()
public String getMaterialProcessMethod()
{
return materialSole;
return materialProcessMethod;
}
public void setMaterialRmb(BigDecimal materialRmb)
public void setMaterialModel(String materialModel)
{
this.materialRmb = materialRmb;
this.materialModel = materialModel;
}
public BigDecimal getMaterialRmb()
public String getMaterialModel()
{
return materialRmb;
return materialModel;
}
public void setMaterialNoRmb(BigDecimal materialNoRmb)
public void setWarehouseDept(String warehouseDept)
{
this.materialNoRmb = materialNoRmb;
this.warehouseDept = warehouseDept;
}
public BigDecimal getMaterialNoRmb()
public String getWarehouseDept()
{
return materialNoRmb;
return warehouseDept;
}
public void setUseStatus(String useStatus)
public void setMaterialNormbSum(BigDecimal materialNormbSum)
{
this.useStatus = useStatus;
this.materialNormbSum = materialNormbSum;
}
public String getSupplierCode() {
return supplierCode;
public BigDecimal getMaterialNormbSum()
{
return materialNormbSum;
}
public void setSupplierCode(String supplierCode) {
this.supplierCode = supplierCode;
public void setMaterialRmbSum(BigDecimal materialRmbSum)
{
this.materialRmbSum = materialRmbSum;
}
public String getSupplierName() {
return supplierName;
public BigDecimal getMaterialRmbSum()
{
return materialRmbSum;
}
public void setSupplierName(String supplierName) {
this.supplierName = supplierName;
public void setPlanPurchaseNum(Integer planPurchaseNum)
{
this.planPurchaseNum = planPurchaseNum;
}
public String getWarehouseDept() {
return warehouseDept;
public Integer getPlanPurchaseNum()
{
return planPurchaseNum;
}
public void setWarehouseDept(String warehouseDept) {
this.warehouseDept = warehouseDept;
public void setPurchaseNum(Integer purchaseNum)
{
this.purchaseNum = purchaseNum;
}
public List<PurchaseQuoteChild> getPurchaseSupplierList() {
return purchaseSupplierList;
public Integer getPurchaseNum()
{
return purchaseNum;
}
public void setPurchaseSupplierList(List<PurchaseQuoteChild> purchaseSupplierList) {
this.purchaseSupplierList = purchaseSupplierList;
public void setActualPurchaseNum(Integer actualPurchaseNum)
{
this.actualPurchaseNum = actualPurchaseNum;
}
public String getPlanCodes() {
return planCodes;
public Integer getActualPurchaseNum()
{
return actualPurchaseNum;
}
public void setPlanCodes(String planCodes) {
this.planCodes = planCodes;
public void setSharedInventoryOccupancyNum(Integer sharedInventoryOccupancyNum)
{
this.sharedInventoryOccupancyNum = sharedInventoryOccupancyNum;
}
public String getUseStatus()
public Integer getSharedInventoryOccupancyNum()
{
return useStatus;
return sharedInventoryOccupancyNum;
}
public void setAuditStatus(String auditStatus)
public void setCancelNum(Integer cancelNum)
{
this.auditStatus = auditStatus;
this.cancelNum = cancelNum;
}
public String getAuditStatus()
public Integer getCancelNum()
{
return auditStatus;
return cancelNum;
}
public void setDelFlag(String delFlag)
{
this.delFlag = delFlag;
}
public String getDelFlag()
{
return delFlag;
}
public List<PurchaseQuoteChild> parseSupplierMaterialCombinations(String combinations) {
if (combinations == null || combinations.isEmpty()) {
return Collections.emptyList();
}
//materialCode|purchaseQuoteCode|supplierCode|supplierName|materialName|materialNoRmb|materialRmb|purchasePlanCode|correlationCode
/* 1. 料号 | 2. 供应商报价编号 | 3. 供应商编号 | 4.供应商名称 | 5. 物料名称 | 6. 物料含税单价(RMB) | 7. 物料不含税单价(RMB) | 8关联采购计划单号 | 9关联相关订单号 */
List<PurchaseQuoteChild> purchaseSupplierList = new ArrayList<>();
String[] split = combinations.split(",");
for (int i = 0; i < split.length; i++) {
String[] split1 = split[i].split("\\|");
PurchaseQuoteChild purchaseQuoteChild = new PurchaseQuoteChild();
purchaseQuoteChild.setMaterialCode(split1[0]);
purchaseQuoteChild.setPurchaseQuoteCode(split1[1]);
purchaseQuoteChild.setSupplierCode(split1[2]);
purchaseQuoteChild.setSupplierName(split1[3]);
purchaseQuoteChild.setMaterialName(split1[4]);
purchaseQuoteChild.setMaterialNoRmb(BigDecimal.valueOf(Float.parseFloat(split1[5])));
purchaseQuoteChild.setMaterialRmb(BigDecimal.valueOf(Float.parseFloat(split1[6])));
purchaseQuoteChild.setPurchasePlanCode(split1[7]);
purchaseQuoteChild.setCorrelationCode(split1[8]);
purchaseSupplierList.add(purchaseQuoteChild);
}
return purchaseSupplierList;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("purchasePlanChildId", getPurchasePlanChildId())
.append("purchasePlanCode", getPurchasePlanCode())
.append("materialId", getMaterialId())
.append("materialCode", getMaterialCode())
.append("purchasePlanStatus", getPurchasePlanStatus())
.append("correlationCode", getCorrelationCode())
.append("purchasePlanType", getPurchasePlanType())
.append("materialNo", getMaterialNo())
.append("materialName", getMaterialName())
.append("materialType", getMaterialType())
.append("processMethod", getProcessMethod())
.append("brand", getBrand())
.append("photoUrl", getPhotoUrl())
.append("describe", getDescribe())
.append("materialNum", getMaterialNum())
.append("materialSole", getMaterialSole())
.append("materialRmb", getMaterialRmb())
.append("materialNoRmb", getMaterialNoRmb())
.append("materialPhotourl", getMaterialPhotourl())
.append("materialBrand", getMaterialBrand())
.append("materialUnit", getMaterialUnit())
.append("materialDescribe", getMaterialDescribe())
.append("materialProcessMethod", getMaterialProcessMethod())
.append("materialModel", getMaterialModel())
.append("warehouseDept", getWarehouseDept())
.append("materialNormbSum", getMaterialNormbSum())
.append("materialRmbSum", getMaterialRmbSum())
.append("planPurchaseNum", getPlanPurchaseNum())
.append("purchaseNum", getPurchaseNum())
.append("actualPurchaseNum", getActualPurchaseNum())
.append("sharedInventoryOccupancyNum", getSharedInventoryOccupancyNum())
.append("cancelNum", getCancelNum())
.append("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("useStatus", getUseStatus())
.append("auditStatus", getAuditStatus())
.append("delFlag", getDelFlag())
.toString();
}

71
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchasePlanServiceImpl.java

@ -97,8 +97,6 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
String loginName = ShiroUtils.getLoginName();
purchasePlan.setCreateBy(loginName);
purchasePlan.setCreateTime(DateUtils.getNowDate());
purchasePlan.setMaterialAmount(0L);
purchasePlan.setMaterialSum(0L);
return purchasePlanMapper.insertPurchasePlan(purchasePlan);
}
@ -221,48 +219,43 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
salesOrderChildByMaterialNo.put(salesOrderMaterialNo, salesOrderChild);
}
double purchasePlanMaterialSum = 0L;
Integer purchasePlanMaterialSum = 0;
// 第三步:计算purchasePlanNum
for (SysMakeorderBom filterSysMakeorderBom : filterSysMakeorderBoms) {
String salesOrderMaterialNo = filterSysMakeorderBom.getSalesOrderMaterialNo();
SysSalesOrderChild sysSalesOrderChild = salesOrderChildByMaterialNo.get(salesOrderMaterialNo);
if (sysSalesOrderChild != null) {
//物料数量
long materialNum = sysSalesOrderChild.getMaterialNum();
Integer materialNum = sysSalesOrderChild.getMaterialNum();
//用量
Integer useNum = filterSysMakeorderBom.getUseNum();
//采购计划数
double purchasePlanNum = materialNum * useNum;
Integer purchasePlanNum = materialNum * useNum;
// 立即创建PurchasePlanChild对象
PurchasePlanChild purchasePlanChild = new PurchasePlanChild();
purchasePlanChild.setPurchasePlanCode(purchasePlanCode);
purchasePlanChild.setMaterialCode(filterSysMakeorderBom.getMaterialNo());
purchasePlanChild.setMaterialNo(filterSysMakeorderBom.getMaterialNo());
PurchasePlanChild tempPurchasePlanChild = purchasePlanChildMapper.selectPurchasePlanChildByCodeAndNo(purchasePlanChild);
if (tempPurchasePlanChild != null){
purchasePlanChild.setPurchasePlanChildId(tempPurchasePlanChild.getPurchasePlanChildId());
double addMaterialNum = tempPurchasePlanChild.getMaterialNum() + purchasePlanNum;
//设置计划采购数
purchasePlanChild.setMaterialNum(addMaterialNum);
purchasePlanChildMapper.updatePurchasePlanChild(purchasePlanChild);
}else {
purchasePlanChild.setMaterialName(filterSysMakeorderBom.getMaterialName());
purchasePlanChild.setMaterialType(filterSysMakeorderBom.getMaterialType());
purchasePlanChild.setWarehouseDept(filterSysMakeorderBom.getWarehouseDept());
purchasePlanChild.setProcessMethod("0");
purchasePlanChild.setBrand(filterSysMakeorderBom.getBrand());
purchasePlanChild.setDescribe(filterSysMakeorderBom.getDescribe());
purchasePlanChild.setUnit(filterSysMakeorderBom.getUnit());
purchasePlanChild.setMaterialProcessMethod("0");
purchasePlanChild.setMaterialBrand(filterSysMakeorderBom.getBrand());
purchasePlanChild.setMaterialDescribe(filterSysMakeorderBom.getDescribe());
purchasePlanChild.setMaterialUnit(filterSysMakeorderBom.getUnit());
purchasePlanChild.setWarehouseDept(filterSysMakeorderBom.getWarehouseDept());
// 物料的计划采购数,使用计算出的purchasePlanNum
purchasePlanChild.setMaterialNum(purchasePlanNum);
purchasePlanChild.setCreateBy(ShiroUtils.getLoginName());
purchasePlanChild.setCreateTime(new Date());
purchasePlanChild.setUnit(filterSysMakeorderBom.getUnit());
// 直接保存PurchasePlanChild对象
purchasePlanChildMapper.insertPurchasePlanChild(purchasePlanChild);
}
@ -328,7 +321,6 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
.collect(Collectors.toList());
for (ErpBom subBom : filterSubBomList) {
PurchasePlanChild purchasePlanChild = createPurchasePlanChild(purchasePlanCode, subBom, loginName);
purchasePlanChild.setMaterialNum((double) (erpDevelopModifyorderDetail.getMaterialNum() * subBom.getUseNum()));
purchasePlanChildList.add(purchasePlanChild);
}
}
@ -337,18 +329,15 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
// 合并相同materialCode的数据
List<PurchasePlanChild> mergedPurchasePlanChildList = mergePurchasePlanChildList(purchasePlanChildList);
// 只需要加工方式为采购的
List<PurchasePlanChild> filterMergedPurchasePlanChildList = mergedPurchasePlanChildList.stream().filter(child -> "0".equals(child.getProcessMethod())).collect(Collectors.toList());
List<PurchasePlanChild> filterMergedPurchasePlanChildList = mergedPurchasePlanChildList.stream().filter(child -> "0".equals(child.getMaterialProcessMethod())).collect(Collectors.toList());
purchasePlan.setMaterialAmount(Long.valueOf(filterMergedPurchasePlanChildList.size()));
purchasePlan.setEnterpriseSum(filterMergedPurchasePlanChildList.size());
// 计算所有 PurchasePlanChild 的 materialNum 总和
// Long totalMaterialNum = filterMergedPurchasePlanChildList.stream()
// .mapToLong(PurchasePlanChild::getMaterialNum)
// .sum();
double totalMaterialNum = filterMergedPurchasePlanChildList.stream().mapToDouble(purchasePlanChild -> purchasePlanChild.getMaterialNum()).sum();
purchasePlan.setMaterialSum((long) totalMaterialNum);
// 批量新增采购计划子表
// purchasePlanChildMapper.batchInsertPurchasePlanChild(filterMergedPurchasePlanChildList);
@ -366,13 +355,12 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
purchasePlanChild.setPurchasePlanCode(purchasePlanCode);
purchasePlanChild.setCreateTime(new Date());
purchasePlanChild.setCreateBy(loginName);
purchasePlanChild.setMaterialCode(detail.getMaterialNo());
purchasePlanChild.setMaterialNo(detail.getMaterialNo());
purchasePlanChild.setMaterialName(detail.getMaterialName());
purchasePlanChild.setMaterialType(detail.getMaterialType());
purchasePlanChild.setBrand(detail.getMaterialBrand());
purchasePlanChild.setUnit(detail.getMaterialUnit());
purchasePlanChild.setDescribe(detail.getMaterialDescribe());
purchasePlanChild.setMaterialNum(Double.valueOf(detail.getMaterialNum()));
purchasePlanChild.setMaterialBrand(detail.getMaterialBrand());
purchasePlanChild.setMaterialUnit(detail.getMaterialUnit());
purchasePlanChild.setMaterialDescribe(detail.getMaterialDescribe());
purchasePlanChild.setWarehouseDept(detail.getWarehouseDept());
return purchasePlanChild;
}
@ -382,13 +370,14 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
purchasePlanChild.setPurchasePlanCode(purchasePlanCode);
purchasePlanChild.setCreateTime(new Date());
purchasePlanChild.setCreateBy(loginName);
purchasePlanChild.setMaterialCode(bom.getMaterialNo());
purchasePlanChild.setMaterialNo(bom.getMaterialNo());
purchasePlanChild.setMaterialName(bom.getMaterialName());
purchasePlanChild.setMaterialType(bom.getMaterialType());
purchasePlanChild.setProcessMethod(bom.getProcessMethod());
purchasePlanChild.setBrand(bom.getBrand());
purchasePlanChild.setUnit(bom.getUnit());
purchasePlanChild.setDescribe(bom.getDescribe());
purchasePlanChild.setMaterialProcessMethod(bom.getProcessMethod());
purchasePlanChild.setMaterialBrand(bom.getBrand());
purchasePlanChild.setMaterialUnit(bom.getUnit());
purchasePlanChild.setMaterialDescribe(bom.getDescribe());
purchasePlanChild.setMaterialModel(bom.getMaterialModel());
purchasePlanChild.setWarehouseDept(bom.getWarehouseDept());
return purchasePlanChild;
}
@ -397,12 +386,12 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
Map<String, PurchasePlanChild> aggregatedMap = new HashMap<>();
for (PurchasePlanChild purchasePlanChild : purchasePlanChildList) {
String materialCode = purchasePlanChild.getMaterialCode();
if (aggregatedMap.containsKey(materialCode)) {
PurchasePlanChild existing = aggregatedMap.get(materialCode);
existing.setMaterialNum(existing.getMaterialNum() + purchasePlanChild.getMaterialNum());
String materialNo = purchasePlanChild.getMaterialNo();
if (aggregatedMap.containsKey(materialNo)) {
PurchasePlanChild existing = aggregatedMap.get(materialNo);
existing.setPlanPurchaseNum(existing.getPlanPurchaseNum() + purchasePlanChild.getPlanPurchaseNum());
} else {
aggregatedMap.put(materialCode, purchasePlanChild);
aggregatedMap.put(materialNo, purchasePlanChild);
}
}
@ -416,23 +405,21 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
return redisCache.generateBillNo("CGJH");
}
private PurchasePlan buildPurchasePlan(SysMakeOrder sysMakeOrder, String purchasePlanCode,Integer materialAmount,double purchasePlanMaterialSum) {
private PurchasePlan buildPurchasePlan(SysMakeOrder sysMakeOrder, String purchasePlanCode,Integer materialAmount,Integer purchasePlanMaterialSum) {
PurchasePlan purchasePlan = new PurchasePlan();
purchasePlan.setCorrelationCode(sysMakeOrder.getMakeNo());
purchasePlan.setPurchasePlanCode(purchasePlanCode);
purchasePlan.setPurchasePlanType("1");
//添加物料合计
purchasePlan.setMaterialAmount((long) materialAmount);
purchasePlan.setMaterialSum(materialAmount);
//添加数量合计
purchasePlan.setMaterialSum((long) purchasePlanMaterialSum);
purchasePlan.setNoRmbSum(sysMakeOrder.getNoRate());
purchasePlan.setEnterpriseSum(purchasePlanMaterialSum);
purchasePlan.setNormbSum(sysMakeOrder.getNoRate());
purchasePlan.setRmbSum(sysMakeOrder.getRate());
purchasePlan.setApplyUser(sysMakeOrder.getSalesman());
purchasePlan.setCreateBy(ShiroUtils.getLoginName());
purchasePlan.setCreateTime(DateUtils.getNowDate());
purchasePlan.setAuditStatus("0");
purchasePlan.setUseStatus("0");
purchasePlan.setPurchasePlanStatus("0");
return purchasePlan;
}

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

@ -597,37 +597,36 @@ public class BaseRequisitioningOrderServiceImpl implements IBaseRequisitioningOr
PurchasePlan purchasePlan = new PurchasePlan();
BigDecimal noRmbSum = BigDecimal.ZERO;
BigDecimal rmbSum = BigDecimal.ZERO;
Long materialAmount = Long.valueOf(requisitioningOrderDetailList.size());
Integer materialAmount = requisitioningOrderDetailList.size();
Long materialSum = 0L;
//采购计划关联单号
purchasePlan.setPurchasePlanCode(redisCache.generateBillNo("CGJH"));
purchasePlan.setPurchasePlanStatus("0");
purchasePlan.setCorrelationCode(requisitioningOrder.getRequisitioningCode());
purchasePlan.setPurchasePlanType("2");
purchasePlan.setMaterialAmount(materialAmount);
purchasePlan.setMaterialSum(materialAmount);
for (BaseRequisitioningOrderChild requisitioningOrderDetail : requisitioningOrderDetailList) {
PurchasePlanChild purchasePlanChild = new PurchasePlanChild();
purchasePlanChild.setPurchasePlanCode(purchasePlan.getPurchasePlanCode());
purchasePlanChild.setMaterialId(requisitioningOrderDetail.getMaterialId());
purchasePlanChild.setWarehouseDept(requisitioningOrderDetail.getWarehouseDept());
purchasePlanChild.setMaterialCode(requisitioningOrderDetail.getMaterialCode());
purchasePlanChild.setMaterialNo(requisitioningOrderDetail.getMaterialCode());
purchasePlanChild.setMaterialName(requisitioningOrderDetail.getMaterialName());
purchasePlanChild.setDescribe(requisitioningOrderDetail.getDescribe());
purchasePlanChild.setBrand(requisitioningOrderDetail.getBrand());
purchasePlanChild.setUnit(requisitioningOrderDetail.getUnit());
purchasePlanChild.setPhotoUrl(requisitioningOrderDetail.getPhotoUrl());
purchasePlanChild.setProcessMethod(requisitioningOrderDetail.getProcessMethod());
purchasePlanChild.setMaterialNum(Double.valueOf(requisitioningOrderDetail.getMaterialNum()));
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.setMaterialNoRmb(requisitioningOrderDetail.getMaterialNoRmb());
purchasePlanChild.setMaterialRmb(requisitioningOrderDetail.getMaterialRmb());
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);
}
purchasePlan.setMaterialSum(materialSum);
purchasePlan.setMaterialSum(Math.toIntExact(materialSum));
purchasePlan.setCreateBy(requisitioningOrder.getCreateBy());
purchasePlan.setApplyUser(requisitioningOrder.getApplyUser());

279
ruoyi-admin/src/main/resources/mapper/purchase/PurchasePlanChildMapper.xml

@ -3,62 +3,47 @@
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.purchase.mapper.PurchasePlanChildMapper">
<resultMap type="PurchasePlanChild" id="PurchasePlanChildResult">
<result property="purchasePlanChildId" column="purchase_plan_child_id" />
<result property="purchasePlanCode" column="purchase_plan_code" />
<result property="materialId" column="material_id" />
<result property="materialCode" column="material_code" />
<result property="purchasePlanStatus" column="purchase_plan_status" />
<result property="correlationCode" column="correlation_code" />
<result property="purchasePlanType" column="purchase_plan_type" />
<result property="materialNo" column="material_no" />
<result property="materialName" column="material_name" />
<result property="materialType" column="material_type" />
<result property="processMethod" column="process_method" />
<result property="unit" column="unit" />
<result property="brand" column="brand" />
<result property="photoUrl" column="photoUrl" />
<result property="describe" column="describe" />
<result property="warehouseDept" column="warehouseDept" />
<result property="materialNum" column="material_num" />
<result property="materialSole" column="material_sole" />
<result property="materialRmb" column="material_rmb" />
<result property="materialNoRmb" column="material_noRmb" />
<result property="supplierCode" column="supplier_code" />
<result property="supplierCodes" column="supplier_codes" />
<result property="planCodes" column="purchase_plan_codes" />
<result property="correlationCodes" column="correlation_codes" />
<result property="supplierName" column="supplier_name" />
<result property="materialPhotourl" column="material_photoUrl" />
<result property="materialBrand" column="material_brand" />
<result property="materialUnit" column="material_unit" />
<result property="materialDescribe" column="material_describe" />
<result property="materialProcessMethod" column="material_process_method" />
<result property="materialModel" column="material_model" />
<result property="warehouseDept" column="warehouse_dept" />
<result property="materialNormbSum" column="material_noRmb_sum" />
<result property="materialRmbSum" column="material_rmb_sum" />
<result property="planPurchaseNum" column="plan_purchase_num" />
<result property="purchaseNum" column="purchase_num" />
<result property="actualPurchaseNum" column="actual_purchase_num" />
<result property="sharedInventoryOccupancyNum" column="shared_inventory_occupancy_num" />
<result property="cancelNum" column="cancel_num" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="remark" column="remark" />
<result property="useStatus" column="use_status" />
<result property="auditStatus" column="audit_status" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectPurchasePlanChildVo">
select purchase_plan_child_id, purchase_plan_code, material_id,
material_code, material_name, material_type, process_method, brand,unit,
photoUrl, `describe`, warehouseDept,material_num, material_sole, material_rmb,supplier_code,supplier_name,
material_noRmb, create_by, create_time, update_by, update_time, remark,
use_status, audit_status, del_flag from purchase_plan_child
select purchase_plan_child_id, purchase_plan_code, purchase_plan_status, correlation_code, purchase_plan_type, material_no, material_name, material_type, material_photoUrl, material_brand, material_unit, material_describe, material_process_method, material_model, warehouse_dept, material_noRmb_sum, material_rmb_sum, plan_purchase_num, purchase_num, actual_purchase_num, shared_inventory_occupancy_num, cancel_num, create_by, create_time, update_by, update_time, remark, del_flag from purchase_plan_child
</sql>
<select id="selectPurchasePlanChildList" parameterType="PurchasePlanChild" resultMap="PurchasePlanChildResult">
<include refid="selectPurchasePlanChildVo"/>
<where>
<if test="purchasePlanChildId != null "> and purchase_plan_child_id = #{purchasePlanChildId}</if>
<if test="purchasePlanCode != null and purchasePlanCode != ''"> and purchase_plan_code = #{purchasePlanCode}</if>
<if test="materialId != null "> and material_id = #{materialId}</if>
<if test="materialCode != null and materialCode != ''"> and material_code = #{materialCode}</if>
<if test="materialName != null and materialName != ''"> and material_name = #{materialName}</if>
<if test="materialType != null and materialType != ''"> and material_type = #{materialType}</if>
<if test="processMethod != null and processMethod != ''"> and process_method = #{processMethod}</if>
<if test="brand != null and brand != ''"> and brand = #{brand}</if>
<if test="warehouseDept != null and warehouseDept != ''">and warehouseDept = #{warehouseDept}</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="purchasePlanCode != null">and purchase_plan_code = #{purchasePlanCode}</if>
</where>
order by create_time desc
</select>
<select id="selectPurchasePlanChildById" parameterType="Long" resultMap="PurchasePlanChildResult">
@ -66,153 +51,97 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where purchase_plan_child_id = #{purchasePlanChildId}
</select>
<select id="selectPurchasePlanChildListByPlanCodes" resultMap="PurchasePlanChildResult">
<include refid="selectPurchasePlanChildVo"/>
where purchase_plan_code in
<foreach item="purchasePlanCode" collection="array" open="(" separator="," close=")">
#{purchasePlanCode}
</foreach>
</select>
<select id="selectPurchasePlanChildByCodeAndNo" parameterType="PurchasePlanChild" resultMap="PurchasePlanChildResult">
<include refid="selectPurchasePlanChildVo"/>
where purchase_plan_code = #{purchasePlanCode}
and material_code = #{materialCode}
</select>
<insert id="insertPurchasePlanChild" parameterType="PurchasePlanChild" useGeneratedKeys="true" keyProperty="purchasePlanChildId">
insert into purchase_plan_child
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="purchasePlanCode != null">purchase_plan_code,</if>
<if test="materialId != null">material_id,</if>
<if test="materialCode != null">material_code,</if>
<if test="purchasePlanStatus != null">purchase_plan_status,</if>
<if test="correlationCode != null">correlation_code,</if>
<if test="purchasePlanType != null">purchase_plan_type,</if>
<if test="materialNo != null">material_no,</if>
<if test="materialName != null">material_name,</if>
<if test="materialType != null">material_type,</if>
<if test="processMethod != null">process_method,</if>
<if test="brand != null">brand,</if>
<if test="photoUrl != null">photoUrl,</if>
<if test="describe != null">`describe`,</if>
<if test="unit != null">unit,</if>
<if test="warehouseDept != null">warehouseDept,</if>
<if test="materialNum != null">material_num,</if>
<if test="materialSole != null">material_sole,</if>
<if test="materialRmb != null">material_rmb,</if>
<if test="materialNoRmb != null">material_noRmb,</if>
<if test="materialPhotourl != null">material_photoUrl,</if>
<if test="materialBrand != null">material_brand,</if>
<if test="materialUnit != null">material_unit,</if>
<if test="materialDescribe != null">material_describe,</if>
<if test="materialProcessMethod != null">material_process_method,</if>
<if test="materialModel != null">material_model,</if>
<if test="warehouseDept != null">warehouse_dept,</if>
<if test="materialNormbSum != null">material_noRmb_sum,</if>
<if test="materialRmbSum != null">material_rmb_sum,</if>
<if test="planPurchaseNum != null">plan_purchase_num,</if>
<if test="purchaseNum != null">purchase_num,</if>
<if test="actualPurchaseNum != null">actual_purchase_num,</if>
<if test="sharedInventoryOccupancyNum != null">shared_inventory_occupancy_num,</if>
<if test="cancelNum != null">cancel_num,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
<if test="useStatus != null">use_status,</if>
<if test="auditStatus != null">audit_status,</if>
<if test="delFlag != null">del_flag,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="purchasePlanCode != null">#{purchasePlanCode},</if>
<if test="materialId != null">#{materialId},</if>
<if test="materialCode != null">#{materialCode},</if>
<if test="purchasePlanStatus != null">#{purchasePlanStatus},</if>
<if test="correlationCode != null">#{correlationCode},</if>
<if test="purchasePlanType != null">#{purchasePlanType},</if>
<if test="materialNo != null">#{materialNo},</if>
<if test="materialName != null">#{materialName},</if>
<if test="materialType != null">#{materialType},</if>
<if test="processMethod != null">#{processMethod},</if>
<if test="brand != null">#{brand},</if>
<if test="photoUrl != null">#{photoUrl},</if>
<if test="describe != null">#{describe},</if>
<if test="unit != null">#{unit},</if>
<if test="materialPhotourl != null">#{materialPhotourl},</if>
<if test="materialBrand != null">#{materialBrand},</if>
<if test="materialUnit != null">#{materialUnit},</if>
<if test="materialDescribe != null">#{materialDescribe},</if>
<if test="materialProcessMethod != null">#{materialProcessMethod},</if>
<if test="materialModel != null">#{materialModel},</if>
<if test="warehouseDept != null">#{warehouseDept},</if>
<if test="materialNum != null">#{materialNum},</if>
<if test="materialSole != null">#{materialSole},</if>
<if test="materialRmb != null">#{materialRmb},</if>
<if test="materialNoRmb != null">#{materialNoRmb},</if>
<if test="materialNormbSum != null">#{materialNormbSum},</if>
<if test="materialRmbSum != null">#{materialRmbSum},</if>
<if test="planPurchaseNum != null">#{planPurchaseNum},</if>
<if test="purchaseNum != null">#{purchaseNum},</if>
<if test="actualPurchaseNum != null">#{actualPurchaseNum},</if>
<if test="sharedInventoryOccupancyNum != null">#{sharedInventoryOccupancyNum},</if>
<if test="cancelNum != null">#{cancelNum},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
<if test="useStatus != null">#{useStatus},</if>
<if test="auditStatus != null">#{auditStatus},</if>
<if test="delFlag != null">#{delFlag},</if>
</trim>
</insert>
<insert id="batchInsertPurchasePlanChild" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="purchasePlanChildId">
insert into purchase_plan_child
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="item.purchasePlanCode != null">purchase_plan_code,</if>
<if test="item.materialCode != null">material_code,</if>
<if test="item.materialName != null">material_name,</if>
<if test="item.materialType != null">material_type,</if>
<if test="item.processMethod != null">process_method,</if>
<if test="item.brand != null">brand,</if>
<if test="item.describe != null">`describe`,</if>
<if test="item.unit != null">unit,</if>
<if test="item.warehouseDept != null">warehouse_dept,</if>
<if test="item.materialNum != null">material_num,</if>
<if test="item.createBy != null">create_by,</if>
<if test="item.createTime != null">create_time,</if>
<if test="item.updateBy != null">update_by,</if>
<if test="item.updateTime != null">update_time,</if>
<if test="item.remark != null">remark,</if>
<if test="item.useStatus != null">use_status,</if>
<if test="item.auditStatus != null">audit_status,</if>
<if test="item.delFlag != null">del_flag,</if>
</trim>
<foreach collection="list" item="item" index="index" separator=",">
values
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="item.purchasePlanCode != null">#{item.purchasePlanCode},</if>
<if test="item.materialCode != null">#{item.materialCode},</if>
<if test="item.materialName != null">#{item.materialName},</if>
<if test="item.materialType != null">#{item.materialType},</if>
<if test="item.processMethod != null">#{item.processMethod},</if>
<if test="item.brand != null">#{item.brand},</if>
<if test="item.describe != null">#{item.describe},</if>
<if test="item.unit != null">#{item.unit},</if>
<if test="item.warehouseDept != null">#{item.warehouseDept},</if>
<if test="item.materialNum != null">#{item.materialNum},</if>
<if test="item.createBy != null">#{item.createBy},</if>
<if test="item.createTime != null">#{item.createTime},</if>
<if test="item.updateBy != null">#{item.updateBy},</if>
<if test="item.updateTime != null">#{item.updateTime},</if>
<if test="item.remark != null">#{item.remark},</if>
<if test="item.useStatus != null">#{item.useStatus},</if>
<if test="item.auditStatus != null">#{item.auditStatus},</if>
<if test="item.delFlag != null">#{item.delFlag}</if>
</trim>
</foreach>
</insert>
<update id="updatePurchasePlanChild" parameterType="PurchasePlanChild">
update purchase_plan_child
<trim prefix="SET" suffixOverrides=",">
<if test="purchasePlanCode != null">purchase_plan_code = #{purchasePlanCode},</if>
<if test="materialId != null">material_id = #{materialId},</if>
<if test="materialCode != null">material_code = #{materialCode},</if>
<if test="purchasePlanStatus != null">purchase_plan_status = #{purchasePlanStatus},</if>
<if test="correlationCode != null">correlation_code = #{correlationCode},</if>
<if test="purchasePlanType != null">purchase_plan_type = #{purchasePlanType},</if>
<if test="materialNo != null">material_no = #{materialNo},</if>
<if test="materialName != null">material_name = #{materialName},</if>
<if test="materialType != null">material_type = #{materialType},</if>
<if test="processMethod != null">process_method = #{processMethod},</if>
<if test="brand != null">brand = #{brand},</if>
<if test="photoUrl != null">photoUrl = #{photoUrl},</if>
<if test="describe != null">`describe` = #{describe},</if>
<if test="unit != null">unit = #{unit},</if>
<if test="warehouseDept != null">warehouseDept = #{warehouseDept},</if>
<if test="materialNum != null">material_num = #{materialNum},</if>
<if test="materialSole != null">material_sole = #{materialSole},</if>
<if test="materialRmb != null">material_rmb = #{materialRmb},</if>
<if test="materialNoRmb != null">material_noRmb = #{materialNoRmb},</if>
<if test="materialPhotourl != null">material_photoUrl = #{materialPhotourl},</if>
<if test="materialBrand != null">material_brand = #{materialBrand},</if>
<if test="materialUnit != null">material_unit = #{materialUnit},</if>
<if test="materialDescribe != null">material_describe = #{materialDescribe},</if>
<if test="materialProcessMethod != null">material_process_method = #{materialProcessMethod},</if>
<if test="materialModel != null">material_model = #{materialModel},</if>
<if test="warehouseDept != null">warehouse_dept = #{warehouseDept},</if>
<if test="materialNormbSum != null">material_noRmb_sum = #{materialNormbSum},</if>
<if test="materialRmbSum != null">material_rmb_sum = #{materialRmbSum},</if>
<if test="planPurchaseNum != null">plan_purchase_num = #{planPurchaseNum},</if>
<if test="purchaseNum != null">purchase_num = #{purchaseNum},</if>
<if test="actualPurchaseNum != null">actual_purchase_num = #{actualPurchaseNum},</if>
<if test="sharedInventoryOccupancyNum != null">shared_inventory_occupancy_num = #{sharedInventoryOccupancyNum},</if>
<if test="cancelNum != null">cancel_num = #{cancelNum},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="useStatus != null">use_status = #{useStatus},</if>
<if test="auditStatus != null">audit_status = #{auditStatus},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
</trim>
where purchase_plan_child_id = #{purchasePlanChildId}
@ -236,63 +165,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="restorePurchasePlanChildById" parameterType="Long">
update purchase_plan_child set del_flag = '0' where purchase_plan_child_id = #{purchasePlanChildId}
</update>
<select id="getPurchasePlanChildByPlanCodes" parameterType="String" resultMap="PurchasePlanChildResult">
<!-- SELECT-->
<!-- GROUP_CONCAT(DISTINCT plan.purchase_plan_code ORDER BY plan.purchase_plan_code) AS purchase_plan_codes,-->
<!-- GROUP_CONCAT(DISTINCT planOrder.correlation_code ORDER BY planOrder.correlation_code) AS correlation_codes,-->
<!-- GROUP_CONCAT(DISTINCT CONCAT(quote.material_code,'|',quote.purchase_quote_code , '|' ,quote.supplier_code,'|',-->
<!-- quote.supplier_name,'|',quote.material_name,'|',quote.material_noRmb,'|',quote.material_rmb, '|',-->
<!-- plan.purchase_plan_code,'|',planOrder.correlation_code)-->
<!-- ORDER BY quote.supplier_code) AS supplier_codes,-->
<!-- plan.material_code,-->
<!-- plan.material_name,-->
<!-- plan.material_type,-->
<!-- plan.process_method,-->
<!-- plan.brand,-->
<!-- plan.photoUrl,-->
<!-- plan.material_num-->
<!-- FROM-->
<!-- purchase_plan_child AS plan-->
<!-- LEFT JOIN purchase_plan AS planOrder-->
<!-- ON plan.purchase_plan_code = planOrder.purchase_plan_code-->
<!-- AND planOrder.del_flag = '0' and planOrder.use_status = '1' and planOrder.audit_status = '1'-->
<!-- LEFT JOIN (-->
<!-- SELECT material_code, MAX(create_time) AS max_create_time-->
<!-- FROM purchase_quote_child-->
<!-- WHERE del_flag = '0'-->
<!-- GROUP BY material_code-->
<!-- ) AS quoteLatestTime-->
<!-- ON quoteLatestTime.material_code = plan.material_code-->
<!-- LEFT JOIN purchase_quote_child AS quote-->
<!-- ON quoteLatestTime.material_code = quote.material_code-->
<!-- AND quote.create_time = quoteLatestTime.max_create_time-->
<!-- AND quote.del_flag = '0'-->
<!-- WHERE-->
<!-- plan.purchase_plan_code IN-->
<!-- <foreach item="purchasePlanCode" collection="array" open="(" separator="," close=")">-->
<!-- #{purchasePlanCode}-->
<!-- </foreach>-->
<!-- AND plan.del_flag = '0'-->
<!-- GROUP BY-->
<!-- plan.material_code;-->
select
planChild.material_code,
planChild.material_name,
planChild.material_type,
planChild.process_method,
planChild.brand,
planChild.photoUrl,
planChild.unit,
planChild.warehouseDept,
sum(planChild.material_num) as material_num,
GROUP_CONCAT(DISTINCT plan.correlation_code ORDER BY plan.correlation_code) AS correlation_codes,
GROUP_CONCAT(DISTINCT plan.purchase_plan_code ORDER BY plan.purchase_plan_code) AS purchase_plan_codes
from purchase_plan_child as planChild
left join purchase_plan as plan on plan.purchase_plan_code = planChild.purchase_plan_code
where plan.purchase_plan_code IN
<foreach item="purchasePlanCode" collection="array" open="(" separator="," close=")">
#{purchasePlanCode}
</foreach>
group by material_code
</select>
</mapper>

95
ruoyi-admin/src/main/resources/mapper/purchase/PurchasePlanMapper.xml

@ -10,35 +10,35 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="purchasePlanStatus" column="purchase_plan_status" />
<result property="correlationCode" column="correlation_code" />
<result property="purchasePlanType" column="purchase_plan_type" />
<result property="materialAmount" column="material_amount" />
<result property="materialSum" column="materialSum" />
<result property="noRmbSum" column="noRmbSum" />
<result property="rmbSum" column="rmbSum" />
<result property="materialSum" column="material_sum" />
<result property="enterpriseSum" column="enterprise_sum" />
<result property="normbSum" column="noRmb_sum" />
<result property="rmbSum" column="rmb_sum" />
<result property="planPurchaseSum" column="plan_purchase_sum" />
<result property="purchaseSum" column="purchase_sum" />
<result property="actualPurchaseSum" column="actual_purchase_sum" />
<result property="sharedInventoryOccupancySum" column="shared_inventory_occupancy_sum" />
<result property="cancelSum" column="cancel_sum" />
<result property="applyUser" column="apply_user" />
<result property="firstAddTime" column="first_add_time" />
<result property="updateInfoTime" column="update_info_time" />
<result property="createBy" column="create_by" />
<result property="createTime" column="create_time" />
<result property="updateBy" column="update_by" />
<result property="updateTime" column="update_time" />
<result property="auditStatus" column="audit_status" />
<result property="useStatus" column="use_status" />
<result property="remark" column="remark" />
<result property="delFlag" column="del_flag" />
</resultMap>
<sql id="selectPurchasePlanVo">
select purchase_plan_id, purchase_plan_code, purchase_plan_status, correlation_code, purchase_plan_type, material_amount, materialSum, noRmbSum, rmbSum, apply_user, first_add_time, update_info_time, create_by, create_time, update_by, update_time, audit_status, use_status, remark from purchase_plan
select purchase_plan_id, purchase_plan_code, purchase_plan_status, correlation_code, purchase_plan_type, material_sum, enterprise_sum, noRmb_sum, rmb_sum, plan_purchase_sum, purchase_sum, actual_purchase_sum, shared_inventory_occupancy_sum, cancel_sum, apply_user, create_by, create_time, update_by, update_time, remark, del_flag from purchase_plan
</sql>
<select id="selectPurchasePlanList" parameterType="PurchasePlan" resultMap="PurchasePlanResult">
<include refid="selectPurchasePlanVo"/>
<where>
<if test="purchasePlanCode != null and purchasePlanCode != ''"> and purchase_plan_code = #{purchasePlanCode}</if>
<if test="purchasePlanCode != null and purchasePlanCode != ''"> and purchase_plan_code like concat('%', #{purchasePlanCode}, '%')</if>
<if test="purchasePlanStatus != null and purchasePlanStatus != ''"> and purchase_plan_status = #{purchasePlanStatus}</if>
<if test="correlationCode != null and correlationCode != ''"> and correlation_code = #{correlationCode}</if>
<if test="applyUser != null and applyUser != ''"> and apply_user like concat('%', #{applyUser}, '%')</if>
<if test="firstAddTime != null and firstAddTime != ''"> and first_add_time = #{firstAddTime}</if>
<if test="updateInfoTime != null and updateInfoTime != ''"> and update_info_time = #{updateInfoTime}</if>
<if test="correlationCode != null and correlationCode != ''"> and correlation_code like concat('%', #{correlationCode}, '%')</if>
<if test="purchasePlanType != null and purchasePlanType != ''"> and purchase_plan_type = #{purchasePlanType}</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>
</select>
@ -47,17 +47,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<include refid="selectPurchasePlanVo"/>
where purchase_plan_id = #{purchasePlanId}
</select>
<select id="selectPurchasePlanByPlanCodes" parameterType="String" resultMap="PurchasePlanResult">
<include refid="selectPurchasePlanVo"/>
where purchase_plan_code in
<foreach item="purchasePlanCode" collection="array" open="(" separator="," close=")">
#{purchasePlanCode}
</foreach>
</select>
<select id="selectPurchasePlanByPlanCode" parameterType="String" resultMap="PurchasePlanResult">
<include refid="selectPurchasePlanVo"/>
where purchase_plan_code = #{purchasePlanCode}
</select>
<insert id="insertPurchasePlan" parameterType="PurchasePlan" useGeneratedKeys="true" keyProperty="purchasePlanId">
insert into purchase_plan
<trim prefix="(" suffix=")" suffixOverrides=",">
@ -65,40 +55,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="purchasePlanStatus != null">purchase_plan_status,</if>
<if test="correlationCode != null">correlation_code,</if>
<if test="purchasePlanType != null">purchase_plan_type,</if>
<if test="materialAmount != null">material_amount,</if>
<if test="materialSum != null">materialSum,</if>
<if test="noRmbSum != null">noRmbSum,</if>
<if test="rmbSum != null">rmbSum,</if>
<if test="materialSum != null">material_sum,</if>
<if test="enterpriseSum != null">enterprise_sum,</if>
<if test="normbSum != null">noRmb_sum,</if>
<if test="rmbSum != null">rmb_sum,</if>
<if test="planPurchaseSum != null">plan_purchase_sum,</if>
<if test="purchaseSum != null">purchase_sum,</if>
<if test="actualPurchaseSum != null">actual_purchase_sum,</if>
<if test="sharedInventoryOccupancySum != null">shared_inventory_occupancy_sum,</if>
<if test="cancelSum != null">cancel_sum,</if>
<if test="applyUser != null">apply_user,</if>
<if test="firstAddTime != null">first_add_time,</if>
<if test="updateInfoTime != null">update_info_time,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="auditStatus != null">audit_status,</if>
<if test="useStatus != null">use_status,</if>
<if test="remark != null">remark,</if>
<if test="delFlag != null">del_flag,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="purchasePlanCode != null">#{purchasePlanCode},</if>
<if test="purchasePlanStatus != null">#{purchasePlanStatus},</if>
<if test="correlationCode != null">#{correlationCode},</if>
<if test="purchasePlanType != null">#{purchasePlanType},</if>
<if test="materialAmount != null">#{materialAmount},</if>
<if test="materialSum != null">#{materialSum},</if>
<if test="noRmbSum != null">#{noRmbSum},</if>
<if test="enterpriseSum != null">#{enterpriseSum},</if>
<if test="normbSum != null">#{normbSum},</if>
<if test="rmbSum != null">#{rmbSum},</if>
<if test="planPurchaseSum != null">#{planPurchaseSum},</if>
<if test="purchaseSum != null">#{purchaseSum},</if>
<if test="actualPurchaseSum != null">#{actualPurchaseSum},</if>
<if test="sharedInventoryOccupancySum != null">#{sharedInventoryOccupancySum},</if>
<if test="cancelSum != null">#{cancelSum},</if>
<if test="applyUser != null">#{applyUser},</if>
<if test="firstAddTime != null">#{firstAddTime},</if>
<if test="updateInfoTime != null">#{updateInfoTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="auditStatus != null">#{auditStatus},</if>
<if test="useStatus != null">#{useStatus},</if>
<if test="remark != null">#{remark},</if>
<if test="delFlag != null">#{delFlag},</if>
</trim>
</insert>
@ -109,20 +103,22 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="purchasePlanStatus != null">purchase_plan_status = #{purchasePlanStatus},</if>
<if test="correlationCode != null">correlation_code = #{correlationCode},</if>
<if test="purchasePlanType != null">purchase_plan_type = #{purchasePlanType},</if>
<if test="materialAmount != null">material_amount = #{materialAmount},</if>
<if test="materialSum != null">materialSum = #{materialSum},</if>
<if test="noRmbSum != null">noRmbSum = #{noRmbSum},</if>
<if test="rmbSum != null">rmbSum = #{rmbSum},</if>
<if test="materialSum != null">material_sum = #{materialSum},</if>
<if test="enterpriseSum != null">enterprise_sum = #{enterpriseSum},</if>
<if test="normbSum != null">noRmb_sum = #{normbSum},</if>
<if test="rmbSum != null">rmb_sum = #{rmbSum},</if>
<if test="planPurchaseSum != null">plan_purchase_sum = #{planPurchaseSum},</if>
<if test="purchaseSum != null">purchase_sum = #{purchaseSum},</if>
<if test="actualPurchaseSum != null">actual_purchase_sum = #{actualPurchaseSum},</if>
<if test="sharedInventoryOccupancySum != null">shared_inventory_occupancy_sum = #{sharedInventoryOccupancySum},</if>
<if test="cancelSum != null">cancel_sum = #{cancelSum},</if>
<if test="applyUser != null">apply_user = #{applyUser},</if>
<if test="firstAddTime != null">first_add_time = #{firstAddTime},</if>
<if test="updateInfoTime != null">update_info_time = #{updateInfoTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="auditStatus != null">audit_status = #{auditStatus},</if>
<if test="useStatus != null">use_status = #{useStatus},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
</trim>
where purchase_plan_id = #{purchasePlanId}
</update>
@ -145,8 +141,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="restorePurchasePlanById" parameterType="Long">
update purchase_plan set del_flag = '0' where purchase_plan_id = #{purchasePlanId}
</update>
<update id="restorePurchasePlanStatusByCode" parameterType="Long">
update purchase_plan set purchase_plan_status = #{purchasePlanStatus}
where purchase_plan_code = #{purchasePlanCode}
</update>
</mapper>

36
ruoyi-admin/src/main/resources/templates/purchase/purchasePlan/purchasePlan.html

@ -104,9 +104,13 @@
{title: '采购计划单号',field: 'purchasePlanCode'},
{title: '关联单号', field: 'correlationCode',},
{title: '采购来源',field: 'purchasePlanType',formatter: function(value, row, index) {return $.table.selectDictLabel(purchasePlanTypeDatas, value);}},
{title: '物料合计',field: 'materialAmount',},
{title: '数量总计', field: 'materialSum',},
{title: '不含税总价(RMB)',field: 'noRmbSum',},
{title: '物料合计',field: 'materialSum',},
{title: '计划采购总数',field: 'planPurchaseSum',},
{title: '待采购总数',field: 'purchaseSum',},
{title: '实际采购总数',field: 'actualPurchaseSum',},
{title: '共享库存占用总数',field: 'sharedInventoryOccupancySum',},
{title: '作废总数',field: 'cancelSum',},
{title: '不含税总价(RMB)',field: 'normbSum',},
{title: '含税总价(RMB)',field: 'rmbSum',},
{title: '申请人',field: 'applyUser',},
{title: '录入时间',field: 'createTime',},
@ -133,23 +137,33 @@
contentType: "application/x-www-form-urlencoded",
queryParams : {purchasePlanCode: row.purchasePlanCode},
columns: [
{field: 'purchasePlanId',title: '主键id',visible: false},
{field: 'materialCode',title: '料号',},
{field: 'photoUrl',title: '图片',
{field: 'purchasePlanChildId',title: '主键id',visible: false},
{title: '采购计划状态',field: 'purchasePlanStatus',
formatter: function(value, row, index) {return $.table.selectDictLabel(purchasePlanStatusDatas, value);}
},
{field: 'materialNo',title: '料号',},
{field: 'materialPhotourl',title: '图片',
formatter: function(value, row, index) {return $.table.imageView(value);}
},
{field: 'materialName',title: '物料名称',},
{field: 'materialType',title: '物料类型',
formatter: function(value, row, index) {return $.table.selectCategoryLabel(materialTypeDatas, value);}
},
{field: 'describe',title: '描述',},
{field: 'brand',title: '品牌',},
{field: 'processMethod',title: '加工方式',
{field: 'materialDescribe',title: '描述',},
{field: 'materialModel',title: '型号',},
{field: 'materialBrand',title: '品牌',},
{field: 'materialProcessMethod',title: '加工方式',
formatter: function(value, row, index) {return $.table.selectDictLabel(processMethodDatas, value);}
},
{field: 'unit',title: '单位', },
{field: 'materialUnit',title: '单位', },
{title: '计划采购数',field: 'planPurchaseNum',},
{title: '待采购数',field: 'purchaseNum',},
{title: '实际采购数',field: 'actualPurchaseNum',},
{title: '共享库存占用数',field: 'sharedInventoryOccupancyNum',},
{title: '作废数',field: 'cancelNum',},
{title: '不含税总价(RMB)',field: 'materialNormbSum',},
{title: '含税总价(RMB)',field: 'materialRmbSum',},
{field: 'warehouseDept',title: '入库部门',visible: false},
{field: 'materialNum',title: '计划采购数',},
]
});
};

Loading…
Cancel
Save