whyclxw
2025-05-12 ff4cd28ee0535021dcc86d49bfe37545ea2fc1fd
包机组机房提交
5 文件已重命名
6个文件已修改
18个文件已添加
1472 ■■■■■ 已修改文件
.idea/misc.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pom.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
powerIntelligenceSystem.iml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/controller/ConditionController.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/Station/City.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/Station/Country.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/Station/Provice.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/dto/Station/Station.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BaojigroupMapper.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BaojigroupPowerMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/BaojigroupUsrMapper.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/PowerInfMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/StationInfMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/mapper/UserMapper.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_user/Baojigroup.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_user/BaojigroupPower.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_user/BaojigroupUsr.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_user/Permitgroup.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_user/PermitgroupData.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/pojo/db_user/User.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/BaojigroupService.java 192 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/service/StationInfService.java 145 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/whyc/util/ActionUtil.java 616 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BaojigroupPowerMapper.xml 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/BaojigroupUsrMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/PermitGroupUserMapper.xml 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/PowerInfMapper.xml 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/StationInfMapper.xml 133 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/UserMapper.xml 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
.idea/misc.xml
@@ -7,5 +7,5 @@
      </list>
    </option>
  </component>
  <component name="ProjectRootManager" version="2" project-jdk-name="17" project-jdk-type="JavaSDK" />
  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8 (2)" project-jdk-type="JavaSDK" />
</project>
pom.xml
@@ -204,6 +204,11 @@
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>2.15.0</version>
        </dependency>
    </dependencies>
powerIntelligenceSystem.iml
@@ -169,5 +169,6 @@
    <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.30" level="project" />
    <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
    <orderEntry type="library" name="Maven: commons-io:commons-io:2.15.0" level="project" />
  </component>
</module>
src/main/java/com/whyc/controller/ConditionController.java
New file
@@ -0,0 +1,61 @@
package com.whyc.controller;
import com.whyc.dto.Response;
import com.whyc.pojo.db_user.User;
import com.whyc.service.BaojigroupService;
import com.whyc.service.StationInfService;
import com.whyc.util.ActionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@RestController
@Api(tags = "下拉条件管理")
@RequestMapping("condition")
public class ConditionController {
    @Autowired
    private StationInfService stationInfService;
    @Autowired
    private BaojigroupService bjGroupService;
    @ApiOperation("获取所有的省份(下拉)")
    @GetMapping("getProviceByUid")
    public Response getProviceByUid() {
        User uinf= ActionUtil.getUser();
        return stationInfService.getProviceByUid(uinf.getId());
    }
    @ApiOperation("获取省下的市(下拉)")
    @GetMapping("getCityByUid")
    public Response getCityByUid(@RequestParam(required = false) String stationName1) {
        User uinf= ActionUtil.getUser();
        return stationInfService.getCityByUid(uinf.getId(),stationName1);
    }
    @ApiOperation("获取省市下的区县(下拉)")
    @GetMapping("getCountryByUid")
    public Response getCountryByUid(@RequestParam(required = false) String stationName1,@RequestParam(required = false) String stationName2) {
        User uinf= ActionUtil.getUser();
        return stationInfService.getCountryByUid(uinf.getId(),stationName1,stationName2);
    }
    @ApiOperation("获取省市区县下的站点(下拉)")
    @GetMapping("getStationByUid")
    public Response getStationByUid(@RequestParam(required = false) String stationName1,@RequestParam(required = false) String stationName2,@RequestParam(required = false) String stationName3) {
        User uinf= ActionUtil.getUser();
        return stationInfService.getStationByUid(uinf.getId(),stationName1,stationName2,stationName3);
    }
    @ApiOperation(value = "当前用户所在包机组下所有的用户(下拉)")
    @GetMapping("getBaojiUserByUid")
    public Response getBaojiUserByUid(){
        User uinf= ActionUtil.getUser();
        return bjGroupService.getBaojiUserByUid(uinf.getId());
    }
}
src/main/java/com/whyc/dto/Station/City.java
New file
@@ -0,0 +1,12 @@
package com.whyc.dto.Station;
import lombok.Data;
import java.util.List;
@Data
public class City {
    private String provice;
    private String city;
    private List<Country> countryList;
}
src/main/java/com/whyc/dto/Station/Country.java
New file
@@ -0,0 +1,13 @@
package com.whyc.dto.Station;
import lombok.Data;
import java.util.List;
@Data
public class Country {
    private String provice;
    private String city;
    private String country;
    private List<Station> stationList;
}
src/main/java/com/whyc/dto/Station/Provice.java
New file
@@ -0,0 +1,11 @@
package com.whyc.dto.Station;
import lombok.Data;
import java.util.List;
@Data
public class Provice {
    private String provice;
    private List<City> cityList;
}
src/main/java/com/whyc/dto/Station/Station.java
New file
@@ -0,0 +1,12 @@
package com.whyc.dto.Station;
import lombok.Data;
@Data
public class Station {
    private String provice;
    private String city;
    private String country;
    private String stationName;
    private Integer stationId;
}
src/main/java/com/whyc/mapper/BaojigroupMapper.java
New file
@@ -0,0 +1,7 @@
package com.whyc.mapper;
import com.whyc.pojo.db_user.Baojigroup;
public interface BaojigroupMapper extends CustomMapper<Baojigroup>{
}
src/main/java/com/whyc/mapper/BaojigroupPowerMapper.java
New file
@@ -0,0 +1,23 @@
package com.whyc.mapper;
import com.whyc.pojo.db_station.PowerInf;
import com.whyc.pojo.db_user.BaojigroupPower;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface BaojigroupPowerMapper extends CustomMapper<BaojigroupPower>{
    void deleteStationAndLockList(@Param("list") List<BaojigroupPower> list);
    //查询包机组对应的机房和锁的信息
    List<BaojigroupPower> getALlLockByBjId(@Param("id") Integer id);
    //地图顶部的管理的站点和设备(锁)
    List<BaojigroupPower> getHomeStationAndLock(@Param("uid") Integer uid);
    //查询用户管理的锁id集合
    List<Integer> getLockIdByUid(@Param("uid") int uid);
    //根据dto中stationid和包机组id查询出管理的lockid
    List<Integer> getLocIdByStationidAndBjId(@Param("stationId") Integer stationId, @Param("baojiId") Integer baojiId);
    List<PowerInf> getPowerList(@Param("id") int id);
}
src/main/java/com/whyc/mapper/BaojigroupUsrMapper.java
New file
@@ -0,0 +1,15 @@
package com.whyc.mapper;
import com.whyc.pojo.db_user.BaojigroupUsr;
import com.whyc.pojo.db_user.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface BaojigroupUsrMapper extends CustomMapper<BaojigroupUsr>{
    void deleteUserList(@Param("list") List<BaojigroupUsr> list);
    //查询包机组对应的用户信息
    List<BaojigroupUsr> getALlUsrByBjId(@Param("id") Integer id);
    List<User> getUserList(@Param("id") Integer id);
}
src/main/java/com/whyc/mapper/PowerInfMapper.java
New file
@@ -0,0 +1,9 @@
package com.whyc.mapper;
import com.whyc.pojo.db_station.PowerInf;
import java.util.List;
public interface PowerInfMapper extends CustomMapper<PowerInf>{
    List<PowerInf> getPowerList();
}
src/main/java/com/whyc/mapper/StationInfMapper.java
New file
@@ -0,0 +1,23 @@
package com.whyc.mapper;
import com.whyc.dto.Station.Provice;
import com.whyc.pojo.db_station.StationInf;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface StationInfMapper extends CustomMapper<StationInf>{
    //获取当前最大的机房id
    Integer getMaxStationNum();
    //获取左侧列表
    List<Provice> getLeftStation(@Param("uid") Integer uid);
    //获取所有的省份
    List<String> getProviceByUid(@Param("uid") Integer uid);
    //获取省下的市
    List<String> getCityByUid(@Param("uid") Integer uid,@Param("provice") String provice);
    //获取省市下的区县
    List<String> getCountryByUid(@Param("uid") Integer uid,@Param("provice") String provice, @Param("city") String city);
    //获取省市区县下的站点
    List<String> getStationByUid(@Param("uid") Integer uid,@Param("provice") String provice,@Param("city") String city,@Param("country") String country);
}
src/main/java/com/whyc/mapper/UserMapper.java
@@ -3,8 +3,13 @@
import com.whyc.pojo.db_user.User;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface UserMapper extends CustomMapper<User> {
    int addJudge(@Param("name") String name,@Param("phoneNumber") String phoneNumber);
    //当前用户所在包机组下所有的用户(下拉)
    List<User> getBaojiUserByUid(@Param("baojiIdList") List<Integer> baojiIdList);
}
src/main/java/com/whyc/pojo/db_user/Baojigroup.java
File was renamed from src/main/java/com/whyc/pojo/db_user/UserBaojigroup.java
@@ -1,6 +1,7 @@
package com.whyc.pojo.db_user;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
@@ -10,6 +11,7 @@
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.util.List;
/**
 * <p>
@@ -22,19 +24,26 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(schema = "db_user",value = "tb_user_baojigroup")
@TableName(schema = "db_user",value = "tb_baojigroup")
@ApiModel(value="UserBaojigroup对象", description="")
public class UserBaojigroup implements Serializable {
public class Baojigroup implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "baoji_group_id", type = IdType.AUTO)
    private Long baojiGroupId;
    private Integer baojiGroupId;
    private String baojiGroupName;
    @ApiModelProperty(value = "班组标识(0:不是班组,1:是班组)")
    private Integer teamFlag;
    @TableField(exist = false)
    private List<BaojigroupUsr> usrList;
    @TableField(exist = false)
    private  List<BaojigroupPower> powerList;
}
src/main/java/com/whyc/pojo/db_user/BaojigroupPower.java
File was renamed from src/main/java/com/whyc/pojo/db_user/UserBaojigroupBattgroup.java
@@ -21,14 +21,14 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(schema = "db_user",value = "tb_user_baojigroup_battgroup")
@ApiModel(value="UserBaojigroupBattgroup对象", description="")
public class UserBaojigroupBattgroup implements Serializable {
@TableName(schema = "db_user",value = "tb_baojigroup_power")
@ApiModel(value="BaojigroupBattgroup对象", description="")
public class BaojigroupPower implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "num", type = IdType.AUTO)
    private Long num;
    private Integer num;
    private Integer baojiGroupId;
src/main/java/com/whyc/pojo/db_user/BaojigroupUsr.java
File was renamed from src/main/java/com/whyc/pojo/db_user/UserBaojigroupUsr.java
@@ -21,14 +21,14 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(schema = "db_user",value = "tb_user_baojigroup_usr")
@ApiModel(value="UserBaojigroupUsr对象", description="")
public class UserBaojigroupUsr implements Serializable {
@TableName(schema = "db_user",value = "tb_baojigroup_usr")
@ApiModel(value="BaojigroupUsr对象", description="")
public class BaojigroupUsr implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "num", type = IdType.AUTO)
    private Long num;
    private Integer num;
    private Integer baojiGroupId;
src/main/java/com/whyc/pojo/db_user/Permitgroup.java
File was renamed from src/main/java/com/whyc/pojo/db_user/UserPermitgroup.java
@@ -21,14 +21,14 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(schema = "db_user",value = "tb_user_permitgroup")
@ApiModel(value="UserPermitgroup对象", description="")
public class UserPermitgroup implements Serializable {
@TableName(schema = "db_user",value = "tb_permitgroup")
@ApiModel(value="Permitgroup对象", description="")
public class Permitgroup implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "num", type = IdType.AUTO)
    private Long num;
    private Integer num;
    private Integer permitGroupId;
src/main/java/com/whyc/pojo/db_user/PermitgroupData.java
File was renamed from src/main/java/com/whyc/pojo/db_user/UserPermitgroupData.java
@@ -21,9 +21,9 @@
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(schema = "db_user",value = "tb_user_permitgroup_data")
@ApiModel(value="UserPermitgroupData对象", description="")
public class UserPermitgroupData implements Serializable {
@TableName(schema = "db_user",value = "tb_permitgroup_data")
@ApiModel(value="PermitgroupData对象", description="")
public class PermitgroupData implements Serializable {
    private static final long serialVersionUID = 1L;
src/main/java/com/whyc/pojo/db_user/User.java
@@ -26,8 +26,6 @@
    private String phoneNumber;
    private Integer roleId;
    private Date createTime;
    public User() {
src/main/java/com/whyc/service/BaojigroupService.java
New file
@@ -0,0 +1,192 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.whyc.dto.Response;
import com.whyc.mapper.*;
import com.whyc.pojo.db_station.PowerInf;
import com.whyc.pojo.db_user.Baojigroup;
import com.whyc.pojo.db_user.BaojigroupPower;
import com.whyc.pojo.db_user.BaojigroupUsr;
import com.whyc.pojo.db_user.User;
import com.whyc.util.ActionUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Service
public class BaojigroupService {
    @Autowired(required = false)
    private BaojigroupMapper mapper;
    @Autowired(required = false)
    private BaojigroupPowerMapper bjPowermapper;
    @Autowired(required = false)
    private BaojigroupUsrMapper bjUsrmapper;
    @Autowired(required = false)
    private UserMapper UserMapper;
    @Autowired(required = false)
    private PowerInfMapper powerInfMapper;
    //将内置用户加入到包机组下
    public void insertNeiZhi(Integer baojiId){
        List<BaojigroupUsr> list=new ArrayList<>();
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.lt("uid",99);
        List<User> uList=UserMapper.selectList(wrapper);
        for (User uinf:uList) {
            BaojigroupUsr baojiusr=new BaojigroupUsr();
            baojiusr.setUid(uinf.getId());
            baojiusr.setBaojiGroupId(baojiId);
            list.add(baojiusr);
        }
        bjUsrmapper.insertBatchSomeColumn(list);
    }
    //添加包机组
    @Transactional
    public Response addBaoji(String baojiName) {
        //验证包机组名是否重复
        //将内置用户加入到包机组下
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("baoji_name",baojiName);
        wrapper.last("limit 1");
        Baojigroup baoji=mapper.selectOne(wrapper);
        if(baoji!=null){
            return new Response().set(0,false,"包机组已存在");
        }else{
            baoji=new Baojigroup();
            baoji.setBaojiGroupName(baojiName);
            int bl=mapper.insert(baoji);
            if(bl>0){
                //将内置用户加入到包机组下
                QueryWrapper wrapper1=new QueryWrapper();
                wrapper1.eq("baoji_name",baojiName);
                wrapper1.last("limit 1");
                baoji=mapper.selectOne(wrapper1);
                insertNeiZhi(baoji.getBaojiGroupId());
            }
            return new Response().set(1,bl>0,"添加包机组成功");
        }
    }
    //编辑包机组
    public Response updateBaoji(Integer id, String baojiName) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("id",id);
        wrapper.set("baoji_name",baojiName);
        int bl=mapper.update((Baojigroup) ActionUtil.objeNull,wrapper);
        return new Response().set(1,bl>0,"编辑包机组成功");
    }
    //删除包机组
    @Transactional
    public Response delBaoji(Integer id) {
        //先删除包机组对应人下的记录
        UpdateWrapper wrapper1=new UpdateWrapper();
        wrapper1.eq("baoji_id",id);
        bjUsrmapper.delete(wrapper1);
        //再删除包机组对应下的机房和锁
        UpdateWrapper wrapper2=new UpdateWrapper();
        wrapper2.eq("baoji_id",id);
        bjPowermapper.delete(wrapper2);
        //最后删除包机组
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("id",id);
        int bl=mapper.delete(wrapper);
        return new Response().set(1,bl>0,"删除包机组成功");
    }
    //查询包机组及包机组对应的用户和对应机房和锁
    public Response getAllBaojiInf() {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.orderByAsc("id");
        List<Baojigroup> baojiList=mapper.selectList(wrapper);
        for (Baojigroup bj:baojiList) {
            //查询包机组对应的用户信息
            List<BaojigroupUsr> usrList=bjUsrmapper.getALlUsrByBjId(bj.getBaojiGroupId());
            bj.setUsrList(usrList);
            //查询包机组对应的机房和锁的信息
            List<BaojigroupPower> powerList=bjPowermapper.getALlLockByBjId(bj.getBaojiGroupId());
            bj.setPowerList(powerList);
        }
        return new Response().setII(1,baojiList!=null,baojiList,"查询包机组及包机组对应的用户和对应机房和锁");
    }
    //包机组添加机房和锁|移除机房和锁
    @Transactional
    public void updateStationAndLockList(List<BaojigroupPower> BaojigroupPowerList, int operationFlag) {
        if(operationFlag==1){
            bjPowermapper.insertBatchSomeColumn(BaojigroupPowerList);
        }else{
            bjPowermapper.deleteStationAndLockList(BaojigroupPowerList);
        }
    }
    //包机组添加用户|移除用户
    @Transactional
    public void updateUserList(List<BaojigroupUsr> baoJiGroupUserList, int operationFlag) {
        if(operationFlag==1){
            bjUsrmapper.insertBatchSomeColumn(baoJiGroupUserList);
        }else{
            bjUsrmapper.deleteUserList(baoJiGroupUserList);
        }
    }
   // 包机组列表
    public Response<List<Baojigroup>> getBaoJiGroup() {
        List<Baojigroup> list=mapper.selectList((Wrapper<Baojigroup>) ActionUtil.objeNull);
        return new Response().setII(1,list!=null,list,"包机组列表");
    }
    //包机组已添加用户和未添加用户列表
    public Map<String, List<User>> getUserList(int id) {
        Map<String, List<User>> resultMap = new LinkedHashMap<>();
        //查询包机组已添加的用户信息
        List<User> relatedUserList = bjUsrmapper.getUserList(id);
        //查询包机组未添加的用户信息
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.select("uid", "uname");
        wrapper.gt("uid",100);
        List<User> allUserList = UserMapper.selectList(wrapper);
        List<User> notRelatedUserList = allUserList.stream().filter(User -> !relatedUserList.contains(User)).collect(Collectors.toList());
        resultMap.put("usersAdded",relatedUserList);
        resultMap.put("usersNotAdded",notRelatedUserList);
        return resultMap;
    }
    //已添加机房锁和未添加机房锁
    public Map<String, List<PowerInf>> getStationList(int id) {
        Map<String,List<PowerInf>> resultMap = new LinkedHashMap<>();
        //查询已添加的机房站点列表
        List<PowerInf> lockList = bjPowermapper.getPowerList(id);
        List<PowerInf> allLockList = powerInfMapper.getPowerList();
        List<PowerInf> notRelatedLockList = allLockList.stream().filter(PowerInf -> !lockList.contains(PowerInf)).collect(Collectors.toList());
        resultMap.put("stationsAdded",lockList);
        resultMap.put("stationsNotAdded",notRelatedLockList);
        return resultMap;
    }
    //当前用户所在包机组下所有的用户(下拉)
    public Response getBaojiUserByUid(Integer uid) {
        //查询当前人所在包机组
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.select("baoji_id");
        if(uid>100){
            wrapper.eq("uid",uid);
        }
        List<BaojigroupUsr> usrList=bjUsrmapper.selectList(wrapper);
        if(usrList.size()==0){
            return new Response().setII(1,null,null,"当前用户未加入包机组");
        }
        List<Integer> baojiIdList=usrList.stream().map(BaojigroupUsr::getBaojiGroupId).collect(Collectors.toList());
        List<User> list=UserMapper.getBaojiUserByUid(baojiIdList);
        return new Response().setII(1,list!=null,list,"当前用户所在包机组下所有的用户(下拉)");
    }
}
src/main/java/com/whyc/service/StationInfService.java
New file
@@ -0,0 +1,145 @@
package com.whyc.service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.whyc.dto.Response;
import com.whyc.dto.Station.Provice;
import com.whyc.mapper.BaojigroupMapper;
import com.whyc.mapper.StationInfMapper;
import com.whyc.pojo.db_station.StationInf;
import com.whyc.pojo.db_user.Baojigroup;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class StationInfService {
    @Autowired(required = false)
    private StationInfMapper mapper;
    @Autowired(required = false)
    private BaojigroupMapper groupMapper;
    //获取左侧列表
    public Response getLeftStation(int uid) {
        List<Provice> list=mapper.getLeftStation(uid);
        return new Response().setII(1,list.size()>0,list,"获取左侧列表");
    }
    //获取所有的省份
    public Response getProviceByUid(int uid) {
        List<String> list=mapper.getProviceByUid(uid);
        return new Response().setII(1,list.size()>0,list,"获取所有的省份");
    }
    //获取省下的市
    public Response getCityByUid(int uid, String stationName1) {
        List<String> list=mapper.getCityByUid(uid,stationName1);
        return new Response().setII(1,list.size()>0,list,"获取省下的市");
    }
    //获取省市下的区县
    public Response getCountryByUid(int uid, String stationName1, String stationName2) {
        List<String> list=mapper.getCountryByUid(uid,stationName1,stationName2);
        return new Response().setII(1,list.size()>0,list,"获取省市下的区县");
    }
    //获取省市区县下的站点
    public Response getStationByUid(int uid, String stationName1, String stationName2, String stationName3) {
        List<String> list=mapper.getStationByUid(uid,stationName1,stationName2,stationName3);
        return new Response().setII(1,list.size()>0,list,"获取省市区县下的站点");
    }
    //添加机房
   /* public Response addStatiaon(StationInf addsinf) {
        //判断添加锁的时候机房是不是新机房
        String stationName=addsinf.getStationName1()+"_"+addsinf.getStationName2()+"_"+addsinf.getStationName3()+"_"+addsinf.getStationName4();
        //判断机房是否存在
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("station_name",stationName);
        wrapper.last("limit 1");
        StationInf sinf=mapper.selectOne(wrapper);
        int stationId=0;
        int lockId=0;
        if(sinf!=null){
            return new Response().set(1,false,"机房已存在");
        }else {
            //获取当前最大的机房id
            Integer maxStationNum=mapper.getMaxStationNum();
            if(maxStationNum==0){//数据库中没有站点
                stationId=40000001;
            }else{
                //获取对应的机房id
                stationId=mapper.getStaitonIdByNum(maxStationNum);
                stationId+=1;
            }
            StationInf newSinf=new StationInf();
            newSinf.setStationId(stationId);
            newSinf.setStationName(stationName);
            newSinf.setStationNum(maxStationNum+1);
            newSinf.setStationName1(addsinf.getStationName1());
            newSinf.setStationName2(addsinf.getStationName2());
            newSinf.setStationName3(addsinf.getStationName3());
            newSinf.setStationName4(addsinf.getStationName4());
            mapper.insert(newSinf);
            linfService.insertInbaoji(stationId,lockId);
            return new Response().set(1,true,"添加机房");
        }
    }*/
    //删除机房
    public Response delStatiaon(Integer stationId) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("station_id",stationId);
        mapper.delete(wrapper);
        return new Response().set(1,true);
    }
    //修改机房
   /* public Response updateStatiaon(StationInf sinf) {
        UpdateWrapper wrapper=new UpdateWrapper();
        wrapper.eq("station_id",sinf.getStationId());
        if(sinf.getStationName1()!=null){
            wrapper.set("station_name1",sinf.getStationName1());
        }
        if(sinf.getStationName2()!=null){
            wrapper.set("station_name2",sinf.getStationName2());
        }
        if(sinf.getStationName3()!=null){
            wrapper.set("station_name3",sinf.getStationName3());
        }
        if(sinf.getStationName4()!=null){
            wrapper.set("station_name4",sinf.getStationName4());
        }
        String stationName=sinf.getStationName1()+"_"+sinf.getStationName2()+"_"+sinf.getStationName3()+"_"+sinf.getStationName4();
        wrapper.set("station_name",stationName);
        mapper.update((StationInf) ActionUtil.objeNull,wrapper);
        return new Response().set(1,true);
    }*/
    //查询机房
    /*public Response getStatiaon(StationDto dto) {
        PageHelper.startPage(dto.getPageNum(),dto.getPageSize());
        QueryWrapper wrapper=new QueryWrapper();
        if(dto.getStationName1()!=null){
            wrapper.eq("station_name1",dto.getStationName1());
        }
        if(dto.getStationName2()!=null){
            wrapper.eq("station_name2",dto.getStationName2());
        }
        if(dto.getStationName3()!=null){
            wrapper.eq("station_name3",dto.getStationName3());
        }
        if(dto.getStationName4()!=null){
            wrapper.eq("station_name4",dto.getStationName4());
        }
        List<StationInf> list=mapper.selectList(wrapper);
        PageInfo pageInfo=new PageInfo(list);
        return new Response().setII(1,list!=null,pageInfo,"查询机房");
    }*/
    //根据stationid和包机组id查询机房名和包机组名
    public Response getNamebyId(Integer stationId, Integer baojiId) {
        QueryWrapper wrapper=new QueryWrapper();
        wrapper.eq("station_id",stationId);
        wrapper.last("limit 1");
        StationInf sinf=mapper.selectOne(wrapper);
        QueryWrapper wrapper1=new QueryWrapper();
        wrapper1.eq("id",baojiId);
        wrapper1.last("limit 1");
        Baojigroup baoji=groupMapper.selectOne(wrapper1);
        return new Response().setIII(1,true,sinf,baoji,"根据stationid和包机组id查询机房名和包机组名");
    }
}
src/main/java/com/whyc/util/ActionUtil.java
New file
@@ -0,0 +1,616 @@
package com.whyc.util;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;
import com.whyc.pojo.db_user.User;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;
import org.apache.commons.io.FilenameUtils;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.*;
import java.lang.reflect.Type;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class ActionUtil {
    public static String time_yyyyMMddHHmmss = "yyyy-MM-dd HH:mm:ss";
    public static String time_yyyyMMdd = "yyyy-MM-dd";
    public static String time_yyyyMMdd_HH_mm_ss = "yyyy-MM-dd_HH_mm_ss";
    public static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static SimpleDateFormat sdfwithOutday = new SimpleDateFormat("yyyy_MM");
    public static SimpleDateFormat sdfwithday = new SimpleDateFormat("yyyy-MM-dd");
    public static SimpleDateFormat sdfwithtime = new SimpleDateFormat("HH:mm:ss");
    public static SimpleDateFormat sdfwithtime_yyyyMMdd_HH_mm_ss = new SimpleDateFormat(time_yyyyMMdd_HH_mm_ss);
    public static Object objeNull = null;
    /*
     * 获取HttpServletRequest
     */
    public static HttpServletRequest getRequest() {
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletRequest request = requestAttributes.getRequest();
        return request;
    }
    /*
     * 获取HttpServletResponse
     */
    public static HttpServletResponse getResponse(){
        ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
        HttpServletResponse response = requestAttributes.getResponse();
        return response;
    }
    /*
     * 获取HttpSession
     */
    public static HttpSession getSession(){
        return getRequest().getSession();
    }
    /**
     *
     * @return    返回application
     */
    public static ServletContext getApplication(){
        return getSession().getServletContext();
    }
    //获取application中互斥上传的标志位flag
    public static int getFlag(){
        ServletContext app=getApplication();
        int flag=(Integer) app.getAttribute("flag");
        return flag;
    }
    ////给application中互斥上传的标志位flag设置值
    public static void setFlag(int flag){
        ServletContext app=getApplication();
        app.setAttribute("flag", flag);
    }
    /*
     * 获取将对象转换成json格式
     */
    public static String tojson(Object obj){
        Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
        return gson.toJson(obj);
    }
    public static String chageDateToString(Date time,String type){
        String msg = "";
        SimpleDateFormat sdf = new SimpleDateFormat(type);
        msg = sdf.format(time);
        return msg;
    }
    /**
     *
     * @param datetype    需要解析的日期的格式如:"yyyy-MM-dd HH:mm:ss"
     * @return    得到对应的gson对象
     */
    public static Gson getGson(String datetype){
        return new  GsonBuilder().setDateFormat(datetype).create();
    }
    /**
     * 获取默认的gson对象
     * @return
     */
    public static Gson getGson(){
        return new Gson();
    }
    public static <T> T getObject(String jsonstring,Type listtype){
        Gson gson=new Gson();
        T t=null;
        try {
            t=gson.fromJson(jsonstring, listtype);
        } catch (JsonSyntaxException e) {
            e.printStackTrace();
        }
        return t;
    }
    /**
     *
     * @return 获取输出流
     */
    public static PrintWriter getOut(){
        PrintWriter out =null;
        try {
            out=getResponse().getWriter();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return out;
    }
    /**
     *
     * @param time    java.util包中的时间
     * @return        java.sql时间
     */
    public static Date getSimpDate(Date time){
        //System.out.println(time);
        return new java.sql.Date(time.getTime());
    }
    //使用MD5加密
    public static Object EncryptionMD5(Object obj){
        String md5=null;
        if(obj!=null && obj.toString().length()>0){
            md5= DigestUtils.md5Hex(obj.toString());
        }
        return md5;
    }
    //使用Base64加密
    public static Object EncryptionBase64(Object obj){
        String base64=null;
        if(obj!=null && obj.toString().length()>0){
            base64=new BASE64Encoder().encode(obj.toString().getBytes());
            base64 = base64.replaceAll("[\\s*\t\n\r]", "");         //替换加密后不换行
        }
        return base64;
    }
    //使用Base64解密
    public static Object DecryptionBase64(Object obj){
        String base64=null;
        if(obj!=null && obj.toString().length()>0){
            try {
                base64 = new String(new BASE64Decoder().decodeBuffer(obj.toString()));
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        return base64;
    }
    //获取指定年月的天数
    public static int getDaysByYearMonth(int year, int month) {
        Calendar a = Calendar.getInstance();
        a.set(Calendar.YEAR, year);
        a.set(Calendar.MONTH, month - 1);
        a.set(Calendar.DATE, 1);
        a.roll(Calendar.DATE, -1);
        int maxDate = a.get(Calendar.DATE);
        return maxDate;
    }
    /**
     *
     * @return 获取当前session 中的用户对象
     */
    public static User getUser(){
        HttpSession session =getSession();
        Object obj=session.getAttribute("user");
        User userInf = new User();
        if(obj==null){
            userInf.setName("unlogged_user");
            userInf.setId(99);
        }else{
            userInf=(User) session.getAttribute("user");
        }
        return userInf;
    }
    //获取某年某月的起始和结束时间
    //需要注意的是:月份是从0开始的,比如说如果输入5的话,实际上显示的是4月份的最后一天,千万不要搞错了哦
    public static String getLastDayOfMonth(int year, int month) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DATE));
       return  new   SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime())+"23:59:59";
    }
    public static String getFirstDayOfMonth(int year, int month) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DAY_OF_MONTH,cal.getMinimum(Calendar.DATE));
       return   new   SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime())+"00:00:00";
    }
    //获取当前时间的年份
    public static int getNowYear(){
        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
        ca.setTime(new Date()); //设置时间为当前时间
        int year = ca.get(Calendar.YEAR);
        //System.out.println(month);
        return year;
    }
    //获取当前时间的月份
    public static int getNowMonth(){
        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
        ca.setTime(new Date()); //设置时间为当前时间
        int month = ca.get(Calendar.MONTH) + 1;
        //System.out.println(month);
        return month;
    }
    //获取当前时间的日期
    public static int getNowday(){
        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
        ca.setTime(new Date()); //设置时间为当前时间
        int day = ca.get(Calendar.DAY_OF_MONTH);
        //System.out.println(month);
        return day;
    }
   //当前时间加上x小时
    public static String getDateAdd(int minute){
    Date date = new Date();
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    c.add(Calendar.MINUTE, minute);
    return new   SimpleDateFormat( "yyyy-MM-dd HH:mm:ss").format(c.getTime());
    }
    /**
     * 输入验证:路径遍历,防止恶意符号影响文件体系
     * 过滤掉特殊字符 ”/\" : | * ? < >”
     */
    public static String filterFileName(String fileName){
        Pattern pattern = Pattern.compile("[\\s\\\\/:\\*\\?\\\"<>\\|]");
        Matcher matcher = pattern.matcher(fileName);
        fileName = matcher.replaceAll("");
        return FilenameUtils.getName(fileName);
    }
    //获取时间的年份
    public static int getDateYear(Date date){
        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
        ca.setTime(date); //设置时间为当前时间
        int year = ca.get(Calendar.YEAR);
        //System.out.println(month);
        return year;
    }
    //获取时间的月份
    public static int getDateMonth(Date date){
        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
        ca.setTime(date); //设置时间为当前时间
        int month = ca.get(Calendar.MONTH) + 1;
        //System.out.println(month);
        return month;
    }
    //获取时间的日期
    public static int getDateday(Date date){
        Calendar ca = Calendar.getInstance();//得到一个Calendar的实例
        ca.setTime(date); //设置时间为当前时间
        int day = ca.get(Calendar.DAY_OF_MONTH);
        //System.out.println(month);
        return day;
    }
    //当前时间加上x小时
    public static Date getDateAdd(Date date,int minute){
    Calendar c = Calendar.getInstance();
    c.setTime(date);
    c.add(Calendar.MINUTE, minute);
    return c.getTime();
    }
    //给定时间判断与当前时间相比是否为老电池(numYear为时间期限几年)
    public static int judgeBatt(Date inUseDate,Date date,int numYear){
        int judge=0;
        inUseDate.setYear(ActionUtil.getDateYear(inUseDate)+numYear-1900);
        //System.out.println("inUseDate: "+inUseDate);
        if(inUseDate.after(date)){
            judge=1;
        }else{
            judge=0;
        }
        return judge;
    }
    //获取某年某月某日内的时间<date为执行时间的时分秒设置为提醒时间段的时分秒>
    public static Date getWorkDay(Date date,Date noticeTime) {
        Calendar cal = Calendar.getInstance();
        cal.setTime(date); //设置时间为执行日期
        int year = cal.get(Calendar.YEAR);//年
        int month = cal.get(Calendar.MONTH);//月
        int day = cal.get(Calendar.DAY_OF_MONTH);//日
        cal.setTime(noticeTime);//设置时间为提醒时间段
        /*int hour=cal.get(Calendar.HOUR_OF_DAY);//时
        int minute=cal.get(Calendar.MINUTE);//分
        int second=cal.get(Calendar.SECOND);//秒*/
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DAY_OF_MONTH,day);
        return  cal.getTime();
       }
    //获取某年某月某日起始时间/结束时间
    public static String getDayTime(int year, int month,int day,int type) {
        Calendar cal = Calendar.getInstance();
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, month);
        cal.set(Calendar.DAY_OF_MONTH,day);
        if(type==1){
            return   new   SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime())+"00:00:00";
        } else if(type==2){
            return   new   SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime())+"09:00:00";
        }else if(type==3){
            return   new   SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime())+"17:00:00";
        }else if(type==4){
            return   new   SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime())+"23:59:59";
        }
       return   new   SimpleDateFormat( "yyyy-MM-dd ").format(cal.getTime());
    }
    //计算电池使用了多少个月
    public static int battInuseMonth(Date inUseDate){
        int useDay=0;
        Date nowd=new Date();//当前时间
        int inuseY=ActionUtil.getDateYear(inUseDate);
        int inuseM=ActionUtil.getDateMonth(inUseDate);
        int nowY=ActionUtil.getDateYear(nowd);
        int nowM=ActionUtil.getDateMonth(nowd);
        if(inuseY==nowY){
            useDay=nowM-inuseM;
        }else{
            useDay=(nowY-inuseY)*12+nowM-inuseM;
        }
        return useDay;
    }
    //计算日期之间相差的天数
    public static int daysBetween(Date smdate,Date bdate)
    {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
        try {
            smdate=sdf.parse(sdf.format(smdate));
            bdate=sdf.parse(sdf.format(bdate));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Calendar cal = Calendar.getInstance();
        cal.setTime(smdate);
        long time1 = cal.getTimeInMillis();
        cal.setTime(bdate);
        long time2 = cal.getTimeInMillis();
        long between_days=(time2-time1)/(1000*3600*24);
       return Math.abs(Integer.parseInt(String.valueOf(between_days)));
    }
    //计算日期之间相差的小时
    public static int HoursBetween(Date smdate,Date bdate)
    {
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            smdate=sdf.parse(sdf.format(smdate));
            bdate=sdf.parse(sdf.format(bdate));
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        Calendar cal = Calendar.getInstance();
        cal.setTime(smdate);
        long time1 = cal.getTimeInMillis();
        cal.setTime(bdate);
        long time2 = cal.getTimeInMillis();
        long between_hours=(time2-time1)/(1000*3600);
        //System.out.println("between_hours:"+between_hours);
        return (int) Math.abs(between_hours);
    }
    //比较两个时间的大小
    public static int compareDate(Date d1,Date d2){
        if (d1.getTime() > d2.getTime()) {
            return 1;
        } else if (d1.getTime() < d2.getTime()) {
            return -1;
        } else {//相等
            return 0;
        }
        }
    /**
     * @Description: 根据图片地址转换为base64编码字符串
     * @Author:
     * @CreateTime:
     * @return
     */
    public static String getImageStr(String imgFile) {
        InputStream inputStream = null;
        byte[] data = null;
        try {
            inputStream = new FileInputStream(imgFile);
            data = new byte[inputStream.available()];
            inputStream.read(data);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(inputStream!=null){
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        // 加密
        BASE64Encoder encoder = new BASE64Encoder();
        return encoder.encode(data);
    }
    /**
     * @Description: 将base64编码字符串转换为图片
     * @Author:
     * @CreateTime:
     * @param imgStr base64编码字符串
     * @param path 图片路径-具体到文件
     * @return
    */
    public static boolean generateImage(String imgStr, String path) {
        boolean bl=false;
        OutputStream out=null;
        if (imgStr == null) {
            bl=false;
        }
        BASE64Decoder decoder = new BASE64Decoder();
        try {
            // 解密
            byte[] b = decoder.decodeBuffer(imgStr);
            // 处理数据
            for (int i = 0; i < b.length; ++i) {
                if (b[i] < 0) {
                    b[i] += 256;
                }
            }
            out = new FileOutputStream(path);
            out.write(b);
            out.flush();
            bl=true;
        } catch (Exception e) {
            bl=false;
        }finally {
            if(out!=null){
                try {
                    out.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return bl;
    }
    /**
     * 将输入流中的数据读到字节数组中
     * @param is
     * @return
     */
    public static byte[] IStoByteArr(InputStream is){
        byte[] b = null;
        try {
            b = new byte[is.available()];
            is.read(b);
        } catch (IOException e) {
            e.printStackTrace();
        } finally{
            if(is != null){
                try {
                    is.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
        return b;
    }
    /**
     * 创建指定的文件文件,若不存在则先创建指定的文件夹再创建指定的文件
     * @param filePath
     */
    public static void createFilefolderIFNotExist(String filePath){
        File f = new File(filePath);
        if(!f.exists()){
            if(!f.getParentFile().exists()){
                f.getParentFile().mkdirs();
            }
        }
    }
    /**
     * 秒转换小时-分-秒analytics/util/DateUtil.java
     *
     * @param seconds 秒为单位 比如..600秒
     * @return 比如...2小时3分钟52秒
     */
    public static String secToTime(int seconds) {
        int hour = seconds / 3600;
        int minute = (seconds - hour * 3600) / 60;
        int second = (seconds - hour * 3600 - minute * 60);
        StringBuffer sb = new StringBuffer();
        if (hour > 0) {
            if(hour<10){
                sb.append("0"+hour + ":");
            }else{
                sb.append(hour + ":");
            }
        }else{
            sb.append("00"+ ":");
        }
        if (minute > 0) {
            if(minute<10){
                sb.append("0"+minute + ":");
            }else{
                sb.append(minute + ":");
            }
        }else{
            sb.append("00" + ":");
        }
        if (second > 0) {
            if(second<10){
                sb.append("0"+second);
            }else{
                sb.append(second);
            }
        }else{
            sb.append("00");
        }
        return sb.toString();
    }
    /**
     * 使用timestamp+盐方式,进行签名验证
     * 当前时间戳为13位数
     */
    public static boolean checkSignMD5(String time,String randomStr,String sign){
        String usefulNum = randomStr;
        //加盐方式,根据末尾的值进行不同的加密规则
        char lastChar = time.charAt(12);
        int lastNum = Integer.parseInt(String.valueOf(lastChar));
        switch (lastNum){
            //在第一位加字符串 rd@c3doed
            case 0: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3dozero");break;
            case 1: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doenoe");break;
            case 2: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doktwo");break;
            case 3: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3dolthree");break;
            case 4: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doexfour");break;
            case 5: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedefive");break;
            case 6: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedhsix");break;
            case 7: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedtseven");break;
            case 8: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedbeight");break;
            case 9: usefulNum += time.replace(String.valueOf(lastChar),"rd@c3doedrnine");break;
        }
        //MD5加密后
        String signNow = (String) EncryptionMD5(usefulNum);
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < 10; i++) {
            sb.append(signNow.charAt(i * 2));
        }
        String signResult = sb.append(signNow).toString();
        return sign.equals(signResult);
    }
    //获取当前系统的语言环境
    public static String getLang() {
        Locale locale = Locale.getDefault();//对Locale类实例化定义
        String lang = locale.getLanguage();
        //String lang = "zh";
        String str = (String) ActionUtil.getSession().getAttribute("lang");
        if (str != null) {
            lang = str;
        }
        return lang;
    }
}
src/main/resources/mapper/BaojigroupPowerMapper.xml
New file
@@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.whyc.mapper.BaojigroupPowerMapper">
    <delete id="deleteStationAndLockList">
        <foreach collection="list" item="item" separator=";">
            delete from db_user.tb_baojigroup_power where baoji_id = #{item.baojiId} and
            station_id = #{item.stationId} and power_id=#{item.powerId}
        </foreach>
    </delete>
    <select id="getALlLockByBjId" resultType="com.whyc.pojo.db_user.BaojigroupPower">
        select tb_baojigroup_power.*,tb_power_inf.power_name,tb_station_inf.station_name
               from db_user.tb_baojigroup_power,db_station.tb_station_inf,db_station.tb_power_inf
        where
              tb_baojigroup_power.station_id=tb_station_inf.station_id
              and tb_baojigroup_power.power_id=tb_power_inf.power_id
              and baoji_id=#{id}
        order by tb_baojigroup_power.baoji_id asc ,tb_baojigroup_power.station_id asc,tb_baojigroup_power.power_id asc
    </select>
    <select id="getHomeStationAndLock" resultType="com.whyc.pojo.db_user.BaojigroupPower">
        select distinct tb_baojigroup_power.station_id,tb_baojigroup_power.power_id
        from db_user.tb_baojigroup_power,db_user.tb_baojigroup_usr
       <where>
           tb_baojigroup_power.baoji_id=tb_baojigroup_usr.baoji_id
           <if test="uid>100">
               and tb_baojigroup_usr.uid=#{uid}
           </if>
       </where>
    </select>
    <select id="getLockIdByUid" resultType="java.lang.Integer">
        select distinct tb_baojigroup_power.power_id
        from db_user.tb_baojigroup_power,db_user.tb_baojigroup_usr
        <where>
            tb_baojigroup_power.baoji_id=tb_baojigroup_usr.baoji_id
        <if test="uid>100">
            and tb_baojigroup_usr.uid=#{uid}
        </if>
        </where>
    </select>
    <select id="getLocIdByStationidAndBjId" resultType="java.lang.Integer">
        select distinct tb_baojigroup_power.power_id
        from db_user.tb_baojigroup_power
        <where>
            tb_baojigroup_power.baoji_id=#{baojiId}
          and tb_baojigroup_power.station_id=#{stationId}
        </where>
    </select>
    <select id="getLockList" resultType="com.whyc.pojo.db_station.PowerInf">
        select distinct l.power_id,l.power_name,l.station_id,s.station_name
        from db_user.tb_baojigroup_power bl ,db_station.tb_power_inf l,db_station.tb_station_inf s
        where bl.power_id = l.power_id and bl.station_id = s.station_id
        and l.del_flag=0
        and bl.baoji_id = #{id}
        order by s.station_name
    </select>
</mapper>
src/main/resources/mapper/BaojigroupUsrMapper.xml
New file
@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.whyc.mapper.BaojigroupUsrMapper">
    <delete id="deleteUserList">
        <foreach collection="list" item="item" separator=";" >
            delete from plus_user.tb_baojigroup_usr where baoji_id = #{item.baojiId} and uid = #{item.uid}
        </foreach>
    </delete>
    <select id="getALlUsrByBjId" resultType="com.whyc.pojo.plus_user.BaojigroupUsr">
        select tb_baojigroup_usr.*,tb_user_inf.uname
        from plus_user.tb_baojigroup_usr,plus_user.tb_user_inf
        where tb_baojigroup_usr.uid=tb_user_inf.uid
        and   baoji_id = #{id}
    </select>
    <select id="getUserList" resultType="com.whyc.pojo.plus_user.UserInf">
        select u.uid,u.uname from plus_user.tb_baojigroup_usr bu,plus_user.tb_user_inf u
        where bu.uid = u.uid
          and bu.baoji_id = #{id}
          and u.uid>100
    </select>
</mapper>
src/main/resources/mapper/PermitGroupUserMapper.xml
New file
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.whyc.mapper.PermitGroupUserMapper" >
    <select id="getPermitByUser" resultType="com.whyc.pojo.plus_user.PermitGroup">
        select distinct tb_user_permitgroup.num,permit_group_name,tb_user_permitgroup.permit_group_id,permit_item_name,permit_item_value
        from plus_user.tb_user_permitgroup,plus_user.tb_user_permitgroup_data
        where tb_user_permitgroup.permit_group_id=tb_user_permitgroup_data.permit_group_id
        and tb_user_permitgroup_data.uid=#{userId}
        and tb_user_permitgroup.permit_item_value=1
    </select>
    <select id="getUserInf" resultType="com.whyc.pojo.plus_user.UserInf">
        select u.* from plus_user.tb_user_permitgroup_data d,plus_user.tb_user_inf u
        where u.uid = d.uid
        and d.permit_group_id = #{permitGroupId}
    </select>
    <select id="getItemList" resultType="java.lang.String">
        select  tb_user_permitgroup.permit_item_name
        from plus_user.tb_user_permitgroup,plus_user.tb_user_permitgroup_data
        <where>
         tb_user_permitgroup.permit_group_id=tb_user_permitgroup_data.permit_group_id
        <if test="uid>100">
            and tb_user_permitgroup_data.uid=#{uid}
        </if>
        and tb_user_permitgroup.permit_item_value=1
        </where>
    </select>
    <select id="getAllPermitList" resultType="com.whyc.pojo.plus_user.PermitGroup">
        select  distinct  tb_user_permitgroup.num,permit_group_name,tb_user_permitgroup.permit_group_id,permit_item_name,permit_item_value
        from plus_user.tb_user_permitgroup,plus_user.tb_user_permitgroup_data
        where tb_user_permitgroup.permit_group_id=tb_user_permitgroup_data.permit_group_id
    </select>
</mapper>
src/main/resources/mapper/PowerInfMapper.xml
New file
@@ -0,0 +1,10 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.whyc.mapper.PowerInfMapper">
    <select id="getPowerList" resultType="com.whyc.pojo.db_station.PowerInf">
        select tb_power_inf.*,tb_station_inf.station_name
        from db_station.tb_power_inf,db_station.tb_station_inf
        where tb_power_inf.station_id=tb_station_inf.station_id
        order by tb_power_inf.num asc
    </select>
</mapper>
src/main/resources/mapper/StationInfMapper.xml
New file
@@ -0,0 +1,133 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.whyc.mapper.StationInfMapper">
    <select id="getMaxStationNum" resultType="java.lang.Integer">
        select ifnull(max(station_num),0) from  db_station.tb_station_inf where station_id>0;
    </select>
    <resultMap id="name1List" type="provice">
        <result property="provice" column="provice" ></result>
        <collection property="cityList" javaType="java.util.ArrayList" ofType="com.whyc.dto.Station.City" column="{provice=provice}" select="selectCity">
        </collection>
    </resultMap>
    <select id="getLeftStation" resultMap="name1List">
          select distinct provice from db_station.tb_station_inf
          where station_id in(
              select distinct station_id from db_user.tb_user_baojigroup_power,db_user.tb_baojigroup_usr
              <where>
                  tb_user_baojigroup_power.baoji_id=tb_baojigroup_usr.baoji_id
                  <if test="uid>100">
                      and tb_baojigroup_usr.uid=#{uid}
                  </if>
              </where>
              )
    </select>
    <resultMap id="name2List" type="city">
        <result property="provice" column="provice"></result>
        <result property="city" column="city" ></result>
        <collection property="countryList" javaType="java.util.ArrayList" ofType="com.whyc.dto.Station.Country" column="{provice=provice,city=city}" select="selectCountry">
        </collection>
    </resultMap>
    <select id="selectCity" resultMap="name2List">
        SELECT distinct #{provice} as provice,city from  db_station.tb_station_inf
        where provice=#{provice}
    </select>
    <resultMap id="name3List" type="country">
        <result property="provice" column="provice"></result>
        <result property="city" column="city" ></result>
        <result property="country" column="country" ></result>
        <collection property="stationList" javaType="java.util.ArrayList" ofType="com.whyc.dto.Station.Station" column="{provice=provice,city=city,country=country}" select="selectStation">
        </collection>
    </resultMap>
    <select id="selectCountry" resultMap="name3List">
        SELECT distinct #{provice} as provice, #{city} as city,country from  db_station.tb_station_inf
        where provice=#{provice} and city=#{city}
    </select>
    <resultMap id="name4List" type="station">
        <result property="provice" column="provice"></result>
        <result property="city" column="city" ></result>
        <result property="country" column="country" ></result>
        <result property="stationName" column="station_name" ></result>
        <result property="stationId" column="station_id" ></result>
    </resultMap>
    <select id="selectStation" resultMap="name4List">
        SELECT distinct #{provice} as provice, #{city} as city, #{country} as country,station_name,station_id from  db_station.tb_station_inf
        where provice=#{provice} and city=#{city} and country=#{country}
    </select>
    <select id="getProviceByUid" resultType="java.lang.String">
        select distinct provice from db_station.tb_station_inf
        where tb_station_inf.station_id in(
            select distinct station_id from db_user.tb_user_baojigroup_power,db_user.tb_baojigroup_usr
            <where>
                tb_user_baojigroup_power.baoji_id=tb_baojigroup_usr.baoji_id
                <if test="uid>100">
                    and tb_baojigroup_usr.uid=#{uid}
                </if>
            </where>
        )
    </select>
    <select id="getCityByUid" resultType="java.lang.String">
        select distinct city from db_station.tb_station_inf
        <where>
            <if test="provice!=null">
                and provice=#{provice}
            </if>
              and tb_station_inf.station_id in(
                        select distinct station_id from db_user.tb_user_baojigroup_power,db_user.tb_baojigroup_usr
                        <where>
                            tb_user_baojigroup_power.baoji_id=tb_baojigroup_usr.baoji_id
                            <if test="uid>100">
                                and tb_baojigroup_usr.uid=#{uid}
                            </if>
                        </where>
                        )
        </where>
    </select>
    <select id="getCountryByUid" resultType="java.lang.String">
        select distinct country from db_station.tb_station_inf
        <where>
            <if test="provice!=null">
                and provice=#{provice}
            </if>
            <if test="city!=null">
                and city=#{city}
            </if>
            and tb_station_inf.station_id in(
            select distinct station_id from db_user.tb_user_baojigroup_power,db_user.tb_baojigroup_usr
            <where>
                tb_user_baojigroup_power.baoji_id=tb_baojigroup_usr.baoji_id
                <if test="uid>100">
                    and tb_baojigroup_usr.uid=#{uid}
                </if>
            </where>
            )
        </where>
    </select>
    <select id="getStationByUid" resultType="java.lang.String">
        select distinct station_name from db_station.tb_station_inf
        <where>
            <if test="provice!=null">
                and provice=#{provice}
            </if>
            <if test="city!=null">
                and city=#{city}
            </if>
            <if test="country!=null">
                and country=#{country}
            </if>
            and tb_station_inf.station_id in(
            select distinct station_id from db_user.tb_user_baojigroup_power,db_user.tb_baojigroup_usr
            <where>
                tb_user_baojigroup_power.baoji_id=tb_baojigroup_usr.baoji_id
                <if test="uid>100">
                    and tb_baojigroup_usr.uid=#{uid}
                </if>
            </where>
            )
        </where>
    </select>
</mapper>
src/main/resources/mapper/UserMapper.xml
@@ -3,7 +3,23 @@
<mapper namespace="com.whyc.mapper.UserMapper" >
    <select id="addJudge" resultType="int">
        select count(id) as nums from db_battery_gwm.tb_user where name=#{name} or phone_number=#{phoneNumber} limit 1
        select count(id) as nums from db_user.tb_user where name=#{name} or phone_number=#{phoneNumber} limit 1
    </select>
    <select id="getBaojiUserByUid" resultType="com.whyc.pojo.db_user.User">
        SELECT id,uname FROM  db_user.tb_user
        <where>
            id>100 and
            id in(
            select distinct uid from  db_user.tb_baojigroup_usr
            <where>
                baoji_id in(
                <foreach collection="baojiIdList" item="baojiId" open="(" separator="," close=")">
                    #{baojiId}
                </foreach>
                )
            </where>
            )
        </where>
    </select>
</mapper>