From 7b3ea8773c06a366b946ee7da3db46b126ec2b81 Mon Sep 17 00:00:00 2001 From: renfan <2206580733@qq.com> Date: Thu, 19 Sep 2024 22:20:32 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90admin&front=E3=80=91=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E&=E4=BC=98=E5=8C=96=20#=201=E3=80=81=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=90=8E=E5=8F=B0=E6=A8=A1=E5=9D=97=E7=BB=B4=E4=BF=AE=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8=E6=94=AF=E6=8C=81=E5=AF=BC=E5=87=BAexcel=202=E3=80=81?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=B4=E4=BF=AE=E5=8D=95=E7=9A=84=E5=B7=A5?= =?UTF-8?q?=E5=8D=95=E6=AD=A5=E9=AA=A4=E5=9B=BE=E7=89=87=E4=B8=8D=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E9=97=AE=E9=A2=98=203=E3=80=81=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E6=A3=80=E4=BF=AE=E5=8D=95=E3=80=81=E7=BB=B4=E4=BF=AE=E5=8D=95?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E9=85=8D=E4=BB=B6=E9=A2=86=E7=94=A8=E7=8A=B6?= =?UTF-8?q?=E6=80=81=204=E3=80=81=E6=96=B0=E5=A2=9E=E7=BB=B4=E4=BF=AE?= =?UTF-8?q?=E5=8D=95=E6=98=BE=E7=A4=BA=E4=BB=93=E7=AE=A1=E5=91=98=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E7=9A=84=E7=85=A7=E7=89=87?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/pom.xml | 5 - .../order/RepairOrderController.java | 21 +++ .../service/crontab/impl/OrderCrontab.java | 4 +- .../service/order/IRepairOrderService.java | 9 ++ .../admin/service/order/RepairOrderExcel.java | 47 ++++++ .../impl/MaintenanceOrderServiceImpl.java | 18 +++ .../order/impl/RepairOrderServiceImpl.java | 135 +++++++++++++++++- .../impl/SparePartStockAuditServiceImpl.java | 2 + .../validate/order/MaintenanceOrderParam.java | 2 + .../validate/order/RepairOrderParam.java | 2 + .../vo/order/MaintenanceOrderDetailVo.java | 3 + .../vo/order/MaintenanceOrderListVo.java | 3 + .../hcy/admin/vo/order/RepairOrderListVo.java | 4 +- .../common/dto/order/MaintenanceOrderDto.java | 2 + .../common/entity/order/MaintenanceOrder.java | 2 +- .../SparePartStockAudit.java | 3 +- .../enums/order/RepairOrderStopEnum.java | 3 +- .../mapper/order/RepairOrderMapper.java | 7 + .../plugin/storage/engine/AliyunStorage.java | 2 +- .../resources/mapper/RepairOrderMapper.xml | 69 +++++++++ .../impl/MaintenanceOrderServiceImpl.java | 16 +++ .../order/impl/RepairOrderServiceImpl.java | 16 ++- .../validate/order/MaintenanceOrderParam.java | 1 + .../vo/order/MaintenanceOrderDetailVo.java | 2 + .../vo/order/MaintenanceOrderListVo.java | 2 + .../front/vo/order/RepairOrderDetailVo.java | 1 + .../hcy/front/vo/order/RepairOrderListVo.java | 1 + 27 files changed, 364 insertions(+), 18 deletions(-) create mode 100644 admin/src/main/java/com/hcy/admin/service/order/RepairOrderExcel.java diff --git a/admin/pom.xml b/admin/pom.xml index b958acf..2301c33 100644 --- a/admin/pom.xml +++ b/admin/pom.xml @@ -21,7 +21,6 @@ org.hcy common - 1.0.0 org.hcy @@ -44,10 +43,6 @@ 2.0.12 compile - - org.hcy - common - org.apache.tomcat.embed tomcat-embed-core diff --git a/admin/src/main/java/com/hcy/admin/controller/order/RepairOrderController.java b/admin/src/main/java/com/hcy/admin/controller/order/RepairOrderController.java index da5b1f0..5a6bd7a 100644 --- a/admin/src/main/java/com/hcy/admin/controller/order/RepairOrderController.java +++ b/admin/src/main/java/com/hcy/admin/controller/order/RepairOrderController.java @@ -1,8 +1,11 @@ package com.hcy.admin.controller.order; import com.hcy.admin.config.aop.Log; +import com.hcy.admin.service.order.DistributionOrderExcel; import com.hcy.admin.service.order.IRepairOrderService; +import com.hcy.admin.service.order.RepairOrderExcel; import com.hcy.admin.validate.order.MaintenanceOrderParam; +import com.hcy.admin.validate.order.OrderDistributionParam; import com.hcy.admin.validate.order.RepairOrderParam; import com.hcy.admin.validate.common.PageParam; import com.hcy.admin.validate.order.RoutingInspectionOrderParam; @@ -10,16 +13,22 @@ import com.hcy.admin.vo.order.RepairOrderListVo; import com.hcy.admin.vo.order.RepairOrderDetailVo; import com.hcy.common.core.AjaxResult; import com.hcy.common.core.PageResult; +import com.hcy.common.utils.ExcelUtils; import com.hcy.common.validator.annotation.IDMust; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import java.util.List; import java.util.Map; /** * 维修订单管理 */ +@Slf4j @RestController @RequestMapping("api/order/repairOrder") public class RepairOrderController { @@ -137,4 +146,16 @@ public class RepairOrderController { iRepairOrderService.returnRepair(repairOrderParam); return AjaxResult.success(); } + + //导出Excel + @ApiOperation(value = "模块管理 - 导出模块维修报表") + @PostMapping(value="/exportModuleMaintenanceExcel") + public void exportModuleMaintenanceExcel(@Validated @RequestBody RepairOrderParam params, HttpServletResponse response) { + try { + List list = iRepairOrderService.getExportModuleMaintenanceExcel(params); + ExcelUtils.export2Web(response, "模块维修报表", "模块维修报表", RepairOrderExcel.class, list); + } catch (Exception e) { + log.error("报表导出异常:", e); + } + } } diff --git a/admin/src/main/java/com/hcy/admin/service/crontab/impl/OrderCrontab.java b/admin/src/main/java/com/hcy/admin/service/crontab/impl/OrderCrontab.java index e9421c5..7e7d88a 100644 --- a/admin/src/main/java/com/hcy/admin/service/crontab/impl/OrderCrontab.java +++ b/admin/src/main/java/com/hcy/admin/service/crontab/impl/OrderCrontab.java @@ -211,7 +211,7 @@ public class OrderCrontab { //判断当前维修单是加急还是普通 priority; // 优先级(0=普通,1=加急) if(item.getPriority() == RepairOrderStatusEnum.URGENT.getStatus()){ //加急维修单状态停滞一天,需要提醒 - orderCreateTime.add(Calendar.MINUTE, 1); + orderCreateTime.add(Calendar.MINUTE, 1440); if(currentTime.compareTo(orderCreateTime) > 0){ item.setTimeoutOrNot(RepairOrderStatusEnum.YES.getStatus());// 是否超时(0=是,1=否) repairOrderMapper.updateById(item); @@ -219,7 +219,7 @@ public class OrderCrontab { } else if (item.getPriority() == RepairOrderStatusEnum.COMMON.getStatus()) { //普通维修单状态停滞三天,需要提醒 - orderCreateTime.add(Calendar.MINUTE, 3); + orderCreateTime.add(Calendar.MINUTE, 4320); if(currentTime.compareTo(orderCreateTime) > 0){ item.setTimeoutOrNot(RepairOrderStatusEnum.YES.getStatus());// 是否超时(0=是,1=否) repairOrderMapper.updateById(item); diff --git a/admin/src/main/java/com/hcy/admin/service/order/IRepairOrderService.java b/admin/src/main/java/com/hcy/admin/service/order/IRepairOrderService.java index 3cef49c..3432003 100644 --- a/admin/src/main/java/com/hcy/admin/service/order/IRepairOrderService.java +++ b/admin/src/main/java/com/hcy/admin/service/order/IRepairOrderService.java @@ -6,6 +6,8 @@ import com.hcy.admin.vo.order.RepairOrderListVo; import com.hcy.admin.vo.order.RepairOrderDetailVo; import com.hcy.common.core.PageResult; +import javax.servlet.http.HttpServletResponse; +import java.util.List; import java.util.Map; /** @@ -71,4 +73,11 @@ public interface IRepairOrderService { * @param repairOrderParam */ void returnRepair(RepairOrderParam repairOrderParam); + + /** + * 导出模块维修报表 + * @param params + * @return + */ + List getExportModuleMaintenanceExcel(RepairOrderParam params); } diff --git a/admin/src/main/java/com/hcy/admin/service/order/RepairOrderExcel.java b/admin/src/main/java/com/hcy/admin/service/order/RepairOrderExcel.java new file mode 100644 index 0000000..f2c61e2 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/service/order/RepairOrderExcel.java @@ -0,0 +1,47 @@ +package com.hcy.admin.service.order; + +import com.alibaba.excel.annotation.ExcelProperty; +import com.alibaba.excel.annotation.write.style.ColumnWidth; +import com.hcy.admin.vo.sparePartStockAudit.SparePartStockAuditDetailVo; +import com.hcy.common.entity.order.OrderPartCode; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * RepairOrderExcel + */ +@Data +public class RepairOrderExcel implements Serializable { + + + /*private Long id; // 主键id + private String orderNo; // 订单编号*/ + + @ColumnWidth(20) // 定义列宽 + @ExcelProperty(value = {"模块号"}, index = 0) + private String moduleNumber; // 模块号 + @ColumnWidth(20) // 定义列宽 + @ExcelProperty(value = {"模块代码"}, index = 1) + private String moduleCode; // 模块代码 + @ColumnWidth(20) // 定义列宽 + @ExcelProperty(value = {"发现时间"}, index = 2) + private Date createTime; // 创建时间 + @ColumnWidth(20) // 定义列宽 + @ExcelProperty(value = {"维修前(现场图片)"}, index = 3) + private String preMaintenanceImg; // 维修前照片 + @ColumnWidth(20) // 定义列宽 + @ExcelProperty(value = {"维修中"}, index = 4) + private String inMaintenanceImg; // 维修中照片 + @ColumnWidth(20) // 定义列宽 + @ExcelProperty(value = {"维修后"}, index = 5) + private String afterRepairImg; // 维修后照片 + @ColumnWidth(20) // 定义列宽 + @ExcelProperty(value = {"故障原因"}, index = 6) + private String faultName; //故障名称 + @ExcelProperty(value = {"是否报废"}, index = 7) + private String scrapOrNot; // 是否报废(0=是,1=否) + +} diff --git a/admin/src/main/java/com/hcy/admin/service/order/impl/MaintenanceOrderServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/order/impl/MaintenanceOrderServiceImpl.java index a817868..5565982 100644 --- a/admin/src/main/java/com/hcy/admin/service/order/impl/MaintenanceOrderServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/order/impl/MaintenanceOrderServiceImpl.java @@ -35,6 +35,8 @@ import com.hcy.common.entity.system.SystemAuthAdmin; import com.hcy.common.entity.user.User; import com.hcy.common.entity.warehouse.Warehouse; import com.hcy.common.enums.ClientStatusEnum; +import com.hcy.common.enums.OrderStatusEnum; +import com.hcy.common.enums.OrderTypeEnum; import com.hcy.common.enums.SparePartStockAuditEnum; import com.hcy.common.enums.equipment.EquipmentStateEnum; import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; @@ -187,6 +189,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { } } + //配件领用状态 + SparePartStockAudit sparePartStockAudit = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper() + .eq(SparePartStockAudit::getOrderId, item.getId()) + .eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus())); + if(sparePartStockAudit != null){ + vo.setReceiveStatus(sparePartStockAudit.getReceiveStatus()); + } + list.add(vo); } @@ -318,6 +328,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { } } + //配件领用状态 + SparePartStockAudit receiverStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper() + .eq(SparePartStockAudit::getOrderId, model.getId()) + .eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus())); + if(receiverStatus != null){ + vo.setReceiveStatus(receiverStatus.getReceiveStatus()); + } + return vo; } diff --git a/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderServiceImpl.java index b08191b..61a3e45 100644 --- a/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderServiceImpl.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.query.MPJQueryWrapper; import com.hcy.admin.AdminThreadLocal; +import com.hcy.admin.service.order.DistributionOrderExcel; import com.hcy.admin.service.order.IRepairOrderService; +import com.hcy.admin.service.order.RepairOrderExcel; import com.hcy.admin.service.region.IDevRegionService; import com.hcy.admin.validate.common.PageParam; import com.hcy.admin.validate.order.RepairOrderParam; @@ -33,10 +35,7 @@ import com.hcy.common.entity.system.SystemAuthAdmin; import com.hcy.common.entity.user.User; import com.hcy.common.entity.warehouse.Warehouse; import com.hcy.common.enums.SparePartStockAuditEnum; -import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; -import com.hcy.common.enums.order.OrderOperateRecordEnum; -import com.hcy.common.enums.order.OrderStateEnum; -import com.hcy.common.enums.order.RepairOrderStatusEnum; +import com.hcy.common.enums.order.*; import com.hcy.common.exception.OperateException; import com.hcy.common.mapper.address.UserAddressMapper; import com.hcy.common.mapper.client.ClientMapper; @@ -186,6 +185,36 @@ public class RepairOrderServiceImpl implements IRepairOrderService { .eq(OrderPartCode::getRepairOrderId, vo.getId())); vo.setOrderPartCodeList(orderPartCodes); + //返回前中后照片 + //返回维修前照片 + RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, item.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); + if(preMaintenanceImg != null){ + vo.setPreMaintenanceImg(preMaintenanceImg.getImg()); + } + //返回维修中照片 + RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, item.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); + if(inMaintenanceImg != null){ + vo.setInMaintenanceImg(inMaintenanceImg.getImg()); + } + //返回维修后照片 + RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, item.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); + if(afterRepairImg != null){ + vo.setAfterRepairImg(afterRepairImg.getImg()); + } + //返回故障点照片 faultPointImg; // 故障点照片 + RepairOrderStepData troubleshooting = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, item.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.TROUBLESHOOTING.getStatus())); + if(troubleshooting != null){ + vo.setFaultPointImg(troubleshooting.getImg()); + } + vo.setCreateTime(item.getCreateTime()); vo.setUpdateTime(item.getUpdateTime()); list.add(vo); @@ -374,6 +403,36 @@ public class RepairOrderServiceImpl implements IRepairOrderService { vo.setOrderOperateRecords(stepDataVoList); } + //返回前中后照片 + //返回维修前照片 + RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, model.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); + if(preMaintenanceImg != null){ + vo.setPreMaintenanceImg(preMaintenanceImg.getImg()); + } + //返回维修中照片 + RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, model.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); + if(inMaintenanceImg != null){ + vo.setInMaintenanceImg(inMaintenanceImg.getImg()); + } + //返回维修后照片 + RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, model.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); + if(afterRepairImg != null){ + vo.setAfterRepairImg(afterRepairImg.getImg()); + } + //返回故障点照片 faultPointImg; // 故障点照片 + RepairOrderStepData troubleshooting = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, model.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.TROUBLESHOOTING.getStatus())); + if(troubleshooting != null){ + vo.setFaultPointImg(troubleshooting.getImg()); + } + return vo; } @@ -596,4 +655,72 @@ public class RepairOrderServiceImpl implements IRepairOrderService { throw new OperateException("当前工单状态,无法退回维修"); } } + + /** + * 导出模块维修报表 + * + * @param params + * @return + */ + @Override + public List getExportModuleMaintenanceExcel(RepairOrderParam params) { + + RepairOrderDto repairOrderDto = new RepairOrderDto(); + BeanUtils.copyProperties(params,repairOrderDto); + + List resultDtoList = repairOrderMapper.getExportModuleMaintenanceExcel(repairOrderDto); + List list = new LinkedList<>(); + + for (RepairOrderDto item : resultDtoList) { + RepairOrderExcel repairOrderExcel = new RepairOrderExcel(); + BeanUtils.copyProperties(item, repairOrderExcel); + + //返回前中后照片 + //返回维修前照片 + RepairOrderStepData preMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, item.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.PRE_MAINTENANCE_IMG.getStatus())); + if(preMaintenanceImg != null){ + repairOrderExcel.setPreMaintenanceImg(preMaintenanceImg.getImg()); + } + //返回维修中照片 + RepairOrderStepData inMaintenanceImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, item.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.IN_MAINTENANCE_IMG.getStatus())); + if(inMaintenanceImg != null){ + repairOrderExcel.setInMaintenanceImg(inMaintenanceImg.getImg()); + } + //返回维修后照片 + RepairOrderStepData afterRepairImg = repairOrderStepDataMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrderStepData::getRepairOrderId, item.getId()) + .eq(RepairOrderStepData::getRepairStep, RepairOrderStopEnum.AFTER_REPAIR_IMG.getStatus())); + if(afterRepairImg != null){ + repairOrderExcel.setAfterRepairImg(afterRepairImg.getImg()); + } + + //故障类型名称 + Fault faultName = faultMapper.selectOne( + new LambdaQueryWrapper() + .eq(Fault::getId, item.getFaultId())); + if(faultName != null){ + repairOrderExcel.setFaultName(faultName.getName()); + } + + // scrapOrNot 是否报废(0=是,1=否) + if(item.getScrapOrNot() != null){ + if(item.getScrapOrNot() == 0){ + repairOrderExcel.setScrapOrNot("是"); + } else if (item.getScrapOrNot() == 1) { + repairOrderExcel.setScrapOrNot("否"); + } + } + + + list.add(repairOrderExcel); + } + + return list; + } + + } diff --git a/admin/src/main/java/com/hcy/admin/service/sparePartStockAudit/impl/SparePartStockAuditServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/sparePartStockAudit/impl/SparePartStockAuditServiceImpl.java index 40f3d66..c379974 100644 --- a/admin/src/main/java/com/hcy/admin/service/sparePartStockAudit/impl/SparePartStockAuditServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/sparePartStockAudit/impl/SparePartStockAuditServiceImpl.java @@ -1173,7 +1173,9 @@ public class SparePartStockAuditServiceImpl implements ISparePartStockAuditServi //新增维修单操作记录 RepairOrderStepData repairOrderStepData = new RepairOrderStepData(); repairOrderStepData.setRepairOrderId(model.getOrderId());// 维修单id + repairOrderStepData.setRepairStep(RepairOrderStopEnum.WAREHOUSE_KEEPER_UPLOADS_IMG.getStatus()); // 仓管员上传图片 repairOrderStepData.setRemark("仓管员【"+AdminThreadLocal.get("username")+"】上传确认照片。");// 备注 + repairOrderStepData.setImg(model.getWarehouseKeeperImg()); // 仓管员上传图片 repairOrderStepData.setTitle("仓管员上传确认照片"); // 标题 repairOrderStepData.setCreatorId(Long.valueOf(AdminThreadLocal.getAdminId())); //创建人 repairOrderStepData.setCreateTime(new Date()); // 创建时间 diff --git a/admin/src/main/java/com/hcy/admin/validate/order/MaintenanceOrderParam.java b/admin/src/main/java/com/hcy/admin/validate/order/MaintenanceOrderParam.java index 85b3287..23c2501 100644 --- a/admin/src/main/java/com/hcy/admin/validate/order/MaintenanceOrderParam.java +++ b/admin/src/main/java/com/hcy/admin/validate/order/MaintenanceOrderParam.java @@ -105,4 +105,6 @@ public class MaintenanceOrderParam implements Serializable { private String createTimeStart; //报修开始时间 private String createTimeEnd; //报修结束时间 + private String createImg; // 创建照片 + } diff --git a/admin/src/main/java/com/hcy/admin/validate/order/RepairOrderParam.java b/admin/src/main/java/com/hcy/admin/validate/order/RepairOrderParam.java index 7734e71..99be23f 100644 --- a/admin/src/main/java/com/hcy/admin/validate/order/RepairOrderParam.java +++ b/admin/src/main/java/com/hcy/admin/validate/order/RepairOrderParam.java @@ -90,7 +90,9 @@ public class RepairOrderParam implements Serializable { private BigDecimal totalAmount; // 总金额 private BigDecimal actualAmount; // 实际金额 private String returnCause; //退回原因 + private Integer scrapOrNot; // 是否报废(0=是,1=否) + private Integer scrapConfirmation; // 报废确认(0=是,1=否) private Integer priority; // 优先级(0=加急,1=普通) private Integer isReassignment; // 是否在改派中(0=是,1=否) private Integer reassignmentAgreeOrNot; // 改派是否同意(0=是,1=否) diff --git a/admin/src/main/java/com/hcy/admin/vo/order/MaintenanceOrderDetailVo.java b/admin/src/main/java/com/hcy/admin/vo/order/MaintenanceOrderDetailVo.java index 375c098..8bbe532 100644 --- a/admin/src/main/java/com/hcy/admin/vo/order/MaintenanceOrderDetailVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/order/MaintenanceOrderDetailVo.java @@ -70,4 +70,7 @@ public class MaintenanceOrderDetailVo implements Serializable { private List orderOperateRecords; //订单操作记录 private Date quotationTime; //报价时间 + private Integer receiveStatus; // 配件领用状态(0=未审核,1=审核未通过,2=待领取,3=待确认,4=已完成) + private String createImg; // 创建照片 + } diff --git a/admin/src/main/java/com/hcy/admin/vo/order/MaintenanceOrderListVo.java b/admin/src/main/java/com/hcy/admin/vo/order/MaintenanceOrderListVo.java index 9b5dc91..e90b318 100644 --- a/admin/src/main/java/com/hcy/admin/vo/order/MaintenanceOrderListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/order/MaintenanceOrderListVo.java @@ -57,5 +57,8 @@ public class MaintenanceOrderListVo implements Serializable { private String receiverName; // 接单人姓名 private String shortName; //客户简称 private EquipmentModelDetailVo equipmentModel; //设备模块信息 + private Integer receiveStatus; // 配件领用状态(0=未审核,1=审核未通过,2=待领取,3=待确认,4=已完成) + private String createImg; // 创建照片 + } diff --git a/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderListVo.java b/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderListVo.java index f2dac04..3113865 100644 --- a/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderListVo.java @@ -59,8 +59,8 @@ public class RepairOrderListVo implements Serializable { private String clientScrapRemark; // 客户报废备注 private String completeImg; // 完工照片 private Integer scrapOrNot; // 是否报废(0=是,1=否) - private String preMaintenanceImg; // 维修前照片 private String faultPointImg; // 故障点照片 + private String preMaintenanceImg; // 维修前照片 private String inMaintenanceImg; // 维修中照片 private String afterRepairImg; // 维修后照片 private Date orderAccomplishTime; // 订单完成时间 @@ -71,7 +71,7 @@ public class RepairOrderListVo implements Serializable { private String refuseMaintenanceCause; // 拒绝维修原因 private Long clientScrapAddressId; // 客户报废收货地址id - private Long scrapConfirmation; // 报废确认(0=是,1=否) + private Integer scrapConfirmation; // 报废确认(0=是,1=否) private SparePartStockAuditDetailVo sparePartStockAudit; //备件领用信息 diff --git a/common/src/main/java/com/hcy/common/dto/order/MaintenanceOrderDto.java b/common/src/main/java/com/hcy/common/dto/order/MaintenanceOrderDto.java index a456d4f..55790df 100644 --- a/common/src/main/java/com/hcy/common/dto/order/MaintenanceOrderDto.java +++ b/common/src/main/java/com/hcy/common/dto/order/MaintenanceOrderDto.java @@ -69,4 +69,6 @@ public class MaintenanceOrderDto implements Serializable { private String completeImg; // 完工照片 private String createTimeStart; //报修开始时间 private String createTimeEnd; //报修结束时间 + private String createImg; // 创建照片 + } diff --git a/common/src/main/java/com/hcy/common/entity/order/MaintenanceOrder.java b/common/src/main/java/com/hcy/common/entity/order/MaintenanceOrder.java index e094405..9172dc1 100644 --- a/common/src/main/java/com/hcy/common/entity/order/MaintenanceOrder.java +++ b/common/src/main/java/com/hcy/common/entity/order/MaintenanceOrder.java @@ -58,5 +58,5 @@ public class MaintenanceOrder implements Serializable { private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库 private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货 private String completeImg; // 完工照片 - + private String createImg; // 创建照片 } \ No newline at end of file diff --git a/common/src/main/java/com/hcy/common/entity/sparePartStockAudit/SparePartStockAudit.java b/common/src/main/java/com/hcy/common/entity/sparePartStockAudit/SparePartStockAudit.java index b085380..e290228 100644 --- a/common/src/main/java/com/hcy/common/entity/sparePartStockAudit/SparePartStockAudit.java +++ b/common/src/main/java/com/hcy/common/entity/sparePartStockAudit/SparePartStockAudit.java @@ -22,6 +22,7 @@ public class SparePartStockAudit implements Serializable { private Long id; // 主键id private String receiptNumber; // 单据编号 private Long orderId; //订单编号 + private Integer orderType; // 0-检修工单 1-维修工单 private Integer receiptType; // 单据类型(0=入库单,1=出库单,2=仓库调拨单) private Long warehouseId; // 所属仓库 private Long importWarehouse; // 调入仓库 @@ -40,7 +41,7 @@ public class SparePartStockAudit implements Serializable { private Date updateTime; // 更新时间 private Date deleteTime; // 删除时间 private Integer outInWarehouseType; // 出入库类别(0=采购入库,1=库存调拨,2=员工领料,3=销售出库) - private Integer orderType; // 0-检修工单 1-维修工单 + private String shippingAddress; //收货地址 private String consigner; //发货人 private String consignerPhone; //发货人联系电话 diff --git a/common/src/main/java/com/hcy/common/enums/order/RepairOrderStopEnum.java b/common/src/main/java/com/hcy/common/enums/order/RepairOrderStopEnum.java index d5d987e..ff3968e 100644 --- a/common/src/main/java/com/hcy/common/enums/order/RepairOrderStopEnum.java +++ b/common/src/main/java/com/hcy/common/enums/order/RepairOrderStopEnum.java @@ -12,7 +12,7 @@ public enum RepairOrderStopEnum { // 步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片, // 8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试, - // 15=包装出货,16=填写回单) + // 15=包装出货,16=填写回单) 99=仓管员上传图片 DISMANTLE(0,"拆机"), RINSE(1,"清洗"), TROUBLESHOOTING(2,"故障排查"), @@ -31,6 +31,7 @@ public enum RepairOrderStopEnum { PACKAGE_AND_SHIP(15,"包装出货"), FILL_IN_THE_RECEIPT(16,"填写回单"), FINISH(17, "结束"), + WAREHOUSE_KEEPER_UPLOADS_IMG(99,"仓管员上传图片"), //描述类型:0-配件领用 ACCESSORY_REQUISITION(0,"配件领用"); diff --git a/common/src/main/java/com/hcy/common/mapper/order/RepairOrderMapper.java b/common/src/main/java/com/hcy/common/mapper/order/RepairOrderMapper.java index 4cdc87e..f32d5f1 100644 --- a/common/src/main/java/com/hcy/common/mapper/order/RepairOrderMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/order/RepairOrderMapper.java @@ -36,6 +36,13 @@ public interface RepairOrderMapper extends IBaseMapper { */ Page pageList(@Param("page") Page page, @Param("form") RepairOrderDto form); + /** + * 导出模块维修报表 + * @param form + * @return + */ + List getExportModuleMaintenanceExcel(@Param("form") RepairOrderDto form); + /** * 通过订单id查询维修订单 * @return MaintenanceOrder diff --git a/common/src/main/java/com/hcy/common/plugin/storage/engine/AliyunStorage.java b/common/src/main/java/com/hcy/common/plugin/storage/engine/AliyunStorage.java index f173d62..4fcc7a2 100644 --- a/common/src/main/java/com/hcy/common/plugin/storage/engine/AliyunStorage.java +++ b/common/src/main/java/com/hcy/common/plugin/storage/engine/AliyunStorage.java @@ -34,7 +34,7 @@ public class AliyunStorage { * @return String */ public OSS ossClient() { - String endpoint = "https://oss-cn-shenzhen.aliyuncs.com"; + String endpoint = "https://oss-cn-guangzhou.aliyuncs.com"; String accessKeyId = this.config.get("accessKey"); String accessKeySecret = this.config.get("secretKey"); return new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); diff --git a/common/src/main/resources/mapper/RepairOrderMapper.xml b/common/src/main/resources/mapper/RepairOrderMapper.xml index 94359c4..78011ab 100644 --- a/common/src/main/resources/mapper/RepairOrderMapper.xml +++ b/common/src/main/resources/mapper/RepairOrderMapper.xml @@ -70,6 +70,15 @@ and ro.creator_id = #{form.creatorId} + + and ro.scrap_or_not = #{form.scrapOrNot} + + + and ro.module_number LIKE concat('%', #{form.moduleNumber}, '%') + + + and ro.module_code LIKE concat('%', #{form.moduleCode}, '%') + and u1.username LIKE concat('%', #{form.creatorName}, '%') @@ -107,4 +116,64 @@ + diff --git a/front/src/main/java/com/hcy/front/service/order/impl/MaintenanceOrderServiceImpl.java b/front/src/main/java/com/hcy/front/service/order/impl/MaintenanceOrderServiceImpl.java index 48192c9..4376848 100644 --- a/front/src/main/java/com/hcy/front/service/order/impl/MaintenanceOrderServiceImpl.java +++ b/front/src/main/java/com/hcy/front/service/order/impl/MaintenanceOrderServiceImpl.java @@ -317,6 +317,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { } } + //配件领用状态 + SparePartStockAudit receiveStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper() + .eq(SparePartStockAudit::getOrderId, item.getId()) + .eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus())); + if(receiveStatus != null){ + vo.setReceiveStatus(receiveStatus.getReceiveStatus()); + } + returnData.add(vo); } @@ -539,6 +547,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { } } + //配件领用状态 + SparePartStockAudit receiveStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper() + .eq(SparePartStockAudit::getOrderId, maintenanceOrder.getId()) + .eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.MAINTENANCE_ORDER.getStatus())); + if(receiveStatus != null){ + vo.setReceiveStatus(receiveStatus.getReceiveStatus()); + } + return vo; } diff --git a/front/src/main/java/com/hcy/front/service/order/impl/RepairOrderServiceImpl.java b/front/src/main/java/com/hcy/front/service/order/impl/RepairOrderServiceImpl.java index 81bcffa..767772c 100644 --- a/front/src/main/java/com/hcy/front/service/order/impl/RepairOrderServiceImpl.java +++ b/front/src/main/java/com/hcy/front/service/order/impl/RepairOrderServiceImpl.java @@ -548,6 +548,14 @@ public class RepairOrderServiceImpl implements IRepairOrderService { .eq(OrderPartCode::getRepairOrderId, vo.getId())); vo.setOrderPartCodeList(orderPartCodes); + //配件领用状态 + SparePartStockAudit receiveStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper() + .eq(SparePartStockAudit::getOrderId, item.getId()) + .eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.REPAIR_ORDER.getStatus())); + if(receiveStatus != null){ + vo.setReceiveStatus(receiveStatus.getReceiveStatus()); + } + list.add(vo); } @@ -702,7 +710,13 @@ public class RepairOrderServiceImpl implements IRepairOrderService { vo.setRepairOrderStepDataList(stepDataVoList); } - + //配件领用状态 + SparePartStockAudit receiveStatus = sparePartStockAuditMapper.selectOne(new LambdaQueryWrapper() + .eq(SparePartStockAudit::getOrderId, model.getId()) + .eq(SparePartStockAudit::getOrderType, SparePartStockAuditEnum.REPAIR_ORDER.getStatus())); + if(receiveStatus != null){ + vo.setReceiveStatus(receiveStatus.getReceiveStatus()); + } return vo; } diff --git a/front/src/main/java/com/hcy/front/validate/order/MaintenanceOrderParam.java b/front/src/main/java/com/hcy/front/validate/order/MaintenanceOrderParam.java index 9f1860c..7b30844 100644 --- a/front/src/main/java/com/hcy/front/validate/order/MaintenanceOrderParam.java +++ b/front/src/main/java/com/hcy/front/validate/order/MaintenanceOrderParam.java @@ -123,5 +123,6 @@ public class MaintenanceOrderParam implements Serializable { private String moduleNo; // 模块号 private String moduleImg; // 模块图片 private String completeImg; // 完工照片 + private String createImg; // 创建照片 } diff --git a/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderDetailVo.java b/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderDetailVo.java index 7219ce3..10479fb 100644 --- a/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderDetailVo.java +++ b/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderDetailVo.java @@ -67,5 +67,7 @@ public class MaintenanceOrderDetailVo implements Serializable { private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息 private SparePartStockAuditDetailVo sparePartStockAudit; //备件领用信息 private String completeImg; // 完工照片 + private Integer receiveStatus; // 配件领用状态(0=未审核,1=审核未通过,2=待领取,3=待确认,4=已完成) + private String createImg; // 创建照片 } diff --git a/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderListVo.java b/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderListVo.java index 16b79c0..c6a9036 100644 --- a/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderListVo.java +++ b/front/src/main/java/com/hcy/front/vo/order/MaintenanceOrderListVo.java @@ -70,5 +70,7 @@ public class MaintenanceOrderListVo implements Serializable { private Integer completedCount; // 已完成数量 private String completeImg; // 完工照片 + private Integer receiveStatus; // 配件领用状态(0=未审核,1=审核未通过,2=待领取,3=待确认,4=已完成) + private String createImg; // 创建照片 } diff --git a/front/src/main/java/com/hcy/front/vo/order/RepairOrderDetailVo.java b/front/src/main/java/com/hcy/front/vo/order/RepairOrderDetailVo.java index ae1c91f..4607c34 100644 --- a/front/src/main/java/com/hcy/front/vo/order/RepairOrderDetailVo.java +++ b/front/src/main/java/com/hcy/front/vo/order/RepairOrderDetailVo.java @@ -111,5 +111,6 @@ public class RepairOrderDetailVo implements Serializable { private List repairOrderStepDataList; // 维修单步骤数据列表 private Integer timeoutOrNot; // 是否超时(0=是,1=否) private Integer maintainType; // 模块维修类型 0-全包 1-半包 + private Integer receiveStatus; // 配件领用状态(0=未审核,1=审核未通过,2=待领取,3=待确认,4=已完成) } diff --git a/front/src/main/java/com/hcy/front/vo/order/RepairOrderListVo.java b/front/src/main/java/com/hcy/front/vo/order/RepairOrderListVo.java index 71675d9..9ec5e85 100644 --- a/front/src/main/java/com/hcy/front/vo/order/RepairOrderListVo.java +++ b/front/src/main/java/com/hcy/front/vo/order/RepairOrderListVo.java @@ -89,5 +89,6 @@ public class RepairOrderListVo implements Serializable { private Integer repairNextStep; // 下个步骤(0=拆机,1=清洗,2=故障排查,3=确认签名,4=重领配件,5=上传维修前图片,6=上传维修中图片,7=上传维修后图片,8=补强三防漆,9=补强点胶,10=DC&PFC组装,11=补强三防漆和点胶,12=模块装配,13=功能测试,14=老化测试,15=包装出货,16=填写回单) private List orderPartCodeList; // 配件编码列表 private Integer timeoutOrNot; // 是否超时(0=是,1=否) + private Integer receiveStatus; // 配件领用状态(0=未审核,1=审核未通过,2=待领取,3=待确认,4=已完成) }