From 825985a42554e2b1063b962edb9fcf1076a97f18 Mon Sep 17 00:00:00 2001 From: dabin <2827029098@qq.com> Date: Sun, 25 Aug 2024 23:49:14 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90admin=E3=80=91=E6=96=B0=E5=A2=9E#=201.?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E5=AE=A2=E6=88=B7=E6=96=B0=E5=BB=BA=E6=A3=80?= =?UTF-8?q?=E4=BF=AE=E5=B7=A5=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MaintenanceOrderServiceImpl.java | 11 ++- .../common/dto/order/MaintenanceOrderDto.java | 2 + .../mapper/warehouse/WarehouseMapper.java | 2 +- .../impl/MaintenanceOrderServiceImpl.java | 84 +++++++++++++++---- .../validate/order/MaintenanceOrderParam.java | 8 -- .../vo/order/MaintenanceOrderDetailVo.java | 2 + .../vo/order/MaintenanceOrderListVo.java | 2 + .../front/vo/order/OrderSparePartListVo.java | 2 +- 8 files changed, 84 insertions(+), 29 deletions(-) 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 4ed852d..6899c2c 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 @@ -132,9 +132,14 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { Equipment equipment = equipmentMapper.selectById(model.getEquipmentId()); vo.setEquipment(equipment); - //设置接收人姓名 - SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectById(model.getCreatorId()); - vo.setCreatorName(systemAuthAdmin.getNickname()); + //设置创建人姓名 + if(model.getOrderSource() == OrderStateEnum.CUSTOMER_REPORT.getStatus()){ + User user = userMapper.selectById(model.getReceiverId()); + vo.setCreatorName(user.getNickname()); + }else{ + SystemAuthAdmin systemAuthAdmin = systemAuthAdminMapper.selectById(model.getCreatorId()); + vo.setCreatorName(systemAuthAdmin.getNickname()); + } //设置接单人名称 User user = userMapper.selectById(model.getReceiverId()); 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 238e5bd..b91d0fc 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 @@ -45,6 +45,8 @@ public class MaintenanceOrderDto implements Serializable { private Date updateTime; // 更新时间 private Integer isDelete; // 是否删除 0-未删除 1-删除 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 + private Integer isMaintain; //是否维修 0-维修 1-不维修 + private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库 private String faultName; //故障名称 private String equipmentNo; //设备编号 diff --git a/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java b/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java index d496450..1b7a91c 100644 --- a/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/warehouse/WarehouseMapper.java @@ -23,6 +23,6 @@ public interface WarehouseMapper extends IBaseMapper { * @param id 指定仓库id * @return List */ - @Select("select * from la_warehouse where is_delete = 0 (pid IN ( SELECT id FROM la_warehouse WHERE warehouse_coding = 'topWarehouse' OR warehouse_coding = 'areaWarehouse' ) or id = #{id})") + @Select("select * from la_warehouse where is_delete = 0 and pid IN ( SELECT id FROM la_warehouse WHERE warehouse_coding = 'topWarehouse' OR warehouse_coding = 'areaWarehouse') or id = #{id}") List findPublicWarehouseList(@Param("id") Long id); } 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 904e93c..3ced18a 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 @@ -93,7 +93,50 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { @Override public void add(MaintenanceOrderParam maintenanceOrderParam) { + MaintenanceOrder model = new MaintenanceOrder(); + BeanUtils.copyProperties(maintenanceOrderParam, model); + //订单来源 + model.setOrderSource(OrderStateEnum.CUSTOMER_REPORT.getStatus()); + //接单类型 + model.setReceiverType((long) OrderStateEnum.REGIONAL_DISPATCH.getStatus()); + //订单状态 + model.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus()); + + model.setOrderNo(getOrderNo()); + model.setCreatorId(maintenanceOrderParam.getClientId()); + + maintenanceOrderMapper.insert(model); + } + + private String getOrderNo() { + //获取当前日期并将其进行格式化 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); + String formatDate = simpleDateFormat.format(new Date()); + + StringBuilder currentOrderNo = new StringBuilder(formatDate + "000001"); + MaintenanceOrder lastmMaintenanceOrder = maintenanceOrderMapper.selectOne(new LambdaQueryWrapper() + .eq(MaintenanceOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .like(MaintenanceOrder::getOrderNo, formatDate) + .orderByDesc(MaintenanceOrder::getOrderNo) + .last("limit 1")); + //当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据 + if (lastmMaintenanceOrder == null) { + return currentOrderNo.toString(); + } else { + int lastOrderNo = Integer.parseInt(lastmMaintenanceOrder.getOrderNo().substring(8)); + int length = String.valueOf((lastOrderNo + 1)).length(); + StringBuilder newOrderNo = new StringBuilder(lastOrderNo + 1 + ""); + + //如果流水号长度小于6位,则在前面补0 + if (length < 6) { + for (int i = 0; i < 6 - length; i++) { + newOrderNo.insert(0, "0"); + } + } + + return formatDate + newOrderNo; + } } /** @@ -176,12 +219,10 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { if(maintenanceOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){ maintenanceOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); + maintenanceOrderDto.setOrderStatusIds("1,2,7,8"); }else{ maintenanceOrderDto.setClientId(maintenanceOrderDto.getClientId()); - } - - if(maintenanceOrderParam.getOrderStatus() == null){ - maintenanceOrderDto.setOrderStatusIds("1,2,7,8"); + maintenanceOrderDto.setOrderStatusIds("0,1,2,7,8"); } List returnData = new LinkedList<>(); @@ -234,21 +275,32 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { Assert.notNull(maintenanceOrder, "数据不存在"); Assert.notNull(maintenanceOrderParam.getCancelCause(), "退单原因不可为空"); - if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.CHECKING.getStatus() || - maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){ + maintenanceOrder.setCancelOrderTime(new Date()); + maintenanceOrder.setCancelCause(maintenanceOrderParam.getCancelCause()); - if(maintenanceOrder.getRepairWorkOrderFlow() == OrderStateEnum.WORK_ORDER_TANK.getStatus()){ - maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAITING_LIST.getStatus()); - maintenanceOrder.setReceiverId(null); + if(maintenanceOrderParam.getIsClient() == MaintenanceOrderStatusEnum.CLIENT.getStatus()){ + if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAITING_LIST.getStatus() || + maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){ + maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CLOSED.getStatus()); + maintenanceOrderMapper.updateById(maintenanceOrder); }else{ - maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHARGEBACK.getStatus()); + throw new OperateException("当前订单状态不可退单"); } - maintenanceOrder.setCancelOrderTime(new Date()); - maintenanceOrder.setCancelCause(maintenanceOrderParam.getCancelCause()); + }else { + if(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.CHECKING.getStatus() || + maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.PENDING_ORDER.getStatus()){ - maintenanceOrderMapper.updateById(maintenanceOrder); - }else{ - throw new OperateException("当前订单状态不可退单"); + if(maintenanceOrder.getRepairWorkOrderFlow() == OrderStateEnum.WORK_ORDER_TANK.getStatus()){ + maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.WAITING_LIST.getStatus()); + maintenanceOrder.setReceiverId(null); + }else{ + maintenanceOrder.setOrderStatus(MaintenanceOrderStatusEnum.CHARGEBACK.getStatus()); + } + + maintenanceOrderMapper.updateById(maintenanceOrder); + }else{ + throw new OperateException("当前订单状态不可退单"); + } } } @@ -350,7 +402,7 @@ public class MaintenanceOrderServiceImpl implements IMaintenanceOrderService { public void confirmServiceOfferPrice(MaintenanceOrderParam maintenanceOrderParam) { MaintenanceOrder maintenanceOrder = maintenanceOrderMapper.findMaintenanceOrderById(maintenanceOrderParam.getId()); Assert.notNull(maintenanceOrder, "数据不存在"); - Assert.isTrue(maintenanceOrder.getOrderStatus() != MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus(), "订单状态错误"); + Assert.isTrue(maintenanceOrder.getOrderStatus() == MaintenanceOrderStatusEnum.WAIT_CONFIRMATION.getStatus(), "订单状态错误"); if(maintenanceOrderParam.getIsMaintain() == MaintenanceOrderStatusEnum.MAINTAIN.getStatus()){ maintenanceOrder.setIsMaintain(MaintenanceOrderStatusEnum.MAINTAIN.getStatus()); 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 4d33197..fa30632 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 @@ -31,8 +31,6 @@ public class MaintenanceOrderParam implements Serializable { private String orderNo; - @NotNull(message = "orderSource参数缺失", groups = {create.class}) - @DecimalMin(value = "0", message = "orderSource参数值不能少于0", groups = {create.class}) private Integer orderSource; private Integer orderStatus; @@ -53,8 +51,6 @@ public class MaintenanceOrderParam implements Serializable { private String faultImg; - @NotNull(message = "receiverType参数缺失", groups = {create.class, update.class}) - @DecimalMin(value = "0", message = "receiverType参数值不能少于0", groups = {create.class, update.class}) private Long receiverType; private Long provinceId; @@ -92,10 +88,6 @@ public class MaintenanceOrderParam implements Serializable { private String familiarFaultDescription; - /** - * 订单去向 0-工单池 1-检修员 - */ - @NotNull(message = "repairWorkOrderFlow参数缺失", groups = {create.class, update.class}) private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 private String faultName; //故障名称 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 cbf6f01..dbe3a24 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 @@ -44,6 +44,8 @@ public class MaintenanceOrderDetailVo implements Serializable { private Long familiarFaultId; // 常见维修结论id private String familiarFaultDescription; // 常见维修结论描述 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 + private Integer isMaintain; //是否维修 0-维修 1-不维修 + private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库 private Date createTime; // 创建时间 private String clientName; // 客户姓名 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 b081824..21f62b1 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 @@ -44,6 +44,8 @@ public class MaintenanceOrderListVo implements Serializable { private Date createTime; // 创建时间 private Date updateTime; // 更新时间 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 + private Integer isMaintain; //是否维修 0-维修 1-不维修 + private Integer warehouseType; //仓库类型 0-我的仓库 1-公共仓库 private Double distance; //距离 private String practicalDistance; //实际距离 diff --git a/front/src/main/java/com/hcy/front/vo/order/OrderSparePartListVo.java b/front/src/main/java/com/hcy/front/vo/order/OrderSparePartListVo.java index 4a77521..b209dcb 100644 --- a/front/src/main/java/com/hcy/front/vo/order/OrderSparePartListVo.java +++ b/front/src/main/java/com/hcy/front/vo/order/OrderSparePartListVo.java @@ -21,7 +21,7 @@ public class OrderSparePartListVo implements Serializable { private String specificationsModel; // 规格型号 private String unit; // 单位 private BigDecimal price; // 价格 - private Long quantity; // 数量 + private Integer quantity; // 数量 private BigDecimal totalPrice; // 总价 }