Browse Source

[feat] 售后管理

按照万材要求,基础资料员工领料单新增导出功能,支持部分行和全部行导出,导出更多数据
新增导出所有和选择导出后端接口
新增 导出基础资料员工领料单明细方法
新增根据基础资料员工领料单集合方法
新增导出基础资料员工领料单明细
修复,员工领料单分页查询多余的异常抛出问题
dev
liuxiaoxu 2 days ago
parent
commit
aac5fa781b
  1. 15
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/BaseEmpRequisiteOrderController.java
  2. 96
      ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportBaseEmpRequisiteOrderVO.java
  3. 5
      ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseEmpRequisiteOrderChildMapper.java
  4. 13
      ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseEmpRequisiteOrderService.java
  5. 68
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseEmpRequisiteOrderServiceImpl.java
  6. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseExpenseAccountServiceImpl.java
  7. 8
      ruoyi-admin/src/main/resources/mapper/system/BaseEmpRequisiteOrderChildMapper.xml

15
ruoyi-admin/src/main/java/com/ruoyi/system/controller/BaseEmpRequisiteOrderController.java

@ -13,6 +13,7 @@ import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.system.domain.OutsourceQuoteChild;
import com.ruoyi.system.domain.Vo.BaseEmpRequisiteOrderVO;
import com.ruoyi.system.domain.Vo.BaseRequisitioningOrderVo;
import com.ruoyi.system.domain.Vo.ExportBaseEmpRequisiteOrderVO;
import com.ruoyi.system.domain.Vo.OutsourceQuoteVO;
import com.ruoyi.system.mapper.BaseEmpRequisiteOrderMapper;
import com.ruoyi.system.service.IBaseExpenseAccountService;
@ -91,7 +92,7 @@ public class BaseEmpRequisiteOrderController extends BaseController
@RequiresPermissions("system:empRequisiteOrder:list")
@PostMapping("/list")
@ResponseBody
public TableDataInfo list(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO) throws Exception {
public TableDataInfo list(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO){
startPage();
List<BaseEmpRequisiteOrderVO> list = baseEmpRequisiteOrderService.selectBaseEmpRequisiteOrderList(baseEmpRequisiteOrderVO);
return getDataTable(list);
@ -107,14 +108,16 @@ public class BaseEmpRequisiteOrderController extends BaseController
public AjaxResult export(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO,String ids)
{
if (StringUtils.isEmpty(ids)){
List<BaseEmpRequisiteOrderVO> requisiteOrderVOS = empRequisiteOrderMapper.selectBaseEmpRequisiteOrderList(baseEmpRequisiteOrderVO);
ExcelUtil<BaseEmpRequisiteOrderVO> util = new ExcelUtil<BaseEmpRequisiteOrderVO>(BaseEmpRequisiteOrderVO.class);
List<BaseEmpRequisiteOrderVO> list = baseEmpRequisiteOrderService.selectBaseEmpRequisiteOrderListByObject(baseEmpRequisiteOrderVO);
List<ExportBaseEmpRequisiteOrderVO> requisiteOrderVOS = baseEmpRequisiteOrderService.exportBaseEmpRequisiteOrderList(list);
ExcelUtil<ExportBaseEmpRequisiteOrderVO> util = new ExcelUtil<ExportBaseEmpRequisiteOrderVO>(ExportBaseEmpRequisiteOrderVO.class);
return util.exportExcel(requisiteOrderVOS, "员工领料单数据");
}else {
String[] requisiteIds = ids.split(",");
List<BaseEmpRequisiteOrderVO> requisiteOrderVOS = empRequisiteOrderMapper.selectBaseEmpRequisiteOrderByIds(requisiteIds);
ExcelUtil<BaseEmpRequisiteOrderVO> util = new ExcelUtil<BaseEmpRequisiteOrderVO>(BaseEmpRequisiteOrderVO.class);
return util.exportExcel(requisiteOrderVOS, ids);
List<BaseEmpRequisiteOrderVO> list = empRequisiteOrderMapper.selectBaseEmpRequisiteOrderByIds(requisiteIds);
List<ExportBaseEmpRequisiteOrderVO> requisiteOrderVOS = baseEmpRequisiteOrderService.exportBaseEmpRequisiteOrderList(list);
ExcelUtil<ExportBaseEmpRequisiteOrderVO> util = new ExcelUtil<ExportBaseEmpRequisiteOrderVO>(ExportBaseEmpRequisiteOrderVO.class);
return util.exportExcel(requisiteOrderVOS, "员工领料单数据");
}
}

96
ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportBaseEmpRequisiteOrderVO.java

@ -0,0 +1,96 @@
package com.ruoyi.system.domain.Vo;
import com.ruoyi.common.annotation.Excel;
import lombok.Data;
import java.math.BigDecimal;
/**
* 导出员工领料单明细
* */
@Data
public class ExportBaseEmpRequisiteOrderVO {
/** 领料单编号 */
@Excel(name = "领料单编号")
private String requisitieCode;
/** 关联销售订单号 */
@Excel(name = "关联销售订单号")
private String correlationCode;
/** 领料状态 */
@Excel(name = "领料状态",dictType = "pickStatus")
private String requisitieStatus;
/** 物料合计 */
@Excel(name = "物料合计")
private Long materialAmount;
/** 数量总计 */
@Excel(name = "数量总计")
private Long materialSum;
/** 不含税总价(RMB) */
@Excel(name = "不含税总价(RMB)")
private BigDecimal noRmbSum;
/** 含税总价(RMB) */
@Excel(name = "含税总价(RMB)")
private BigDecimal rmbSum;
/** 申请人 */
@Excel(name = "申请人")
private String applyUser;
/** 审核状态 */
@Excel(name = "审核状态",dictType = "auditStatus")
private String auditStatus;
/** 料号 */
@Excel(name = "料号")
private String materialCode;
/** 物料的名称 */
@Excel(name = "物料的名称")
private String materialName;
/** 物料的型号 */
@Excel(name = "物料的型号")
private String materialModel;
/** 物料的品牌 */
@Excel(name = "物料的品牌")
private String brand;
/** 物料的描述 */
@Excel(name = "物料的描述")
private String describe;
/** 物料的数量 */
@Excel(name = "物料的数量")
private Integer materialNum;
/** 物料的不含税单价(RMB) */
@Excel(name = "物料的不含税单价(RMB)")
private BigDecimal materialRmb;
/** 物料的含税单价(RMB) */
@Excel(name = "物料的含税单价(RMB)")
private BigDecimal materialNoRmb;
/** 物料的含税总价(RMB) */
@Excel(name = "物料的含税总价(RMB)")
private BigDecimal materialNoRmbSum;
/** 物料的不含税总价(RMB) */
@Excel(name = "物料的不含税总价(RMB)")
private BigDecimal materialRmbSum;
}

5
ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseEmpRequisiteOrderChildMapper.java

@ -90,4 +90,9 @@ public interface BaseEmpRequisiteOrderChildMapper
* 检查领料单子表是否引用了物料
* */
int checkMaterialIsReferencedByRequisiteOrderChild(String materialNo);
/**
* 根据领料单号查询领料单子表
* */
List<BaseEmpRequisiteOrderChild> selectBaseEmpRequisiteOrderChildByCodeList(List<String> collectRequisitieCodes);
}

13
ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseEmpRequisiteOrderService.java

@ -5,6 +5,7 @@ import java.util.List;
import com.ruoyi.erp.domain.ErpMaterialVo;
import com.ruoyi.system.domain.BaseEmpRequisiteOrder;
import com.ruoyi.system.domain.Vo.BaseEmpRequisiteOrderVO;
import com.ruoyi.system.domain.Vo.ExportBaseEmpRequisiteOrderVO;
import com.ruoyi.system.domain.Vo.OutsourceQuoteVO;
import org.activiti.engine.runtime.ProcessInstance;
@ -30,7 +31,7 @@ public interface IBaseEmpRequisiteOrderService
* @param baseEmpRequisiteOrderVO 员工领料单
* @return 员工领料单集合
*/
public List<BaseEmpRequisiteOrderVO> selectBaseEmpRequisiteOrderList(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO) throws Exception;
public List<BaseEmpRequisiteOrderVO> selectBaseEmpRequisiteOrderList(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO);
/**
* 新增员工领料单
@ -95,4 +96,14 @@ public interface IBaseEmpRequisiteOrderService
//审批拒绝后更新领料单详情和库存信息
int updateUnApprovedInfo(BaseEmpRequisiteOrderVO requisiteOrderVO);
/**
* 导出领料单明细
* */
List<ExportBaseEmpRequisiteOrderVO> exportBaseEmpRequisiteOrderList(List<BaseEmpRequisiteOrderVO> list);
/**
* 通过领料单对象查询领料单
* */
List<BaseEmpRequisiteOrderVO> selectBaseEmpRequisiteOrderListByObject(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO);
}

68
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseEmpRequisiteOrderServiceImpl.java

@ -3,6 +3,7 @@ package com.ruoyi.system.service.impl;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*;
import java.util.function.Function;
import java.util.stream.Collectors;
import com.github.pagehelper.Page;
@ -22,6 +23,7 @@ import com.ruoyi.process.general.service.IProcessService;
import com.ruoyi.process.todoitem.mapper.BizTodoItemMapper;
import com.ruoyi.system.domain.*;
import com.ruoyi.system.domain.Vo.BaseEmpRequisiteOrderVO;
import com.ruoyi.system.domain.Vo.ExportBaseEmpRequisiteOrderVO;
import com.ruoyi.system.mapper.BaseEmpRequisiteOrderChildMapper;
import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.IBaseExpenseAccountService;
@ -120,7 +122,7 @@ public class BaseEmpRequisiteOrderServiceImpl implements IBaseEmpRequisiteOrderS
* @return 员工领料单
*/
@Override
public List<BaseEmpRequisiteOrderVO> selectBaseEmpRequisiteOrderList(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO) throws Exception {
public List<BaseEmpRequisiteOrderVO> selectBaseEmpRequisiteOrderList(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO) {
SysUser curUser = ShiroUtils.getSysUser();
Long userId = curUser.getUserId();
Set<String> roleKeys = roleService.selectRoleKeys(userId);
@ -201,6 +203,14 @@ public class BaseEmpRequisiteOrderServiceImpl implements IBaseEmpRequisiteOrderS
return returnList;
}
/**
* 通过领料单对象查询领料单
* */
@Override
public List<BaseEmpRequisiteOrderVO> selectBaseEmpRequisiteOrderListByObject(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO) {
return baseEmpRequisiteOrderMapper.selectBaseEmpRequisiteOrderList(baseEmpRequisiteOrderVO);
}
/**
* 新增员工领料单
*
@ -611,4 +621,60 @@ public class BaseEmpRequisiteOrderServiceImpl implements IBaseEmpRequisiteOrderS
return updateResult;
}
/**
* 导出领料单明细
* */
@Override
public List<ExportBaseEmpRequisiteOrderVO> exportBaseEmpRequisiteOrderList(List<BaseEmpRequisiteOrderVO> list) {
// 获取所有的领料单编号
List<String> collectRequisitieCodes = list.stream()
.map(BaseEmpRequisiteOrderVO::getRequisitieCode)
.collect(Collectors.toList());
// 根据领料单编号查询对应的物料详情列表
List<BaseEmpRequisiteOrderChild> baseEmpRequisiteOrderChildList = baseEmpRequisiteOrderChildMapper.selectBaseEmpRequisiteOrderChildByCodeList(collectRequisitieCodes);
// 创建一个 BaseEmpRequisiteOrderVO 的 Map,键为领料单编号
Map<String, BaseEmpRequisiteOrderVO> baseEmpRequisiteOrderVOMap = list.stream()
.collect(Collectors.toMap(BaseEmpRequisiteOrderVO::getRequisitieCode, Function.identity(), (existing, replacement) -> existing));
// 初始化导出列表
List<ExportBaseEmpRequisiteOrderVO> exportBaseEmpRequisiteOrderVOS = new ArrayList<>();
for (BaseEmpRequisiteOrderChild child : baseEmpRequisiteOrderChildList) {
ExportBaseEmpRequisiteOrderVO exportVo = new ExportBaseEmpRequisiteOrderVO();
// 从 BaseEmpRequisiteOrderChild 填充数据
exportVo.setMaterialCode(child.getMaterialCode());
exportVo.setMaterialName(child.getMaterialName());
exportVo.setMaterialModel(child.getMaterialModel());
exportVo.setBrand(child.getBrand());
exportVo.setDescribe(child.getDescribe());
exportVo.setMaterialNum(child.getMaterialNum());
exportVo.setMaterialRmb(child.getMaterialRmb());
exportVo.setMaterialNoRmb(child.getMaterialNoRmb());
exportVo.setMaterialNoRmbSum(child.getMaterialNoRmbSum());
exportVo.setMaterialRmbSum(child.getMaterialRmbSum());
// 从 BaseEmpRequisiteOrderVO 填充数据,通过领料单编号进行关联
BaseEmpRequisiteOrderVO order = baseEmpRequisiteOrderVOMap.get(child.getQuoteId());
if (order != null) {
exportVo.setRequisitieCode(order.getRequisitieCode());
exportVo.setCorrelationCode(order.getCorrelationCode());
exportVo.setRequisitieStatus(order.getRequisitieStatus());
exportVo.setMaterialAmount(order.getMaterialAmount());
exportVo.setMaterialSum(order.getMaterialSum());
exportVo.setNoRmbSum(order.getNoRmbSum());
exportVo.setRmbSum(order.getRmbSum());
exportVo.setApplyUser(order.getApplyUser());
exportVo.setAuditStatus(order.getAuditStatus());
}
// 添加到结果列表
exportBaseEmpRequisiteOrderVOS.add(exportVo);
}
return exportBaseEmpRequisiteOrderVOS;
}
}

2
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseExpenseAccountServiceImpl.java

@ -532,7 +532,7 @@ public class BaseExpenseAccountServiceImpl implements IBaseExpenseAccountService
// 获取当前登录名下可看用户列表
@Override
public Set<String> userLimitedList(Set<String> roleKeys, SysUser curUser){
public Set<String> userLimitedList(Set<String> roleKeys, SysUser curUser) {
List<SysUser> sysUserlist = sysUserService.selectUserAll();

8
ruoyi-admin/src/main/resources/mapper/system/BaseEmpRequisiteOrderChildMapper.xml

@ -84,6 +84,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
select count(1) from base_emp_requisite_order_child where material_code = #{materialCode}
</select>
<select id="selectBaseEmpRequisiteOrderChildByCodeList" parameterType="String" resultMap="BaseEmpRequisiteOrderChildResult">
<include refid="selectBaseEmpRequisiteOrderChildVo"/>
where quote_id in
<foreach collection="list" index="index" item="quoteId" open="(" separator="," close=")">
#{quoteId}
</foreach>
</select>
<insert id="insertBaseEmpRequisiteOrderChild" parameterType="BaseEmpRequisiteOrderChild" useGeneratedKeys="true" keyProperty="requisitioningChildId">
insert into base_emp_requisite_order_child
<trim prefix="(" suffix=")" suffixOverrides=",">

Loading…
Cancel
Save