From aac5fa781b42ae1c0f748a2331689074259a0974 Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Thu, 20 Feb 2025 10:09:05 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E5=94=AE=E5=90=8E=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20=E6=8C=89=E7=85=A7=E4=B8=87=E6=9D=90=E8=A6=81=E6=B1=82?= =?UTF-8?q?=EF=BC=8C=E5=9F=BA=E7=A1=80=E8=B5=84=E6=96=99=E5=91=98=E5=B7=A5?= =?UTF-8?q?=E9=A2=86=E6=96=99=E5=8D=95=E6=96=B0=E5=A2=9E=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=94=AF=E6=8C=81=E9=83=A8=E5=88=86?= =?UTF-8?q?=E8=A1=8C=E5=92=8C=E5=85=A8=E9=83=A8=E8=A1=8C=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=EF=BC=8C=E5=AF=BC=E5=87=BA=E6=9B=B4=E5=A4=9A=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E5=AF=BC=E5=87=BA=E6=89=80=E6=9C=89?= =?UTF-8?q?=E5=92=8C=E9=80=89=E6=8B=A9=E5=AF=BC=E5=87=BA=E5=90=8E=E7=AB=AF?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=20=E6=96=B0=E5=A2=9E=20=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=9F=BA=E7=A1=80=E8=B5=84=E6=96=99=E5=91=98=E5=B7=A5=E9=A2=86?= =?UTF-8?q?=E6=96=99=E5=8D=95=E6=98=8E=E7=BB=86=E6=96=B9=E6=B3=95=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E5=9F=BA=E7=A1=80=E8=B5=84?= =?UTF-8?q?=E6=96=99=E5=91=98=E5=B7=A5=E9=A2=86=E6=96=99=E5=8D=95=E9=9B=86?= =?UTF-8?q?=E5=90=88=E6=96=B9=E6=B3=95=20=E6=96=B0=E5=A2=9E=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E5=9F=BA=E7=A1=80=E8=B5=84=E6=96=99=E5=91=98=E5=B7=A5?= =?UTF-8?q?=E9=A2=86=E6=96=99=E5=8D=95=E6=98=8E=E7=BB=86=20=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=EF=BC=8C=E5=91=98=E5=B7=A5=E9=A2=86=E6=96=99=E5=8D=95?= =?UTF-8?q?=E5=88=86=E9=A1=B5=E6=9F=A5=E8=AF=A2=E5=A4=9A=E4=BD=99=E7=9A=84?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E6=8A=9B=E5=87=BA=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseEmpRequisiteOrderController.java | 15 +-- .../Vo/ExportBaseEmpRequisiteOrderVO.java | 96 +++++++++++++++++++ .../BaseEmpRequisiteOrderChildMapper.java | 5 + .../IBaseEmpRequisiteOrderService.java | 13 ++- .../BaseEmpRequisiteOrderServiceImpl.java | 68 ++++++++++++- .../impl/BaseExpenseAccountServiceImpl.java | 2 +- .../BaseEmpRequisiteOrderChildMapper.xml | 8 ++ 7 files changed, 198 insertions(+), 9 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportBaseEmpRequisiteOrderVO.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/BaseEmpRequisiteOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/BaseEmpRequisiteOrderController.java index 89b18aed..c34b9348 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/BaseEmpRequisiteOrderController.java +++ b/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 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 requisiteOrderVOS = empRequisiteOrderMapper.selectBaseEmpRequisiteOrderList(baseEmpRequisiteOrderVO); - ExcelUtil util = new ExcelUtil(BaseEmpRequisiteOrderVO.class); + List list = baseEmpRequisiteOrderService.selectBaseEmpRequisiteOrderListByObject(baseEmpRequisiteOrderVO); + List requisiteOrderVOS = baseEmpRequisiteOrderService.exportBaseEmpRequisiteOrderList(list); + ExcelUtil util = new ExcelUtil(ExportBaseEmpRequisiteOrderVO.class); return util.exportExcel(requisiteOrderVOS, "员工领料单数据"); }else { String[] requisiteIds = ids.split(","); - List requisiteOrderVOS = empRequisiteOrderMapper.selectBaseEmpRequisiteOrderByIds(requisiteIds); - ExcelUtil util = new ExcelUtil(BaseEmpRequisiteOrderVO.class); - return util.exportExcel(requisiteOrderVOS, ids); + List list = empRequisiteOrderMapper.selectBaseEmpRequisiteOrderByIds(requisiteIds); + List requisiteOrderVOS = baseEmpRequisiteOrderService.exportBaseEmpRequisiteOrderList(list); + ExcelUtil util = new ExcelUtil(ExportBaseEmpRequisiteOrderVO.class); + return util.exportExcel(requisiteOrderVOS, "员工领料单数据"); } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportBaseEmpRequisiteOrderVO.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportBaseEmpRequisiteOrderVO.java new file mode 100644 index 00000000..2032c726 --- /dev/null +++ b/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; + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseEmpRequisiteOrderChildMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseEmpRequisiteOrderChildMapper.java index cf6240af..f00c8298 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseEmpRequisiteOrderChildMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/BaseEmpRequisiteOrderChildMapper.java @@ -90,4 +90,9 @@ public interface BaseEmpRequisiteOrderChildMapper * 检查领料单子表是否引用了物料 * */ int checkMaterialIsReferencedByRequisiteOrderChild(String materialNo); + + /** + * 根据领料单号查询领料单子表 + * */ + List selectBaseEmpRequisiteOrderChildByCodeList(List collectRequisitieCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseEmpRequisiteOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseEmpRequisiteOrderService.java index d92e29cf..e52e2c68 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IBaseEmpRequisiteOrderService.java +++ b/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 selectBaseEmpRequisiteOrderList(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO) throws Exception; + public List selectBaseEmpRequisiteOrderList(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO); /** * 新增员工领料单 @@ -95,4 +96,14 @@ public interface IBaseEmpRequisiteOrderService //审批拒绝后更新领料单详情和库存信息 int updateUnApprovedInfo(BaseEmpRequisiteOrderVO requisiteOrderVO); + + /** + * 导出领料单明细 + * */ + List exportBaseEmpRequisiteOrderList(List list); + + /** + * 通过领料单对象查询领料单 + * */ + List selectBaseEmpRequisiteOrderListByObject(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseEmpRequisiteOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseEmpRequisiteOrderServiceImpl.java index 9ac0ed66..796bd361 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseEmpRequisiteOrderServiceImpl.java +++ b/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 selectBaseEmpRequisiteOrderList(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO) throws Exception { + public List selectBaseEmpRequisiteOrderList(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO) { SysUser curUser = ShiroUtils.getSysUser(); Long userId = curUser.getUserId(); Set roleKeys = roleService.selectRoleKeys(userId); @@ -201,6 +203,14 @@ public class BaseEmpRequisiteOrderServiceImpl implements IBaseEmpRequisiteOrderS return returnList; } + /** + * 通过领料单对象查询领料单 + * */ + @Override + public List selectBaseEmpRequisiteOrderListByObject(BaseEmpRequisiteOrderVO baseEmpRequisiteOrderVO) { + return baseEmpRequisiteOrderMapper.selectBaseEmpRequisiteOrderList(baseEmpRequisiteOrderVO); + } + /** * 新增员工领料单 * @@ -611,4 +621,60 @@ public class BaseEmpRequisiteOrderServiceImpl implements IBaseEmpRequisiteOrderS return updateResult; } + + /** + * 导出领料单明细 + * */ + @Override + public List exportBaseEmpRequisiteOrderList(List list) { + // 获取所有的领料单编号 + List collectRequisitieCodes = list.stream() + .map(BaseEmpRequisiteOrderVO::getRequisitieCode) + .collect(Collectors.toList()); + + // 根据领料单编号查询对应的物料详情列表 + List baseEmpRequisiteOrderChildList = baseEmpRequisiteOrderChildMapper.selectBaseEmpRequisiteOrderChildByCodeList(collectRequisitieCodes); + + // 创建一个 BaseEmpRequisiteOrderVO 的 Map,键为领料单编号 + Map baseEmpRequisiteOrderVOMap = list.stream() + .collect(Collectors.toMap(BaseEmpRequisiteOrderVO::getRequisitieCode, Function.identity(), (existing, replacement) -> existing)); + + // 初始化导出列表 + List 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; + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseExpenseAccountServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseExpenseAccountServiceImpl.java index 89a2ea15..2ecac636 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseExpenseAccountServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/BaseExpenseAccountServiceImpl.java @@ -532,7 +532,7 @@ public class BaseExpenseAccountServiceImpl implements IBaseExpenseAccountService // 获取当前登录名下可看用户列表 @Override - public Set userLimitedList(Set roleKeys, SysUser curUser){ + public Set userLimitedList(Set roleKeys, SysUser curUser) { List sysUserlist = sysUserService.selectUserAll(); diff --git a/ruoyi-admin/src/main/resources/mapper/system/BaseEmpRequisiteOrderChildMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/BaseEmpRequisiteOrderChildMapper.xml index dda866fb..82cf2e08 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/BaseEmpRequisiteOrderChildMapper.xml +++ b/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} + + insert into base_emp_requisite_order_child