This commit is contained in:
cwchen 2024-03-21 20:55:29 +08:00
parent 41e88f49fc
commit 794b381c17
6 changed files with 159 additions and 17 deletions

View File

@ -3,6 +3,10 @@ package com.securitycontrol.entity.background.vo;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import javax.validation.constraints.NotBlank;
import java.util.List;
/**
* @author 10488
@ -14,18 +18,28 @@ public class HumanManageVo {
private String userId;
@ApiModelProperty(value = "班组ID")
@NotBlank(message = "班组不能为空", groups = {Query.class})
@Length(max = 100, message = "班组字符长度不能超过100", groups = {Query.class})
private String teamId;
@ApiModelProperty(value = "人员姓名")
@NotBlank(message = "人员姓名不能为空", groups = {Query.class})
@Length(max = 30, message = "人员姓名字符长度不能超过30", groups = {Query.class})
private String userName;
@ApiModelProperty(value = "身份证号码")
@NotBlank(message = "身份证号码不能为空", groups = {Query.class})
@Length(max = 100, message = "身份证号码字符长度不能超过100", groups = {Query.class})
private String idNumber;
@ApiModelProperty(value = "手机号码")
@NotBlank(message = "手机号码不能为空", groups = {Query.class})
@Length(max = 20, message = "手机号码字符长度不能超过100", groups = {Query.class})
private String phone;
@ApiModelProperty(value = "工种")
@NotBlank(message = "工种不能为空", groups = {Query.class})
@Length(max = 30, message = "工种字符长度不能超过30", groups = {Query.class})
private String userType;
@ApiModelProperty(value = "人员状态")
@ -51,11 +65,21 @@ public class HumanManageVo {
private String proName;
@JsonInclude(JsonInclude.Include.NON_EMPTY)
@ApiModelProperty(value = "删除的文件ID")
private String delFiles;
@ApiModelProperty(value = "创建时间")
private String createTime;
@JsonInclude(JsonInclude.Include.NON_EMPTY)
private List<HumanManageVo.FileData> fileData;
@Data
public static class FileData{
private String fileId;
private String base64Url;
}
/**
* 查询条件限制
*/

View File

@ -53,11 +53,17 @@ public class HumanManageController extends BaseController {
return service.addOrUpdatePersonnel(file, params);
}
@ApiOperation(value = "人员详情")
@GetMapping("getPersonnelById")
public AjaxResult getPersonnelById(ParamDto dto) {
return service.getPersonnelById(dto);
}
@ApiOperation(value = "删除人员")
@PostMapping("delHuman")
@PostMapping("delPersonnel")
@Log(title = "人员管理", menu = "人车管理->人员管理", grade = OperationType.DELETE_BUSINESS, details = "删除人员", type = "业务日志")
public AjaxResult delPro(@RequestBody HumanManageVo dto) {
return service.delHuman(dto);
public AjaxResult delPersonnelById(@RequestBody ParamDto dto) {
return service.delPersonnelById(dto);
}
}

View File

@ -3,6 +3,7 @@ package com.securitycontrol.background.mapper;
import com.securitycontrol.entity.background.dto.ParamDto;
import com.securitycontrol.entity.background.vo.HumanManageVo;
import com.securitycontrol.entity.system.vo.ResourceFileVo;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
@ -74,11 +75,44 @@ public interface HumanManageMapper {
/**
* 人员是否存在
*
* @param vo
* @return List<Map < String>>
* @description
* @author cwchen
* @date 2024/3/21 17:53
*/
@MapKey("id")
List<Map<String, String>> userIsExist(HumanManageVo vo);
/**
* 删除人员
*
* @param dto
* @description
* @author cwchen
* @date 2024/3/21 20:37
*/
void delPersonnelById(ParamDto dto);
/**
* 人员详情
*
* @param dto
* @return HumanManageVo
* @description
* @author cwchen
* @date 2024/3/21 20:40
*/
HumanManageVo getPersonnelById(ParamDto dto);
/**
* 获取人员照片
* @param userId
* @return List<ResourceFileVo>
* @description
* @author cwchen
* @date 2024/3/21 20:42
*/
List<ResourceFileVo> getFiles(String userId);
}

View File

@ -27,6 +27,7 @@ public interface HumanService {
/**
* 新增/修改 用户
*
* @param file
* @param params
* @return AjaxResult
@ -36,13 +37,25 @@ public interface HumanService {
*/
AjaxResult addOrUpdatePersonnel(MultipartFile file, String params);
/**
* ssss
* 人员详情
*
* @param vo
* @return
* @param dto
* @return AjaxResult
* @description
* @author cwchen
* @date 2024/3/21 20:34
*/
AjaxResult delHuman(HumanManageVo vo);
AjaxResult getPersonnelById(ParamDto dto);
/**
* 删除人员
* @param dto
* @return AjaxResult
* @description
* @author cwchen
* @date 2024/3/21 20:35
*/
AjaxResult delPersonnelById(ParamDto dto);
}

View File

@ -16,6 +16,7 @@ import com.securitycontrol.entity.background.dto.ParamDto;
import com.securitycontrol.entity.background.vo.HumanManageVo;
import com.securitycontrol.entity.system.vo.ResourceFileVo;
import com.securitycontrol.system.api.RemoteFileService;
import com.securitycontrol.system.api.domain.SysFile;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -152,16 +153,58 @@ public class HumanServiceImpl implements HumanService {
}
@Override
public AjaxResult delHuman(HumanManageVo vo) {
public AjaxResult getPersonnelById(ParamDto dto) {
HumanManageVo vo = new HumanManageVo();
vo = mapper.getPersonnelById(dto);
String decryptIdNumber = AesCbcUtils.decrypt(vo.getIdNumber());
if(decryptIdNumber != null){
vo.setIdNumber(decryptIdNumber);
}
List<ResourceFileVo> resourceFileVos = mapper.getFiles(vo.getUserId());
if (CollectionUtils.isNotEmpty(resourceFileVos)) {
List<HumanManageVo.FileData> list = new ArrayList<>();
for (ResourceFileVo fileVo : resourceFileVos) {
String base64 = null;
Result<SysFile> result = remoteFileService.getImgBase64(fileVo.getFileId(), SecurityConstants.INNER);
if (result != null && result.getCode() == HttpStatus.SUCCESS && result.getData() != null) {
String jsonString = JSON.toJSONString(result.getData());
JSONObject item = JSON.parseObject(jsonString);
base64 = item.getString("url");
}
HumanManageVo.FileData fileData = new HumanManageVo.FileData();
fileData.setFileId(fileVo.getFileId());
fileData.setBase64Url(base64);
list.add(fileData);
}
vo.setFileData(list);
}
return AjaxResult.success(vo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public AjaxResult delPersonnelById(ParamDto dto) {
try {
HumanManageVo delvo=new HumanManageVo();
delvo.setUserId(vo.getUserId());
// delvo.setDelFalge("0");
mapper.updateHuman(delvo);
if (StringUtils.isEmpty(dto.getId())) {
return AjaxResult.error("参数不完整");
}
mapper.delPersonnelById(dto);
// 查询人员照片
List<ResourceFileVo> files = mapper.getFiles(dto.getId());
if (CollectionUtils.isNotEmpty(files)) {
files.forEach(item -> {
mapper.delFile(item.getFileId());
remoteFileService.delFile(item.getFileId(), SecurityConstants.INNER);
});
}
} catch (Exception e) {
log.error("删除人员", e);
//手动回滚异常
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return AjaxResult.error();
}
return AjaxResult.success();
}
}

View File

@ -71,11 +71,15 @@
<delete id="delFile">
DELETE FROM tb_resource_file WHERE file_id = #{fileId}
</delete>
<!--删除人员-->
<delete id="delPersonnelById">
DELETE FROM t_team_people WHERE user_id = #{id}
</delete>
<!--获取人员列表-->
<select id="getHumanLists" resultType="com.securitycontrol.entity.background.vo.HumanManageVo">
SELECT
ttp.user_id AS userId,
ttp.user_name as userName,
ttp.user_name AS userName,
sd.dict_name AS userType,
twt.team_leader AS teamLeader,
twt.team_name AS teamName,
@ -102,4 +106,22 @@
SELECT user_id AS id,id_number AS value FROM t_team_people WHERE user_id != #{userId}
</if>
</select>
<!--人员详情-->
<select id="getPersonnelById" resultType="com.securitycontrol.entity.background.vo.HumanManageVo">
SELECT
ttp.user_id AS userId,
ttp.user_name AS userName,
ttp.user_type AS userType,
ttp.id_number AS idNumber,
ttp.phone,
ttp.team_id AS teamId
FROM t_team_people ttp
WHERE ttp.user_id = #{id}
</select>
<!--获取人员照片-->
<select id="getFiles" resultType="com.securitycontrol.entity.system.vo.ResourceFileVo">
SELECT id AS resourceId,
file_id AS fileId
FROM tb_resource_file WHERE source_id = #{userId}
</select>
</mapper>