Commit 91853405 authored by 韩桐桐's avatar 韩桐桐

fix(tcm):人员添加,修改,详情接口修改

parent 44ebdfec
package com.yeejoin.amos.boot.module.common.api.dto; package com.yeejoin.amos.boot.module.common.api.dto;
import com.alibaba.fastjson.JSONArray;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import java.util.Date;
/** /**
...@@ -54,6 +56,9 @@ public class TzsUserPermissionDto extends BaseDto { ...@@ -54,6 +56,9 @@ public class TzsUserPermissionDto extends BaseDto {
@ApiModelProperty(value = "作业项目") @ApiModelProperty(value = "作业项目")
private String jobItem; private String jobItem;
@ApiModelProperty("项目代号")
private JSONArray itemCode;
@ApiModelProperty(value = "其他作业项目") @ApiModelProperty(value = "其他作业项目")
private String otherItem; private String otherItem;
......
...@@ -2,11 +2,11 @@ package com.yeejoin.amos.boot.module.common.api.entity; ...@@ -2,11 +2,11 @@ package com.yeejoin.amos.boot.module.common.api.entity;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.entity.BaseRelationEntity; import com.yeejoin.amos.boot.biz.common.entity.BaseRelationEntity;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
/** /**
...@@ -30,13 +30,13 @@ public class TzsUserPermission extends BaseRelationEntity { ...@@ -30,13 +30,13 @@ public class TzsUserPermission extends BaseRelationEntity {
private Long userSeq; private Long userSeq;
/** /**
* 检验专用-级别 * 检验检测专用-级别
*/ */
@TableField("permission_level") @TableField("permission_level")
private String permissionLevel; private String permissionLevel;
/** /**
* 检验专用-资质项目 * 检验检测专用-资质项目
*/ */
@TableField("permission_item") @TableField("permission_item")
private String permissionItem; private String permissionItem;
...@@ -90,6 +90,12 @@ public class TzsUserPermission extends BaseRelationEntity { ...@@ -90,6 +90,12 @@ public class TzsUserPermission extends BaseRelationEntity {
private String jobItem; private String jobItem;
/** /**
* 项目代号,多个用逗号分割
*/
@TableField("item_code")
private String itemCode;
/**
* 其他作业项目 * 其他作业项目
*/ */
@TableField("other_item") @TableField("other_item")
......
package com.yeejoin.amos.boot.module.tcm.api.dto; package com.yeejoin.amos.boot.module.tcm.api.dto;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
...@@ -34,6 +33,9 @@ public class TzsUserInfoDto extends BaseDto { ...@@ -34,6 +33,9 @@ public class TzsUserInfoDto extends BaseDto {
@ApiModelProperty(value = "岗位") @ApiModelProperty(value = "岗位")
private String post; private String post;
@ApiModelProperty("新岗位(后期post迁移数组至此)")
private String newPost;
@ApiModelProperty(value = "岗位名称") @ApiModelProperty(value = "岗位名称")
private String postName; private String postName;
...@@ -102,4 +104,10 @@ public class TzsUserInfoDto extends BaseDto { ...@@ -102,4 +104,10 @@ public class TzsUserInfoDto extends BaseDto {
@ApiModelProperty(value = "检测资质json,固定前缀permissionData,入库时数据存放到permissionData") @ApiModelProperty(value = "检测资质json,固定前缀permissionData,入库时数据存放到permissionData")
private JSONArray permissionData66152; private JSONArray permissionData66152;
@ApiModelProperty(value = "作业人员资质信息json,固定前缀permissionData,入库时数据存放到permissionData")
private JSONArray permissionData6552;
@ApiModelProperty(value = "职称")
private String jobTitle;
} }
...@@ -53,6 +53,12 @@ public class TzsUserInfo extends BaseEntity { ...@@ -53,6 +53,12 @@ public class TzsUserInfo extends BaseEntity {
private String post; private String post;
/** /**
* 新岗位(后期post迁移数组至此)
*/
@TableField("new_post")
private String newPost;
/**
* 岗位名称 * 岗位名称
*/ */
@TableField("post_name") @TableField("post_name")
...@@ -183,4 +189,10 @@ public class TzsUserInfo extends BaseEntity { ...@@ -183,4 +189,10 @@ public class TzsUserInfo extends BaseEntity {
@TableField(value = "permission_data") @TableField(value = "permission_data")
private String permissionData; private String permissionData;
/**
* 职称
*/
@TableField(value = "job_title")
private String jobTitle;
} }
...@@ -145,4 +145,9 @@ public class TzsUserInfoVo { ...@@ -145,4 +145,9 @@ public class TzsUserInfoVo {
* */ * */
private String companyType; private String companyType;
/**
* 职称
*/
private String jobTitle;
} }
...@@ -218,11 +218,11 @@ ...@@ -218,11 +218,11 @@
FROM FROM
"cb_data_dictionary" "cb_data_dictionary"
WHERE WHERE
type in is_delete = false
and type in
<foreach collection="typeList" separator="," item="type" open="(" close=")"> <foreach collection="typeList" separator="," item="type" open="(" close=")">
#{type} #{type}
</foreach> </foreach>
</select> </select>
<select id="selectCompanyTypeById" resultType="java.lang.String"> <select id="selectCompanyTypeById" resultType="java.lang.String">
......
package com.yeejoin.amos.boot.module.tcm.biz.service.impl; package com.yeejoin.amos.boot.module.tcm.biz.service.impl;
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.common.api.dto.TzsUserPermissionDto;
import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission; import com.yeejoin.amos.boot.module.common.api.entity.TzsUserPermission;
import com.yeejoin.amos.boot.module.tcm.api.dto.TzsUserInfoDto;
import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserPermissionMapper; import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserPermissionMapper;
import com.yeejoin.amos.boot.module.tcm.api.service.ITzsUserPermissionService; import com.yeejoin.amos.boot.module.tcm.api.service.ITzsUserPermissionService;
import com.yeejoin.amos.boot.module.common.api.dto.TzsUserPermissionDto;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.transaction.annotation.Transactional;
import java.util.List; import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
import java.time.temporal.ChronoField;
import java.util.*;
import java.util.stream.Collectors;
/** /**
* 用户资质信息表服务实现类 * 用户资质信息表服务实现类
...@@ -16,7 +32,25 @@ import java.util.List; ...@@ -16,7 +32,25 @@ import java.util.List;
* @date 2024-08-27 * @date 2024-08-27
*/ */
@Service @Service
public class TzsUserPermissionServiceImpl extends BaseService<TzsUserPermissionDto,TzsUserPermission,TzsUserPermissionMapper> implements ITzsUserPermissionService { public class TzsUserPermissionServiceImpl extends BaseService<TzsUserPermissionDto, TzsUserPermission, TzsUserPermissionMapper> implements ITzsUserPermissionService {
/**
* 检验人员资质类型
*/
private final String JYRY_TYPE = "permissionData66151";
/**
* 检测人员资质类型
*/
private final String JCRY_TYPE = "permissionData66152";
/**
* 工作人员资质类型
*/
private final String ZYRY_TYPE = "permissionData6552";
/**
* 需要转换的附件字段 jsonString化字段
*/
private final String[] ATTACHMENTS = {"certAttachment", "otherItem", "itemCode"};
/** /**
* 分页查询 * 分页查询
*/ */
...@@ -28,6 +62,151 @@ public class TzsUserPermissionServiceImpl extends BaseService<TzsUserPermissionD ...@@ -28,6 +62,151 @@ public class TzsUserPermissionServiceImpl extends BaseService<TzsUserPermissionD
* 列表查询 示例 * 列表查询 示例
*/ */
public List<TzsUserPermissionDto> queryForTzsUserPermissionList() { public List<TzsUserPermissionDto> queryForTzsUserPermissionList() {
return this.queryForList("" , false); return this.queryForList("", false);
}
/**
* 更新资质权限数据
*/
@Transactional(rollbackFor = Exception.class)
public void updatePermissionData(TzsUserInfoDto tzsUserInfo) {
// 1,删除对应资质
LambdaQueryWrapper<TzsUserPermission> lambda = new QueryWrapper<TzsUserPermission>().lambda();
lambda.eq(TzsUserPermission::getUserSeq, tzsUserInfo.getSequenceNbr());
this.getBaseMapper().delete(lambda);
// 2,保存对应资质
this.savePermissionData(tzsUserInfo);
}
/**
* 保存资质权限数据
*/
@Transactional(rollbackFor = Exception.class)
public void savePermissionData(TzsUserInfoDto userInfoDto) {
ArrayList<TzsUserPermission> tzsUserPermissions = new ArrayList<>();
// permissionData66151 检验资质
JSONArray permissionData66151 = userInfoDto.getPermissionData66151();
if (!ValidationUtil.isEmpty(permissionData66151)) {
permissionData66151.forEach(x -> tzsUserPermissions.add(buildPermission(JYRY_TYPE, (JSONObject) x, userInfoDto)));
}
// permissionData66152 检测资质
JSONArray permissionData66152 = userInfoDto.getPermissionData66152();
if (!ValidationUtil.isEmpty(permissionData66152)) {
permissionData66152.forEach(x -> tzsUserPermissions.add(buildPermission(JCRY_TYPE, (JSONObject) x, userInfoDto)));
}
// permissionData6552 作业人员资质
JSONArray permissionData6552 = userInfoDto.getPermissionData6552();
if (!ValidationUtil.isEmpty(permissionData6552)) {
permissionData6552.forEach(x -> tzsUserPermissions.add(buildPermission(ZYRY_TYPE, (JSONObject) x, userInfoDto)));
}
this.saveBatch(tzsUserPermissions);
}
/**
* 构建资质信息实体
*
* @param type 人员资质类型
* @param permissionData 入参
* @param userInfo 人员信息
* @return permission
*/
private TzsUserPermission buildPermission(String type, JSONObject permissionData, TzsUserInfoDto userInfo) {
TzsUserPermission permission = new TzsUserPermission();
permission.setUserSeq(userInfo.getSequenceNbr());
permission.setPermissionLevel(!ZYRY_TYPE.equals(type) ? (String) permissionData.get("permissionLevel") : null);
permission.setPermissionItem(!ZYRY_TYPE.equals(type) ? JSONArray.toJSONString(permissionData.get("permissionItem")) : null);
permission.setPermissionPost(type);
permission.setCertNo((String) permissionData.get("certNo"));
DateTimeFormatter formatter = new DateTimeFormatterBuilder()
.appendPattern("yyyy-MM-dd")
.optionalStart()
.appendPattern(" HH:mm:ss")
.optionalEnd()
.parseDefaulting(ChronoField.HOUR_OF_DAY, 0)
.parseDefaulting(ChronoField.MINUTE_OF_HOUR, 0)
.parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
.toFormatter();
String expiryDateString = String.valueOf(permissionData.get("expiryDate"));
LocalDate localDate1 = LocalDate.parse(expiryDateString, formatter);
LocalDateTime localDateTime1 = localDate1.atStartOfDay();
Date expiryDate = Date.from(localDateTime1.atZone(ZoneId.systemDefault()).toInstant());
permission.setExpiryDate(expiryDate);
String issueDateString = String.valueOf(permissionData.get("issueDate"));
LocalDate localDate2 = LocalDate.parse(issueDateString, formatter);
LocalDateTime localDateTime2 = localDate2.atStartOfDay();
Date issueDate = Date.from(localDateTime2.atZone(ZoneId.systemDefault()).toInstant());
permission.setIssueDate(issueDate);
permission.setApprovedOrgan((String) permissionData.get("approvedOrgan"));
permission.setCertAttachment(JSONArray.toJSONString(permissionData.get("certAttachment")));
permission.setCertType(ZYRY_TYPE.equals(type) ? String.valueOf(permissionData.get("certType")) : null);
permission.setJobItem(ZYRY_TYPE.equals(type) ? String.valueOf(permissionData.get("jobItem")) : null);
permission.setOtherItem(ZYRY_TYPE.equals(type) ? JSONArray.toJSONString(permissionData.get("otherItem")) : null);
permission.setItemCode(ZYRY_TYPE.equals(type) ? JSONArray.toJSONString(permissionData.get("itemCode")) : null);
return permission;
}
/**
* 根据人员的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 = this.getBaseMapper().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);
if (!(jobItem == null || jobItem.isEmpty())) {
json.put("doNotDelJobItem",jobItem.stream().map(Object::toString).collect(Collectors.joining(",")));
}
return json;
} }
} }
\ No newline at end of file
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