From 7711363650e7ad1d2b627e2cb14ef3bffd0e0c3b Mon Sep 17 00:00:00 2001 From: liuxiaoxu <1793812695@qq.com> Date: Mon, 17 Feb 2025 10:29:37 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E5=B7=A5=E7=A8=8B=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=B7=A5=E7=A8=8B=E7=AE=A1=E7=90=86=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8D=95=E9=A2=86=E6=96=99=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E9=83=A8=E5=88=86=E8=A1=8C=E5=92=8C=E5=85=A8=E9=83=A8=E8=A1=8C?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=EF=BC=8C=E5=AF=BC=E5=87=BA=E6=9B=B4=E5=A4=9A?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=20=E6=96=B0=E5=A2=9E=20=E5=B7=A5=E7=A8=8B?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=BC=80=E5=8F=91=E4=BF=AE=E6=94=B9=E5=8D=95?= =?UTF-8?q?=E9=A2=86=E6=96=99=E5=AF=BC=E5=87=BA=E6=98=8E=E7=BB=86=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=20=E6=96=B0=E5=A2=9E=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=89=80=E6=9C=89=E5=92=8C=E9=80=89=E6=8B=A9=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E6=8E=A5=E5=8F=A3=20=E6=96=B0=E5=A2=9E=20?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E5=BC=80=E5=8F=91=E4=BF=AE=E6=94=B9=E5=8D=95?= =?UTF-8?q?=E9=A2=86=E6=96=99=E6=98=8E=E7=BB=86=E6=96=B9=E6=B3=95=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=20=E6=A0=B9=E6=8D=AE=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8D=95=E9=A2=86=E6=96=99=E5=8F=B7=E6=95=B0?= =?UTF-8?q?=E7=BB=84=E6=9F=A5=E8=AF=A2=E5=BC=80=E5=8F=91=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8D=95=E9=A2=86=E6=96=99=E9=9B=86=E5=90=88=E6=96=B9=E6=B3=95?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=20=E6=A0=B9=E6=8D=AE=E5=BC=80=E5=8F=91?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=8D=95=E9=A2=86=E6=96=99=E5=8F=B7=E9=9B=86?= =?UTF-8?q?=E5=90=88=E6=9F=A5=E8=AF=A2=E5=BC=80=E5=8F=91=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8D=95=E9=A2=86=E6=96=99=E8=AF=A6=E6=83=85=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...rpDevelopModifyorderPickingController.java | 27 +++- .../vo/ExportDevelopModifyorderPickingVo.java | 137 ++++++++++++++++++ ...DevelopModifyorderPickingDetailMapper.java | 5 + .../ErpDevelopModifyorderPickingMapper.java | 5 + .../IErpDevelopModifyorderPickingService.java | 10 ++ ...pDevelopModifyorderPickingServiceImpl.java | 77 +++++++++- .../ErpDevelopModifyorderPickingMapper.xml | 8 + .../developModifyorderPicking.html | 57 +++++++- 8 files changed, 320 insertions(+), 6 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/erp/domain/vo/ExportDevelopModifyorderPickingVo.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderPickingController.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderPickingController.java index 6a0c12fb..5f2d708f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderPickingController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/controller/ErpDevelopModifyorderPickingController.java @@ -5,6 +5,7 @@ import java.util.List; import com.ruoyi.erp.domain.*; import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderPickingVo; +import com.ruoyi.erp.domain.vo.ExportDevelopModifyorderPickingVo; import com.ruoyi.erp.service.IErpBomService; import com.ruoyi.erp.service.IErpDevelopModifyorderDetailService; import com.ruoyi.erp.service.IErpDevelopModifyorderPickingDetailService; @@ -99,15 +100,33 @@ public class ErpDevelopModifyorderPickingController extends BaseController */ @RequiresPermissions("erp:developModifyorderPicking:export") @Log(title = "开发修改单领料", businessType = BusinessType.EXPORT) - @PostMapping("/export") + @PostMapping("/exportAll") @ResponseBody - public AjaxResult export(ErpDevelopModifyorderPickingVo erpDevelopModifyorderPickingVo) + public AjaxResult exportAll(ErpDevelopModifyorderPickingVo erpDevelopModifyorderPickingVo) { List list = erpDevelopModifyorderPickingService.selectErpDevelopModifyorderPickingList(erpDevelopModifyorderPickingVo); - ExcelUtil util = new ExcelUtil(ErpDevelopModifyorderPickingVo.class); - return util.exportExcel(list, "开发修改单领料数据"); + List exportDevelopModifyorderPickingVos = erpDevelopModifyorderPickingService.exportDevelopModifyorderPickingList(list); + ExcelUtil util = new ExcelUtil(ExportDevelopModifyorderPickingVo.class); + return util.exportExcel(exportDevelopModifyorderPickingVos, "开发修改单领料数据"); } + + /** + * 导出开发修改单领料列表 + */ + @RequiresPermissions("erp:developModifyorderPicking:export") + @Log(title = "开发修改单领料", businessType = BusinessType.EXPORT) + @PostMapping("/export") + @ResponseBody + public AjaxResult export(@RequestBody String[] pickingOrderCodes) + { + List list = erpDevelopModifyorderPickingService.selectModifyorderPickingListByCodes(pickingOrderCodes); + List exportDevelopModifyorderPickingVos = erpDevelopModifyorderPickingService.exportDevelopModifyorderPickingList(list); + ExcelUtil util = new ExcelUtil(ExportDevelopModifyorderPickingVo.class); + return util.exportExcel(exportDevelopModifyorderPickingVos, "开发修改单领料数据"); + } + + /** * 新增开发修改单领料 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/vo/ExportDevelopModifyorderPickingVo.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/vo/ExportDevelopModifyorderPickingVo.java new file mode 100644 index 00000000..0ec6db11 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/domain/vo/ExportDevelopModifyorderPickingVo.java @@ -0,0 +1,137 @@ +package com.ruoyi.erp.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +import java.util.Date; + +/** +* 开发修改单领料导出明细 +* */ +@Data +public class ExportDevelopModifyorderPickingVo { + + /** 开发修改单领料单号 */ + @Excel(name = "开发修改单领料单号") + private String pickingOrderCode; + + /** 开发修改单单号 */ + @Excel(name = "开发修改单单号") + private String developOderCode; + + /** 关联生产单号 */ + @Excel(name = "关联生产单号") + private String makeNo; + + /** 领料状态(0待领料、1部分领料、2全部领料) */ + @Excel(name = "领料状态(0待领料、1部分领料、2全部领料)") + private String pickingStatus; + + /** 审核状态(0待审核、1审核通过、2审核拒绝) */ + @Excel(name = "审核状态",dictType = "auditStatus") + private String auditStatus; + + + /** 领料订单类型(0生产订单、1销售订单、2开发修改单) */ + @Excel(name = "领料订单类型",dictType = "picking_order_type") + private String pickingOrderType; + + /** 物料数合计 */ + @Excel(name = "物料数合计") + private Integer materialSum; + + /** 数量合计 */ + @Excel(name = "数量合计") + private Integer enterpriseSum; + + /** 领料员 */ + @Excel(name = "领料员") + private String pickUser; + + /** 业务员 */ + @Excel(name = "业务员") + private String salesUser; + + + /** 料号 */ + @Excel(name = "料号") + private String materialNo; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + + /** 物料型号 */ + @Excel(name = "物料型号") + private String materialModel; + + /** 物料规格 */ + @Excel(name = "物料规格") + private String materialSpecification; + + + /** 物料单位 */ + @Excel(name = "物料单位") + private String materialUnit; + + /** 物料品牌 */ + @Excel(name = "物料品牌") + private String materialBrand; + + /** 物料描述 */ + @Excel(name = "物料描述") + private String materialDescribe; + + /** 加工方式 */ + @Excel(name = "加工方式",dictType = "processMethod") + private String materialProcessMethod; + + + /** 客户期望交付时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "客户期望交付时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date deliveryTime; + + /** 订单数量 */ + @Excel(name = "订单数量") + private Integer materialNum; + + /** 用量 */ + @Excel(name = "用量") + private Integer useNum; + + /** 损耗率 */ + @Excel(name = "损耗率") + private String lossRate; + + /** 领料数量 */ + @Excel(name = "领料数量") + private Integer pickNum; + + /** 已领料数量 */ + @Excel(name = "已领料数量") + private Integer hasPickNum; + + /** 订单用量(用量*订单数量) */ + @Excel(name = "订单用量") + private Integer orderUseNum; + + /** 可用库存数 */ + @Excel(name = "可用库存数") + private Integer availableStockNum; + + /** BOM号 */ + @Excel(name = "BOM号") + private String bomNo; + + /** 层级 */ + @Excel(name = "层级") + private Integer level; + + /** 排序 */ + @Excel(name = "排序") + private Integer sortNo; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingDetailMapper.java index dafc29dd..0c8d32ee 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingDetailMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingDetailMapper.java @@ -85,4 +85,9 @@ public interface ErpDevelopModifyorderPickingDetailMapper * 通过领料单号查询领料单详情集合 * */ List selectDevelopModifyDetailMaterialByPickingCode(String pickingOrderCode); + + /** + * 通过领料单号集合查询领料单详情集合 + * */ + List selectPickingDetailListByCodes(List collectPickingOrderCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingMapper.java index 8846a7c2..cf580c8e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/mapper/ErpDevelopModifyorderPickingMapper.java @@ -81,4 +81,9 @@ public interface ErpDevelopModifyorderPickingMapper * 根据开发修改单号查询开发修改领料数据 * */ ErpDevelopModifyorderPicking selectErpDevelopModifyorderPickingByDevelopCode(String developOderCode); + + /** + * 根据开发修改单号查询开发修改领料数据 + * */ + List selectModifyorderPickingListByCodes(String[] pickingOrderCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderPickingService.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderPickingService.java index fb8457ef..17ecfd26 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderPickingService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/IErpDevelopModifyorderPickingService.java @@ -5,6 +5,7 @@ import java.util.List; import com.ruoyi.erp.domain.ErpDevelopModifyorder; import com.ruoyi.erp.domain.ErpDevelopModifyorderPicking; import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderPickingVo; +import com.ruoyi.erp.domain.vo.ExportDevelopModifyorderPickingVo; import org.activiti.engine.runtime.ProcessInstance; /** @@ -83,4 +84,13 @@ public interface IErpDevelopModifyorderPickingService * */ ProcessInstance submitApply(ErpDevelopModifyorder erpDevelopModifyorder); + /** + * 导出开发修改领料单明细 + * */ + List exportDevelopModifyorderPickingList(List list); + + /** + * 根据领料单号数组查询领料单明细 + * */ + List selectModifyorderPickingListByCodes(String[] pickingOrderCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderPickingServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderPickingServiceImpl.java index e303f32a..ee1ecd55 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderPickingServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/erp/service/impl/ErpDevelopModifyorderPickingServiceImpl.java @@ -1,6 +1,7 @@ package com.ruoyi.erp.service.impl; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import com.github.pagehelper.Page; @@ -14,6 +15,7 @@ import com.ruoyi.common.utils.ShiroUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.erp.domain.*; import com.ruoyi.erp.domain.vo.ErpDevelopModifyorderPickingVo; +import com.ruoyi.erp.domain.vo.ExportDevelopModifyorderPickingVo; import com.ruoyi.erp.mapper.ErpDevelopModifyorderDetailMapper; import com.ruoyi.erp.mapper.ErpDevelopModifyorderPickingDetailMapper; import com.ruoyi.erp.service.IErpBomService; @@ -88,6 +90,15 @@ public class ErpDevelopModifyorderPickingServiceImpl implements IErpDevelopModif return erpDevelopModifyorderPickingMapper.selectErpDevelopModifyorderPickingById(developOrderPickingId); } + /** + * 根据领料单号数组查询领料单明细 + * */ + @Override + public List selectModifyorderPickingListByCodes(String[] pickingOrderCodes) { + List list = erpDevelopModifyorderPickingMapper.selectModifyorderPickingListByCodes(pickingOrderCodes); + return list; + } + /** * 查询开发修改单领料列表 * @@ -419,7 +430,71 @@ public class ErpDevelopModifyorderPickingServiceImpl implements IErpDevelopModif /** - * 创建售后单审核流程 + * 导出开发修改领料单明细 + * */ + @Override + public List exportDevelopModifyorderPickingList(List list) { + // 获取所有的开发修改单领料单号 + List collectPickingOrderCodes = list.stream().map(ErpDevelopModifyorderPickingVo::getPickingOrderCode).collect(Collectors.toList()); + + // 根据开发修改单领料单号查询对应的详情列表 + List pickingDetailList = pickingDetailMapper.selectPickingDetailListByCodes(collectPickingOrderCodes); + + // 创建一个开发修改订单领料VO的Map,键为开发修改单领料单号 + Map erpDevelopModifyorderPickingVoMap = list.stream() + .collect(Collectors.toMap(ErpDevelopModifyorderPickingVo::getPickingOrderCode, Function.identity())); + + // 初始化导出列表 + List exportDevelopModifyorderPickingVos = new ArrayList<>(); + + for (ErpDevelopModifyorderPickingDetail detail : pickingDetailList) { + ExportDevelopModifyorderPickingVo exportVo = new ExportDevelopModifyorderPickingVo(); + + // 从ErpDevelopModifyorderPickingDetail填充数据 + exportVo.setMaterialNo(detail.getMaterialNo()); + exportVo.setMaterialName(detail.getMaterialName()); + exportVo.setMaterialModel(detail.getMaterialModel()); + exportVo.setMaterialSpecification(detail.getMaterialSpecification()); + exportVo.setMaterialUnit(detail.getMaterialUnit()); + exportVo.setMaterialBrand(detail.getMaterialBrand()); + exportVo.setMaterialDescribe(detail.getMaterialDescribe()); + exportVo.setMaterialProcessMethod(detail.getMaterialProcessMethod()); + exportVo.setDeliveryTime(detail.getDeliveryTime()); + exportVo.setMaterialNum(detail.getMaterialNum()); + exportVo.setUseNum(detail.getUseNum()); + exportVo.setLossRate(detail.getLossRate()); + exportVo.setPickNum(detail.getPickNum()); + exportVo.setHasPickNum(detail.getHasPickNum()); + exportVo.setOrderUseNum(detail.getOrderUseNum()); + exportVo.setAvailableStockNum(detail.getAvailableStockNum()); + exportVo.setBomNo(detail.getBomNo()); + exportVo.setLevel(detail.getLevel()); + exportVo.setSortNo(detail.getSortNo()); + + // 从ErpDevelopModifyorderPicking填充数据,通过开发修改单领料单号进行关联 + ErpDevelopModifyorderPickingVo pickingVo = erpDevelopModifyorderPickingVoMap.get(detail.getPickingOrderCode()); + if (pickingVo != null) { + exportVo.setPickingOrderCode(pickingVo.getPickingOrderCode()); + exportVo.setDevelopOderCode(pickingVo.getDevelopOderCode()); + exportVo.setMakeNo(pickingVo.getMakeNo()); + exportVo.setPickingStatus(pickingVo.getPickingStatus()); + exportVo.setAuditStatus(pickingVo.getAuditStatus()); + exportVo.setPickingOrderType(pickingVo.getPickingOrderType()); + exportVo.setMaterialSum(pickingVo.getMaterialSum()); + exportVo.setEnterpriseSum(pickingVo.getEnterpriseSum()); + exportVo.setPickUser(pickingVo.getPickUser()); + exportVo.setSalesUser(pickingVo.getSalesUser()); + } + + // 添加到结果列表 + exportDevelopModifyorderPickingVos.add(exportVo); + } + + return exportDevelopModifyorderPickingVos; + } + + /** + * 创建领料单审核流程 * @param applyTitle * @param instanceType * @param user diff --git a/ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderPickingMapper.xml b/ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderPickingMapper.xml index 6f888d22..c28bb81f 100644 --- a/ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderPickingMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/erp/ErpDevelopModifyorderPickingMapper.xml @@ -59,6 +59,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where develop_oder_code = #{developOderCode} + + insert into erp_develop_modifyorder_picking diff --git a/ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/developModifyorderPicking.html b/ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/developModifyorderPicking.html index 814fd0c7..c8474485 100644 --- a/ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/developModifyorderPicking.html +++ b/ruoyi-admin/src/main/resources/templates/erp/developModifyorderPicking/developModifyorderPicking.html @@ -45,7 +45,7 @@ @@ -257,6 +257,61 @@ var url = prefix + '/detail/' +developOrderPickingId; $.modal.open("详情",url); } + + //开发修改单导出 + function exportExcel(formId) { + // $.table.set(); + var pickingOrderCodeData = []; + var selections = $("#bootstrap-table").bootstrapTable("getSelections"); + if(selections.length === 0){ + $.modal.confirm("确定导出所有开发修改单领料吗?", function() { + var currentId = $.common.isEmpty(formId) ? $('form').attr('id') : formId; + var params = $("#bootstrap-table").bootstrapTable('getOptions'); + var dataParam = $("#" + currentId).serializeArray(); + dataParam.push({ "name": "orderByColumn", "value": params.sortName }); + dataParam.push({ "name": "isAsc", "value": params.sortOrder }); + $.modal.loading("正在导出数据,请稍后..."); + $.post(prefix + '/exportAll', dataParam, function(result) { + if (result.code == web_status.SUCCESS) { + window.location.href = ctx + "common/download?fileName=" + encodeURI(result.msg) + "&delete=" + true; + } else if (result.code == web_status.WARNING) { + $.modal.alertWarning(result.msg) + } else { + $.modal.alertError(result.msg); + } + $.modal.closeLoading(); + }); + }); + }else { + $.modal.confirm("确定导出选中的所有开发修改单领料吗?", function () { + //·拼接单号 + for(let i=0;i \ No newline at end of file