Commit 33c2e1d9 authored by 王果's avatar 王果

21052 更名变更登记校验设备是否在流程中

parent 4b46bb57
package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgChangeRegistrationNameDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgChangeRegistrationName;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
......@@ -30,4 +31,6 @@ public interface JgChangeRegistrationNameMapper extends BaseMapper<JgChangeRegis
@Param("roleIds") List<String> roleIds,
@Param("companyCode") String companyCode,
@Param("currentUserId") String exeUserId);
List<CompanyEquipCountDto> queryForFlowingEquipList();
}
......@@ -16,6 +16,13 @@ public interface IEquipUsedCheck {
void equipRepeatUsedCheck(String record, String companyCode);
/**
* 并发校验(页面同时提交或者页面同时打开多个时,某些使用登记证都是为使用状态)校验使用登记证流程在用状态及更新不在用为再使用状态
* @param record 设备唯一标识
* @param companyCode 登录人的公司代码
*/
void registrationRepeatUsedCheck(String record, String companyCode);
/**
* 删除流程中的数据,释放redis空间(异常处理及驳回到发起节点、撤回到发起节点、完成时时进行)
* @param records 设备唯一标识
* @param companyCode 登录人的公司代码
......
<?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.jg.api.mapper.JgChangeRegistrationNameMapper">
<select id="getEquipInfoByOrgCode" resultType="java.util.Map">
SELECT
u.RECORD AS equipId,
<select id="getEquipInfoByOrgCode" resultType="java.util.Map">
SELECT u.RECORD AS equipId,
o.SUPERVISORY_CODE AS supervisoryCode,
b.USE_ORG_CODE AS useOrgCode
FROM
idx_biz_jg_use_info u
FROM idx_biz_jg_use_info u
LEFT JOIN idx_biz_jg_register_info b ON u.RECORD = b.RECORD
LEFT JOIN idx_biz_jg_other_info o ON u.RECORD = o.RECORD
WHERE
USE_UNIT_CREDIT_CODE = #{code}
WHERE USE_UNIT_CREDIT_CODE = #{code}
</select>
<delete id="deleteByChangeRegistrationId">
delete from tzs_jg_change_registration_name_eq where name_change_registration_id = #{changeRegistrationId}
<delete id="deleteByChangeRegistrationId">
delete
from tzs_jg_change_registration_name_eq
where name_change_registration_id = #{changeRegistrationId}
</delete>
<select id="getListPage" resultType="java.util.Map">
<select id="getListPage" resultType="java.util.Map">
select ur.sequence_nbr as sequenceNbr,
ur.instance_id as instanceId,
ur.audit_status as auditStatus,
......@@ -38,7 +36,8 @@
ur.next_execute_user_ids as nextExecuteUserIds,
ur.next_task_id as nextTaskId,
(SELECT group_concat(use_registration_code) from tzs_jg_use_registration_manage where sequence_nbr in (SELECT
certificate_seq from tzs_jg_change_registration_name_eq where name_change_registration_id = ur.sequence_nbr)) as certificateCodes
certificate_seq from tzs_jg_change_registration_name_eq where name_change_registration_id = ur.sequence_nbr)) as
certificateCodes
from tzs_jg_change_registration_name ur
<where>
and ur.is_delete = 0
......@@ -66,11 +65,13 @@
</foreach>
</if>
<if test="dto.type == 'supervision'">
AND (ur.receive_company_code = #{companyCode} or ur.transfer_to_user_ids LIKE concat ('%', #{currentUserId}, '%'))
AND (ur.receive_company_code = #{companyCode} or ur.transfer_to_user_ids LIKE concat ('%',
#{currentUserId}, '%'))
AND ur.instance_id is not null
</if>
<if test="dto.type == 'company'">
and (ur.use_unit_credit_code = #{dto.useUnitCreditCode} or ur.transfer_to_user_ids LIKE concat ('%', #{currentUserId}, '%'))
and (ur.use_unit_credit_code = #{dto.useUnitCreditCode} or ur.transfer_to_user_ids LIKE concat ('%',
#{currentUserId}, '%'))
</if>
</where>
order by
......@@ -80,7 +81,18 @@
ur.rec_date desc
</select>
<delete id="deleteHistoryInfoById">
delete from tzs_jg_registration_history where current_document_id = #{code}
<delete id="deleteHistoryInfoById">
delete
from tzs_jg_registration_history
where current_document_id = #{code}
</delete>
<select id="queryForFlowingEquipList" resultType="com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto">
select a.use_unit_credit_code as companyCode,
group_concat(b.certificate_seq) as records
from tzs_jg_change_registration_name a,
tzs_jg_change_registration_name_eq b
where a.sequence_nbr = b.name_change_registration_id
and a.audit_status in ('三级待受理', '二级待受理', '一级待受理')
GROUP BY a.use_unit_credit_code
</select>
</mapper>
......@@ -36,12 +36,40 @@ public abstract class BaseEquipUsedCheckService implements IEquipUsedCheck {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
if (!isLocked) {
log.error("设备:{}在被其他业务使用,加锁失败", record);
throw new BadRequest("存在其他业务在使用设备,请刷新后重试!");
throw new BadRequest("设备已被其他流程使用,请刷新后重试!");
}
RBucket<Set<String>> RBucket = getRedisClient().getBucket(this.getFlowingEquipRedisKey(companyCode, getApplyBizType()));
Set<String> equipListOfUsed = RBucket.get();
if (equipListOfUsed != null && equipListOfUsed.contains(record)) {
throw new BadRequest("存在设备正在被其他流程使用,不允许重复提交!");
throw new BadRequest("设备已被其他流程使用,不允许重复提交!");
}
if (equipListOfUsed == null || equipListOfUsed.isEmpty()) {
equipListOfUsed = new TreeSet<>();
}
equipListOfUsed.add(record);
getRedisClient().getBucket(this.getFlowingEquipRedisKey(companyCode, getApplyBizType())).set(equipListOfUsed);
FlowingEquipRedisContext.setRedisKeyInfo(new FlowingEquipRedisKeyDTO(this.getFlowingEquipRedisKey(companyCode, getApplyBizType()), Collections.singletonList(record)));
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
}
@Override
public void registrationRepeatUsedCheck(String record, String companyCode) {
RLock lock = getRedisClient().getLock(this.getRepeatUsedCheckLockKey(companyCode, getApplyBizType(), record));
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
if (!isLocked) {
log.error("使用登记证:{}在被其他业务使用,加锁失败", record);
throw new BadRequest("使用登记证已被其他流程使用,请刷新后重试!");
}
RBucket<Set<String>> RBucket = getRedisClient().getBucket(this.getFlowingEquipRedisKey(companyCode, getApplyBizType()));
Set<String> equipListOfUsed = RBucket.get();
if (equipListOfUsed != null && equipListOfUsed.contains(record)) {
throw new BadRequest("使用登记证已被其他流程使用,不允许重复提交!");
}
if (equipListOfUsed == null || equipListOfUsed.isEmpty()) {
equipListOfUsed = new TreeSet<>();
......
......@@ -1363,17 +1363,17 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
String queryType = map.getString("QUERY_TYPE");
if (!ObjectUtils.isEmpty(queryType)) {
// 查询 安装告知【可告知设备列表】【USE_UNIT_CREDIT_CODE=== null || ""】
if (ValidationUtil.equals(queryType, "AZ")) {
if (ValidationUtil.equals(queryType, "AZ")) {//安装
BoolQueryBuilder nullOrEmptyQuery = QueryBuilders.boolQuery()
.mustNot(QueryBuilders.wildcardQuery("USE_UNIT_CREDIT_CODE", "*"));
boolMust.must(nullOrEmptyQuery);
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "installNotice");
} else if (ValidationUtil.equals(queryType, "WB")) {
} else if (ValidationUtil.equals(queryType, "WB")) {//维保
// 查询 维保备案【可绑定设备列表】【(EQU_STATE=== null || "")】
BoolQueryBuilder wbBuilder = QueryBuilders.boolQuery();
wbBuilder.mustNot(QueryBuilders.existsQuery("EQU_STATE"));
boolMust.must(wbBuilder);
} else if (ValidationUtil.equals(queryType, "SY")) {
} else if (ValidationUtil.equals(queryType, "SY")) {//使用
// 查询 使用登记【可选设备列表】【(EQU_STATUS=== null || "" ) && (USE_ORG_CODE(使用登记证编号) ==="" || null)】
BoolQueryBuilder syBuilder = QueryBuilders.boolQuery();
syBuilder.mustNot(QueryBuilders.existsQuery("EQU_STATE"));
......@@ -1393,6 +1393,7 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
syBuilder.must(QueryBuilders.wildcardQuery("USE_ORG_CODE", "*"));
boolMust.must(syBuilder);
}
// this.setRepeatUsedCheckFilterByType(boolMust,companyCode,queryType);
}
// 通用匹配规则,其他条件构建
......@@ -1635,6 +1636,44 @@ private SafetyProblemTracingMapper safetyProblemTracingMapper;
return result;
}
private void setRepeatUsedCheckFilterByType(BoolQueryBuilder boolMust, String companyCode, String queryType) {
if("AZ".equals(queryType)){//安装告知
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "installNotice");
}else if("GZ_GZ".equals(queryType)){//改造告知
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "renovationNoticeNew");
}else if("GZ_WX".equals(queryType)){//维修告知
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "maintainInfo");
}else if("GZ_YZ".equals(queryType)){//移装告知
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "transferNotice");
}else if("SY".equals(queryType)){//使用登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "useRegister");
}else if("DJ_GZ".equals(queryType)){//改造变更登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "changeRegistration");
}else if("DJ_YZ".equals(queryType)){//移装变更登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "changeRegistrationTransfer");
}else if("DJ_DW".equals(queryType)){//单位变更登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "unitChange");
}else if("DJ_GM".equals(queryType)){//更名变更登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "changeName");
}else if("BF_YZ".equals(queryType)){//注销
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "");
}else if("BF_ZX".equals(queryType)){//报废
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "");
}else if("SB_QY".equals(queryType)){//启用
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "");
}else if("SB_TY".equals(queryType)){//停用
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "");
}else if("WB_BA".equals(queryType)){//维保备案
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "maintenanceFiling");
}else if("SB_YJ".equals(queryType)){//设备移交
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "equipmentHandover");
}else if("QP_BG".equals(queryType)){//车用气瓶变更
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "vehicleGasCylinderChange");
}else if("QP_DJ".equals(queryType)){//车用气瓶登记
this.setRepeatUsedCheckFilterParam(boolMust, companyCode, "vehicleInformation");
}
}
/**
* 设备注册信息分页查询
*
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgChangeRegistrationNameMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgChangeRegistrationUnitMapper;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author Administrator
*/
@Component
@Slf4j
public class JgChangeRegistrationNameRegistrationUsedCheckImpl extends BaseEquipUsedCheckService {
private RedissonClient redissonClient;
private String bizType = "changeName";
private JgChangeRegistrationNameMapper mapper;
public JgChangeRegistrationNameRegistrationUsedCheckImpl(RedissonClient redissonClient, JgChangeRegistrationNameMapper mapper) {
this.redissonClient = redissonClient;
this.mapper = mapper;
}
@Override
public RedissonClient getRedisClient() {
return redissonClient;
}
@Override
public String getApplyBizType() {
return bizType;
}
@Override
public void init() {
// 初始化在流程中设备数据
List<CompanyEquipCountDto> companyEquipCountDtos = mapper.queryForFlowingEquipList();
companyEquipCountDtos.forEach(c -> {
RBucket<Set<String>> rBucket = redissonClient.getBucket(getFlowingEquipRedisKey(c.getCompanyCode(), bizType));
rBucket.set(Arrays.stream(c.getRecords().split(",")).collect(Collectors.toSet()));
});
}
}
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
......@@ -17,22 +16,20 @@ import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgCertificateChangeRecordEqService;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationNameService;
import com.yeejoin.amos.boot.module.jg.api.service.IJgRegistrationHistoryService;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.common.DateUtils;
import com.yeejoin.amos.boot.module.ymt.api.common.StringUtil;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgOtherInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.TzBaseEnterpriseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.UseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.UseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.flc.api.entity.RegUnitInfo;
import com.yeejoin.amos.boot.module.ymt.flc.api.feign.AccessFeignService;
......@@ -56,7 +53,6 @@ import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
......@@ -92,18 +88,6 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
WorkFlowFeignService workFlowFeignService;
@Autowired
private JgChangeRegistrationReformEqMapper jgChangeRegistrationReformEqMapper;
@Autowired
private JgChangeRegistrationTransferEqMapper jgChangeRegistrationTransferEqMapper;
@Autowired
private JgUseRegistrationEqMapper jgUseRegistrationEqMapper;
@Autowired
private JgChangeRegistrationUnitEqMapper jgChangeRegistrationUnitEqMapper;
@Autowired
private JgChangeRegistrationNameEqMapper jgChangeRegistrationNameEqMapper;
@Autowired
......@@ -128,6 +112,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
TzBaseEnterpriseInfoMapper baseEnterpriseInfoMapper;
public final static String CHANGE_NAME = "更名变更";
public final static String CHANGE_NAME_KEY = "changeName";
private final List<String> NOT_FLOWING_STATE = Arrays.asList("使用单位待提交", "一级受理已驳回", "使用单位已撤回", "已作废", "已完成");
public static String JG_COMAPNY_TYPE = "监管机构";
private static String template = "发起【更名变更登记】业务申请,【申请单号:%s】";
......@@ -169,7 +155,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgChangeRegistrationNameEq.setCreateUserId(reginParams.getUserModel().getUserId());
jgChangeRegistrationNameEq.setCreateUserName(reginParams.getUserModel().getRealName());
jgChangeRegistrationNameEq.setCertificateSeq(item.getSequenceNbr().toString());
List<JSONObject> equipInfo = jsonObjects.stream().filter(a -> item.getUseRegistrationCode().equals(a.get("USE_ORG_CODE"))).collect(Collectors.toList());
List<JSONObject> equipInfo = jsonObjects.stream().filter(a -> a.get("USE_ORG_CODE").equals(item.getUseRegistrationCode())).collect(Collectors.toList());
jgChangeRegistrationNameEq.setEquipInfo(JSONObject.toJSONString(equipInfo));
jgChangeRegistrationNameEq.setIsInvalid("0");
jgChangeRegistrationNameEqs.add(jgChangeRegistrationNameEq);
......@@ -216,6 +202,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public JgChangeRegistrationName save(String submitType, Map<String, JSONObject> jgRegistrationInfoMap) {
try {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String[] taskName = new String[]{"流程结束"};
JSONObject jgRegistrationInfo = jgRegistrationInfoMap.get("jgRegistrationInfo");
......@@ -230,6 +217,17 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
if (CollectionUtils.isEmpty(applyNoList)) {
return null;
}
if ("1".equals(submitType)) {
JSONArray objects = JSONObject.parseArray(jgRegistrationInfo.get("dataList").toString());
List<Map<String, Object>> equipList = new ArrayList<>();
for (Object object : objects) {
JSONObject jsonObject = JSON.parseObject(object.toString());
Map<String, Object> map = new HashMap<>();
map.put("SEQUENCE_NBR", jsonObject.get("sequenceNbr"));
equipList.add(map);
}
this.repeatUsedEquipCheck(equipList, reginParams.getCompany().getCompanyCode());
}
List<ProcessTaskDTO> processTasks = new ArrayList<>();
// 判断当前是否为提交
String instanceId = "";
......@@ -289,10 +287,46 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
updateHistory(jgRegistrationInfoMap, dto.getSequenceNbr().toString());
// 创建代办
this.createTaskModel(dto, taskName[0], submitType, nextUserIds);
if(StringUtil.isNotEmpty(dto.getInstanceId())){
if (StringUtil.isNotEmpty(dto.getInstanceId())) {
commonService.saveExecuteFlowData2Redis(dto.getInstanceId(), this.buildInstanceRuntimeData(dto));
}
return dto;
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw e;
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
}
private void repeatUsedEquipCheck(List<Map<String, Object>> equipList, String companyCode) {
equipList.forEach(equipMap -> EquipUsedCheckStrategyContext.getUsedStrategy(CHANGE_NAME_KEY)
.registrationRepeatUsedCheck(String.valueOf(equipMap.get("SEQUENCE_NBR")), companyCode));
}
/**
* 删除 redis校验重复引用设备的数据
*/
private void delRepeatUseEquipData(JgChangeRegistrationName notice) {
if (NOT_FLOWING_STATE.contains(notice.getAuditStatus())) {
LambdaQueryWrapper<JgChangeRegistrationNameEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgChangeRegistrationNameEq::getNameChangeRegistrationId, notice.getSequenceNbr());
List<JgChangeRegistrationNameEq> noticeEqList = jgChangeRegistrationNameEqMapper.selectList(queryWrapper);
noticeEqList.forEach(noticeEq -> EquipUsedCheckStrategyContext.getUsedStrategy(CHANGE_NAME_KEY)
.delDataForCheckEquipRepeatUsed(Collections.singletonList(noticeEq.getCertificateSeq()), notice.getUseUnitCreditCode())
);
}
}
private void rollBackForDelRedisData() {
FlowingEquipRedisContext.getContext().forEach(
e -> EquipUsedCheckStrategyContext.getUsedStrategy(CHANGE_NAME_KEY)
.delDataForCheckWithKey(e.getData(), e.getRedisKey()));
}
private String getReceiveCompanyCode(JgChangeRegistrationNameDto model) {
......@@ -396,10 +430,23 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
List<String> roleListAll = new ArrayList<>();
JgChangeRegistrationName jgChangeRegistrationName = this.getById(jgChangeRegistrationNameDto.getSequenceNbr());
BeanUtil.copyProperties(jgChangeRegistrationNameDto, jgChangeRegistrationName);
if ("1".equals(submitType)) {
LambdaQueryWrapper<JgChangeRegistrationNameEq> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgChangeRegistrationNameEq::getNameChangeRegistrationId, jgChangeRegistrationNameDto.getSequenceNbr());
List<JgChangeRegistrationNameEq> noticeEqList = jgChangeRegistrationNameEqMapper.selectList(queryWrapper);
List<Map<String, Object>> equipList = new ArrayList<>();
for (JgChangeRegistrationNameEq eq : noticeEqList) {
Map<String, Object> map = new HashMap<>();
map.put("SEQUENCE_NBR", eq.getCertificateSeq());
equipList.add(map);
}
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
this.repeatUsedEquipCheck(equipList, reginParams.getCompany().getCompanyCode());
}
if ("1".equals(submitType)) {
//发起流程
if (!StringUtils.hasText(jgChangeRegistrationName.getInstanceId())) {
List<ProcessTaskDTO> processTasks = new ArrayList<>();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
......@@ -545,7 +592,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
for (Long seq : ids) {
JgChangeRegistrationName jgChangeRegistrationName = this.baseMapper.selectById(seq);
// 删除代办 + 中止流程
commonService.deleteTaskModel(String.valueOf(seq),jgChangeRegistrationName.getInstanceId());
commonService.deleteTaskModel(String.valueOf(seq), jgChangeRegistrationName.getInstanceId());
// 删除单子
this.baseMapper.deleteById(seq);
// 删除单子对应eq
......@@ -565,7 +612,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回)
if(!isLocked){
if (!isLocked) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
commonService.checkForRevocationFlow(taskId, instanceId);
......@@ -606,10 +653,11 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
// 保存redis最新流程数据
commonService.saveExecuteFlowData2Redis(jgChangeRegistrationName.getInstanceId(), this.buildInstanceRuntimeData(jgChangeRegistrationName));
this.delRepeatUseEquipData(jgChangeRegistrationName);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if(lock.isHeldByCurrentThread()){
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
......@@ -637,7 +685,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回)
if(!isLocked){
if (!isLocked) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 流程执行时,状态及权限校验
......@@ -663,17 +711,17 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(taskId, dto, operate);
// 更新下一步执行人、创建待办
updateExecuteIds(instanceId, id, operate, processTaskDTO);
this.delRepeatUseEquipData(jgChangeRegistrationName);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if(lock.isHeldByCurrentThread()){
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
}
private String getNextUserOrgCode(String operate, JgChangeRegistrationName jgChangeRegistrationName) {
if ("0".equals(operate)) {
// 执行通过节点,单位code为接收机构单位信息
......@@ -849,7 +897,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
}
// 修改证管理信息
List<String> collect = list.stream().map(JgChangeRegistrationNameEq::getCertificateSeq).collect(Collectors.toList());
if (!ObjectUtils.isEmpty(collect)){
if (!ObjectUtils.isEmpty(collect)) {
LambdaQueryWrapper<JgUseRegistrationManage> lambda = new QueryWrapper<JgUseRegistrationManage>().lambda();
lambda.in(JgUseRegistrationManage::getSequenceNbr, collect);
JgUseRegistrationManage jgUseRegistrationManage = new JgUseRegistrationManage();
......@@ -943,7 +991,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgChangeRegistrationName = this.baseMapper.selectById(sequenceNbr);
jgChangeRegistrationName.setReceiveOrgCode(jgChangeRegistrationName.getReceiveCompanyCode() + "_" + jgChangeRegistrationName.getReceiveOrgName());
// 页面可编辑(当前登录人是发起人)且符合这个 监管机构 false
if(!JG_COMAPNY_TYPE.equals(reginParams.getCompany().getCompanyType())){
if (!JG_COMAPNY_TYPE.equals(reginParams.getCompany().getCompanyType())) {
dtoMap.put("isInProvince", this.justIsInProvince(reginParams.getCompany().getCompanyCode()));
} else {
dtoMap.put("isInProvince", false);
......@@ -969,9 +1017,9 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
return map;
}
private Boolean justIsInProvince(String companyCode){
private Boolean justIsInProvince(String companyCode) {
TzBaseEnterpriseInfo baseEnterpriseInfo = baseEnterpriseInfoMapper.selectOne(new LambdaQueryWrapper<TzBaseEnterpriseInfo>().eq(TzBaseEnterpriseInfo::getUseCode, companyCode));
if(baseEnterpriseInfo == null ){
if (baseEnterpriseInfo == null) {
log.warn(companyCode + "无企业信息");
return false;
}
......@@ -984,7 +1032,7 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
}
public Page<Map<String, Object>> getList(JgChangeRegistrationNameDto dto,String sort, Page<Map<String, Object>> page, List<String> roleIds, String companyCode) {
public Page<Map<String, Object>> getList(JgChangeRegistrationNameDto dto, String sort, Page<Map<String, Object>> page, List<String> roleIds, String companyCode) {
if (org.apache.commons.lang3.StringUtils.isNotBlank(dto.getReceiveOrgCode())) {
String[] receiveOrgIdList = dto.getReceiveOrgCode().split("_");
if (receiveOrgIdList.length > 1) {
......@@ -993,6 +1041,6 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
}
}
SortVo sortMap = commonService.sortFieldConversion(sort);
return this.baseMapper.getListPage(page,sortMap, dto, roleIds, companyCode, RequestContext.getExeUserId());
return this.baseMapper.getListPage(page, sortMap, dto, roleIds, companyCode, RequestContext.getExeUserId());
}
}
\ No newline at end of file
......@@ -322,7 +322,7 @@ public class JgChangeRegistrationReformServiceImpl extends BaseService<JgChangeR
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("使用登记保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......
......@@ -421,7 +421,7 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("安装告知保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......@@ -642,7 +642,7 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("安装告知保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......
......@@ -353,7 +353,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("安装告知保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......@@ -538,7 +538,7 @@ public class JgMaintainNoticeServiceImpl extends BaseService<JgMaintainNoticeDto
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("安装告知保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......
......@@ -268,7 +268,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("安装告知保存失败!");
throw new BadRequest("改造告知保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......@@ -471,7 +471,7 @@ public class JgReformNoticeServiceImpl extends BaseService<JgReformNoticeDto, Jg
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("安装告知保存失败!");
throw new BadRequest("知保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......
......@@ -404,7 +404,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("安装告知保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......@@ -483,7 +483,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("安装告知保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......
......@@ -607,7 +607,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("使用登记保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......@@ -814,7 +814,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("使用登记保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......@@ -2796,7 +2796,7 @@ public class JgUseRegistrationServiceImpl extends BaseService<JgUseRegistrationD
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("使用登记保存失败!");
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
......
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