diff --git a/admin/src/main/java/com/hcy/admin/controller/largeDataScreen/LargeDataScreenController.java b/admin/src/main/java/com/hcy/admin/controller/largeDataScreen/LargeDataScreenController.java index 2f4ade8..f8ee82d 100644 --- a/admin/src/main/java/com/hcy/admin/controller/largeDataScreen/LargeDataScreenController.java +++ b/admin/src/main/java/com/hcy/admin/controller/largeDataScreen/LargeDataScreenController.java @@ -5,6 +5,7 @@ import com.hcy.admin.service.client.IEquipmentService; import com.hcy.admin.service.largeDataScreen.ILargeDataScreenService; import com.hcy.admin.service.order.IMaintenanceOrderService; import com.hcy.admin.service.order.IRoutingInspectionOrderService; +import com.hcy.admin.validate.client.EquipmentParam; import com.hcy.admin.validate.common.PageParam; import com.hcy.admin.validate.order.MaintenanceOrderParam; import com.hcy.admin.vo.client.ClientListVo; @@ -127,13 +128,12 @@ public class LargeDataScreenController { * 设备列表 * * @param pageParam 分页参数 - * @param params 搜索参数 + * @param equipmentParam 搜索参数 * @return Object */ @GetMapping("/equipmentList") - public Object equipmentList(@Validated PageParam pageParam, - @RequestParam Map params) { - PageResult list = iEquipmentService.largeDataList(pageParam, params); + public Object equipmentList(@Validated PageParam pageParam, EquipmentParam equipmentParam) { + PageResult list = iEquipmentService.largeDataList(pageParam, equipmentParam); return AjaxResult.success(list); } 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 new file mode 100644 index 0000000..af13fcb --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/controller/order/RepairOrderController.java @@ -0,0 +1,97 @@ +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.RepairOrderParam; +import com.hcy.admin.validate.common.PageParam; +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.validator.annotation.IDMust; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import java.util.Map; + +/** + * 维修订单管理 + */ +@RestController +@RequestMapping("api/order/repairOrder") +public class RepairOrderController { + + @Resource + IRepairOrderService iRepairOrderService; + + /** + * 维修订单列表 + * + * @author hcy + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return Object + */ + @GetMapping("/list") + public Object list(@Validated PageParam pageParam, + @RequestParam Map params) { + PageResult list = iRepairOrderService.list(pageParam, params); + return AjaxResult.success(list); + } + /** + * 维修订单详情 + * + * @author hcy + * @param id 主键ID + * @return Object + */ + @GetMapping("/detail") + public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) { + RepairOrderDetailVo detail = iRepairOrderService.detail(id); + return AjaxResult.success(detail); + } + + /** + * 维修订单新增 + * + * @author hcy + * @param repairOrderParam 参数 + * @return Object + */ + @Log(title = "维修订单新增") + @PostMapping("/add") + public Object add(@Validated(value = RepairOrderParam.create.class) @RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.add(repairOrderParam); + return AjaxResult.success(); + } + + /** + * 维修订单编辑 + * + * @author hcy + * @param repairOrderParam 参数 + * @return Object + */ + @Log(title = "维修订单编辑") + @PostMapping("/edit") + public Object edit(@Validated(value = RepairOrderParam.update.class) @RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.edit(repairOrderParam); + return AjaxResult.success(); + } + + /** + * 维修订单删除 + * + * @author hcy + * @param repairOrderParam 参数 + * @return Object + */ + @Log(title = "维修订单删除") + @PostMapping("/del") + public Object del(@Validated(value = RepairOrderParam.delete.class) @RequestBody RepairOrderParam repairOrderParam) { + iRepairOrderService.del(Math.toIntExact(repairOrderParam.getId())); + return AjaxResult.success(); + } + +} diff --git a/admin/src/main/java/com/hcy/admin/service/client/IEquipmentService.java b/admin/src/main/java/com/hcy/admin/service/client/IEquipmentService.java index 9f32b63..be656ea 100644 --- a/admin/src/main/java/com/hcy/admin/service/client/IEquipmentService.java +++ b/admin/src/main/java/com/hcy/admin/service/client/IEquipmentService.java @@ -88,8 +88,8 @@ public interface IEquipmentService { /** * 数据大屏设备列表 * @param pageParam - * @param params + * @param equipmentParam * @return */ - PageResult largeDataList(PageParam pageParam, Map params); + PageResult largeDataList(PageParam pageParam, EquipmentParam equipmentParam); } 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 463c601..254087e 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 @@ -335,17 +335,17 @@ public class EquipmentServiceImpl implements IEquipmentService { * * @author hcy * @param pageParam 分页参数 - * @param params 搜索参数 + * @param equipmentParam 搜索参数 * @return PageResult */ @Override - public PageResult largeDataList(PageParam pageParam, Map params) { + public PageResult largeDataList(PageParam pageParam, EquipmentParam equipmentParam) { Integer page = pageParam.getPageNo(); Integer limit = pageParam.getPageSize(); QueryWrapper queryWrapper = new QueryWrapper<>(); - if(params.get("clientId") != null){ - queryWrapper.eq("client_id", Long.parseLong(params.get("clientId"))); + if(equipmentParam.getClientId() != null){ + queryWrapper.eq("client_id", equipmentParam.getClientId()); } queryWrapper.eq("is_delete", 0); queryWrapper.in("device_status", 1,2,3); 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 new file mode 100644 index 0000000..f06a0a4 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/service/order/IRepairOrderService.java @@ -0,0 +1,59 @@ +package com.hcy.admin.service.order; + +import com.hcy.admin.validate.common.PageParam; +import com.hcy.admin.validate.order.RepairOrderParam; +import com.hcy.admin.vo.order.RepairOrderListVo; +import com.hcy.admin.vo.order.RepairOrderDetailVo; +import com.hcy.common.core.PageResult; + +import java.util.Map; + +/** + * 维修订单服务接口类 + */ +public interface IRepairOrderService { + + /** + * 维修订单列表 + * + * @author hcy + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return PageResult + */ + PageResult list(PageParam pageParam, Map params); + + /** + * 维修订单详情 + * + * @author hcy + * @param id 主键ID + * @return RepairOrder + */ + RepairOrderDetailVo detail(Integer id); + + /** + * 维修订单新增 + * + * @author hcy + * @param repairOrderParam 参数 + */ + void add(RepairOrderParam repairOrderParam); + + /** + * 维修订单编辑 + * + * @author hcy + * @param repairOrderParam 参数 + */ + void edit(RepairOrderParam repairOrderParam); + + /** + * 维修订单删除 + * + * @author hcy + * @param id 主键ID + */ + void del(Integer id); + +} 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 new file mode 100644 index 0000000..8a3ec18 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/service/order/impl/RepairOrderServiceImpl.java @@ -0,0 +1,230 @@ +package com.hcy.admin.service.order.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +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.service.order.IRepairOrderService; +import com.hcy.admin.validate.common.PageParam; +import com.hcy.admin.validate.order.RepairOrderParam; +import com.hcy.admin.vo.order.RepairOrderListVo; +import com.hcy.admin.vo.order.RepairOrderDetailVo; +import com.hcy.common.constant.GlobalConstant; +import com.hcy.common.core.PageResult; +import com.hcy.common.entity.order.MaintenanceOrder; +import com.hcy.common.entity.order.RepairOrder; +import com.hcy.common.enums.order.OrderStateEnum; +import com.hcy.common.mapper.order.RepairOrderMapper; +import com.hcy.common.utils.ArrayUtil; +import com.hcy.common.utils.TimeUtil; +import com.hcy.common.utils.UrlUtil; +import com.hcy.common.config.GlobalConfig; +import org.springframework.beans.BeanUtils; +import org.springframework.stereotype.Service; +import org.springframework.util.Assert; + +import javax.annotation.Resource; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 维修订单实现类 + */ +@Service +public class RepairOrderServiceImpl implements IRepairOrderService { + + @Resource + RepairOrderMapper repairOrderMapper; + + /** + * 维修订单列表 + * + * @author hcy + * @param pageParam 分页参数 + * @param params 搜索参数 + * @return PageResult + */ + @Override + public PageResult list(PageParam pageParam, Map params) { + Integer page = pageParam.getPageNo(); + Integer limit = pageParam.getPageSize(); + + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("is_delete", 0); + queryWrapper.orderByDesc("id"); + + repairOrderMapper.setSearch(queryWrapper, params, new String[]{ + "=:orderNo@order_no:str", + "=:orderSource@order_source:long", + "like:clientName@client_name:str", + "=:priorityId@priority_id:long", + }); + + IPage iPage = repairOrderMapper.selectPage(new Page<>(page, limit), queryWrapper); + + List list = new LinkedList<>(); + for(RepairOrder item : iPage.getRecords()) { + RepairOrderListVo vo = new RepairOrderListVo(); + BeanUtils.copyProperties(item, vo); + vo.setCreateTime(item.getCreateTime()); + vo.setUpdateTime(item.getUpdateTime()); + list.add(vo); + } + + return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); + } + + /** + * 维修订单详情 + * + * @author hcy + * @param id 主键参数 + * @return RepairOrder + */ + @Override + public RepairOrderDetailVo detail(Integer id) { + RepairOrder model = repairOrderMapper.selectOne( + new QueryWrapper() + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在"); + + RepairOrderDetailVo vo = new RepairOrderDetailVo(); + BeanUtils.copyProperties(model, vo); + vo.setUpdateTime(model.getUpdateTime()); + return vo; + } + + /** + * 维修订单新增 + * + * @author hcy + * @param repairOrderParam 参数 + */ + @Override + public void add(RepairOrderParam repairOrderParam) { + RepairOrder model = new RepairOrder(); + model.setOrderNo(getOrderNo()); //工单编号 + model.setOrderSource(OrderStateEnum.MAINTENANCE_SUPERVISOR_CREATION.getStatus()); //订单来源 5-维修主管创建 + model.setOrderStatus(repairOrderParam.getOrderStatus()); // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭 + model.setClientId(repairOrderParam.getClientId()); // 客户id + model.setEquipmentId(repairOrderParam.getEquipmentId()); // 设备id + model.setClientName(repairOrderParam.getClientName()); // 客户名称 + model.setClientContacts(repairOrderParam.getClientContacts()); // 客户联系人 + model.setClientPhone(repairOrderParam.getClientPhone()); // 客户联系电话 + model.setFaultDescription(repairOrderParam.getFaultDescription()); // 故障描述 + model.setEquipmentName(repairOrderParam.getEquipmentName()); // 设备名称 + model.setModuleNumber(repairOrderParam.getModuleNumber()); // 模块号 + model.setBrand(repairOrderParam.getBrand()); // 品牌 + model.setModuleImg(repairOrderParam.getModuleImg()); // 模块图片 + model.setRemark(repairOrderParam.getRemark()); // 备注 + model.setCreatorId(repairOrderParam.getCreatorId()); // 创建人id + model.setCreateTime(repairOrderParam.getCreateTime()); // 创建时间 + model.setMaintenanceOrderId(repairOrderParam.getMaintenanceOrderId()); // 检修单id + model.setPriorityId(repairOrderParam.getPriorityId()); // 优先级 0-普通 1-加急 + model.setLogisticsMode(repairOrderParam.getLogisticsMode()); // 物流方式 + model.setExpressName(repairOrderParam.getExpressName()); // 快递名称 + model.setReturnOrNot(repairOrderParam.getReturnOrNot()); // 是否回寄(0=是 1=否) + model.setAddressId(repairOrderParam.getAddressId()); // 回寄地址 + model.setSiteImg(repairOrderParam.getSiteImg()); // 现场照片 + repairOrderMapper.insert(model); + } + + /** + * 维修订单编辑 + * + * @author hcy + * @param repairOrderParam 参数 + */ + @Override + public void edit(RepairOrderParam repairOrderParam) { + RepairOrder model = repairOrderMapper.selectOne( + new QueryWrapper() + .eq("id", repairOrderParam.getId()) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在!"); + + model.setId(repairOrderParam.getId()); + model.setOrderNo(repairOrderParam.getOrderNo()); + model.setOrderSource(repairOrderParam.getOrderSource()); + model.setOrderStatus(repairOrderParam.getOrderStatus()); + model.setClientId(repairOrderParam.getClientId()); + model.setEquipmentId(repairOrderParam.getEquipmentId()); + model.setClientName(repairOrderParam.getClientName()); + model.setClientContacts(repairOrderParam.getClientContacts()); + model.setClientPhone(repairOrderParam.getClientPhone()); + model.setFaultDescription(repairOrderParam.getFaultDescription()); + model.setModuleNumber(repairOrderParam.getModuleNumber()); + model.setBrand(repairOrderParam.getBrand()); + model.setRemark(repairOrderParam.getRemark()); + model.setCreatorId(repairOrderParam.getCreatorId()); + model.setUpdateTime(repairOrderParam.getUpdateTime()); + model.setMaintenanceOrderId(repairOrderParam.getMaintenanceOrderId()); + model.setPriorityId(repairOrderParam.getPriorityId()); + model.setLogisticsMode(repairOrderParam.getLogisticsMode()); + model.setExpressName(repairOrderParam.getExpressName()); + model.setReturnOrNot(repairOrderParam.getReturnOrNot()); + model.setAddressId(repairOrderParam.getAddressId()); + model.setSiteImg(repairOrderParam.getSiteImg()); + repairOrderMapper.updateById(model); + } + + /** + * 维修订单删除 + * + * @author hcy + * @param id 主键ID + */ + @Override + public void del(Integer id) { + RepairOrder model = repairOrderMapper.selectOne( + new QueryWrapper() + .eq("id", id) + .eq("is_delete", 0) + .last("limit 1")); + + Assert.notNull(model, "数据不存在!"); + + model.setIsDelete(1); + repairOrderMapper.updateById(model); + } + + /** + * 工单编号 + * @return + */ + private String getOrderNo() { + //获取当前日期并将其进行格式化 + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd"); + String formatDate = simpleDateFormat.format(new Date()); + + StringBuilder currentOrderNo = new StringBuilder(formatDate + "000001"); + RepairOrder repairOrder = repairOrderMapper.selectOne(new LambdaQueryWrapper() + .eq(RepairOrder::getIsDelete, GlobalConstant.NOT_DELETE) + .like(RepairOrder::getOrderNo, formatDate) + .orderByDesc(RepairOrder::getOrderNo) + .last("limit 1")); + //当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据 + if (repairOrder == null) { + return currentOrderNo.toString(); + } else { + int lastOrderNo = Integer.parseInt(repairOrder.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; + } + } +} 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 7116343..215215b 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 @@ -52,7 +52,7 @@ public class MaintenanceOrderParam implements Serializable { @NotNull(message = "receiverType参数缺失", groups = {create.class}) @DecimalMin(value = "0", message = "receiverType参数值不能少于0", groups = {create.class, update.class}) - private Long receiverType; + private Integer receiverType; private Long provinceId; 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 new file mode 100644 index 0000000..84096cb --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/validate/order/RepairOrderParam.java @@ -0,0 +1,94 @@ +package com.hcy.admin.validate.order; + +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; +import org.hibernate.validator.constraints.Length; + +import lombok.Data; +import javax.validation.constraints.*; +import java.io.Serializable; +import java.util.Date; + +/** + * 维修订单参数 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +public class RepairOrderParam implements Serializable { + + private static final long serialVersionUID = 1L; + + public interface create{} + public interface update{} + public interface delete{} + + private Long id; + + @Length(max = 50, message = "orderNo参数不能超出50个字符", groups = {create.class, update.class}) + private String orderNo; + + @DecimalMin(value = "0", message = "orderSource参数值不能少于0", groups = {create.class, update.class}) + private Integer orderSource; + + @DecimalMin(value = "0", message = "orderStatus参数值不能少于0", groups = {create.class, update.class}) + private Integer orderStatus; + + @DecimalMin(value = "0", message = "clientId参数值不能少于0", groups = {create.class, update.class}) + private Long clientId; + + @DecimalMin(value = "0", message = "equipmentId参数值不能少于0", groups = {create.class, update.class}) + private Long equipmentId; + + @Length(max = 32, message = "clientName参数不能超出32个字符", groups = {create.class, update.class}) + private String clientName; + + @Length(max = 32, message = "clientContacts参数不能超出32个字符", groups = {create.class, update.class}) + private String clientContacts; + + @Length(max = 32, message = "clientPhone参数不能超出32个字符", groups = {create.class, update.class}) + private String clientPhone; + + @Length(max = 250, message = "faultDescription参数不能超出250个字符", groups = {create.class, update.class}) + private String faultDescription; + + @Length(max = 32, message = "moduleNumber参数不能超出32个字符", groups = {create.class, update.class}) + private String moduleNumber; + + @Length(max = 32, message = "brand参数不能超出32个字符", groups = {create.class, update.class}) + private String brand; + + @Length(max = 250, message = "remark参数不能超出250个字符", groups = {create.class, update.class}) + private String remark; + + @DecimalMin(value = "0", message = "creatorId参数值不能少于0", groups = {create.class, update.class}) + private Long creatorId; + + private Date createTime; + + private Date updateTime; + + @DecimalMin(value = "0", message = "maintenanceOrderId参数值不能少于0", groups = {create.class, update.class}) + private Long maintenanceOrderId; + + @DecimalMin(value = "0", message = "priorityId参数值不能少于0", groups = {create.class, update.class}) + private Integer priorityId; + + @Length(max = 100, message = "logisticsMode参数不能超出100个字符", groups = {create.class, update.class}) + private String logisticsMode; + + @Length(max = 50, message = "expressName参数不能超出50个字符", groups = {create.class, update.class}) + private String expressName; + + @DecimalMin(value = "0", message = "returnOrNot参数值不能少于0", groups = {create.class, update.class}) + private Integer returnOrNot; + + @DecimalMin(value = "0", message = "addressId参数值不能少于0", groups = {create.class, update.class}) + private Long addressId; + + @Length(max = 255, message = "siteImg参数不能超出255个字符", groups = {create.class, update.class}) + private String siteImg; + private String equipmentName; // 设备名称 + private String moduleImg; // 模块图片 + +} 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 82e5015..f9c8e83 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 @@ -53,4 +53,6 @@ public class MaintenanceOrderListVo implements Serializable { private String clientName; // 客户姓名 private String creatorName; // 创建人姓名 private String receiverName; // 接单人姓名 + private String shortName; //客户简称 + } 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 new file mode 100644 index 0000000..fd013a6 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderDetailVo.java @@ -0,0 +1,39 @@ +package com.hcy.admin.vo.order; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * RepairOrderVo + */ +@Data +public class RepairOrderDetailVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; // 主键id + private String orderNo; // 订单编号 + private Long orderSource; // 订单来源 0-客户上报;1-系统创建;2-维修员创建;3-检修员创建;4-客服创建;5-维修主管创建 + private Long orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭 + private Long clientId; // 客户id + private Long equipmentId; // 设备id + private String clientName; // 客户名称 + private String clientContacts; // 客户联系人 + private String clientPhone; // 客户联系电话 + private String faultDescription; // 故障描述 + private String moduleNumber; // 模块号 + private String brand; // 品牌 + private String remark; // 备注 + private Long creatorId; // 创建人id + private Date updateTime; // 更新时间 + private Long maintenanceOrderId; // 检修单id + private Long priorityId; // 优先级 0-普通 1-加急 + private String logisticsMode; // 物流方式 + private String expressName; // 快递名称 + private Integer returnOrNot; // 是否回寄(0=是 1=否) + private Long addressId; // 回寄地址 + private String siteImg; // 现场照片 + +} 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 new file mode 100644 index 0000000..925dc35 --- /dev/null +++ b/admin/src/main/java/com/hcy/admin/vo/order/RepairOrderListVo.java @@ -0,0 +1,42 @@ +package com.hcy.admin.vo.order; + +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * RepairOrderVo + */ +@Data +public class RepairOrderListVo implements Serializable { + + private static final long serialVersionUID = 1L; + + private Long id; // 主键id + private String orderNo; // 订单编号 + private Long orderSource; // 订单来源 0-客户上报;1-系统创建;2-维修员创建;3-检修员创建;4-客服创建;5-维修主管创建 + private Long orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭 + private Long clientId; // 客户id + private Long equipmentId; // 设备id + private String clientName; // 客户名称 + private String clientContacts; // 客户联系人 + private String clientPhone; // 客户联系电话 + private String faultDescription; // 故障描述 + private String moduleNumber; // 模块号 + private String brand; // 品牌 + private Long receiverId; // 接单人id + private Date receiverTime; // 接单时间 + private String remark; // 备注 + private Long creatorId; // 创建人id + private Date createTime; // 创建时间 + private Date updateTime; // 更新时间 + private Long maintenanceOrderId; // 检修单id + private Long priorityId; // 优先级 0-普通 1-加急 + private String logisticsMode; // 物流方式 + private String expressName; // 快递名称 + private Integer returnOrNot; // 是否回寄(0=是 1=否) + private Long addressId; // 回寄地址 + private String siteImg; // 现场照片 + +} diff --git a/admin/src/main/java/com/hcy/admin/vo/order/RoutingInspectionOrderDetailVo.java b/admin/src/main/java/com/hcy/admin/vo/order/RoutingInspectionOrderDetailVo.java index 2220c2c..c7ae7d2 100644 --- a/admin/src/main/java/com/hcy/admin/vo/order/RoutingInspectionOrderDetailVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/order/RoutingInspectionOrderDetailVo.java @@ -53,4 +53,5 @@ public class RoutingInspectionOrderDetailVo implements Serializable { private Integer inspectionResult; //巡检结果(0=正常 1=异常) private String inspectionPhoto; //巡检照片 private String inspectionResultRemark; //巡检结果备注 + } diff --git a/admin/src/main/java/com/hcy/admin/vo/order/RoutingInspectionOrderListVo.java b/admin/src/main/java/com/hcy/admin/vo/order/RoutingInspectionOrderListVo.java index f755bde..142651d 100644 --- a/admin/src/main/java/com/hcy/admin/vo/order/RoutingInspectionOrderListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/order/RoutingInspectionOrderListVo.java @@ -37,4 +37,6 @@ public class RoutingInspectionOrderListVo implements Serializable { private Long receiverId; // 接单人id private String receiverName; // 接单人名称 private Date receiverTime; // 接单时间 + private String shortName; //客户简称 + private Integer inspectionResult; //巡检结果(0=正常 1=异常) } diff --git a/common/src/main/java/com/hcy/common/dto/RoutingInspectionOrderDto.java b/common/src/main/java/com/hcy/common/dto/RoutingInspectionOrderDto.java index 725d339..5f56106 100644 --- a/common/src/main/java/com/hcy/common/dto/RoutingInspectionOrderDto.java +++ b/common/src/main/java/com/hcy/common/dto/RoutingInspectionOrderDto.java @@ -46,4 +46,8 @@ public class RoutingInspectionOrderDto implements Serializable { private Long equipmentProvinceId; //设备省id private Long equipmentDistrictId; //设备区id private Long equipmentCityId; //设备市id + private String shortName; //客户简称 + private Integer inspectionResult; //巡检结果(0=正常 1=异常) + private String orderStatusIds; //订单状态ids + } diff --git a/common/src/main/java/com/hcy/common/dto/largeDataDto/ClientLargeDataDto.java b/common/src/main/java/com/hcy/common/dto/largeDataDto/ClientLargeDataDto.java index 8a042f4..77ab00c 100644 --- a/common/src/main/java/com/hcy/common/dto/largeDataDto/ClientLargeDataDto.java +++ b/common/src/main/java/com/hcy/common/dto/largeDataDto/ClientLargeDataDto.java @@ -20,7 +20,7 @@ public class ClientLargeDataDto implements Serializable { private Integer normalCount; // 正常数量 private Integer underOverhaulCount; // 检修中数量 private Integer underWarrantyCount; // 报修中数量 - + private String shortName; //客户简称 } 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 b91d0fc..ef4461d 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 @@ -62,4 +62,6 @@ public class MaintenanceOrderDto implements Serializable { private double latitude; //纬度 private String orderStatusIds; //订单状态ids private String likeWork; //关键字 + private String shortName; //客户简称 + } 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 1d3ce77..2338628 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 @@ -28,7 +28,7 @@ public class MaintenanceOrder implements Serializable { private Long faultId; // 故障id private String faultDescription; // 故障描述 private String faultImg; // 故障图片 - private Long receiverType; // 接单类型 0-区域派单;1-距离派单 + private Integer receiverType; // 接单类型 0-区域派单;1-距离派单 private Long provinceId; // 省id private Long cityId; // 市id private Long districtId; // 区id 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 new file mode 100644 index 0000000..4188213 --- /dev/null +++ b/common/src/main/java/com/hcy/common/entity/order/RepairOrder.java @@ -0,0 +1,78 @@ +package com.hcy.common.entity.order; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 维修订单实体 + */ +@Data +public class RepairOrder implements Serializable { + + private static final long serialVersionUID = 1L; + + @TableId(value="id", type= IdType.AUTO) + private Long id; // 主键id + private String orderNo; // 订单编号 + private Integer orderSource; // 订单来源 0-客户上报;1-系统创建;2-维修员创建;3-检修员创建;4-客服创建;5-维修主管创建 + private Integer orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-检测中;4-待客户确认;5-维修中;6-已完成;7-已退单;8-已关闭 + private Long clientId; // 客户id + private Long equipmentId; // 设备id + private String clientName; // 客户名称 + private String clientContacts; // 客户联系人 + private String clientPhone; // 客户联系电话 + private String faultDescription; // 故障描述 + private String equipmentName; // 设备名称 + private String moduleNumber; // 模块号 + private String brand; // 品牌 + private String moduleImg; // 模块图片 + private Integer receiverType; // 接单类型 0-区域派单;1-距离派单 + private BigDecimal orderDistance; // 订单距离 + private Long provinceId; // 省id + private Long cityId; // 市id + private Long districtId; // 区id + private BigDecimal totalAmount; // 总金额 + private BigDecimal actualAmount; // 实际金额 + private Long receiverId; // 接单人id + private Long repairId; // 返修id + private Date receiverTime; // 接单时间 + private Date quotationTime; // 报价时间 + private Date cancelOrderTime; // 取消订单时间 + private String cancelCause; // 取消原因 + private String refuseMaintenanceCause; // 拒绝维修原因 + private String remark; // 备注 + private Long creatorId; // 创建人id + private Date orderAccomplishTime; // 订单完成时间 + private Long familiarFaultId; // 常见维修结论id + private String familiarFaultDescription; // 常见维修结论描述 + private Date createTime; // 创建时间 + private Date updateTime; // 更新时间 + private Integer isDelete; // 是否删除 0-未删除 1-删除 + private Integer repairWorkOrderFlow; // 工单去向 0=工单池 1=检修员 + private Integer isMaintain; // 是否维修 0-维修 1-不维修 + private Integer warehouseType; // 仓库类型 0-我的仓库 1-公共仓库 + private Long maintenanceOrderId; // 检修单id + private Long userId; // 送修人 + private Integer priorityId; // 优先级 0-普通 1-加急 + private String logisticsMode; // 物流方式 + private String expressName; // 快递名称 + private String expressNo; // 快递单号 + private Integer returnOrNot; // 是否回寄(0=是 1=否) + private Long addressId; // 回寄地址 + private String siteImg; // 现场照片 + private String inMaintenanceImg; // 维修中照片 + private String afterRepairImg; // 维修后照片 + private String sparePartIds; // 更换配件ids + private String preMaintenanceImg; // 维修前照片 + private String faultPointImg; // 故障点照片 + private Integer scrapOrNot; // 是否报废(0=是,1=否) + private Long scrapFaultId; // 报废类型id + private String scrapAddress; // 报废地址 + private String scrapExplain; // 报废说明 + +} \ No newline at end of file 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 new file mode 100644 index 0000000..ac832a9 --- /dev/null +++ b/common/src/main/java/com/hcy/common/mapper/order/RepairOrderMapper.java @@ -0,0 +1,13 @@ +package com.hcy.common.mapper.order; + + +import com.hcy.common.core.basics.IBaseMapper; +import com.hcy.common.entity.order.RepairOrder; +import org.apache.ibatis.annotations.Mapper; + +/** + * 维修订单Mapper + */ +@Mapper +public interface RepairOrderMapper extends IBaseMapper { +} 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 3e792df..a4dc98f 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 @@ -27,10 +27,10 @@ public interface RoutingInspectionOrderMapper extends IBaseMapper frontPageList(@Param("page") Page page, @Param("form") RoutingInspectionOrderDto form); + Page frontPageList(Page page, @Param("param") RoutingInspectionOrderDto param); List list(@Param("form") RoutingInspectionOrderDto form); } diff --git a/common/src/main/resources/mapper/ClientMapper.xml b/common/src/main/resources/mapper/ClientMapper.xml index 65dff4c..f33f64c 100644 --- a/common/src/main/resources/mapper/ClientMapper.xml +++ b/common/src/main/resources/mapper/ClientMapper.xml @@ -10,7 +10,8 @@ c.client_no,c.client_name,COUNT(e.client_id) AS equipmentCount, SUM(CASE WHEN e.device_status = 1 THEN 1 ELSE 0 END) AS normalCount, SUM(CASE WHEN e.device_status = 2 THEN 1 ELSE 0 END) AS underOverhaulCount, - SUM(CASE WHEN e.device_status = 3 THEN 1 ELSE 0 END) AS underWarrantyCount + SUM(CASE WHEN e.device_status = 3 THEN 1 ELSE 0 END) AS underWarrantyCount, + c.short_name FROM la_client as c JOIN diff --git a/common/src/main/resources/mapper/MaintenanceOrderMapper.xml b/common/src/main/resources/mapper/MaintenanceOrderMapper.xml index dd577d5..afdf2e2 100644 --- a/common/src/main/resources/mapper/MaintenanceOrderMapper.xml +++ b/common/src/main/resources/mapper/MaintenanceOrderMapper.xml @@ -7,6 +7,7 @@ lmo.*, lf.`name` as faultName, lc.client_name as clientName, + lc.short_name as shortName, le.number as equipmentNo, le.name as equipmentName, le.detailed_address as detailedAddress, diff --git a/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml b/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml index 5d7bb3a..6f4b5af 100644 --- a/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml +++ b/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml @@ -2,8 +2,7 @@ - + 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 b05c5b6..1fbc9f2 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 @@ -28,8 +28,10 @@ import com.hcy.common.mapper.user.UserMapper; import com.hcy.common.utils.ToolsUtil; import com.hcy.front.FrontThreadLocal; import com.hcy.front.service.order.IRoutingInspectionOrderService; +import com.hcy.front.service.region.IDevRegionService; 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.RoutingInspectionOrderDetailVo; import com.hcy.front.vo.order.RoutingInspectionOrderListVo; @@ -72,6 +74,9 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde @Resource FaultMapper faultMapper; + @Resource + IDevRegionService regionService; + private final DecimalFormat df = new DecimalFormat ("#.#"); @@ -96,8 +101,10 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde //isClient; //是否客户 0-客户端 1-检修员端 if(routingInspectionOrderParam.getIsClient() == MaintenanceOrderStatusEnum.REPAIRER.getStatus()){ inspectionOrderDto.setReceiverId(FrontThreadLocal.getUserId().longValue()); //只查询当前用户的巡检单 + inspectionOrderDto.setOrderStatusIds("1,2,5"); }else{ inspectionOrderDto.setClientId(routingInspectionOrderParam.getClientId()); //查询客户的巡检单 + inspectionOrderDto.setOrderStatusIds("0,1,2,5"); } Page iPage = routingInspectionOrderMapper.frontPageList(page, inspectionOrderDto); @@ -106,6 +113,11 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde for(RoutingInspectionOrderDto item : iPage.getRecords()) { RoutingInspectionOrderListVo vo = new RoutingInspectionOrderListVo(); BeanUtils.copyProperties(item, vo); + //接单人名称 + User user = userMapper.selectById(item.getReceiverId()); + if(user != null){ + vo.setReceiverName(user.getNickname()); + } list.add(vo); } @@ -137,17 +149,21 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde .eq("id", model.getClientId()) .last("limit 1")); vo.setClientName(client.getClientName()); + //设备编号、名称、地址 Equipment equipment = equipmentMapper.selectOne( new QueryWrapper() .eq("id", model.getEquipmentId()) .last("limit 1")); - vo.setEquipmentNo(equipment.getNumber()); - vo.setEquipmentName(equipment.getName()); - vo.setDetailedAddress(equipment.getDetailedAddress()); - vo.setModel(equipment.getModel()); - vo.setManufacturers(equipment.getManufacturers()); - vo.setSpecification(equipment.getSpecification()); + EquipmentListVo equipmentListVo = new EquipmentListVo(); + BeanUtils.copyProperties(equipment, equipmentListVo); + Map regionMap = regionService.getRegionMap();//获取省市区 + equipmentListVo.setProvince(regionMap.get(equipmentListVo.getProvinceId())); + equipmentListVo.setCity(regionMap.get(equipmentListVo.getCityId())); + equipmentListVo.setDistrict(regionMap.get(equipmentListVo.getDistrictId())); + + vo.setEquipment(equipmentListVo); + //接单人 User username = userMapper.selectOne( new QueryWrapper() @@ -182,6 +198,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde Assert.notNull(model, "数据不存在!"); + model.setReceiverId(FrontThreadLocal.getUserId().longValue()); //接单人 model.setReceiverTime(new Date()); //接单时间 model.setOrderStatus(OrderStateEnum.TO_BE_INSPECTED.getStatus()); //用户接单后工单状态为待巡检 @@ -245,9 +262,11 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde maintenanceOrder.setFaultId(model.getFaultId()); // 故障id maintenanceOrder.setFaultDescription(model.getFaultDescription()); // 故障描述 maintenanceOrder.setRepairWorkOrderFlow(OrderStateEnum.WORK_ORDER_TANK.getStatus()); //工单去向 0=工单池 1=检修员 + maintenanceOrder.setReceiverType(OrderStateEnum.REGIONAL_DISPATCH.getStatus()); // 接单类型 0-区域派单;1-距离派单 maintenanceOrder.setRemark(model.getInspectionResultRemark()); // 备注 maintenanceOrder.setOrderSource(OrderStateEnum.MAINTENANCE_MAN_CREATION.getStatus()); //订单来源:3=检修员创建 maintenanceOrder.setOrderStatus(OrderStateEnum.WAITING_LIST.getStatus()); // 订单状态 0-待抢单 + maintenanceOrderMapper.insert(maintenanceOrder); } model.setInspectionResultRemark(routingInspectionOrderParam.getInspectionResultRemark());//巡检结果备注 @@ -273,7 +292,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde if(model.getOrderStatus() == OrderStateEnum.WAITING_LIST.getStatus()){ model.setReceiverId(FrontThreadLocal.getUserId().longValue()); - model.setOrderStatus(OrderStateEnum.PENDING_ORDER.getStatus()); + model.setOrderStatus(OrderStateEnum.TO_BE_INSPECTED.getStatus()); model.setReceiverTime(new Date()); routingInspectionOrderMapper.updateById(model); }else{ diff --git a/front/src/main/java/com/hcy/front/vo/order/RoutingInspectionOrderDetailVo.java b/front/src/main/java/com/hcy/front/vo/order/RoutingInspectionOrderDetailVo.java index 4b2dfc1..731fac1 100644 --- a/front/src/main/java/com/hcy/front/vo/order/RoutingInspectionOrderDetailVo.java +++ b/front/src/main/java/com/hcy/front/vo/order/RoutingInspectionOrderDetailVo.java @@ -1,5 +1,6 @@ package com.hcy.front.vo.order; +import com.hcy.front.vo.client.EquipmentListVo; import lombok.Data; import java.io.Serializable; @@ -20,12 +21,8 @@ public class RoutingInspectionOrderDetailVo implements Serializable { private Long clientId; // 客户id private String clientName; // 客户名称 private Long equipmentId; // 设备id - private String equipmentName; //设备名称 - private String equipmentNo; //设备编号 - private String detailedAddress; // 设备详细地址 - private String model; // 设备型号 - private String manufacturers; // 设备厂家 - private String specification; // 设备规格 + private EquipmentListVo equipment; // 设备信息 + private Long receiverId; // 接单人id private String receiverName; // 接单人名称 private Date receiverTime; // 接单时间 diff --git a/front/src/main/java/com/hcy/front/vo/order/RoutingInspectionOrderListVo.java b/front/src/main/java/com/hcy/front/vo/order/RoutingInspectionOrderListVo.java index e5a31c1..a355fb5 100644 --- a/front/src/main/java/com/hcy/front/vo/order/RoutingInspectionOrderListVo.java +++ b/front/src/main/java/com/hcy/front/vo/order/RoutingInspectionOrderListVo.java @@ -35,4 +35,9 @@ public class RoutingInspectionOrderListVo implements Serializable { private Long equipmentProvinceId; //设备省id private Long equipmentDistrictId; //设备区id private Long equipmentCityId; //设备市id + private Integer inspectionResult; //巡检结果(0=正常 1=异常) + + private Long receiverId; // 接单人id + private String receiverName; // 接单人名称 + private Date receiverTime; // 接单时间 }