自测问题修改

This commit is contained in:
cwchen 2024-08-20 16:00:07 +08:00
parent aa15423ad2
commit d98ef3292f
9 changed files with 177 additions and 41 deletions

View File

@ -45,6 +45,11 @@ public class SafetyHatVo {
* */
private Long teamId;
/**
* 班组名称
* */
private String teamName;
/**
* 工程ID
* */

View File

@ -43,4 +43,9 @@ public class TeamPeopleVo {
* 手环编码
*/
private String braceletCode;
/**
* 是否是班组长
*/
private Integer isTeamLeader;
}

View File

@ -1,14 +1,20 @@
package com.bonus.app.controller;
import com.bonus.app.service.IAppSafetyHatService;
import com.bonus.common.core.constant.BusinessConstants;
import com.bonus.common.core.text.Convert;
import com.bonus.common.core.utils.ServletUtils;
import com.bonus.common.core.web.controller.BaseController;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.core.web.page.TableDataInfo;
import com.bonus.common.entity.app.AppParamsDto;
import com.bonus.common.entity.app.vo.SafetyHatDataVo;
import com.bonus.common.entity.app.vo.SafetyHatVo;
import com.bonus.common.entity.bracelet.vo.EquipmentReqVo;
import com.bonus.common.log.annotation.SysLog;
import com.bonus.common.log.enums.OperaType;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
@ -33,10 +39,13 @@ public class AppSafetyHatController extends BaseController {
// @RequiresPermissions("app:safetyHat:list")
@GetMapping("list")
@SysLog(title = "智能安全帽", businessType = OperaType.QUERY,logType = 0,module = "智能安全帽->设备列表",details ="查询智能安全帽列表")
public TableDataInfo list(AppParamsDto dto) {
startPage();
List<SafetyHatVo> list = service.getSafetyHatLists(dto);
return getDataTable(list);
public AjaxResult list(AppParamsDto dto) {
Integer pageNum = Convert.toInt(ServletUtils.getParameter(BusinessConstants.PAGE_NUM), 1);
Integer pageSize = Convert.toInt(ServletUtils.getParameter(BusinessConstants.PAGE_SIZE), 10);
PageHelper.startPage(pageNum, pageSize);
PageInfo<SafetyHatVo> pageInfo = service.getSafetyHatLists(dto);
// List<SafetyHatVo> list = service.getSafetyHatLists(dto);
return AjaxResult.success(pageInfo.getList());
}
// @RequiresPermissions("app:safetyHat:distributionHelmet")

View File

@ -4,6 +4,7 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.entity.app.AppParamsDto;
import com.bonus.common.entity.app.vo.SafetyHatDataVo;
import com.bonus.common.entity.app.vo.SafetyHatVo;
import com.github.pagehelper.PageInfo;
import java.util.List;
@ -18,11 +19,11 @@ public interface IAppSafetyHatService {
/**
* 安全帽设备列表
* @param dto
* @return List<SafetyHatVo>
* @return PageInfo<SafetyHatVo>
* @author cwchen
* @date 2024/8/7 16:28
*/
List<SafetyHatVo> getSafetyHatLists(AppParamsDto dto);
PageInfo<SafetyHatVo> getSafetyHatLists(AppParamsDto dto);
/**
* 分配安全帽

View File

@ -8,7 +8,9 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.entity.app.AppParamsDto;
import com.bonus.common.entity.app.vo.SafetyHatDataVo;
import com.bonus.common.entity.app.vo.SafetyHatVo;
import com.bonus.common.entity.bracelet.vo.EquipmentReqVo;
import com.bonus.common.security.utils.SecurityUtils;
import com.github.pagehelper.PageInfo;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@ -37,7 +39,7 @@ public class AppSafetyHatServiceImpl implements IAppSafetyHatService {
private AppEquipmentReqMapper appEquipmentReqMapper;
@Override
public List<SafetyHatVo> getSafetyHatLists(AppParamsDto dto) {
public PageInfo<SafetyHatVo> getSafetyHatLists(AppParamsDto dto) {
List<SafetyHatVo> list = new ArrayList<>();
try {
list = mapper.getSafetyHatLists(dto);
@ -49,7 +51,8 @@ public class AppSafetyHatServiceImpl implements IAppSafetyHatService {
} catch (Exception e) {
log.error(e.toString(),e);
}
return list;
PageInfo<SafetyHatVo> pageInfo = new PageInfo<>(list);
return pageInfo;
}
@Override

View File

@ -51,6 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tpe.name AS name,
tpe.phone,
tdu.team_id AS teamId,
twt.team_name AS teamName,
IF(tdl.ly_user IS NULL,0,1) AS useStatus,
tdu.pro_id AS proId,
tdu.gt_id AS gtId,
@ -68,7 +69,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
INSTR(twt.team_name,#{teamName}) > 0
</if>
<if test="useName!=null and useName!=''">
AND INSTR(twt.team_name,#{useName}) > 0
AND INSTR(tpe.name,#{useName}) > 0
</if>
<if test="roleCode!='team' and roleCode!='administrators'">
AND tdu.team_id = -1

View File

@ -151,5 +151,39 @@ public interface TeamMgeMapper {
*/
List<TeamPeopleVo> getWorkPersonList(BraceletParamsDto dto);
int existworkPerson(BraceletParamsDto dto);
/**
* 判断班组长是否已经创建班组
* @param vo
* @return int
* @author cwchen
* @date 2024/8/20 13:51
*/
List<Integer> isDistribution(TeamVo vo);
/**
* 班组是否已分配设备
* @param teamId
* @return List<Integer>
* @author cwchen
* @date 2024/8/20 14:54
*/
List<Integer> isHasDevice(Long teamId);
/**
* 获取班组成员ID
* @param teamId
* @return List<Long>
* @author cwchen
* @date 2024/8/20 15:22
*/
List<Long> getTeamMembers(Long teamId);
/**
* 判断移除的班组成员是否绑定设备
* @param id
* @return List<Integer>
* @author cwchen
* @date 2024/8/20 15:46
*/
List<Integer> isBandDevice(Long id);
}

View File

@ -17,6 +17,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
/**
* @className:TeamMgeServiceImpl
@ -55,9 +56,18 @@ public class TeamMgeServiceImpl implements ITeamMgeService {
@Transactional(rollbackFor = Exception.class)
public AjaxResult addTeam(TeamVo vo) {
try {
if (vo.getUserIdArr() == null || vo.getUserIdArr().length == 0) {
return AjaxResult.error("未添加班组成员");
}
// 同一工程下不允许存在相同班组名称已解散的班组除外
int result = mapper.isExist(vo);
if (result > 0) {
return AjaxResult.error("班组名称已存在");
return AjaxResult.error("所属工程的班组已存在");
}
// 判断班组长是否已经创建班组
List<Integer> isDistributionList = mapper.isDistribution(vo);
if (isDistributionList.get(0) > 0) {
return AjaxResult.error("所选班组长已分配班组");
}
vo.setLeaderPhone(Sm4Utils.encode(vo.getLeaderPhone()));
mapper.addTeam(vo);
@ -76,9 +86,32 @@ public class TeamMgeServiceImpl implements ITeamMgeService {
@Transactional(rollbackFor = Exception.class)
public AjaxResult editTeam(TeamVo vo) {
try {
if (vo.getUserIdArr() == null || vo.getUserIdArr().length == 0) {
return AjaxResult.error("未添加班组成员");
}
// 同一工程下不允许存在相同班组名称已解散的班组除外
int result = mapper.isExist(vo);
if (result > 0) {
return AjaxResult.error("班组名称已存在");
return AjaxResult.error("所属工程的班组已存在");
}
// 判断班组长是否已经创建班组
List<Integer> isDistributionList = mapper.isDistribution(vo);
if (isDistributionList.get(0) != 1 || isDistributionList.get(1) > 0) {
return AjaxResult.error("所选班组长已分配班组");
}
// 移除人员时 判断人员是否已经分配手环或者设备
List<Long> teamMembers = mapper.getTeamMembers(vo.getTeamId());
List<Long> notExistData = getNotExistData(vo.getUserIdArr(), teamMembers);
if(CollectionUtils.isNotEmpty(notExistData)){
for (Long id : notExistData) {
List<Integer> isBandDevices = mapper.isBandDevice(id);
if (isBandDevices.get(0) > 0) {
return AjaxResult.error("班组人员已分配手环,请先归还手环");
}
if (isBandDevices.get(1) > 0) {
return AjaxResult.error("班组人员已分配设备,请先归还设备");
}
}
}
vo.setLeaderPhone(Sm4Utils.encode(vo.getLeaderPhone()));
mapper.updateTeam(vo);
@ -94,20 +127,35 @@ public class TeamMgeServiceImpl implements ITeamMgeService {
}
}
/**
* 获取两个集合的差集
* @param userIdArr
* @param list
* @return List<Long>
* @author cwchen
* @date 2024/8/20 15:39
*/
public static List<Long> getNotExistData(Long[] userIdArr, List<Long> list) {
List<Long> userIdList = Arrays.asList(userIdArr);
List<Long> newList = list.stream()
.filter(element -> !userIdList.contains(element))
.collect(Collectors.toList());
return newList;
}
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult dissolutionTeam(BraceletParamsDto dto) {
try {
TeamVo teamVo = new TeamVo();
teamVo.setTeamId(dto.getId());
// 班组下有在施工人员无法删除
List<TeamPeopleVo> workPersonList = getWorkPersonList(dto);
if(CollectionUtils.isNotEmpty(workPersonList)){
for (TeamPeopleVo teamPeopleVo : workPersonList) {
if(Objects.equals(teamPeopleVo.getWorkStatus(), BusinessConstants.WORK_STATUS)){
return AjaxResult.error("班组下有施工中人员,无法解散班组");
}
}
// 班组是否已分配手环箱或者设备
List<Integer> isHasDeviceList = mapper.isHasDevice(dto.getId());
if (isHasDeviceList.get(0) > 0) {
return AjaxResult.error("班组已分配手环箱,请先归还手环箱");
}
if (isHasDeviceList.get(1) > 0) {
return AjaxResult.error("班组已分配设备,请先归还设备");
}
// 清空班组下的人员
mapper.updatePersonsByTeamId(teamVo);
@ -115,7 +163,7 @@ public class TeamMgeServiceImpl implements ITeamMgeService {
return AjaxResult.success();
} catch (Exception e) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
log.error(e.toString(),e);
log.error(e.toString(), e);
return AjaxResult.error();
}
}

View File

@ -80,16 +80,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="teamLeader != null and teamLeader!=''">
AND INSTR(twt.team_leader,#{teamLeader}) > 0
</if>
<if test="roleCode == 'administrators'">
<if test="proName != null and proName!=''">
AND INSTR(tp.pro_name,#{proName}) > 0
</if>
<if test="roleCode == 'depart'">
<if test="keyWord != null and keyWord!=''">
AND (
INSTR(twt.team_name,#{keyWord}) > 0 OR
INSTR(twt.team_leader,#{keyWord}) > 0 OR
INSTR(tp.pro_name,#{proName}) > 0
)
</if>
<if test="roleCode == 'team'">
</if>
ORDER BY twt.create_time
ORDER BY twt.create_time DESC
</select>
<!--获取班组在施和未施人数-->
<select id="getWorkNum" resultType="java.lang.Integer">
@ -103,13 +104,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN tb_bracelet tb ON tp.id = tb.bid_id AND tb.del_flag = 0
WHERE tp.team_id = #{teamId} AND tb.id IS NULL AND tp.del_flag = 0
</select>
<!--判断班组名称是否存在-->
<!--判断同一工程下,不允许存在相同班组名称,已解散的班组除外-->
<select id="isExist" resultType="java.lang.Integer">
<if test="teamId == null">
SELECT COUNT(*) FROM t_work_team WHERE team_name = #{teamName} AND del_flag = 0 AND team_status = 0
SELECT COUNT(*) FROM t_work_team WHERE team_name = #{teamName} AND pro_id = #{proId} AND del_flag = 0 AND team_status = 0
</if>
<if test="teamId != null">
SELECT COUNT(*) FROM t_work_team WHERE team_name = #{teamName} AND team_id !=#{teamId} AND del_flag = 0 AND team_status = 0
SELECT COUNT(*) FROM t_work_team WHERE team_name = #{teamName} AND pro_id = #{proId} AND team_id !=#{teamId} AND del_flag = 0 AND team_status = 0
</if>
</select>
<!--班组下是否存在人员-->
@ -124,15 +125,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
id_card AS idCard,
phone AS phone
FROM tb_people
WHERE del_flag = 0 AND post = 'team_leader'
WHERE del_flag = 0 AND post = 'team_leader' AND team_id IS NULL
UNION ALL
SELECT tp.id,
tp.name,
tp.id_card AS idCard,
tp.phone AS phone
FROM t_work_team twt
LEFT JOIN tb_people tp ON twt.team_leader_id = tp.id AND tp.del_flag = 0
WHERE twt.del_flag = 0 AND twt.team_id = #{teamId}
SELECT id,
name,
id_card AS idCard,
phone AS phone
FROM tb_people
WHERE del_flag = 0 AND post = 'team_leader' AND team_id = #{teamId}
</if>
<if test="type!=4">
SELECT id,
@ -170,8 +170,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tp.phone,
tp.sex,
IF(tb.id IS NULL,1,0) AS workStatus,
tb.sh_code AS braceletCode
tb.sh_code AS braceletCode,
IF(twt.team_id IS NULL,0,1) AS isTeamLeader
FROM tb_people tp
LEFT JOIN t_work_team twt ON tp.id = twt.team_leader_id AND twt.del_flag = 0
LEFT JOIN tb_bracelet tb ON tp.id = tb.bid_id AND tb.del_flag = 0
WHERE tp.team_id = #{teamId} AND tp.del_flag = 0
<if test="name != null and name!=''">
@ -180,5 +182,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="sex != null">
AND tp.sex = #{sex}
</if>
ORDER BY isTeamLeader DESC
</select>
<!--判断班组长是否已经创建班组-->
<select id="isDistribution" resultType="java.lang.Integer">
<if test="teamId == null">
SELECT COUNT(*) FROM tb_people WHERE id = #{teamLeaderId} AND team_id IS NOT NULL AND del_flag = 0
</if>
<if test="teamId != null">
SELECT COUNT(*) FROM tb_people WHERE id = #{teamLeaderId} AND team_id = #{teamId} AND del_flag = 0
UNION ALL
SELECT COUNT(*) FROM tb_people WHERE id = #{teamLeaderId} AND team_id != #{teamId} AND del_flag = 0 AND team_id IS NOT NULL
</if>
</select>
<!--班组是否已分配设备-->
<select id="isHasDevice" resultType="java.lang.Integer">
SELECT COUNT(*) FROM tb_sh_box WHERE team_id = #{teamId} AND del_flag = 0
UNION ALL
SELECT COUNT(*) FROM tb_dev_ly WHERE team_id = #{teamId}
</select>
<!--获取班组成员ID-->
<select id="getTeamMembers" resultType="java.lang.Long">
SELECT id FROM tb_people WHERE team_id = #{teamId} AND del_flag = 0
</select>
<!--判断移除的班组成员是否绑定手环、设备-->
<select id="isBandDevice" resultType="java.lang.Integer">
SELECT COUNT(*) FROM tb_bracelet WHERE bid_id = #{id} AND peopel_type = 0 AND del_flag = 0
UNION ALL
SELECT COUNT(*) FROM tb_dev_ly WHERE ly_user = #{id}
</select>
</mapper>