Browse Source

[feat] 委外管理

按照万材要求,委外管理委外报价新增导出功能,支持部分行和全部行导出,导出更多数据
新增导出所有和选择导出后端接口
新增 导出委外管理委外报价明细方法
新增导出委外报价明细实体类
dev
liuxiaoxu 5 days ago
parent
commit
a591dacd47
  1. 19
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceQuoteController.java
  2. 76
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceQuoteVO.java
  3. 10
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceQuoteMapper.java
  4. 10
      ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceQuoteService.java
  5. 66
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceQuoteServiceImpl.java
  6. 19
      ruoyi-admin/src/main/resources/mapper/system/OutsourceQuoteMapper.xml

19
ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceQuoteController.java

@ -8,6 +8,7 @@ import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.system.domain.OutsourceQuote; import com.ruoyi.system.domain.OutsourceQuote;
import com.ruoyi.system.domain.OutsourceQuoteChild; import com.ruoyi.system.domain.OutsourceQuoteChild;
import com.ruoyi.system.domain.Vo.ExportOutsourceQuoteVO;
import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; import com.ruoyi.system.domain.Vo.OutsourceQuoteVO;
import com.ruoyi.system.mapper.OutsourceQuoteMapper; import com.ruoyi.system.mapper.OutsourceQuoteMapper;
import com.ruoyi.system.service.IOutsourceProcessService; import com.ruoyi.system.service.IOutsourceProcessService;
@ -100,14 +101,20 @@ public class OutsourceQuoteController extends BaseController
public AjaxResult export(OutsourceQuoteVO outsourceQuoteVO, String ids) { public AjaxResult export(OutsourceQuoteVO outsourceQuoteVO, String ids) {
if (StringUtils.isEmpty(ids)){ if (StringUtils.isEmpty(ids)){
List<OutsourceQuoteChild> quoteChildren = outsourceQuoteMapper.selectOutsourceQuoteChildList();
ExcelUtil<OutsourceQuoteChild> util = new ExcelUtil<OutsourceQuoteChild>(OutsourceQuoteChild.class); List<OutsourceQuoteVO> list = outsourceQuoteService.selectOutsourceQuoteList(outsourceQuoteVO);
return util.exportExcel(quoteChildren, "委外报价数据"); List<ExportOutsourceQuoteVO> exportOutsourceQuoteVOs = outsourceQuoteService.exportOutsourceQuoteList(list);
ExcelUtil<ExportOutsourceQuoteVO> util = new ExcelUtil<ExportOutsourceQuoteVO>(ExportOutsourceQuoteVO.class);
return util.exportExcel(exportOutsourceQuoteVOs, "委外报价数据");
}else { }else {
String[] quoteCodes = ids.split(","); String[] quoteCodes = ids.split(",");
List<OutsourceQuoteChild> quoteChildren = outsourceQuoteMapper.selectOutsourceQuoteChildByCodes(quoteCodes); List<OutsourceQuoteVO> list = outsourceQuoteService.selectOutsourceQuoteListByCodes(quoteCodes);
ExcelUtil<OutsourceQuoteChild> util = new ExcelUtil<OutsourceQuoteChild>(OutsourceQuoteChild.class); List<ExportOutsourceQuoteVO> exportOutsourceQuoteVOs = outsourceQuoteService.exportOutsourceQuoteList(list);
return util.exportExcel(quoteChildren, ids);
ExcelUtil<ExportOutsourceQuoteVO> util = new ExcelUtil<ExportOutsourceQuoteVO>(ExportOutsourceQuoteVO.class);
return util.exportExcel(exportOutsourceQuoteVOs, "委外报价数据");
} }
} }
/** /**

76
ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceQuoteVO.java

@ -0,0 +1,76 @@
package com.ruoyi.system.domain.Vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
/**
* 导出委外报价明细
* */
@Data
public class ExportOutsourceQuoteVO {
/** 委外报价单号 */
@Excel(name = "委外报价单号",sort = 1)
private String outsourceQuoteCode;
/** 供应商编号 */
@Excel(name = "供应商ID",sort = 2)
private String supplierQuoteCode;
/** 供应商名称 */
@Excel(name = "供应商名称",sort = 3)
private String supplierName;
/** 工序合计 */
@Excel(name = "工序合计",sort = 4)
private int processAmount;
/** 税率 */
// @Excel(name = "税率")
private BigDecimal taxRate;
/** 定价日期 */
@Excel(name = "定价日期",dateFormat = "yyyy-MM-dd",sort = 5)
@JsonFormat(pattern = "yyyy-MM-dd")
private String pricingDate;
/** 审核状态 */
@Excel(name = "审核状态",sort = 8,dictType = "auditStatus")
private String auditStatus;
/** 委外工序ID */
@Excel(name = "委外工序ID",sort = 4)
private String outsourceProcessCode;
/** 委外工序编号 */
@Excel(name = "委外工序编号",sort = 5)
private String outsourceProcessNo;
/** 委外工序名称 */
@Excel(name = "委外工序名称",sort = 6)
private String outsourceProcessName;
/** 工序的不含税单价(RMB) */
@Excel(name = "工序的含税单价(RMB) ",sort = 10)
private BigDecimal materialRmb;
/** 工序的含税单价(RMB) */
@Excel(name = "工序的不含税单价(RMB)",sort = 9)
private BigDecimal materialNormb;
/** 供应商编号 */
@Excel(name = "供应商编号",sort = 2)
private String supplierCode;
/** 计价单位 */
@Excel(name = "计价单位",sort = 8,dictType = "outsource_quote_unit")
private String chargeUnit;
}

10
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceQuoteMapper.java

@ -115,4 +115,14 @@ public interface OutsourceQuoteMapper
public List<OutsourceQuoteChild> selectQuoteChildListByProcessNo(String outsourceProcessNo); public List<OutsourceQuoteChild> selectQuoteChildListByProcessNo(String outsourceProcessNo);
public List<OutsourceQuoteChild> selectOutsourceQuoteChildByCodes(String[] outsourceQuoteCodes); public List<OutsourceQuoteChild> selectOutsourceQuoteChildByCodes(String[] outsourceQuoteCodes);
/**
* 通过委外报价单号查询委外报价工序信息
* */
List<OutsourceQuoteChild> selectOutsourceQuoteChildListByCodeList(List<String> collectOutsourceQuoteCodes);
/**
* 通过委外报价单号查询委外报价信息
* */
List<OutsourceQuoteVO> selectOutsourceQuoteListByCodes(String[] quoteCodes);
} }

10
ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceQuoteService.java

@ -2,6 +2,7 @@ package com.ruoyi.system.service;
import com.ruoyi.aftersales.domain.AftersalesOrder; import com.ruoyi.aftersales.domain.AftersalesOrder;
import com.ruoyi.system.domain.OutsourceQuote; import com.ruoyi.system.domain.OutsourceQuote;
import com.ruoyi.system.domain.Vo.ExportOutsourceQuoteVO;
import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; import com.ruoyi.system.domain.Vo.OutsourceQuoteVO;
import org.activiti.engine.runtime.ProcessInstance; import org.activiti.engine.runtime.ProcessInstance;
@ -86,4 +87,13 @@ public interface IOutsourceQuoteService
// 更新审核后信息 // 更新审核后信息
public int updateAuditOutsourceQuote(OutsourceQuoteVO outsourceQuoteVO); public int updateAuditOutsourceQuote(OutsourceQuoteVO outsourceQuoteVO);
/**
* 导出委外报价明细
* */
List<ExportOutsourceQuoteVO> exportOutsourceQuoteList(List<OutsourceQuoteVO> list);
/**
* 根据报价单编号查询所有报价单信息
* */
List<OutsourceQuoteVO> selectOutsourceQuoteListByCodes(String[] quoteCodes);
} }

66
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceQuoteServiceImpl.java

@ -1,9 +1,8 @@
package com.ruoyi.system.service.impl; package com.ruoyi.system.service.impl;
import java.util.HashMap; import java.util.*;
import java.util.List; import java.util.function.Function;
import java.util.Map; import java.util.stream.Collectors;
import java.util.Set;
import com.github.pagehelper.Page; import com.github.pagehelper.Page;
import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.core.domain.entity.SysUser;
@ -18,6 +17,7 @@ import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper; import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper;
import com.ruoyi.system.domain.OutsourceQuote; import com.ruoyi.system.domain.OutsourceQuote;
import com.ruoyi.system.domain.OutsourceQuoteChild; import com.ruoyi.system.domain.OutsourceQuoteChild;
import com.ruoyi.system.domain.Vo.ExportOutsourceQuoteVO;
import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; import com.ruoyi.system.domain.Vo.OutsourceQuoteVO;
import com.ruoyi.system.mapper.OutsourceQuoteMapper; import com.ruoyi.system.mapper.OutsourceQuoteMapper;
import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.mapper.SysUserMapper;
@ -321,6 +321,64 @@ public class OutsourceQuoteServiceImpl implements IOutsourceQuoteService
} }
/**
* 根据报价单编号查询所有报价单信息
* */
@Override
public List<OutsourceQuoteVO> selectOutsourceQuoteListByCodes(String[] quoteCodes) {
return outsourceQuoteMapper.selectOutsourceQuoteListByCodes(quoteCodes);
}
/**
* 导出委外报价明细
* */
@Override
public List<ExportOutsourceQuoteVO> exportOutsourceQuoteList(List<OutsourceQuoteVO> list) {
// 获取所有的委外报价单号
List<String> collectOutsourceQuoteCodes = list.stream().map(OutsourceQuoteVO::getOutsourceQuoteCode).collect(Collectors.toList());
// 根据委外报价单号查询对应的子项列表
List<OutsourceQuoteChild> outsourceQuoteChildren = outsourceQuoteMapper.selectOutsourceQuoteChildListByCodeList(collectOutsourceQuoteCodes);
// 创建一个委外报价单VO的Map,键为委外报价单号
Map<String, OutsourceQuoteVO> outsourceQuoteVOMap = list.stream()
.collect(Collectors.toMap(OutsourceQuoteVO::getOutsourceQuoteCode, Function.identity()));
// 初始化导出列表
List<ExportOutsourceQuoteVO> exportOutsourceQuoteVOS = new ArrayList<>();
for (OutsourceQuoteChild child : outsourceQuoteChildren) {
ExportOutsourceQuoteVO exportVo = new ExportOutsourceQuoteVO();
// 从OutsourceQuoteChild填充数据
exportVo.setOutsourceProcessCode(child.getOutsourceProcessCode());
exportVo.setOutsourceProcessNo(child.getOutsourceProcessNo());
exportVo.setOutsourceProcessName(child.getOutsourceProcessName());
exportVo.setMaterialRmb(child.getMaterialRmb());
exportVo.setMaterialNormb(child.getMaterialNormb());
exportVo.setSupplierCode(child.getSupplierCode());
exportVo.setChargeUnit(child.getChargeUnit());
// 从OutsourceQuoteVO填充数据,通过委外报价单号进行关联
OutsourceQuoteVO quote = outsourceQuoteVOMap.get(child.getOutsourceQuoteCode());
if (quote != null) {
exportVo.setOutsourceQuoteCode(quote.getOutsourceQuoteCode());
exportVo.setSupplierQuoteCode(quote.getSupplierQuoteCode());
exportVo.setSupplierName(quote.getSupplierName());
exportVo.setProcessAmount(quote.getProcessAmount());
exportVo.setTaxRate(quote.getTaxRate());
exportVo.setPricingDate(quote.getPricingDate());
exportVo.setAuditStatus(quote.getAuditStatus());
}
// 添加到结果列表
exportOutsourceQuoteVOS.add(exportVo);
}
return exportOutsourceQuoteVOS;
}
/** /**
* 创建委外报价审核流程 * 创建委外报价审核流程
* @param applyTitle * @param applyTitle

19
ruoyi-admin/src/main/resources/mapper/system/OutsourceQuoteMapper.xml

@ -79,6 +79,14 @@
where outsource_quote_id = #{outsourceQuoteId} where outsource_quote_id = #{outsourceQuoteId}
</select> </select>
<select id="selectOutsourceQuoteListByCodes" parameterType="String" resultMap="OutsourceQuoteOutsourceQuoteChildResult">
<include refid="selectOutsourceQuoteVo"/>
where outsource_quote_code in
<foreach collection="array" item="outsourceQuoteCode" open="(" separator="," close=")">
#{outsourceQuoteCode}
</foreach>
</select>
<select id="selectOutsourceQuoteChildListByCode" resultType="OutsourceQuoteChild" resultMap="OutsourceQuoteChildResult"> <select id="selectOutsourceQuoteChildListByCode" resultType="OutsourceQuoteChild" resultMap="OutsourceQuoteChildResult">
select outsource_quote_child_id, outsource_quote_code, outsource_process_code, outsource_process_no, outsource_process_name, remark, tax_rate, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, audit_status,charge_unit select outsource_quote_child_id, outsource_quote_code, outsource_process_code, outsource_process_no, outsource_process_name, remark, tax_rate, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, audit_status,charge_unit
from outsource_quote_child from outsource_quote_child
@ -86,11 +94,13 @@
order by audit_status asc, create_time desc order by audit_status asc, create_time desc
</select> </select>
<select id="selectOutsourceQuoteChildList" resultType="OutsourceQuoteChild" resultMap="OutsourceQuoteChildResult"> <select id="selectOutsourceQuoteChildList" resultType="OutsourceQuoteChild" resultMap="OutsourceQuoteChildResult">
select outsource_quote_child_id, outsource_quote_code, outsource_process_code, outsource_process_no, outsource_process_name, remark, tax_rate, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, audit_status,charge_unit select outsource_quote_child_id, outsource_quote_code, outsource_process_code, outsource_process_no, outsource_process_name, remark, tax_rate, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, audit_status,charge_unit
from outsource_quote_child from outsource_quote_child
</select> </select>
<insert id="insertOutsourceQuote" parameterType="OutsourceQuoteVO" useGeneratedKeys="true" keyProperty="outsourceQuoteId"> <insert id="insertOutsourceQuote" parameterType="OutsourceQuoteVO" useGeneratedKeys="true" keyProperty="outsourceQuoteId">
insert into outsource_quote insert into outsource_quote
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
@ -223,4 +233,13 @@
#{OutsourceQuoteCode} #{OutsourceQuoteCode}
</foreach> </foreach>
</select> </select>
<select id="selectOutsourceQuoteChildListByCodeList" parameterType="String" resultMap="OutsourceQuoteChildResult">
select outsource_quote_child_id, outsource_quote_code, outsource_process_code, outsource_process_no, outsource_process_name, remark, tax_rate, material_rmb, material_noRmb, supplier_code, supplier_name, create_by, create_time, update_by, update_time, audit_status,charge_unit from outsource_quote_child
where outsource_quote_code in
<foreach item="outsourceQuoteCode" index="index" collection="list" open="(" separator="," close=")">
#{outsourceQuoteCode}
</foreach>
</select>
</mapper> </mapper>
Loading…
Cancel
Save