diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java index c318638e..41a825da 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/OutsourceOrderController.java @@ -8,14 +8,15 @@ import java.util.stream.Collectors; import com.ruoyi.common.utils.poi.ExcelUtil; -import com.ruoyi.erp.domain.ErpMaterial; import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.system.domain.OutsourceOrder; import com.ruoyi.system.domain.OutsourceOrderDetail; +import com.ruoyi.system.domain.Vo.ExportOutsourceOrderVo; import com.ruoyi.system.domain.Vo.OutsourceOrderVO; -import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; import com.ruoyi.system.service.IOutsourceOrderService; import com.ruoyi.system.service.ISysUserService; +import com.ruoyi.warehouse.domain.VO.ExportWarehouseStorageOrderVo; +import com.ruoyi.warehouse.domain.WarehouseStorageOrder; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; import org.activiti.engine.runtime.ProcessInstance; @@ -25,6 +26,7 @@ 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; @@ -127,11 +129,21 @@ public class OutsourceOrderController extends BaseController @Log(title = "委外订单", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody - public AjaxResult export(OutsourceOrderVO outsourceOrderVO) + public AjaxResult export(OutsourceOrderVO outsourceOrderVO, String ids) { - List list = outsourceOrderService.selectOutsourceOrderList(outsourceOrderVO); - ExcelUtil util = new ExcelUtil(OutsourceOrderVO.class); - return util.exportExcel(list, "委外订单数据"); + if (StringUtils.isEmpty(ids)){ + List list = outsourceOrderService.selectOutsourceOrderListByObject(outsourceOrderVO); + + List exportOutsourceOrderVos = outsourceOrderService.exportOutsourceOrderList(list); + ExcelUtil util = new ExcelUtil(ExportOutsourceOrderVo.class); + return util.exportExcel(exportOutsourceOrderVos, "委外订单数据"); + }else { + String[] outsourceOrderNos = ids.split(","); + List list = outsourceOrderService.selectOutsourceOrderListByNos(outsourceOrderNos); + List exportOutsourceOrderVos = outsourceOrderService.exportOutsourceOrderList(list); + ExcelUtil util = new ExcelUtil(ExportOutsourceOrderVo.class); + return util.exportExcel(exportOutsourceOrderVos, "委外订单数据"); + } } /** * 添加委外领料单 diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceOrderVo.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceOrderVo.java new file mode 100644 index 00000000..4d1da3c0 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/Vo/ExportOutsourceOrderVo.java @@ -0,0 +1,142 @@ +package com.ruoyi.system.domain.Vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import lombok.Data; + +import java.math.BigDecimal; + +/** +* 导出委外订单明细 +* */ +@Data +public class ExportOutsourceOrderVo { + + + /** 委外订单编号 */ + @Excel(name = "委外订单编号") + private String outsourceOrderNo; + + /** 委外员 */ + @Excel(name = "委外员") + private String outsourceStaff; + + + /** 物料合计 */ + @Excel(name = "物料合计") + private Long materialAmount; + + /** 委外物料数量合计 */ + @Excel(name = "委外物料数量合计") + private BigDecimal outsourceMaterialAmount; + + /** 委外工序种类 */ + @Excel(name = "委外工序种类") + private Long outsourceProcessType; + + /** 委外工序合计 */ + @Excel(name = "委外工序合计") + private Long outsourceProcessAmount; + + /** 含税委外总价 */ + @Excel(name = "含税委外总价") + private BigDecimal outsourceTotalPrice; + + /** 不含税委外总价 */ + @Excel(name = "不含税委外总价") + private BigDecimal outsourceNoPrice; + + /** 使用状态 */ + @Excel(name = "使用状态",dictType = "useStatus") + private String useStatus; + + /** 收货状态 */ + @Excel(name = "收货状态",dictType = "quality_delivery_status") + private String receiveStatus; + + /** 结案状态(0待打款1部分打款2全部打款3待结案4已结案) */ + @Excel(name = "结案状态",dictType = "sys_pay_close") + private String closedStatus; + + /** 打款状态 */ + @Excel(name = "打款状态",dictType = "accounts_payable_status") + private String remitStatus; + + /** 审核状态 */ + @Excel(name = "审核状态",dictType = "auditStatus") + private String auditStatus; + + /** 实际委外物料合计 */ + @Excel(name = "实际委外物料合计") + private BigDecimal actualMaterialAmount; + + /** 实际委外工序合计 */ + @Excel(name = "实际委外工序合计") + private Long actualProcessAmount; + + /** 仓库ID */ + @Excel(name = "仓库ID") + private String stockNo; + + /** 仓库名称 */ + @Excel(name = "仓库名称") + private String stockName; + + /** 收货人 */ + @Excel(name = "收货人") + private String receivePerson; + + /** 收货电话 */ + @Excel(name = "收货电话") + private String receiveTelephone; + + /** 详细地址 */ + @Excel(name = "详细地址") + private String receiveAddress; + + + /** 料号 */ + @Excel(name = "料号") + private String materialNo; + + /** 委外工序编号 */ + @Excel(name = "委外工序编号") + private String outsourceProcessNo; + + /** 委外工序名称 */ + @Excel(name = "委外工序名称") + private String outsourceProcessName; + + /** 计价单位(0按重量计数,1按数量计,2按面积计) */ + @Excel(name = "计价单位",dictType = "charge_unit") + private String chargeUnit; + + /** 每个物料规格 */ + @Excel(name = "每个物料规格") + private BigDecimal singleMaterial; + + /** 交付时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "交付时间", width = 30, dateFormat = "yyyy-MM-dd") + private String deliveryTime; + + /** 实际委外数 */ + @Excel(name = "实际委外数") + private Integer actualOutsourceAmount; + + @Excel(name = "含税委外单价(RMB) ") + private BigDecimal materialRmb; + + @Excel(name = "不含税委外单价(RMB)") + private BigDecimal materialNoRmb; + + /** 供应商编号 */ + @Excel(name = "供应商编号") + private String supplierCode; + + /** 供应商名称 */ + @Excel(name = "供应商名称") + private String supplierName; + + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java index e2ee9f60..d471b1ee 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderDetailMapper.java @@ -100,4 +100,9 @@ public interface OutsourceOrderDetailMapper /* * 根据委外订单号和料号查询委外订单详情列表*/ public List selectOutsourceOrderDetailByNos(OutsourceOrderDetail orderDetail); + + /** + * 根据委外订单号集合查询委外订单详情列表 + * */ + List selectOutsourceOrderDetailByNoList(List collectOutsourceOrderNos); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderMapper.java index 49b03135..047b01ae 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/OutsourceOrderMapper.java @@ -90,4 +90,8 @@ public interface OutsourceOrderMapper public OutsourceOrder selectOutsourceOrderByNo(String outsourceOrderNo); + /** + * 通过委外订单编号查询委外订单 + * */ + List selectOutsourceOrderListByNos(String[] outsourceOrderNos); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java index d1ba6a8a..f08af7af 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/IOutsourceOrderService.java @@ -2,6 +2,7 @@ package com.ruoyi.system.service; import com.ruoyi.erp.domain.ErpMaterial; import com.ruoyi.system.domain.OutsourceOrder; +import com.ruoyi.system.domain.Vo.ExportOutsourceOrderVo; import com.ruoyi.system.domain.Vo.OutsourceOrderVO; import com.ruoyi.system.domain.Vo.OutsourceQuoteVO; import org.activiti.engine.runtime.ProcessInstance; @@ -101,4 +102,19 @@ public interface IOutsourceOrderService int insertFinancialAccountsPayable(OutsourceOrder outsourceOrder); int closeOutsourceOrder(OutsourceOrderVO outsourceOrderVO); + + /** + * 导出委外订单明细 + * */ + List exportOutsourceOrderList(List list); + + /** + * 通过委外订单编号查询委外订单 + * */ + List selectOutsourceOrderListByNos(String[] outsourceOrderNos); + + /** + * 通过委外订单查询委外订单集合 + * */ + List selectOutsourceOrderListByObject(OutsourceOrderVO outsourceOrderVO); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java index 34d64851..85538394 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/OutsourceOrderServiceImpl.java @@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl; import java.math.BigDecimal; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; import com.github.pagehelper.Page; @@ -20,6 +21,7 @@ import com.ruoyi.financial.mapper.FinancialAccountsPayableMapper; 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.ExportOutsourceOrderVo; import com.ruoyi.system.domain.Vo.OutsourceOrderVO; import com.ruoyi.system.domain.Vo.OutsourceRequisitionVO; import com.ruoyi.system.mapper.*; @@ -579,4 +581,87 @@ public class OutsourceOrderServiceImpl implements IOutsourceOrderService return outsourceOrderMapper.updateOutsourceOrder(outsourceOrderVO); } + + /** + * 导出委外订单明细 + * */ + @Override + public List exportOutsourceOrderList(List list) { + // 获取所有的委外订单编号 + List collectOutsourceOrderNos = list.stream().map(OutsourceOrderVO::getOutsourceOrderNo).collect(Collectors.toList()); + + // 根据委外订单编号查询对应的详情列表 + List outsourceOrderDetails = orderDetailMapper.selectOutsourceOrderDetailByNoList(collectOutsourceOrderNos); + + // 创建一个委外订单VO的Map,键为委外订单编号 + Map outsourceOrderVOMap = list.stream() + .collect(Collectors.toMap(OutsourceOrderVO::getOutsourceOrderNo, Function.identity())); + + // 初始化导出列表 + List exportOutsourceOrderVos = new ArrayList<>(); + + for (OutsourceOrderDetail detail : outsourceOrderDetails) { + ExportOutsourceOrderVo exportVo = new ExportOutsourceOrderVo(); + + // 从OutsourceOrderDetail填充数据 + exportVo.setMaterialNo(detail.getMaterialNo()); + exportVo.setOutsourceProcessNo(detail.getOutsourceProcessNo()); + exportVo.setOutsourceProcessName(detail.getOutsourceProcessName()); + exportVo.setChargeUnit(detail.getChargeUnit()); + exportVo.setSingleMaterial(detail.getSingleMaterial()); + exportVo.setDeliveryTime(detail.getDeliveryTime()); + exportVo.setActualOutsourceAmount(detail.getActualOutsourceAmount()); + exportVo.setMaterialRmb(detail.getMaterialRmb()); + exportVo.setMaterialNoRmb(detail.getMaterialNoRmb()); + exportVo.setSupplierCode(detail.getSupplierCode()); + exportVo.setSupplierName(detail.getSupplierName()); + + // 从OutsourceOrderVO填充数据,通过委外订单编号进行关联 + OutsourceOrderVO order = outsourceOrderVOMap.get(detail.getOutsourceOrderNo()); + if (order != null) { + exportVo.setOutsourceOrderNo(order.getOutsourceOrderNo()); + exportVo.setOutsourceStaff(order.getOutsourceStaff()); + exportVo.setMaterialAmount(order.getMaterialAmount()); + exportVo.setOutsourceMaterialAmount(order.getOutsourceMaterialAmount()); + exportVo.setOutsourceProcessType(order.getOutsourceProcessType()); + exportVo.setOutsourceProcessAmount(order.getOutsourceProcessAmount()); + exportVo.setOutsourceTotalPrice(order.getOutsourceTotalPrice()); + exportVo.setOutsourceNoPrice(order.getOutsourceNoPrice()); + exportVo.setUseStatus(order.getUseStatus()); + exportVo.setReceiveStatus(order.getReceiveStatus()); + exportVo.setClosedStatus(order.getClosedStatus()); + exportVo.setRemitStatus(order.getRemitStatus()); + exportVo.setAuditStatus(order.getAuditStatus()); + exportVo.setActualMaterialAmount(order.getActualMaterialAmount()); + exportVo.setActualProcessAmount(order.getActualProcessAmount()); + exportVo.setStockNo(order.getStockNo()); + exportVo.setStockName(order.getStockName()); + exportVo.setReceivePerson(order.getReceivePerson()); + exportVo.setReceiveTelephone(order.getReceiveTelephone()); + exportVo.setReceiveAddress(order.getReceiveAddress()); + } + + // 添加到结果列表 + exportOutsourceOrderVos.add(exportVo); + } + + return exportOutsourceOrderVos; + } + + /** + * 通过委外订单编号查询委外订单 + * */ + @Override + public List selectOutsourceOrderListByNos(String[] outsourceOrderNos) { + return outsourceOrderMapper.selectOutsourceOrderListByNos(outsourceOrderNos); + } + + + /** + * 通过委外订单查询委外订单集合 + * */ + @Override + public List selectOutsourceOrderListByObject(OutsourceOrderVO outsourceOrderVO) { + return outsourceOrderMapper.selectOutsourceOrderList(outsourceOrderVO); + } } diff --git a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml index dc01ef82..507c24c9 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderDetailMapper.xml @@ -225,5 +225,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where outsource_order_no = #{outsourceOrderNo} and material_no = #{materialNo} + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderMapper.xml index 1fa91d42..36a5bec1 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/OutsourceOrderMapper.xml @@ -121,6 +121,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" where material_no =#{materialNo} + + insert into outsource_order diff --git a/ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html b/ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html index fd78f916..bb147b80 100644 --- a/ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html +++ b/ruoyi-admin/src/main/resources/templates/system/outsource_order/outsource_order.html @@ -42,14 +42,14 @@
  • -
  • - @@ -76,6 +76,10 @@ + + 导出 + + 结案 @@ -124,19 +128,11 @@ restoreUrl: prefix + "/restore/{id}", modalName: "委外订单", detailView: true, - singleSelect: true, onExpandRow : function(index, row, $detail) { initChildTable(index, row, $detail); }, columns: [{ checkbox: true, - formatter: function(value, row, index) { - //待结案 - if(row.closedStatus === "3"||row.closedStatus === "1"){ - return { disabled : false,} - } - return { disabled : true,} - } }, { field: 'outsourceOrderId', @@ -439,6 +435,31 @@ return; } } + + + // 导出 + function exportExcel() { + var ids = $.table.selectColumns("outsourceOrderNo"); + 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