Browse Source

换表管理

lin 4 years ago
parent
commit
7c29a582dc

+ 1 - 0
smart-city-platform/src/main/java/com/bz/smart_city/controller/assistant/MobileController.java

@@ -229,6 +229,7 @@ public class MobileController {
 		return new AjaxMessage<>(ResultStatus.OK);
 	}
 
+	@Deprecated
 	@PostMapping("/replace")
     @ApiOperation(value = "调试换表接口")
     public AjaxMessage singleInstallReplace(

+ 21 - 0
smart-city-platform/src/main/java/com/bz/smart_city/controller/system/ReplaceManageController.java

@@ -3,6 +3,7 @@ package com.bz.smart_city.controller.system;
 import com.bz.smart_city.commom.model.AjaxMessage;
 import com.bz.smart_city.commom.model.Pagination;
 import com.bz.smart_city.commom.model.ResultStatus;
+import com.bz.smart_city.dto.BuildingSelectDto;
 import com.bz.smart_city.dto.WaterMeterMaintenanceLogDto;
 import com.bz.smart_city.dto.WaterMeterReplaceInputDto;
 import com.bz.smart_city.dto.WaterMeterReplaceLogDto;
@@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDateTime;
+import java.util.List;
 
 @Controller
 @ResponseBody
@@ -68,6 +70,25 @@ public class ReplaceManageController {
     }
 
 
+    @GetMapping("getAreaList")
+    @ApiOperation(value = "查询换表记录列表")
+    public AjaxMessage<List<BuildingSelectDto>> getAreaList(
+            @ApiParam(value = "设备id", required = false) @RequestParam(required = false) Long deviceId,
+            @ApiParam(value = "设备编号/电子号/档案号", required = false) @RequestParam(required = false) String deviceNo,
+            @ApiParam(value = "更换方案,1 更换模块,2:更换整表", required = false) @RequestParam(required = false) Integer replaceMethod,
+            @ApiParam(value = "客户id", required = false) @RequestParam(required = false) Integer customerId,
+            @ApiParam(value = "更换人", required = false) @RequestParam(required = false) String replaceUsername,
+            @ApiParam(value = "是否验收,0否1是", required = false) @RequestParam(required = false) Integer isAccepted,
+            @ApiParam(value = "开始时间 格式:yyyyMMddHHmmss", required = false) @RequestParam(required = false) @DateTimeFormat(pattern = "yyyyMMddHHmmss") LocalDateTime startDate,
+            @ApiParam(value = "开始时间 格式:yyyyMMddHHmmss", required = false) @RequestParam(required = false) @DateTimeFormat(pattern = "yyyyMMddHHmmss") LocalDateTime endDate
+    ){
+        List<BuildingSelectDto> list = waterMeterReplaceLogService.getAreaList(
+                deviceId,deviceNo,replaceMethod,customerId,replaceUsername,isAccepted,startDate,endDate
+                );
+        return new AjaxMessage<>(ResultStatus.OK, list);
+    }
+
+
     @ResponseBody
     @PostMapping("/submitWaterMeterReplace")
     @ApiOperation(value = "换表")

+ 14 - 1
smart-city-platform/src/main/java/com/bz/smart_city/dao/WaterMeterReplaceLogMapper.java

@@ -1,6 +1,6 @@
 package com.bz.smart_city.dao;
 
-import com.bz.smart_city.dto.WaterMeterMaintenanceLogDto;
+import com.bz.smart_city.dto.BuildingSelectInfoDto;
 import com.bz.smart_city.dto.WaterMeterReplaceLogDto;
 import com.bz.smart_city.entity.ProgramItem;
 import org.apache.ibatis.annotations.Mapper;
@@ -23,6 +23,19 @@ public interface WaterMeterReplaceLogMapper {
     WaterMeterReplaceLog findByMainLogId(@Param("mainLogId") Integer mainLogId);
 
     List<WaterMeterReplaceLogDto> findList(
+            @Param("siteId") Integer siteId,
+            @Param("deviceId") Long deviceId,
+            @Param("deviceNo") String deviceNo,
+            @Param("replaceMethod") Integer replaceMethod,
+            @Param("customerId") Integer customerId,
+            @Param("replaceUsername") String replaceUsername,
+            @Param("isAccepted") Integer isAccepted,
+            @Param("startDate") LocalDateTime startDate,
+            @Param("endDate") LocalDateTime endDate,
+            @Param("programItems") List<ProgramItem> programItems);
+
+    List<BuildingSelectInfoDto> getAreaList(
+            @Param("siteId") Integer siteId,
             @Param("deviceId") Long deviceId,
             @Param("deviceNo") String deviceNo,
             @Param("replaceMethod") Integer replaceMethod,

+ 3 - 0
smart-city-platform/src/main/java/com/bz/smart_city/entity/WaterMeterReplaceLog.java

@@ -15,6 +15,9 @@ public class WaterMeterReplaceLog {
     @ApiModelProperty(value="主键")
     private Integer id;
 
+    @ApiModelProperty(value="站点id")
+    private Integer siteId;
+
     @ApiModelProperty(value="记录表id,参考sc_water_meter_maintenance_log表id")
     private Integer mainLogId;
 

+ 4 - 0
smart-city-platform/src/main/java/com/bz/smart_city/service/WaterMeterReplaceLogService.java

@@ -1,8 +1,10 @@
 package com.bz.smart_city.service;
 
 import java.time.LocalDateTime;
+import java.util.List;
 
 import com.bz.smart_city.commom.model.Pagination;
+import com.bz.smart_city.dto.BuildingSelectDto;
 import com.bz.smart_city.dto.WaterMeterReplaceInputDto;
 import com.bz.smart_city.dto.WaterMeterReplaceLogDto;
 import com.bz.smart_city.entity.WaterMeterReplaceLog;
@@ -20,5 +22,7 @@ public interface WaterMeterReplaceLogService{
 
     void getExcel(Long deviceId, String deviceNo, Integer replaceMethod, Integer customerId, String replaceUsername, Integer isAccepted, LocalDateTime startDate, LocalDateTime endDate, HttpServletResponse httpServletResponse);
 
+    List<BuildingSelectDto> getAreaList(Long deviceId, String deviceNo, Integer replaceMethod, Integer customerId, String replaceUsername, Integer isAccepted, LocalDateTime startDate, LocalDateTime endDate);
+
     void submitWaterMeterReplace(WaterMeterReplaceInputDto waterMeterReplaceDto);
 }

+ 13 - 4
smart-city-platform/src/main/java/com/bz/smart_city/service/impl/WaterMeterReplaceLogServiceImpl.java

@@ -9,7 +9,7 @@ import com.bz.smart_city.dao.DeviceMapper;
 import com.bz.smart_city.dao.DeviceTypeMapper;
 import com.bz.smart_city.dto.*;
 import com.bz.smart_city.entity.Device;
-import com.bz.smart_city.entity.WMeterType;
+import com.bz.smart_city.service.BuildingService;
 import com.bz.smart_city.service.udip.UdipUnitService;
 import com.github.pagehelper.PageHelper;
 import lombok.extern.slf4j.Slf4j;
@@ -18,7 +18,6 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDateTime;
-import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.List;
 import com.bz.smart_city.entity.WaterMeterReplaceLog;
@@ -39,6 +38,8 @@ public class WaterMeterReplaceLogServiceImpl implements WaterMeterReplaceLogServ
     private UdipUnitService udipUnitService;
     @Resource
     private DeviceMapper deviceMapper;
+    @Autowired
+    private BuildingService buildingService;
 
 
     @Override
@@ -55,14 +56,14 @@ public class WaterMeterReplaceLogServiceImpl implements WaterMeterReplaceLogServ
     public Pagination<WaterMeterReplaceLogDto> getList(Long deviceId, String deviceNo, Integer replaceMethod, Integer customerId, String replaceUsername, Integer isAccepted, LocalDateTime startDate, LocalDateTime endDate, int pageNum, int pageSize) {
         LoginUser loginUser = UserUtil.getCurrentUser();
         PageHelper.startPage(pageNum,pageSize);
-        List<WaterMeterReplaceLogDto> list = waterMeterReplaceLogMapper.findList(deviceId,deviceNo,replaceMethod,customerId,replaceUsername,isAccepted,startDate,endDate,UserUtil.getCurrentSiteProgramItems(loginUser));
+        List<WaterMeterReplaceLogDto> list = waterMeterReplaceLogMapper.findList(loginUser.getSiteId(),deviceId,deviceNo,replaceMethod,customerId,replaceUsername,isAccepted,startDate,endDate,UserUtil.getCurrentSiteProgramItems(loginUser));
         return new Pagination<>(list);
     }
 
     @Override
     public void getExcel(Long deviceId, String deviceNo, Integer replaceMethod, Integer customerId, String replaceUsername, Integer isAccepted, LocalDateTime startDate, LocalDateTime endDate, HttpServletResponse httpServletResponse) {
         LoginUser loginUser = UserUtil.getCurrentUser();
-        List<WaterMeterReplaceLogDto> list = waterMeterReplaceLogMapper.findList(deviceId,deviceNo,replaceMethod,customerId,replaceUsername,isAccepted,startDate,endDate,UserUtil.getCurrentSiteProgramItems(loginUser));
+        List<WaterMeterReplaceLogDto> list = waterMeterReplaceLogMapper.findList(loginUser.getSiteId(), deviceId,deviceNo,replaceMethod,customerId,replaceUsername,isAccepted,startDate,endDate,UserUtil.getCurrentSiteProgramItems(loginUser));
 
         String title = "换表记录";
         String[] rowsName = new String[]{"序号", "旧设备编号", "新设备编号", "旧水表电子号", "新水表电子号", "旧设备型号", "新设备型号", "水表档案号", "旧表止度", "新表起度", "更换方式", "客户", "建筑", "安装地址", "验收状态", "更换时间", "更换人"};
@@ -100,6 +101,13 @@ public class WaterMeterReplaceLogServiceImpl implements WaterMeterReplaceLogServ
 
     }
 
+    @Override
+    public List<BuildingSelectDto> getAreaList(Long deviceId, String deviceNo, Integer replaceMethod, Integer customerId, String replaceUsername, Integer isAccepted, LocalDateTime startDate, LocalDateTime endDate) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        List<BuildingSelectInfoDto> buildingList = waterMeterReplaceLogMapper.getAreaList(loginUser.getSiteId(),deviceId,deviceNo,replaceMethod,customerId,replaceUsername,isAccepted,startDate,endDate,UserUtil.getCurrentSiteProgramItems(loginUser));
+        return buildingService.areaList(buildingList);
+    }
+
     protected String getReplaceMethodName(Integer replaceMethod){
         String replaceMethodName = "更换整表";
         if(replaceMethod == 1){
@@ -126,6 +134,7 @@ public class WaterMeterReplaceLogServiceImpl implements WaterMeterReplaceLogServ
         //1、换表记录
         WaterMeterReplaceLog waterMeterReplaceLog = new WaterMeterReplaceLog();
         //waterMeterReplaceLog.setMainLogId(waterMeterMaintenanceLog.getId());
+        waterMeterReplaceLog.setSiteId(loginUser.getSiteId());
         waterMeterReplaceLog.setDeviceId(waterMeterReplaceInputDto.getDeviceId());
         waterMeterReplaceLog.setReplaceMethod(waterMeterReplaceInputDto.getReplaceMethod());
         waterMeterReplaceLog.setNewDeviceTypeId(waterMeterReplaceInputDto.getNewDeviceTypeId());

+ 59 - 3
smart-city-platform/src/main/resources/mapper/WaterMeterReplaceLogMapper.xml

@@ -6,6 +6,7 @@
         <!--@mbg.generated-->
         <!--@Table sc_water_meter_replace_log-->
         <id column="id" property="id" />
+        <result column="site_id" property="siteId" />
         <result column="main_log_id" property="mainLogId" />
         <result column="device_id" property="deviceId" />
         <result column="replace_method" property="replaceMethod" />
@@ -32,7 +33,7 @@
     </resultMap>
     <sql id="Base_Column_List">
         <!--@mbg.generated-->
-        id, main_log_id, device_id, replace_method, new_device_type_id, old_device_type_id,
+        id, site_id, main_log_id, device_id, replace_method, new_device_type_id, old_device_type_id,
         new_water_no, old_water_no, new_begin_wsv, old_end_wsv, new_device_no, old_device_no,
         new_sim_no, old_sim_no, new_device_flag_no, old_device_flag_no, remark, `status`,
         replace_username, replace_user_phone, date_create, date_update, create_by, update_by
@@ -41,6 +42,9 @@
         <!--@mbg.generated-->
         insert into sc_water_meter_replace_log
         <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="siteId != null">
+                site_id,
+            </if>
             <if test="mainLogId != null">
                 main_log_id,
             </if>
@@ -112,6 +116,9 @@
             </if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="siteId != null">
+                #{siteId},
+            </if>
             <if test="mainLogId != null">
                 #{mainLogId},
             </if>
@@ -187,6 +194,9 @@
         <!--@mbg.generated-->
         update sc_water_meter_replace_log
         <set>
+            <if test="siteId != null">
+                site_id = #{siteId},
+            </if>
             <if test="mainLogId != null">
                 main_log_id = #{mainLogId},
             </if>
@@ -262,14 +272,14 @@
     <insert id="batchInsert" keyColumn="id" keyProperty="id" parameterType="map" useGeneratedKeys="true">
         <!--@mbg.generated-->
         insert into sc_water_meter_replace_log
-        (main_log_id, device_id, replace_method, new_device_type_id, old_device_type_id,
+        (site_id, main_log_id, device_id, replace_method, new_device_type_id, old_device_type_id,
         new_water_no, old_water_no, new_begin_wsv, old_end_wsv, new_device_no, old_device_no,
         new_sim_no, old_sim_no, new_device_flag_no, old_device_flag_no, remark, `status`,
         replace_username, replace_user_phone, date_create, date_update, create_by, update_by
         )
         values
         <foreach collection="list" item="item" separator=",">
-            (#{item.mainLogId}, #{item.deviceId}, #{item.replaceMethod}, #{item.newDeviceTypeId},
+            (#{item.siteId}, #{item.mainLogId}, #{item.deviceId}, #{item.replaceMethod}, #{item.newDeviceTypeId},
             #{item.oldDeviceTypeId}, #{item.newWaterNo}, #{item.oldWaterNo}, #{item.newBeginWsv},
             #{item.oldEndWsv}, #{item.newDeviceNo}, #{item.oldDeviceNo}, #{item.newSimNo},
             #{item.oldSimNo}, #{item.newDeviceFlagNo}, #{item.oldDeviceFlagNo}, #{item.remark},
@@ -307,6 +317,7 @@
         left join sc_device_manufacturer sdm2 on(sdm2.id = sdt2.manufacturer_id)
         <if test="programItems != null and programItems.size() != 0">left join sc_device_dimension sdd on (sdd.device_id = d.id and sdd.status = 1)</if>
         where rl.status = 1 and d.status = 1
+        <if test="siteId != null"> and d.site_id = #{siteId}</if>
         <if test="deviceId != null"> and rl.device_id = #{deviceId}</if>
         <if test="deviceNo != null and deviceNo != ''"> and (
             rl.new_device_no LIKE concat('%',#{deviceNo},'%') or rl.old_device_no LIKE concat('%',#{deviceNo},'%') or
@@ -333,8 +344,10 @@
         count(1)
         from sc_water_meter_replace_log rl
         left join sc_device d on(d.id = rl.device_id)
+        <if test="isAccepted != null">left join sc_install_list sil on(sil.device_id = rl.device_id)</if>
         <if test="programItems != null and programItems.size() != 0">left join sc_device_dimension sdd on (sdd.device_id = d.id and sdd.status = 1)</if>
         where rl.status = 1 and d.status = 1
+        <if test="siteId != null"> and d.site_id = #{siteId}</if>
         <if test="deviceId != null"> and rl.device_id = #{deviceId}</if>
         <if test="deviceNo != null and deviceNo != ''"> and (
             rl.new_device_no LIKE concat('%',#{deviceNo},'%') or rl.old_device_no LIKE concat('%',#{deviceNo},'%') or
@@ -354,4 +367,47 @@
             </foreach>
         </if>
     </select>
+
+    <select id="getAreaList" resultType="com.bz.smart_city.dto.BuildingSelectInfoDto">
+        select
+        b.id,
+        b.name,
+        b.province,
+        b.city,
+        b.region,
+        b.community,
+        b.longitude,
+        b.latitude,
+        t1.device_count
+        from sc_building b
+        right join (
+            select sd.building_id,count(1) as device_count
+            from sc_water_meter_replace_log rl
+            left join sc_device sd on(sd.id = rl.device_id)
+            <if test="isAccepted != null">left join sc_install_list sil on(sil.device_id = rl.device_id)</if>
+            <if test="programItems != null and programItems.size() != 0">left join sc_device_dimension sdd on (sdd.device_id = d.id and sdd.status = 1)</if>
+            where rl.status = 1 and sd.status = 1
+            <if test="siteId != null"> and sd.site_id = #{siteId}</if>
+            <if test="deviceId != null"> and rl.device_id = #{deviceId}</if>
+            <if test="deviceNo != null and deviceNo != ''"> and (
+                rl.new_device_no LIKE concat('%',#{deviceNo},'%') or rl.old_device_no LIKE concat('%',#{deviceNo},'%') or
+                rl.new_water_no LIKE concat('%',#{deviceNo},'%') or rl.old_water_no LIKE concat('%',#{deviceNo},'%') or
+                sd.water_meter_file_no LIKE concat('%',#{deviceNo},'%')
+                )</if>
+            <if test="replaceMethod != null"> and rl.replace_method = #{replaceMethod}</if>
+            <if test="customerId != null"> and sd.customer_id = #{customerId}</if>
+            <if test="replaceUsername != null and replaceUsername != ''"> and rl.replace_username LIKE concat('%',#{replaceUsername},'%')</if>
+            <if test="isAccepted != null and isAccepted == 1"> and sil.is_accepted = #{isAccepted}</if>
+            <if test="isAccepted != null and isAccepted == 0"> and (sil.is_accepted = #{isAccepted} or sil.is_accepted is null)</if>
+            <if test="startDate != null"> and rl.date_create <![CDATA[ >= ]]> #{startDate}</if>
+            <if test="endDate != null"> and rl.date_create <![CDATA[ <= ]]> #{endDate}</if>
+            <if test="programItems != null and programItems.size() != 0"> and
+                <foreach collection="programItems" item="item" open="(" separator=" or " close=")">
+                    sdd.${item.dimensionCode} = #{item.dimensionValue}
+                </foreach>
+            </if>
+            GROUP BY sd.building_id
+        ) t1 on (t1.building_id = b.id)
+        where b.status = 1
+    </select>
 </mapper>