Commit 8e3d7963 authored by hezhuozhi's avatar hezhuozhi

人员资质超期问题闭环处理

parent c3d6145f
package com.yeejoin.amos.boot.module.tcm.api.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import java.util.Map;
/**
* 安全追溯问题
*
* @author system_generator
* @date 2024-05-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "SafetyProblemTracingDto", description = "安全追溯问题")
public class SafetyProblemTracingDto extends BaseDto {
private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "问题编号")
private String problemNum;
@ApiModelProperty(value = "问题类型(维保超期、检验超期、资质超期等)")
private String problemType;
@ApiModelProperty(value = "问题类型图片")
private String problemTypePic;
@ApiModelProperty(value = "问题来源类型(1个人、2设备、3企业)")
private String sourceType;
@ApiModelProperty(value = "问题来源ID(个人ID、设备ID、企业ID)")
private String sourceId;
@ApiModelProperty(value = "问题描述")
private String problemDesc;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "问题产生查询开始时间")
private Date problemTimeStart;
@ApiModelProperty(value = "问题产生时间")
private Date problemTime;
@JsonFormat(pattern = "yyyy-MM-dd")
@ApiModelProperty(value = "问题产生查询结束时间")
private Date problemTimeEnd;
@ApiModelProperty(value = "主体单位名称")
private String principalUnit;
@ApiModelProperty(value = "主体单位统一代码")
private String principalUnitCode;
@ApiModelProperty(value = "主体单位类型(使用、安改维、检验检测等)")
private String principalUnitType;
@ApiModelProperty(value = "管辖机构名称")
private String governingBody;
@ApiModelProperty(value = "管辖机构单位代码")
private String governingBodyCode;
@ApiModelProperty(value = "管辖机构组织机构代码(例如50*60*70)")
private String governingBodyOrgCode;
@ApiModelProperty(value = "主体单位所属区域名称(陕西省/西安市/莲湖区)")
private String regionName;
@ApiModelProperty(value = "所属区域代码(6100000/6100010/6100011)")
private String regionCode;
@ApiModelProperty(value = "所属区域代码(6100000/6100010/6100011)")
private String cityCode;
@ApiModelProperty(value = "问题状态(0未处理、1已处理)")
private String problemStatus;
@ApiModelProperty(value = "问题状态代码(0未处理、1已处理)")
private String problemStatusCode;
@ApiModelProperty(value = "问题状态对象")
private Map<String, String> problemStatusObj;
@ApiModelProperty(value = "更新人员")
private String recUser;
@ApiModelProperty(value = "创建人ID")
private String createUserId;
@ApiModelProperty(value = "创建时间")
private Date createDate;
@ApiModelProperty(value = "创建人")
private String createUser;
@ApiModelProperty(value = "企业负责人")
private String unitCharger;
@ApiModelProperty(value = "企业负责人联系电话")
private String unitChargerPhone;
@ApiModelProperty(value = "设备监管码")
private String equipSuperviseCode;
@ApiModelProperty(value = "设备种类")
private String equipList;
@ApiModelProperty(value = "人员名称")
private String userName;
@ApiModelProperty(value = "人员电话")
private String userPhone;
@ApiModelProperty(value = "人员岗位")
private String userPost;
@ApiModelProperty(value = "扩展信息")
private String extraInfo;
@ApiModelProperty(value = "设备种类代码")
private String equipListCode;
@ApiModelProperty(value = "问题类型代码(维保超期、检验超期、资质超期等)")
private String problemTypeCode;
@ApiModelProperty(value = "问题来源类型code(1个人、2设备、3企业)")
private String sourceTypeCode;
@ApiModelProperty(value = "问题等级(一级、二级、三级)")
private String problemLevel;
@ApiModelProperty(value = "问题等级code")
private String problemLevelCode;
@ApiModelProperty(value = "隐患等级(红:隐患状态为未处理、黄:暂无、绿:隐患状态为已处理、灰:暂无)")
private String hiddenDangersLevel;
@ApiModelProperty(value = "设备类别code")
private String equCategoryCode;
@ApiModelProperty(value = "设备类别")
private String equCategory;
}
package com.yeejoin.amos.boot.module.tcm.api.entity;
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;
/**
* 安全追溯问题
*
* @author system_generator
* @date 2024-05-21
*/
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("tzs_safety_problem_tracing")
public class SafetyProblemTracing extends BaseEntity {
private static final long serialVersionUID = 1L;
/**
* 问题编号
*/
@TableField("problem_num")
private String problemNum;
/**
* 问题类型(维保超期、检验超期、资质超期等)
*/
@TableField("problem_type")
private String problemType;
/**
* 问题来源类型(1个人、2企业、3设备)
*/
@TableField("source_type")
private String sourceType;
/**
* 问题来源ID(个人ID、设备ID、企业ID)
*/
@TableField("source_id")
private String sourceId;
/**
* 问题描述
*/
@TableField("problem_desc")
private String problemDesc;
/**
* 问题产生时间
*/
@TableField("problem_time")
private Date problemTime;
/**
* 主体单位名称
*/
@TableField("principal_unit")
private String principalUnit;
/**
* 主体单位统一代码
*/
@TableField("principal_unit_code")
private String principalUnitCode;
/**
* 主体单位类型(使用、安改维、检验检测等)
*/
@TableField("principal_unit_type")
private String principalUnitType;
/**
* 管辖机构名称
*/
@TableField("governing_body")
private String governingBody;
/**
* 管辖机构单位代码
*/
@TableField("governing_body_code")
private String governingBodyCode;
/**
* 管辖机构组织机构代码(例如50*60*70)
*/
@TableField("governing_body_org_code")
private String governingBodyOrgCode;
/**
* 主体单位所属区域名称(陕西省/西安市/莲湖区)
*/
@TableField("region_name")
private String regionName;
/**
* 所属区域代码(6100000/6100010/6100011)
*/
@TableField("region_code")
private String regionCode;
/**
* 问题状态(0未处理、1已处理)
*/
@TableField("problem_status")
private String problemStatus;
/**
* 问题状态代码(0未处理、1已处理)
*/
@TableField("problem_status_code")
private String problemStatusCode;
/**
* 更新人员
*/
@TableField("rec_user")
private String recUser;
/**
* 创建人ID
*/
@TableField("create_user_id")
private String createUserId;
/**
* 创建时间
*/
@TableField("create_date")
private Date createDate;
/**
* 创建人
*/
@TableField("create_user")
private String createUser;
/**
* 企业负责人
*/
@TableField("unit_charger")
private String unitCharger;
/**
* 企业负责人联系电话
*/
@TableField("unit_charger_phone")
private String unitChargerPhone;
/**
* 设备监管码
*/
@TableField("equip_supervise_code")
private String equipSuperviseCode;
/**
* 设备种类
*/
@TableField("equip_list")
private String equipList;
/**
* 人员名称
*/
@TableField("user_name")
private String userName;
/**
* 人员电话
*/
@TableField("user_phone")
private String userPhone;
/**
* 人员岗位
*/
@TableField("user_post")
private String userPost;
/**
* 扩展信息
*/
@TableField("extraInfo")
private String extraInfo;
/**
* 设备种类代码
*/
@TableField("equip_list_code")
private String equipListCode;
/**
* 问题类型代码(维保超期、检验超期、资质超期等)
*/
@TableField("problem_type_code")
private String problemTypeCode;
/**
* 问题来源类型code(1个人、2企业、3设备)
*/
@TableField("source_type_code")
private String sourceTypeCode;
/**
* 问题等级(一级、二级、三级)
*/
@TableField("problem_level")
private String problemLevel;
/**
* 问题等级code
*/
@TableField("problem_level_code")
private String problemLevelCode;
}
package com.yeejoin.amos.boot.module.tcm.api.enums;
import lombok.Getter;
/**
* 业务类型枚举
*
* @author Administrator
*/
@Getter
public enum SafetyProblemSourceTypeEnum {
/**
* 问题主体类型
*/
UNIT("2", "企业"),
EQUIP("3", "设备"),
PERSONNEL("1", "个人");
private final String code;
private final String name;
SafetyProblemSourceTypeEnum(String code, String name) {
this.code = code;
this.name = name;
}
public static String getNameByType(String code) {
String name = null;
for (SafetyProblemSourceTypeEnum enumOne : SafetyProblemSourceTypeEnum.values()) {
if (enumOne.getCode().equals(code)) {
name = enumOne.getName();
break;
}
}
return name;
}
}
package com.yeejoin.amos.boot.module.tcm.api.enums;
import lombok.Getter;
/**
* 业务类型枚举
*
* @author Administrator
*/
@Getter
public enum SafetyProblemStatusEnum {
/**
* 问题主体类型
*/
UNHANDLED("0", "未处理", "red"),
HANDLED("1", "已处理", "green");
private final String code;
private final String name;
private final String color;
SafetyProblemStatusEnum(String code, String name, String color) {
this.code = code;
this.name = name;
this.color = color;
}
public static String getNameByType(String code) {
String name = null;
for (SafetyProblemStatusEnum enumOne : SafetyProblemStatusEnum.values()) {
if (enumOne.getCode().equals(code)) {
name = enumOne.getName();
break;
}
}
return name;
}
}
package com.yeejoin.amos.boot.module.tcm.api.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yeejoin.amos.boot.module.tcm.api.entity.SafetyProblemTracing;
/**
* 安全追溯问题 Mapper 接口
*
* @author system_generator
* @date 2024-05-21
*/
public interface SafetyProblemTracingMapper extends BaseMapper<SafetyProblemTracing> {
}
package com.yeejoin.amos.boot.module.tcm.api.service;
/**
* 安全追溯问题接口类
*
* @author system_generator
* @date 2024-05-21
*/
public interface ISafetyProblemTracingService {}
package com.yeejoin.amos.boot.module.tcm.biz.service.impl;
import com.yeejoin.amos.boot.module.tcm.api.dto.SafetyProblemTracingDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.SafetyProblemTracing;
import com.yeejoin.amos.boot.module.tcm.api.mapper.SafetyProblemTracingMapper;
import com.yeejoin.amos.boot.module.tcm.api.service.ISafetyProblemTracingService;
import org.springframework.stereotype.Service;
import org.typroject.tyboot.core.rdbms.service.BaseService;
/**
* 安全追溯问题服务实现类
*
* @author system_generator
* @date 2024-05-21
*/
@Service
public class SafetyProblemTracingServiceImpl extends BaseService<SafetyProblemTracingDto, SafetyProblemTracing, SafetyProblemTracingMapper> implements ISafetyProblemTracingService {
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.tcm.biz.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.tcm.api.dto.TzsUserInfoDto;
import com.yeejoin.amos.boot.module.tcm.api.entity.SafetyProblemTracing;
import com.yeejoin.amos.boot.module.tcm.api.enums.SafetyProblemSourceTypeEnum;
import com.yeejoin.amos.boot.module.tcm.api.enums.SafetyProblemStatusEnum;
import com.yeejoin.amos.boot.module.tcm.api.mapper.TzsUserPermissionMapper;
import com.yeejoin.amos.boot.module.tcm.api.service.ITzsUserPermissionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
......@@ -66,6 +72,8 @@ public class TzsUserPermissionServiceImpl extends BaseService<TzsUserPermissionD
public List<TzsUserPermissionDto> queryForTzsUserPermissionList() {
return this.queryForList("", false);
}
@Autowired
private SafetyProblemTracingServiceImpl safetyProblemTracingService;
/**
* 更新资质权限数据
......@@ -151,12 +159,35 @@ public class TzsUserPermissionServiceImpl extends BaseService<TzsUserPermissionD
.parseDefaulting(ChronoField.SECOND_OF_MINUTE, 0)
.toFormatter();
Object sequenceNbr = permissionData.get("sequenceNbr");
if(Objects.nonNull(sequenceNbr)){
permission.setSequenceNbr(Long.valueOf(String.valueOf(sequenceNbr)));
}
String expiryDateString = String.valueOf(Optional.ofNullable(permissionData.get("expiryDate")).orElse(""));
if (!ValidationUtil.isEmpty(expiryDateString)) {
LocalDate localDate1 = LocalDate.parse(expiryDateString, formatter);
LocalDateTime localDateTime1 = localDate1.atStartOfDay();
Date expiryDate = Date.from(localDateTime1.atZone(ZoneId.systemDefault()).toInstant());
permission.setExpiryDate(expiryDate);
//如果有效期大于当前日期,同时问题列表有未处理的问题,则修改成已处理
LocalDate now = LocalDate.now();
if(!localDate1.isBefore(now) && Objects.nonNull(sequenceNbr)){
LambdaQueryWrapper<SafetyProblemTracing> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SafetyProblemTracing::getSourceId,sequenceNbr)
.eq(SafetyProblemTracing::getSourceTypeCode, SafetyProblemSourceTypeEnum.PERSONNEL.getCode())
.eq(SafetyProblemTracing::getProblemStatusCode, SafetyProblemStatusEnum.UNHANDLED.getCode());
List<SafetyProblemTracing> safetyProblemTracingList = safetyProblemTracingService.list(wrapper);
if(CollUtil.isNotEmpty(safetyProblemTracingList)){
LambdaUpdateWrapper<SafetyProblemTracing> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.set(SafetyProblemTracing::getProblemStatusCode, SafetyProblemStatusEnum.HANDLED.getCode())
.set(SafetyProblemTracing::getProblemStatus, SafetyProblemStatusEnum.HANDLED.getName())
.set(SafetyProblemTracing::getRecDate,new Date())
.eq(SafetyProblemTracing::getSourceId,sequenceNbr)
.eq(SafetyProblemTracing::getSourceTypeCode, SafetyProblemSourceTypeEnum.PERSONNEL.getCode());
safetyProblemTracingService.update(updateWrapper);
}
}
}
String issueDateString = String.valueOf(Optional.ofNullable(permissionData.get("issueDate")).orElse(""));
......@@ -166,7 +197,6 @@ public class TzsUserPermissionServiceImpl extends BaseService<TzsUserPermissionD
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);
......
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