lizijie
2022-01-19 3ea7e207b7c33edcea6f493baef53928133eecaf
服务范围添加边界绑定设备接口
1 files added
5 files modified
136 ■■■■■ changed files
screen-manage/src/main/java/com/moral/api/controller/ServicesScopeController.java 25 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java 12 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/pojo/form/ServiceScope/AddBoundaryBindDevice.java 18 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/ServicesScopeService.java 11 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java 62 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml 8 ●●●●● patch | view | raw | blame | history
screen-manage/src/main/java/com/moral/api/controller/ServicesScopeController.java
@@ -5,6 +5,7 @@
import com.moral.api.entity.Organization;
import com.moral.api.entity.ServicesScope;
import com.moral.api.mapper.OrganizationMapper;
import com.moral.api.pojo.form.ServiceScope.AddBoundaryBindDevice;
import com.moral.api.service.OrganizationService;
import com.moral.api.service.ServicesScopeService;
import com.moral.constant.Constants;
@@ -109,4 +110,28 @@
        return ResultMessage.ok();
    }
    @RequestMapping(value = "addBoundaryBindDevice",method = RequestMethod.POST)
    @ResponseBody
    public ResultMessage addBoundaryBindDevice(@RequestBody AddBoundaryBindDevice addBoundaryBindDevice){
        if (ObjectUtils.isEmpty(addBoundaryBindDevice)){
            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(), ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
        }
        QueryWrapper<ServicesScope> servicesScopeQueryWrapper = new QueryWrapper<>();
        servicesScopeQueryWrapper.eq("id",addBoundaryBindDevice.getServicesScope().getId()).eq("is_delete",Constants.NOT_DELETE);
        ServicesScope servicesScopeRes = servicesScopeService.getOne(servicesScopeQueryWrapper);
        if (ObjectUtils.isEmpty(servicesScopeRes)){
            return ResultMessage.fail(ResponseCodeEnum.SERVICES_SCOPE_IS_NOT_EXIST.getCode(), ResponseCodeEnum.SERVICES_SCOPE_IS_NOT_EXIST.getMsg());
        }
        /*if (!ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getOrganizationId())){
            QueryWrapper<Organization> organizationQueryWrapper = new QueryWrapper<>();
            organizationQueryWrapper.eq("id",addBoundaryBindDevice.getServicesScope().getOrganizationId()).eq("is_delete",Constants.NOT_DELETE);
            Organization organization = organizationService.getOne(organizationQueryWrapper);
            if (ObjectUtils.isEmpty(organization)){
                return ResultMessage.fail(ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getCode(), ResponseCodeEnum.ORGANIZATION_NOT_EXIST.getMsg());
            }
        }*/
        servicesScopeService.addBoundaryBindDevice(addBoundaryBindDevice);
        return ResultMessage.ok();
    }
}
screen-manage/src/main/java/com/moral/api/mapper/ServicesScopeDeviceMapper.java
@@ -2,6 +2,9 @@
import com.moral.api.entity.ServicesScopeDevice;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
 * <p>
@@ -13,4 +16,13 @@
 */
public interface ServicesScopeDeviceMapper extends BaseMapper<ServicesScopeDevice> {
    /**
      *@Description: 批量插入
      *@Param: [servicesScopeId, list]
      *@return: void
      *@Author: lizijie
      *@Date: 2022/1/18 10:53
     **/
    void insertBatch(@Param("servicesScopeId")Integer servicesScopeId, @Param("list")List list);
}
screen-manage/src/main/java/com/moral/api/pojo/form/ServiceScope/AddBoundaryBindDevice.java
New file
@@ -0,0 +1,18 @@
package com.moral.api.pojo.form.ServiceScope;
import com.moral.api.entity.ServicesScope;
import lombok.Data;
/**
 * @program: screen
 * @description: 添加边界绑定设备
 * @author: lizijie
 * @create: 2022-01-17 14:57
 **/
@Data
public class AddBoundaryBindDevice {
    private String devices;
    private ServicesScope servicesScope;
}
screen-manage/src/main/java/com/moral/api/service/ServicesScopeService.java
@@ -2,6 +2,7 @@
import com.moral.api.entity.ServicesScope;
import com.baomidou.mybatisplus.extension.service.IService;
import com.moral.api.pojo.form.ServiceScope.AddBoundaryBindDevice;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -56,5 +57,15 @@
    **/
   @Transactional
   void delete(int id);
   /**
     *@Description: 添加边界,绑定设备
     *@Param: [addBoundaryBindDevice]
     *@return: void
     *@Author: lizijie
     *@Date: 2022/1/17 16:05
    **/
   @Transactional
   void addBoundaryBindDevice(AddBoundaryBindDevice addBoundaryBindDevice);
}
screen-manage/src/main/java/com/moral/api/service/impl/ServicesScopeServiceImpl.java
@@ -5,8 +5,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.moral.api.entity.Organization;
import com.moral.api.entity.ServicesScope;
import com.moral.api.entity.ServicesScopeDevice;
import com.moral.api.mapper.OrganizationMapper;
import com.moral.api.mapper.ServicesScopeDeviceMapper;
import com.moral.api.mapper.ServicesScopeMapper;
import com.moral.api.pojo.form.ServiceScope.AddBoundaryBindDevice;
import com.moral.api.service.ServicesScopeService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.moral.api.util.LogUtils;
@@ -21,6 +24,7 @@
import javax.servlet.http.HttpServletRequest;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
 * <p>
@@ -38,6 +42,9 @@
    @Autowired
    private OrganizationMapper organizationMapper;
    @Autowired
    private ServicesScopeDeviceMapper servicesScopeDeviceMapper;
    @Override
    public Map<String, Object> getDataByCondition(Map<String, Object> map) {
@@ -113,7 +120,7 @@
        //操作日志记录
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("修改了政府站点:").append("id:").append(servicesScope.getId() + ";");
        content.append("修改了服务范围:").append("id:").append(servicesScope.getId() + ";");
        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(servicesScope.getOrganizationId())) {
            content.append("organization_id:").append(oldServicesScope.getOrganizationId()).append("->").append(newServicesScope.getOrganizationId()).append(";");
        }
@@ -145,4 +152,57 @@
        content.append("删除了服务范围:").append("id:").append(id).append(";");
        LogUtils.saveOperationForManage(request, content.toString(), Constants.DELETE_OPERATE_TYPE);
    }
    @Override
    @Transactional
    public void addBoundaryBindDevice(AddBoundaryBindDevice addBoundaryBindDevice) {
        String devices = addBoundaryBindDevice.getDevices();
        if (!ObjectUtils.isEmpty(devices) && !devices.equals("")){
            String[] deviceIds = devices.split(",");
            List<String> deviceIds_String = Arrays.asList(deviceIds);
            List<Integer> deviceIdList = new ArrayList<>();
            for (String deviceId_String:deviceIds_String) {
                deviceIdList.add(Integer.parseInt(deviceId_String));
            }
            QueryWrapper<ServicesScopeDevice> servicesScopeDeviceQueryWrapper = new QueryWrapper<>();
            servicesScopeDeviceQueryWrapper.eq("is_delete",Constants.NOT_DELETE);
            servicesScopeDeviceQueryWrapper.eq("services_scope_id",addBoundaryBindDevice.getServicesScope().getId());
            List<ServicesScopeDevice> servicesScopeDevices = servicesScopeDeviceMapper.selectList(servicesScopeDeviceQueryWrapper);
            List<Integer> oldDeviceIds = servicesScopeDevices.stream().map(p -> p.getDeviceId()).collect(Collectors.toList());
            List<Integer> insertList = new ArrayList<>();
            for (Integer deviceId:deviceIdList) {
                if (!oldDeviceIds.contains(deviceId)){
                    insertList.add(deviceId);
                }
            }
            servicesScopeDeviceMapper.insertBatch(addBoundaryBindDevice.getServicesScope().getId(),insertList);
            servicesScopeDeviceQueryWrapper.notIn("device_id",deviceIdList);
            ServicesScopeDevice servicesScopeDevice = new ServicesScopeDevice();
            servicesScopeDevice.setIsDelete(Constants.DELETE);
            servicesScopeDeviceMapper.update(servicesScopeDevice,servicesScopeDeviceQueryWrapper);
        }
        ServicesScope oldServicesScope = servicesScopeMapper.selectById(addBoundaryBindDevice.getServicesScope().getId());
        servicesScopeMapper.updateById(addBoundaryBindDevice.getServicesScope());
        ServicesScope newServicesScope = servicesScopeMapper.selectById(addBoundaryBindDevice.getServicesScope().getId());
        //操作日志记录
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())).getRequest();
        StringBuilder content = new StringBuilder();
        content.append("修改了服务范围:").append("id:").append(addBoundaryBindDevice.getServicesScope().getId() + ";");
        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getOrganizationId())) {
            content.append("organization_id:").append(oldServicesScope.getOrganizationId()).append("->").append(newServicesScope.getOrganizationId()).append(";");
        }
        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getName())) {
            content.append("name:").append(oldServicesScope.getName()).append("->").append(newServicesScope.getName()).append(";");
        }
        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getCenterLongitude())) {
            content.append("center_longitude:").append(oldServicesScope.getCenterLongitude()).append("->").append(newServicesScope.getCenterLongitude()).append(";");
        }
        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getCenterLatitude())) {
            content.append("center_latitude:").append(oldServicesScope.getCenterLatitude()).append("->").append(newServicesScope.getCenterLatitude()).append(";");
        }
        if (!com.baomidou.mybatisplus.core.toolkit.ObjectUtils.isEmpty(addBoundaryBindDevice.getServicesScope().getBoundary())) {
            content.append("boundary:").append("数据过长").append(";");
        }
        LogUtils.saveOperationForManage(request, content.toString(), Constants.UPDATE_OPERATE_TYPE);
    }
}
screen-manage/src/main/resources/mapper/ServicesScopeDeviceMapper.xml
@@ -12,4 +12,12 @@
                    <result column="is_delete" property="isDelete" />
        </resultMap>
    <insert id="insertBatch" parameterType="java.util.List">
        insert into services_scope_device(services_scope_id, device_id)
        values
        <foreach collection="list" item="item" separator=",">
            (#{servicesScopeId}, #{item})
        </foreach>
    </insert>
</mapper>