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. 196
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchasePlan.java
  5. 409
      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. 307
      ruoyi-admin/src/main/resources/mapper/purchase/PurchasePlanChildMapper.xml
  14. 103
      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();
}
}

196
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,74 +159,94 @@ 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
public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
.append("purchasePlanId", getPurchasePlanId())
.append("purchasePlanCode", getPurchasePlanCode())
.append("purchasePlanStatus", getPurchasePlanStatus())
.append("correlationCode", getCorrelationCode())
.append("purchasePlanType", getPurchasePlanType())
.append("materialAmount", getMaterialAmount())
.append("materialSum", getMaterialSum())
.append("noRmbSum", getNoRmbSum())
.append("rmbSum", getRmbSum())
.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())
.toString();
.append("purchasePlanId", getPurchasePlanId())
.append("purchasePlanCode", getPurchasePlanCode())
.append("purchasePlanStatus", getPurchasePlanStatus())
.append("correlationCode", getCorrelationCode())
.append("purchasePlanType", getPurchasePlanType())
.append("materialSum", getMaterialSum())
.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("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("delFlag", getDelFlag())
.toString();
}
}

409
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,215 +178,173 @@ 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("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("createBy", getCreateBy())
.append("createTime", getCreateTime())
.append("updateBy", getUpdateBy())
.append("updateTime", getUpdateTime())
.append("remark", getRemark())
.append("useStatus", getUseStatus())
.append("auditStatus", getAuditStatus())
.append("delFlag", getDelFlag())
.toString();
.append("purchasePlanChildId", getPurchasePlanChildId())
.append("purchasePlanCode", getPurchasePlanCode())
.append("purchasePlanStatus", getPurchasePlanStatus())
.append("correlationCode", getCorrelationCode())
.append("purchasePlanType", getPurchasePlanType())
.append("materialNo", getMaterialNo())
.append("materialName", getMaterialName())
.append("materialType", getMaterialType())
.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("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>

307
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="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="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 type="PurchasePlanChild" id="PurchasePlanChildResult">
<result property="purchasePlanChildId" column="purchase_plan_child_id" />
<result property="purchasePlanCode" column="purchase_plan_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="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="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>
<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>

103
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,41 +55,45 @@ 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>
</trim>
<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>
</trim>
<if test="delFlag != null">#{delFlag},</if>
</trim>
</insert>
<update id="updatePurchasePlan" parameterType="PurchasePlan">
@ -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