Browse Source

[feat] 委外管理

按照万材要求,委外管理委外领料新增导出功能,支持部分行和全部行导出,导出更多数据
新增导出所有和选择导出后端接口
新增 导出委外管理委外领料明细方法
新增导出委外领料明细实体类
dev
liuxiaoxu 3 days ago
parent
commit
d26dc62a85
  1. 16
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceRequisitionController.java
  2. 78
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceRequisitionVo.java
  3. 10
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceRequisitionMapper.java
  4. 11
      ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceRequisitionService.java
  5. 62
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceRequisitionServiceImpl.java
  6. 21
      ruoyi-admin/src/main/resources/mapper/system/OutsourceRequisitionMapper.xml

16
ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceRequisitionController.java

@ -6,6 +6,7 @@ import java.util.List;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.Vo.ExportOutsourceRequisitionVo;
import com.ruoyi.system.domain.Vo.OutsourceOrderVO;
import com.ruoyi.system.domain.Vo.OutsourceQuoteVO;
import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO;
@ -100,15 +101,16 @@ public class OutsourceRequisitionController extends BaseController
public AjaxResult export(OutsourceRequisitionVO outsourceRequisitionVO, String ids) {
if (StringUtils.isEmpty(ids)){
OutsourceRequisitionDetail detail = new OutsourceRequisitionDetail();
List<OutsourceRequisitionDetail> requisitionDetails = outsourceRequisitionMapper.selectRequisitionDetailByNo(detail);
ExcelUtil<OutsourceRequisitionDetail> util = new ExcelUtil<OutsourceRequisitionDetail>(OutsourceRequisitionDetail.class);
return util.exportExcel(requisitionDetails, "委外领料数据");
List<OutsourceRequisitionVO> list = outsourceRequisitionService.selectOutsourceRequisitionList(outsourceRequisitionVO);
List<ExportOutsourceRequisitionVo> exportOutsourceRequisitionVos = outsourceRequisitionService.exportOutsourceRequisitionList(list);
ExcelUtil<ExportOutsourceRequisitionVo> util = new ExcelUtil<ExportOutsourceRequisitionVo>(ExportOutsourceRequisitionVo.class);
return util.exportExcel(exportOutsourceRequisitionVos, "委外领料数据");
}else {
String[] requisitionCodes = ids.split(",");
List<OutsourceRequisitionDetail> requisitionDetails = outsourceRequisitionMapper.selectOutsourceRequisitionDetailByCodes(requisitionCodes);
ExcelUtil<OutsourceRequisitionDetail> util = new ExcelUtil<OutsourceRequisitionDetail>(OutsourceRequisitionDetail.class);
return util.exportExcel(requisitionDetails, ids);
List<OutsourceRequisitionVO> list = outsourceRequisitionService.selectOutsourceRequisitionListByCodes(requisitionCodes);
List<ExportOutsourceRequisitionVo> exportOutsourceRequisitionVos = outsourceRequisitionService.exportOutsourceRequisitionList(list);
ExcelUtil<ExportOutsourceRequisitionVo> util = new ExcelUtil<ExportOutsourceRequisitionVo>(ExportOutsourceRequisitionVo.class);
return util.exportExcel(exportOutsourceRequisitionVos, "委外领料数据");
}
}

78
ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceRequisitionVo.java

@ -0,0 +1,78 @@
package com.ruoyi.system.domain.Vo;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ExportOutsourceRequisitionVo {
/** 委外领料编号 */
@Excel(name = "委外领料编号")
private String outsourceRequisitionNo;
/** 委外订单编号 */
@Excel(name = "委外订单编号")
private String outsourceOrderNo;
/** 领料员 */
@Excel(name = "领料员")
private String requisitionPerson;
/** 物料合计 */
@Excel(name = "物料合计")
private int materialAmount;
/** 数量总计 */
@Excel(name = "数量总计")
private BigDecimal totalAmount;
/** 审核状态 */
@Excel(name = "审核状态",dictType = "auditStatus")
private String auditStatus;
/** 领料状态 */
@Excel(name = "领料状态",dictType = "pickStatus")
private String requisitionStatus;
/** 料号 */
@Excel(name = "料号")
private String materialNo;
/** 物料名称 */
@Excel(name = "物料名称")
private String materialName;
/** 单位 */
@Excel(name = "单位")
private String unit;
/** 描述 */
@Excel(name = "描述")
private String description;
/** 品牌 */
@Excel(name = "品牌")
private String brand;
/** 加工方式 */
@Excel(name = "加工方式",dictType = "processMethod")
private String processMethod;
/** 已委外领料数 */
@Excel(name = "已委外领料数")
private Integer takenMaterial;
/** 本次委外领料数 */
@Excel(name = "本次委外领料数")
private Integer takingMaterial;
/** 可用库存数*/
@Excel(name = "可用库存数")
private Integer stockNum;
}

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

@ -2,6 +2,7 @@ package com.ruoyi.system.mapper;
import com.ruoyi.system.domain.OutsourceRequisition;
import com.ruoyi.system.domain.OutsourceRequisitionDetail;
import com.ruoyi.system.domain.Vo.ExportOutsourceRequisitionVo;
import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO;
import java.util.List;
@ -110,4 +111,13 @@ public interface OutsourceRequisitionMapper
*/
public OutsourceRequisition selectOutsourceRequisitionByNo(String requisitionNo);
/**
* 通过领料单号查询领料详情
* */
List<OutsourceRequisitionDetail> selectOutsourceRequisitionDetailByCodeList(List<String> collectRequisitionNos);
/**
* 根据领料单号数组查询领料详情
* */
List<OutsourceRequisitionVO> selectOutsourceRequisitionListByCodes(String[] requisitionCodes);
}

11
ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceRequisitionService.java

@ -2,6 +2,7 @@ package com.ruoyi.system.service;
import com.ruoyi.system.domain.OutsourceRequisition;
import com.ruoyi.system.domain.OutsourceRequisitionDetail;
import com.ruoyi.system.domain.Vo.ExportOutsourceRequisitionVo;
import com.ruoyi.system.domain.Vo.OutsourceQuoteVO;
import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO;
import org.activiti.engine.runtime.ProcessInstance;
@ -88,4 +89,14 @@ public interface IOutsourceRequisitionService
* 根据委外领料单号查询委外领料
*/
public OutsourceRequisition selectOutsourceRequisitionByNo(String requisitionNo);
/**
* 导出领料单明细
* */
List<ExportOutsourceRequisitionVo> exportOutsourceRequisitionList(List<OutsourceRequisitionVO> list);
/**
* 根据委外领料单号数组查询委外领料
* */
List<OutsourceRequisitionVO> selectOutsourceRequisitionListByCodes(String[] requisitionCodes);
}

62
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceRequisitionServiceImpl.java

@ -1,6 +1,7 @@
package com.ruoyi.system.service.impl;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import com.github.pagehelper.Page;
@ -15,6 +16,7 @@ import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper;
import com.ruoyi.system.domain.OutsourceRequisition;
import com.ruoyi.system.domain.OutsourceRequisitionDetail;
import com.ruoyi.system.domain.Vo.ExportOutsourceRequisitionVo;
import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO;
import com.ruoyi.system.mapper.OutsourceRequisitionMapper;
import com.ruoyi.system.mapper.SysUserMapper;
@ -571,4 +573,64 @@ public class OutsourceRequisitionServiceImpl implements IOutsourceRequisitionSer
public OutsourceRequisition selectOutsourceRequisitionByNo(String requisitionNo){
return outsourceRequisitionMapper.selectOutsourceRequisitionByNo(requisitionNo);
}
/**
* 根据委外领料单号数组查询委外领料
* */
@Override
public List<OutsourceRequisitionVO> selectOutsourceRequisitionListByCodes(String[] requisitionCodes) {
return outsourceRequisitionMapper.selectOutsourceRequisitionListByCodes(requisitionCodes);
}
/**
* 导出领料单明细
* */
@Override
public List<ExportOutsourceRequisitionVo> exportOutsourceRequisitionList(List<OutsourceRequisitionVO> list) {
// 获取所有的委外领料编号
List<String> collectRequisitionNos = list.stream().map(OutsourceRequisitionVO::getOutsourceRequisitionNo).collect(Collectors.toList());
// 根据委外领料编号查询对应的详情列表
List<OutsourceRequisitionDetail> requisitionDetails = outsourceRequisitionMapper.selectOutsourceRequisitionDetailByCodeList(collectRequisitionNos);
// 创建一个委外领料VO的Map,键为委外领料编号
Map<String, OutsourceRequisitionVO> outsourceRequisitionVOMap = list.stream()
.collect(Collectors.toMap(OutsourceRequisitionVO::getOutsourceRequisitionNo, Function.identity()));
// 初始化导出列表
List<ExportOutsourceRequisitionVo> exportOutsourceRequisitionVos = new ArrayList<>();
for (OutsourceRequisitionDetail detail : requisitionDetails) {
ExportOutsourceRequisitionVo exportVo = new ExportOutsourceRequisitionVo();
// 从OutsourceRequisitionDetail填充数据
exportVo.setMaterialNo(detail.getMaterialNo());
exportVo.setMaterialName(detail.getMaterialName());
exportVo.setUnit(detail.getUnit());
exportVo.setDescription(detail.getDescription());
exportVo.setBrand(detail.getBrand());
exportVo.setProcessMethod(detail.getProcessMethod());
exportVo.setTakenMaterial(detail.getTakenMaterial());
exportVo.setTakingMaterial(detail.getTakingMaterial());
exportVo.setStockNum(detail.getStockNum());
// 从OutsourceRequisitionVO填充数据,通过委外领料编号进行关联
OutsourceRequisitionVO requisition = outsourceRequisitionVOMap.get(detail.getOutsourceRequisitionNo());
if (requisition != null) {
exportVo.setOutsourceRequisitionNo(requisition.getOutsourceRequisitionNo());
exportVo.setOutsourceOrderNo(requisition.getOutsourceOrderNo());
exportVo.setRequisitionPerson(requisition.getRequisitionPerson());
exportVo.setMaterialAmount(requisition.getMaterialAmount());
exportVo.setTotalAmount(requisition.getTotalAmount());
exportVo.setAuditStatus(requisition.getAuditStatus());
exportVo.setRequisitionStatus(requisition.getRequisitionStatus());
}
// 添加到结果列表
exportOutsourceRequisitionVos.add(exportVo);
}
return exportOutsourceRequisitionVos;
}
}

21
ruoyi-admin/src/main/resources/mapper/system/OutsourceRequisitionMapper.xml

@ -98,7 +98,24 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</where>
order by audit_status asc, create_time desc
</select>
<select id="selectOutsourceRequisitionDetailByCodeList" parameterType="String" resultMap="OutsourceRequisitionDetailResult">
<include refid="selectOutsourceRequisitionDetail"/>
where outsource_requisition_no in
<foreach collection="list" index="index" item="outsourceRequisitionNo" open="(" separator="," close=")">
#{outsourceRequisitionNo}
</foreach>
</select>
<select id="selectOutsourceRequisitionListByCodes" parameterType="String" resultMap="OutsourceRequisitionResult">
<include refid="selectOutsourceRequisitionVo"/>
where outsource_requisition_no in
<foreach collection="array" item="outsourceRequisitionNo" open="(" separator="," close=")">
#{outsourceRequisitionNo}
</foreach>
</select>
<select id="selectOutsourceRequisitionByOutsourceRequisitionId" parameterType="Long" resultMap="OutsourceRequisitionOutsourceRequisitionDetailResult">
<include refid="selectOutsourceRequisitionVo"/>
where outsource_requisition_id = #{outsourceRequisitionId}
@ -352,4 +369,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
where outsource_requisition_no = #{outsourceRequisitionNo}
</select>
</mapper>
Loading…
Cancel
Save