Browse Source

[feat]采购管理

采购计划添加采购顶单,选择物料计划由打开页面加载修改为第二步加载,附带第一步选择的供应商传递给后端;并且修改第二步后端查询方法,加上非空判断
采购报价历史新增  采购订单新增的时候生成采购报价历史数据方法
采购计划实体类新增 用于前端 显示供应商名称和供应商ID
采购报价子表新增 通过供应商编码查找所有采购报价子表集合方法
采购报价历史实体类新增isLatest,其mapper.xml层所有方法加上对应的isLatest
采购报价历史新增 根据报价编号和物料号查询最新一条记录方法;新增 批量新增采购物料历史报价信息方法
采购报价历史impl层新增 采购订单新增的时候生成采购报价历史数据方法
修改采购报价新增方法,加上 新增采购报价历史数据的方法
dev
liuxiaoxu 3 days ago
parent
commit
c4261a3473
  1. 36
      ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java
  2. 26
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchasePlan.java
  3. 14
      ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuoteHistory.java
  4. 5
      ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteChildMapper.java
  5. 15
      ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteHistoryMapper.java
  6. 8
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteHistoryService.java
  7. 7
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java
  8. 11
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchasePlanServiceImpl.java
  9. 39
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteHistoryServiceImpl.java
  10. 82
      ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java
  11. 8
      ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml
  12. 72
      ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteHistoryMapper.xml
  13. 20
      ruoyi-admin/src/main/resources/templates/purchase/purchasePlan/addPurchaseOrder.html
  14. 6
      ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html

36
ruoyi-admin/src/main/java/com/ruoyi/purchase/controller/PurchaseQuoteController.java

@ -32,6 +32,7 @@ import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSession;
@ -85,11 +86,44 @@ public class PurchaseQuoteController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
/**
* 导入采购报价单
* */
@Log(title = "采购报价", businessType = BusinessType.IMPORT)
@RequiresPermissions("purchase:purchaseQuote:import")
@PostMapping("/importData")
@ResponseBody
public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
{
ExcelUtil<PurchaseQuote> util = new ExcelUtil<PurchaseQuote>(PurchaseQuote.class);
List<PurchaseQuote> purchaseQuoteList = util.importExcel(file.getInputStream());
String operName = ShiroUtils.getSysUser().getLoginName();
String message = purchaseQuoteService.importPurchaseQuote(purchaseQuoteList, updateSupport, operName);
return AjaxResult.success(message);
}
/**
* 导入模板
* */
@RequiresPermissions("purchase:purchaseQuote:view")
@GetMapping("/importTemplate")
@ResponseBody
public AjaxResult importTemplate()
{
ExcelUtil<PurchaseQuote> util = new ExcelUtil<PurchaseQuote>(PurchaseQuote.class);
return util.importTemplateExcel("采购报价数据");
}
/** /**
* 导出采购报价单列表 * 导出采购报价单列表
*/ */
@RequiresPermissions("purchase:purchaseQuote:export") @RequiresPermissions("purchase:purchaseQuote:export")
@Log(title = "采购报价单", businessType = BusinessType.EXPORT)
@PostMapping("/export") @PostMapping("/export")
@ResponseBody @ResponseBody
public AjaxResult export(PurchaseQuote purchaseQuote) public AjaxResult export(PurchaseQuote purchaseQuote)

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

@ -1,6 +1,8 @@
package com.ruoyi.purchase.domain; package com.ruoyi.purchase.domain;
import java.math.BigDecimal; import java.math.BigDecimal;
import com.ruoyi.system.domain.Vo.Supplier;
import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle; import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.annotation.Excel;
@ -83,6 +85,12 @@ public class PurchasePlan extends BaseEntity
/** 删除标志 0 启用 1逻辑删除 */ /** 删除标志 0 启用 1逻辑删除 */
private String delFlag; private String delFlag;
//用于前端 显示供应商名称
private String supplierName;
//用于前端 显示供应商Id
private String supplierCode;
public void setPurchasePlanId(Long purchasePlanId) public void setPurchasePlanId(Long purchasePlanId)
{ {
this.purchasePlanId = purchasePlanId; this.purchasePlanId = purchasePlanId;
@ -239,6 +247,22 @@ public class PurchasePlan extends BaseEntity
return delFlag; return delFlag;
} }
public String getSupplierName() {
return supplierName;
}
public void setSupplierName(String supplierName) {
this.supplierName = supplierName;
}
public String getSupplierCode() {
return supplierCode;
}
public void setSupplierCode(String supplierCode) {
this.supplierCode = supplierCode;
}
@Override @Override
public String toString() { public String toString() {
return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
@ -264,6 +288,8 @@ public class PurchasePlan extends BaseEntity
.append("updateTime", getUpdateTime()) .append("updateTime", getUpdateTime())
.append("remark", getRemark()) .append("remark", getRemark())
.append("delFlag", getDelFlag()) .append("delFlag", getDelFlag())
.append("supplierName", getSupplierName())
.append("supplierCode", getSupplierCode())
.toString(); .toString();
} }
} }

14
ruoyi-admin/src/main/java/com/ruoyi/purchase/domain/PurchaseQuoteHistory.java

@ -96,6 +96,10 @@ public class PurchaseQuoteHistory extends BaseEntity
@Excel(name = "审核状态") @Excel(name = "审核状态")
private String auditStatus; private String auditStatus;
/** 是否是最新报价(0否、1是) */
@Excel(name = "是否是最新报价(0否、1是)")
private String isLatest;
/** 删除标志 */ /** 删除标志 */
private String delFlag; private String delFlag;
@ -279,6 +283,15 @@ public class PurchaseQuoteHistory extends BaseEntity
{ {
return auditStatus; return auditStatus;
} }
public String getIsLatest() {
return isLatest;
}
public void setIsLatest(String isLatest) {
this.isLatest = isLatest;
}
public void setDelFlag(String delFlag) public void setDelFlag(String delFlag)
{ {
this.delFlag = delFlag; this.delFlag = delFlag;
@ -317,6 +330,7 @@ public class PurchaseQuoteHistory extends BaseEntity
.append("remark", getRemark()) .append("remark", getRemark())
.append("useStatus", getUseStatus()) .append("useStatus", getUseStatus())
.append("auditStatus", getAuditStatus()) .append("auditStatus", getAuditStatus())
.append("isLatest", getIsLatest())
.append("delFlag", getDelFlag()) .append("delFlag", getDelFlag())
.toString(); .toString();
} }

5
ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteChildMapper.java

@ -89,4 +89,9 @@ public interface PurchaseQuoteChildMapper
* 通过采购报价单号查找所有采购报价子表集合 * 通过采购报价单号查找所有采购报价子表集合
* */ * */
List<PurchaseQuoteChild> selectPurchaseQuoteChildListByQuoteCodeList(List<String> purchaseQuoteCodes); List<PurchaseQuoteChild> selectPurchaseQuoteChildListByQuoteCodeList(List<String> purchaseQuoteCodes);
/**
* 通过供应商编码查找所有采购报价子表集合
* */
List<PurchaseQuoteChild> selectQuoteChildBySupplierCode(String supplierCode);
} }

15
ruoyi-admin/src/main/java/com/ruoyi/purchase/mapper/PurchaseQuoteHistoryMapper.java

@ -27,6 +27,12 @@ public interface PurchaseQuoteHistoryMapper
*/ */
public List<PurchaseQuoteHistory> selectPurchaseQuoteHistoryList(PurchaseQuoteHistory purchaseQuoteHistory); public List<PurchaseQuoteHistory> selectPurchaseQuoteHistoryList(PurchaseQuoteHistory purchaseQuoteHistory);
/*
* 根据报价编号和物料号查询最新一条记录
* */
public PurchaseQuoteHistory findLatestPurchaseQuoteHistory(PurchaseQuoteHistory purchaseQuoteHistory);
/** /**
* 新增采购物料历史报价信息 * 新增采购物料历史报价信息
* *
@ -35,6 +41,15 @@ public interface PurchaseQuoteHistoryMapper
*/ */
public int insertPurchaseQuoteHistory(PurchaseQuoteHistory purchaseQuoteHistory); public int insertPurchaseQuoteHistory(PurchaseQuoteHistory purchaseQuoteHistory);
/**
* 批量新增采购物料历史报价信息
*
* @param purchaseQuoteHistoryList 采购物料历史报价信息集合
* @return 结果
*/
public int insertBatchPurchaseQuoteHistory(List<PurchaseQuoteHistory> purchaseQuoteHistoryList);
/** /**
* 修改采购物料历史报价信息 * 修改采购物料历史报价信息
* *

8
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteHistoryService.java

@ -1,6 +1,8 @@
package com.ruoyi.purchase.service; package com.ruoyi.purchase.service;
import java.util.List; import java.util.List;
import com.ruoyi.purchase.domain.PurchaseQuote;
import com.ruoyi.purchase.domain.PurchaseQuoteHistory; import com.ruoyi.purchase.domain.PurchaseQuoteHistory;
/** /**
@ -72,4 +74,10 @@ public interface IPurchaseQuoteHistoryService
* @return * @return
*/ */
int restorePurchaseQuoteHistoryById(Long purchaseQuoteChildId); int restorePurchaseQuoteHistoryById(Long purchaseQuoteChildId);
/**
* 采购报价新增的时候生成采购报价历史数据
*
* */
int generatePurchaseQuoteHistory(PurchaseQuote purchaseQuote);
} }

7
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/IPurchaseQuoteService.java

@ -6,6 +6,8 @@ import com.ruoyi.purchase.domain.PurchaseQuote;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/** /**
* 采购报价单Service接口 * 采购报价单Service接口
* *
@ -92,4 +94,9 @@ public interface IPurchaseQuoteService
* @return 结果 * @return 结果
*/ */
Object getId(); Object getId();
/**
* 导入采购报价单
* */
String importPurchaseQuote(List<PurchaseQuote> purchaseQuoteList, boolean updateSupport, String operName);
} }

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

@ -16,6 +16,7 @@ import com.ruoyi.erp.domain.ErpDevelopModifyorderDetail;
import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo; import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderVo;
import com.ruoyi.erp.mapper.ErpDevelopModifyorderDetailMapper; import com.ruoyi.erp.mapper.ErpDevelopModifyorderDetailMapper;
import com.ruoyi.erp.service.IErpBomService; import com.ruoyi.erp.service.IErpBomService;
import com.ruoyi.purchase.controller.PurchaseQuoteController;
import com.ruoyi.purchase.domain.PurchasePlan; import com.ruoyi.purchase.domain.PurchasePlan;
import com.ruoyi.purchase.domain.PurchasePlanChild; import com.ruoyi.purchase.domain.PurchasePlanChild;
import com.ruoyi.purchase.domain.PurchaseQuote; import com.ruoyi.purchase.domain.PurchaseQuote;
@ -81,6 +82,9 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
@Autowired @Autowired
private SysMakeorderBomMapper sysMakeorderBomMapper; private SysMakeorderBomMapper sysMakeorderBomMapper;
/** /**
* 查询采购计划单 * 查询采购计划单
* *
@ -200,6 +204,11 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
purchasePlanCodeList = Arrays.asList(splitSalesOrderCode); purchasePlanCodeList = Arrays.asList(splitSalesOrderCode);
} }
String supplierCode = purchasePlan.getSupplierCode();
List<PurchaseQuoteChild> purchaseQuoteChildList = purchaseQuoteChildMapper.selectQuoteChildBySupplierCode(supplierCode);
//采购计划子表数据 //采购计划子表数据
List<PurchasePlanChild> purchasePlanChildList = purchasePlanChildMapper.selectPurchasePlanChildPlanCodeList(purchasePlanCodeList); List<PurchasePlanChild> purchasePlanChildList = purchasePlanChildMapper.selectPurchasePlanChildPlanCodeList(purchasePlanCodeList);
@ -241,7 +250,7 @@ public class PurchasePlanServiceImpl implements IPurchasePlanService
mergedList.forEach(item->{ mergedList.forEach(item->{
//字段(本次占用共享库存数):必填;默认为0,若共享可用库存数>0,则默认=共享可用库存数,可修改;需0<=本次占用共享库存数<=共享可用库存数 //字段(本次占用共享库存数):必填;默认为0,若共享可用库存数>0,则默认=共享可用库存数,可修改;需0<=本次占用共享库存数<=共享可用库存数
if (item.getSharedAvailableInventoryNum() > 0){ if (item.getSharedAvailableInventoryNum() != null && item.getSharedAvailableInventoryNum() > 0){
item.setSharedInventoryOccupancyNum(item.getSharedAvailableInventoryNum()); item.setSharedInventoryOccupancyNum(item.getSharedAvailableInventoryNum());
}else { }else {
item.setSharedInventoryOccupancyNum(0); item.setSharedInventoryOccupancyNum(0);

39
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteHistoryServiceImpl.java

@ -1,8 +1,11 @@
package com.ruoyi.purchase.service.impl; package com.ruoyi.purchase.service.impl;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.purchase.domain.PurchaseQuote;
import com.ruoyi.purchase.domain.PurchaseQuoteChild;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.ruoyi.purchase.mapper.PurchaseQuoteHistoryMapper; import com.ruoyi.purchase.mapper.PurchaseQuoteHistoryMapper;
@ -123,4 +126,40 @@ public class PurchaseQuoteHistoryServiceImpl implements IPurchaseQuoteHistorySer
{ {
return purchaseQuoteHistoryMapper.restorePurchaseQuoteHistoryById(purchaseQuoteChildId); return purchaseQuoteHistoryMapper.restorePurchaseQuoteHistoryById(purchaseQuoteChildId);
} }
/**
* 采购报价新增的时候生成采购报价历史数据
*
* */
@Override
public int generatePurchaseQuoteHistory(PurchaseQuote purchaseQuote) {
String loginName = ShiroUtils.getLoginName();
List<PurchaseQuoteChild> purchaseQuoteChildList = purchaseQuote.getPurchaseQuoteChildList();
String supplierQuoteCode = purchaseQuote.getSupplierQuoteCode();
String supplierName = purchaseQuote.getSupplierName();
String auditStatus = purchaseQuote.getAuditStatus();
String purchaseQuoteCode = purchaseQuote.getPurchaseQuoteCode();
List<PurchaseQuoteHistory> purchaseQuoteHistoryChildren = new ArrayList<>();
for (PurchaseQuoteChild purchaseQuoteChild : purchaseQuoteChildList) {
PurchaseQuoteHistory purchaseQuoteHistory = new PurchaseQuoteHistory();
purchaseQuoteHistory.setPurchaseQuoteCode(purchaseQuoteCode);
purchaseQuoteHistory.setMaterialCode(purchaseQuoteChild.getMaterialCode());
purchaseQuoteHistory.setMaterialName(purchaseQuoteChild.getMaterialName());
purchaseQuoteHistory.setMaterialNormb(purchaseQuoteChild.getMaterialNoRmb());
purchaseQuoteHistory.setMaterialRmb(purchaseQuoteChild.getMaterialRmb());
purchaseQuoteHistory.setSupplierCode(supplierQuoteCode);
purchaseQuoteHistory.setSupplierName(supplierName);
purchaseQuoteHistory.setIsLatest("0"); //第一次添加没有值
purchaseQuoteHistory.setAuditStatus(auditStatus);
purchaseQuoteHistory.setCreateBy(loginName);
purchaseQuoteHistory.setCreateTime(DateUtils.getNowDate());
purchaseQuoteHistoryChildren.add(purchaseQuoteHistory);
}
return purchaseQuoteHistoryMapper.insertBatchPurchaseQuoteHistory(purchaseQuoteHistoryChildren);
}
} }

82
ruoyi-admin/src/main/java/com/ruoyi/purchase/service/impl/PurchaseQuoteServiceImpl.java

@ -7,13 +7,16 @@ import com.ruoyi.common.core.domain.entity.SysUser;
import com.ruoyi.common.core.page.PageDomain; import com.ruoyi.common.core.page.PageDomain;
import com.ruoyi.common.core.page.TableSupport; import com.ruoyi.common.core.page.TableSupport;
import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.common.core.redis.RedisCache;
import com.ruoyi.common.exception.BusinessException;
import com.ruoyi.common.service.ICommonService; import com.ruoyi.common.service.ICommonService;
import com.ruoyi.common.utils.DateUtils; import com.ruoyi.common.utils.DateUtils;
import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.ShiroUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.purchase.domain.PurchaseQuoteHistory;
import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo; import com.ruoyi.purchase.domain.Vo.PurchaseQuoteVo;
import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper;
import com.ruoyi.purchase.service.IPurchaseQuoteHistoryService;
import com.ruoyi.system.domain.SysAttach; import com.ruoyi.system.domain.SysAttach;
import com.ruoyi.purchase.domain.PurchaseQuoteChild; import com.ruoyi.purchase.domain.PurchaseQuoteChild;
import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.SysUserMapper;
@ -75,6 +78,10 @@ public class PurchaseQuoteServiceImpl implements IPurchaseQuoteService
@Autowired @Autowired
private IPurchaseQuoteChildService purchaseQuoteChildService; private IPurchaseQuoteChildService purchaseQuoteChildService;
@Autowired
private IPurchaseQuoteHistoryService purchaseQuoteHistoryService;
/** /**
* 查询采购报价单 * 查询采购报价单
* *
@ -202,10 +209,22 @@ public class PurchaseQuoteServiceImpl implements IPurchaseQuoteService
} }
} }
purchaseQuote.setMaterialAmount(String.valueOf(childResult)); purchaseQuote.setMaterialAmount(String.valueOf(childResult));
int result = purchaseQuoteMapper.insertPurchaseQuote(purchaseQuote); int result = purchaseQuoteMapper.insertPurchaseQuote(purchaseQuote);
//新增采购报价历史数据
int insertHistoryResult = purchaseQuoteHistoryService.generatePurchaseQuoteHistory(purchaseQuote);
if (insertHistoryResult <= 0){
throw new BusinessException("新增采购报价历史数据失败");
}
return result; return result;
} }
/** /**
* 修改采购报价单 * 修改采购报价单
* *
@ -438,4 +457,67 @@ public class PurchaseQuoteServiceImpl implements IPurchaseQuoteService
public Object getId(){ public Object getId(){
return redisCache.generateBillNo("CGBJ"); return redisCache.generateBillNo("CGBJ");
} }
/**
* 导入采购报价单
* */
@Override
public String importPurchaseQuote(List<PurchaseQuote> purchaseQuoteList, boolean updateSupport, String operName) {
if (StringUtils.isNull(purchaseQuoteList) || purchaseQuoteList.size() == 0)
{
throw new BusinessException("导入采购报价数据不能为空!");
}
int successNum = 0;
int failureNum = 0;
StringBuilder successMsg = new StringBuilder();
StringBuilder failureMsg = new StringBuilder();
// for (PurchaseQuote purchaseQuote : purchaseQuoteList)
// {
// try
// {
// // 验证是否存在这个用户
// SysUser u = userMapper.selectUserByLoginName(user.getLoginName());
// if (StringUtils.isNull(u))
// {
// user.setPassword(Md5Utils.hash(user.getLoginName() + password));
// user.setCreateBy(operName);
// this.insertUser(user);
// successNum++;
// successMsg.append("<br/>" + successNum + "、账号 " + user.getLoginName() + " 导入成功");
// }
// else if (isUpdateSupport)
// {
// user.setUpdateBy(operName);
// this.updateUser(user);
// successNum++;
// successMsg.append("<br/>" + successNum + "、账号 " + user.getLoginName() + " 更新成功");
// }
// else
// {
// failureNum++;
// failureMsg.append("<br/>" + failureNum + "、账号 " + user.getLoginName() + " 已存在");
// }
// }
// catch (Exception e)
// {
// failureNum++;
// String msg = "<br/>" + failureNum + "、账号 " + user.getLoginName() + " 导入失败:";
// failureMsg.append(msg + e.getMessage());
// log.error(msg, e);
// }
// }
// if (failureNum > 0)
// {
// failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
// throw new BusinessException(failureMsg.toString());
// }
// else
// {
// successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
// }
return successMsg.toString();
}
} }

8
ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteChildMapper.xml

@ -84,6 +84,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectQuoteChildBySupplierCode" parameterType="String" resultMap="PurchaseQuoteChildResult">
<include refid="selectPurchaseQuoteChildVo"/>
where supplier_code = #{supplierCode}
</select>
<insert id="insertPurchaseQuoteChild" parameterType="PurchaseQuoteChild" useGeneratedKeys="true" keyProperty="purchaseQuoteChildId"> <insert id="insertPurchaseQuoteChild" parameterType="PurchaseQuoteChild" useGeneratedKeys="true" keyProperty="purchaseQuoteChildId">
insert into purchase_quote_child insert into purchase_quote_child
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
@ -242,4 +249,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
</mapper> </mapper>

72
ruoyi-admin/src/main/resources/mapper/purchase/PurchaseQuoteHistoryMapper.xml

@ -30,11 +30,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<result property="remark" column="remark" /> <result property="remark" column="remark" />
<result property="useStatus" column="use_status" /> <result property="useStatus" column="use_status" />
<result property="auditStatus" column="audit_status" /> <result property="auditStatus" column="audit_status" />
<result property="isLatest" column=" is_latest"/>
<result property="delFlag" column="del_flag" /> <result property="delFlag" column="del_flag" />
</resultMap> </resultMap>
<sql id="selectPurchaseQuoteHistoryVo"> <sql id="selectPurchaseQuoteHistoryVo">
select purchase_quote_child_id, purchase_quote_code, material_id, material_code, material_name, material_type, processMethod, brand, photoUrl, describe, tax_rate, usd_rate, material_num, material_sole, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, remark, use_status, audit_status, del_flag from purchase_quote_history select purchase_quote_child_id, purchase_quote_code, material_id, material_code, material_name, material_type, processMethod, brand, photoUrl, describe, tax_rate, usd_rate, material_num, material_sole, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, remark, use_status, audit_status, is_latest,del_flag from purchase_quote_history
</sql> </sql>
<select id="selectPurchaseQuoteHistoryList" parameterType="PurchaseQuoteHistory" resultMap="PurchaseQuoteHistoryResult"> <select id="selectPurchaseQuoteHistoryList" parameterType="PurchaseQuoteHistory" resultMap="PurchaseQuoteHistoryResult">
@ -95,6 +96,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="remark != null">remark,</if> <if test="remark != null">remark,</if>
<if test="useStatus != null">use_status,</if> <if test="useStatus != null">use_status,</if>
<if test="auditStatus != null">audit_status,</if> <if test="auditStatus != null">audit_status,</if>
<if test="isLatest != null">is_latest,</if>
<if test="delFlag != null">del_flag,</if> <if test="delFlag != null">del_flag,</if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
@ -122,10 +124,68 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="remark != null">#{remark},</if> <if test="remark != null">#{remark},</if>
<if test="useStatus != null">#{useStatus},</if> <if test="useStatus != null">#{useStatus},</if>
<if test="auditStatus != null">#{auditStatus},</if> <if test="auditStatus != null">#{auditStatus},</if>
<if test="isLatest != null">#{isLatest},</if>
<if test="delFlag != null">#{delFlag},</if> <if test="delFlag != null">#{delFlag},</if>
</trim> </trim>
</insert> </insert>
<insert id="insertBatchPurchaseQuoteHistory" parameterType="java.util.List" useGeneratedKeys="true" keyProperty="purchaseQuoteChildId">
insert into purchase_quote_history (
purchase_quote_code,
material_id,
material_code,
material_name,
tax_rate,
usd_rate,
material_num,
material_sole,
material_rmb,
material_noRmb,
supplier_code,
supplier_name,
create_by,
create_time,
remark,
use_status,
audit_status,
is_latest,
del_flag
) values
<foreach collection="list" item="item" separator=",">
(
#{item.purchaseQuoteCode},
#{item.materialId},
#{item.materialCode},
#{item.materialName},
#{item.taxRate},
#{item.usdRate},
#{item.materialNum},
#{item.materialSole},
#{item.materialRmb},
#{item.materialNormb},
#{item.supplierCode},
#{item.supplierName},
#{item.createBy},
#{item.createTime},
#{item.remark},
#{item.useStatus},
#{item.auditStatus},
#{item.isLatest},
#{item.delFlag}
)
</foreach>
</insert>
<update id="updatePurchaseQuoteHistory" parameterType="PurchaseQuoteHistory"> <update id="updatePurchaseQuoteHistory" parameterType="PurchaseQuoteHistory">
update purchase_quote_history update purchase_quote_history
<trim prefix="SET" suffixOverrides=","> <trim prefix="SET" suffixOverrides=",">
@ -153,6 +213,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="remark != null">remark = #{remark},</if> <if test="remark != null">remark = #{remark},</if>
<if test="useStatus != null">use_status = #{useStatus},</if> <if test="useStatus != null">use_status = #{useStatus},</if>
<if test="auditStatus != null">audit_status = #{auditStatus},</if> <if test="auditStatus != null">audit_status = #{auditStatus},</if>
<if test="isLatest != null">is_latest = #{isLatest},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if> <if test="delFlag != null">del_flag = #{delFlag},</if>
</trim> </trim>
where purchase_quote_child_id = #{purchaseQuoteChildId} where purchase_quote_child_id = #{purchaseQuoteChildId}
@ -177,4 +238,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
update purchase_quote_history set del_flag = '0' where purchase_quote_child_id = #{purchaseQuoteChildId} update purchase_quote_history set del_flag = '0' where purchase_quote_child_id = #{purchaseQuoteChildId}
</update> </update>
<select id="findLatestPurchaseQuoteHistory" parameterType="String" resultMap="PurchaseQuoteHistoryResult" >
<include refid="selectPurchaseQuoteHistoryVo"/>
where purchase_quote_code = #{purchaseQuoteCode} and material_code = #{materialCode} and audit_status = '1'
order by update_time desc
limit 1
</select>
</mapper> </mapper>

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

@ -267,6 +267,10 @@ animation-fill-mode: none;
var prefix = ctx + "purchase/purchasePlan" var prefix = ctx + "purchase/purchasePlan"
// 全局变量存储 supplierCode
var selectedSupplierCode = '';
$("#form-addPurchaseOrder-addTwo").validate({focusCleanup: true}); $("#form-addPurchaseOrder-addTwo").validate({focusCleanup: true});
$("input[name='planDeliveryTime']").datetimepicker({ $("input[name='planDeliveryTime']").datetimepicker({
@ -303,6 +307,15 @@ animation-fill-mode: none;
$('#supplierCode').val(supplierCode); $('#supplierCode').val(supplierCode);
$('#supplierName').val(supplierName); $('#supplierName').val(supplierName);
// 存储 supplierCode 到全局变量
selectedSupplierCode = supplierCode;
// 切换到第二步前,刷新 bootstrap-table
$('#selectMaterial-bootstrap-table').bootstrapTable('refresh', {
url: prefix + "/selectMaterialTwoList",
queryParams: queryParamsTwo
});
// 切换到第二步 // 切换到第二步
$('#smartwizard').smartWizard("next"); $('#smartwizard').smartWizard("next");
}); });
@ -513,7 +526,6 @@ animation-fill-mode: none;
$(function() { $(function() {
var options = { var options = {
id: "selectMaterial-bootstrap-table", id: "selectMaterial-bootstrap-table",
url: prefix + "/selectMaterialTwoList",
queryParams: queryParamsTwo, queryParams: queryParamsTwo,
showSearch: false, showSearch: false,
showRefresh: false, showRefresh: false,
@ -720,11 +732,11 @@ animation-fill-mode: none;
function queryParamsTwo(params) { function queryParamsTwo(params) {
var curParams = { var curParams = {
purchasePlanCode : $("#purchasePlanCodes").val() purchasePlanCode: $("#purchasePlanCodes").val(),
supplierCode: selectedSupplierCode // 使用全局变量
}; };
return curParams return curParams;
} }

6
ruoyi-admin/src/main/resources/templates/purchase/purchaseQuote/purchaseQuote.html

@ -69,9 +69,9 @@
<a class="btn btn-success" onclick="$.table.exportExcel()" shiro:hasPermission="purchase:purchaseQuote:export"> <a class="btn btn-success" onclick="$.table.exportExcel()" shiro:hasPermission="purchase:purchaseQuote:export">
<i class="fa fa-download"></i> 导出 <i class="fa fa-download"></i> 导出
</a> </a>
<a class="btn btn-success" onclick="$.table.importExcel()" shiro:hasPermission="purchase:purchaseQuote:import"> <!-- <a class="btn btn-success" onclick="$.table.importExcel()" shiro:hasPermission="purchase:purchaseQuote:import">-->
<i class="fa fa-upload"></i> 导入 <!-- <i class="fa fa-upload"></i> 导入-->
</a> <!-- </a>-->
</div> </div>
<div class="col-sm-12 select-table table-striped"> <div class="col-sm-12 select-table table-striped">

Loading…
Cancel
Save