Sfoglia il codice sorgente

根据区域名或者区域主管名来模糊搜索区域列表

wanghaicheng 5 anni fa
parent
commit
d4b0bcb1ec

+ 43 - 21
lift-common/src/main/java/cn.com.ty.lift.common/constants/SqlConstants.java

@@ -75,7 +75,7 @@ public interface SqlConstants {
                     "   where mr.lift_id = #{liftId}" +
                     "       order by mr.work_date desc";
 
-    //物管根据用户id和月份,查询那一月每天的(待保养/保养中/已完成/计划超期)的数量
+    //物管根据用户id和月份,查询那一月每天的(待保养/保养中/已完成/计划超期)的数量
     String QUERY_MAINTENANCE_PLAN_MONTH_TASK_NUM =
             "select     DATE_FORMAT(plan_date, '%d') day, status status, count(status) count" +
                     "   from maintenance_plan" +
@@ -83,7 +83,7 @@ public interface SqlConstants {
                     "       and DATE_FORMAT(plan_date, '%Y-%m') = #{yearMonth}" +
                     "       group by plan_date, status";
 
-    //动态消息,当日急修完成是否已经评价列表
+    //物管。动态消息,当日急修完成是否已经评价列表
     String QUERY_EMERGENCY_REPAIR_DYNAMIC_MESSAGE =
             "select     er.id id,l.device_position devicePosition, has_evaluate hasEvaluate" +
                     "    from emergency_repair er" +
@@ -91,7 +91,7 @@ public interface SqlConstants {
                     "    where DATE_FORMAT(er.recovery_date, '%Y%m%d') = DATE_FORMAT(CURDATE(), '%Y%m%d')" +
                     "       and project_id in (select project_id from project_user where user_id = #{userId})";
 
-    //动态消息,当日维保完成是否已经评价列表
+    //物管。动态消息,当日维保完成是否已经评价列表
     String QUERY_MAINTENANCE_SUCCESS_DYNAMIC_MESSAGE =
             "select     mr.id id,l.device_position devicePosition, has_evaluate hasEvaluate" +
                     "    from maintenance_record mr" +
@@ -99,13 +99,13 @@ public interface SqlConstants {
                     "    where DATE_FORMAT(mr.recovery_date, '%Y%m%d')  = DATE_FORMAT(CURDATE(), '%Y%m%d')" +
                     "      and project_id in (select project_id from project_user where user_id = #{userId})";
 
-    //根据用户Id查询加入的项目列表
+    //物管。根据用户Id查询加入的项目列表
     String QUERY_JOIN_PROJECT_LIST =
             "select     id projectId, project_name projectName, mt_company_id mtCompanyId" +
                     "    from project" +
                     "   where id in (select project_id from project_user where user_id = #{userId})";
 
-    //查询急修/维保id是否有评价权限
+    //物管。查询急修/维保id是否有评价权限
     String QUERY_EVALUATE_AUTH =
             "select     temp.id id, pu.user_role userRole" +
                     "   from ${table} temp" +
@@ -113,24 +113,46 @@ public interface SqlConstants {
                     "   where user_role in (21, 22)" +
                     "  and user_id =#{userId}";
 
-    //查询用户加入的项目的急修列表
+    //物管。查询用户加入的项目的急修列表
     String QUERY_REPAIR_LIST =
-            "select         er.id               repairId," +
-                    "       p.project_name      projectName," +
-                    "       er.is_critical      isCritical," +
-                    "       er.repair_reason    repairReason," +
-                    "       er.source           source," +
-                    "       er.caller_date      callerDate," +
-                    "       l.registration_code registrationCode," +
-                    "       l.lift_type         liftType," +
-                    "       l.category          category," +
-                    "       l.device_position   devicePosition," +
-                    "       ui.name             workerName" +
-                    "   from emergency_repair er" +
-                    "         left join project_user pu on er.project_id = pu.project_id" +
+            "select                  distinct er.id               repairId," +
+                    "                p.project_name      projectName," +
+                    "                er.is_critical      isCritical," +
+                    "                er.repair_reason    repairReason," +
+                    "                er.source           source," +
+                    "                er.caller_date      callerDate," +
+                    "                l.registration_code registrationCode," +
+                    "                l.lift_type         liftType," +
+                    "                l.category          category," +
+                    "                l.device_position   devicePosition," +
+                    "                ui.name             workerName," +
+                    "                TimeStampDiff(SECOND ,er.assign_time,ifnull(er.taking_time, now())) * 1000 AS waitDiff," +
+                    "                er.create_date" +
+                    "    from emergency_repair er" +
+                    "         left join project_user pu on pu.project_id = er.project_id" +
                     "         left join project p on er.project_id = p.id" +
                     "         left join lift l on er.lift_id = l.id" +
                     "         left join project_lift_relevance plr on er.lift_id = plr.lift_id" +
-                    "         left join user_info ui on plr.worker_id = ui.user_id" +
-                    "   where pu.user_id = #{userId}";
+                    "         left join user_info ui on er.worker_id = ui.user_id" +
+                    "    where er.status = #{status}" +
+                    "            and er.project_id in (select er.project_id" +
+                    "                                  from project_user pu" +
+                    "                                  where pu.user_id = #{userId}) order by er.create_date desc";
+
+    //查询区域列表
+    String QUERY_REGIONS = 
+            "select         r.area_name     areaName" +
+                    "     , r.area_code     areaCode" +
+                    "     , r.city_code     cityCode" +
+                    "     , r.remark        remark" +
+                    "     , r.province_code provinceCode" +
+                    "     , r.clerk         clerk" +
+                    "     , r.mt_company_id mtCompanyId" +
+                    "     , ui.name         name" +
+                    "     , r.id            id" +
+                    "   from region r" +
+                    "         left join user_info ui on r.user_id = ui.user_id" +
+                    "   where mt_company_id = #{mtCompanyId}" +
+                    "  and (r.area_name like '%${name}%' or ui.name like '%${name}%')" +
+                    "   order by create_time desc";
 }

+ 3 - 5
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/controller/RegionController.java

@@ -1,13 +1,11 @@
 package cn.com.ty.lift.enterprise.region.controller;
 
 import cn.com.ty.lift.enterprise.region.dao.entity.Region;
-import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionReq;
+import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionRequest;
 import cn.com.ty.lift.enterprise.region.dao.mapper.RegionMapper;
 import cn.com.ty.lift.enterprise.region.service.RegionService;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.AllArgsConstructor;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -33,8 +31,8 @@ public class RegionController {
     private final RegionMapper regionMapper;
 
     @PostMapping("/list")
-    public RestResponse list(@RequestBody RegionReq regionReq) {
-        return regionService.regions(regionReq);
+    public RestResponse list(@RequestBody RegionRequest regionRequest) {
+        return regionService.regions(regionRequest);
     }
 
     /**

+ 8 - 3
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/dao/entity/model/RegionReq.java

@@ -18,9 +18,14 @@ import java.io.Serializable;
 @Data
 @EqualsAndHashCode(callSuper = false)
 @Accessors(chain = true)
-public class RegionReq extends Region implements Serializable{
-    private Long pageNum;
-    private Long pageSize;
+public class RegionRequest extends Region implements Serializable {
+    private long pageNum = 1;
+    private long pageSize = 10;
     private Long mtCompanyId;
+
+    /**
+     * 模糊搜索字段,区域名称或区域主管名称
+     */
+    private String name;
 }
 

+ 20 - 0
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/dao/entity/model/RegionResponse.java

@@ -0,0 +1,20 @@
+package cn.com.ty.lift.enterprise.region.dao.entity.model;
+
+import lombok.Data;
+
+@Data
+public class RegionResponse {
+    private Long id;
+    private String areaName;
+    private String areaCode;
+    private String cityCode;
+    private String remark;
+    private String provinceCode;
+    private String clerk;
+    private Long mtCompanyId;
+    private String name;
+    private String provinceName;
+    private String cityName;
+    private long projectNum;
+    private long num;
+}

+ 11 - 8
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/dao/mapper/RegionMapper.java

@@ -1,8 +1,11 @@
 package cn.com.ty.lift.enterprise.region.dao.mapper;
 
+import cn.com.ty.lift.common.constants.SqlConstants;
 import cn.com.ty.lift.enterprise.region.dao.entity.Region;
 import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionBO;
+import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionResponse;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -20,22 +23,19 @@ import java.util.Map;
  */
 public interface RegionMapper extends BaseMapper<Region> {
     @Select("select city_code cityCode, province_code provinceCode from region where id = #{id}")
-    List<Map<String, Object>> selectProjectRegions(@Param("id") Long id);
+    List<Map<String, Object>> selectProjectRegions(Long id);
 
-    @Select("select user_id userId,name from user_info")
-    List<Map<String, Object>> selectUserInfo();
-
-    @Select("select region_id regionId,num from project")
-    List<Map<String, Object>> selectProjects();
+    @Select("select region_id regionId,num from project where mt_company_id = #{mtCompanyId}")
+    List<Map<String, Object>> selectProjects(Long mtCompanyId);
 
     @Select("select count(*) count from project where region_id= #{regionId}")
-    Map<String, Object> selectProjectCount(@Param("regionId") Long regionId);
+    Map<String, Object> selectProjectCount(Long regionId);
 
     @Select("select code,name from area_code")
     List<Map<String, Object>> selectAreaCodes();
 
     @Select("select user_id userId,name from user_info where user_id in (${userOrClerks})")
-    List<Map<String, Object>> selectRegionMember(@Param("userOrClerks") String userOrClerks);
+    List<Map<String, Object>> selectRegionMember(String userOrClerks);
 
     @Select("select name,code from area_code where parent=#{cityCode}")
     List<Map<String, Object>> areas(String cityCode);
@@ -45,4 +45,7 @@ public interface RegionMapper extends BaseMapper<Region> {
 
     @Select("select id,area_name areaName from region where mt_company_id=#{mtCompanyId} and area_name like #{areaName}")
     List<RegionBO> selectIdAndNameLikeName(Long mtCompanyId, String areaName);
+
+    @Select(SqlConstants.QUERY_REGIONS)
+    IPage<RegionResponse> regions(IPage<RegionResponse> page, Long mtCompanyId, String name);
 }

+ 2 - 2
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/service/RegionService.java

@@ -1,7 +1,7 @@
 package cn.com.ty.lift.enterprise.region.service;
 
 import cn.com.ty.lift.enterprise.region.dao.entity.Region;
-import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionReq;
+import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionRequest;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import com.baomidou.mybatisplus.extension.service.IService;
 
@@ -18,7 +18,7 @@ import java.util.Map;
  */
 public interface RegionService extends IService<Region> {
 
-    RestResponse regions(RegionReq regionReq);
+    RestResponse regions(RegionRequest regionRequest);
 
     RestResponse delete(Region region);
 

+ 22 - 35
lift-enterprise-service/src/main/java/cn/com/ty/lift/enterprise/region/service/impl/RegionServiceImpl.java

@@ -5,11 +5,11 @@ import cn.com.ty.lift.common.model.PushUserInfo;
 import cn.com.ty.lift.enterprise.push.PushUserService;
 import cn.com.ty.lift.enterprise.region.dao.entity.AreaCode;
 import cn.com.ty.lift.enterprise.region.dao.entity.Region;
-import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionReq;
+import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionRequest;
+import cn.com.ty.lift.enterprise.region.dao.entity.model.RegionResponse;
 import cn.com.ty.lift.enterprise.region.dao.mapper.RegionMapper;
 import cn.com.ty.lift.enterprise.region.service.RegionService;
 import cn.com.xwy.boot.web.dto.RestResponse;
-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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -37,65 +37,52 @@ public class RegionServiceImpl extends ServiceImpl<RegionMapper, Region> impleme
     private final PushUserService pushUserService;
     private final JmsMessagingTemplate jmsMessagingTemplate;
 
-    public RestResponse regions(RegionReq req) {
-        Page<Region> page = new Page<>(req.getPageNum(), req.getPageSize());
+    public RestResponse<?> regions(RegionRequest req) {
+        Page<RegionResponse> page = new Page<>(req.getPageNum(), req.getPageSize());
         //获取维保团队的区域列表
-        IPage<Map<String, Object>> regions = this.pageMaps(page,
-                new QueryWrapper<Region>()
-                        .select("area_name areaName", "area_code areaCode", "city_code cityCode", "remark"
-                                , "province_code provinceCode", "clerk", "mt_company_id mtCompanyId"
-                                , "user_id userId", "id")
-                        .eq("mt_company_id", req.getMtCompanyId())
-                        .orderByDesc("create_time"));
+        IPage<RegionResponse> regions = this.baseMapper.regions(page, req.getMtCompanyId(), req.getName());
 
-        List<Map<String, Object>> records = regions.getRecords();
+        List<RegionResponse> records = regions.getRecords();
         //如果没有区域
         if (records.isEmpty()) {
             return RestResponse.success(page);
         }
-        List<Map<String, Object>> projects = baseMapper.selectProjects();
+        List<Map<String, Object>> projects = baseMapper.selectProjects(req.getMtCompanyId());
         List<Map<String, Object>> areaCodes = baseMapper.selectAreaCodes();
-        List<Map<String, Object>> userInfos = baseMapper.selectUserInfo();
-        //遍历区域列表
-        for (Map<String, Object> region : records) {
-            //遍历用户列表,将user_id替换为name
-            if (userInfos.isEmpty()) {
-                region.put("name", "无");
-            } else {
-                userInfos.forEach(userInfo -> {
-                    if (null != userInfo.get("userId") && userInfo.get("userId").equals(region.get("userId"))) {
-                        region.put("name", userInfo.get("name"));
-                    }
-                });
-            }
 
+        //遍历区域列表
+        for (RegionResponse region : records) {
             //遍历省市列表,将省市的code转化为name
             for (Map<String, Object> area : areaCodes) {
-                if (null != region.get("provinceCode") && region.get("provinceCode").equals(area.get("code"))) {
-                    region.put("provinceName", area.get("name"));
+                if (null != region.getProvinceCode() && region.getProvinceCode().equals(area.get("code"))) {
+                    region.setProvinceName(area.get("name").toString());
+                } else {
+                    region.setProvinceName("无");
                 }
-                if (null != region.get("cityCode") && region.get("cityCode").equals(area.get("code"))) {
-                    region.put("cityName", area.get("name"));
+                if (null != region.getCityCode() && region.getCityCode().equals(area.get("code"))) {
+                    region.setCityName(area.get("name").toString());
+                } else {
+                    region.setCityName("无");
                 }
             }
 
             long projectNum = 0;
             long num = 0;
             //遍历项目列表,获取区域下的项目个数和区域下的总电梯数
-            Long id = Long.valueOf(region.get("id").toString());
+            Long id = region.getId();
             for (Map<String, Object> project : projects) {
                 if (null != project.get("regionId")) {
                     if (project.get("regionId").equals(id)) {
                         projectNum += 1;
                         //如果项目电梯数量为null,就设置0
-                        num += null != project.get("num") ? (long) project.get("num") : 0;
+                        num += null != project.get("num") ? (int) project.get("num") : 0;
                     }
                 }
             }
-            region.put("projectNum", projectNum);
-            region.put("num", num);
+            region.setProjectNum(projectNum);
+            region.setNum(num);
         }
-        return RestResponse.success(regions, "成功");
+        return RestResponse.success(regions);
     }
 
     //删除区域,如果区域下没有关联项目