From 62fdc8b154f5e109e0a22ba5763879349a12db4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=99=93=E8=BF=AA?= <2596750866@qq.com> Date: Fri, 20 Dec 2024 16:22:38 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E7=94=9F=E4=BA=A7=E7=AE=A1=E7=90=86?= =?UTF-8?q?=20=E7=94=9F=E4=BA=A7=E9=80=80=E6=96=99=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E9=80=80=E6=96=99=E5=88=97=E8=A1=A8=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E6=96=B0=E5=A2=9E=E8=A1=A8=E6=A0=BC=E8=A1=8C?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=EF=BC=8C=E4=BF=AE=E6=94=B9=E6=90=9C=E7=B4=A2?= =?UTF-8?q?=E6=A0=8F=E8=BE=93=E5=85=A5=EF=BC=8C=E6=96=B0=E5=A2=9E=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E6=96=B9=E6=B3=95=EF=BC=9B=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E7=94=9F=E4=BA=A7=E9=80=80=E6=96=99=E8=AF=A6=E6=83=85=E9=A1=B5?= =?UTF-8?q?=E9=9D=A2=EF=BC=8C=E4=BF=AE=E6=94=B9=E5=B7=B2=E9=80=80=E6=96=99?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E6=AE=B5=E5=90=8D=E7=A7=B0=EF=BC=9B=20?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E8=8E=B7=E5=8F=96=E7=94=9F=E4=BA=A7=E9=80=80?= =?UTF-8?q?=E6=96=99=E5=8D=95=E5=AF=BC=E5=87=BA=E5=88=97=E8=A1=A8service?= =?UTF-8?q?=E6=96=B9=E6=B3=95=EF=BC=9B=20=E4=BF=AE=E6=94=B9=E7=94=9F?= =?UTF-8?q?=E4=BA=A7=E9=80=80=E6=96=99mapper=EF=BC=8C=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E6=9F=A5=E8=AF=A2=EF=BC=8C=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=8C=BA=E9=97=B4=E6=9F=A5=E8=AF=A2=EF=BC=8C=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=8E=92=E5=BA=8F=EF=BC=8C=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E9=80=80=E6=96=99=E5=8D=95=E5=8F=B7=E6=89=B9=E9=87=8F=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E9=80=80=E6=96=99=E5=8D=95=E6=96=B9=E6=B3=95=EF=BC=9B?= =?UTF-8?q?=20=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE=E9=80=80=E6=96=99?= =?UTF-8?q?=E5=8D=95=E5=8F=B7=E5=92=8C=E6=96=99=E5=8F=B7=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=80=80=E6=96=99=E5=8D=95=E8=AF=A6=E6=83=85mapper=E6=96=B9?= =?UTF-8?q?=E6=B3=95=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/MakeReturnOrderController.java | 11 +- .../domain/exportDto/MakeReturnOrderDto.java | 108 ++++++++++++++++++ .../mapper/MakeReturnOrderDetailMapper.java | 4 + .../system/mapper/MakeReturnOrderMapper.java | 3 + .../impl/MakeReturnOrderServiceImpl.java | 61 +++++++++- .../system/MakeReturnOrderDetailMapper.xml | 6 + .../mapper/system/MakeReturnOrderMapper.xml | 13 +++ .../refundsExchanges/refundsExchanges.html | 2 +- .../system/makeReturnOrder/detail.html | 2 +- .../makeReturnOrder/makeReturnOrder.html | 43 ++++++- 10 files changed, 238 insertions(+), 15 deletions(-) create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/system/domain/exportDto/MakeReturnOrderDto.java diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/MakeReturnOrderController.java b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/MakeReturnOrderController.java index 15fb01f7..1678874b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/controller/MakeReturnOrderController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/controller/MakeReturnOrderController.java @@ -8,8 +8,10 @@ import com.ruoyi.common.utils.DateUtils; import com.ruoyi.process.general.service.IProcessService; import com.ruoyi.system.domain.MakeReturnOrderDetail; import com.ruoyi.system.domain.Vo.MakeReturnOrderVO; +import com.ruoyi.system.domain.exportDto.MakeReturnOrderDto; import com.ruoyi.system.service.IMakeReturnOrderDetailService; import com.ruoyi.warehouse.domain.VO.WarehouseInventoryReportDamageVo; +import com.ruoyi.warehouse.domain.WarehouseInventoryReportDamage; import com.ruoyi.warehouse.domain.WarehouseInventoryReportDamageChild; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; @@ -20,6 +22,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; @@ -87,10 +90,10 @@ public class MakeReturnOrderController extends BaseController @Log(title = "生产退料单", businessType = BusinessType.EXPORT) @PostMapping("/export") @ResponseBody - public AjaxResult export(MakeReturnOrderVO makeReturnOrderVO) + public AjaxResult export(MakeReturnOrderVO makeReturnOrderVO, String ids) { - List list = makeReturnOrderService.selectMakeReturnOrderList(makeReturnOrderVO); - ExcelUtil util = new ExcelUtil(MakeReturnOrderVO.class); + List list = makeReturnOrderService.getMakeReturnExportList(makeReturnOrderVO,ids); + ExcelUtil util = new ExcelUtil(MakeReturnOrderDto.class); return util.exportExcel(list, "生产退料单数据"); } @@ -163,7 +166,7 @@ public class MakeReturnOrderController extends BaseController String verifyName = task.getTaskDefinitionKey().substring(0, 1).toUpperCase() + task.getTaskDefinitionKey().substring(1); boolean approvedFlag = processService.complete(taskId, instanceId, makeReturnOrderVO.getApplyTitle(), makeReturnOrderVO.getMakeReturnOrderCode(), - "makeorderPick", new HashMap(), request); + "makeorderReturn", new HashMap(), request); if(!approvedFlag){ // 审核状态-审核拒绝 makeReturnOrderVO.setAuditStatus("2"); diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/domain/exportDto/MakeReturnOrderDto.java b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/exportDto/MakeReturnOrderDto.java new file mode 100644 index 00000000..75de5bd4 --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/domain/exportDto/MakeReturnOrderDto.java @@ -0,0 +1,108 @@ +package com.ruoyi.system.domain.exportDto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import lombok.Data; + +import java.util.Date; + +/* +* 生产退料单导出对象*/ +@Data +public class MakeReturnOrderDto extends BaseEntity { + + /** 生产退料单号 */ + @Excel(name = "生产退料单号") + private String makeReturnOrderCode; + + /** 生产领料单号 */ + @Excel(name = "生产领料单号") + private String pickNo; + + /** 退料状态(0待退料,1部分退料,2全部退料) */ + @Excel(name = "退料状态", dictType = "return_status") + private String returnStatus; + + /** 物料合计 */ + @Excel(name = "物料合计") + private Integer materialSum; + + /** 退料数量合计 */ + @Excel(name = "退料数合计") + private Integer returnSum; + + /** 合格数 */ + @Excel(name = "合格数") + private Integer qualifiedNum; + + /** 不良数 */ + @Excel(name = "不良数") + private Integer unqualifiedNum; + + /** 入库数 */ + @Excel(name = "入库数") + private Integer storageNum; + + /** 申请人 */ + @Excel(name = "申请人") + private String applyUser; + + /** 申请时间 */ + @JsonFormat(pattern = "yyyy-MM-dd") + @Excel(name = "申请时间", width = 30, dateFormat = "yyyy-MM-dd") + private Date applyTime; + + /** 审核状态(0待审核,1审核通过,2审核拒绝) */ + @Excel(name = "审核状态", dictType = "auditStatus") + private String auditStatus; + + /** 料号 */ + @Excel(name = "料号") + private String materialNo; + + /** 物料名称 */ + @Excel(name = "物料名称") + private String materialName; + + /** 图片 */ + @Excel(name = "图片") + private String photoUrl; + + /** 物料型号 */ + @Excel(name = "物料型号") + private String materialModel; + + /** 加工方式 */ + @Excel(name = "加工方式",dictType = "processMethod") + private String processMethod; + + /** 品牌 */ + @Excel(name = "品牌 ") + private String brand; + + /** 单位 */ + @Excel(name = "单位") + private String unit; + + /** 描述 */ + @Excel(name = "描述") + private String describe; + + /** 用量 */ + @Excel(name = "用量") + private Integer useNum; + + /** 已领料数 */ + @Excel(name = "已领料数") + private Integer hasPickNum; + + /** 已退料数 */ + @Excel(name = "实际已退料数") + private Integer hasReturnNum; + + /** 本次退料数 */ + @Excel(name = "本次退料数") + private Integer returnNum; + +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderDetailMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderDetailMapper.java index 3c5c99dc..141fb5dd 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderDetailMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderDetailMapper.java @@ -74,4 +74,8 @@ public interface MakeReturnOrderDetailMapper * @return 结果 */ public int restoreMakeReturnOrderDetailById(Long id); + + /* + * 根据退料单号和料号查询退料单详情*/ + public MakeReturnOrderDetail selectMakeReturnOrderDetailByNos(MakeReturnOrderDetail returnOrderDetail); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderMapper.java b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderMapper.java index f4300e94..2b88c519 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderMapper.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/mapper/MakeReturnOrderMapper.java @@ -78,4 +78,7 @@ public interface MakeReturnOrderMapper /*根据退料单号查询退料单*/ public MakeReturnOrder selectMakeReturnOrderByCode(String code); + + /*根据退料单号批量查询退料单*/ + public List selectMakeReturnOrderByCodes(String[] code); } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/MakeReturnOrderServiceImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/MakeReturnOrderServiceImpl.java index 0e9c63cd..86688f67 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/MakeReturnOrderServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/MakeReturnOrderServiceImpl.java @@ -1,9 +1,6 @@ package com.ruoyi.system.service.impl; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.util.*; import com.github.pagehelper.Page; import com.ruoyi.common.core.domain.entity.SysUser; @@ -22,6 +19,7 @@ import com.ruoyi.quality.mapper.QualityOrderDetailMapper; import com.ruoyi.quality.mapper.QualityOrderMapper; import com.ruoyi.system.domain.*; import com.ruoyi.system.domain.Vo.MakeReturnOrderVO; +import com.ruoyi.system.domain.exportDto.MakeReturnOrderDto; import com.ruoyi.system.mapper.MakeReturnOrderDetailMapper; import com.ruoyi.system.mapper.SysUserMapper; import com.ruoyi.system.service.ISysRoleService; @@ -184,6 +182,7 @@ public class MakeReturnOrderServiceImpl implements IMakeReturnOrderService detail.setMakeReturnOrderCode(code); detail.setPickNo(pickNo); detail.setAuditStatus("0"); + detail.setHasReturnNum(0); detail.setCreateBy(loginName); detail.setCreateTime(DateUtils.getNowDate()); int insertResult = returnOrderDetailMapper.insertMakeReturnOrderDetail(detail); @@ -253,7 +252,7 @@ public class MakeReturnOrderServiceImpl implements IMakeReturnOrderService private ProcessInstance startProcessInstance(String applyTitle, String instanceType, MakeReturnOrder makeReturnOrder, SysUser user) { Long pickId = makeReturnOrder.getId(); String businessKey = pickId.toString(); // 实体类 ID,作为流程的业务 key - String key = "makeorderpick"; + String key = "makeorderReturn"; Map variables = new HashMap<>(); // 构造authority传参 buildAuthority(user, variables); @@ -384,4 +383,56 @@ public class MakeReturnOrderServiceImpl implements IMakeReturnOrderService return makeReturnOrderMapper.updateMakeReturnOrder(makeReturnOrderVO); } + /** + * 获取生产退料单导出列表 + */ + public List getMakeReturnExportList(MakeReturnOrderVO makeReturnOrderVO, String ids){ + List list = new ArrayList<>(); + List makeReturnOrders = new ArrayList<>(); + + if(ids == null){ + makeReturnOrders = makeReturnOrderMapper.selectMakeReturnOrderList(makeReturnOrderVO); + }else{ + makeReturnOrders = makeReturnOrderMapper.selectMakeReturnOrderByCodes(Convert.toStrArray(ids)); + } + if(StringUtils.isNotEmpty(makeReturnOrders)){ + for (MakeReturnOrderVO returnOrder: makeReturnOrders) { + String returnOrderCode = returnOrder.getMakeReturnOrderCode(); + MakeReturnOrderDetail tempDetail = new MakeReturnOrderDetail(); + tempDetail.setMakeReturnOrderCode(returnOrderCode); + List orderDetails = returnOrderDetailMapper.selectMakeReturnOrderDetailList(tempDetail); + + if(StringUtils.isNotEmpty(orderDetails)){ + for (MakeReturnOrderDetail detail: orderDetails) { + MakeReturnOrderDto returnDto = new MakeReturnOrderDto(); + returnDto.setMakeReturnOrderCode(returnOrderCode); + returnDto.setPickNo(returnOrder.getPickNo()); + returnDto.setReturnStatus(returnOrder.getReturnStatus()); + returnDto.setMaterialSum(returnOrder.getMaterialSum()); + returnDto.setReturnSum(returnOrder.getReturnSum()); + returnDto.setQualifiedNum(returnOrder.getQualifiedNum()); + returnDto.setUnqualifiedNum(returnOrder.getUnqualifiedNum()); + returnDto.setStorageNum(returnOrder.getStorageNum()); + returnDto.setAuditStatus(returnOrder.getAuditStatus()); + returnDto.setApplyUser(returnOrder.getApplyUser()); + returnDto.setApplyTime(returnOrder.getApplyTime()); + returnDto.setMaterialNo(detail.getMaterialNo()); + returnDto.setMaterialName(detail.getMaterialName()); + returnDto.setMaterialModel(detail.getMaterialModel()); + returnDto.setPhotoUrl(detail.getPhotoUrl()); + returnDto.setProcessMethod(detail.getProcessMethod()); + returnDto.setUnit(detail.getUnit()); + returnDto.setBrand(detail.getBrand()); + returnDto.setDescribe(detail.getDescribe()); + returnDto.setUseNum(detail.getUseNum()); + returnDto.setHasPickNum(detail.getHasPickNum()); + returnDto.setHasReturnNum(detail.getHasReturnNum()); + returnDto.setReturnNum(detail.getReturnNum()); + list.add(returnDto); + } + } + } + } + return list; + } } diff --git a/ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderDetailMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderDetailMapper.xml index ed01f5c3..a1991488 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderDetailMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderDetailMapper.xml @@ -150,4 +150,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" update make_return_order_detail set del_flag = '0' where id = #{id} + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderMapper.xml b/ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderMapper.xml index 2c589e69..ebbd5950 100644 --- a/ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/system/MakeReturnOrderMapper.xml @@ -55,7 +55,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and apply_title = #{applyTitle} and apply_user = #{applyUser} and apply_time = #{applyTime} + + and Date(apply_time) between #{params.beginApplyTime} and #{params.endApplyTime} + + order by create_time desc , audit_status asc + + + \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/refundsExchanges.html b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/refundsExchanges.html index 90221ed0..29e60b6b 100644 --- a/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/refundsExchanges.html +++ b/ruoyi-admin/src/main/resources/templates/quality/refundsExchanges/refundsExchanges.html @@ -220,7 +220,7 @@ } /*入库后退货-确认供应商-没有供应商*/ - if (row.qualityReturnNode == 1 && row.qualityPurchaseStatus == 0 && row.qualityWarehouseStatus == 1){ + if (row.qualityReturnNode == 1 && row.qualityPurchaseStatus == 0 && row.qualityWarehouseStatus == 0){ actions.push('确认供应商 '); } /*入库前退换货-确认收货-已有供应商*/ diff --git a/ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/detail.html b/ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/detail.html index e823a0d3..7d4dc295 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/detail.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/detail.html @@ -171,7 +171,7 @@ { field: 'hasReturnNum', align: 'center', - title: '已退料数', + title: '实际已退料数', formatter: function (value,row,index){ if (value == null || value == ''){ return 0; diff --git a/ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/makeReturnOrder.html b/ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/makeReturnOrder.html index 4f48f69f..5d1c548e 100644 --- a/ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/makeReturnOrder.html +++ b/ruoyi-admin/src/main/resources/templates/system/makeReturnOrder/makeReturnOrder.html @@ -38,7 +38,9 @@
  • - + + - +
  •  搜索 @@ -148,7 +150,7 @@ {title: '流程作废实例ID',field: 'cancelInstanceId',visible: false,align: 'center',}, {title: '流程恢复实例ID',field: 'restoreInstanceId', visible: false,align: 'center',}, {title: '流程实例类型', field: 'instanceTypeName',visible: false,align: 'center',}, - {title: '申请人',field: 'applyUserName', align: 'center', + {title: '申请人',field: 'applyUser', align: 'center', // formatter: function(value, row, index) {return '' + (value ? value : "-") + '';} }, {title: '当前任务ID',field: 'taskId',visible: false,align: 'center',}, @@ -195,12 +197,45 @@ } // actions.push('编辑 '); actions.push('详情 '); - return actions.join(''); + var actionLinks = actions.join(''); + return $.table.dropdownToggle(actionLinks); } - }] + }], + rowStyle: function (row, index) { + if (row.auditStatus=="0") { + // 如果审核状态为待审核,则设置为红色 + return {css:{"color":"red"}}; + } + // 否则使用默认样式 + return {}; + } }; $.table.init(options); }); + + // 导出 + function exportExcel() { + var ids = $.table.selectColumns("makeReturnOrderCode"); + 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