Commit 6ee83ea4 authored by 麻笑宇's avatar 麻笑宇

统计新增人员详情查询接口

parent 818162fe
package com.yeejoin.amos.boot.module.statistics.api.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.util.Date;
/**
* 用户信息表
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_user_info")
public class TzsUserInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 姓名
*/
@TableField("name")
private String name;
/**
* 证件类型
*/
@TableField("certificate_type")
private String certificateType;
/**
* 证件编号
*/
@TableField("certificate_num")
private String certificateNum;
/**
* 性别
*/
@TableField("gender")
private String gender;
/**
* 岗位-保留兼容下游数据查询
*/
@TableField("post")
private String post;
/**
* 新岗位(后期post迁移数组至此)
*/
@TableField("new_post")
private String newPost;
/**
* 岗位名称-按照new_post显示
*/
@TableField("post_name")
private String postName;
/**
* 联系电话
*/
@TableField("phone")
private String phone;
/**
* 出生日期
*/
@TableField("birthday")
private Date birthday;
/**
* 学历
*/
@TableField("education")
private String education;
/**
* 专业
*/
@TableField("speciality")
private String speciality;
/**
* 邮箱
*/
@TableField("email")
private String email;
/**
* 住址
*/
@TableField("address")
private String address;
/**
* 证件照片
*/
@TableField(value = "identification")
private String identification;
/**
* 证件照片
*
*/
@TableField(value = "appoint_doc")
private String appointDoc;
/**
* 账户名
*/
@TableField("amos_user_name")
private String amosUserName;
/**
* 单位名称
*/
@TableField("unit_name")
private String unitName;
/**
* 企业编码
*/
@TableField("unit_code")
private String unitCode;
/**
* 头像
*/
@TableField(value = "profile")
private String profile;
/**
* 平台账号id
*/
@TableField("amos_user_id")
private String amosUserId;
/**
* 平台账号锁定状态
*/
@TableField("lock_status")
private String lockStatus;
/**
* 设备类型
*/
@TableField(value = "equip_type", updateStrategy = FieldStrategy.IGNORED)
private String equipType;
/**
* 内部人员编码
*/
@TableField("inner_person_code")
private String innerPersonCode;
/**
* 其他附件
*/
@TableField(value = "other_accessories")
private String otherAccessories;
/**
* 验检验专用-级别-废弃,被permissionData替代
*/
@Deprecated
@TableField(value = "permission_level")
private String permissionLevel;
/**
* 验检验专用-资质项目-废弃,被permissionData替代
*/
@Deprecated
@TableField(value = "permission_item")
private String permissionItem;
/**
* 验检验专用-资质数据json,替代:permission_level、permission_item
*/
@TableField(value = "permission_data")
private String permissionData;
/**
* 职称
*/
@TableField(value = "job_title")
private String jobTitle;
}
package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.statistics.api.entity.TzsUserInfo;
public interface UserInfoMapper extends BaseMapper<TzsUserInfo> {
}
package com.yeejoin.amos.boot.module.statistics.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission;
/**
* 用户资质信息表 Mapper 接口
*
* @author system_generator
* @date 2024-08-27
*/
public interface UserPermissionMapper extends BaseMapper<TzsUserPermission> {
}
package com.yeejoin.amos.boot.module.statistics.api.vo;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
@Data
public class TzsUserInfoVo {
/**
* 姓名
*/
@TableField("name")
private String name;
/**
* 证件类型
*/
@TableField("certificate_type")
private String certificateType;
/**
* 证件编号
*/
@TableField("certificate_num")
private String certificateNum;
/**
* 性别
*/
@TableField("gender")
private String gender;
/**
* 岗位
*/
@TableField("post")
private JSONArray post;
/**
* 岗位 (后期post迁移数组至此)
*/
@TableField("new_post")
private JSONArray newPost;
/**
* 联系电话
*/
@TableField("phone")
private String phone;
/**
* 出生日期
*/
@TableField("birthday")
private Date birthday;
/**
* 学历
*/
@TableField("education")
private String education;
/**
* 专业
*/
@TableField("speciality")
private String speciality;
/**
* 邮箱
*/
@TableField("email")
private String email;
/**
* 住址
*/
@TableField("address")
private String address;
/**
* 证件照片
*/
@TableField(value = "identification")
private List identification;
/**
* 任命文件
*/
@TableField(value = "appoint_doc")
private List appointDoc;
/**
* 账户名
*/
@TableField("amos_user_name")
private String amosUserName;
/**
* 单位名称
*/
@TableField("unit_name")
private String unitName;
/**
* 头像
*/
@TableField(value = "profile")
private List profile;
/**
* 平台账号id
*/
@TableField("amos_user_id")
private String amosUserId;
/**
* 平台账号锁定状态
*/
@TableField("lock_status")
private String lockStatus;
/**
* 设备类型
*/
@ApiModelProperty(value = "设备类型")
private JSONArray equipType;
/**
* 内部人员编码
*/
@ApiModelProperty(value = "内部人员编码")
private String innerPersonCode;
/**
* 其他附件
*/
@ApiModelProperty(value = "其他附件")
private List<?> otherAccessories;
/**
* 单位类型
* */
private String companyType;
/**
* 职称
*/
private String jobTitle;
}
<?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.yeejoin.amos.boot.module.statistics.api.mapper.UserInfoMapper">
</mapper>
\ No newline at end of file
<?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.yeejoin.amos.boot.module.statistics.api.mapper.UserPermissionMapper">
</mapper>
package com.yeejoin.amos.boot.module.statistcs.biz.controller;
import com.yeejoin.amos.boot.module.statistcs.biz.service.impl.UserBizByTCMServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import java.util.Map;
/**
* @author Administrator
*/
@RestController
@RequestMapping(value = "/dp/biz-user")
@Api(tags = "大屏-人员-业务API")
public class UserBizController {
@Resource
private UserBizByTCMServiceImpl userBizByTCMService;
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/getDetail")
@ApiOperation(httpMethod = "GET", value = "详情", notes = "详情")
public ResponseModel<Map<String, Object>> queryForPage(@RequestParam(value = "id") Long id) {
return ResponseHelper.buildResponse(userBizByTCMService.getDetail(id));
}
}
package com.yeejoin.amos.boot.module.statistcs.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission;
import com.yeejoin.amos.boot.module.statistics.api.entity.TzsUserInfo;
import com.yeejoin.amos.boot.module.statistics.api.mapper.UserInfoMapper;
import com.yeejoin.amos.boot.module.statistics.api.mapper.UserPermissionMapper;
import com.yeejoin.amos.boot.module.statistics.api.vo.TzsUserInfoVo;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.CompanyModel;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Administrator
*/
@Service
public class UserBizByTCMServiceImpl {
/**
* 检验人员资质类型
*/
private final String JYRY_TYPE = "permissionData66151";
/**
* 检测人员资质类型
*/
private final String JCRY_TYPE = "permissionData66152";
/**
* 工作人员资质类型
*/
private final String ZYRY_TYPE = "permissionData6552";
/**
* 需要转换的附件字段 jsonString化字段
*/
private final String[] ATTACHMENTS = {"certAttachment", "itemCode", "permissionItem"};
@Autowired
private UserInfoMapper tzsUserInfoMapper;
@Autowired
private UserPermissionMapper tzsUserPermissionMapper;
public Map<String, Object> getDetail(Long id) {
Map<String, Object> maps = new HashMap<>();
TzsUserInfo tzsUserInfo = tzsUserInfoMapper.selectById(id);
TzsUserInfoVo tzsUserInfoVo = new TzsUserInfoVo();
BeanUtils.copyProperties(tzsUserInfo, tzsUserInfoVo, "identification", "profile", "post", "permissionItem", "appointDoc");
if (!ObjectUtils.isEmpty(tzsUserInfo.getPost())) {
tzsUserInfoVo.setPost(JSON.parseArray(tzsUserInfo.getPost()));
}
if (!ObjectUtils.isEmpty(tzsUserInfo.getNewPost())) {
tzsUserInfoVo.setNewPost(JSON.parseArray(tzsUserInfo.getNewPost()));
}
if (!ObjectUtils.isEmpty(tzsUserInfo.getEquipType())) {
tzsUserInfoVo.setEquipType(JSON.parseArray(tzsUserInfo.getEquipType()));
}
tzsUserInfoVo.setIdentification(ObjectUtils.isEmpty(tzsUserInfo.getIdentification()) ? null : JSON.parseArray(tzsUserInfo.getIdentification()));
tzsUserInfoVo.setProfile(ObjectUtils.isEmpty(tzsUserInfo.getProfile()) ? null : JSON.parseArray(tzsUserInfo.getProfile()));
tzsUserInfoVo.setAppointDoc(ObjectUtils.isEmpty(tzsUserInfo.getAppointDoc()) ? null : JSON.parseArray(tzsUserInfo.getAppointDoc()));
tzsUserInfoVo.setOtherAccessories(ObjectUtils.isEmpty(tzsUserInfo.getOtherAccessories()) ? null : JSON.parseArray(tzsUserInfo.getOtherAccessories()));
String companyType = getUnitType();
tzsUserInfoVo.setCompanyType(companyType.contains("个人主体") ? "individual" : "no-individual");
Map<String, Object> userInfoMap = BeanUtil.beanToMap(tzsUserInfoVo);
// userInfoMap.putAll(this.getPermissionDataJson(tzsUserInfo.getPermissionData()));
// 填充资质信息
Map<? extends String, ?> permissions = this.queryForSubFormByUserSeq(String.valueOf(tzsUserInfo.getSequenceNbr()));
userInfoMap.putAll(permissions);
maps.put("userInfo", userInfoMap);
return maps;
}
public String getUnitType() {
List<CompanyModel> companyModels = FeignUtil.remoteCall(() -> Privilege.companyClient.queryListByChild(RequestContext.getExeUserId()));
if (companyModels.isEmpty()) {
return "";
}
return companyModels.get(0).getCompanyType();
}
/**
* 根据人员的seq 组织可供子表单使用的资质信息数据
*
* @param userSeq 人员的seq
* @return result
*/
public Map<? extends String, ?> queryForSubFormByUserSeq(String userSeq) {
Map<String, List<JSONObject>> result = new HashMap<>();
List<JSONObject> JYRYList = new ArrayList<>();
List<JSONObject> JCRYList = new ArrayList<>();
List<JSONObject> ZYRYList = new ArrayList<>();
LambdaQueryWrapper<TzsUserPermission> lambda = new QueryWrapper<TzsUserPermission>().lambda();
lambda.eq(TzsUserPermission::getUserSeq, userSeq);
List<TzsUserPermission> permissionList = tzsUserPermissionMapper.selectList(lambda);
for (TzsUserPermission permission : permissionList) {
String permissionPost = permission.getPermissionPost();
if (JYRY_TYPE.equals(permissionPost)) {
JYRYList.add(this.convertPermissionToJson(permission));
continue;
}
if (JCRY_TYPE.equals(permissionPost)) {
JCRYList.add(this.convertPermissionToJson(permission));
continue;
}
if (ZYRY_TYPE.equals(permissionPost)) {
ZYRYList.add(this.convertPermissionToJson(permission));
}
}
result.putIfAbsent(JYRY_TYPE, JYRYList);
result.putIfAbsent(JCRY_TYPE, JCRYList);
result.putIfAbsent(ZYRY_TYPE, ZYRYList);
return result;
}
/**
* 实体转化为jsonObject 并转化附件
*
* @param permission 入参
* @return result
*/
public JSONObject convertPermissionToJson(TzsUserPermission permission) {
JSONObject json = (JSONObject) JSONObject.toJSON(permission);
for (String field : ATTACHMENTS) {
if (json.get(field) != null && json.get(field) instanceof String) {
json.put(field, JSON.parse(json.get(field).toString()));
}
}
// 作业项目【jobItem】 字段特殊处理
JSONArray jobItem = JSON.parseArray(String.valueOf(json.get("jobItem")));
json.put("jobItem", jobItem);
return json;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment