【admin】新增# 1、新增客户站点管理、新增、列表、编辑、批量删除
parent
de487cf3ac
commit
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.setCreateTimeEndLong(TimeUtil.dateToTimestamp(equipmentParam.getCreateTimeEnd()));
|
||||
|
||||
|
||||
|
||||
Page<EquipmentDto> iPage = equipmentMapper.pageList(new Page<>(page, limit), equipmentDto);
|
||||
|
||||
Map<Long, String> regionMap = regionService.getRegionMap();//获取省市区
|
||||
|
@ -164,7 +162,7 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
|||
if(count > 0){
|
||||
throw new OperateException("设备编号不可重复!");
|
||||
}
|
||||
|
||||
model.setClientSiteId(equipmentParam.getClientSiteId()); // 站点id
|
||||
model.setClientId(equipmentParam.getClientId());//客户id
|
||||
model.setName(equipmentParam.getName());
|
||||
model.setModel(equipmentParam.getModel()); // 设备型号
|
||||
|
@ -211,6 +209,7 @@ public class EquipmentServiceImpl implements IEquipmentService {
|
|||
if(count > 0){
|
||||
throw new OperateException("设备编号不可重复!");
|
||||
}
|
||||
model.setClientSiteId(equipmentParam.getClientSiteId());
|
||||
model.setName(equipmentParam.getName());
|
||||
model.setModel(equipmentParam.getModel());
|
||||
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 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 String deviceCode; // 设备码
|
||||
private String clientName; // 客户名称
|
||||
private Long clientSiteId; // 站点id
|
||||
private String siteName; // 站点名称
|
||||
|
||||
}
|
||||
|
|
|
@ -38,4 +38,6 @@ public class EquipmentListVo implements Serializable {
|
|||
private String clientName; // 客户名称
|
||||
private String shortName; // 客户简称
|
||||
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 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 updateTime; // 更新时间
|
||||
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 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
|
||||
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
|
||||
e.is_delete = 0
|
||||
<if test="form.number != null and form.number != ''">
|
||||
and e.number like concat('%', #{form.number}, '%')
|
||||
</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 != ''">
|
||||
and e.name like concat('%', #{form.name}, '%')
|
||||
</if>
|
||||
|
|
Loading…
Reference in New Issue