From 073ae3bb1b303f07d5f55224215b832fa23a300e Mon Sep 17 00:00:00 2001 From: renfan <2206580733@qq.com> Date: Thu, 29 Aug 2024 00:46:36 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90admin&front=E3=80=91=E6=96=B0=E5=A2=9E?= =?UTF-8?q?&=E4=BC=98=E5=8C=96#=201=E3=80=81=E6=96=B0=E5=A2=9E=E5=B0=8F?= =?UTF-8?q?=E7=A8=8B=E5=BA=8F-=E6=A3=80=E4=BF=AE=E5=8D=95=E3=80=81?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E5=8D=95=E3=80=81=E5=B7=A1=E6=A3=80=E5=8D=95?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=95=B0=E9=87=8F=E7=BB=9F=E8=AE=A1=202?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=BB=B4?= =?UTF-8?q?=E4=BF=AE=E5=8D=95=E6=95=85=E9=9A=9C=E6=A3=80=E6=B5=8B=203?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E6=95=B0=E6=8D=AE=E5=A4=A7=E5=B1=8F?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E5=8D=95=E5=88=97=E8=A1=A8=E3=80=81=E5=B7=A1?= =?UTF-8?q?=E6=A3=80=E5=8D=95=E5=88=97=E8=A1=A8=E3=80=81=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E3=80=81=E6=80=BB=E5=B7=A5=E5=8D=95=E6=95=B0?= =?UTF-8?q?=E3=80=81=E4=BB=8A=E6=97=A5=E5=B7=A5=E5=8D=95=E6=95=B0=204?= =?UTF-8?q?=E3=80=81=E6=96=B0=E5=A2=9E=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=BB=B4?= =?UTF-8?q?=E4=BF=AE=E5=8D=95=E7=A1=AE=E8=AE=A4=E6=9C=8D=E5=8A=A1=E6=8A=A5?= =?UTF-8?q?=E4=BB=B7=E3=80=81=E7=A1=AE=E8=AE=A4=E6=8A=A5=E5=BA=9F=E3=80=81?= =?UTF-8?q?=E9=87=8D=E6=96=B0=E6=A3=80=E6=B5=8B=E3=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=8A=A5=E4=BB=B7=E3=80=81=E9=80=80=E5=9B=9E?= =?UTF-8?q?=E7=BB=B4=E4=BF=AE=E5=91=98=E3=80=81=E4=B8=8A=E4=BC=A0=E7=BB=B4?= =?UTF-8?q?=E4=BF=AE=E4=B8=AD=E3=80=81=E7=BB=B4=E4=BF=AE=E5=90=8E=E7=85=A7?= =?UTF-8?q?=E7=89=87=E3=80=81=E5=A1=AB=E5=86=99=E6=8A=A5=E5=BA=9F=E5=8D=95?= =?UTF-8?q?=E3=80=81=E5=A1=AB=E5=86=99=E5=9B=9E=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../order/RepairOrderController.java | 26 ++ .../client/impl/EquipmentServiceImpl.java | 6 + .../impl/LargeDataScreenServiceImpl.java | 57 ++-- .../service/order/IRepairOrderService.java | 12 + .../order/impl/RepairOrderServiceImpl.java | 69 +++++ .../RoutingInspectionOrderServiceImpl.java | 1 + .../validate/order/RepairOrderParam.java | 4 + .../hcy/admin/vo/client/EquipmentListVo.java | 2 +- .../admin/vo/order/RepairOrderDetailVo.java | 3 + .../hcy/admin/vo/order/RepairOrderListVo.java | 4 + .../common/dto/order/MaintenanceOrderDto.java | 1 + .../hcy/common/dto/order/RepairOrderDto.java | 12 +- .../common/entity/order/MaintenanceOrder.java | 2 + .../hcy/common/entity/order/RepairOrder.java | 10 +- .../mapper/order/MaintenanceOrderMapper.java | 6 + .../mapper/order/RepairOrderMapper.java | 7 + .../order/RoutingInspectionOrderMapper.java | 7 + .../mapper/MaintenanceOrderMapper.xml | 18 ++ .../resources/mapper/RepairOrderMapper.xml | 29 +- .../mapper/RoutingInspectionOrderMapper.xml | 19 ++ .../order/MaintenanceOrderController.java | 8 + .../order/RepairOrderController.java | 64 +++++ .../RoutingInspectionOrderController.java | 9 + .../order/IMaintenanceOrderService.java | 8 + .../service/order/IRepairOrderService.java | 37 +++ .../order/IRoutingInspectionOrderService.java | 7 + .../impl/MaintenanceOrderServiceImpl.java | 73 ++++- .../order/impl/RepairOrderServiceImpl.java | 252 ++++++++++++++++-- .../RoutingInspectionOrderServiceImpl.java | 57 ++++ .../validate/order/MaintenanceOrderParam.java | 2 + .../validate/order/RepairOrderParam.java | 16 +- .../order/RoutingInspectionOrderParam.java | 1 + .../vo/order/MaintenanceOrderDetailVo.java | 2 + .../vo/order/MaintenanceOrderListVo.java | 9 + .../front/vo/order/OrderStatusCountVo.java | 24 ++ .../front/vo/order/RepairOrderDetailVo.java | 8 + .../hcy/front/vo/order/RepairOrderListVo.java | 6 + 37 files changed, 827 insertions(+), 51 deletions(-) create mode 100644 front/src/main/java/com/hcy/front/vo/order/OrderStatusCountVo.java 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 5e53382..2eee082 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 @@ -2,6 +2,7 @@ package com.hcy.admin.controller.order; import com.hcy.admin.config.aop.Log; import com.hcy.admin.service.order.IRepairOrderService; +import com.hcy.admin.validate.order.MaintenanceOrderParam; import com.hcy.admin.validate.order.RepairOrderParam; import com.hcy.admin.validate.common.PageParam; import com.hcy.admin.validate.order.RoutingInspectionOrderParam; @@ -138,4 +139,29 @@ public class RepairOrderController { return AjaxResult.success(); } + /** + * 更新服务报价 + * + * @param repairOrderParam 参数 + * @return Object + */ + @Log(title = "更新服务报价") + @PostMapping("/updateServiceOfferPrice") + public Object updateServiceOfferPrice(@RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.updateServiceOfferPrice(repairOrderParam); + return AjaxResult.success(); + } + + /** + * 退回维修员 + * + * @param repairOrderParam 参数 + * @return Object + */ + @Log(title = "退回检修") + @PostMapping("/returnRepair") + public Object returnRepair(@RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.returnRepair(repairOrderParam); + return AjaxResult.success(); + } } diff --git a/admin/src/main/java/com/hcy/admin/service/client/impl/EquipmentServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/client/impl/EquipmentServiceImpl.java index 5fdeb82..12c10ca 100644 --- a/admin/src/main/java/com/hcy/admin/service/client/impl/EquipmentServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/client/impl/EquipmentServiceImpl.java @@ -386,6 +386,12 @@ public class EquipmentServiceImpl implements IEquipmentService { vo.setCity(regionMap.get(vo.getCityId())); vo.setDistrict(regionMap.get(vo.getDistrictId())); vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime())); + //客户名称/客户简称 + Client client = clientMapper.selectOne( + new LambdaQueryWrapper() + .eq(Client::getId, item.getClientId())); + vo.setClientName(client.getClientName()); + vo.setShortName(client.getShortName()); list.add(vo); } diff --git a/admin/src/main/java/com/hcy/admin/service/largeDataScreen/impl/LargeDataScreenServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/largeDataScreen/impl/LargeDataScreenServiceImpl.java index 687c50a..0f2b3ef 100644 --- a/admin/src/main/java/com/hcy/admin/service/largeDataScreen/impl/LargeDataScreenServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/largeDataScreen/impl/LargeDataScreenServiceImpl.java @@ -1,5 +1,6 @@ package com.hcy.admin.service.largeDataScreen.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.hcy.admin.service.largeDataScreen.ILargeDataScreenService; import com.hcy.admin.service.region.IDevRegionService; @@ -7,6 +8,7 @@ import com.hcy.admin.vo.client.EquipmentListVo; import com.hcy.admin.vo.largeData.EquipmentLargeDataVo; import com.hcy.admin.vo.largeData.LargeDataVo; import com.hcy.admin.vo.largeData.UserLargeDataVo; +import com.hcy.common.constant.GlobalConstant; import com.hcy.common.dto.largeDataDto.AdminLargeDataDto; import com.hcy.common.dto.largeDataDto.ClientLargeDataDto; import com.hcy.common.dto.result.UserLargeDataDto; @@ -155,20 +157,24 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService { //客户总数 Integer clientCount = clientMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0)); + .eq("is_delete", GlobalConstant.NOT_DELETE)); //设备总数 Integer equipmentCount = equipmentMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0)); + .eq("is_delete", GlobalConstant.NOT_DELETE)); //工单总数=检修单总数+维修单总数+巡检单总数 //巡检单总数 Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0)); + .eq("is_delete", GlobalConstant.NOT_DELETE)); //检修单总数 Integer maintenanceOrderCount = maintenanceOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0)); + .eq("is_delete", GlobalConstant.NOT_DELETE)); + //维修单总数 + Integer repairOrderCount = repairOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE)); //今日工单总数=今日检修单总数+今日维修单总数+今日巡检单总数 LocalDateTime startTime = LocalDateTime.of(LocalDateTime.now().toLocalDate(), LocalTime.MIN); @@ -176,19 +182,26 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService { //今日检修单总数 Integer todayRoutingInspectionOrderCount = routingInspectionOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //今日检修单总数 Integer todayMaintenanceOrderCount = maintenanceOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 - vo.setClientSum(clientCount); - vo.setEquipmentSum(equipmentCount); - vo.setOrderSum(routingInspectionOrderCount + maintenanceOrderCount); - vo.setTodayOrderSum(todayRoutingInspectionOrderCount + todayMaintenanceOrderCount); + //今日维修单总数 + Integer todayRepairOrderCount = repairOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .ge(RepairOrder::getCreateTime, Timestamp.valueOf(startTime)) + .le(RepairOrder::getCreateTime, Timestamp.valueOf(endTime))); + + vo.setClientSum(clientCount); // 客户总数 + vo.setEquipmentSum(equipmentCount); // 设备总数 + vo.setOrderSum(routingInspectionOrderCount + maintenanceOrderCount + repairOrderCount); // 工单总数 + vo.setTodayOrderSum(todayRoutingInspectionOrderCount + todayMaintenanceOrderCount + todayRepairOrderCount); // 今日工单总数 return vo; } @@ -246,28 +259,28 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService { //获取巡检订单总数 Integer routingInspectionOrderCount = routingInspectionOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-巡检中;4-已完成;5-已退单;6-待巡检 //获取已完成订单总数 Integer doneOrderCount = routingInspectionOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .eq("order_status", OrderStateEnum.COMPLETED.getStatus()) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //获取巡检中订单总数 Integer underOverhaulOrderCount = routingInspectionOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .eq("order_status", OrderStateEnum.DURING_INSPECTION.getStatus()) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //获取报修中订单总数 Integer underWarrantyOrderCount = routingInspectionOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .ne("order_status", OrderStateEnum.COMPLETED.getStatus()) .ne("order_status", OrderStateEnum.DURING_INSPECTION.getStatus()) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 @@ -312,28 +325,28 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService { //获取巡检订单总数 Integer routingInspectionOrderCount = maintenanceOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭 //获取已完成订单总数 Integer doneOrderCount = maintenanceOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .eq("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus()) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //获取检修中订单总数 Integer underOverhaulOrderCount = maintenanceOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .eq("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //获取报修中订单总数 Integer underWarrantyOrderCount = maintenanceOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .ne("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus()) .ne("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 @@ -378,28 +391,28 @@ public class LargeDataScreenServiceImpl implements ILargeDataScreenService { //获取巡检订单总数 Integer routingInspectionOrderCount = repairOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭 //获取已完成订单总数 Integer doneOrderCount = repairOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .eq("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus()) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //获取检修中订单总数 Integer underOverhaulOrderCount = repairOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .eq("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 .le("create_time", Timestamp.valueOf(endTime))); // 结束时间 //获取报修中订单总数 Integer underWarrantyOrderCount = repairOrderMapper.selectCount( new QueryWrapper() - .eq("is_delete", 0) + .eq("is_delete", GlobalConstant.NOT_DELETE) .ne("order_status", MaintenanceOrderStatusEnum.FINISHED.getStatus()) .ne("order_status", MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()) .ge("create_time", Timestamp.valueOf(startTime)) // 开始时间 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 1579302..2fc1a89 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 @@ -73,4 +73,16 @@ public interface IRepairOrderService { * @param repairOrderParam */ void reassignment(RepairOrderParam repairOrderParam); + + /** + * 更新服务报价 + * @param repairOrderParam + */ + void updateServiceOfferPrice(RepairOrderParam repairOrderParam); + + /** + * 退回维修员 + * @param repairOrderParam + */ + void returnRepair(RepairOrderParam repairOrderParam); } 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 83b33bd..27cd88a 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 @@ -27,8 +27,10 @@ import com.hcy.common.entity.order.RoutingInspectionOrder; import com.hcy.common.entity.plant.Plant; import com.hcy.common.entity.system.SystemAuthAdmin; import com.hcy.common.entity.user.User; +import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; import com.hcy.common.enums.order.OrderStateEnum; import com.hcy.common.enums.order.RepairOrderStatusEnum; +import com.hcy.common.exception.OperateException; import com.hcy.common.mapper.address.UserAddressMapper; import com.hcy.common.mapper.client.ClientMapper; import com.hcy.common.mapper.client.EquipmentMapper; @@ -114,6 +116,19 @@ public class RepairOrderServiceImpl implements IRepairOrderService { vo.setPlantName(plant.getName()); } } + //返回客户简称和设备名称 + Client client = clientMapper.selectOne( + new LambdaQueryWrapper() + .eq(Client::getId, item.getClientId())); + if(client != null){ + vo.setClientName(client.getClientName()); + } + Equipment equipment = equipmentMapper.selectOne( + new LambdaQueryWrapper() + .eq(Equipment::getId, item.getEquipmentId())); + if(equipment != null){ + vo.setEquipmentName(equipment.getName()); + } vo.setCreateTime(item.getCreateTime()); vo.setUpdateTime(item.getUpdateTime()); @@ -190,6 +205,18 @@ public class RepairOrderServiceImpl implements IRepairOrderService { if(userAddress != null){ vo.setAddress(userAddressListVo); } + //报废地址 + UserAddress scrapAddress = userAddressMapper.selectOne( + new QueryWrapper() + .eq("id", model.getScrapAddressId())); + UserAddressListVo scrapAddressListVo = new UserAddressListVo(); + BeanUtils.copyProperties(scrapAddress, scrapAddressListVo); + scrapAddressListVo.setProvince(regionMap.get(scrapAddressListVo.getProvinceId())); + scrapAddressListVo.setCity(regionMap.get(scrapAddressListVo.getCityId())); + scrapAddressListVo.setDistrict(regionMap.get(scrapAddressListVo.getDistrictId())); + if(scrapAddress != null){ + vo.setScrapAddress(scrapAddressListVo); + } //设备信息 Equipment equipment = equipmentMapper.selectOne( new QueryWrapper() @@ -399,4 +426,46 @@ public class RepairOrderServiceImpl implements IRepairOrderService { } repairOrderMapper.updateById(model); } + + /** + * 更新服务报价 + * + * @param repairOrderParam + */ + @Override + public void updateServiceOfferPrice(RepairOrderParam repairOrderParam) { + RepairOrder model = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId()); + Assert.notNull(model, "数据不存在!"); + Assert.notNull(repairOrderParam.getActualAmount(),"服务报价不能为空"); + + if(model.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()){ + //更新服务报价 + BigDecimal actualAmount = repairOrderParam.getActualAmount(); + model.setActualAmount(actualAmount); + repairOrderMapper.updateById(model); + }else{ + throw new OperateException("当前工单状态,无法修改服务报价"); + } + } + + /** + * 退回维修员 + * + * @param repairOrderParam + */ + @Override + public void returnRepair(RepairOrderParam repairOrderParam) { + RepairOrder model = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId()); + Assert.notNull(model, "数据不存在!"); + Assert.notNull(repairOrderParam.getReturnCause(),"退回原因不可为空"); + + if(model.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()){ + //更新服务报价 + model.setOrderStatus(MaintenanceOrderStatusEnum.RETURNED.getStatus()); + model.setReturnCause(repairOrderParam.getReturnCause()); + repairOrderMapper.updateById(model); + }else{ + throw new OperateException("当前工单状态,无法退回检修"); + } + } } diff --git a/admin/src/main/java/com/hcy/admin/service/order/impl/RoutingInspectionOrderServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/order/impl/RoutingInspectionOrderServiceImpl.java index 0c51c14..6b95944 100644 --- a/admin/src/main/java/com/hcy/admin/service/order/impl/RoutingInspectionOrderServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/order/impl/RoutingInspectionOrderServiceImpl.java @@ -95,6 +95,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde for(RoutingInspectionOrderDto item : iPage.getRecords()) { RoutingInspectionOrderListVo vo = new RoutingInspectionOrderListVo(); BeanUtils.copyProperties(item, vo); + list.add(vo); } 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 837a737..4bfefd8 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 @@ -97,4 +97,8 @@ public class RepairOrderParam implements Serializable { private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员 private Long faultId; // 故障id + private BigDecimal totalAmount; // 总金额 + private BigDecimal actualAmount; // 实际金额 + private String returnCause; //退回原因 + } diff --git a/admin/src/main/java/com/hcy/admin/vo/client/EquipmentListVo.java b/admin/src/main/java/com/hcy/admin/vo/client/EquipmentListVo.java index 37343e0..77e2981 100644 --- a/admin/src/main/java/com/hcy/admin/vo/client/EquipmentListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/client/EquipmentListVo.java @@ -36,6 +36,6 @@ public class EquipmentListVo implements Serializable { private String deviceCode; // 设备码 private String createTime; // 创建时间 private String clientName; // 客户名称 - + private String shortName; // 客户简称 private EquipmentModelDetailVo equipmentModel; //设备模块信息 } diff --git a/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderDetailVo.java b/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderDetailVo.java index bbe3cfd..1f2caab 100644 --- a/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderDetailVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderDetailVo.java @@ -53,5 +53,8 @@ public class RepairOrderDetailVo implements Serializable { private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员 private UserAddressListVo address; //地址信息 private EquipmentListVo equipment; //设备信息 + private Integer scrapAddressId; // 报废地址 + private UserAddressListVo scrapAddress; //报废地址信息 + private String returnCause; //退回原因 } 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 13442e1..220a690 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 @@ -19,7 +19,9 @@ public class RepairOrderListVo implements Serializable { private Integer orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭 private Long clientId; // 客户id private Long equipmentId; // 设备id + private String equipmentName; // 设备名称 private String clientName; // 客户名称 + private String shortName; //客户简称 private String clientContacts; // 客户联系人 private String clientPhone; // 客户联系电话 private Long faultId; // 故障id @@ -45,5 +47,7 @@ public class RepairOrderListVo implements Serializable { private String plantName; //管辖工厂名 private Integer receiverType; // 接单类型 0-区域派单;1-距离派单 private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员 + private Integer scrapAddressId; // 报废地址 + private String returnCause; //退回原因 } 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 79d4321..d171178 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 @@ -65,5 +65,6 @@ public class MaintenanceOrderDto implements Serializable { private String orderStatusIds; //订单状态ids private String likeWork; //关键字 private String shortName; //客户简称 + private String completeImg; // 完工照片 } diff --git a/common/src/main/java/com/hcy/common/dto/order/RepairOrderDto.java b/common/src/main/java/com/hcy/common/dto/order/RepairOrderDto.java index 1d38f3c..75c7b42 100644 --- a/common/src/main/java/com/hcy/common/dto/order/RepairOrderDto.java +++ b/common/src/main/java/com/hcy/common/dto/order/RepairOrderDto.java @@ -22,7 +22,9 @@ public class RepairOrderDto implements Serializable { private Long clientId; // 客户id private Long equipmentId; // 设备id private String clientName; // 客户名称 + private String shortName; //客户简称 private Long faultId; // 故障id + private String faultCode; // 故障代码 private String faultDescription; // 故障描述 private String moduleNumber; // 模块号 private String brand; // 品牌 @@ -53,9 +55,17 @@ public class RepairOrderDto implements Serializable { private Double longitude; // 经度 private Double latitude; // 纬度 private Integer queryType; // 查询类型 0-离我最近 1-时间优先 + private Integer scrapAddressId; // 报废地址 private Integer isClient; //是否客户 0-客户端 1-检修员端 private Integer isMaintain; //是否维修 0-维修 1-不维修 private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库 - private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门 + + private Integer deliveryMethod; // 收件方式(0=物流快递 1-上门取件 2-送货上门) + private Long consigneeAddressId; // 收件地址 + private String clientScrapRemark; // 客户报废备注 + private String returnCause; //退回原因 + private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货 + private String completeImg; // 完工照片 + } 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 48db168..5e02164 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 @@ -56,4 +56,6 @@ public class MaintenanceOrder implements Serializable { private Integer isMaintain; //是否维修 0-维修 1-不维修 private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库 private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货 + private String completeImg; // 完工照片 + } \ No newline at end of file diff --git a/common/src/main/java/com/hcy/common/entity/order/RepairOrder.java b/common/src/main/java/com/hcy/common/entity/order/RepairOrder.java index 2d7c288..45a94db 100644 --- a/common/src/main/java/com/hcy/common/entity/order/RepairOrder.java +++ b/common/src/main/java/com/hcy/common/entity/order/RepairOrder.java @@ -26,6 +26,7 @@ public class RepairOrder implements Serializable { private Long clientId; // 客户id private Long equipmentId; // 设备id private Long faultId; // 故障id + private String faultCode; // 故障代码 private String faultDescription; // 故障描述 private String moduleNumber; // 模块号 private String brand; // 品牌 @@ -45,6 +46,7 @@ public class RepairOrder implements Serializable { private Date cancelOrderTime; // 取消订单时间 private String cancelCause; // 取消原因 private String refuseMaintenanceCause; // 拒绝维修原因 + private String returnCause; //退回原因 private String remark; // 备注 private Long creatorId; // 创建人id private Date orderAccomplishTime; // 订单完成时间 @@ -72,7 +74,11 @@ public class RepairOrder implements Serializable { private String faultPointImg; // 故障点照片 private Integer scrapOrNot; // 是否报废(0=是,1=否) private Long scrapFaultId; // 报废类型id - private String scrapAddress; // 报废地址 + private Long scrapAddressId; // 报废地址id private String scrapExplain; // 报废说明 - + private Integer deliveryMethod; // 收件方式(0=物流快递 1-上门取件 2-送货上门) + private Long consigneeAddressId; // 收件地址 + private String clientScrapRemark; // 客户报废备注 + private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货 + private String completeImg; // 完工照片 } \ No newline at end of file diff --git a/common/src/main/java/com/hcy/common/mapper/order/MaintenanceOrderMapper.java b/common/src/main/java/com/hcy/common/mapper/order/MaintenanceOrderMapper.java index 53b525c..4ab1621 100644 --- a/common/src/main/java/com/hcy/common/mapper/order/MaintenanceOrderMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/order/MaintenanceOrderMapper.java @@ -29,4 +29,10 @@ public interface MaintenanceOrderMapper extends IBaseMapper { @Select("select * from la_maintenance_order where is_delete = 0 and order_no like concat('%',#{time},'%') order by order_no desc limit 1") MaintenanceOrder findLastMaintenanceOrderByTime(@Param("time") String time); + + /** + * 获取待接单状态数量 + * @return + */ + Integer selectPendingOrderCount(@Param("param") MaintenanceOrderDto maintenanceOrderDto); } 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 80c0ddc..d863030 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 @@ -8,6 +8,7 @@ import com.hcy.common.dto.order.MaintenanceOrderDto; import com.hcy.common.dto.order.RepairOrderDto; import com.hcy.common.entity.order.MaintenanceOrder; import com.hcy.common.entity.order.RepairOrder; +import io.swagger.models.auth.In; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -41,4 +42,10 @@ public interface RepairOrderMapper extends IBaseMapper { */ @Select("select * from la_repair_order where is_delete = 0 and id = #{id}") RepairOrder findMaintenanceOrderById(@Param("id") Long id); + + /** + * 获取待接单工单状态数量 + * @return + */ + Integer selectPendingOrderCount(@Param("param") RepairOrderDto repairOrderDto); } diff --git a/common/src/main/java/com/hcy/common/mapper/order/RoutingInspectionOrderMapper.java b/common/src/main/java/com/hcy/common/mapper/order/RoutingInspectionOrderMapper.java index a4dc98f..405d3c4 100644 --- a/common/src/main/java/com/hcy/common/mapper/order/RoutingInspectionOrderMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/order/RoutingInspectionOrderMapper.java @@ -33,4 +33,11 @@ public interface RoutingInspectionOrderMapper extends IBaseMapper frontPageList(Page page, @Param("param") RoutingInspectionOrderDto param); List list(@Param("form") RoutingInspectionOrderDto form); + + /** + * 统计巡检单状态数量 + * @param routingInspectionOrderDto + * @return + */ + Integer selectPendingOrderCount(@Param("param") RoutingInspectionOrderDto routingInspectionOrderDto); } diff --git a/common/src/main/resources/mapper/MaintenanceOrderMapper.xml b/common/src/main/resources/mapper/MaintenanceOrderMapper.xml index 435bff0..167619c 100644 --- a/common/src/main/resources/mapper/MaintenanceOrderMapper.xml +++ b/common/src/main/resources/mapper/MaintenanceOrderMapper.xml @@ -65,4 +65,22 @@ order by create_time desc + + diff --git a/common/src/main/resources/mapper/RepairOrderMapper.xml b/common/src/main/resources/mapper/RepairOrderMapper.xml index 500a578..52c9843 100644 --- a/common/src/main/resources/mapper/RepairOrderMapper.xml +++ b/common/src/main/resources/mapper/RepairOrderMapper.xml @@ -37,7 +37,11 @@ + diff --git a/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml b/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml index 6f4b5af..dadb62d 100644 --- a/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml +++ b/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml @@ -8,6 +8,7 @@ SELECT i.*, c.client_name, + c.short_name, e.number as equipmentNo,e.name as equipmentName,e.detailed_address, a.nickname as creatorName, f.`name` as familiarFaultName, @@ -119,4 +120,22 @@ ORDER BY create_time DESC + + diff --git a/front/src/main/java/com/hcy/front/controller/order/MaintenanceOrderController.java b/front/src/main/java/com/hcy/front/controller/order/MaintenanceOrderController.java index e0fba29..839b196 100644 --- a/front/src/main/java/com/hcy/front/controller/order/MaintenanceOrderController.java +++ b/front/src/main/java/com/hcy/front/controller/order/MaintenanceOrderController.java @@ -170,4 +170,12 @@ public class MaintenanceOrderController { return AjaxResult.success(); } + /** + * 小程序工单状态数量 + * @return Object + */ + @GetMapping("/orderStatusCount") + public Object orderStatusCount(MaintenanceOrderParam maintenanceOrderParam) { + return AjaxResult.success(iMaintenanceOrderService.orderStatusCount(maintenanceOrderParam)); + } } diff --git a/front/src/main/java/com/hcy/front/controller/order/RepairOrderController.java b/front/src/main/java/com/hcy/front/controller/order/RepairOrderController.java index f9a101b..14f3028 100644 --- a/front/src/main/java/com/hcy/front/controller/order/RepairOrderController.java +++ b/front/src/main/java/com/hcy/front/controller/order/RepairOrderController.java @@ -122,4 +122,68 @@ public class RepairOrderController { iRepairOrderService.faultDetect(repairOrderParam); return AjaxResult.success(); } + + /** + * 小程序工单状态数量 + * @return Object + */ + @GetMapping("/orderStatusCount") + public Object orderStatusCount(RepairOrderParam repairOrderParam) { + return AjaxResult.success(iRepairOrderService.orderStatusCount(repairOrderParam)); + } + + /** + * 确认服务报价 + * @param repairOrderParam 参数 + * @return Object + */ + @PostMapping("/confirmServiceOfferPrice") + public Object confirmServiceOfferPrice(@RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.confirmServiceOfferPrice(repairOrderParam); + return AjaxResult.success(); + } + + /** + * 确认报废 + * @param repairOrderParam 参数 + * @return Object + */ + @PostMapping("/confirmedScrap") + public Object confirmedScrap(@RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.confirmedScrap(repairOrderParam); + return AjaxResult.success(); + } + + /** + * 上传维修中、维修后照片 + * @param repairOrderParam 参数 + * @return Object + */ + @PostMapping("/uploadPictures") + public Object uploadPictures(@RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.uploadPictures(repairOrderParam); + return AjaxResult.success(); + } + + /** + * 填写报废单 + * @param repairOrderParam 参数 + * @return Object + */ + @PostMapping("/scrapForm") + public Object scrapForm(@RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.scrapForm(repairOrderParam); + return AjaxResult.success(); + } + + /** + * 填写回单 + * @param repairOrderParam 参数 + * @return Object + */ + @PostMapping("/fillInReceipt") + public Object fillInReceipt(@RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.fillInReceipt(repairOrderParam); + return AjaxResult.success(); + } } diff --git a/front/src/main/java/com/hcy/front/controller/order/RoutingInspectionOrderController.java b/front/src/main/java/com/hcy/front/controller/order/RoutingInspectionOrderController.java index ea3ba58..316db38 100644 --- a/front/src/main/java/com/hcy/front/controller/order/RoutingInspectionOrderController.java +++ b/front/src/main/java/com/hcy/front/controller/order/RoutingInspectionOrderController.java @@ -127,4 +127,13 @@ public class RoutingInspectionOrderController { iRoutingInspectionOrderService.checking(routingInspectionOrderParam); return AjaxResult.success(); } + + /** + * 小程序工单状态数量 + * @return Object + */ + @GetMapping("/orderStatusCount") + public Object orderStatusCount(RoutingInspectionOrderParam routingInspectionOrderParam) { + return AjaxResult.success(iRoutingInspectionOrderService.orderStatusCount(routingInspectionOrderParam)); + } } diff --git a/front/src/main/java/com/hcy/front/service/order/IMaintenanceOrderService.java b/front/src/main/java/com/hcy/front/service/order/IMaintenanceOrderService.java index e9c846e..f43bde5 100644 --- a/front/src/main/java/com/hcy/front/service/order/IMaintenanceOrderService.java +++ b/front/src/main/java/com/hcy/front/service/order/IMaintenanceOrderService.java @@ -5,6 +5,8 @@ import com.hcy.front.validate.PageParam; import com.hcy.front.validate.order.MaintenanceOrderParam; import com.hcy.front.vo.order.MaintenanceOrderDetailVo; import com.hcy.front.vo.order.MaintenanceOrderListVo; +import com.hcy.front.vo.order.OrderStatusCountVo; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -95,4 +97,10 @@ public interface IMaintenanceOrderService { * @param maintenanceOrderParam 参数 */ void oldModuleRepair(MaintenanceOrderParam maintenanceOrderParam); + + /** + * 统计工单状态数量 + * @return + */ + OrderStatusCountVo orderStatusCount(MaintenanceOrderParam maintenanceOrderParam); } diff --git a/front/src/main/java/com/hcy/front/service/order/IRepairOrderService.java b/front/src/main/java/com/hcy/front/service/order/IRepairOrderService.java index f18c00f..7610ae2 100644 --- a/front/src/main/java/com/hcy/front/service/order/IRepairOrderService.java +++ b/front/src/main/java/com/hcy/front/service/order/IRepairOrderService.java @@ -5,6 +5,7 @@ import com.hcy.common.core.PageResult; import com.hcy.front.validate.PageParam; import com.hcy.front.validate.order.RepairOrderParam; import com.hcy.front.vo.order.MaintenanceOrderListVo; +import com.hcy.front.vo.order.OrderStatusCountVo; import com.hcy.front.vo.order.RepairOrderDetailVo; import com.hcy.front.vo.order.RepairOrderListVo; @@ -72,4 +73,40 @@ public interface IRepairOrderService { * @return */ List list(RepairOrderParam repairOrderParam); + + /** + * 统计工单状态数量 + * @return + */ + OrderStatusCountVo orderStatusCount(RepairOrderParam repairOrderParam); + + /** + * 确认服务报价 + * @param repairOrderParam + */ + void confirmServiceOfferPrice(RepairOrderParam repairOrderParam); + + /** + * 确认报废 + * @param repairOrderParam + */ + void confirmedScrap(RepairOrderParam repairOrderParam); + + /** + * 上传维修中、维修后照片 + * @param repairOrderParam + */ + void uploadPictures(RepairOrderParam repairOrderParam); + + /** + * 填写报废单 + * @param repairOrderParam + */ + void scrapForm(RepairOrderParam repairOrderParam); + + /** + * 填写回单 + * @param repairOrderParam + */ + void fillInReceipt(RepairOrderParam repairOrderParam); } diff --git a/front/src/main/java/com/hcy/front/service/order/IRoutingInspectionOrderService.java b/front/src/main/java/com/hcy/front/service/order/IRoutingInspectionOrderService.java index 7582ac3..dcbebc7 100644 --- a/front/src/main/java/com/hcy/front/service/order/IRoutingInspectionOrderService.java +++ b/front/src/main/java/com/hcy/front/service/order/IRoutingInspectionOrderService.java @@ -4,6 +4,7 @@ import com.hcy.common.core.PageResult; import com.hcy.front.validate.PageParam; import com.hcy.front.validate.order.RoutingInspectionOrderParam; import com.hcy.front.vo.order.MaintenanceOrderListVo; +import com.hcy.front.vo.order.OrderStatusCountVo; import com.hcy.front.vo.order.RoutingInspectionOrderDetailVo; import com.hcy.front.vo.order.RoutingInspectionOrderListVo; @@ -70,4 +71,10 @@ public interface IRoutingInspectionOrderService { * @param routingInspectionOrderParam */ void checking(RoutingInspectionOrderParam routingInspectionOrderParam); + + /** + * 统计工单状态数量 + * @return + */ + OrderStatusCountVo orderStatusCount(RoutingInspectionOrderParam routingInspectionOrderParam); } 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 e9467ed..6fbd94c 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 @@ -1,6 +1,7 @@ package com.hcy.front.service.order.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hcy.common.constant.GlobalConstant; import com.hcy.common.core.PageResult; @@ -48,15 +49,13 @@ import com.hcy.front.validate.order.MaintenanceOrderParam; import com.hcy.front.validate.warehouse.SparePartParam; import com.hcy.front.vo.client.EquipmentDetailVo; import com.hcy.front.vo.client.EquipmentModelDetailVo; -import com.hcy.front.vo.order.MaintenanceOrderDetailVo; -import com.hcy.front.vo.order.MaintenanceOrderListVo; -import com.hcy.front.vo.order.MaintenanceRepairDetailVo; -import com.hcy.front.vo.order.OrderSparePartListVo; +import com.hcy.front.vo.order.*; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.Assert; +import org.springframework.web.bind.annotation.RequestBody; import javax.annotation.Resource; import java.math.BigDecimal; @@ -570,7 +569,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus()); maintenanceOrder.setOrderAccomplishTime(new Date()); maintenanceOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus()); - + maintenanceOrder.setCompleteImg(maintenanceOrderParam.getCompleteImg()); // 完工照片 maintenanceOrderMapper.updateById(maintenanceOrder); }else{ throw new OperateException("当前订单状态无法进行填写回单操作"); @@ -625,5 +624,69 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { } } + /** + * 统计工单状态数量 + * + * @return + */ + @Override + public OrderStatusCountVo orderStatusCount(MaintenanceOrderParam maintenanceOrderParam) { + MaintenanceOrderDto maintenanceOrderDto = new MaintenanceOrderDto(); + BeanUtils.copyProperties(maintenanceOrderParam,maintenanceOrderDto); + + if(maintenanceOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){ + maintenanceOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人 + if(StringUtils.isEmpty(maintenanceOrderParam.getOrderStatusIds())){ + maintenanceOrderDto.setOrderStatusIds("1,2,7,8"); + } + }else{ + if(StringUtils.isEmpty(maintenanceOrderParam.getOrderStatusIds())){ + maintenanceOrderDto.setOrderStatusIds("0,1,2,7,8"); + } + maintenanceOrderDto.setClientId(maintenanceOrderDto.getClientId()); // 客户id + } + + // 待接单数量 + Integer pendingOrderCount = maintenanceOrderMapper.selectPendingOrderCount(maintenanceOrderDto); + // 检测中数量 + Integer checkingCount = maintenanceOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .and(query -> query.eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.CHECKING.getStatus()) + .or() + .eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.RETURNED.getStatus())) + .eq(maintenanceOrderDto.getClientId() != null, MaintenanceOrder::getClientId, maintenanceOrderDto.getClientId()) + .eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId())); + // 待确认数量 + Integer toBeConfirmedCount = maintenanceOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()) + .eq(maintenanceOrderDto.getClientId() != null, MaintenanceOrder::getClientId, maintenanceOrderDto.getClientId()) + .eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId())); + // 维修中数量 + Integer inMaintenanceCount = maintenanceOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()) + .eq(maintenanceOrderDto.getClientId() != null, MaintenanceOrder::getClientId, maintenanceOrderDto.getClientId()) + .eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId())); + // 已完成数量 + Integer completedCount = maintenanceOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(MaintenanceOrder:: getOrderStatus, MaintenanceOrderStatusEnum.FINISHED.getStatus()) + .eq(maintenanceOrderDto.getClientId() != null, MaintenanceOrder::getClientId, maintenanceOrderDto.getClientId()) + .eq(maintenanceOrderDto.getReceiverId() != null, MaintenanceOrder::getReceiverId, maintenanceOrderDto.getReceiverId())); + + OrderStatusCountVo orderStatusCountVo = new OrderStatusCountVo(); + orderStatusCountVo.setPendingOrderCount(pendingOrderCount); + orderStatusCountVo.setCheckingCount(checkingCount); + orderStatusCountVo.setToBeConfirmedCount(toBeConfirmedCount); + orderStatusCountVo.setInMaintenanceCount(inMaintenanceCount); + orderStatusCountVo.setCompletedCount(completedCount); + return orderStatusCountVo; + } + } 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 401a4e8..87bb651 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 @@ -18,6 +18,7 @@ import com.hcy.common.entity.plant.Plant; import com.hcy.common.entity.sparePart.SparePart; import com.hcy.common.entity.system.SystemAuthAdmin; import com.hcy.common.entity.user.User; +import com.hcy.common.enums.ClientStatusEnum; import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; import com.hcy.common.enums.order.OrderStateEnum; import com.hcy.common.enums.order.RepairOrderStatusEnum; @@ -42,6 +43,7 @@ import com.hcy.front.validate.warehouse.SparePartParam; import com.hcy.front.vo.address.UserAddressListVo; import com.hcy.front.vo.client.EquipmentListVo; import com.hcy.front.vo.order.MaintenanceOrderListVo; +import com.hcy.front.vo.order.OrderStatusCountVo; import com.hcy.front.vo.order.RepairOrderDetailVo; import com.hcy.front.vo.order.RepairOrderListVo; import com.sun.xml.internal.ws.resources.AddressingMessages; @@ -168,6 +170,176 @@ public class RepairOrderServiceImpl implements IRepairOrderService { return returnData; } + /** + * 统计工单状态数量 + * + * @return + */ + @Override + public OrderStatusCountVo orderStatusCount(RepairOrderParam repairOrderParam) { + RepairOrderDto repairOrderDto = new RepairOrderDto(); + BeanUtils.copyProperties(repairOrderParam,repairOrderDto); + + if(repairOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){ + repairOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人 + if(StringUtils.isEmpty(repairOrderParam.getOrderStatusIds())){ + repairOrderDto.setOrderStatusIds("1,2,7,8"); + } + }else{ + if(StringUtils.isEmpty(repairOrderParam.getOrderStatusIds())){ + repairOrderDto.setOrderStatusIds("0,1,2,7,8"); + } + repairOrderDto.setClientId(repairOrderDto.getClientId()); // 客户id + } + + // 待接单数量 + Integer pendingOrderCount = repairOrderMapper.selectPendingOrderCount(repairOrderDto); + // 检测中数量 + Integer checkingCount = repairOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .and(query -> query + .eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.CHECKING.getStatus()) + .or() + .eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.RETURNED.getStatus())) + .eq(repairOrderDto.getClientId() != null, RepairOrder::getClientId, repairOrderDto.getClientId()) + .eq(repairOrderDto.getReceiverId() != null, RepairOrder::getReceiverId, repairOrderDto.getReceiverId())); + // 待确认数量 + Integer toBeConfirmedCount = repairOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()) + .eq(repairOrderDto.getClientId() != null, RepairOrder::getClientId, repairOrderDto.getClientId()) + .eq(repairOrderDto.getReceiverId() != null, RepairOrder::getReceiverId, repairOrderDto.getReceiverId())); + // 维修中数量 + Integer inMaintenanceCount = repairOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()) + .eq(repairOrderDto.getClientId() != null, RepairOrder::getClientId, repairOrderDto.getClientId()) + .eq(repairOrderDto.getReceiverId() != null, RepairOrder::getReceiverId, repairOrderDto.getReceiverId())); + // 已完成数量 + Integer completedCount = repairOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(RepairOrder:: getOrderStatus, MaintenanceOrderStatusEnum.FINISHED.getStatus()) + .eq(repairOrderDto.getClientId() != null, RepairOrder::getClientId, repairOrderDto.getClientId()) + .eq(repairOrderDto.getReceiverId() != null, RepairOrder::getReceiverId, repairOrderDto.getReceiverId())); + + OrderStatusCountVo orderStatusCountVo = new OrderStatusCountVo(); + orderStatusCountVo.setPendingOrderCount(pendingOrderCount); + orderStatusCountVo.setCheckingCount(checkingCount); + orderStatusCountVo.setToBeConfirmedCount(toBeConfirmedCount); + orderStatusCountVo.setInMaintenanceCount(inMaintenanceCount); + orderStatusCountVo.setCompletedCount(completedCount); + return orderStatusCountVo; + } + + /** + * 确认服务报价 + * + * @param repairOrderParam + */ + @Override + public void confirmServiceOfferPrice(RepairOrderParam repairOrderParam) { + RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId()); + Assert.notNull(repairOrder, "数据不存在"); + Assert.isTrue(repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus(), "订单状态错误"); + + if(repairOrderParam.getIsMaintain() == MaintenanceOrderStatusEnum.MAINTAIN.getStatus()){ + repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus()); + repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()); + }else{ + repairOrder.setIsMaintain(MaintenanceOrderStatusEnum.NOT_MAINTAIN.getStatus()); + repairOrder.setRefuseMaintenanceCause(repairOrderParam.getRefuseMaintenanceCause()); // 拒绝维修原因 + repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus()); + repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间 + } + + repairOrderMapper.updateById(repairOrder); + } + + /** + * 确认报废 + * + * @param repairOrderParam + */ + @Override + public void confirmedScrap(RepairOrderParam repairOrderParam) { + RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId()); + Assert.notNull(repairOrder, "数据不存在"); + + repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot()); // 是否报废(0=是,1=否) + repairOrder.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄(0=是 1=否) + repairOrder.setDeliveryMethod(repairOrderParam.getDeliveryMethod()); // 收件方式(0=物流快递 1-上门取件 2-送货上门) + repairOrder.setConsigneeAddressId(repairOrderParam.getConsigneeAddressId()); // 收件地址 + repairOrder.setClientScrapRemark(repairOrderParam.getClientScrapRemark()); // 客户报废备注 + repairOrderMapper.updateById(repairOrder); + } + + /** + * 上传维修中、维修后照片 + * + * @param repairOrderParam + */ + @Override + public void uploadPictures(RepairOrderParam repairOrderParam) { + RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId()); + Assert.notNull(repairOrder, "数据不存在"); + if(repairOrderParam.getInMaintenanceImg() != null){ + repairOrder.setInMaintenanceImg(repairOrderParam.getInMaintenanceImg()); // 维修中照片 + }else{ + repairOrder.setAfterRepairImg(repairOrderParam.getAfterRepairImg()); // 维修后照片 + } + repairOrderMapper.updateById(repairOrder); + } + + /** + * 填写报废单 + * + * @param repairOrderParam + */ + @Override + public void scrapForm(RepairOrderParam repairOrderParam) { + RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId()); + Assert.notNull(repairOrder, "数据不存在"); + + repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot()); // 是否报废(0=是,1=否) + repairOrder.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄(0=是 1=否) + repairOrder.setExpressName(repairOrderParam.getExpressName()); // 快递名称 + repairOrder.setExpressNo(repairOrderParam.getExpressNo()); // 快递单号 + repairOrderMapper.updateById(repairOrder); + } + + /** + * 填写回单 + * + * @param repairOrderParam + */ + @Override + public void fillInReceipt(RepairOrderParam repairOrderParam) { + RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId()); + Assert.notNull(repairOrder, "数据不存在"); + Assert.notNull(repairOrderParam.getFamiliarFaultId(), "结论类型不可为空"); + Assert.notNull(repairOrderParam.getFamiliarFaultDescription(), "结论描述不可为空"); + + //只有维修中和填写回单状态才可以填写回单 + if(repairOrder.getOrderStatus() == MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus() && + repairOrder.getIsConfirmReceipt() == MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus()){ + + repairOrder.setFamiliarFaultId(repairOrderParam.getFamiliarFaultId()); // 常见维修结论id + repairOrder.setFamiliarFaultDescription(repairOrderParam.getFamiliarFaultDescription()); // 常见维修结论描述 + repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.FINISHED.getStatus()); + repairOrder.setOrderAccomplishTime(new Date()); // 订单完成时间 + repairOrder.setIsConfirmReceipt(MaintenanceOrderStatusEnum.CONFIRM_RECEIPT.getStatus()); + repairOrder.setCompleteImg(repairOrderParam.getCompleteImg()); // 完工照片 + + repairOrderMapper.updateById(repairOrder); + }else{ + throw new OperateException("当前订单状态无法进行填写回单操作"); + } + } + /** * 维修订单列表 * @@ -282,25 +454,37 @@ public class RepairOrderServiceImpl implements IRepairOrderService { UserAddress userAddress = userAddressMapper.selectOne( new QueryWrapper() .eq("id", model.getAddressId())); - UserAddressListVo userAddressListVo = new UserAddressListVo(); - BeanUtils.copyProperties(userAddress, userAddressListVo); Map regionMap = regionService.getRegionMap(); - userAddressListVo.setProvince(regionMap.get(userAddressListVo.getProvinceId())); - userAddressListVo.setCity(regionMap.get(userAddressListVo.getCityId())); - userAddressListVo.setDistrict(regionMap.get(userAddressListVo.getDistrictId())); + UserAddressListVo userAddressListVo = new UserAddressListVo(); if(userAddress != null){ + BeanUtils.copyProperties(userAddress, userAddressListVo); + userAddressListVo.setProvince(regionMap.get(userAddressListVo.getProvinceId())); + userAddressListVo.setCity(regionMap.get(userAddressListVo.getCityId())); + userAddressListVo.setDistrict(regionMap.get(userAddressListVo.getDistrictId())); vo.setAddress(userAddressListVo); } + //报废地址 + UserAddress scrapAddress = userAddressMapper.selectOne( + new QueryWrapper() + .eq("id", model.getScrapAddressId())); + if(scrapAddress != null){ + UserAddressListVo scrapAddressListVo = new UserAddressListVo(); + BeanUtils.copyProperties(scrapAddress, scrapAddressListVo); + scrapAddressListVo.setProvince(regionMap.get(scrapAddressListVo.getProvinceId())); + scrapAddressListVo.setCity(regionMap.get(scrapAddressListVo.getCityId())); + scrapAddressListVo.setDistrict(regionMap.get(scrapAddressListVo.getDistrictId())); + vo.setScrapAddress(scrapAddressListVo); + } //设备信息 Equipment equipment = equipmentMapper.selectOne( new QueryWrapper() .eq("id", model.getEquipmentId())); - EquipmentListVo equipmentListVo = new EquipmentListVo(); - equipmentListVo.setProvince(regionMap.get(equipment.getProvinceId())); - equipmentListVo.setCity(regionMap.get(equipment.getCityId())); - equipmentListVo.setDistrict(regionMap.get(equipment.getDistrictId())); - BeanUtils.copyProperties(equipment, equipmentListVo); if(equipment != null){ + EquipmentListVo equipmentListVo = new EquipmentListVo(); + equipmentListVo.setProvince(regionMap.get(equipment.getProvinceId())); + equipmentListVo.setCity(regionMap.get(equipment.getCityId())); + equipmentListVo.setDistrict(regionMap.get(equipment.getDistrictId())); + BeanUtils.copyProperties(equipment, equipmentListVo); vo.setEquipment(equipmentListVo); } return vo; @@ -432,6 +616,26 @@ public class RepairOrderServiceImpl implements IRepairOrderService { RepairOrder repairOrder = repairOrderMapper.findMaintenanceOrderById(repairOrderParam.getId()); Assert.notNull(repairOrder, "数据不存在"); + repairOrder.setWarehouseType(repairOrderParam.getWarehouseType()); // 仓库类型 0-我的仓库 1-公共仓库 + repairOrder.setQuotationTime(new Date()); // 报价时间 + + Client client = clientMapper.findClientById(repairOrder.getClientId()); + //判断当前客户是全包还是半包 + if(client.getClientType() == ClientStatusEnum.PLIE_POINT_ALL_WRAPPED.getStatus()){ + repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.MAINTENANCE_ING.getStatus()); + }else{ + repairOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus()); + } + + BigDecimal actualAmount = new BigDecimal("0"); + + //判断是否已经服务报价过了 + List orderSpareParts = orderSparePartMapper.findOrderSparePartByMaintenanceOrderId(repairOrder.getId()); + for (OrderSparePart orderSparePart : orderSpareParts) { + //已经报过价就将之前的报价信息删除 + orderSparePartMapper.deleteById(orderSparePart); + } + for (SparePartParam item : repairOrderParam.getSparePartParams()) { SparePart sparePart = sparePartMapper.findSparePartById(item.getId()); @@ -439,25 +643,37 @@ public class RepairOrderServiceImpl implements IRepairOrderService { BeanUtils.copyProperties(sparePart, orderSparePart); orderSparePart.setId(null); - orderSparePart.setRepairOrderId(repairOrder.getId()); - orderSparePart.setSparePartsId(item.getId()); - orderSparePart.setWarehouseId(sparePart.getWarehouseId()); - orderSparePart.setQuantity(item.getQuantity()); + orderSparePart.setRepairOrderId(repairOrder.getId()); //维修单id + orderSparePart.setSparePartsId(item.getId()); // 备件id + orderSparePart.setWarehouseId(sparePart.getWarehouseId()); // 所属仓库id + orderSparePart.setQuantity(item.getQuantity()); // 数量 + + //设置订单实际价格 + BigDecimal practicalPrice = sparePart.getUnitPrice().multiply(client.getPurchaseDivisor()); + orderSparePart.setUnitPrice(practicalPrice); // 价格 + + BigDecimal totalPrice = practicalPrice.multiply(BigDecimal.valueOf(item.getQuantity())); + actualAmount = actualAmount.add(totalPrice); + + orderSparePart.setTotalPrice(totalPrice); // 总价 + orderSparePartMapper.insert(orderSparePart); } - repairOrder.setFaultId(repairOrderParam.getFaultId()); //故障原因id + repairOrder.setTotalAmount(actualAmount); // 总金额 + repairOrder.setActualAmount(actualAmount); // 实际金额 + + repairOrder.setFaultId(repairOrderParam.getFaultId()); //故障原因id + repairOrder.setFaultCode(repairOrderParam.getFaultCode()); //故障代码 repairOrder.setPreMaintenanceImg(repairOrderParam.getPreMaintenanceImg()); // 维修前图片 repairOrder.setFaultPointImg(repairOrderParam.getFaultPointImg()); //故障点图片 repairOrder.setScrapOrNot(repairOrderParam.getScrapOrNot()); // 是否报废(0=是,1=否) repairOrder.setScrapFaultId(repairOrderParam.getScrapFaultId()); // 报废类型id - repairOrder.setScrapAddress(repairOrderParam.getScrapAddress()); // 报废地址 + repairOrder.setScrapAddressId(repairOrderParam.getScrapAddressId()); // 报废地址 repairOrder.setScrapExplain(repairOrderParam.getScrapExplain()); // 报废说明 repairOrderMapper.updateById(repairOrder); } - - /** * 工单编号 * @return diff --git a/front/src/main/java/com/hcy/front/service/order/impl/RoutingInspectionOrderServiceImpl.java b/front/src/main/java/com/hcy/front/service/order/impl/RoutingInspectionOrderServiceImpl.java index 1fbc9f2..bbfcf76 100644 --- a/front/src/main/java/com/hcy/front/service/order/impl/RoutingInspectionOrderServiceImpl.java +++ b/front/src/main/java/com/hcy/front/service/order/impl/RoutingInspectionOrderServiceImpl.java @@ -33,6 +33,7 @@ import com.hcy.front.validate.PageParam; import com.hcy.front.validate.order.RoutingInspectionOrderParam; import com.hcy.front.vo.client.EquipmentListVo; import com.hcy.front.vo.order.MaintenanceOrderListVo; +import com.hcy.front.vo.order.OrderStatusCountVo; import com.hcy.front.vo.order.RoutingInspectionOrderDetailVo; import com.hcy.front.vo.order.RoutingInspectionOrderListVo; import org.apache.commons.lang3.StringUtils; @@ -403,6 +404,62 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde routingInspectionOrderMapper.updateById(model); } + /** + * 统计工单状态数量 + * + * @return + */ + @Override + public OrderStatusCountVo orderStatusCount(RoutingInspectionOrderParam routingInspectionOrderParam) { + + RoutingInspectionOrderDto routingInspectionOrderDto = new RoutingInspectionOrderDto(); + BeanUtils.copyProperties(routingInspectionOrderParam,routingInspectionOrderDto); + + if(routingInspectionOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){ + routingInspectionOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人 + if(StringUtils.isEmpty(routingInspectionOrderParam.getOrderStatusIds())){ + routingInspectionOrderDto.setOrderStatusIds("1,2,5"); + } + }else{ + if(StringUtils.isEmpty(routingInspectionOrderParam.getOrderStatusIds())){ + routingInspectionOrderDto.setOrderStatusIds("0,1,2,5"); + } + routingInspectionOrderDto.setClientId(routingInspectionOrderDto.getClientId()); // 客户id + } + + // 待接单数量 + Integer pendingOrderCount = routingInspectionOrderMapper.selectPendingOrderCount(routingInspectionOrderDto); + + // 待巡检数量 + Integer toBeInspectedCount = routingInspectionOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(RoutingInspectionOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(RoutingInspectionOrder:: getOrderStatus, OrderStateEnum.TO_BE_INSPECTED.getStatus()) + .eq(routingInspectionOrderDto.getClientId() != null, RoutingInspectionOrder::getClientId, routingInspectionOrderDto.getClientId()) + .eq(routingInspectionOrderDto.getReceiverId() != null, RoutingInspectionOrder::getReceiverId, routingInspectionOrderDto.getReceiverId())); + // 巡检中数量 + Integer duringInspectionCount = routingInspectionOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(RoutingInspectionOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(RoutingInspectionOrder:: getOrderStatus, OrderStateEnum.DURING_INSPECTION.getStatus()) + .eq(routingInspectionOrderDto.getClientId() != null, RoutingInspectionOrder::getClientId, routingInspectionOrderDto.getClientId()) + .eq(routingInspectionOrderDto.getReceiverId() != null, RoutingInspectionOrder::getReceiverId, routingInspectionOrderDto.getReceiverId())); + // 已完成数量 + Integer completedCount = routingInspectionOrderMapper.selectCount( + new LambdaQueryWrapper() + .eq(RoutingInspectionOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(RoutingInspectionOrder:: getOrderStatus, OrderStateEnum.COMPLETED.getStatus()) + .eq(routingInspectionOrderDto.getClientId() != null, RoutingInspectionOrder::getClientId, routingInspectionOrderDto.getClientId()) + .eq(routingInspectionOrderDto.getReceiverId() != null, RoutingInspectionOrder::getReceiverId, routingInspectionOrderDto.getReceiverId())); + + OrderStatusCountVo orderStatusCountVo = new OrderStatusCountVo(); + orderStatusCountVo.setPendingOrderCount(pendingOrderCount); // 待接单 + orderStatusCountVo.setToBeInspectedCount(toBeInspectedCount); // 待巡检 + orderStatusCountVo.setDuringInspectionCount(duringInspectionCount); // 巡检中 + orderStatusCountVo.setCompletedCount(completedCount); // 已完成 + return orderStatusCountVo; + } + private String getOrderNo() { //获取当前日期并将其进行格式化 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); 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 4a07788..6dc8850 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 @@ -121,4 +121,6 @@ public class MaintenanceOrderParam implements Serializable { private String expressNo; // 快递单号 private String moduleNo; // 模块号 private String moduleImg; // 模块图片 + private String completeImg; // 完工照片 + } diff --git a/front/src/main/java/com/hcy/front/validate/order/RepairOrderParam.java b/front/src/main/java/com/hcy/front/validate/order/RepairOrderParam.java index 1e5d1cf..b98a944 100644 --- a/front/src/main/java/com/hcy/front/validate/order/RepairOrderParam.java +++ b/front/src/main/java/com/hcy/front/validate/order/RepairOrderParam.java @@ -116,9 +116,23 @@ public class RepairOrderParam implements Serializable { private Integer deliveryMethod; //配送方式 0-物流 1-上门取件 2-送货上门 private String preMaintenanceImg; // 维修前照片 + private String inMaintenanceImg; // 维修中照片 + private String afterRepairImg; // 维修后照片 private String faultPointImg; // 故障点照片 private Integer scrapOrNot; // 是否报废(0=是,1=否) private Long scrapFaultId; // 报废类型id - private String scrapAddress; // 报废地址 + private Long scrapAddressId; // 报废地址 private String scrapExplain; // 报废说明 + private String faultCode; // 故障代码 + private String refuseMaintenanceCause; // 拒绝维修原因 + + private Long consigneeAddressId; // 收件地址 + private String clientScrapRemark; // 客户报废备注 + private String expressNo; // 快递单号 + private Long familiarFaultId; // 常见维修结论id + private String familiarFaultDescription; // 常见维修结论描述 + private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货 + private String completeImg; // 完工照片 + + } diff --git a/front/src/main/java/com/hcy/front/validate/order/RoutingInspectionOrderParam.java b/front/src/main/java/com/hcy/front/validate/order/RoutingInspectionOrderParam.java index 74c0b25..b52db2c 100644 --- a/front/src/main/java/com/hcy/front/validate/order/RoutingInspectionOrderParam.java +++ b/front/src/main/java/com/hcy/front/validate/order/RoutingInspectionOrderParam.java @@ -85,4 +85,5 @@ public class RoutingInspectionOrderParam implements Serializable { private String cancelCause; // 取消原因 private Integer isClient; //是否客户 0-客户端 1-检修员端 + private String orderStatusIds; //订单状态ids } 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 88d0ecb..4424c3d 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 @@ -63,4 +63,6 @@ public class MaintenanceOrderDetailVo implements Serializable { private List sparePartList; // 备件清单 private EquipmentModelDetailVo equipmentModel; //设备模块信息 private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息 + private String completeImg; // 完工照片 + } 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 7ab7ea3..754a53c 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 @@ -60,4 +60,13 @@ public class MaintenanceOrderListVo implements Serializable { private String creatorName; // 创建人姓名 private String receiverName; // 接单人姓名 private MaintenanceRepairDetailVo maintenanceRepair; // 返修信息 + + private Integer pendingOrderCount; // 待接单数量 + private Integer checkingCount; // 检测中数量 + private Integer toBeConfirmedCount; // 待确认数量 + private Integer inMaintenanceCount; // 维修中数量 + private Integer completedCount; // 已完成数量 + + private String completeImg; // 完工照片 + } diff --git a/front/src/main/java/com/hcy/front/vo/order/OrderStatusCountVo.java b/front/src/main/java/com/hcy/front/vo/order/OrderStatusCountVo.java new file mode 100644 index 0000000..6f0ce8a --- /dev/null +++ b/front/src/main/java/com/hcy/front/vo/order/OrderStatusCountVo.java @@ -0,0 +1,24 @@ +package com.hcy.front.vo.order; + +import lombok.Data; + +import java.io.Serializable; + +/** + * MaintenanceOrderVo + */ +@Data +public class OrderStatusCountVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Integer pendingOrderCount; // 待接单数量 + private Integer checkingCount; // 检测中数量 + private Integer toBeConfirmedCount; // 待确认数量 + private Integer inMaintenanceCount; // 维修中数量 + private Integer completedCount; // 已完成数量 + + private Integer toBeInspectedCount; // 待巡检数量 + private Integer duringInspectionCount; // 巡检中 + +} 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 f520899..ad75abf 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 @@ -28,6 +28,7 @@ public class RepairOrderDetailVo implements Serializable { private String clientContacts; // 客户联系人 private String clientPhone; // 客户联系电话 private Long faultId; // 故障id + private String faultCode; // 故障代码 private String faultDescription; // 故障描述 private String moduleNumber; // 模块号 private String brand; // 品牌 @@ -53,5 +54,12 @@ public class RepairOrderDetailVo implements Serializable { private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员 private UserAddressListVo address; //地址信息 private EquipmentListVo equipment; //设备信息 + private Integer scrapAddressId; // 报废地址 + private UserAddressListVo scrapAddress; //报废地址信息 + private Integer deliveryMethod; // 收件方式(0=物流快递 1-上门取件 2-送货上门) + private Long consigneeAddressId; // 收件地址 + private String clientScrapRemark; // 客户报废备注 + private Integer isConfirmReceipt; //是否确认收货 0-未收货 1-已收货 + private String completeImg; // 完工照片 } 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 190545f..78cb55b 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 @@ -23,6 +23,7 @@ public class RepairOrderListVo implements Serializable { private String clientContacts; // 客户联系人 private String clientPhone; // 客户联系电话 private Long faultId; // 故障id + private String faultCode; // 故障代码 private String faultDescription; // 故障描述 private String moduleNumber; // 模块号 private String brand; // 品牌 @@ -56,5 +57,10 @@ public class RepairOrderListVo implements Serializable { private String equipmentNo; //设备编号 private String equipmentName; //设备名称 private String detailedAddress; //设备详情地址 + private Integer scrapAddressId; // 报废地址 + private Integer deliveryMethod; // 收件方式(0=物流快递 1-上门取件 2-送货上门) + private Long consigneeAddressId; // 收件地址 + private String clientScrapRemark; // 客户报废备注 + private String completeImg; // 完工照片 }