Compare commits
1 Commits
Author | SHA1 | Date |
---|---|---|
|
fd0df4fe69 |
|
@ -0,0 +1,99 @@
|
||||||
|
package com.hcy.admin.controller.client;
|
||||||
|
|
||||||
|
import com.hcy.admin.config.aop.Log;
|
||||||
|
|
||||||
|
import com.hcy.admin.service.client.IClientSiteService;
|
||||||
|
import com.hcy.admin.validate.client.ClientSiteParam;
|
||||||
|
import com.hcy.admin.validate.common.PageParam;
|
||||||
|
|
||||||
|
import com.hcy.admin.vo.client.ClientSiteDetailVo;
|
||||||
|
import com.hcy.admin.vo.client.ClientSiteListVo;
|
||||||
|
import com.hcy.common.core.AjaxResult;
|
||||||
|
|
||||||
|
import com.hcy.common.validator.annotation.IDMust;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点管理
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("api/clientSite")
|
||||||
|
public class ClientSiteController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
IClientSiteService iClientSiteService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点列表
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param pageParam 分页参数
|
||||||
|
* @param clientSiteParam 搜索参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@GetMapping("/list")
|
||||||
|
public Object list(@Validated PageParam pageParam,
|
||||||
|
ClientSiteParam clientSiteParam) {
|
||||||
|
List<ClientSiteListVo> list = iClientSiteService.list(pageParam, clientSiteParam);
|
||||||
|
return AjaxResult.success(list);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* 站点详情
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param id 主键ID
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@GetMapping("/detail")
|
||||||
|
public Object detail(@Validated @IDMust() @RequestParam("id") Integer id) {
|
||||||
|
ClientSiteDetailVo detail = iClientSiteService.detail(id);
|
||||||
|
return AjaxResult.success(detail);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点新增
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param clientSiteParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@Log(title = "站点新增")
|
||||||
|
@PostMapping("/add")
|
||||||
|
public Object add(@Validated(value = ClientSiteParam.create.class) @RequestBody ClientSiteParam clientSiteParam) {
|
||||||
|
iClientSiteService.add(clientSiteParam);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点编辑
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param clientSiteParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@Log(title = "站点编辑")
|
||||||
|
@PostMapping("/edit")
|
||||||
|
public Object edit(@Validated(value = ClientSiteParam.update.class) @RequestBody ClientSiteParam clientSiteParam) {
|
||||||
|
iClientSiteService.edit(clientSiteParam);
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点删除
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param clientSiteParam 参数
|
||||||
|
* @return Object
|
||||||
|
*/
|
||||||
|
@Log(title = "站点删除")
|
||||||
|
@PostMapping("/del")
|
||||||
|
public Object del(@RequestBody ClientSiteParam clientSiteParam) {
|
||||||
|
iClientSiteService.del(clientSiteParam.getIds());
|
||||||
|
return AjaxResult.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
package com.hcy.admin.service.client;
|
||||||
|
|
||||||
|
import com.hcy.admin.validate.client.ClientSiteParam;
|
||||||
|
import com.hcy.admin.validate.common.PageParam;
|
||||||
|
import com.hcy.admin.vo.client.ClientSiteDetailVo;
|
||||||
|
import com.hcy.admin.vo.client.ClientSiteListVo;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点服务接口类
|
||||||
|
*/
|
||||||
|
public interface IClientSiteService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点列表
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param pageParam 分页参数
|
||||||
|
* @param clientSiteParam 搜索参数
|
||||||
|
* @return PageResult<SiteVo>
|
||||||
|
*/
|
||||||
|
List<ClientSiteListVo> list(PageParam pageParam, ClientSiteParam clientSiteParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点详情
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param id 主键ID
|
||||||
|
* @return Site
|
||||||
|
*/
|
||||||
|
ClientSiteDetailVo detail(Integer id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点新增
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param clientSiteParam 参数
|
||||||
|
*/
|
||||||
|
void add(ClientSiteParam clientSiteParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点编辑
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param clientSiteParam 参数
|
||||||
|
*/
|
||||||
|
void edit(ClientSiteParam clientSiteParam);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点删除
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param ids 主键ID
|
||||||
|
*/
|
||||||
|
void del(List<Integer> ids);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,218 @@
|
||||||
|
package com.hcy.admin.service.client.impl;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import com.hcy.admin.AdminThreadLocal;
|
||||||
|
import com.hcy.admin.service.client.IClientSiteService;
|
||||||
|
import com.hcy.admin.service.region.IDevRegionService;
|
||||||
|
import com.hcy.admin.validate.client.ClientSiteParam;
|
||||||
|
import com.hcy.admin.validate.common.PageParam;
|
||||||
|
import com.hcy.admin.vo.client.EquipmentListVo;
|
||||||
|
import com.hcy.admin.vo.client.EquipmentModelDetailVo;
|
||||||
|
import com.hcy.admin.vo.client.ClientSiteDetailVo;
|
||||||
|
import com.hcy.admin.vo.client.ClientSiteListVo;
|
||||||
|
import com.hcy.common.constant.GlobalConstant;
|
||||||
|
import com.hcy.common.dto.ClientSiteDto;
|
||||||
|
import com.hcy.common.entity.client.Client;
|
||||||
|
import com.hcy.common.entity.client.Equipment;
|
||||||
|
import com.hcy.common.entity.client.EquipmentModel;
|
||||||
|
import com.hcy.common.entity.client.ClientSite;
|
||||||
|
import com.hcy.common.entity.user.User;
|
||||||
|
import com.hcy.common.mapper.client.ClientMapper;
|
||||||
|
import com.hcy.common.mapper.client.EquipmentMapper;
|
||||||
|
import com.hcy.common.mapper.client.EquipmentModelMapper;
|
||||||
|
import com.hcy.common.mapper.client.ClientSiteMapper;
|
||||||
|
import com.hcy.common.mapper.user.UserMapper;
|
||||||
|
import org.springframework.beans.BeanUtils;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.Assert;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点实现类
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class ClientSiteServiceImpl implements IClientSiteService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
ClientSiteMapper clientSiteMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
IDevRegionService regionService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
EquipmentMapper equipmentMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
ClientMapper clientMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
EquipmentModelMapper equipmentModelMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
UserMapper userMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点列表
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param pageParam 分页参数
|
||||||
|
* @param clientSiteParam 搜索参数
|
||||||
|
* @return PageResult<SiteListVo>
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public List<ClientSiteListVo> list(PageParam pageParam, ClientSiteParam clientSiteParam) {
|
||||||
|
Integer page = pageParam.getPageNo();
|
||||||
|
Integer limit = pageParam.getPageSize();
|
||||||
|
|
||||||
|
ClientSiteDto clientSiteDto = new ClientSiteDto();
|
||||||
|
BeanUtils.copyProperties(clientSiteParam, clientSiteDto);
|
||||||
|
|
||||||
|
List<ClientSiteDto> clientSiteDtos = clientSiteMapper.siteEquipmentList(clientSiteDto);
|
||||||
|
|
||||||
|
List<ClientSiteListVo> list = new LinkedList<>();
|
||||||
|
for(ClientSiteDto item : clientSiteDtos) {
|
||||||
|
ClientSiteListVo vo = new ClientSiteListVo();
|
||||||
|
BeanUtils.copyProperties(item, vo);
|
||||||
|
|
||||||
|
// 获取设备列表
|
||||||
|
List<Equipment> equipment = equipmentMapper.selectList(new LambdaQueryWrapper<Equipment>()
|
||||||
|
.eq(Equipment::getIsDelete, GlobalConstant.NOT_DELETE)
|
||||||
|
.eq(Equipment::getClientSiteId, item.getId()));
|
||||||
|
|
||||||
|
Map<Long, String> regionMap = regionService.getRegionMap();//获取省市区
|
||||||
|
List<EquipmentListVo> equipmentList = new LinkedList<>();
|
||||||
|
if(equipment != null){
|
||||||
|
for (Equipment equipmentItem : equipment) {
|
||||||
|
EquipmentListVo equipmentListVo = new EquipmentListVo();
|
||||||
|
BeanUtils.copyProperties(equipmentItem, equipmentListVo);
|
||||||
|
|
||||||
|
equipmentListVo.setProvince(regionMap.get(equipmentListVo.getProvinceId()));
|
||||||
|
equipmentListVo.setCity(regionMap.get(equipmentListVo.getCityId()));
|
||||||
|
equipmentListVo.setDistrict(regionMap.get(equipmentListVo.getDistrictId()));
|
||||||
|
//获取客户名称
|
||||||
|
Client client = clientMapper.selectOne(
|
||||||
|
new QueryWrapper<Client>()
|
||||||
|
.eq("id", equipmentItem.getClientId())
|
||||||
|
.last("limit 1"));
|
||||||
|
if (client != null){
|
||||||
|
equipmentListVo.setClientName(client.getClientName());
|
||||||
|
}
|
||||||
|
|
||||||
|
//设置设备模块信息
|
||||||
|
EquipmentModel equipmentModel = equipmentModelMapper.findEquipmentModelByEquipmentId(vo.getId());
|
||||||
|
EquipmentModelDetailVo equipmentModelDetailVo = new EquipmentModelDetailVo();
|
||||||
|
if(equipmentModel != null){
|
||||||
|
BeanUtils.copyProperties(equipmentModel, equipmentModelDetailVo);
|
||||||
|
|
||||||
|
User insetallUser = userMapper.selectById(equipmentModel.getUserId());
|
||||||
|
if(insetallUser != null){
|
||||||
|
equipmentModelDetailVo.setInstallationName(insetallUser.getUsername());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//设置设备模块信息
|
||||||
|
equipmentListVo.setEquipmentModel(equipmentModelDetailVo);
|
||||||
|
equipmentList.add(equipmentListVo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
vo.setEquipmentList(equipmentList);
|
||||||
|
list.add(vo);
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点详情
|
||||||
|
*
|
||||||
|
* @param id 主键参数
|
||||||
|
* @return Site
|
||||||
|
* @author hcy
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public ClientSiteDetailVo detail(Integer id) {
|
||||||
|
ClientSite model = clientSiteMapper.selectOne(
|
||||||
|
new QueryWrapper<ClientSite>()
|
||||||
|
.eq("id", id)
|
||||||
|
.eq("is_delete", 0)
|
||||||
|
.last("limit 1"));
|
||||||
|
|
||||||
|
Assert.notNull(model, "数据不存在");
|
||||||
|
|
||||||
|
ClientSiteDetailVo vo = new ClientSiteDetailVo();
|
||||||
|
BeanUtils.copyProperties(model, vo);
|
||||||
|
return vo;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点新增
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param clientSiteParam 参数
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void add(ClientSiteParam clientSiteParam) {
|
||||||
|
ClientSite model = new ClientSite();
|
||||||
|
model.setClientId(clientSiteParam.getClientId()); // 客户id
|
||||||
|
model.setSiteName(clientSiteParam.getSiteName()); // 站点名称
|
||||||
|
model.setLongitude(clientSiteParam.getLongitude()); // 经度
|
||||||
|
model.setLatitude(clientSiteParam.getLatitude()); // 纬度
|
||||||
|
model.setProvinceId(clientSiteParam.getProvinceId()); // 省id
|
||||||
|
model.setDistrictId(clientSiteParam.getDistrictId()); // 区id
|
||||||
|
model.setCityId(clientSiteParam.getCityId()); // 市id
|
||||||
|
model.setDetailedAddress(clientSiteParam.getDetailedAddress()); // 详细地址
|
||||||
|
model.setCreatorId(AdminThreadLocal.getAdminId().longValue()); // 创建人id
|
||||||
|
clientSiteMapper.insert(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点编辑
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param clientSiteParam 参数
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void edit(ClientSiteParam clientSiteParam) {
|
||||||
|
ClientSite model = clientSiteMapper.selectOne(
|
||||||
|
new QueryWrapper<ClientSite>()
|
||||||
|
.eq("id", clientSiteParam.getId())
|
||||||
|
.eq("is_delete", 0)
|
||||||
|
.last("limit 1"));
|
||||||
|
|
||||||
|
Assert.notNull(model, "数据不存在!");
|
||||||
|
|
||||||
|
model.setClientId(clientSiteParam.getClientId()); // 客户id
|
||||||
|
model.setSiteName(clientSiteParam.getSiteName()); // 站点名称
|
||||||
|
model.setLongitude(clientSiteParam.getLongitude()); // 经度
|
||||||
|
model.setLatitude(clientSiteParam.getLatitude()); // 纬度
|
||||||
|
model.setProvinceId(clientSiteParam.getProvinceId()); // 省id
|
||||||
|
model.setDistrictId(clientSiteParam.getDistrictId()); // 区id
|
||||||
|
model.setCityId(clientSiteParam.getCityId()); // 市id
|
||||||
|
model.setDetailedAddress(clientSiteParam.getDetailedAddress()); // 详细地址
|
||||||
|
|
||||||
|
clientSiteMapper.updateById(model);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点删除
|
||||||
|
*
|
||||||
|
* @author hcy
|
||||||
|
* @param ids 主键ID
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void del(List<Integer> ids) {
|
||||||
|
List<ClientSite> model = clientSiteMapper.selectList(
|
||||||
|
new LambdaQueryWrapper<ClientSite>()
|
||||||
|
.in(ClientSite::getId, ids));
|
||||||
|
Assert.notNull(model, "数据不存在!");
|
||||||
|
|
||||||
|
for (ClientSite clientSite : model) {
|
||||||
|
clientSite.setIsDelete(GlobalConstant.DELETE);
|
||||||
|
clientSiteMapper.updateById(clientSite);// 进行伪删除 根据id把is_delete修改成1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -78,8 +78,6 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
||||||
equipmentDto.setCreateTimeStartLong(TimeUtil.dateToTimestamp(equipmentParam.getCreateTimeStart()));
|
equipmentDto.setCreateTimeStartLong(TimeUtil.dateToTimestamp(equipmentParam.getCreateTimeStart()));
|
||||||
equipmentDto.setCreateTimeEndLong(TimeUtil.dateToTimestamp(equipmentParam.getCreateTimeEnd()));
|
equipmentDto.setCreateTimeEndLong(TimeUtil.dateToTimestamp(equipmentParam.getCreateTimeEnd()));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Page<EquipmentDto> iPage = equipmentMapper.pageList(new Page<>(page, limit), equipmentDto);
|
Page<EquipmentDto> iPage = equipmentMapper.pageList(new Page<>(page, limit), equipmentDto);
|
||||||
|
|
||||||
Map<Long, String> regionMap = regionService.getRegionMap();//获取省市区
|
Map<Long, String> regionMap = regionService.getRegionMap();//获取省市区
|
||||||
|
@ -164,7 +162,7 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
||||||
if(count > 0){
|
if(count > 0){
|
||||||
throw new OperateException("设备编号不可重复!");
|
throw new OperateException("设备编号不可重复!");
|
||||||
}
|
}
|
||||||
|
model.setClientSiteId(equipmentParam.getClientSiteId()); // 站点id
|
||||||
model.setClientId(equipmentParam.getClientId());//客户id
|
model.setClientId(equipmentParam.getClientId());//客户id
|
||||||
model.setName(equipmentParam.getName());
|
model.setName(equipmentParam.getName());
|
||||||
model.setModel(equipmentParam.getModel()); // 设备型号
|
model.setModel(equipmentParam.getModel()); // 设备型号
|
||||||
|
@ -211,6 +209,7 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
||||||
if(count > 0){
|
if(count > 0){
|
||||||
throw new OperateException("设备编号不可重复!");
|
throw new OperateException("设备编号不可重复!");
|
||||||
}
|
}
|
||||||
|
model.setClientSiteId(equipmentParam.getClientSiteId());
|
||||||
model.setName(equipmentParam.getName());
|
model.setName(equipmentParam.getName());
|
||||||
model.setModel(equipmentParam.getModel());
|
model.setModel(equipmentParam.getModel());
|
||||||
model.setManufacturers(equipmentParam.getManufacturers());
|
model.setManufacturers(equipmentParam.getManufacturers());
|
||||||
|
|
|
@ -0,0 +1,67 @@
|
||||||
|
package com.hcy.admin.validate.client;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
import org.hibernate.validator.constraints.Length;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点参数
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class ClientSiteParam implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
public interface create{}
|
||||||
|
public interface update{}
|
||||||
|
public interface delete{}
|
||||||
|
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@NotNull(message = "clientId参数缺失", groups = {create.class, update.class})
|
||||||
|
@DecimalMin(value = "0", message = "clientId参数值不能少于0", groups = {create.class, update.class})
|
||||||
|
private Long clientId;
|
||||||
|
|
||||||
|
@NotNull(message = "siteName参数缺失", groups = {create.class, update.class})
|
||||||
|
@Length(max = 50, message = "siteName参数不能超出50个字符", groups = {create.class, update.class})
|
||||||
|
private String siteName;
|
||||||
|
|
||||||
|
@NotNull(message = "longitude参数缺失", groups = {create.class, update.class})
|
||||||
|
@Length(max = 24, message = "longitude参数不能超出24个字符", groups = {create.class, update.class})
|
||||||
|
private String longitude;
|
||||||
|
|
||||||
|
@NotNull(message = "latitude参数缺失", groups = {create.class, update.class})
|
||||||
|
@Length(max = 24, message = "latitude参数不能超出24个字符", groups = {create.class, update.class})
|
||||||
|
private String latitude;
|
||||||
|
|
||||||
|
@NotNull(message = "provinceId参数缺失", groups = {create.class, update.class})
|
||||||
|
@DecimalMin(value = "0", message = "provinceId参数值不能少于0", groups = {create.class, update.class})
|
||||||
|
private Long provinceId;
|
||||||
|
|
||||||
|
@NotNull(message = "districtId参数缺失", groups = {create.class, update.class})
|
||||||
|
@DecimalMin(value = "0", message = "districtId参数值不能少于0", groups = {create.class, update.class})
|
||||||
|
private Long districtId;
|
||||||
|
|
||||||
|
@NotNull(message = "cityId参数缺失", groups = {create.class, update.class})
|
||||||
|
@DecimalMin(value = "0", message = "cityId参数值不能少于0", groups = {create.class, update.class})
|
||||||
|
private Long cityId;
|
||||||
|
|
||||||
|
@NotNull(message = "detailedAddress参数缺失", groups = {create.class, update.class})
|
||||||
|
@Length(max = 255, message = "detailedAddress参数不能超出255个字符", groups = {create.class, update.class})
|
||||||
|
private String detailedAddress;
|
||||||
|
|
||||||
|
@DecimalMin(value = "0", message = "creatorId参数值不能少于0", groups = {create.class, update.class})
|
||||||
|
private Long creatorId;
|
||||||
|
|
||||||
|
private List<Integer> ids; //批量删除
|
||||||
|
|
||||||
|
}
|
|
@ -84,4 +84,7 @@ public class EquipmentParam implements Serializable {
|
||||||
|
|
||||||
private String createTimeStart; // 开始时间
|
private String createTimeStart; // 开始时间
|
||||||
private String createTimeEnd; // 结束时间
|
private String createTimeEnd; // 结束时间
|
||||||
|
|
||||||
|
private Long clientSiteId; // 站点id
|
||||||
|
private String siteName; // 站点名称
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.hcy.admin.vo.client;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SiteVo
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ClientSiteDetailVo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id; // 主键id
|
||||||
|
private Long clientId; // 客户id
|
||||||
|
private String siteName; // 站点名称
|
||||||
|
private String longitude; // 经度
|
||||||
|
private String latitude; // 纬度
|
||||||
|
private Long provinceId; // 省id
|
||||||
|
private Long districtId; // 区id
|
||||||
|
private Long cityId; // 市id
|
||||||
|
private String detailedAddress; // 详细地址
|
||||||
|
private Long creatorId; // 创建人id
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.hcy.admin.vo.client;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* SiteVo
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ClientSiteListVo implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id; // 主键id
|
||||||
|
private Long clientId; // 客户id
|
||||||
|
private String siteName; // 站点名称
|
||||||
|
private String longitude; // 经度
|
||||||
|
private String latitude; // 纬度
|
||||||
|
private Long provinceId; // 省id
|
||||||
|
private Long districtId; // 区id
|
||||||
|
private Long cityId; // 市id
|
||||||
|
private String detailedAddress; // 详细地址
|
||||||
|
private Long creatorId; // 创建人id
|
||||||
|
private String createTime; // 创建时间
|
||||||
|
|
||||||
|
private Integer equipmentCount; // 设备总数
|
||||||
|
private Integer normalCount; // 设备正常数量
|
||||||
|
private Integer underOverhaulCount; // 设备检修中数量
|
||||||
|
private Integer underWarrantyCount; // 设备报修中数量
|
||||||
|
private List<EquipmentListVo> equipmentList; // 设备列表
|
||||||
|
}
|
|
@ -34,4 +34,7 @@ public class EquipmentDetailVo implements Serializable {
|
||||||
private Integer dailyAudit; // 每隔几天巡检
|
private Integer dailyAudit; // 每隔几天巡检
|
||||||
private String deviceCode; // 设备码
|
private String deviceCode; // 设备码
|
||||||
private String clientName; // 客户名称
|
private String clientName; // 客户名称
|
||||||
|
private Long clientSiteId; // 站点id
|
||||||
|
private String siteName; // 站点名称
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -38,4 +38,6 @@ public class EquipmentListVo implements Serializable {
|
||||||
private String clientName; // 客户名称
|
private String clientName; // 客户名称
|
||||||
private String shortName; // 客户简称
|
private String shortName; // 客户简称
|
||||||
private EquipmentModelDetailVo equipmentModel; //设备模块信息
|
private EquipmentModelDetailVo equipmentModel; //设备模块信息
|
||||||
|
private Long clientSiteId; // 站点id
|
||||||
|
private String siteName; // 站点名称
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,37 @@
|
||||||
|
package com.hcy.common.dto;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点实体
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ClientSiteDto implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value="id", type= IdType.AUTO)
|
||||||
|
private Long id; // 主键id
|
||||||
|
private Long clientId; // 客户id
|
||||||
|
private String siteName; // 站点名称
|
||||||
|
private String longitude; // 经度
|
||||||
|
private String latitude; // 纬度
|
||||||
|
private Long provinceId; // 省id
|
||||||
|
private Long districtId; // 区id
|
||||||
|
private Long cityId; // 市id
|
||||||
|
private String detailedAddress; // 详细地址
|
||||||
|
private Long creatorId; // 创建人id
|
||||||
|
private Date createTime; // 创建时间
|
||||||
|
private Date updateTime; // 更新时间
|
||||||
|
private Integer isDelete; // 是否删除 0-未删除 1-删除
|
||||||
|
|
||||||
|
private Integer equipmentCount; // 设备总数
|
||||||
|
private Integer normalCount; // 设备正常数量
|
||||||
|
private Integer underOverhaulCount; // 设备检修中数量
|
||||||
|
private Integer underWarrantyCount; // 设备报修中数量
|
||||||
|
}
|
|
@ -43,4 +43,7 @@ public class EquipmentDto implements Serializable {
|
||||||
|
|
||||||
private Long createTimeStartLong; // 开始时间
|
private Long createTimeStartLong; // 开始时间
|
||||||
private Long createTimeEndLong; // 结束时间
|
private Long createTimeEndLong; // 结束时间
|
||||||
|
|
||||||
|
private Long clientSiteId; // 站点id
|
||||||
|
private String siteName; // 站点名称
|
||||||
}
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.hcy.common.entity.client;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.IdType;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点实体
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ClientSite implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableId(value="id", type= IdType.AUTO)
|
||||||
|
private Long id; // 主键id
|
||||||
|
private Long clientId; // 客户id
|
||||||
|
private String siteName; // 站点名称
|
||||||
|
private String longitude; // 经度
|
||||||
|
private String latitude; // 纬度
|
||||||
|
private Long provinceId; // 省id
|
||||||
|
private Long districtId; // 区id
|
||||||
|
private Long cityId; // 市id
|
||||||
|
private String detailedAddress; // 详细地址
|
||||||
|
private Long creatorId; // 创建人id
|
||||||
|
private Date createTime; // 创建时间
|
||||||
|
private Date updateTime; // 更新时间
|
||||||
|
private Integer isDelete; // 是否删除 0-未删除 1-删除
|
||||||
|
|
||||||
|
}
|
|
@ -39,4 +39,7 @@ public class Equipment implements Serializable {
|
||||||
private Long createTime; // 创建时间
|
private Long createTime; // 创建时间
|
||||||
private Long updateTime; // 更新时间
|
private Long updateTime; // 更新时间
|
||||||
private Long deleteTime; // 删除时间
|
private Long deleteTime; // 删除时间
|
||||||
|
|
||||||
|
private Long clientSiteId; // 站点id
|
||||||
|
|
||||||
}
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.hcy.common.mapper.client;
|
||||||
|
|
||||||
|
|
||||||
|
import com.hcy.common.core.basics.IBaseMapper;
|
||||||
|
import com.hcy.common.dto.ClientSiteDto;
|
||||||
|
import com.hcy.common.entity.client.ClientSite;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 站点Mapper
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ClientSiteMapper extends IBaseMapper<ClientSite> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询站点名称、设备总数、设备状态正常总数,报修中总数,检修中总数
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<ClientSiteDto> siteEquipmentList(@Param("form") ClientSiteDto form);
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
<?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.hcy.common.mapper.client.ClientSiteMapper">
|
||||||
|
<!-- 通用查询映射结果 -->
|
||||||
|
<resultMap id="BaseResultMap" type="com.hcy.common.entity.client.ClientSite">
|
||||||
|
</resultMap>
|
||||||
|
|
||||||
|
<select id="siteEquipmentList" resultType="com.hcy.common.dto.ClientSiteDto">
|
||||||
|
SELECT
|
||||||
|
ls.*,
|
||||||
|
COUNT( le.id ) AS equipmentCount,
|
||||||
|
SUM( CASE WHEN le.device_status = 1 THEN 1 ELSE 0 END ) AS normalCount,
|
||||||
|
SUM( CASE WHEN le.device_status = 2 THEN 1 ELSE 0 END ) AS underOverhaulCount,
|
||||||
|
SUM( CASE WHEN le.device_status = 3 THEN 1 ELSE 0 END ) AS underWarrantyCount
|
||||||
|
FROM
|
||||||
|
la_client_site AS ls
|
||||||
|
LEFT JOIN la_equipment AS le ON le.client_site_id = ls.id AND le.is_delete = 0
|
||||||
|
WHERE
|
||||||
|
ls.is_delete = 0
|
||||||
|
<if test="form.clientId != null">
|
||||||
|
and ls.client_id = #{form.clientId}
|
||||||
|
</if>
|
||||||
|
<if test="form.siteName != null and form.siteName != ''">
|
||||||
|
and ls.site_name like concat('%', #{form.siteName}, '%')
|
||||||
|
</if>
|
||||||
|
GROUP BY
|
||||||
|
ls.id
|
||||||
|
ORDER BY
|
||||||
|
equipmentCount DESC
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</mapper>
|
|
@ -44,14 +44,18 @@
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="pageList" resultType="com.hcy.common.dto.EquipmentDto">
|
<select id="pageList" resultType="com.hcy.common.dto.EquipmentDto">
|
||||||
select e.*,c.client_name as clientName
|
select e.*,c.client_name as clientName,s.site_name as siteName
|
||||||
from la_equipment as e
|
from la_equipment as e
|
||||||
LEFT JOIN la_client AS c ON e.client_id = c.id
|
LEFT JOIN la_client AS c ON e.client_id = c.id
|
||||||
|
LEFT JOIN la_client_site AS s ON e.client_site_id = s.id
|
||||||
where
|
where
|
||||||
e.is_delete = 0
|
e.is_delete = 0
|
||||||
<if test="form.number != null and form.number != ''">
|
<if test="form.number != null and form.number != ''">
|
||||||
and e.number like concat('%', #{form.number}, '%')
|
and e.number like concat('%', #{form.number}, '%')
|
||||||
</if>
|
</if>
|
||||||
|
<if test="form.siteName != null and form.siteName != ''">
|
||||||
|
and s.site_name like concat('%', #{form.siteName}, '%')
|
||||||
|
</if>
|
||||||
<if test="form.name != null and form.name != ''">
|
<if test="form.name != null and form.name != ''">
|
||||||
and e.name like concat('%', #{form.name}, '%')
|
and e.name like concat('%', #{form.name}, '%')
|
||||||
</if>
|
</if>
|
||||||
|
|
Loading…
Reference in New Issue