From 904de747ac9f5408334ff84d37acb54970296e50 Mon Sep 17 00:00:00 2001 From: renfan <2206580733@qq.com> Date: Sat, 7 Sep 2024 17:54:35 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90admin=E3=80=91=E4=BC=98=E5=8C=96#=201?= =?UTF-8?q?=E3=80=81=E4=BC=98=E5=8C=96=E9=83=A8=E5=88=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/ClientSiteController.java | 4 +- .../client/EquipmentController.java | 4 +- .../service/client/IClientSiteService.java | 3 +- .../client/impl/ClientSiteServiceImpl.java | 68 +++++++++++++++++-- .../client/impl/EquipmentServiceImpl.java | 51 ++++++++++++-- .../RoutingInspectionOrderServiceImpl.java | 44 +++++++++++- .../validate/client/ClientSiteParam.java | 13 ++-- .../order/RoutingInspectionOrderParam.java | 3 +- .../admin/vo/client/ClientSiteDetailVo.java | 7 +- .../hcy/admin/vo/client/ClientSiteListVo.java | 7 ++ .../order/RoutingInspectionOrderDetailVo.java | 4 +- .../order/RoutingInspectionOrderListVo.java | 3 + .../common/dto/RoutingInspectionOrderDto.java | 20 +++--- .../hcy/common/entity/client/ClientSite.java | 4 ++ .../entity/order/RoutingInspectionOrder.java | 2 + .../mapper/client/ClientSiteMapper.java | 3 +- .../mapper/RoutingInspectionOrderMapper.xml | 34 +++++----- .../order/impl/RepairOrderServiceImpl.java | 1 + .../RoutingInspectionOrderServiceImpl.java | 19 ++++-- .../order/RoutingInspectionOrderParam.java | 9 +-- .../order/RoutingInspectionOrderDetailVo.java | 1 + .../order/RoutingInspectionOrderListVo.java | 14 ++-- 22 files changed, 247 insertions(+), 71 deletions(-) diff --git a/admin/src/main/java/com/hcy/admin/controller/client/ClientSiteController.java b/admin/src/main/java/com/hcy/admin/controller/client/ClientSiteController.java index 952a467..38a5aa2 100644 --- a/admin/src/main/java/com/hcy/admin/controller/client/ClientSiteController.java +++ b/admin/src/main/java/com/hcy/admin/controller/client/ClientSiteController.java @@ -10,6 +10,7 @@ import com.hcy.admin.vo.client.ClientSiteDetailVo; import com.hcy.admin.vo.client.ClientSiteListVo; 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.*; @@ -38,7 +39,7 @@ public class ClientSiteController { @GetMapping("/list") public Object list(@Validated PageParam pageParam, ClientSiteParam clientSiteParam) { - List list = iClientSiteService.list(pageParam, clientSiteParam); + PageResult list = iClientSiteService.list(pageParam, clientSiteParam); return AjaxResult.success(list); } /** @@ -96,4 +97,5 @@ public class ClientSiteController { return AjaxResult.success(); } + } diff --git a/admin/src/main/java/com/hcy/admin/controller/client/EquipmentController.java b/admin/src/main/java/com/hcy/admin/controller/client/EquipmentController.java index 2cf4935..a14d213 100644 --- a/admin/src/main/java/com/hcy/admin/controller/client/EquipmentController.java +++ b/admin/src/main/java/com/hcy/admin/controller/client/EquipmentController.java @@ -64,9 +64,9 @@ public class EquipmentController { @Log(title = "设备管理新增") @PostMapping("/add") public Object add(@Validated(value = EquipmentParam.create.class) @RequestBody EquipmentParam equipmentParam) { - if (iEquipmentService.checkEquipmentNumberUnique(equipmentParam)) { + /*if (iEquipmentService.checkEquipmentNumberUnique(equipmentParam)) { return AjaxResult.success(300,"","新增设备失败,设备编号已存在"); - } + }*/ iEquipmentService.add(equipmentParam); return AjaxResult.success(); } diff --git a/admin/src/main/java/com/hcy/admin/service/client/IClientSiteService.java b/admin/src/main/java/com/hcy/admin/service/client/IClientSiteService.java index 0c0465b..c86414c 100644 --- a/admin/src/main/java/com/hcy/admin/service/client/IClientSiteService.java +++ b/admin/src/main/java/com/hcy/admin/service/client/IClientSiteService.java @@ -4,6 +4,7 @@ import com.hcy.admin.validate.client.ClientSiteParam; import com.hcy.admin.validate.common.PageParam; import com.hcy.admin.vo.client.ClientSiteDetailVo; import com.hcy.admin.vo.client.ClientSiteListVo; +import com.hcy.common.core.PageResult; import java.util.List; @@ -21,7 +22,7 @@ public interface IClientSiteService { * @param clientSiteParam 搜索参数 * @return PageResult */ - List list(PageParam pageParam, ClientSiteParam clientSiteParam); + PageResult list(PageParam pageParam, ClientSiteParam clientSiteParam); /** * 站点详情 diff --git a/admin/src/main/java/com/hcy/admin/service/client/impl/ClientSiteServiceImpl.java b/admin/src/main/java/com/hcy/admin/service/client/impl/ClientSiteServiceImpl.java index 04d5f94..854d29c 100644 --- a/admin/src/main/java/com/hcy/admin/service/client/impl/ClientSiteServiceImpl.java +++ b/admin/src/main/java/com/hcy/admin/service/client/impl/ClientSiteServiceImpl.java @@ -2,6 +2,7 @@ package com.hcy.admin.service.client.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.admin.AdminThreadLocal; import com.hcy.admin.service.client.IClientSiteService; import com.hcy.admin.service.region.IDevRegionService; @@ -12,6 +13,7 @@ import com.hcy.admin.vo.client.EquipmentModelDetailVo; import com.hcy.admin.vo.client.ClientSiteDetailVo; import com.hcy.admin.vo.client.ClientSiteListVo; import com.hcy.common.constant.GlobalConstant; +import com.hcy.common.core.PageResult; import com.hcy.common.dto.ClientSiteDto; import com.hcy.common.entity.client.Client; import com.hcy.common.entity.client.Equipment; @@ -23,6 +25,7 @@ import com.hcy.common.mapper.client.EquipmentMapper; import com.hcy.common.mapper.client.EquipmentModelMapper; import com.hcy.common.mapper.client.ClientSiteMapper; import com.hcy.common.mapper.user.UserMapper; +import com.hcy.common.utils.TimeUtil; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.util.Assert; @@ -63,17 +66,17 @@ public class ClientSiteServiceImpl implements IClientSiteService { * @return PageResult */ @Override - public List list(PageParam pageParam, ClientSiteParam clientSiteParam) { + public PageResult list(PageParam pageParam, ClientSiteParam clientSiteParam) { Integer page = pageParam.getPageNo(); Integer limit = pageParam.getPageSize(); ClientSiteDto clientSiteDto = new ClientSiteDto(); BeanUtils.copyProperties(clientSiteParam, clientSiteDto); - List clientSiteDtos = clientSiteMapper.siteEquipmentList(clientSiteDto); + Page iPage = clientSiteMapper.siteEquipmentList(new Page<>(page, limit), clientSiteDto); List list = new LinkedList<>(); - for(ClientSiteDto item : clientSiteDtos) { + for(ClientSiteDto item : iPage.getRecords()) { ClientSiteListVo vo = new ClientSiteListVo(); BeanUtils.copyProperties(item, vo); @@ -114,15 +117,23 @@ public class ClientSiteServiceImpl implements IClientSiteService { } //设置设备模块信息 equipmentListVo.setEquipmentModel(equipmentModelDetailVo); + + //设备创建时间 + equipmentListVo.setCreateTime(TimeUtil.timestampToDate(equipmentItem.getCreateTime())); equipmentList.add(equipmentListVo); } } - vo.setEquipmentList(equipmentList); + + //省市区名称 + vo.setProvince(regionMap.get(vo.getProvinceId())); + vo.setCity(regionMap.get(vo.getCityId())); + vo.setDistrict(regionMap.get(vo.getDistrictId())); + list.add(vo); } - return list; + return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); } /** @@ -144,6 +155,50 @@ public class ClientSiteServiceImpl implements IClientSiteService { ClientSiteDetailVo vo = new ClientSiteDetailVo(); BeanUtils.copyProperties(model, vo); + + // 获取设备列表 + List equipment = equipmentMapper.selectList(new LambdaQueryWrapper() + .eq(Equipment::getIsDelete, GlobalConstant.NOT_DELETE) + .eq(Equipment::getClientSiteId, model.getId())); + + Map regionMap = regionService.getRegionMap();//获取省市区 + List equipmentList = new LinkedList<>(); + if(equipment != null){ + for (Equipment equipmentItem : equipment) { + EquipmentListVo equipmentListVo = new EquipmentListVo(); + BeanUtils.copyProperties(equipmentItem, equipmentListVo); + + equipmentListVo.setProvince(regionMap.get(equipmentListVo.getProvinceId())); + equipmentListVo.setCity(regionMap.get(equipmentListVo.getCityId())); + equipmentListVo.setDistrict(regionMap.get(equipmentListVo.getDistrictId())); + //获取客户名称 + Client client = clientMapper.selectOne( + new QueryWrapper() + .eq("id", equipmentItem.getClientId()) + .last("limit 1")); + if (client != null){ + equipmentListVo.setClientName(client.getClientName()); + } + + //设置设备模块信息 + EquipmentModel equipmentModel = equipmentModelMapper.findEquipmentModelByEquipmentId(vo.getId()); + EquipmentModelDetailVo equipmentModelDetailVo = new EquipmentModelDetailVo(); + if(equipmentModel != null){ + BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo); + + User insetallUser = userMapper.selectById(equipmentModel.getUserId()); + if(insetallUser != null){ + equipmentModelDetailVo.setInstallationName(insetallUser.getUsername()); + } + } + //设置设备模块信息 + equipmentListVo.setEquipmentModel(equipmentModelDetailVo); + equipmentList.add(equipmentListVo); + } + } + + vo.setEquipmentList(equipmentList); + return vo; } @@ -193,6 +248,9 @@ public class ClientSiteServiceImpl implements IClientSiteService { model.setCityId(clientSiteParam.getCityId()); // 市id model.setDetailedAddress(clientSiteParam.getDetailedAddress()); // 详细地址 + model.setInspectionCycle(clientSiteParam.getInspectionCycle()); // 巡检周期方式(0=天数间隔,1=固定日期) + model.setDailyAudit(clientSiteParam.getDailyAudit()); // 每隔几天巡检 + clientSiteMapper.updateById(model); } 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 ab0a423..a4c2ffc 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 @@ -17,12 +17,15 @@ import com.hcy.common.constant.GlobalConstant; import com.hcy.common.core.PageResult; import com.hcy.common.dto.EquipmentDto; import com.hcy.common.entity.client.Client; +import com.hcy.common.entity.client.ClientSite; import com.hcy.common.entity.client.Equipment; import com.hcy.common.entity.client.EquipmentModel; +import com.hcy.common.entity.order.RepairOrder; import com.hcy.common.entity.user.User; import com.hcy.common.enums.equipment.EquipmentStateEnum; import com.hcy.common.exception.OperateException; import com.hcy.common.mapper.client.ClientMapper; +import com.hcy.common.mapper.client.ClientSiteMapper; import com.hcy.common.mapper.client.EquipmentMapper; import com.hcy.common.mapper.client.EquipmentModelMapper; import com.hcy.common.mapper.user.UserMapper; @@ -58,6 +61,9 @@ public class EquipmentServiceImpl implements IEquipmentService { @Resource UserMapper userMapper; + @Resource + ClientSiteMapper clientSiteMapper; + /** * 设备管理列表 * @@ -111,7 +117,7 @@ public class EquipmentServiceImpl implements IEquipmentService { } //设置设备模块信息 vo.setEquipmentModel(equipmentModelDetailVo); - + //设备创建时间 vo.setCreateTime(TimeUtil.timestampToDate(item.getCreateTime())); list.add(vo); } @@ -163,7 +169,11 @@ public class EquipmentServiceImpl implements IEquipmentService { throw new OperateException("设备编号不可重复!"); } model.setClientSiteId(equipmentParam.getClientSiteId()); // 站点id - model.setClientId(equipmentParam.getClientId());//客户id + // 获取站点客户id + ClientSite clientSite = clientSiteMapper.selectOne(new LambdaQueryWrapper() + .eq(ClientSite::getId, equipmentParam.getClientSiteId())); + model.setClientId(clientSite.getClientId());//客户id + model.setNumber(getEquipmentNo(equipmentParam.getClientSiteId())); // 设备编号 model.setName(equipmentParam.getName()); model.setModel(equipmentParam.getModel()); // 设备型号 model.setManufacturers(equipmentParam.getManufacturers()); // 设备厂家 @@ -202,13 +212,13 @@ public class EquipmentServiceImpl implements IEquipmentService { model.setId(equipmentParam.getId()); model.setClientId(equipmentParam.getClientId()); model.setModuleId(equipmentParam.getModuleId()); - model.setNumber(equipmentParam.getNumber()); + /*model.setNumber(equipmentParam.getNumber()); Integer count = equipmentMapper.selectCount(new LambdaQueryWrapper() .eq(Equipment::getIsDelete, GlobalConstant.NOT_DELETE) .eq(Equipment::getNumber, equipmentParam.getNumber())); if(count > 0){ throw new OperateException("设备编号不可重复!"); - } + }*/ model.setClientSiteId(equipmentParam.getClientSiteId()); model.setName(equipmentParam.getName()); model.setModel(equipmentParam.getModel()); @@ -417,4 +427,37 @@ public class EquipmentServiceImpl implements IEquipmentService { return PageResult.iPageHandle(iPage.getTotal(), iPage.getCurrent(), iPage.getSize(), list); } + + private String getEquipmentNo(Long clientSiteId) { + //获取站点信息 + ClientSite clientSite = clientSiteMapper.selectOne(new LambdaQueryWrapper() + .eq(ClientSite::getId, clientSiteId)); + //获取客户信息 + Client client = clientMapper.selectOne(new LambdaQueryWrapper() + .eq(Client::getId, clientSite.getClientId())); + + StringBuilder currentEquipmentNo = new StringBuilder(client.getClientNo() + "-" + "000001"); + Equipment equipment = equipmentMapper.selectOne(new LambdaQueryWrapper() + .eq(Equipment::getIsDelete, GlobalConstant.NOT_DELETE) + .like(Equipment::getNumber, client.getClientNo()) + .orderByDesc(Equipment::getNumber) + .last("limit 1")); + //当天日期加第一条流水号,如果数据库不存在,则代表今天第一条数据 + if (equipment == null) { + return currentEquipmentNo.toString(); + } else { + int lastEquipmentNo = Integer.parseInt(equipment.getNumber().substring(8)); + int length = String.valueOf((lastEquipmentNo + 1)).length(); + StringBuilder newEquipmentNo = new StringBuilder(lastEquipmentNo + 1 + ""); + + //如果流水号长度小于6位,则在前面补0 + if (length < 6) { + for (int i = 0; i < 6 - length; i++) { + newEquipmentNo.insert(0, "0"); + } + } + + return client.getClientNo() + "-" + newEquipmentNo; + } + } } 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 61b1bca..6daa851 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 @@ -16,6 +16,7 @@ import com.hcy.common.constant.GlobalConstant; import com.hcy.common.core.PageResult; import com.hcy.common.dto.RoutingInspectionOrderDto; import com.hcy.common.entity.client.Client; +import com.hcy.common.entity.client.ClientSite; import com.hcy.common.entity.client.Equipment; import com.hcy.common.entity.fault.Fault; import com.hcy.common.entity.order.MaintenanceOrder; @@ -27,6 +28,7 @@ import com.hcy.common.enums.order.MaintenanceOrderStatusEnum; import com.hcy.common.enums.order.OrderOperateRecordEnum; import com.hcy.common.enums.order.OrderStateEnum; import com.hcy.common.mapper.client.ClientMapper; +import com.hcy.common.mapper.client.ClientSiteMapper; import com.hcy.common.mapper.client.EquipmentMapper; import com.hcy.common.mapper.fault.FaultMapper; import com.hcy.common.mapper.order.OrderOperateRecordMapper; @@ -77,6 +79,9 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde @Resource OrderOperateRecordMapper orderOperateRecordMapper; + @Resource + ClientSiteMapper clientSiteMapper; + /** * 巡检订单列表 * @@ -93,7 +98,9 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde inspectionOrderDto.setOrderNo(StringUtils.isEmpty(params.get("orderNo")) ? null : params.get("orderNo")); inspectionOrderDto.setClientName(StringUtils.isEmpty(params.get("clientName")) ? null : params.get("clientName")); +/* inspectionOrderDto.setEquipmentName(StringUtils.isEmpty(params.get("equipmentName")) ? null : params.get("equipmentName")); +*/ inspectionOrderDto.setReceiverName(StringUtils.isEmpty(params.get("receiverName")) ? null : params.get("receiverName")); if(StringUtils.isNotEmpty(params.get("orderSource"))){ inspectionOrderDto.setOrderSource(Long.valueOf(params.get("orderSource"))); @@ -104,11 +111,26 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde Page iPage = routingInspectionOrderMapper.pageList(page, inspectionOrderDto); + Map regionMap = regionService.getRegionMap(); + List list = new LinkedList<>(); for(RoutingInspectionOrderDto item : iPage.getRecords()) { RoutingInspectionOrderListVo vo = new RoutingInspectionOrderListVo(); BeanUtils.copyProperties(item, vo); + //站点名称 站点地址 + ClientSite clientSite = clientSiteMapper.selectOne(new LambdaQueryWrapper() + .eq(ClientSite::getId, item.getClientSiteId())); + if(clientSite != null){ + //站点名称 + vo.setSiteName(clientSite.getSiteName()); + //站点地址 + String province = regionMap.get(clientSite.getProvinceId()); + String city = regionMap.get(clientSite.getCityId()); + String district = regionMap.get(clientSite.getDistrictId()); + vo.setSiteAddress(province + city + district + clientSite.getDetailedAddress()); + } + list.add(vo); } @@ -142,7 +164,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde vo.setClientName(client.getClientName()); //设备信息 Map regionMap = regionService.getRegionMap(); - Equipment equipment = equipmentMapper.selectOne( + /*Equipment equipment = equipmentMapper.selectOne( new QueryWrapper() .eq("id", model.getEquipmentId()) .last("limit 1")); @@ -151,7 +173,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde equipmentListVo.setCity(regionMap.get(equipment.getCityId())); equipmentListVo.setDistrict(regionMap.get(equipment.getDistrictId())); BeanUtils.copyProperties(equipment, equipmentListVo); - vo.setEquipment(equipmentListVo); //设备信息 + vo.setEquipment(equipmentListVo); //设备信息*/ //接单人 User user = userMapper.selectOne( new QueryWrapper() @@ -182,6 +204,22 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde .eq(OrderOperateRecord::getOrderType, OrderOperateRecordEnum.ROUTING_INSPECTION.getStatus()) .eq(OrderOperateRecord::getOrderId, model.getId()); vo.setOrderOperateRecords(orderOperateRecordMapper.selectList(queryWrapper));; + + //站点名称 站点地址 + ClientSite clientSite = clientSiteMapper.selectOne(new LambdaQueryWrapper() + .eq(ClientSite::getId, model.getClientSiteId())); + if(clientSite != null){ + //站点名称 + vo.setSiteName(clientSite.getSiteName()); + //站点地址 + String province = regionMap.get(clientSite.getProvinceId()); + String city = regionMap.get(clientSite.getCityId()); + String district = regionMap.get(clientSite.getDistrictId()); + vo.setSiteAddress(province + city + district + clientSite.getDetailedAddress()); + } + + + return vo; } @@ -208,7 +246,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde model.setOrderNo(getOrderNo()); // 订单编号 model.setClientId(routingInspectionOrderParam.getClientId()); //客户id - model.setEquipmentId(routingInspectionOrderParam.getEquipmentId());// 设备id + model.setClientSiteId(routingInspectionOrderParam.getClientSiteId()); // 客户站点id model.setReceiverId(routingInspectionOrderParam.getReceiverId()); // 接单人id model.setRemark(routingInspectionOrderParam.getRemark()); // 备注 model.setReceiverType(routingInspectionOrderParam.getReceiverType()); // 接单类型 0-区域派单;1-距离派单 diff --git a/admin/src/main/java/com/hcy/admin/validate/client/ClientSiteParam.java b/admin/src/main/java/com/hcy/admin/validate/client/ClientSiteParam.java index 0454b53..52730f1 100644 --- a/admin/src/main/java/com/hcy/admin/validate/client/ClientSiteParam.java +++ b/admin/src/main/java/com/hcy/admin/validate/client/ClientSiteParam.java @@ -8,6 +8,7 @@ import org.hibernate.validator.constraints.Length; import lombok.Data; import javax.validation.constraints.*; import java.io.Serializable; +import java.util.Date; import java.util.List; /** @@ -27,35 +28,27 @@ public class ClientSiteParam implements Serializable { private Long id; - @NotNull(message = "clientId参数缺失", groups = {create.class, update.class}) @DecimalMin(value = "0", message = "clientId参数值不能少于0", groups = {create.class, update.class}) private Long clientId; - @NotNull(message = "siteName参数缺失", groups = {create.class, update.class}) @Length(max = 50, message = "siteName参数不能超出50个字符", groups = {create.class, update.class}) private String siteName; - @NotNull(message = "longitude参数缺失", groups = {create.class, update.class}) @Length(max = 24, message = "longitude参数不能超出24个字符", groups = {create.class, update.class}) private String longitude; - @NotNull(message = "latitude参数缺失", groups = {create.class, update.class}) @Length(max = 24, message = "latitude参数不能超出24个字符", groups = {create.class, update.class}) private String latitude; - @NotNull(message = "provinceId参数缺失", groups = {create.class, update.class}) @DecimalMin(value = "0", message = "provinceId参数值不能少于0", groups = {create.class, update.class}) private Long provinceId; - @NotNull(message = "districtId参数缺失", groups = {create.class, update.class}) @DecimalMin(value = "0", message = "districtId参数值不能少于0", groups = {create.class, update.class}) private Long districtId; - @NotNull(message = "cityId参数缺失", groups = {create.class, update.class}) @DecimalMin(value = "0", message = "cityId参数值不能少于0", groups = {create.class, update.class}) private Long cityId; - @NotNull(message = "detailedAddress参数缺失", groups = {create.class, update.class}) @Length(max = 255, message = "detailedAddress参数不能超出255个字符", groups = {create.class, update.class}) private String detailedAddress; @@ -63,5 +56,7 @@ public class ClientSiteParam implements Serializable { private Long creatorId; private List ids; //批量删除 - + private Integer inspectionCycle; // 巡检周期方式(0=天数间隔,1=固定日期) + private Integer dailyAudit; // 每隔几天巡检 + private Date frontPollingTime; //上次巡检时间 } diff --git a/admin/src/main/java/com/hcy/admin/validate/order/RoutingInspectionOrderParam.java b/admin/src/main/java/com/hcy/admin/validate/order/RoutingInspectionOrderParam.java index 78e1a63..7e8641d 100644 --- a/admin/src/main/java/com/hcy/admin/validate/order/RoutingInspectionOrderParam.java +++ b/admin/src/main/java/com/hcy/admin/validate/order/RoutingInspectionOrderParam.java @@ -62,5 +62,6 @@ public class RoutingInspectionOrderParam implements Serializable { private Integer receiverType; // 接单类型 0-区域派单;1-距离派单 private BigDecimal orderDistance; // 订单距离 private Integer repairWorkOrderFlow; //工单去向 0=工单池 1=检修员 - + private Long clientSiteId; // 客户站点id + private String siteName; // 站点名称 } diff --git a/admin/src/main/java/com/hcy/admin/vo/client/ClientSiteDetailVo.java b/admin/src/main/java/com/hcy/admin/vo/client/ClientSiteDetailVo.java index 12a6060..cb9d46d 100644 --- a/admin/src/main/java/com/hcy/admin/vo/client/ClientSiteDetailVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/client/ClientSiteDetailVo.java @@ -3,6 +3,8 @@ package com.hcy.admin.vo.client; import lombok.Data; import java.io.Serializable; +import java.util.Date; +import java.util.List; /** * SiteVo @@ -22,5 +24,8 @@ public class ClientSiteDetailVo implements Serializable { private Long cityId; // 市id private String detailedAddress; // 详细地址 private Long creatorId; // 创建人id - + private List equipmentList; // 设备列表 + private Integer inspectionCycle; // 巡检周期方式(0=天数间隔,1=固定日期) + private Integer dailyAudit; // 每隔几天巡检 + private Date frontPollingTime; //上次巡检时间 } diff --git a/admin/src/main/java/com/hcy/admin/vo/client/ClientSiteListVo.java b/admin/src/main/java/com/hcy/admin/vo/client/ClientSiteListVo.java index fc7131d..128d787 100644 --- a/admin/src/main/java/com/hcy/admin/vo/client/ClientSiteListVo.java +++ b/admin/src/main/java/com/hcy/admin/vo/client/ClientSiteListVo.java @@ -30,4 +30,11 @@ public class ClientSiteListVo implements Serializable { private Integer underOverhaulCount; // 设备检修中数量 private Integer underWarrantyCount; // 设备报修中数量 private List equipmentList; // 设备列表 + + private Integer inspectionCycle; // 巡检周期方式(0=天数间隔,1=固定日期) + private Integer dailyAudit; // 每隔几天巡检 + + private String province; // 省 + private String district; // 区 + private String city; // 市 } 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 654177c..15eb61a 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 @@ -56,5 +56,7 @@ public class RoutingInspectionOrderDetailVo implements Serializable { private String inspectionPhoto; //巡检照片 private String inspectionResultRemark; //巡检结果备注 private List orderOperateRecords; //订单操作记录 - + private Long clientSiteId; // 客户站点id + private String siteName; // 站点名称 + private String siteAddress; // 站点地址 } 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 142651d..ceef762 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 @@ -39,4 +39,7 @@ public class RoutingInspectionOrderListVo implements Serializable { private Date receiverTime; // 接单时间 private String shortName; //客户简称 private Integer inspectionResult; //巡检结果(0=正常 1=异常) + private Long clientSiteId; // 客户站点id + private String siteName; // 站点名称 + private String siteAddress; // 站点地址 } 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 5f56106..43b3b51 100644 --- a/common/src/main/java/com/hcy/common/dto/RoutingInspectionOrderDto.java +++ b/common/src/main/java/com/hcy/common/dto/RoutingInspectionOrderDto.java @@ -22,9 +22,8 @@ public class RoutingInspectionOrderDto implements Serializable { private Long clientId; // 客户id private String clientName; // 客户名称 private Long equipmentId; // 设备id - private String equipmentNo; //设备编号 - private String equipmentName; //设备名称 - private String detailedAddress; // 设备详细地址 + /*private String equipmentNo; //设备编号 + private String equipmentName; //设备名称*/ private Long creatorId; // 创建人id private String creatorName; //创建人名称 private Date createTime; // 创建时间 @@ -37,17 +36,20 @@ public class RoutingInspectionOrderDto implements Serializable { private Date receiverTime; // 接单时间 private String likeWork; // 模糊查询(工单编号/客户名称/设备编号) private String inspectionPhoto; //巡检照片 - private double longitude; //经度 - private double latitude; //纬度 + private Double longitude; //经度 + private Double latitude; //纬度 private BigDecimal orderDistance; // 订单距离 private Integer queryType; // 查询类型 0-离我最近 1-时间优先 private Date cancelOrderTime; // 取消订单时间 private String cancelCause; // 取消原因 - private Long equipmentProvinceId; //设备省id - private Long equipmentDistrictId; //设备区id - private Long equipmentCityId; //设备市id + private Long siteProvinceId; //站点省id + private Long siteDistrictId; //站点区id + private Long siteCityId; //站点市id private String shortName; //客户简称 private Integer inspectionResult; //巡检结果(0=正常 1=异常) private String orderStatusIds; //订单状态ids - + private Long clientSiteId; // 客户站点id + private String siteName; // 站点名称 + private String detailedAddress; // 站点详细地址 + private Date inspectionTime; // 巡检时间 } diff --git a/common/src/main/java/com/hcy/common/entity/client/ClientSite.java b/common/src/main/java/com/hcy/common/entity/client/ClientSite.java index 3196f73..61698e7 100644 --- a/common/src/main/java/com/hcy/common/entity/client/ClientSite.java +++ b/common/src/main/java/com/hcy/common/entity/client/ClientSite.java @@ -30,4 +30,8 @@ public class ClientSite implements Serializable { private Date updateTime; // 更新时间 private Integer isDelete; // 是否删除 0-未删除 1-删除 + private Integer inspectionCycle; // 巡检周期方式(0=天数间隔,1=固定日期) + private Integer dailyAudit; // 每隔几天巡检 + private Date frontPollingTime; //上次巡检时间 + } \ No newline at end of file diff --git a/common/src/main/java/com/hcy/common/entity/order/RoutingInspectionOrder.java b/common/src/main/java/com/hcy/common/entity/order/RoutingInspectionOrder.java index e1ffc33..52d4bea 100644 --- a/common/src/main/java/com/hcy/common/entity/order/RoutingInspectionOrder.java +++ b/common/src/main/java/com/hcy/common/entity/order/RoutingInspectionOrder.java @@ -54,5 +54,7 @@ public class RoutingInspectionOrder implements Serializable { private Integer inspectionResult; //巡检结果(0=正常 1=异常) private String inspectionPhoto; //巡检照片 private String inspectionResultRemark; //巡检结果备注 + private Long clientSiteId; // 客户站点id + private Date inspectionTime; // 巡检时间 } \ No newline at end of file diff --git a/common/src/main/java/com/hcy/common/mapper/client/ClientSiteMapper.java b/common/src/main/java/com/hcy/common/mapper/client/ClientSiteMapper.java index bc58c48..856a3a9 100644 --- a/common/src/main/java/com/hcy/common/mapper/client/ClientSiteMapper.java +++ b/common/src/main/java/com/hcy/common/mapper/client/ClientSiteMapper.java @@ -1,6 +1,7 @@ package com.hcy.common.mapper.client; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.hcy.common.core.basics.IBaseMapper; import com.hcy.common.dto.ClientSiteDto; import com.hcy.common.entity.client.ClientSite; @@ -19,6 +20,6 @@ public interface ClientSiteMapper extends IBaseMapper { * 查询站点名称、设备总数、设备状态正常总数,报修中总数,检修中总数 * @return */ - List siteEquipmentList(@Param("form") ClientSiteDto form); + Page siteEquipmentList(@Param("page") Page page, @Param("form") ClientSiteDto form); } diff --git a/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml b/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml index dadb62d..8cc2f4d 100644 --- a/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml +++ b/common/src/main/resources/mapper/RoutingInspectionOrderMapper.xml @@ -49,19 +49,21 @@ i.*, c.client_name, c.short_name, - e.number as equipmentNo, - e.name as equipmentName, - e.detailed_address, + cs.site_name as siteName, + cs.detailed_address, a.nickname as creatorName, f.`name` as familiarFaultName, u.nickname as receiverName, - e.longitude, - e.latitude, + cs.province_id as siteProvinceId, + cs.district_id as siteDistrictId, + cs.city_id as siteCityId, + cs.longitude, + cs.latitude, i.inspection_result as inspectionResult FROM la_routing_inspection_order AS i LEFT JOIN la_client AS c ON i.client_id = c.id - LEFT JOIN la_equipment AS e ON i.equipment_id = e.id + LEFT JOIN la_client_site AS cs ON i.client_site_id = cs.id LEFT JOIN la_system_auth_admin AS a ON i.creator_id = a.id LEFT JOIN la_fault AS f ON i.fault_id = f.id LEFT JOIN la_user as u on i.receiver_id = u.id @@ -79,9 +81,6 @@ OR c.client_name LIKE concat('%', #{param.likeWork}, '%') - - OR e.number LIKE concat('%', #{param.likeWork}, '%')) - and i.order_status = #{param.orderStatus} @@ -95,21 +94,20 @@ SELECT i.*, c.client_name, - e.number as equipmentNo, - e.name as equipmentName, - e.detailed_address, + cs.site_name as siteName, + cs.detailed_address, a.nickname as creatorName, f.`name` as familiarFaultName, u.nickname as receiverName, - e.province_id as equipmentProvinceId, - e.district_id as equipmentDistrictId, - e.city_id as equipmentCityId, - e.longitude, - e.latitude + cs.province_id as siteProvinceId, + cs.district_id as siteDistrictId, + cs.city_id as siteCityId, + cs.longitude, + cs.latitude FROM la_routing_inspection_order AS i LEFT JOIN la_client AS c ON i.client_id = c.id - LEFT JOIN la_equipment AS e ON i.equipment_id = e.id + LEFT JOIN la_client_site AS cs ON i.client_site_id = cs.id LEFT JOIN la_system_auth_admin AS a ON i.creator_id = a.id LEFT JOIN la_fault AS f ON i.fault_id = f.id LEFT JOIN la_user as u on i.receiver_id = u.id 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 983d408..a9a8b07 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 @@ -134,6 +134,7 @@ public class RepairOrderServiceImpl implements IRepairOrderService { List returnData = new LinkedList<>(); for (RepairOrderDto item : repairOrderDtoList) { if(repairOrderParam.getQueryType() == MaintenanceOrderStatusEnum.NEAREST_TO_ME.getStatus()){ + //获取管理员id SystemAuthAdmin systemAuthAdminByUserId = systemAuthAdminMapper.findSystemAuthAdminByUserId(Math.toIntExact(item.getCreatorId())); //获取工厂 Plant plant = plantMapper.findPlantByAdminId(Long.valueOf(systemAuthAdminByUserId.getPlantId())); 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 c9bab6f..d26c32d 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 @@ -117,7 +117,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde } Page iPage = routingInspectionOrderMapper.frontPageList(page, inspectionOrderDto); - + Map regionMap = regionService.getRegionMap(); List list = new LinkedList<>(); for(RoutingInspectionOrderDto item : iPage.getRecords()) { RoutingInspectionOrderListVo vo = new RoutingInspectionOrderListVo(); @@ -127,6 +127,13 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde if(user != null){ vo.setReceiverName(user.getNickname()); } + + //站点地址 + String province = regionMap.get(item.getSiteProvinceId()); + String city = regionMap.get(item.getSiteCityId()); + String district = regionMap.get(item.getSiteDistrictId()); + vo.setSiteAddress(province + city + district + item.getDetailedAddress()); + list.add(vo); } @@ -237,7 +244,8 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde .last("limit 1")); Assert.notNull(model, "数据不存在!"); - model.setOrderStatus(OrderStateEnum.DURING_INSPECTION.getStatus()); //用户开始巡检后工单状态为巡检中 + model.setOrderStatus(OrderStateEnum.DURING_INSPECTION.getStatus()); // 用户开始巡检后工单状态为巡检中 + model.setInspectionTime(new Date()); // 巡检时间 routingInspectionOrderMapper.updateById(model); //新增巡检单操作记录 @@ -356,6 +364,7 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde } /** + * 巡检单工单池 * 查询未被接单的订单 * * @param routingInspectionOrderParam @@ -380,9 +389,9 @@ public class RoutingInspectionOrderServiceImpl implements IRoutingInspectionOrde , routingInspectionOrderParam.getLongitude(), routingInspectionOrderParam.getLatitude()); if(item.getReceiverType() == OrderStateEnum.REGIONAL_DISPATCH.getStatus()){ - if(item.getEquipmentProvinceId().equals(systemAuthAdmin.getProvinceId()) && - item.getEquipmentCityId().equals(systemAuthAdmin.getCityId()) && - item.getEquipmentDistrictId().equals(systemAuthAdmin.getDistrictId()) ){ + if(item.getSiteProvinceId().equals(systemAuthAdmin.getProvinceId()) && + item.getSiteCityId().equals(systemAuthAdmin.getCityId()) && + item.getSiteDistrictId().equals(systemAuthAdmin.getDistrictId()) ){ // 计算距离 RoutingInspectionOrderListVo vo = new RoutingInspectionOrderListVo(); 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 b52db2c..4ed74a9 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 @@ -71,16 +71,17 @@ public class RoutingInspectionOrderParam implements Serializable { private Date orderAccomplishTime; // 订单完成时间 private String clientName; // 客户名称 - private String equipmentNo; //设备编号 - private String equipmentName; //设备名称 + /*private String equipmentNo; //设备编号 + private String equipmentName; //设备名称*/ + private String detailedAddress; // 设备详细地址 private String creatorName; //创建人名称 private String createTime; // 创建时间 private String familiarFaultName; //故障类型 private String receiverName; // 接单人名称 private String likeWork; // 模糊查询(工单编号/客户名称/设备编号) - private double longitude; //经度 - private double latitude; //纬度 + private Double longitude; //经度 + private Double latitude; //纬度 private Integer queryType; // 查询类型 0-离我最近 1-时间优先 private String cancelCause; // 取消原因 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 5db1ddd..b0849fe 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 @@ -38,5 +38,6 @@ public class RoutingInspectionOrderDetailVo implements Serializable { private Date cancelOrderTime; // 取消订单时间 private String cancelCause; // 取消原因 private String remark; // 备注 + private Date inspectionTime; // 巡检时间 } 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 a355fb5..211ba3b 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 @@ -19,10 +19,9 @@ public class RoutingInspectionOrderListVo implements Serializable { private Date orderAccomplishTime; // 订单完成时间 private Long clientId; // 客户id private String clientName; // 客户名称 - private Long equipmentId; // 设备id + /*private Long equipmentId; // 设备id private String equipmentNo; //设备编号 - private String equipmentName; //设备名称 - private String detailedAddress; // 设备详细地址 + private String equipmentName; //设备名称*/ private Date createTime; // 创建时间 private Long orderStatus; // 订单状态 0-待抢单;1-待接单;2-接单超时;3-巡检中;4-已完成;5-已退单;6-待巡检 private Double distance; //距离 @@ -32,12 +31,15 @@ public class RoutingInspectionOrderListVo implements Serializable { private Date cancelOrderTime; // 取消订单时间 private String cancelCause; // 取消原因 - private Long equipmentProvinceId; //设备省id - private Long equipmentDistrictId; //设备区id - private Long equipmentCityId; //设备市id + private Long siteProvinceId; //设备省id + private Long siteDistrictId; //设备区id + private Long siteCityId; //设备市id private Integer inspectionResult; //巡检结果(0=正常 1=异常) private Long receiverId; // 接单人id private String receiverName; // 接单人名称 + private String detailedAddress; // 站点详细地址 private Date receiverTime; // 接单时间 + private String siteAddress; // 站点地址 + private Date inspectionTime; // 巡检时间 }