diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourcePlanController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourcePlanController.java index af18ff69..aa236733 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourcePlanController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourcePlanController.java @@ -6,11 +6,15 @@ import java.util.stream.Collectors; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.system.domain.OutsourcePlan; import com.ruoyi.system.domain.OutsourcePlanDetail; +import com.ruoyi.system.domain.Vo.ExportOutsourcePlanVo; +import com.ruoyi.system.domain.Vo.ExportOutsourceQuoteVO; +import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; import com.ruoyi.system.service.IOutsourcePlanService; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.enums.BusinessType; @@ -72,12 +76,31 @@ public class OutsourcePlanController extends BaseController @Log(title = "委外计划", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody - public AjaxResult export(OutsourcePlan outsourcePlan) + public AjaxResult export(OutsourcePlan outsourcePlan, String ids) { - List list = outsourcePlanService.selectOutsourcePlanList(outsourcePlan); - ExcelUtil util = new ExcelUtil(OutsourcePlan.class); - return util.exportExcel(list, "委外计划数据"); + if (StringUtils.isEmpty(ids)){ + + List list = outsourcePlanService.selectOutsourcePlanList(outsourcePlan); + List exportOutsourcePlanVos = outsourcePlanService.exportOutsourcePlanList(list); + + + ExcelUtil util = new ExcelUtil(ExportOutsourcePlanVo.class); + return util.exportExcel(exportOutsourcePlanVos, "委外计划数据"); + }else { + String[] planCodes = ids.split(","); + List list = outsourcePlanService.selectOutsourcePlanListByCodes(planCodes); + List exportOutsourcePlanVos = outsourcePlanService.exportOutsourcePlanList(list); + + + ExcelUtil util = new ExcelUtil(ExportOutsourcePlanVo.class); + return util.exportExcel(exportOutsourcePlanVos, "委外计划数据"); + } + + } + + + /** * 添加委外订单 */ diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourcePlanVo.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourcePlanVo.java new file mode 100644 index 00000000..1fc0e76e --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourcePlanVo.java @@ -0,0 +1,88 @@ +package com.ruoyi.system.domain.Vo; + +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +/** +* 导出委外计划明细 +* */ +@Data +public class ExportOutsourcePlanVo { + + /** 委外计划单号 */ + @Excel(name = "委外计划单号") + private String outsourcePlanCode; + + /** 关联单号(生产/请购) */ + @Excel(name = "关联单号") + private String associateOrderNo; + + /** 申请人 */ + @Excel(name = "申请人") + private String applicant; + + /** 状态 */ + @Excel(name = "状态", dictType = "outsource_plan_status") + private String status; + + /** 物料总计 */ + @Excel(name = "物料总计") + private Integer materialAmount; + + /** 数量总计 */ + @Excel(name = "数量总计") + private Integer totalAmount; + + /** 委外工序种类 */ + @Excel(name = "委外工序种类") + private Integer outsourceProcessType; + + /** 委外工序合计 */ + @Excel(name = "委外工序合计") + private Integer outsourceProcessAmount; + + /** 来源 */ + @Excel(name = "来源") + private String source; + + + + /** 料号 */ + @Excel(name = "料号") + private String materialNo; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 描述 */ + @Excel(name = "描述") + private String description; + + /** 品牌 */ + @Excel(name = "品牌") + private String brand; + + /** 加工方式 */ + @Excel(name = "加工方式",dictType = "processMethod") + private String processMethod; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 计划委外数 */ + @Excel(name = "计划委外数") + private Integer plannedOutsourceAmount; + + /** 实际委外数 */ + @Excel(name = "实际委外数") + private Integer actualOutsourceAmount; + + /** 委外计划状态 (0待申请1部分申请2全部申请)*/ + @Excel(name = "委外计划状态") + private String outPlanStatus; + + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourcePlanMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourcePlanMapper.java index 1ed64faa..66837591 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourcePlanMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourcePlanMapper.java @@ -121,4 +121,9 @@ public interface OutsourcePlanMapper /* * 查询委外计划详情*/ public List selectOutsourcePlanDetail(OutsourcePlanDetail outsourcePlanDetail); + + /** + * 通过委外计划单号集合查询委外计划详情 + * */ + List selectOutsourcePlanDetailByCodeList(List collectOutsourcePlanCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourcePlanService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourcePlanService.java index 11790a1c..57f12450 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourcePlanService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourcePlanService.java @@ -3,6 +3,7 @@ package com.ruoyi.system.service; import com.ruoyi.system.domain.OutsourceMaterial; import com.ruoyi.system.domain.OutsourcePlan; import com.ruoyi.system.domain.OutsourcePlanDetail; +import com.ruoyi.system.domain.Vo.ExportOutsourcePlanVo; import java.util.List; @@ -93,4 +94,14 @@ public interface IOutsourcePlanService /* * 查询委外计划详情*/ public List selectOutsourcePlanDetail(OutsourcePlanDetail outsourcePlanDetail); + + /** + * 导出委外计划明细 + * */ + List exportOutsourcePlanList(List list); + + /** + * 根据计划单号查询委外计划 + * */ + List selectOutsourcePlanListByCodes(String[] planCodes); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourcePlanServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourcePlanServiceImpl.java index e85a8da9..166490bc 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourcePlanServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourcePlanServiceImpl.java @@ -4,6 +4,7 @@ import java.util.List; import com.ruoyi.common.utils.DateUtils; import com.ruoyi.system.domain.*; +import com.ruoyi.system.domain.Vo.ExportOutsourcePlanVo; import com.ruoyi.system.domain.Vo.OutsourceProcessVo; import com.ruoyi.system.domain.Vo.Supplier; import com.ruoyi.system.mapper.*; @@ -13,7 +14,9 @@ import com.ruoyi.warehouse.mapper.WarehouseInventoryInquiryMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.Map; import java.util.Optional; +import java.util.function.Function; import java.util.stream.Collectors; import com.ruoyi.common.utils.StringUtils; @@ -100,6 +103,15 @@ public class OutsourcePlanServiceImpl implements IOutsourcePlanService public List selectOutsourcePlanDetailByCodes(String outsourcePlanCodes) { return outsourcePlanMapper.selectOutsourcePlanDetailByCodes(Convert.toStrArray(outsourcePlanCodes)); } + + /** + * 根据计划单号查询委外计划 + * */ + @Override + public List selectOutsourcePlanListByCodes(String[] planCodes) { + return outsourcePlanMapper.selectOutsourcePlanByCodes(planCodes); + } + /** * 查询委外计划列表 * @@ -316,4 +328,58 @@ public class OutsourcePlanServiceImpl implements IOutsourcePlanService } return details; } + + + /** + * 导出委外计划明细 + * */ + @Override + public List exportOutsourcePlanList(List list) { + // 获取所有的委外计划单号 + List collectOutsourcePlanCodes = list.stream().map(OutsourcePlan::getOutsourcePlanCode).collect(Collectors.toList()); + + // 根据委外计划单号查询对应的详情列表 + List outsourcePlanDetailList = outsourcePlanMapper.selectOutsourcePlanDetailByCodeList(collectOutsourcePlanCodes); + + // 创建一个委外计划VO的Map,键为委外计划单号 + Map outsourcePlanMap = list.stream() + .collect(Collectors.toMap(OutsourcePlan::getOutsourcePlanCode, Function.identity())); + + // 初始化导出列表 + List exportOutsourcePlanVos = new ArrayList<>(); + + for (OutsourcePlanDetail detail : outsourcePlanDetailList) { + ExportOutsourcePlanVo exportVo = new ExportOutsourcePlanVo(); + + // 从OutsourcePlanDetail填充数据 + exportVo.setMaterialNo(detail.getMaterialNo()); + exportVo.setMaterialName(detail.getMaterialName()); + exportVo.setDescription(detail.getDescription()); + exportVo.setBrand(detail.getBrand()); + exportVo.setProcessMethod(detail.getProcessMethod()); + exportVo.setUnit(detail.getUnit()); + exportVo.setPlannedOutsourceAmount(detail.getPlannedOutsourceAmount()); + exportVo.setActualOutsourceAmount(detail.getActualOutsourceAmount()); + exportVo.setOutPlanStatus(detail.getOutPlanStatus()); + + // 从OutsourcePlan填充数据,通过委外计划单号进行关联 + OutsourcePlan plan = outsourcePlanMap.get(detail.getOutsourcePlanCode()); + if (plan != null) { + exportVo.setOutsourcePlanCode(plan.getOutsourcePlanCode()); + exportVo.setAssociateOrderNo(plan.getAssociateOrderNo()); + exportVo.setApplicant(plan.getApplicant()); + exportVo.setStatus(plan.getStatus()); + exportVo.setMaterialAmount(plan.getMaterialAmount()); + exportVo.setTotalAmount(plan.getTotalAmount()); + exportVo.setOutsourceProcessType(plan.getOutsourceProcessType()); + exportVo.setOutsourceProcessAmount(plan.getOutsourceProcessAmount()); + exportVo.setSource(plan.getSource()); + } + + // 添加到结果列表 + exportOutsourcePlanVos.add(exportVo); + } + + return exportOutsourcePlanVos; + } } diff --git a/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml index fe91c8ce..f93ccbcf 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/OutsourcePlanMapper.xml @@ -178,6 +178,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + delete from outsource_plan_detail where outsource_plan_code in diff --git a/ruoyi-admin/src/main/resources/templates/system/outsource_plan/outsource_plan.html b/ruoyi-admin/src/main/resources/templates/system/outsource_plan/outsource_plan.html index 56799893..98cb0725 100644 --- a/ruoyi-admin/src/main/resources/templates/system/outsource_plan/outsource_plan.html +++ b/ruoyi-admin/src/main/resources/templates/system/outsource_plan/outsource_plan.html @@ -52,6 +52,9 @@ 添加委外单 + + 导出 +
@@ -246,6 +249,32 @@ } $.modal.open("新增委外订单", prefix + "/addOutsourceOrder/" + outsourcePlanCodes); }; + + + // 导出 + function exportExcel() { + var ids = $.table.selectColumns("outsourcePlanCode"); + var dataParam = $("#formId").serializeArray(); + + let tipMsg = "确定导出当前所有数据吗?"; + if ($.common.isNotEmpty(ids)) { + tipMsg = `确定导出 ${ids} 数据吗?`; + dataParam.push({ "name": "ids", "value": ids }); + } + $.modal.confirm(tipMsg, function () { + $.modal.loading("正在导出数据,请稍后..."); + $.post( prefix + "/export", dataParam, function (result) { + if (result.code === web_status.SUCCESS) { + window.location.href = ctx + "common/download?fileName="+ encodeURI(result.msg) + "&delete=" + true; + } else { + $.modal.alertError(result.msg); + } + $.modal.closeLoading(); + }); + }); + } + + \ No newline at end of file