Commit 6b28da93 by 李小惠

Merge branch 'develop' of http://gitlab.sothing.top/843502640/jyzb_platformV2 into develop-lxh

parents a27fc08b a7f34569
......@@ -17,20 +17,14 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@NoArgsConstructor
@TableName("base_cabinet")
public class Cabinet implements Serializable {
/**
* 单警柜ID
*/
@TableId(value = "id",type = IdType.ASSIGN_UUID )
@ApiModelProperty(value = "单警柜ID")
private String id;
/**
* 单警柜编号
*/
@ApiModelProperty(value = "单警柜编号")
@TableField("cabinet_num")
private String cabinetNum;
/**
* 单警柜名称
*/
......@@ -44,7 +38,11 @@ public class Cabinet implements Serializable {
@TableField("org_id_int")
private Long orgIdInt;
/**
* 单警柜编号
*/
@TableField("cabinet_num")
private String cabinetNum;
/**
* 部门id
*/
......@@ -129,14 +127,13 @@ public class Cabinet implements Serializable {
*/
@ApiModelProperty(value = "箱数")
private Integer num;
private String policeName;
private Long policeId;
private String policeId;
private Integer number;
private String orgName;
private String boxId;
private String containType;
private String boxState;
private String equipmentConfig;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -46,95 +46,97 @@ public class CabinetBoxServiceImpl extends ServiceImpl<CabinetBoxMapper, Cabinet
@Override
@Transactional(rollbackFor = Exception.class)
public String AddOrUpdateBoxInfo(UpdateCabinetReq req) {
Cabinet cabinet = cabinetService.getOne(new LambdaQueryWrapper<Cabinet>()
.eq(Cabinet::getCabinetNum, req.getSerialNum()));
if (ObjectUtil.isNull(cabinet)) {
throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
}
List<UpdateCabinetBoxReq> addList = req.getCabinetBoxList();
List<CabinetBox> existingBoxes = list(new LambdaQueryWrapper<CabinetBox>()
.eq(CabinetBox::getCabinetId, cabinet.getId()));
Map<Integer, CabinetBox> existingBoxMap = existingBoxes.stream()
.collect(Collectors.toMap(CabinetBox::getNum, Function.identity()));
List<CabinetBox> boxListAdd = new ArrayList<>();
for (UpdateCabinetBoxReq boxReq : addList) {
CabinetBox box = new CabinetBox();
box.setCabinetId(cabinet.getId());
box.setPower(boxReq.getPower());
box.setEquipmentConfig(boxReq.getEquipmentConfig());
box.setContainType(boxReq.getContainType());
box.setState(0);
box.setBoxName(boxReq.getBoxName());
box.setNum(boxReq.getNum());
box.setUpdateTime(new Date());
// 在内存中比较是否存在相同 SerialNum 和相同 num 的数据
CabinetBox existingBox = existingBoxMap.get(boxReq.getNum());
if (existingBox != null) {
// 如果存在,则更新数据
box.setId(existingBox.getId());
updateById(box);
} else {
// 如果不存在,则新增数据
boxListAdd.add(box);
}
}
Integer num = cabinet.getNum();//获取当前柜的总数量
if (num == null) {
num = 0;
}
// 更新 Cabinet 实体
cabinet.setNum(num + addList.size());
cabinetService.updateById(cabinet);
if (req.getActionFrom().equals("platform"))//请求来源于平台,则进行推送
{
MQ.SendMsg("cabinetMsg",req.getSerialNum(),"cabinetChange");
}
// 批量保存新增的数据
saveBatch(boxListAdd);
return cabinet.getId();
// Cabinet cabinet = cabinetService.getOne(new LambdaQueryWrapper<Cabinet>()
// .eq(Cabinet::getCabinetNum, req.getSerialNum()));
// if (ObjectUtil.isNull(cabinet)) {
// throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
// }
//
// List<UpdateCabinetBoxReq> addList = req.getCabinetBoxList();
// List<CabinetBox> existingBoxes = list(new LambdaQueryWrapper<CabinetBox>()
// .eq(CabinetBox::getCabinetId, cabinet.getId()));
//
// Map<Integer, CabinetBox> existingBoxMap = existingBoxes.stream()
// .collect(Collectors.toMap(CabinetBox::getNum, Function.identity()));
//
// List<CabinetBox> boxListAdd = new ArrayList<>();
//
// for (UpdateCabinetBoxReq boxReq : addList) {
// CabinetBox box = new CabinetBox();
// box.setCabinetId(cabinet.getId());
// box.setPower(boxReq.getPower());
// box.setEquipmentConfig(boxReq.getEquipmentConfig());
// box.setContainType(boxReq.getContainType());
// box.setState(0);
// box.setBoxName(boxReq.getBoxName());
// box.setNum(boxReq.getNum());
// box.setUpdateTime(new Date());
// // 在内存中比较是否存在相同 SerialNum 和相同 num 的数据
// CabinetBox existingBox = existingBoxMap.get(boxReq.getNum());
//
// if (existingBox != null) {
// // 如果存在,则更新数据
// box.setId(existingBox.getId());
// updateById(box);
// } else {
// // 如果不存在,则新增数据
// boxListAdd.add(box);
// }
// }
//
// Integer num = cabinet.getNum();//获取当前柜的总数量
// if (num == null) {
// num = 0;
// }
//
// // 更新 Cabinet 实体
// cabinet.setNum(num + addList.size());
// cabinetService.updateById(cabinet);
//
// if (req.getActionFrom().equals("platform"))//请求来源于平台,则进行推送
// {
// MQ.SendMsg("cabinetMsg",req.getSerialNum(),"cabinetChange");
// }
// // 批量保存新增的数据
// saveBatch(boxListAdd);
//
// return cabinet.getId();
return null;
}
//删除箱门
@Override
@Transactional(rollbackFor = Exception.class)
public String DeleteBox(UpdateCabinetReq req) {
Cabinet cabinet = cabinetService.getOne(new LambdaQueryWrapper<Cabinet>()
.eq(Cabinet::getCabinetNum, req.getSerialNum()));
if (ObjectUtil.isNull(cabinet)){
throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
}
CabinetBox one = getOne(new LambdaQueryWrapper<CabinetBox>()
.eq(CabinetBox::getCabinetId, cabinet.getId())
.eq(CabinetBox::getId,req.getId()));
if (ObjectUtil.isNotNull(one)){
throw new ServiceException(CabinetBoxExceptionEnum.CABINETBOX_IS_EXISTS);
}
//添加单警柜箱门信息默认状态为0正常
List<String> boxNumList = req.getNumList();
remove(new LambdaQueryWrapper<CabinetBox>()
.eq(CabinetBox::getCabinetId, cabinet.getId())
.in(CabinetBox::getNum, boxNumList));
// 更新 Cabinet 实体的 num 字段
Integer cabinetNum = cabinet.getNum();
if (cabinetNum != null) {
cabinet.setNum(cabinetNum - boxNumList.size());
cabinetService.updateById(cabinet);
}
if (req.getActionFrom().equals("platform"))//请求来源于平台,则进行推送
{
MQ.SendMsg("cabinetMsg",req.getSerialNum(),"cabinetChange");
}
return cabinet.getId();
// Cabinet cabinet = cabinetService.getOne(new LambdaQueryWrapper<Cabinet>()
// .eq(Cabinet::getCabinetNum, req.getSerialNum()));
// if (ObjectUtil.isNull(cabinet)){
// throw new ServiceException(CabinetExceptionEnum.CABINET_ISNOT_EXISTS);
// }
// CabinetBox one = getOne(new LambdaQueryWrapper<CabinetBox>()
// .eq(CabinetBox::getCabinetId, cabinet.getId())
// .eq(CabinetBox::getId,req.getId()));
// if (ObjectUtil.isNotNull(one)){
// throw new ServiceException(CabinetBoxExceptionEnum.CABINETBOX_IS_EXISTS);
// }
// //添加单警柜箱门信息默认状态为0正常
// List<String> boxNumList = req.getNumList();
// remove(new LambdaQueryWrapper<CabinetBox>()
// .eq(CabinetBox::getCabinetId, cabinet.getId())
// .in(CabinetBox::getNum, boxNumList));
//
// // 更新 Cabinet 实体的 num 字段
// Integer cabinetNum = cabinet.getNum();
// if (cabinetNum != null) {
// cabinet.setNum(cabinetNum - boxNumList.size());
// cabinetService.updateById(cabinet);
// }
// if (req.getActionFrom().equals("platform"))//请求来源于平台,则进行推送
// {
// MQ.SendMsg("cabinetMsg",req.getSerialNum(),"cabinetChange");
// }
// return cabinet.getId();
return null;
}
//判断箱子信息是否存在
@Override
......
......@@ -185,35 +185,37 @@ public class CabinetServiceImpl extends ServiceImpl<CabinetMapper, Cabinet> impl
return new ArrayList<>();
}
for (Cabinet cabinet : list) {
CabinetDto cabinetDto = new CabinetDto();
BeanPlusUtil.copyProperties(cabinet, cabinetDto);
List<CabinetBox> list1;
list1 = cabinetBoxService.list(
new LambdaQueryWrapper<CabinetBox>()
.eq(CabinetBox::getCabinetId, cabinet.getId())
.orderByAsc(CabinetBox::getNum) // 根据 Num 字段升序排序
);
// 使用 Stream API 对数据进行分组和排序
Map<String, List<Cabinet>> groupedCabinets = list.stream()
.collect(Collectors.groupingBy(Cabinet::getId));
groupedCabinets.forEach((id, cabinets) -> {
// 对每个分组内的数据按照 num 字段升序排序
List<Cabinet> sortedCabinets = cabinets.stream()
.sorted(Comparator.comparingInt(Cabinet::getNumber))
.collect(Collectors.toList());
// 创建 CabinetDto 对象并设置属性
CabinetDto cabinetDto = new CabinetDto();
BeanPlusUtil.copyProperties(sortedCabinets.get(0), cabinetDto);
cabinetDto.setOrgId(sortedCabinets.get(0).getOrgIdInt());
cabinetDto.setOrgName(sortedCabinets.get(0).getOrgName());
List<CabinetBoxDto> cabinetBoxList = new ArrayList<>();
for (CabinetBox cabinetBox : list1) {
for (Cabinet cabinet : sortedCabinets) {
CabinetBoxDto cabinetBoxDto = new CabinetBoxDto();
BeanPlusUtil.copyProperties(cabinetBox, cabinetBoxDto);
// 查询箱门绑定的警员id和姓名
// List<Policeman> policeList=cabinetBoxPoliceMapper.selectByBoxId(cabinetBox.getId());
// if (policeList.size() != 0) {
// Policeman policeman = policeList.get(0);
// cabinetBoxDto.setPoliceId(policeman.getId());
// cabinetBoxDto.setPoliceName(policeman.getName());
// }
cabinetBoxDto.setNum(cabinetBox.getNum());
BeanPlusUtil.copyProperties(cabinet, cabinetBoxDto);
cabinetBoxDto.setNum(cabinet.getNumber());
cabinetBoxDto.setPoliceId(cabinet.getPoliceId());
cabinetBoxDto.setId(cabinet.getBoxId());
// 设置其他属性...
cabinetBoxList.add(cabinetBoxDto);
}
cabinetDto.setCabinetBoxList(cabinetBoxList);
cabinetList.add(cabinetDto); // 添加到cabinetList中
}
cabinetList.add(cabinetDto);
});
return cabinetList;
}
......
......@@ -254,7 +254,8 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
BeanPlusUtil.copyProperties(one, policemanDto);
//将箱门信息展示:
List<CabinetBoxPolice> list = cabinetBoxPoliceService.list(new LambdaQueryWrapper<CabinetBoxPolice>()
.eq(CabinetBoxPolice::getPoliceId, req.getId()));
.eq(CabinetBoxPolice::getPoliceId, req.getId())
);
List<String> soloList=new ArrayList<>();
List<String> publicList=new ArrayList<>();
String soloName="";
......
......@@ -2,7 +2,8 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.junmp.jyzb.mapper.CabinetMapper">
<resultMap id="cabinetResultMap" type="com.junmp.jyzb.entity.Cabinet">
<id property="id" column="id" />
<id column="id" jdbcType="VARCHAR" property="id" />
<result property="cabinetNum" column="cabinet_num" />
<result property="name" column="name" />
<result property="orgIdInt" column="org_id_int" />
......@@ -18,10 +19,13 @@
<result property="createUser" column="create_user" />
<result property="policeName" column="police_name" />
<result property="policeId" column="police_id" />
<result property="boxId" column="box_id" />
<result property="containType" column="contain_type" />
<result property="boxState" column="box_state" />
<result property="equipmentConfig" column="equipment_config" />
<result property="number" column="number" />
<result property="orgName" column="org_name" />
<result property="updateUser" column="update_user" />
<!-- <collection property="list" ofType="com.junmp.jyzb.entity.CabinetBox" column="cabinet_id"-->
<!-- select="com.junmp.jyzb.mapper.CabinetBoxMapper.selectById">-->
<!-- </collection>-->
</resultMap>
......@@ -29,7 +33,7 @@
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, cabinet_num, `name`, org_id, `location`, error_state, create_time, update_time,
id, cabinet_num, `name`, org_id, `location`, error_state, create_time, update_time,
create_user, update_user
</sql>
<update id="SetInventoryInfo" parameterType="java.lang.String">
......@@ -75,15 +79,16 @@
</foreach>
</select>
<select id="getAllCabinetsWithSingleCabinet" resultType="com.junmp.jyzb.entity.Cabinet">
SELECT c.*, cb.num as number,bp.`name` as police_name,bp.id as police_id
FROM base_cabinet c
JOIN pub_org o ON c.org_id_int = o.org_id
LEFT JOIN base_cabinet_box cb ON cb.cabinet_id = c.id
SELECT cabinet.id as id,cabinet.cabinet_num,cabinet.name,cabinet.org_id_int,cabinet.location,cabinet.state,
cabinet.online_state,cabinet.create_time,cabinet.update_time,cabinet.num,cb.id as box_id,cb.contain_type,cb.state as box_state,
cb.equipment_config, cb.num as number,bp.`name` as police_name,bp.id as police_id,o.org_name
FROM base_cabinet cabinet
left join pub_org o ON cabinet.org_id_int = o.org_id
LEFT JOIN base_cabinet_box cb ON cb.cabinet_id = cabinet.id
LEFT JOIN base_cabinet_box_police ccp ON ccp.cabinet_box_id = cb.id
LEFT JOIN base_policeman bp ON bp.id = ccp.police_id
WHERE c.org_id_int = #{orgId} and cb.num is not null;
WHERE cabinet.org_id_int = #{orgId} and cb.num is not null;
</select>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论