Browse Source

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

dev
王晓迪 1 week ago
parent
commit
1d20c312c8
  1. 123
      ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseOrderDetailController.java
  2. 6
      ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchasePlanController.java
  3. 558
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderDetail.java
  4. 168
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchasePlan.java
  5. 387
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchasePlanChild.java
  6. 61
      ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderDetailMapper.java
  7. 61
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderDetailService.java
  8. 94
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderDetailServiceImpl.java
  9. 71
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchasePlanServiceImpl.java
  10. 6
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysSupplier.java
  11. 25
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseRequisitioningOrderServiceImpl.java
  12. 265
      ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderDetailMapper.xml
  13. 283
      ruoyi-admin/src/main/resources/mapper/purchase/PurchasePlanChildMapper.xml
  14. 99
      ruoyi-admin/src/main/resources/mapper/purchase/PurchasePlanMapper.xml
  15. 334
      ruoyi-admin/src/main/resources/templates/purchase/purchaseOrderDetail/add.html
  16. 339
      ruoyi-admin/src/main/resources/templates/purchase/purchaseOrderDetail/edit.html
  17. 200
      ruoyi-admin/src/main/resources/templates/purchase/purchaseOrderDetail/purchaseOrderDetail.html
  18. 36
      ruoyi-admin/src/main/resources/templates/purchase/purchasePlan/purchasePlan.html

123
ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseOrderDetailController.java

@ -1,123 +0,0 @@
package com.ruoyi.purchase.controller;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.purchase.domain.PurchaseOrderDetail;
import com.ruoyi.purchase.service.IPurchaseOrderDetailService;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 采购订单详情Controller
*
* @author ruoyi
* @date 2023-04-24
*/
@Controller
@RequestMapping("/purchase/purchaseOrderDetail")
public class PurchaseOrderDetailController extends BaseController
{
private String prefix = "purchase/purchaseOrderDetail";
@Autowired
private IPurchaseOrderDetailService purchaseOrderDetailService;
@RequiresPermissions("purchase:purchaseOrderDetail:view")
@GetMapping()
public String purchaseOrderDetail()
{
return prefix + "/purchaseOrderDetail";
}
/**
* 查询采购订单详情列表
*/
@RequiresPermissions("purchase:purchaseOrderDetail:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(PurchaseOrderDetail purchaseOrderDetail)
{
startPage();
List<PurchaseOrderDetail> list = purchaseOrderDetailService.selectPurchaseOrderDetailList(purchaseOrderDetail);
return getDataTable(list);
}
/**
* 导出采购订单详情列表
*/
@RequiresPermissions("purchase:purchaseOrderDetail:export")
@Log(title = "采购订单详情", businessType = BusinessType.EXPORT)
@PostMapping("/export")
@ResponseBody
public AjaxResult export(PurchaseOrderDetail purchaseOrderDetail)
{
List<PurchaseOrderDetail> list = purchaseOrderDetailService.selectPurchaseOrderDetailList(purchaseOrderDetail);
ExcelUtil<PurchaseOrderDetail> util = new ExcelUtil<PurchaseOrderDetail>(PurchaseOrderDetail.class);
return util.exportExcel(list, "采购订单详情数据");
}
/**
* 新增采购订单详情
*/
@GetMapping("/add")
public String add()
{
return prefix + "/add";
}
/**
* 新增保存采购订单详情
*/
@RequiresPermissions("purchase:purchaseOrderDetail:add")
@Log(title = "采购订单详情", businessType = BusinessType.INSERT)
@PostMapping("/add")
@ResponseBody
public AjaxResult addSave(PurchaseOrderDetail purchaseOrderDetail)
{
return toAjax(purchaseOrderDetailService.insertPurchaseOrderDetail(purchaseOrderDetail));
}
/**
* 修改采购订单详情
*/
@GetMapping("/edit/{purchaseOrderNumber}")
public String edit(@PathVariable("purchaseOrderNumber") String purchaseOrderNumber, ModelMap mmap)
{
PurchaseOrderDetail purchaseOrderDetail = purchaseOrderDetailService.selectPurchaseOrderDetailById(purchaseOrderNumber);
mmap.put("purchaseOrderDetail", purchaseOrderDetail);
return prefix + "/edit";
}
/**
* 修改保存采购订单详情
*/
@RequiresPermissions("purchase:purchaseOrderDetail:edit")
@Log(title = "采购订单详情", businessType = BusinessType.UPDATE)
@PostMapping("/edit")
@ResponseBody
public AjaxResult editSave(PurchaseOrderDetail purchaseOrderDetail)
{
return toAjax(purchaseOrderDetailService.updatePurchaseOrderDetail(purchaseOrderDetail));
}
/**
* 删除采购订单详情
*/
@RequiresPermissions("purchase:purchaseOrderDetail:remove")
@Log(title = "采购订单详情", businessType = BusinessType.DELETE)
@PostMapping( "/remove")
@ResponseBody
public AjaxResult remove(String ids)
{
return toAjax(purchaseOrderDetailService.deletePurchaseOrderDetailByIds(ids));
}
}

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流处理相同供应商\物料\

558
ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseOrderDetail.java

@ -1,558 +0,0 @@
package com.ruoyi.purchase.domain;
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_order_detail
*
* @author ruoyi
* @date 2023-04-24
*/
public class PurchaseOrderDetail extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** 订购单号 */
@Excel(name = "订购单号")
private String purchaseOrderNumber;
/** 供应商代码 */
@Excel(name = "供应商代码")
private String supplierCode;
/** 供应商名称 */
@Excel(name = "供应商名称")
private String supplierName;
/** 联系人 */
private String customerContact;
/** 联系电话 */
private String contactNumber;
/** 传真号码 */
private String customerFax;
/** 交货地点 */
private String deliveryAddress;
/** 付款条件 */
private String paymentTerms;
/** 交货条件 */
private String deliveryConditions;
/** 交货方式 */
private String deliveryMethod;
/** 购方名称 */
private String purchaseName;
/** 开单日期 */
@Excel(name = "开单日期")
private String billingDate;
/** 税率 */
private String taxRate;
/** 订购种类 */
private String purchaseCategory;
/** 采购担当 */
private String purchaseCommander;
/** 客户订单号 */
private String customerOrderNumber;
/** 备注内容 */
private String remarkContent;
/** 结案否 */
@Excel(name = "结案否")
private String closeCaseNo;
/** 结案人 */
private String closeCaseName;
/** 结案时间 */
private String closeCaseTime;
/** 确认否 */
private String confirmNo;
/** 确认人 */
private String confirmName;
/** 确认时间 */
private String confirmTime;
/** 审核否 */
private String auditNo;
/** 审核人 */
private String auditName;
/** 审核时间 */
private String auditTime;
/** 核准否 */
private String approveNo;
/** 核准人 */
private String approveName;
/** 核准时间 */
private String approveTime;
/** 原辅料代码 */
@Excel(name = "原辅料代码")
private String rawSubsidiaryCode;
/** 原辅料名称 */
@Excel(name = "原辅料名称")
private String rawSubsidiaryName;
/** 规格型号 */
@Excel(name = "规格型号")
private String specificationModel;
/** 物料类别 */
private String materialType;
/** 币别 */
@Excel(name = "币别")
private String commonCurrency;
/** 采购单位 */
@Excel(name = "采购单位")
private String purchasingUnit;
/** 采购单价 */
@Excel(name = "采购单价")
private String purchasePrice;
/** 数量 */
@Excel(name = "数量")
private String materialQuantity;
/** 金额 */
@Excel(name = "金额")
private String amountMoney;
/** 交期 */
@Excel(name = "交期")
private String deliveryTime;
/** 说明 */
private String purchaseExplain;
public void setPurchaseOrderNumber(String purchaseOrderNumber)
{
this.purchaseOrderNumber = purchaseOrderNumber;
}
public String getPurchaseOrderNumber()
{
return purchaseOrderNumber;
}
public void setSupplierCode(String supplierCode)
{
this.supplierCode = supplierCode;
}
public String getSupplierCode()
{
return supplierCode;
}
public void setSupplierName(String supplierName)
{
this.supplierName = supplierName;
}
public String getSupplierName()
{
return supplierName;
}
public void setCustomerContact(String customerContact)
{
this.customerContact = customerContact;
}
public String getCustomerContact()
{
return customerContact;
}
public void setContactNumber(String contactNumber)
{
this.contactNumber = contactNumber;
}
public String getContactNumber()
{
return contactNumber;
}
public void setCustomerFax(String customerFax)
{
this.customerFax = customerFax;
}
public String getCustomerFax()
{
return customerFax;
}
public void setDeliveryAddress(String deliveryAddress)
{
this.deliveryAddress = deliveryAddress;
}
public String getDeliveryAddress()
{
return deliveryAddress;
}
public void setPaymentTerms(String paymentTerms)
{
this.paymentTerms = paymentTerms;
}
public String getPaymentTerms()
{
return paymentTerms;
}
public void setDeliveryConditions(String deliveryConditions)
{
this.deliveryConditions = deliveryConditions;
}
public String getDeliveryConditions()
{
return deliveryConditions;
}
public void setDeliveryMethod(String deliveryMethod)
{
this.deliveryMethod = deliveryMethod;
}
public String getDeliveryMethod()
{
return deliveryMethod;
}
public void setPurchaseName(String purchaseName)
{
this.purchaseName = purchaseName;
}
public String getPurchaseName()
{
return purchaseName;
}
public void setBillingDate(String billingDate)
{
this.billingDate = billingDate;
}
public String getBillingDate()
{
return billingDate;
}
public void setTaxRate(String taxRate)
{
this.taxRate = taxRate;
}
public String getTaxRate()
{
return taxRate;
}
public void setPurchaseCategory(String purchaseCategory)
{
this.purchaseCategory = purchaseCategory;
}
public String getPurchaseCategory()
{
return purchaseCategory;
}
public void setPurchaseCommander(String purchaseCommander)
{
this.purchaseCommander = purchaseCommander;
}
public String getPurchaseCommander()
{
return purchaseCommander;
}
public void setCustomerOrderNumber(String customerOrderNumber)
{
this.customerOrderNumber = customerOrderNumber;
}
public String getCustomerOrderNumber()
{
return customerOrderNumber;
}
public void setRemarkContent(String remarkContent)
{
this.remarkContent = remarkContent;
}
public String getRemarkContent()
{
return remarkContent;
}
public void setCloseCaseNo(String closeCaseNo)
{
this.closeCaseNo = closeCaseNo;
}
public String getCloseCaseNo()
{
return closeCaseNo;
}
public void setCloseCaseName(String closeCaseName)
{
this.closeCaseName = closeCaseName;
}
public String getCloseCaseName()
{
return closeCaseName;
}
public void setCloseCaseTime(String closeCaseTime)
{
this.closeCaseTime = closeCaseTime;
}
public String getCloseCaseTime()
{
return closeCaseTime;
}
public void setConfirmNo(String confirmNo)
{
this.confirmNo = confirmNo;
}
public String getConfirmNo()
{
return confirmNo;
}
public void setConfirmName(String confirmName)
{
this.confirmName = confirmName;
}
public String getConfirmName()
{
return confirmName;
}
public void setConfirmTime(String confirmTime)
{
this.confirmTime = confirmTime;
}
public String getConfirmTime()
{
return confirmTime;
}
public void setAuditNo(String auditNo)
{
this.auditNo = auditNo;
}
public String getAuditNo()
{
return auditNo;
}
public void setAuditName(String auditName)
{
this.auditName = auditName;
}
public String getAuditName()
{
return auditName;
}
public void setAuditTime(String auditTime)
{
this.auditTime = auditTime;
}
public String getAuditTime()
{
return auditTime;
}
public void setApproveNo(String approveNo)
{
this.approveNo = approveNo;
}
public String getApproveNo()
{
return approveNo;
}
public void setApproveName(String approveName)
{
this.approveName = approveName;
}
public String getApproveName()
{
return approveName;
}
public void setApproveTime(String approveTime)
{
this.approveTime = approveTime;
}
public String getApproveTime()
{
return approveTime;
}
public void setRawSubsidiaryCode(String rawSubsidiaryCode)
{
this.rawSubsidiaryCode = rawSubsidiaryCode;
}
public String getRawSubsidiaryCode()
{
return rawSubsidiaryCode;
}
public void setRawSubsidiaryName(String rawSubsidiaryName)
{
this.rawSubsidiaryName = rawSubsidiaryName;
}
public String getRawSubsidiaryName()
{
return rawSubsidiaryName;
}
public void setSpecificationModel(String specificationModel)
{
this.specificationModel = specificationModel;
}
public String getSpecificationModel()
{
return specificationModel;
}
public void setMaterialType(String materialType)
{
this.materialType = materialType;
}
public String getMaterialType()
{
return materialType;
}
public void setCommonCurrency(String commonCurrency)
{
this.commonCurrency = commonCurrency;
}
public String getCommonCurrency()
{
return commonCurrency;
}
public void setPurchasingUnit(String purchasingUnit)
{
this.purchasingUnit = purchasingUnit;
}
public String getPurchasingUnit()
{
return purchasingUnit;
}
public void setPurchasePrice(String purchasePrice)
{
this.purchasePrice = purchasePrice;
}
public String getPurchasePrice()
{
return purchasePrice;
}
public void setMaterialQuantity(String materialQuantity)
{
this.materialQuantity = materialQuantity;
}
public String getMaterialQuantity()
{
return materialQuantity;
}
public void setAmountMoney(String amountMoney)
{
this.amountMoney = amountMoney;
}
public String getAmountMoney()
{
return amountMoney;
}
public void setDeliveryTime(String deliveryTime)
{
this.deliveryTime = deliveryTime;
}
public String getDeliveryTime()
{
return deliveryTime;
}
public void setPurchaseExplain(String purchaseExplain)
{
this.purchaseExplain = purchaseExplain;
}
public String getPurchaseExplain()
{
return purchaseExplain;
}
@Override
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("purchaseOrderNumber", getPurchaseOrderNumber())
.append("supplierCode", getSupplierCode())
.append("supplierName", getSupplierName())
.append("customerContact", getCustomerContact())
.append("contactNumber", getContactNumber())
.append("customerFax", getCustomerFax())
.append("deliveryAddress", getDeliveryAddress())
.append("paymentTerms", getPaymentTerms())
.append("deliveryConditions", getDeliveryConditions())
.append("deliveryMethod", getDeliveryMethod())
.append("purchaseName", getPurchaseName())
.append("billingDate", getBillingDate())
.append("taxRate", getTaxRate())
.append("purchaseCategory", getPurchaseCategory())
.append("purchaseCommander", getPurchaseCommander())
.append("customerOrderNumber", getCustomerOrderNumber())
.append("remarkContent", getRemarkContent())
.append("closeCaseNo", getCloseCaseNo())
.append("closeCaseName", getCloseCaseName())
.append("closeCaseTime", getCloseCaseTime())
.append("confirmNo", getConfirmNo())
.append("confirmName", getConfirmName())
.append("confirmTime", getConfirmTime())
.append("auditNo", getAuditNo())
.append("auditName", getAuditName())
.append("auditTime", getAuditTime())
.append("approveNo", getApproveNo())
.append("approveName", getApproveName())
.append("approveTime", getApproveTime())
.append("rawSubsidiaryCode", getRawSubsidiaryCode())
.append("rawSubsidiaryName", getRawSubsidiaryName())
.append("specificationModel", getSpecificationModel())
.append("materialType", getMaterialType())
.append("commonCurrency", getCommonCurrency())
.append("purchasingUnit", getPurchasingUnit())
.append("purchasePrice", getPurchasePrice())
.append("materialQuantity", getMaterialQuantity())
.append("amountMoney", getAmountMoney())
.append("deliveryTime", getDeliveryTime())
.append("purchaseExplain", getPurchaseExplain())
.toString();
}
}

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();
}

61
ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseOrderDetailMapper.java

@ -1,61 +0,0 @@
package com.ruoyi.purchase.mapper;
import java.util.List;
import com.ruoyi.purchase.domain.PurchaseOrderDetail;
/**
* 采购订单详情Mapper接口
*
* @author ruoyi
* @date 2023-04-24
*/
public interface PurchaseOrderDetailMapper
{
/**
* 查询采购订单详情
*
* @param purchaseOrderNumber 采购订单详情ID
* @return 采购订单详情
*/
public PurchaseOrderDetail selectPurchaseOrderDetailById(String purchaseOrderNumber);
/**
* 查询采购订单详情列表
*
* @param purchaseOrderDetail 采购订单详情
* @return 采购订单详情集合
*/
public List<PurchaseOrderDetail> selectPurchaseOrderDetailList(PurchaseOrderDetail purchaseOrderDetail);
/**
* 新增采购订单详情
*
* @param purchaseOrderDetail 采购订单详情
* @return 结果
*/
public int insertPurchaseOrderDetail(PurchaseOrderDetail purchaseOrderDetail);
/**
* 修改采购订单详情
*
* @param purchaseOrderDetail 采购订单详情
* @return 结果
*/
public int updatePurchaseOrderDetail(PurchaseOrderDetail purchaseOrderDetail);
/**
* 删除采购订单详情
*
* @param purchaseOrderNumber 采购订单详情ID
* @return 结果
*/
public int deletePurchaseOrderDetailById(String purchaseOrderNumber);
/**
* 批量删除采购订单详情
*
* @param purchaseOrderNumbers 需要删除的数据ID
* @return 结果
*/
public int deletePurchaseOrderDetailByIds(String[] purchaseOrderNumbers);
}

61
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseOrderDetailService.java

@ -1,61 +0,0 @@
package com.ruoyi.purchase.service;
import java.util.List;
import com.ruoyi.purchase.domain.PurchaseOrderDetail;
/**
* 采购订单详情Service接口
*
* @author ruoyi
* @date 2023-04-24
*/
public interface IPurchaseOrderDetailService
{
/**
* 查询采购订单详情
*
* @param purchaseOrderNumber 采购订单详情ID
* @return 采购订单详情
*/
public PurchaseOrderDetail selectPurchaseOrderDetailById(String purchaseOrderNumber);
/**
* 查询采购订单详情列表
*
* @param purchaseOrderDetail 采购订单详情
* @return 采购订单详情集合
*/
public List<PurchaseOrderDetail> selectPurchaseOrderDetailList(PurchaseOrderDetail purchaseOrderDetail);
/**
* 新增采购订单详情
*
* @param purchaseOrderDetail 采购订单详情
* @return 结果
*/
public int insertPurchaseOrderDetail(PurchaseOrderDetail purchaseOrderDetail);
/**
* 修改采购订单详情
*
* @param purchaseOrderDetail 采购订单详情
* @return 结果
*/
public int updatePurchaseOrderDetail(PurchaseOrderDetail purchaseOrderDetail);
/**
* 批量删除采购订单详情
*
* @param ids 需要删除的数据ID
* @return 结果
*/
public int deletePurchaseOrderDetailByIds(String ids);
/**
* 删除采购订单详情信息
*
* @param purchaseOrderNumber 采购订单详情ID
* @return 结果
*/
public int deletePurchaseOrderDetailById(String purchaseOrderNumber);
}

94
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseOrderDetailServiceImpl.java

@ -1,94 +0,0 @@
package com.ruoyi.purchase.service.impl;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.purchase.mapper.PurchaseOrderDetailMapper;
import com.ruoyi.purchase.domain.PurchaseOrderDetail;
import com.ruoyi.purchase.service.IPurchaseOrderDetailService;
import com.ruoyi.common.core.text.Convert;
/**
* 采购订单详情Service业务层处理
*
* @author ruoyi
* @date 2023-04-24
*/
@Service
public class PurchaseOrderDetailServiceImpl implements IPurchaseOrderDetailService
{
@Autowired
private PurchaseOrderDetailMapper purchaseOrderDetailMapper;
/**
* 查询采购订单详情
*
* @param purchaseOrderNumber 采购订单详情ID
* @return 采购订单详情
*/
@Override
public PurchaseOrderDetail selectPurchaseOrderDetailById(String purchaseOrderNumber)
{
return purchaseOrderDetailMapper.selectPurchaseOrderDetailById(purchaseOrderNumber);
}
/**
* 查询采购订单详情列表
*
* @param purchaseOrderDetail 采购订单详情
* @return 采购订单详情
*/
@Override
public List<PurchaseOrderDetail> selectPurchaseOrderDetailList(PurchaseOrderDetail purchaseOrderDetail)
{
return purchaseOrderDetailMapper.selectPurchaseOrderDetailList(purchaseOrderDetail);
}
/**
* 新增采购订单详情
*
* @param purchaseOrderDetail 采购订单详情
* @return 结果
*/
@Override
public int insertPurchaseOrderDetail(PurchaseOrderDetail purchaseOrderDetail)
{
return purchaseOrderDetailMapper.insertPurchaseOrderDetail(purchaseOrderDetail);
}
/**
* 修改采购订单详情
*
* @param purchaseOrderDetail 采购订单详情
* @return 结果
*/
@Override
public int updatePurchaseOrderDetail(PurchaseOrderDetail purchaseOrderDetail)
{
return purchaseOrderDetailMapper.updatePurchaseOrderDetail(purchaseOrderDetail);
}
/**
* 删除采购订单详情对象
*
* @param ids 需要删除的数据ID
* @return 结果
*/
@Override
public int deletePurchaseOrderDetailByIds(String ids)
{
return purchaseOrderDetailMapper.deletePurchaseOrderDetailByIds(Convert.toStrArray(ids));
}
/**
* 删除采购订单详情信息
*
* @param purchaseOrderNumber 采购订单详情ID
* @return 结果
*/
@Override
public int deletePurchaseOrderDetailById(String purchaseOrderNumber)
{
return purchaseOrderDetailMapper.deletePurchaseOrderDetailById(purchaseOrderNumber);
}
}

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;
}

6
ruoyi-admin/src/main/java/com/ruoyi/system/domain/SysSupplier.java

@ -23,9 +23,11 @@ public class SysSupplier extends BaseEntity
private String auditStatus;
/*使用状态*/
private String useStatus;
/*供应商类型*/
/** 供应商类型 (0采购供应商、1委外供应商)*/
private String supplierType;
/*供应商资质*/
/** 供应商资质(1合格、2不合格、3特殊供应商)*/
private String supplierQualification;
/*采购员*/
private String purchaseBuyer;

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());

265
ruoyi-admin/src/main/resources/mapper/purchase/PurchaseOrderDetailMapper.xml

@ -1,265 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.purchase.mapper.PurchaseOrderDetailMapper">
<resultMap type="PurchaseOrderDetail" id="PurchaseOrderDetailResult">
<result property="purchaseOrderNumber" column="purchase_order_number" />
<result property="supplierCode" column="supplier_code" />
<result property="supplierName" column="supplier_name" />
<result property="customerContact" column="customer_contact" />
<result property="contactNumber" column="contact_number" />
<result property="customerFax" column="customer_fax" />
<result property="deliveryAddress" column="delivery_address" />
<result property="paymentTerms" column="payment_terms" />
<result property="deliveryConditions" column="delivery_conditions" />
<result property="deliveryMethod" column="delivery_method" />
<result property="purchaseName" column="purchase_name" />
<result property="billingDate" column="billing_date" />
<result property="taxRate" column="tax_rate" />
<result property="purchaseCategory" column="purchase_category" />
<result property="purchaseCommander" column="purchase_commander" />
<result property="customerOrderNumber" column="customer_order_number" />
<result property="remarkContent" column="remark_content" />
<result property="closeCaseNo" column="close_case_no" />
<result property="closeCaseName" column="close_case_name" />
<result property="closeCaseTime" column="close_case_time" />
<result property="confirmNo" column="confirm_no" />
<result property="confirmName" column="confirm_name" />
<result property="confirmTime" column="confirm_time" />
<result property="auditNo" column="audit_no" />
<result property="auditName" column="audit_name" />
<result property="auditTime" column="audit_time" />
<result property="approveNo" column="approve_no" />
<result property="approveName" column="approve_name" />
<result property="approveTime" column="approve_time" />
<result property="rawSubsidiaryCode" column="raw_subsidiary_code" />
<result property="rawSubsidiaryName" column="raw_subsidiary_name" />
<result property="specificationModel" column="specification_model" />
<result property="materialType" column="material_type" />
<result property="commonCurrency" column="common_currency" />
<result property="purchasingUnit" column="purchasing_unit" />
<result property="purchasePrice" column="purchase_price" />
<result property="materialQuantity" column="material_quantity" />
<result property="amountMoney" column="amount_money" />
<result property="deliveryTime" column="delivery_time" />
<result property="purchaseExplain" column="purchase_explain" />
</resultMap>
<!-- <sql id="selectPurchaseOrderDetailVo">-->
<!-- select purchase_order_number, supplier_code, supplier_name, customer_contact, contact_number, customer_fax, delivery_address, payment_terms, delivery_conditions, delivery_method, purchase_name, billing_date, tax_rate, purchase_category, purchase_commander, customer_order_number, remark_content, close_case_no, close_case_name, close_case_time, confirm_no, confirm_name, confirm_time, audit_no, audit_name, audit_time, approve_no, approve_name, approve_time, raw_subsidiary_code, raw_subsidiary_name, specification_model, material_type, common_currency, purchasing_unit, purchase_price, material_quantity, amount_money, delivery_time, purchase_explain from purchase_order_detail-->
<!-- </sql>-->
<sql id="selectPurchaseOrderDetailVo">
SELECT
po.purchase_order_number,
po.supplier_code,
po.supplier_name,
po.customer_contact,
po.contact_number,
po.customer_fax,
po.delivery_address,
po.payment_terms,
po.delivery_conditions,
po.delivery_method,
po.purchase_name,
po.billing_date,
po.tax_rate,
po.purchase_category,
po.purchase_commander,
po.customer_order_number,
po.remark_content,
po.close_case_no,
po.close_case_name,
po.close_case_time,
po.confirm_no,
po.confirm_name,
po.confirm_time,
po.audit_no,
po.audit_name,
po.audit_time,
po.approve_no,
po.approve_name,
po.approve_time,
pm.raw_subsidiary_code,
pm.raw_subsidiary_name,
pm.specification_model,
pm.material_type,
pm.common_currency,
pm.purchasing_unit,
pm.material_quantity,
pm.purchase_price,
pm.amount_money,
pm.delivery_time,
pm.purchase_explain
FROM
purchase_order po,purchase_material pm
WHERE po.purchase_order_number = pm.purchase_order_number
</sql>
<select id="selectPurchaseOrderDetailList" parameterType="PurchaseOrderDetail" resultMap="PurchaseOrderDetailResult">
<include refid="selectPurchaseOrderDetailVo"/>
<if test="purchaseOrderNumber != null and purchaseOrderNumber != ''"> and po.purchase_order_number like concat('%', #{purchaseOrderNumber}, '%')</if>
<if test="supplierCode != null and supplierCode != ''"> and po.supplier_code like concat('%', #{supplierCode}, '%')</if>
<if test="supplierName != null and supplierName != ''"> and po.supplier_name like concat('%', #{supplierName}, '%')</if>
<if test="params.beginBillingDate != null and params.beginBillingDate != '' and params.endBillingDate != null and params.endBillingDate != ''"> and billing_date between #{params.beginBillingDate} and #{params.endBillingDate}</if>
<if test="closeCaseNo != null and closeCaseNo != ''"> and close_case_no = #{closeCaseNo}</if>
<if test="confirmNo != null and confirmNo != ''"> and confirm_no = #{confirmNo}</if>
<if test="auditNo != null and auditNo != ''"> and audit_no = #{auditNo}</if>
<if test="approveNo != null and approveNo != ''"> and approve_no = #{approveNo}</if>
<if test="rawSubsidiaryCode != null and rawSubsidiaryCode != ''"> and raw_subsidiary_code like concat('%', #{rawSubsidiaryCode}, '%')</if>
<if test="rawSubsidiaryName != null and rawSubsidiaryName != ''"> and raw_subsidiary_name like concat('%', #{rawSubsidiaryName}, '%')</if>
<if test="params.beginDeliveryTime != null and params.beginDeliveryTime != '' and params.endDeliveryTime != null and params.endDeliveryTime != ''"> and delivery_time between #{params.beginDeliveryTime} and #{params.endDeliveryTime}</if>
</select>
<!-- -->
<!-- <select id="selectPurchaseOrderDetailById" parameterType="String" resultMap="PurchaseOrderDetailResult">-->
<!-- <include refid="selectPurchaseOrderDetailVo"/>-->
<!-- where purchase_order_number = #{purchaseOrderNumber}-->
<!-- </select>-->
<!-- -->
<!-- <insert id="insertPurchaseOrderDetail" parameterType="PurchaseOrderDetail">-->
<!-- insert into purchase_order_detail-->
<!-- <trim prefix="(" suffix=")" suffixOverrides=",">-->
<!-- <if test="purchaseOrderNumber != null">purchase_order_number,</if>-->
<!-- <if test="supplierCode != null">supplier_code,</if>-->
<!-- <if test="supplierName != null">supplier_name,</if>-->
<!-- <if test="customerContact != null">customer_contact,</if>-->
<!-- <if test="contactNumber != null">contact_number,</if>-->
<!-- <if test="customerFax != null">customer_fax,</if>-->
<!-- <if test="deliveryAddress != null">delivery_address,</if>-->
<!-- <if test="paymentTerms != null">payment_terms,</if>-->
<!-- <if test="deliveryConditions != null">delivery_conditions,</if>-->
<!-- <if test="deliveryMethod != null">delivery_method,</if>-->
<!-- <if test="purchaseName != null">purchase_name,</if>-->
<!-- <if test="billingDate != null">billing_date,</if>-->
<!-- <if test="taxRate != null">tax_rate,</if>-->
<!-- <if test="purchaseCategory != null">purchase_category,</if>-->
<!-- <if test="purchaseCommander != null">purchase_commander,</if>-->
<!-- <if test="customerOrderNumber != null">customer_order_number,</if>-->
<!-- <if test="remarkContent != null">remark_content,</if>-->
<!-- <if test="closeCaseNo != null">close_case_no,</if>-->
<!-- <if test="closeCaseName != null">close_case_name,</if>-->
<!-- <if test="closeCaseTime != null">close_case_time,</if>-->
<!-- <if test="confirmNo != null">confirm_no,</if>-->
<!-- <if test="confirmName != null">confirm_name,</if>-->
<!-- <if test="confirmTime != null">confirm_time,</if>-->
<!-- <if test="auditNo != null">audit_no,</if>-->
<!-- <if test="auditName != null">audit_name,</if>-->
<!-- <if test="auditTime != null">audit_time,</if>-->
<!-- <if test="approveNo != null">approve_no,</if>-->
<!-- <if test="approveName != null">approve_name,</if>-->
<!-- <if test="approveTime != null">approve_time,</if>-->
<!-- <if test="rawSubsidiaryCode != null">raw_subsidiary_code,</if>-->
<!-- <if test="rawSubsidiaryName != null">raw_subsidiary_name,</if>-->
<!-- <if test="specificationModel != null">specification_model,</if>-->
<!-- <if test="materialType != null">material_type,</if>-->
<!-- <if test="commonCurrency != null">common_currency,</if>-->
<!-- <if test="purchasingUnit != null">purchasing_unit,</if>-->
<!-- <if test="purchasePrice != null">purchase_price,</if>-->
<!-- <if test="materialQuantity != null">material_quantity,</if>-->
<!-- <if test="amountMoney != null">amount_money,</if>-->
<!-- <if test="deliveryTime != null">delivery_time,</if>-->
<!-- <if test="purchaseExplain != null">purchase_explain,</if>-->
<!-- </trim>-->
<!-- <trim prefix="values (" suffix=")" suffixOverrides=",">-->
<!-- <if test="purchaseOrderNumber != null">#{purchaseOrderNumber},</if>-->
<!-- <if test="supplierCode != null">#{supplierCode},</if>-->
<!-- <if test="supplierName != null">#{supplierName},</if>-->
<!-- <if test="customerContact != null">#{customerContact},</if>-->
<!-- <if test="contactNumber != null">#{contactNumber},</if>-->
<!-- <if test="customerFax != null">#{customerFax},</if>-->
<!-- <if test="deliveryAddress != null">#{deliveryAddress},</if>-->
<!-- <if test="paymentTerms != null">#{paymentTerms},</if>-->
<!-- <if test="deliveryConditions != null">#{deliveryConditions},</if>-->
<!-- <if test="deliveryMethod != null">#{deliveryMethod},</if>-->
<!-- <if test="purchaseName != null">#{purchaseName},</if>-->
<!-- <if test="billingDate != null">#{billingDate},</if>-->
<!-- <if test="taxRate != null">#{taxRate},</if>-->
<!-- <if test="purchaseCategory != null">#{purchaseCategory},</if>-->
<!-- <if test="purchaseCommander != null">#{purchaseCommander},</if>-->
<!-- <if test="customerOrderNumber != null">#{customerOrderNumber},</if>-->
<!-- <if test="remarkContent != null">#{remarkContent},</if>-->
<!-- <if test="closeCaseNo != null">#{closeCaseNo},</if>-->
<!-- <if test="closeCaseName != null">#{closeCaseName},</if>-->
<!-- <if test="closeCaseTime != null">#{closeCaseTime},</if>-->
<!-- <if test="confirmNo != null">#{confirmNo},</if>-->
<!-- <if test="confirmName != null">#{confirmName},</if>-->
<!-- <if test="confirmTime != null">#{confirmTime},</if>-->
<!-- <if test="auditNo != null">#{auditNo},</if>-->
<!-- <if test="auditName != null">#{auditName},</if>-->
<!-- <if test="auditTime != null">#{auditTime},</if>-->
<!-- <if test="approveNo != null">#{approveNo},</if>-->
<!-- <if test="approveName != null">#{approveName},</if>-->
<!-- <if test="approveTime != null">#{approveTime},</if>-->
<!-- <if test="rawSubsidiaryCode != null">#{rawSubsidiaryCode},</if>-->
<!-- <if test="rawSubsidiaryName != null">#{rawSubsidiaryName},</if>-->
<!-- <if test="specificationModel != null">#{specificationModel},</if>-->
<!-- <if test="materialType != null">#{materialType},</if>-->
<!-- <if test="commonCurrency != null">#{commonCurrency},</if>-->
<!-- <if test="purchasingUnit != null">#{purchasingUnit},</if>-->
<!-- <if test="purchasePrice != null">#{purchasePrice},</if>-->
<!-- <if test="materialQuantity != null">#{materialQuantity},</if>-->
<!-- <if test="amountMoney != null">#{amountMoney},</if>-->
<!-- <if test="deliveryTime != null">#{deliveryTime},</if>-->
<!-- <if test="purchaseExplain != null">#{purchaseExplain},</if>-->
<!-- </trim>-->
<!-- </insert>-->
<!-- <update id="updatePurchaseOrderDetail" parameterType="PurchaseOrderDetail">-->
<!-- update purchase_order_detail-->
<!-- <trim prefix="SET" suffixOverrides=",">-->
<!-- <if test="supplierCode != null">supplier_code = #{supplierCode},</if>-->
<!-- <if test="supplierName != null">supplier_name = #{supplierName},</if>-->
<!-- <if test="customerContact != null">customer_contact = #{customerContact},</if>-->
<!-- <if test="contactNumber != null">contact_number = #{contactNumber},</if>-->
<!-- <if test="customerFax != null">customer_fax = #{customerFax},</if>-->
<!-- <if test="deliveryAddress != null">delivery_address = #{deliveryAddress},</if>-->
<!-- <if test="paymentTerms != null">payment_terms = #{paymentTerms},</if>-->
<!-- <if test="deliveryConditions != null">delivery_conditions = #{deliveryConditions},</if>-->
<!-- <if test="deliveryMethod != null">delivery_method = #{deliveryMethod},</if>-->
<!-- <if test="purchaseName != null">purchase_name = #{purchaseName},</if>-->
<!-- <if test="billingDate != null">billing_date = #{billingDate},</if>-->
<!-- <if test="taxRate != null">tax_rate = #{taxRate},</if>-->
<!-- <if test="purchaseCategory != null">purchase_category = #{purchaseCategory},</if>-->
<!-- <if test="purchaseCommander != null">purchase_commander = #{purchaseCommander},</if>-->
<!-- <if test="customerOrderNumber != null">customer_order_number = #{customerOrderNumber},</if>-->
<!-- <if test="remarkContent != null">remark_content = #{remarkContent},</if>-->
<!-- <if test="closeCaseNo != null">close_case_no = #{closeCaseNo},</if>-->
<!-- <if test="closeCaseName != null">close_case_name = #{closeCaseName},</if>-->
<!-- <if test="closeCaseTime != null">close_case_time = #{closeCaseTime},</if>-->
<!-- <if test="confirmNo != null">confirm_no = #{confirmNo},</if>-->
<!-- <if test="confirmName != null">confirm_name = #{confirmName},</if>-->
<!-- <if test="confirmTime != null">confirm_time = #{confirmTime},</if>-->
<!-- <if test="auditNo != null">audit_no = #{auditNo},</if>-->
<!-- <if test="auditName != null">audit_name = #{auditName},</if>-->
<!-- <if test="auditTime != null">audit_time = #{auditTime},</if>-->
<!-- <if test="approveNo != null">approve_no = #{approveNo},</if>-->
<!-- <if test="approveName != null">approve_name = #{approveName},</if>-->
<!-- <if test="approveTime != null">approve_time = #{approveTime},</if>-->
<!-- <if test="rawSubsidiaryCode != null">raw_subsidiary_code = #{rawSubsidiaryCode},</if>-->
<!-- <if test="rawSubsidiaryName != null">raw_subsidiary_name = #{rawSubsidiaryName},</if>-->
<!-- <if test="specificationModel != null">specification_model = #{specificationModel},</if>-->
<!-- <if test="materialType != null">material_type = #{materialType},</if>-->
<!-- <if test="commonCurrency != null">common_currency = #{commonCurrency},</if>-->
<!-- <if test="purchasingUnit != null">purchasing_unit = #{purchasingUnit},</if>-->
<!-- <if test="purchasePrice != null">purchase_price = #{purchasePrice},</if>-->
<!-- <if test="materialQuantity != null">material_quantity = #{materialQuantity},</if>-->
<!-- <if test="amountMoney != null">amount_money = #{amountMoney},</if>-->
<!-- <if test="deliveryTime != null">delivery_time = #{deliveryTime},</if>-->
<!-- <if test="purchaseExplain != null">purchase_explain = #{purchaseExplain},</if>-->
<!-- </trim>-->
<!-- where purchase_order_number = #{purchaseOrderNumber}-->
<!-- </update>-->
<!-- <delete id="deletePurchaseOrderDetailById" parameterType="String">-->
<!-- delete from purchase_order_detail where purchase_order_number = #{purchaseOrderNumber}-->
<!-- </delete>-->
<!-- <delete id="deletePurchaseOrderDetailByIds" parameterType="String">-->
<!-- delete from purchase_order_detail where purchase_order_number in -->
<!-- <foreach item="purchaseOrderNumber" collection="array" open="(" separator="," close=")">-->
<!-- #{purchaseOrderNumber}-->
<!-- </foreach>-->
<!-- </delete>-->
</mapper>

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

@ -1,64 +1,49 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
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>

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

@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.purchase.mapper.PurchasePlanMapper">
<resultMap type="PurchasePlan" id="PurchasePlanResult">
@ -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>

334
ruoyi-admin/src/main/resources/templates/purchase/purchaseOrderDetail/add.html

@ -1,334 +0,0 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增采购订单详情')" />
<th:block th:include="include :: datetimepicker-css" />
<th:block th:include="include :: summernote-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-purchaseOrderDetail-add">
<div class="form-group">
<label class="col-sm-3 control-label">订购单号:</label>
<div class="col-sm-8">
<input name="purchaseOrderNumber" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供应商代码:</label>
<div class="col-sm-8">
<input name="supplierCode" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供应商名称:</label>
<div class="col-sm-8">
<input name="supplierName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系人:</label>
<div class="col-sm-8">
<input name="customerContact" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系电话:</label>
<div class="col-sm-8">
<input name="contactNumber" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">传真号码:</label>
<div class="col-sm-8">
<input name="customerFax" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">交货地点:</label>
<div class="col-sm-8">
<input name="deliveryAddress" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">付款条件:</label>
<div class="col-sm-8">
<input name="paymentTerms" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">交货条件:</label>
<div class="col-sm-8">
<input name="deliveryConditions" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">交货方式:</label>
<div class="col-sm-8">
<input name="deliveryMethod" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">购方名称:</label>
<div class="col-sm-8">
<input name="purchaseName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">开单日期:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="billingDate" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">税率:</label>
<div class="col-sm-8">
<input name="taxRate" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">订购种类:</label>
<div class="col-sm-8">
<input name="purchaseCategory" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购担当:</label>
<div class="col-sm-8">
<input name="purchaseCommander" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">客户订单号:</label>
<div class="col-sm-8">
<input name="customerOrderNumber" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注内容:</label>
<div class="col-sm-8">
<input type="hidden" class="form-control" name="remarkContent">
<div class="summernote" id="remarkContent"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结案否:</label>
<div class="col-sm-8">
<select name="closeCaseNo" class="form-control m-b" th:with="type=${@dict.getType('sys_whether')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结案人:</label>
<div class="col-sm-8">
<input name="closeCaseName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结案时间:</label>
<div class="col-sm-8">
<input name="closeCaseTime" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">确认否:</label>
<div class="col-sm-8">
<select name="confirmNo" class="form-control m-b" th:with="type=${@dict.getType('sys_whether')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">确认人:</label>
<div class="col-sm-8">
<input name="confirmName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">确认时间:</label>
<div class="col-sm-8">
<input name="confirmTime" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">审核否:</label>
<div class="col-sm-8">
<select name="auditNo" class="form-control m-b" th:with="type=${@dict.getType('sys_whether')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">审核人:</label>
<div class="col-sm-8">
<input name="auditName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">审核时间:</label>
<div class="col-sm-8">
<input name="auditTime" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">核准否:</label>
<div class="col-sm-8">
<select name="approveNo" class="form-control m-b" th:with="type=${@dict.getType('sys_whether')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">核准人:</label>
<div class="col-sm-8">
<input name="approveName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">核准时间:</label>
<div class="col-sm-8">
<input name="approveTime" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">原辅料代码:</label>
<div class="col-sm-8">
<input name="rawSubsidiaryCode" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">原辅料名称:</label>
<div class="col-sm-8">
<input name="rawSubsidiaryName" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">规格型号:</label>
<div class="col-sm-8">
<input name="specificationModel" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">物料类别:</label>
<div class="col-sm-8">
<select name="materialType" class="form-control m-b">
<option value="">所有</option>
</select>
<span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 代码生成请选择字典属性</span>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">币别:</label>
<div class="col-sm-8">
<input name="commonCurrency" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购单位:</label>
<div class="col-sm-8">
<input name="purchasingUnit" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购单价:</label>
<div class="col-sm-8">
<input name="purchasePrice" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">数量:</label>
<div class="col-sm-8">
<input name="materialQuantity" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">金额:</label>
<div class="col-sm-8">
<input name="amountMoney" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">交期:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="deliveryTime" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">说明:</label>
<div class="col-sm-8">
<input name="purchaseExplain" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: summernote-js" />
<script th:inline="javascript">
var prefix = ctx + "purchase/purchaseOrderDetail"
$("#form-purchaseOrderDetail-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-purchaseOrderDetail-add').serialize());
}
}
$("input[name='billingDate']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='deliveryTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$(function() {
$('.summernote').summernote({
lang: 'zh-CN',
callbacks: {
onChange: function(contents, $edittable) {
$("input[name='" + this.id + "']").val(contents);
},
onImageUpload: function(files) {
var obj = this;
var data = new FormData();
data.append("file", files[0]);
$.ajax({
type: "post",
url: ctx + "common/upload",
data: data,
cache: false,
contentType: false,
processData: false,
dataType: 'json',
success: function(result) {
if (result.code == web_status.SUCCESS) {
$('#' + obj.id).summernote('insertImage', result.url);
} else {
$.modal.alertError(result.msg);
}
},
error: function(error) {
$.modal.alertWarning("图片上传失败。");
}
});
}
}
});
});
</script>
</body>
</html>

339
ruoyi-admin/src/main/resources/templates/purchase/purchaseOrderDetail/edit.html

@ -1,339 +0,0 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改采购订单详情')" />
<th:block th:include="include :: datetimepicker-css" />
<th:block th:include="include :: summernote-css" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-purchaseOrderDetail-edit" th:object="${purchaseOrderDetail}">
<input name="purchaseOrderNumber" th:field="*{purchaseOrderNumber}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label">订购单号:</label>
<div class="col-sm-8">
<input name="purchaseOrderNumber" th:field="*{purchaseOrderNumber}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供应商代码:</label>
<div class="col-sm-8">
<input name="supplierCode" th:field="*{supplierCode}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">供应商名称:</label>
<div class="col-sm-8">
<input name="supplierName" th:field="*{supplierName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系人:</label>
<div class="col-sm-8">
<input name="customerContact" th:field="*{customerContact}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系电话:</label>
<div class="col-sm-8">
<input name="contactNumber" th:field="*{contactNumber}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">传真号码:</label>
<div class="col-sm-8">
<input name="customerFax" th:field="*{customerFax}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">交货地点:</label>
<div class="col-sm-8">
<input name="deliveryAddress" th:field="*{deliveryAddress}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">付款条件:</label>
<div class="col-sm-8">
<input name="paymentTerms" th:field="*{paymentTerms}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">交货条件:</label>
<div class="col-sm-8">
<input name="deliveryConditions" th:field="*{deliveryConditions}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">交货方式:</label>
<div class="col-sm-8">
<input name="deliveryMethod" th:field="*{deliveryMethod}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">购方名称:</label>
<div class="col-sm-8">
<input name="purchaseName" th:field="*{purchaseName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">开单日期:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="billingDate" th:value="${#dates.format(purchaseOrderDetail.billingDate, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">税率:</label>
<div class="col-sm-8">
<input name="taxRate" th:field="*{taxRate}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">订购种类:</label>
<div class="col-sm-8">
<input name="purchaseCategory" th:field="*{purchaseCategory}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购担当:</label>
<div class="col-sm-8">
<input name="purchaseCommander" th:field="*{purchaseCommander}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">客户订单号:</label>
<div class="col-sm-8">
<input name="customerOrderNumber" th:field="*{customerOrderNumber}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注内容:</label>
<div class="col-sm-8">
<input type="hidden" class="form-control" th:field="*{remarkContent}">
<div class="summernote" id="remarkContent"></div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结案否:</label>
<div class="col-sm-8">
<select name="closeCaseNo" class="form-control m-b" th:with="type=${@dict.getType('sys_whether')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{closeCaseNo}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结案人:</label>
<div class="col-sm-8">
<input name="closeCaseName" th:field="*{closeCaseName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">结案时间:</label>
<div class="col-sm-8">
<input name="closeCaseTime" th:field="*{closeCaseTime}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">确认否:</label>
<div class="col-sm-8">
<select name="confirmNo" class="form-control m-b" th:with="type=${@dict.getType('sys_whether')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{confirmNo}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">确认人:</label>
<div class="col-sm-8">
<input name="confirmName" th:field="*{confirmName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">确认时间:</label>
<div class="col-sm-8">
<input name="confirmTime" th:field="*{confirmTime}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">审核否:</label>
<div class="col-sm-8">
<select name="auditNo" class="form-control m-b" th:with="type=${@dict.getType('sys_whether')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{auditNo}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">审核人:</label>
<div class="col-sm-8">
<input name="auditName" th:field="*{auditName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">审核时间:</label>
<div class="col-sm-8">
<input name="auditTime" th:field="*{auditTime}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">核准否:</label>
<div class="col-sm-8">
<select name="approveNo" class="form-control m-b" th:with="type=${@dict.getType('sys_whether')}">
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{approveNo}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">核准人:</label>
<div class="col-sm-8">
<input name="approveName" th:field="*{approveName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">核准时间:</label>
<div class="col-sm-8">
<input name="approveTime" th:field="*{approveTime}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">原辅料代码:</label>
<div class="col-sm-8">
<input name="rawSubsidiaryCode" th:field="*{rawSubsidiaryCode}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">原辅料名称:</label>
<div class="col-sm-8">
<input name="rawSubsidiaryName" th:field="*{rawSubsidiaryName}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">规格型号:</label>
<div class="col-sm-8">
<input name="specificationModel" th:field="*{specificationModel}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">物料类别:</label>
<div class="col-sm-8">
<select name="materialType" class="form-control m-b">
<option value="">所有</option>
</select>
<span class="help-block m-b-none"><i class="fa fa-info-circle"></i> 代码生成请选择字典属性</span>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">币别:</label>
<div class="col-sm-8">
<input name="commonCurrency" th:field="*{commonCurrency}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购单位:</label>
<div class="col-sm-8">
<input name="purchasingUnit" th:field="*{purchasingUnit}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">采购单价:</label>
<div class="col-sm-8">
<input name="purchasePrice" th:field="*{purchasePrice}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">数量:</label>
<div class="col-sm-8">
<input name="materialQuantity" th:field="*{materialQuantity}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">金额:</label>
<div class="col-sm-8">
<input name="amountMoney" th:field="*{amountMoney}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">交期:</label>
<div class="col-sm-8">
<div class="input-group date">
<input name="deliveryTime" th:value="${#dates.format(purchaseOrderDetail.deliveryTime, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">说明:</label>
<div class="col-sm-8">
<input name="purchaseExplain" th:field="*{purchaseExplain}" class="form-control" type="text">
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<th:block th:include="include :: datetimepicker-js" />
<th:block th:include="include :: summernote-js" />
<script th:inline="javascript">
var prefix = ctx + "purchase/purchaseOrderDetail";
$("#form-purchaseOrderDetail-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-purchaseOrderDetail-edit').serialize());
}
}
$("input[name='billingDate']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$("input[name='deliveryTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
autoclose: true
});
$(function() {
$('.summernote').each(function(i) {
$('#' + this.id).summernote({
lang: 'zh-CN',
callbacks: {
onChange: function(contents, $edittable) {
$("input[name='" + this.id + "']").val(contents);
},
onImageUpload: function(files) {
var obj = this;
var data = new FormData();
data.append("file", files[0]);
$.ajax({
type: "post",
url: ctx + "common/upload",
data: data,
cache: false,
contentType: false,
processData: false,
dataType: 'json',
success: function(result) {
if (result.code == web_status.SUCCESS) {
$('#' + obj.id).summernote('insertImage', result.url);
} else {
$.modal.alertError(result.msg);
}
},
error: function(error) {
$.modal.alertWarning("图片上传失败。");
}
});
}
}
});
var content = $("input[name='" + this.id + "']").val();
$('#' + this.id).summernote('code', content);
})
});
</script>
</body>
</html>

200
ruoyi-admin/src/main/resources/templates/purchase/purchaseOrderDetail/purchaseOrderDetail.html

@ -1,200 +0,0 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('采购订单详情列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>订购单号:</label>
<input type="text" name="purchaseOrderNumber"/>
</li>
<li>
<label>供应商代码:</label>
<input type="text" name="supplierCode"/>
</li>
<li>
<label>供应商名称:</label>
<input type="text" name="supplierName"/>
</li>
<li class="select-time">
<label>开单日期:</label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginBillingDate]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endBillingDate]"/>
</li>
<li>
<label>结案否:</label>
<select name="closeCaseNo" th:with="type=${@dict.getType('sys_whether')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>确认否:</label>
<select name="confirmNo" th:with="type=${@dict.getType('sys_whether')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>审核否:</label>
<select name="auditNo" th:with="type=${@dict.getType('sys_whether')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>核准否:</label>
<select name="approveNo" th:with="type=${@dict.getType('sys_whether')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>原辅料代码:</label>
<input type="text" name="rawSubsidiaryCode"/>
</li>
<li>
<label>原辅料名称:</label>
<input type="text" name="rawSubsidiaryName"/>
</li>
<li class="select-time">
<label>交期:</label>
<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginDeliveryTime]"/>
<span>-</span>
<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endDeliveryTime]"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<!-- <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="purchase:purchaseOrderDetail:add">-->
<!-- <i class="fa fa-plus"></i> 添加-->
<!-- </a>-->
<!-- <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="purchase:purchaseOrderDetail:edit">-->
<!-- <i class="fa fa-edit"></i> 修改-->
<!-- </a>-->
<!-- <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="purchase:purchaseOrderDetail:remove">-->
<!-- <i class="fa fa-remove"></i> 删除-->
<!-- </a>-->
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="purchase:purchaseOrderDetail:export">-->
<!-- <i class="fa fa-download"></i> 导出-->
<!-- </a>-->
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table" style="white-space: nowrap"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('purchase:purchaseOrderDetail:edit')}]];
var removeFlag = [[${@permission.hasPermi('purchase:purchaseOrderDetail:remove')}]];
var closeCaseNoDatas = [[${@dict.getType('sys_whether')}]];
var confirmNoDatas = [[${@dict.getType('sys_whether')}]];
var auditNoDatas = [[${@dict.getType('sys_whether')}]];
var approveNoDatas = [[${@dict.getType('sys_whether')}]];
var commonCurrencyDatas = [[${@dict.getType('sys_common_currency')}]];
var prefix = ctx + "purchase/purchaseOrderDetail";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "采购订单详情",
columns: [{
checkbox: true
},
{
field: 'purchaseOrderNumber',
title: '订购单号'
},
{
field: 'supplierCode',
title: '供应商代码'
},
{
field: 'supplierName',
title: '供应商名称'
},
{
field: 'billingDate',
title: '开单日期'
},
{
field: 'closeCaseNo',
title: '结案否',
formatter: function(value, row, index) {
return $.table.selectDictLabel(closeCaseNoDatas, value);
}
},
{
field: 'rawSubsidiaryCode',
title: '原辅料代码'
},
{
field: 'rawSubsidiaryName',
title: '原辅料名称'
},
{
field: 'specificationModel',
title: '规格型号'
},
{
field: 'commonCurrency',
title: '币别',
formatter: function(value, row, index) {
return $.table.selectDictLabel(commonCurrencyDatas, value);
}
},
{
field: 'purchasingUnit',
title: '采购单位'
},
{
field: 'purchasePrice',
title: '采购单价'
},
{
field: 'materialQuantity',
title: '数量'
},
{
field: 'amountMoney',
title: '金额'
},
{
field: 'deliveryTime',
title: '交期'
}]
// {
// title: '操作',
// align: 'center',
// formatter: function(value, row, index) {
// var actions = [];
// actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.purchaseOrderNumber + '\')"><i class="fa fa-edit"></i>编辑</a> ');
// actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.purchaseOrderNumber + '\')"><i class="fa fa-remove"></i>删除</a>');
// return actions.join('');
// }
// }
};
$.table.init(options);
});
</script>
</body>
</html>

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