lin 3 năm trước cách đây
mục cha
commit
bab1159ea6
16 tập tin đã thay đổi với 484 bổ sung199 xóa
  1. 41 0
      zoniot-common/zoniot-core-common/src/main/java/com/zcxk/core/common/util/ApplicationContextHelper.java
  2. 5 4
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/BasePageDto.java
  3. 75 0
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/device/DeviceQueryDto.java
  4. 9 0
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/install/InstallDeviceDto.java
  5. 34 0
      zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/install/InstallQueryDto.java
  6. 20 17
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/DeviceMapper.java
  7. 11 1
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/InstallListMapper.java
  8. 45 11
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/DeviceMapper.xml
  9. 45 1
      zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/InstallListMapper.xml
  10. 2 2
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/config/ResourceServerConfig.java
  11. 28 132
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/DeviceController.java
  12. 54 9
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/InstallController.java
  13. 8 4
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/DeviceService.java
  14. 32 11
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/DeviceServiceImpl.java
  15. 15 2
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/install/InstallListService.java
  16. 60 5
      zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/install/impl/InstallListServiceImpl.java

+ 41 - 0
zoniot-common/zoniot-core-common/src/main/java/com/zcxk/core/common/util/ApplicationContextHelper.java

@@ -0,0 +1,41 @@
+package com.zcxk.core.common.util;
+import org.springframework.beans.BeansException;
+import org.springframework.context.ApplicationContext;
+import org.springframework.context.ApplicationContextAware;
+import org.springframework.stereotype.Component;
+
+@Component("applicationContextHelper")
+public class ApplicationContextHelper implements ApplicationContextAware {
+ 
+    private static ApplicationContext applicationContext;
+ 
+    @Override
+    public void setApplicationContext(ApplicationContext context) throws BeansException {
+ 
+        applicationContext = context;
+    }
+ 
+    /**
+     * 获取bean
+     * @param clazz
+     * @param <T>
+     * @return
+     */
+    public static <T> T popBean(Class<T> clazz) {
+        //先判断是否为空
+        if (applicationContext == null) {
+            return null;
+        }
+        return applicationContext.getBean(clazz);
+    }
+ 
+ 
+    public static <T> T popBean(String name, Class<T> clazz) {
+        if (applicationContext == null) {
+            return null;
+        }
+ 
+        return applicationContext.getBean(name, clazz);
+ 
+    }
+}

+ 5 - 4
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/BasePageDto.java

@@ -2,6 +2,7 @@ package com.zcxk.rmcp.api.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
+import org.springframework.web.bind.annotation.RequestParam;
 
 /**
  * @author Andy
@@ -12,10 +13,10 @@ import lombok.Data;
 @Data
 public class BasePageDto {
 
-    @ApiModelProperty(value = "页码")
-    private int pageNum;
+    @ApiModelProperty(value = "页码",required = true)
+    private int pageNum = 1;
 
-    @ApiModelProperty(value = "大小")
-    private int pageSize;
+    @ApiModelProperty(value = "条数",required = true)
+    private int pageSize = 15;
 
 }

+ 75 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/device/DeviceQueryDto.java

@@ -0,0 +1,75 @@
+package com.zcxk.rmcp.api.dto.device;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiParam;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import java.time.LocalDateTime;
+
+/**
+ * @author linqingwei
+ * @date 2021-07-29 10:30
+ */
+@Data
+@ApiModel
+public class DeviceQueryDto {
+
+    @ApiModelProperty(value = "分类id")
+    private Integer categoryId;
+
+    @ApiModelProperty(value = "产品id")
+    private Integer productId;
+
+    @ApiModelProperty(value = "公司id")
+    private Integer companyOrgId;
+
+    @ApiModelProperty(value = "部门id")
+    private Integer deptOrgId;
+
+    @ApiModelProperty(value = "小区id")
+    private Integer communityId;
+
+    @ApiModelProperty(value = "设备编号")
+    private String deviceNo;
+
+    @ApiModelProperty(value = "安装地址")
+    private String address;
+
+    @ApiModelProperty(value = "集中器id")
+    private Integer concentratorId;
+
+    @ApiModelProperty(value = "集中器编号")
+    private String concentratorNo;
+
+    @ApiModelProperty(value = "采集器id")
+    private Integer collectorId;
+
+    @ApiModelProperty(value = "采集器编号")
+    private String collectorNo;
+
+    @ApiModelProperty(value = "通道号id")
+    private Integer channelNumberId;
+
+    @ApiModelProperty(value = "设备状态  1:正常 2:故障 3:无 4: 预警 5:未启用")
+    private Integer deviceStatus;
+
+    @ApiModelProperty(value = "阀门状态 0:关阀 1:开阀  2:异常")
+    private Integer valveStatus;
+
+    @DateTimeFormat(pattern = "yyyyMMddHHmmss")
+    @ApiModelProperty(value = "开始时间 格式:yyyyMMddHHmmss")
+    private LocalDateTime startDate;
+
+    @DateTimeFormat(pattern = "yyyyMMddHHmmss")
+    @ApiModelProperty(value = "结束时间 格式:yyyyMMddHHmmss")
+    private LocalDateTime endDate;
+
+    @ApiModelProperty(value = "排序参数,对应列表字段 example:sortColumn=sd.date_create",example = "sd.date_create")
+    private String sortColumn;
+
+    @ApiModelProperty(value = "排序方式,顺序:ASC  倒序:DESC example:sortOrder=DESC",example = "DESC")
+    private String sortOrder;
+}

+ 9 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/install/InstallDeviceDto.java

@@ -48,4 +48,13 @@ public class InstallDeviceDto {
 
     @ApiModelProperty(value="是否验收,0否1是")
     private Integer isAccept;
+
+    @ApiModelProperty(value="产品名称")
+    private String productName;
+
+    @ApiModelProperty(value="产品型号")
+    private String productModel;
+
+    @ApiModelProperty(value="厂商名称")
+    private String manufacturerName;
 }

+ 34 - 0
zoniot-rmcp/zoniot-rmcp-api/src/main/java/com/zcxk/rmcp/api/dto/install/InstallQueryDto.java

@@ -0,0 +1,34 @@
+package com.zcxk.rmcp.api.dto.install;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiParam;
+import lombok.Data;
+import org.springframework.web.bind.annotation.RequestParam;
+
+import javax.validation.constraints.NotNull;
+
+/**
+ * @author linqingwei
+ * @date 2021-07-29 10:17
+ */
+@Data
+@ApiModel
+public class InstallQueryDto {
+
+    @NotNull(message = "id参数值不能为空")
+    @ApiModelProperty(value = "安装计划id",required = true)
+    private Integer id;
+
+    @ApiModelProperty("设备编号")
+    private String deviceNo;
+
+    @ApiModelProperty("地址")
+    private String address;
+
+    @ApiModelProperty("设备状态")
+    private Integer deviceStatus;
+
+    @ApiModelProperty("验收状态")
+    private Integer isAccept;
+}

+ 20 - 17
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/DeviceMapper.java

@@ -2,6 +2,8 @@ package com.zcxk.rmcp.core.dao;
 
 
 import com.zcxk.core.common.pojo.UserCondition;
+import com.zcxk.rmcp.api.dto.device.DeviceQueryDto;
+import com.zcxk.rmcp.api.dto.install.InstallDeviceDto;
 import com.zcxk.rmcp.api.dto.measurementSettlement.MeasurementSettlementDto;
 import com.zcxk.rmcp.api.query.CommonQueryCondition;
 import com.zcxk.rmcp.api.vo.DeviceCommunityVo;
@@ -26,9 +28,9 @@ public interface DeviceMapper {
 
     DeviceVo findById(@Param("id") Long id);
 
-    List<DeviceVo> findList(@Param("condition") CommonQueryCondition condition, @Param("userCondition") UserCondition userCondition);
+    List<DeviceVo> findList(@Param("dto") DeviceQueryDto dto, @Param("userCondition") UserCondition userCondition);
 
-    int delByIds(@Param("ids") List<Integer> ids);
+    int delByIds(@Param("ids") List<Long> ids);
 
     int findByDeviceNoUnique(@Param("id") Long id, @Param("deviceNo") String deviceNo);
 
@@ -36,33 +38,34 @@ public interface DeviceMapper {
 
 
     /**
+     * @param userCondition
+     * @return java.util.List<com.zcxk.rmcp.api.vo.DeviceStatusVo>
      * @author Andy
      * @description 统计设备状态数
      * @date 15:43 2021/7/21
-     * @param userCondition
-     * @return java.util.List<com.zcxk.rmcp.api.vo.DeviceStatusVo>
      **/
     List<DeviceStatusVo> totalDeviceStatus(@Param("userCondition") UserCondition userCondition);
 
     /**
-    * @author Andy
-    * @description 获取小区设备数据
-    * @date 10:19 2021/7/22
-    * @param categoryId:分类ID, userCondition
-    * @return java.util.List<com.zcxk.rmcp.api.vo.DeviceCommunityVo>
-    **/
+     * @param categoryId:分类ID, userCondition
+     * @return java.util.List<com.zcxk.rmcp.api.vo.DeviceCommunityVo>
+     * @author Andy
+     * @description 获取小区设备数据
+     * @date 10:19 2021/7/22
+     **/
     List<DeviceCommunityVo> listCommunityDevice(@Param("categoryId") Integer categoryId, @Param("userCondition") UserCondition userCondition);
 
     /**
-    * @author Andy
-    * @description 获取没有绑定小区的设备信息
-    * @date 10:34 2021/7/22
-    * @param categoryId:分类ID, userCondition
-    * @return java.util.List<com.zcxk.rmcp.api.vo.DeviceNoCellVo>
-    **/
+     * @param categoryId:分类ID, userCondition
+     * @return java.util.List<com.zcxk.rmcp.api.vo.DeviceNoCellVo>
+     * @author Andy
+     * @description 获取没有绑定小区的设备信息
+     * @date 10:34 2021/7/22
+     **/
     List<DeviceNoCellVo> listNoCellDevice(@Param("categoryId") Integer categoryId, @Param("userCondition") UserCondition userCondition);
 
 
-
     List<Device> findMeasurementDevice(MeasurementSettlementDto measurementSettlement);
+
+    List<InstallDeviceDto> getUnInstallDeviceList(@Param("tenantId") String tenantId, @Param("companyOrgId") Integer companyOrgId, @Param("deptOrgId") Integer deptOrgId,@Param("productId") Integer productId, @Param("listId") Integer listId);
 }

+ 11 - 1
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/dao/InstallListMapper.java

@@ -1,7 +1,9 @@
 package com.zcxk.rmcp.core.dao;
 
+import com.zcxk.core.common.pojo.UserCondition;
 import com.zcxk.rmcp.api.dto.install.InstallDeviceDto;
 import com.zcxk.rmcp.api.dto.install.InstallListDto;
+import com.zcxk.rmcp.api.dto.install.InstallQueryDto;
 import com.zcxk.rmcp.api.vo.InstallListVo;
 import com.zcxk.rmcp.core.entity.InstallList;
 import org.apache.ibatis.annotations.Mapper;
@@ -23,9 +25,17 @@ public interface InstallListMapper {
 
     List<InstallListDto> getList(@Param("planId") Integer planId);
 
-    List<InstallDeviceDto> getInstallList(@Param("planId") Integer planId);
+    List<InstallDeviceDto> getInstallList(@Param("dto") InstallQueryDto dto, @Param("userCondition") UserCondition userCondition);
 
     List<InstallListVo> getUnInstallList(@Param("planId") Integer planId);
 
+    List<InstallDeviceDto> getUnInstallDeviceList(@Param("planId") Integer planId);
+
     InstallList findById(@Param("id") Integer id);
+
+    int accept(@Param("ids") List<Integer> ids);
+
+    int delete(@Param("ids") List<Integer> ids);
+
+    int deleteByDeviceId(@Param("ids") List<Long> ids);
 }

+ 45 - 11
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/DeviceMapper.xml

@@ -443,17 +443,17 @@
     left join rmcp_org rod on (rod.ID = rd.dept_org_id)
     left join rmcp_community rc on (rc.id = rd.community_id)
     where rd.status = 1
-    <if test="condition.categoryId != null">and rd.category_id = #{condition.categoryId}</if>
-    <if test="condition.productId != null">and rd.product_id = #{condition.productId}</if>
-    <if test="condition.companyOrgId != null">and rd.company_org_id = #{condition.companyOrgId}</if>
-    <if test="condition.deptOrgId != null">and rd.dept_org_id = #{condition.deptOrgId}</if>
-    <if test="condition.communityId != null">and rd.community_id = #{condition.communityId}</if>
-    <if test="condition.deviceNo != null and condition.deviceNo != ''">and (rd.device_no LIKE concat('%',#{condition.deviceNo},'%') or rd.meter_no LIKE concat('%',#{condition.deviceNo},'%') )</if>
-    <if test="condition.address != null and condition.address != ''">and rd.address LIKE concat('%',#{condition.address},'%') </if>
-    <if test="condition.deviceStatus != null">and rd.device_status = #{condition.deviceStatus}</if>
-    <if test="condition.valveStatus != null">and rd.valve_status = #{condition.deviceStatus}</if>
-    <if test="condition.startDate != null"> and rd.last_receive_time <![CDATA[ >= ]]> #{condition.startDate}</if>
-    <if test="condition.endDate != null"> and rd.last_receive_time <![CDATA[ <= ]]> #{condition.endDate}</if>
+    <if test="dto.categoryId != null">and rd.category_id = #{dto.categoryId}</if>
+    <if test="dto.productId != null">and rd.product_id = #{dto.productId}</if>
+    <if test="dto.companyOrgId != null">and rd.company_org_id = #{dto.companyOrgId}</if>
+    <if test="dto.deptOrgId != null">and rd.dept_org_id = #{dto.deptOrgId}</if>
+    <if test="dto.communityId != null">and rd.community_id = #{dto.communityId}</if>
+    <if test="dto.deviceNo != null and dto.deviceNo != ''">and (rd.device_no LIKE concat('%',#{dto.deviceNo},'%') or rd.meter_no LIKE concat('%',#{dto.deviceNo},'%') )</if>
+    <if test="dto.address != null and dto.address != ''">and rd.address LIKE concat('%',#{dto.address},'%') </if>
+    <if test="dto.deviceStatus != null">and rd.device_status = #{dto.deviceStatus}</if>
+    <if test="dto.valveStatus != null">and rd.valve_status = #{dto.deviceStatus}</if>
+    <if test="dto.startDate != null"> and rd.last_receive_time <![CDATA[ >= ]]> #{dto.startDate}</if>
+    <if test="dto.endDate != null"> and rd.last_receive_time <![CDATA[ <= ]]> #{dto.endDate}</if>
     <include refid="permissionCondition"/>
     order by rd.create_date desc
   </select>
@@ -529,4 +529,38 @@
     </where>
   </select>
 
+  <select id="getUnInstallDeviceList" resultType="com.zcxk.rmcp.api.dto.install.InstallDeviceDto">
+    <if test="listId != null">
+      select
+      rd.id as device_id,
+      rd.device_no,
+      rd.meter_no,
+      rd.file_no,
+      rp.product_name,
+      rp.product_model,
+      rm.name as manufacturer_name
+      from rmcp_install_list ril
+      left join rmcp_device rd on ril.device_id = rd.id
+      left join rmcp_product rp on (rp.id = rd.product_id)
+      left join rmcp_manufacturer rm on (rm.id = rp.manufacturer_id)
+      where ril.id = #{listId}
+      union
+    </if>
+    select
+    rd.id as device_id,
+    rd.device_no,
+    rd.meter_no,
+    rd.file_no,
+    rp.product_name,
+    rp.product_model,
+    rm.name as manufacturer_name
+    from rmcp_device rd
+    left join rmcp_product rp on (rp.id = rd.product_id)
+    left join rmcp_manufacturer rm on (rm.id = rp.manufacturer_id)
+    where rd.status = 1 and rd.is_install = 0
+    <if test="companyOrgId != null">and rd.company_org_id = #{companyOrgId}</if>
+    <if test="deptOrgId != null">and rd.dept_org_id = #{deptOrgId}</if>
+    <if test="productId != null">and rd.product_id = #{productId}</if>
+    order by rd.create_date desc
+  </select>
 </mapper>

+ 45 - 1
zoniot-rmcp/zoniot-rmcp-core/src/main/java/com/zcxk/rmcp/core/mapper/InstallListMapper.xml

@@ -278,18 +278,62 @@
     rd.is_accept
     from rmcp_install_list ril
     left join rmcp_device rd on ril.device_id = rd.id
-    where ril.status = 1 and rd.status = 1 and ril.install_plan_id = #{planId}
+    where ril.status = 1 and rd.status = 1 and ril.install_plan_id = #{dto.id}
+    <if test="userCondition.tenantId != null">and ril.tenant_id = #{userCondition.tenantId}</if>
+    <if test="dto.deviceNo != null and dto.deviceNo != ''">and (rd.meter_no LIKE concat('%',#{dto.deviceNo},'%') or rd.file_no LIKE concat('%',#{dto.deviceNo},'%'))</if>
+    <if test="dto.address != null and dto.address != ''">and (rd.address LIKE concat('%',#{dto.address},'%') )</if>
+    <if test="dto.deviceStatus != null">and rd.device_status = #{dto.deviceStatus}</if>
+    <if test="dto.isAccept != null">and rd.is_accept = #{dto.isAccept}</if>
+    order by ril.create_date desc
   </select>
 
   <select id="getUnInstallList" resultType="com.zcxk.rmcp.api.vo.InstallListVo">
     select id,door_no,meter_code,user_name,user_phone,id_card from rmcp_install_list where status = 1 and install_plan_id = #{planId} and is_installed = 0
   </select>
 
+  <select id="getUnInstallDeviceList" resultType="com.zcxk.rmcp.api.dto.install.InstallDeviceDto">
+
+  </select>
+
   <select id="findById" resultMap="BaseResultMap">
     select <include refid="Base_Column_List">
   </include>
     from rmcp_install_list where status = 1 and id = #{id}
   </select>
 
+  <update id="accept">
+    UPDATE rmcp_install_list ril LEFT JOIN rmcp_device rd on (ril.device_id = rd.id)
+    set ril.is_accepted = 1,ril.accept_time=NOW(),rd.is_accept = 1,rd.accept_date=NOW()
+    WHERE ril.`status` = 1 and ril.is_accepted = 0
+    and ril.id in <foreach collection="ids" item="item" open="(" separator="," close=")">#{item}</foreach>
+  </update>
 
+  <update id="delete">
+    UPDATE rmcp_install_list ril LEFT JOIN rmcp_device rd on (ril.device_id = rd.id)
+    set
+    ril.is_installed=0,
+    ril.is_accepted=0,
+    ril.accept_time=null,
+    ril.device_id=null,
+    ril.update_date=now(),
+    rd.is_install=0,
+    rd.install_date=null,
+    rd.is_accept=0,
+    rd.accept_date=null,
+    rd.update_date=now()
+    WHERE ril.`status` = 1
+    and ril.id in <foreach collection="ids" item="item" open="(" separator="," close=")">#{item}</foreach>
+  </update>
+
+  <update id="deleteByDeviceId">
+    UPDATE rmcp_install_list
+    set
+    is_installed=0,
+    is_accepted=0,
+    accept_time=null,
+    device_id=null,
+    update_date=now()
+    WHERE `status` = 1
+    and device_id in <foreach collection="ids" item="item" open="(" separator="," close=")">#{item}</foreach>
+  </update>
 </mapper>

+ 2 - 2
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/config/ResourceServerConfig.java

@@ -16,11 +16,11 @@ public class ResourceServerConfig extends ResourceServerConfigurerAdapter {
             .requestMatchers().antMatchers("/**")
             .and()
             .authorizeRequests()
-            .antMatchers("/swagger-ui.html","/webjars/**", "/webjars/**", "/swagger-resources/**",
+            .antMatchers("/swagger-ui.html","/webjars/**", "/swagger-resources/**",
                    "/test/test",
                    "/v2/**")
             .permitAll() //配置不需要身份认证的请求路径
-            //.anyRequest().authenticated() //其他所有访问路径都需要身份认证
+            .anyRequest().authenticated() //其他所有访问路径都需要身份认证
             .and()
             .httpBasic();
     }

+ 28 - 132
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/DeviceController.java

@@ -5,21 +5,23 @@ import com.zcxk.core.common.pojo.AjaxMessage;
 import com.zcxk.core.mysql.pageing.Pagination;
 import com.zcxk.core.oauth2.pojo.LoginUser;
 import com.zcxk.core.oauth2.util.UserUtil;
+import com.zcxk.rmcp.api.dto.BasePageDto;
 import com.zcxk.rmcp.api.dto.device.DeviceInputDto;
+import com.zcxk.rmcp.api.dto.device.DeviceQueryDto;
 import com.zcxk.rmcp.api.query.CommonQueryCondition;
 import com.zcxk.rmcp.api.vo.DeviceMapDataVo;
 import com.zcxk.rmcp.api.vo.DeviceStatisticsVo;
 import com.zcxk.rmcp.api.vo.DeviceVo;
 import com.zcxk.rmcp.web.service.DeviceService;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
-import java.time.LocalDateTime;
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -30,67 +32,20 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("/device")
+@Api(tags = "设备管理")
 public class DeviceController {
 
     @Autowired
     DeviceService deviceService;
 
-    @PostMapping("/test")
-    public AjaxMessage<Void> test(){
-        LoginUser user = UserUtil.getCurrentUser();
-        System.out.println(JSON.toJSONString(user));
-        DeviceVo device = deviceService.findById(1L);
-        System.out.println(device);
-        return AjaxMessage.success();
-    }
-
 
     @ResponseBody
     @GetMapping("/getPage")
     @ApiOperation(value = "获取设备分页")
     public AjaxMessage<Pagination<DeviceVo>> devicePageList(
-            @ApiParam(value = "分类id", required = false) @RequestParam(required = false) Integer categoryId,
-            @ApiParam(value = "产品id", required = false) @RequestParam(required = false) Integer productId,
-            @ApiParam(value = "公司id", required = false) @RequestParam(required = false) Integer companyOrgId,
-            @ApiParam(value = "部门id", required = false) @RequestParam(required = false) Integer deptOrgId,
-            @ApiParam(value = "小区id", required = false) @RequestParam(required = false) Integer communityId,
-            @ApiParam(value = "设备编号", required = false) @RequestParam(required = false) String deviceNo,
-            @ApiParam(value = "安装地址", required = false) @RequestParam(required = false) String address,
-            @ApiParam(value = "集中器id", required = false) @RequestParam(required = false) Integer concentratorId,
-            @ApiParam(value = "集中器编号", required = false) @RequestParam(required = false) String concentratorNo,
-            @ApiParam(value = "采集器id", required = false) @RequestParam(required = false) Integer collectorId,
-            @ApiParam(value = "采集器编号", required = false) @RequestParam(required = false) String collectorNo,
-            @ApiParam(value = "通道号id", required = false) @RequestParam(required = false) Integer channelNumberId,
-            @ApiParam(value = "设备状态  1:正常 2:故障 3:无 4: 预警 5:未启用", required = false) @RequestParam(required = false) Integer deviceStatus,
-            @ApiParam(value = "阀门状态 0:关阀 1:开阀  2:无阀", required = false) @RequestParam(required = false) Integer valveStatus,
-            @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,
-            @ApiParam(value = "排序参数,对应列表字段", required = false) @RequestParam(required = false,defaultValue = "sd.date_create") String sortColumn,
-            @ApiParam(value = "排序方式,顺序:ASC  倒序:DESC", required = false) @RequestParam(required = false, defaultValue = "DESC") String sortOrder,
-            @ApiParam(value = "页数,非必传,默认第一页", required = false, defaultValue = "1") @RequestParam(required = false, defaultValue = "1") int pageNum,
-            @ApiParam(value = "条数,非必传,默认15条", required = false, defaultValue = "15") @RequestParam(required = false, defaultValue = "15") int pageSize
+            @Valid DeviceQueryDto dto, BasePageDto page
     ) {
-        CommonQueryCondition condition = new CommonQueryCondition();
-        condition.setCategoryId(categoryId);
-        condition.setProductId(productId);
-        condition.setCompanyOrgId(companyOrgId);
-        condition.setDeptOrgId(deptOrgId);
-        condition.setCommunityId(communityId);
-        condition.setDeviceNo(deviceNo);
-        condition.setAddress(address);
-        condition.setConcentratorId(concentratorId);
-        condition.setConcentratorNo(concentratorNo);
-        condition.setCollectorId(collectorId);
-        condition.setCollectorNo(collectorNo);
-        condition.setChannelNumberId(channelNumberId);
-        condition.setDeviceStatus(deviceStatus);
-        condition.setValveStatus(valveStatus);
-        condition.setStartDate(startDate);
-        condition.setEndDate(endDate);
-        condition.setSortColumn(sortColumn);
-        condition.setSortOrder(sortOrder);
-
-        Pagination<DeviceVo> pageInfo = deviceService.getList(condition, pageNum, pageSize);
+        Pagination<DeviceVo> pageInfo = deviceService.getPage(dto, page);
         return AjaxMessage.success(pageInfo);
     }
 
@@ -99,47 +54,10 @@ public class DeviceController {
     @GetMapping("/getDeviceListExcel")
     @ApiOperation(value = "导出设备列表excel")
     public void getDeviceListExcel(
-            @ApiParam(value = "分类id", required = false) @RequestParam(required = false) Integer categoryId,
-            @ApiParam(value = "产品id", required = false) @RequestParam(required = false) Integer productId,
-            @ApiParam(value = "公司id", required = false) @RequestParam(required = false) Integer companyOrgId,
-            @ApiParam(value = "部门id", required = false) @RequestParam(required = false) Integer deptOrgId,
-            @ApiParam(value = "小区id", required = false) @RequestParam(required = false) Integer communityId,
-            @ApiParam(value = "设备编号", required = false) @RequestParam(required = false) String deviceNo,
-            @ApiParam(value = "安装地址", required = false) @RequestParam(required = false) String address,
-            @ApiParam(value = "集中器id", required = false) @RequestParam(required = false) Integer concentratorId,
-            @ApiParam(value = "集中器编号", required = false) @RequestParam(required = false) String concentratorNo,
-            @ApiParam(value = "采集器id", required = false) @RequestParam(required = false) Integer collectorId,
-            @ApiParam(value = "采集器编号", required = false) @RequestParam(required = false) String collectorNo,
-            @ApiParam(value = "通道号id", required = false) @RequestParam(required = false) Integer channelNumberId,
-            @ApiParam(value = "设备状态  1:正常 2:故障 3:无 4: 预警 5:未启用", required = false) @RequestParam(required = false) Integer deviceStatus,
-            @ApiParam(value = "阀门状态 0:关阀 1:开阀  2:无阀", required = false) @RequestParam(required = false) Integer valveStatus,
-            @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,
-            @ApiParam(value = "排序参数,对应列表字段", required = false) @RequestParam(required = false,defaultValue = "sd.date_create") String sortColumn,
-            @ApiParam(value = "排序方式,顺序:ASC  倒序:DESC", required = false) @RequestParam(required = false, defaultValue = "DESC") String sortOrder,
+            @Valid DeviceQueryDto dto,
             HttpServletResponse httpServletResponse
     ) {
-        CommonQueryCondition condition = new CommonQueryCondition();
-        condition.setCategoryId(categoryId);
-        condition.setProductId(productId);
-        condition.setCompanyOrgId(companyOrgId);
-        condition.setDeptOrgId(deptOrgId);
-        condition.setCommunityId(communityId);
-        condition.setDeviceNo(deviceNo);
-        condition.setAddress(address);
-        condition.setConcentratorId(concentratorId);
-        condition.setConcentratorNo(concentratorNo);
-        condition.setCollectorId(collectorId);
-        condition.setCollectorNo(collectorNo);
-        condition.setChannelNumberId(channelNumberId);
-        condition.setDeviceStatus(deviceStatus);
-        condition.setValveStatus(valveStatus);
-        condition.setStartDate(startDate);
-        condition.setEndDate(endDate);
-        condition.setSortColumn(sortColumn);
-        condition.setSortOrder(sortOrder);
-
-        deviceService.getDeviceListExcel(condition, httpServletResponse);
+        deviceService.getDeviceListExcel(dto, httpServletResponse);
         //return  AjaxMessage.success("导出执行成功,请稍后在消息查看导出文件并下载。");
     }
 
@@ -176,55 +94,22 @@ public class DeviceController {
     }
 
     @ResponseBody
-    @PostMapping("batchDel")
+    @PostMapping("batchDelete")
     @ApiOperation(value = "批量删除")
-    public AjaxMessage<Void> batchDel(
-            @ApiParam(value = "设备", required = true) @RequestBody(required = true) List<Integer> ids
+    public AjaxMessage<Void> batchDelete(
+            @ApiParam(value = "设备id", required = true) @RequestBody(required = true) List<Long> ids
     ) {
-        deviceService.batchDel(ids);
+        deviceService.batchDelele(ids);
         return AjaxMessage.success();
     }
 
     @ResponseBody
-    @PostMapping("allDel")
+    @PostMapping("allDelete")
     @ApiOperation(value = "全部删除")
-    public AjaxMessage<Void> allDel(
-            @ApiParam(value = "分类id", required = false) @RequestParam(required = false) Integer categoryId,
-            @ApiParam(value = "产品id", required = false) @RequestParam(required = false) Integer productId,
-            @ApiParam(value = "公司id", required = false) @RequestParam(required = false) Integer companyOrgId,
-            @ApiParam(value = "部门id", required = false) @RequestParam(required = false) Integer deptOrgId,
-            @ApiParam(value = "小区id", required = false) @RequestParam(required = false) Integer communityId,
-            @ApiParam(value = "设备编号", required = false) @RequestParam(required = false) String deviceNo,
-            @ApiParam(value = "安装地址", required = false) @RequestParam(required = false) String address,
-            @ApiParam(value = "集中器id", required = false) @RequestParam(required = false) Integer concentratorId,
-            @ApiParam(value = "集中器编号", required = false) @RequestParam(required = false) String concentratorNo,
-            @ApiParam(value = "采集器id", required = false) @RequestParam(required = false) Integer collectorId,
-            @ApiParam(value = "采集器编号", required = false) @RequestParam(required = false) String collectorNo,
-            @ApiParam(value = "通道号id", required = false) @RequestParam(required = false) Integer channelNumberId,
-            @ApiParam(value = "设备状态  1:正常 2:故障 3:无 4: 预警 5:未启用", required = false) @RequestParam(required = false) Integer deviceStatus,
-            @ApiParam(value = "阀门状态 0:关阀 1:开阀  2:无阀", required = false) @RequestParam(required = false) Integer valveStatus,
-            @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
+    public AjaxMessage<Void> allDelete(
+            @Valid DeviceQueryDto dto
     ) {
-        CommonQueryCondition condition = new CommonQueryCondition();
-        condition.setCategoryId(categoryId);
-        condition.setProductId(productId);
-        condition.setCompanyOrgId(companyOrgId);
-        condition.setDeptOrgId(deptOrgId);
-        condition.setCommunityId(communityId);
-        condition.setDeviceNo(deviceNo);
-        condition.setAddress(address);
-        condition.setConcentratorId(concentratorId);
-        condition.setConcentratorNo(concentratorNo);
-        condition.setCollectorId(collectorId);
-        condition.setCollectorNo(collectorNo);
-        condition.setChannelNumberId(channelNumberId);
-        condition.setDeviceStatus(deviceStatus);
-        condition.setValveStatus(valveStatus);
-        condition.setStartDate(startDate);
-        condition.setEndDate(endDate);
-
-        deviceService.allDel(condition);
+        deviceService.allDelele(dto);
         return AjaxMessage.success();
     }
 
@@ -251,4 +136,15 @@ public class DeviceController {
         return AjaxMessage.success(deviceService.listDeviceAndCommunityInfo(categoryId));
     }
 
+    @ResponseBody
+    @PostMapping("batchValve")
+    @ApiOperation(value = "批量开关阀")
+    public AjaxMessage<Void> batchValve(
+            @ApiParam(value = "设备id", required = true) @RequestBody(required = true) List<Long> ids,
+            @ApiParam(value = "0:关阀 1:开阀", required = true) @RequestBody(required = true) Integer valveStatus
+    ) {
+        deviceService.batchValve(ids,valveStatus);
+        return AjaxMessage.success();
+    }
+
 }

+ 54 - 9
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/controller/InstallController.java

@@ -2,10 +2,10 @@ package com.zcxk.rmcp.web.controller;
 
 import com.zcxk.core.common.pojo.AjaxMessage;
 import com.zcxk.core.mysql.pageing.Pagination;
+import com.zcxk.rmcp.api.dto.BasePageDto;
+import com.zcxk.rmcp.api.dto.install.InstallQueryDto;
 import com.zcxk.rmcp.api.dto.install.InstallDeviceDto;
 import com.zcxk.rmcp.api.dto.install.InstallInputDto;
-import com.zcxk.rmcp.api.dto.install.InstallListDto;
-import com.zcxk.rmcp.core.entity.InstallList;
 import com.zcxk.rmcp.web.service.install.InstallListService;
 import com.zcxk.rmcp.web.service.install.InstallPlanService;
 import io.swagger.annotations.Api;
@@ -17,6 +17,7 @@ import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.util.List;
 
 /**
@@ -34,16 +35,24 @@ public class InstallController {
     private InstallPlanService installPlanService;
 
     @GetMapping("getInstallPage")
-    @ApiOperation(value = "查询安装计划清单列表")
+    @ApiOperation(value = "查询安装计划清单分页")
     public AjaxMessage<Pagination<InstallDeviceDto>> getInstallPage(
-            @ApiParam(value = "安装计划id", required = true) @RequestParam(required = true) Integer id,
-            @ApiParam(value = "页数,非必传,默认第一页", required = false, defaultValue = "1") @RequestParam(required = false, defaultValue = "1") int pageNum,
-            @ApiParam(value = "条数,非必传,默认15条", required = false, defaultValue = "15") @RequestParam(required = false, defaultValue = "15") int pageSize
+            @Valid InstallQueryDto dto, BasePageDto page
     ) {
-        Pagination<InstallDeviceDto> pagination = installListService.getInstallList(id,pageNum,pageSize);
+        Pagination<InstallDeviceDto> pagination = installListService.getInstallPage(dto,page);
         return AjaxMessage.success(pagination);
     }
 
+    @GetMapping("getUnInstallList")
+    @ApiOperation(value = "查询未安装列表")
+    public AjaxMessage<List<InstallDeviceDto>> getUnInstallList(
+            @ApiParam(value = "安装计划id", required = true) @RequestParam(required = true) Integer planId,
+            @ApiParam(value = "id 编辑时必传", required = false) @RequestParam(required = false) Integer id
+    ) {
+        List<InstallDeviceDto> list = installListService.getUnInstallList(planId,id);
+        return AjaxMessage.success(list);
+    }
+
     @PostMapping("save")
     @ApiOperation(value = "新装水表保存")
     public AjaxMessage<Void> installSave(@ApiParam(value = "装表", required = true) @RequestBody(required = true) InstallInputDto dto){
@@ -61,11 +70,47 @@ public class InstallController {
     @GetMapping("downInstallMeterTemplate")
     @ApiOperation(value = "下载装表模板", notes = "下载装表模板")
     public void downInstallMeterTemplate(
-            @ApiParam(value = "安装计划id", required = false) @RequestParam(required = false) Integer id,
+            @ApiParam(value = "安装计划id", required = true) @RequestParam(required = true) Integer planId,
             @ApiParam(value = "access_token", required = true) @RequestParam(required = true) String access_token,
             HttpServletRequest request, HttpServletResponse response
     ) {
-        installPlanService.downInstallMeterTemplate(id, response);
+        installPlanService.downInstallMeterTemplate(planId, response);
+    }
+
+    @PostMapping("batchAccept")
+    @ApiOperation(value = "批量验收")
+    public AjaxMessage<Void> batchAccept(
+            @ApiParam(value = "安装id", required = true) @RequestParam(required = true) List<Integer> ids
+            ){
+        installListService.batchAccept(ids);
+        return AjaxMessage.success();
+    }
+
+    @PostMapping("allAccept")
+    @ApiOperation(value = "全部验收")
+    public AjaxMessage<Void> allAccept(
+            @Valid InstallQueryDto dto
+    ){
+        installListService.allAccept(dto);
+        return AjaxMessage.success();
+    }
+
+    @PostMapping("batchDelete")
+    @ApiOperation(value = "批量删除")
+    public AjaxMessage<Void> batchDelete(
+            @ApiParam(value = "安装id", required = true) @RequestParam(required = true) List<Integer> ids
+    ){
+        installListService.batchDelete(ids);
+        return AjaxMessage.success();
+    }
+
+    @PostMapping("allDelete")
+    @ApiOperation(value = "全部删除")
+    public AjaxMessage<Void> allDelete(
+            @Valid InstallQueryDto dto
+    ){
+        installListService.allDelete(dto);
+        return AjaxMessage.success();
     }
 
 

+ 8 - 4
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/DeviceService.java

@@ -2,7 +2,9 @@ package com.zcxk.rmcp.web.service;
 
 import com.zcxk.core.common.pojo.ResultMessage;
 import com.zcxk.core.mysql.pageing.Pagination;
+import com.zcxk.rmcp.api.dto.BasePageDto;
 import com.zcxk.rmcp.api.dto.device.DeviceInputDto;
+import com.zcxk.rmcp.api.dto.device.DeviceQueryDto;
 import com.zcxk.rmcp.api.query.CommonQueryCondition;
 import com.zcxk.rmcp.api.vo.DeviceMapDataVo;
 import com.zcxk.rmcp.api.vo.DeviceStatisticsVo;
@@ -28,7 +30,7 @@ public interface DeviceService{
 
     DeviceVo findById(Long id);
 
-    Pagination<DeviceVo> getList(CommonQueryCondition condition, int pageNum, int pageSize);
+    Pagination<DeviceVo> getPage(DeviceQueryDto dto, BasePageDto page);
 
     void add(DeviceInputDto device);
 
@@ -36,9 +38,9 @@ public interface DeviceService{
 
     DeviceVo deviceDetail(Long deviceId);
 
-    void batchDel(List<Integer> ids);
+    void batchDelele(List<Long> ids);
 
-    void allDel(CommonQueryCondition condition);
+    void allDelele(DeviceQueryDto dto);
 
     void downTemplate(Integer categoryId, HttpServletResponse response);
 
@@ -68,5 +70,7 @@ public interface DeviceService{
      */
     ResultMessage saveExcelData(DeviceImportData data, ExcelData excelData);
 
-    void getDeviceListExcel(CommonQueryCondition condition, HttpServletResponse httpServletResponse);
+    void getDeviceListExcel(DeviceQueryDto dto, HttpServletResponse httpServletResponse);
+
+    void batchValve(List<Long> ids, Integer valveStatus);
 }

+ 32 - 11
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/impl/DeviceServiceImpl.java

@@ -14,13 +14,17 @@ import com.zcxk.core.oauth2.util.UserUtil;
 import com.zcxk.core.utils.BigDecimalUtils;
 import com.zcxk.core.utils.ZoniotIntegerUtils;
 import com.zcxk.core.utils.export.EasyExcelUtil;
+import com.zcxk.rmcp.api.dto.BasePageDto;
 import com.zcxk.rmcp.api.dto.device.DeviceInputDto;
+import com.zcxk.rmcp.api.dto.device.DeviceQueryDto;
+import com.zcxk.rmcp.api.dto.install.InstallDeviceDto;
 import com.zcxk.rmcp.api.enums.DeviceStatusEnum;
 import com.zcxk.rmcp.api.enums.RmcpErrorEnum;
 import com.zcxk.rmcp.api.enums.ValveStatusEnum;
 import com.zcxk.rmcp.api.query.CommonQueryCondition;
 import com.zcxk.rmcp.api.vo.*;
 import com.zcxk.rmcp.core.dao.DeviceMapper;
+import com.zcxk.rmcp.core.dao.InstallListMapper;
 import com.zcxk.rmcp.core.entity.Community;
 import com.zcxk.rmcp.core.entity.Device;
 import com.zcxk.rmcp.core.entity.Org;
@@ -38,6 +42,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 import javax.annotation.Resource;
@@ -70,6 +75,8 @@ public class DeviceServiceImpl implements DeviceService{
     private ProductService productService;
     @Autowired
     private OrgService orgService;
+    @Resource
+    private InstallListMapper installListMapper;
 
     @Override
     public int insertSelective(Device record) {
@@ -93,17 +100,17 @@ public class DeviceServiceImpl implements DeviceService{
     }
 
     @Override
-    public Pagination<DeviceVo> getList(CommonQueryCondition condition, int pageNum, int pageSize) {
+    public Pagination<DeviceVo> getPage(DeviceQueryDto dto, BasePageDto page) {
 
-        PageHelper.startPage(pageNum,pageSize);
-        List<DeviceVo> list = deviceMapper.findList(condition,UserUtil.getCurrentUser().getUserCondition());
+        PageHelper.startPage(page.getPageNum(),page.getPageSize());
+        List<DeviceVo> list = deviceMapper.findList(dto,UserUtil.getCurrentUser().getUserCondition());
         return new Pagination<>(list);
     }
 
     @Override
-    public void getDeviceListExcel(CommonQueryCondition condition, HttpServletResponse response) {
+    public void getDeviceListExcel(DeviceQueryDto dto, HttpServletResponse response) {
         try {
-            List<DeviceVo> list = deviceMapper.findList(condition,UserUtil.getCurrentUser().getUserCondition());
+            List<DeviceVo> list = deviceMapper.findList(dto,UserUtil.getCurrentUser().getUserCondition());
 
             EasyExcelUtil.excelWrite(response,DownloadDeviceVo.class,"设备列表",convert(list));
         }catch (Exception e){
@@ -181,19 +188,27 @@ public class DeviceServiceImpl implements DeviceService{
     }
 
     @Override
-    public void batchDel(List<Integer> ids) {
+    @Transactional
+    public void batchDelele(List<Long> ids) {
         log.info("begin DeviceServiceImpl batchDel ids = {}", JSON.toJSON(ids));
         deviceMapper.delByIds(ids);
-        // TODO: 2021/7/26 清除计划清单
+        // 删除计划清单
+        installListMapper.deleteByDeviceId(ids);
         // TODO: 2021/7/26 删除告警记录
         log.info("end DeviceServiceImpl batchDel ");
     }
 
     @Override
-    public void allDel(CommonQueryCondition condition) {
-        log.info("begin DeviceServiceImpl allDel condition = {}", JSON.toJSON(condition));
-
-        deviceMapper.delByIds(null);
+    public void allDelele(DeviceQueryDto dto) {
+        log.info("begin DeviceServiceImpl allDel dto = {}", JSON.toJSON(dto));
+        List<DeviceVo> list = deviceMapper.findList(dto,UserUtil.getCurrentUser().getUserCondition());
+        List<Long> ids = new ArrayList<>();
+        if (list != null && list.size() > 0) {
+            for (DeviceVo vo : list) {
+                ids.add(vo.getId());
+            }
+            this.batchDelele(ids);
+        }
         log.info("end DeviceServiceImpl allDel ");
     }
 
@@ -367,4 +382,10 @@ public class DeviceServiceImpl implements DeviceService{
 
         return resultMessage;
     }
+
+    @Override
+    public void batchValve(List<Long> ids, Integer valveStatus) {
+        log.info("begin batchValve ids:{},valveStatus:{}",ids,valveStatus);
+        log.info("end batchValve");
+    }
 }

+ 15 - 2
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/install/InstallListService.java

@@ -2,13 +2,16 @@ package com.zcxk.rmcp.web.service.install;
 
 import com.zcxk.core.common.pojo.ResultMessage;
 import com.zcxk.core.mysql.pageing.Pagination;
+import com.zcxk.rmcp.api.dto.BasePageDto;
 import com.zcxk.rmcp.api.dto.install.InstallDeviceDto;
 import com.zcxk.rmcp.api.dto.install.InstallInputDto;
-import com.zcxk.rmcp.api.dto.install.InstallListDto;
 import com.zcxk.rmcp.core.entity.InstallList;
+import com.zcxk.rmcp.api.dto.install.InstallQueryDto;
 import com.zcxk.rmcp.web.excel.model.ExcelData;
 import com.zcxk.rmcp.web.excel.model.InstallMeterData;
 
+import java.util.List;
+
 /**
  * 
  * @author linqingwei
@@ -25,7 +28,17 @@ public interface InstallListService{
 
     void installEdit(InstallInputDto dto);
 
-    Pagination<InstallDeviceDto> getInstallList(Integer id, int pageNum, int pageSize);
+    Pagination<InstallDeviceDto> getInstallPage(InstallQueryDto dto, BasePageDto page);
 
     ResultMessage saveExcelData(InstallMeterData data, ExcelData excelData);
+
+    void batchAccept(List<Integer> ids);
+
+    void allAccept(InstallQueryDto dto);
+
+    List<InstallDeviceDto> getUnInstallList(Integer planId,Integer id);
+
+    void batchDelete(List<Integer> ids);
+
+    void allDelete(InstallQueryDto dto);
 }

+ 60 - 5
zoniot-rmcp/zoniot-rmcp-web/src/main/java/com/zcxk/rmcp/web/service/install/impl/InstallListServiceImpl.java

@@ -9,9 +9,9 @@ import com.zcxk.core.common.util.SnowflakeIdWorker;
 import com.zcxk.core.mysql.pageing.Pagination;
 import com.zcxk.core.oauth2.pojo.LoginUser;
 import com.zcxk.core.oauth2.util.UserUtil;
+import com.zcxk.rmcp.api.dto.BasePageDto;
 import com.zcxk.rmcp.api.dto.install.InstallDeviceDto;
 import com.zcxk.rmcp.api.dto.install.InstallInputDto;
-import com.zcxk.rmcp.api.dto.install.InstallListDto;
 import com.zcxk.rmcp.api.enums.DeviceStatusEnum;
 import com.zcxk.rmcp.api.enums.RmcpErrorEnum;
 import com.zcxk.rmcp.api.enums.ValveStatusEnum;
@@ -21,6 +21,7 @@ import com.zcxk.rmcp.core.dao.ProductMapper;
 import com.zcxk.rmcp.core.entity.Device;
 import com.zcxk.rmcp.core.entity.InstallPlan;
 import com.zcxk.rmcp.core.entity.Product;
+import com.zcxk.rmcp.api.dto.install.InstallQueryDto;
 import com.zcxk.rmcp.web.excel.model.ExcelData;
 import com.zcxk.rmcp.web.excel.model.InstallMeterData;
 import com.zcxk.rmcp.web.service.DeviceService;
@@ -34,6 +35,7 @@ import com.zcxk.rmcp.core.dao.InstallListMapper;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -212,13 +214,21 @@ public class InstallListServiceImpl implements InstallListService {
     }
 
     @Override
-    public Pagination<InstallDeviceDto> getInstallList(Integer id, int pageNum, int pageSize) {
-
-        PageHelper.startPage(pageNum,pageSize);
-        List<InstallDeviceDto> list = installListMapper.getInstallList(id);
+    public Pagination<InstallDeviceDto> getInstallPage(InstallQueryDto dto, BasePageDto page) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        PageHelper.startPage(page.getPageNum(),page.getPageSize());
+        List<InstallDeviceDto> list = installListMapper.getInstallList(dto, loginUser.getUserCondition());
         return new Pagination<>(list);
     }
 
+    @Override
+    public List<InstallDeviceDto> getUnInstallList(Integer planId, Integer id) {
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        InstallPlan plan = installPlanMapper.findById(planId);
+        List<InstallDeviceDto> list = deviceMapper.getUnInstallDeviceList(loginUser.getTenantId(),plan.getCompanyOrgId(),plan.getDeptOrgId(),plan.getProductId(),id);
+        return list;
+    }
+
     @Override
     @Transactional
     public ResultMessage saveExcelData(InstallMeterData data, ExcelData excelData) {
@@ -268,4 +278,49 @@ public class InstallListServiceImpl implements InstallListService {
         this.updateByPrimaryKeySelective(installList);
         return null;
     }
+
+    @Override
+    @Transactional
+    public void batchAccept(List<Integer> ids) {
+        log.info("begin InstallListServiceImpl batchAccept ids = {}",JSON.toJSONString(ids));
+        installListMapper.accept(ids);
+        log.info("end InstallListServiceImpl batchAccept ");
+    }
+
+    @Override
+    public void allAccept(InstallQueryDto dto) {
+        log.info("begin InstallListServiceImpl allAccept dto = {}",JSON.toJSONString(dto));
+        List<InstallDeviceDto> list = installListMapper.getInstallList(dto,UserUtil.getCurrentUser().getUserCondition());
+        List<Integer> ids = new ArrayList<>();
+        if (list != null && list.size() > 0) {
+            for (InstallDeviceDto installDeviceDto : list) {
+                ids.add(installDeviceDto.getId());
+            }
+            this.batchAccept(ids);
+        }
+        log.info("end InstallListServiceImpl allAccept ");
+    }
+
+    @Override
+    @Transactional
+    public void batchDelete(List<Integer> ids) {
+        log.info("begin InstallListServiceImpl batchDelete ids = {}",JSON.toJSONString(ids));
+        installListMapper.delete(ids);
+        log.info("end InstallListServiceImpl batchDelete ");
+    }
+
+    @Override
+    public void allDelete(InstallQueryDto dto) {
+        log.info("begin InstallListServiceImpl allDelete dto = {}",JSON.toJSONString(dto));
+        LoginUser loginUser = UserUtil.getCurrentUser();
+        List<InstallDeviceDto> list = installListMapper.getInstallList(dto, loginUser.getUserCondition());
+        List<Integer> ids = new ArrayList<>();
+        if (list != null && list.size() > 0) {
+            for (InstallDeviceDto installDeviceDto : list) {
+                ids.add(installDeviceDto.getId());
+            }
+            this.batchDelete(ids);
+        }
+        log.info("end InstallListServiceImpl allDelete ");
+    }
 }