Commit 97bcd858 authored by 刘林's avatar 刘林

fix(jg):移装变更接口修改

parent 489273ed
......@@ -64,4 +64,10 @@ public class JgChangeRegistrationTransferEq extends BaseEntity {
@TableField("device_info")
private String deviceInfo;
/**
* 使用登记证
*/
@TableField("use_registration_code")
private String useRegistrationCode;
}
......@@ -29,4 +29,6 @@ public interface JgChangeRegistrationTransferMapper extends BaseMapper<JgChangeR
@Select("select name from tz_equipment_category where code=#{code}")
String getEquiplistNameByEquiplist(String code);
List<String> queryForFlowingEquipList();
}
......@@ -110,5 +110,7 @@
</if>
recDate desc
</select>
<select id="queryForFlowingEquipList" resultType="java.lang.String">
select change_data from tzs_jg_registration_history WHERE registration_class = '移装变更登记'
</select>
</mapper>
......@@ -49,14 +49,6 @@ public class JgChangeRegistrationTransferController extends BaseController {
@ApiOperation(httpMethod = "POST", value = "新增移装变更登记登记", notes = "新增移装变更登记登记")
public ResponseModel<Object> save(@RequestParam(value = "submitType") String submitType,
@RequestBody JSONObject map) {
Map<String, Object> tableData = (Map<String, Object>) map.get(TABLE_PAGE_ID);
if(ValidationUtil.isEmpty(tableData)){
throw new BadRequest("参数校验失败.");
}
String equId = (String) tableData.get("record");
if(ValidationUtil.isEmpty(equId)){
throw new BadRequest("参数校验失败.");
}
ReginParams reginParams = getSelectedOrgInfo();
return ResponseHelper.buildResponse(jgChangeRegistrationTransferService.createTransfer(submitType, map, reginParams));
}
......@@ -72,14 +64,6 @@ public class JgChangeRegistrationTransferController extends BaseController {
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新移装变更登记登记", notes = "根据sequenceNbr更新移装变更登记登记")
public ResponseModel<Object> updateBySequenceNbr(@RequestParam(value = "submitType") String submitType,
@RequestBody JSONObject map) {
Map<String, Object> tableData = (Map<String, Object>) map.get(TABLE_PAGE_ID);
if(ValidationUtil.isEmpty(tableData)){
throw new BadRequest("参数校验失败.");
}
String equId = (String) tableData.get("sequenceNbr");
if(ValidationUtil.isEmpty(equId)){
throw new BadRequest("参数校验失败.");
}
ReginParams reginParams = getSelectedOrgInfo();
return ResponseHelper.buildResponse(jgChangeRegistrationTransferService.updateTransfer(submitType, map, reginParams));
}
......
......@@ -2,12 +2,13 @@ package com.yeejoin.amos.boot.module.jg.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.baomidou.mybatisplus.core.toolkit.Sequence;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.ImmutableMap;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
......@@ -23,9 +24,13 @@ import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationTransferEqService;
import com.yeejoin.amos.boot.module.jg.api.service.IJgChangeRegistrationTransferService;
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.biz.service.ICommonService;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgOtherInfoService;
import com.yeejoin.amos.boot.module.jg.biz.service.IIdxBizJgUseInfoService;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
......@@ -46,6 +51,7 @@ import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.ObjectUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.Bean;
......@@ -60,6 +66,7 @@ import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistrationServiceImpl.getAuditPassedDate;
/**
......@@ -72,6 +79,7 @@ import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgUseRegistration
public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChangeRegistrationTransferDto, JgChangeRegistrationTransfer, JgChangeRegistrationTransferMapper> implements IJgChangeRegistrationTransferService {
private static final String PROCESS_DEFINITION_KEY = "changeRegistrationTransfer";
private static final String TABLE_PAGE_ID = "changeRegistrationTransfer";
private final List<String> NOT_FLOWING_STATE = Arrays.asList("使用单位待提交", "一级受理已驳回", "使用单位已撤回", "已作废", "已完成");
@Autowired
RestHighLevelClient restHighLevelClient;
@Autowired
......@@ -128,6 +136,8 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
private JgCertificateChangeRecordEqServiceImpl certificateChangeRecordEqService;
@Autowired
private JgUseRegistrationManageServiceImpl useRegistrationManageService;
@Autowired
private IIdxBizJgOtherInfoService otherInfoService;
/**
* 新增移装变更登记
......@@ -137,8 +147,9 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @return
*/
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public List<JgChangeRegistrationTransferDto> createTransfer(String submitType, JSONObject map, ReginParams reginParams) {
try {
Map<String, Object> tableData = (Map<String, Object>) map.get(TABLE_PAGE_ID);
if (ValidationUtil.isEmpty(tableData)) {
throw new BadRequest("参数校验失败.");
......@@ -167,6 +178,11 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
throw new BadRequest("使用登记证不能为空");
}
if ("1".equals(submitType)) {
this.repeatUsedEquipCheck(registrationIdList, reginParams.getCompany().getCompanyCode());
}
//查询证下的设备
List<JSONObject> deviceList = registrationManageService.queryEquByCertificateSeqList(registrationIdList);
// 获取单位变更设备列表
if (CollectionUtils.isEmpty(deviceList)) {
......@@ -304,12 +320,13 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
List<JgChangeRegistrationTransferEq> oldTransferEqList = new ArrayList<>(Collections.emptyList());
deviceList.forEach(device -> {
JgChangeRegistrationTransferEq equip = new JgChangeRegistrationTransferEq();
equip.setEquipTransferId(sequenceNbr);
equip.setEquId((String) device.get("RECORD"));
equip.setEquList((String) device.get("EQU_LIST"));
equip.setEquCategory((String) device.get("EQU_CATEGORY"));
equip.setEquDefine((String) device.get("EQU_DEFINE"));
equip.setEquipTransferId(String.valueOf(finalOldTransfer.getSequenceNbr()));
equip.setEquId((String) device.get("SEQUENCE_NBR"));
equip.setEquList((String) device.get("EQU_LIST_CODE"));
equip.setEquCategory((String) device.get("EQU_CATEGORY_CODE"));
equip.setEquDefine((String) device.get("EQU_DEFINE_CODE"));
equip.setDeviceInfo(JSONObject.toJSONString(device));
equip.setUseRegistrationCode((String) device.get("USE_ORG_CODE"));
oldTransferEqList.add(equip);
});
jgChangeRegistrationTransferEqService.saveBatch(oldTransferEqList);
......@@ -366,6 +383,17 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
resultDto.setEquCode((String) tableData.get("equCode"));
resultDto.setInnerCode((String) tableData.get("useInnerCode"));
return Collections.singletonList(resultDto);
} 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();
}
}
/**
......@@ -375,6 +403,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @return
*/
@GlobalTransactional(rollbackFor = Exception.class)
@Transactional(rollbackFor = Exception.class)
public List<JgChangeRegistrationTransferDto> updateTransfer(String submitType, JSONObject map, ReginParams reginParams) {
return this.createTransfer(submitType, map, reginParams);
}
......@@ -403,7 +432,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if(!isLocked){
if (!isLocked) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 流程执行时,状态及权限校验
......@@ -431,10 +460,11 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
workflowResult = commonService.buildWorkFlowInfo(Collections.singletonList(complete)).get(0);
// 更新下一步执行人
this.updateExecuteIds(instanceId, transfer, operate, workflowResult);
delRepeatUseEquipData(transfer);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if(lock.isHeldByCurrentThread()){
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
......@@ -453,7 +483,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if(!isLocked){
if (!isLocked) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 撤回校验
......@@ -496,10 +526,11 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
// redis流程实时数据更新
commonServiceImpl.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(jgTransfer));
delRepeatUseEquipData(jgTransfer);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if(lock.isHeldByCurrentThread()){
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
......@@ -528,7 +559,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
for (Long sequenceNbr : sequenceNbrs) {
JgChangeRegistrationTransfer registrationTransfer = this.baseMapper.selectById(sequenceNbr);
// 删除代办 + 中止流程
commonService.deleteTaskModel(String.valueOf(sequenceNbr),registrationTransfer.getInstanceId());
commonService.deleteTaskModel(String.valueOf(sequenceNbr), registrationTransfer.getInstanceId());
// 删除单子
this.baseMapper.deleteById(sequenceNbr);
// 删除单子对应eq
......@@ -546,6 +577,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
/**
* 根据移装变更记录sequenceNbr查询详情
*
* @param sequenceNbr 变更记录sequenceNbr
* @return
*/
......@@ -556,31 +588,32 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
//移装变更详情
JgChangeRegistrationTransfer transfer = this.getById(sequenceNbr);
//查询设备详情
String equipId = jgChangeRegistrationTransferEqMapper.getEquipIdByEquipTransferId(sequenceNbr);
//String equipId = jgChangeRegistrationTransferEqMapper.getEquipIdByEquipTransferId(sequenceNbr);
if (ValidationUtil.equals(FlowStatusEnum.TO_BE_FINISHED.getName(), transfer.getStatus())) {
// 执行完成时查询历史表
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, transfer.getApplyNo()));
if (!ValidationUtil.isEmpty(historyData)) {
Map<String,Object> newPosition = JSON.parseObject(historyData.getChangeData(),Map.class);
Map<String, Object> newPosition = JSON.parseObject(historyData.getChangeData(), Map.class);
resultDataMap.putAll(newPosition);
if (!ValidationUtil.isEmpty(transfer)) {
Map<String, Object> transferToMap = Bean.BeantoMap(transfer);
transferToMap.put("receiveCompanyCode", transfer.getReceiveCompanyCode() + "_" + transfer.getReceiveOrgName());
resultDataMap.putAll(transferToMap);
}
}
} else {
// 非执行完成状态显示最新设备信息
Map<String, Object> equipDetailMap = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equipId);
resultDataMap.putAll(equipDetailMap);
//Map<String, Object> equipDetailMap = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(equipId);
//resultDataMap.putAll(equipDetailMap);
if (!ValidationUtil.isEmpty(transfer)) {
Map<String, Object> transferToMap = Bean.BeantoMap(transfer);
resultDataMap.putAll(transferToMap);
}
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, transfer.getApplyNo()));
Map<String,Object> changeData = JSON.parseObject(historyData.getChangeData(),Map.class);
Map<String, Object> changeData = JSON.parseObject(historyData.getChangeData(), Map.class);
// 省市区街道字段等业务字段
resultDataMap.put("transferProvince", changeData.get("transferProvince"));
resultDataMap.put("transferCity", changeData.get("transferCity"));
......@@ -595,15 +628,15 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
resultDataMap.put("transferSafetyManager", changeData.get("transferSafetyManager"));
resultDataMap.put("transferPhone", changeData.get("transferPhone"));
resultDataMap.put("transferUseInfo", changeData.get("transferUseInfo"));
resultDataMap.put("useInnerCode", equipDetailMap.get("equCode"));
//resultDataMap.put("useInnerCode", equipDetailMap.get("equCode"));
resultDataMap.put("receiveCompanyCode", transfer.getReceiveCompanyCode() + "_" + transfer.getReceiveOrgName());
resultDataMap.put("registrationList", changeData.get("registrationList"));
}
String transferSafetyManager = Optional.ofNullable(resultDataMap.get("transferSafetyManager")).orElse("").toString();
if(StringUtil.isNotEmpty(transferSafetyManager)){
if (StringUtil.isNotEmpty(transferSafetyManager)) {
String[] transferSafetyManagerList = transferSafetyManager.split("_");
if(transferSafetyManagerList.length>1){
resultDataMap.put("transferSafetyManagerName",transferSafetyManagerList[1]);
if (transferSafetyManagerList.length > 1) {
resultDataMap.put("transferSafetyManagerName", transferSafetyManagerList[1]);
}
}
if (!resultDataMap.isEmpty()) {
......@@ -612,6 +645,34 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
return pageDataMap;
}
private void repeatUsedEquipCheck(List<Long> equipList, String companyCode) {
equipList.forEach(equipMap -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.registrationRepeatUsedCheck(String.valueOf(equipMap), companyCode));
}
/**
* 删除 redis校验重复引用设备的数据
*/
private void delRepeatUseEquipData(JgChangeRegistrationTransfer transfer) {
if (NOT_FLOWING_STATE.contains(transfer.getAuditStatus())) {
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, transfer.getApplyNo()));
JSONObject historyJson = JSON.parseObject(historyData.getChangeData());
List<Map<String, Object>> registrationList = (List<Map<String, Object>>) historyJson.get("registrationList");
List<String> ids = registrationList.stream().map(v -> JSON.parseObject(v.toString()).getString("sequenceNbr")).collect(Collectors.toList());
ids.forEach(id -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.delDataForCheckEquipRepeatUsed(Collections.singletonList(id), transfer.getUseUnitCreditCode())
);
}
}
private void rollBackForDelRedisData() {
FlowingEquipRedisContext.getContext().forEach(
e -> EquipUsedCheckStrategyContext.getUsedStrategy(PROCESS_DEFINITION_KEY)
.delDataForCheckWithKey(e.getData(), e.getRedisKey()));
}
/**
* 分页查询
*
......@@ -622,10 +683,10 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @return
*/
@Override
public Page<Map<String, Object>> queryListForPage(Page<Map<String, Object>> page,String sort, JgChangeRegistrationTransferDto params, String companyTypeCode, String companyType) {
public Page<Map<String, Object>> queryListForPage(Page<Map<String, Object>> page, String sort, JgChangeRegistrationTransferDto params, String companyTypeCode, String companyType) {
SortVo sortMap = commonService.sortFieldConversion(sort);
Page<Map<String, Object>> listPage = this.baseMapper.getListPage(page,sortMap, params, companyTypeCode, RequestContext.getExeUserId());
listPage.getRecords().forEach(x-> x.put("companyType",companyType));
Page<Map<String, Object>> listPage = this.baseMapper.getListPage(page, sortMap, params, companyTypeCode, RequestContext.getExeUserId());
listPage.getRecords().forEach(x -> x.put("companyType", companyType));
return listPage;
}
......@@ -715,7 +776,8 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
//流程执行完成后,更新设备使用信息
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, jgChangeRegistrationTransfer.getApplyNo()));
this.updateByFlowEnd(jgChangeRegistrationTransfer.getSequenceNbr().toString(), jgChangeRegistrationTransfer.getSupervisoryCode(), historyData);
this.updateByFlowEnd(jgChangeRegistrationTransfer.getSequenceNbr().toString(), historyData);
HashMap<String, Object> map = new HashMap<>();
map.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
map.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
......@@ -723,10 +785,9 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
map.put("flowStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
map.put("relationId", jgChangeRegistrationTransfer.getInstanceId());
map.put("model", jgChangeRegistrationTransfer);
commonService.updateTaskModel(map);
TaskV2Model taskV2Model = commonService.updateTaskModel(map);
//新增使用登记证和设备变更记录
this.saveChangeRecord(jgChangeRegistrationTransfer);
this.saveChangeRecord(jgChangeRegistrationTransfer, taskV2Model);
}
// redis流程实时数据更新
......@@ -734,20 +795,57 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
this.getBaseMapper().updateById(jgChangeRegistrationTransfer);
}
public void saveChangeRecord(JgChangeRegistrationTransfer transfer) {
private Map<String, String> createSupervisoryCode(JgRegistrationHistory historyData) {
Map<String, Object> changeData = JSON.parseObject(historyData.getChangeData(), Map.class);
List<JSONObject> registrationList = (List<JSONObject>) changeData.get("registrationList");
String equCategoryCode = Optional.ofNullable(registrationList)
.flatMap(list -> list.stream()
.findFirst()
.map(json -> json.getString("equCategoryCode")))
.orElse("");
String cityCode = Optional.ofNullable((String) changeData.get("transferCity"))
.map(s -> s.split("_")[0])
.orElse("");
String countyCode = Optional.ofNullable((String) changeData.get("transferCounty"))
.map(s -> s.split("_")[0])
.orElse("");
String isXiXian = "0".equals(changeData.get("transferIsXixian")) ? "null" : "1";
ImmutableMap<String, Object> map = ImmutableMap.<String, Object>builder()
.put("cityCode", cityCode)
.put("countyCode", countyCode)
.put("equCategory", equCategoryCode)
.put("isXiXian", isXiXian)
.build();
Map<String, Object> result = tzsServiceFeignClient.createCode(map).getResult();
return ImmutableMap.<String, String>builder()
.put("superviseCode", Optional.ofNullable(result)
.map(r -> (String) r.get("superviseCode"))
.orElse(""))
.put("code96333", Optional.ofNullable(result)
.map(r -> (String) r.get("code96333"))
.orElse(""))
.build();
}
public void saveChangeRecord(JgChangeRegistrationTransfer transfer, TaskV2Model taskV2Model) {
List<JgChangeRegistrationTransferEq> eqList = jgChangeRegistrationTransferEqService.lambdaQuery().eq(JgChangeRegistrationTransferEq::getEquipTransferId, transfer.getSequenceNbr()).list();
JgRegistrationHistory historyData = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>()
.eq(JgRegistrationHistory::getCurrentDocumentId, transfer.getApplyNo()));
List<JgCertificateChangeRecord> changeRecordList = new ArrayList<>();
List<JgCertificateChangeRecordEq> changeRecordEqList = new ArrayList<>();
JSONArray historyJson = JSON.parseArray(historyData.getChangeData());
for (Object object : historyJson) {
JgCertificateChangeRecord changeRecord = new JgCertificateChangeRecord();
JSONObject historyJson = JSON.parseObject(historyData.getChangeData());
List<Map<String, Object>> registrationList = (List<Map<String, Object>>) historyJson.get("registrationList");
registrationList.forEach(registration -> {
long nextId = sequence.nextId();
JSONObject jsonObject = JSON.parseObject(object.toString());
String registrationCode = jsonObject.getString("useRegistrationCode");
String certificateNo = jsonObject.getString("certificateNo");
String equCategoryCode = jsonObject.getString("equCategoryCode");
JgCertificateChangeRecord changeRecord = new JgCertificateChangeRecord();
String registrationCode = (String) registration.get("useRegistrationCode");
String certificateNo = (String) registration.get("certificateNo");
String equCategoryCode = (String) registration.get("equCategoryCode");
changeRecord.setApplyNo(transfer.getApplyNo());
changeRecord.setReceiveOrgName(transfer.getReceiveOrgName());
changeRecord.setAuditPassDate(transfer.getAuditPassDate());
......@@ -762,8 +860,11 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
changeRecord.setEquCategory(equCategoryCode);
changeRecord.setCreateDate(new Date());
changeRecord.setSequenceNbr(nextId);
changeRecord.setRoutePath(taskV2Model.getRoutePath());
changeRecordList.add(changeRecord);
for (JgChangeRegistrationTransferEq transferEq : eqList) {
if (!StringUtils.isEmpty(transferEq.getUseRegistrationCode()) && !StringUtils.isEmpty(registrationCode) &&
transferEq.getUseRegistrationCode().equals(registrationCode)) {
JSONObject deviceJson = JSON.parseObject(transferEq.getDeviceInfo());
JgCertificateChangeRecordEq changeRecordEq = new JgCertificateChangeRecordEq();
changeRecordEq.setChangeRecordId(String.valueOf(nextId));
......@@ -771,6 +872,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
changeRecordEqList.add(changeRecordEq);
}
}
});
if (!changeRecordList.isEmpty()) {
certificateChangeRecordService.saveBatch(changeRecordList);
}
......@@ -782,16 +884,15 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
private String buildRecordContent(JgChangeRegistrationTransfer obj) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日");
return obj.getCreateUserName() + "办理了【移装变更登记】,单号【"
+ obj.getApplyNo() + "】,移装后地址为"+ obj.getFullAddress() + ",申请日期" + simpleDateFormat.format(obj.getCreateDate());
+ obj.getApplyNo() + "】,移装后地址为" + obj.getFullAddress() + ",申请日期" + simpleDateFormat.format(obj.getCreateDate());
}
/**
* 流程结束后需要更新的数据
*
* @param sequenceNbr 移装变更单Id
* @param supervisoryCode 监管码
*/
public void updateByFlowEnd(String sequenceNbr, String supervisoryCode, JgRegistrationHistory historyData) {
public void updateByFlowEnd(String sequenceNbr, JgRegistrationHistory historyData) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
JgChangeRegistrationTransfer transfer = this.getBaseMapper().selectById(sequenceNbr);
LambdaQueryWrapper<JgChangeRegistrationTransferEq> lambda = new QueryWrapper<JgChangeRegistrationTransferEq>().lambda();
......@@ -802,17 +903,21 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
if (!CollectionUtils.isEmpty(transferEqList)) {
AtomicReference<String> useRegistrationCode = new AtomicReference<>("");
AtomicBoolean isUpdateRegistrationCode = new AtomicBoolean(false);
transferEqList.forEach(device->{
transferEqList.forEach(device -> {
String supervisoryCode = "", code96333 = "";
//如果是区内移装,判断是否为韩城,杨凌,需要变更证号,否则不变证号
if ("1".equals(transfer.getTransferType())) {
Map<String, String> supervisoryCodeMap = this.createSupervisoryCode(historyData);
supervisoryCode = supervisoryCodeMap.get("superviseCode");
code96333 = supervisoryCodeMap.get("code96333");
useRegistrationCode.set(commonServiceImpl.generateRegistrationCode(device.getEquId(), supervisoryCode, transfer.getReceiveCompanyCode()));
useRegistrationCodeList.add(String.valueOf(useRegistrationCode));
isUpdateRegistrationCode.set(true);
}
//替换历史数据表和设备使用表
this.replacementHistoryData(device.getEquId(), transfer.getApplyNo(), historyData);
this.replacementHistoryData(device.getEquId(), transfer, historyData, supervisoryCode, code96333);
//更新使用注册登记证编号及ES中的信息
this.updateRegisterInfoAndEsData(device.getEquId(), historyData, useRegistrationCode.get(), isUpdateRegistrationCode);
this.updateRegisterInfoAndEsData(device.getEquId(), historyData, useRegistrationCode.get(), supervisoryCode, code96333, isUpdateRegistrationCode);
//修改各类告知列表,置为废弃
this.updateInvalidStatusByHistory(device.getEquId(), device.getEquipTransferId());
//修改证管理表数据
......@@ -834,15 +939,16 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
}
private void updateUseRegistrationManage(JgChangeRegistrationTransfer transfer, JgRegistrationHistory historyData, String useRegistrationCode, boolean isUpdateRegistrationCode) {
JSONArray historyJson = JSON.parseArray(historyData.getChangeData());
List<String> ids = historyJson.stream().map(v -> JSON.parseObject(v.toString()).getString("sequenceNbr")).collect(Collectors.toList());
JSONObject historyJson = JSON.parseObject(historyData.getChangeData());
List<Map<String, Object>> registrationList = (List<Map<String, Object>>) historyJson.get("registrationList");
List<String> ids = registrationList.stream().map(v -> JSON.parseObject(v.toString()).getString("sequenceNbr")).collect(Collectors.toList());
List<JgUseRegistrationManage> list = useRegistrationManageService.lambdaQuery().in(BaseEntity::getSequenceNbr, ids).list();
for (JgUseRegistrationManage registrationManage : list) {
registrationManage.setReceiveOrgName(transfer.getReceiveOrgName());
registrationManage.setReceiveCompanyCode(transfer.getReceiveOrgCode());
registrationManage.setAuditPassDate(transfer.getAuditPassDate());
registrationManage.setEquUseAddress(transfer.getFullAddress());
if (isUpdateRegistrationCode){
if (isUpdateRegistrationCode) {
registrationManage.setUseRegistrationCode(useRegistrationCode);
}
}
......@@ -853,14 +959,14 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* 修改历史数据表和设备使用表
*
* @param record 设备Id
* @param applyNo 申请记录编号
* @param newData 设备移装的新数据
*/
public void replacementHistoryData(String record, String applyNo, JgRegistrationHistory newData) {
public void replacementHistoryData(String record, JgChangeRegistrationTransfer transfer, JgRegistrationHistory newData, String supervisoryCode, String code96333) {
if (!ValidationUtil.isEmpty(record) && !ValidationUtil.isEmpty(applyNo)) {
if (!ValidationUtil.isEmpty(record) && !ValidationUtil.isEmpty(transfer.getApplyNo())) {
//查询设备旧数据
IdxBizJgUseInfo useInfo = useInfoService.getOneData(record);
IdxBizJgOtherInfo otherInfo = otherInfoService.getOneData(record);
// 更新设备移装位置使用信息
if (!ValidationUtil.isEmpty(newData)) {
......@@ -925,42 +1031,44 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
if (!ObjectUtils.isEmpty(longitudeLatitude)) {
useInfo.setLongitudeLatitude(longitudeLatitude);
}
if(!ObjectUtils.isEmpty(usePlace)){
if (!ObjectUtils.isEmpty(usePlace)) {
useInfo.setUsePlace(usePlace);
}
if(!ObjectUtils.isEmpty(isXixian)){
if (!ObjectUtils.isEmpty(isXixian)) {
useInfo.setIsNotXiXian(isXixian);
}
if(!ObjectUtils.isEmpty(safetyManager)){
if (!ObjectUtils.isEmpty(safetyManager)) {
String[] safetyManagerList = safetyManager.split("_");
if (safetyManagerList.length>1){
if (safetyManagerList.length > 1) {
useInfo.setSafetyManagerId(safetyManagerList[0]);
useInfo.setSafetyManager(safetyManagerList[1]);
}
}
if(!ObjectUtils.isEmpty(phone)){
if (!ObjectUtils.isEmpty(phone)) {
useInfo.setPhone(phone);
}
if(!ObjectUtils.isEmpty(transferUseInfo)){
if (!ObjectUtils.isEmpty(transferUseInfo)) {
String[] useInfoList = transferUseInfo.split("_");
if(useInfoList.length>1){
if (useInfoList.length > 1) {
useInfo.setEstateUnitCreditCode(useInfoList[0]);
useInfo.setEstateUnitName(useInfoList[1]);
}
}
IdxBizJgSupervisionInfo idxBizJgSupervisionInfo = new IdxBizJgSupervisionInfo();
if(!ObjectUtils.isEmpty(supervisionUnit)){
if (!ObjectUtils.isEmpty(supervisionUnit)) {
String[] supervisionUnitList = supervisionUnit.split("_");
if(supervisionUnitList.length>1){
if (supervisionUnitList.length > 1) {
idxBizJgSupervisionInfo.setOrgBranchCode(supervisionUnitList[0]);
idxBizJgSupervisionInfo.setOrgBranchName(supervisionUnitList[1]);
LambdaQueryWrapper<IdxBizJgSupervisionInfo> eq = new QueryWrapper<IdxBizJgSupervisionInfo>().lambda().eq(IdxBizJgSupervisionInfo::getRecord,record);
LambdaQueryWrapper<IdxBizJgSupervisionInfo> eq = new QueryWrapper<IdxBizJgSupervisionInfo>().lambda().eq(IdxBizJgSupervisionInfo::getRecord, record);
idxBizJgSupervisionInfoMapper.update(idxBizJgSupervisionInfo, eq);
}
}
useInfoService.saveOrUpdateData(useInfo);
otherInfo.setSupervisoryCode(supervisoryCode);
otherInfo.setCode96333(code96333);
otherInfoService.saveOrUpdateData(otherInfo);
}
}
}
......@@ -991,9 +1099,9 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @param useRegistrationCode 使用注册登记证编号
* @param isUpdateRegistrationCode 是否更新使用登记证编号
*/
public void updateRegisterInfoAndEsData(String equId, JgRegistrationHistory newData, String useRegistrationCode, AtomicBoolean isUpdateRegistrationCode) {
public void updateRegisterInfoAndEsData(String equId, JgRegistrationHistory newData, String useRegistrationCode, String supervisoryCode, String code96333, AtomicBoolean isUpdateRegistrationCode) {
//更新使用注册登记证编号
if (isUpdateRegistrationCode.get()){
if (isUpdateRegistrationCode.get()) {
idxBizJgRegisterInfoMapper.updateUseOrgCodeByEquip(equId, useRegistrationCode);
}
//获取移装新位置,更新ES
......@@ -1024,7 +1132,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
if (!ObjectUtils.isEmpty(county)) {
String[] countyList = county.split("_");
if (countyList.length > 1) {
newUsePlace += countyList[1]+ "/";
newUsePlace += countyList[1] + "/";
}
}
if (!ObjectUtils.isEmpty(street)) {
......@@ -1047,8 +1155,10 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
map1.put("USE_PLACE", newUsePlace);
map1.put("ADDRESS", newAddress);
map1.put("LONGITUDE_LATITUDE", newLongitudeLatitude);
if (isUpdateRegistrationCode.get()){
if (isUpdateRegistrationCode.get()) {
map1.put("USE_ORG_CODE", useRegistrationCode);
map1.put("SUPERVISORY_CODE", supervisoryCode);
map1.put("CODE96333", code96333);
}
resultMap.put(equId, map1);
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
......@@ -1215,7 +1325,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
if ("0".equals(printType)) {
//调用生成使用登记证
commonService.generateCertificateReport(exportParamsMap, response);
}else{
} else {
commonService.generatePdfPrint(exportParamsMap, response);
}
}
......@@ -1290,8 +1400,8 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
* @deprecated 动态获取
*/
public String getSummaryInfo(JgChangeRegistrationTransfer transfer) {
String result = "来自%s【%s】的业务办理,【申请单号:%s】";
return String.format(result, Optional.ofNullable(transfer.getEquipListName()).orElse("无"), Optional.ofNullable(transfer.getSupervisoryCode()).orElse("无"), Optional.ofNullable(transfer.getApplyNo()).orElse("无"));
String result = "发起了【移装变更登记】业务申请,【申请单号:%s】";
return String.format(result, Optional.ofNullable(transfer.getApplyNo()).orElse("无"));
}
public String getNextUserOrgCode(String operate, JgChangeRegistrationTransfer contract) {
......@@ -1322,35 +1432,35 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
}
}
public Map<String, Object> getDetailFieldCamelCase( String record) {
public Map<String, Object> getDetailFieldCamelCase(String record) {
Map<String, Object> result = new HashMap<>();
result = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(record);
//移装变更-省份回显
result.put("transferProvince",result.get("province"));
result.put("transferProvince", result.get("province"));
//移装变更-市回显
result.put("transferCity",result.get("city"));
result.put("transferCity", result.get("city"));
//移装变更-区回显
result.put("transferCounty",result.get("county"));
result.put("transferCounty", result.get("county"));
//移装变更-街道回显
result.put("transferStreet",result.get("factoryUseSiteStreet")+"_"+result.get("streetName"));
result.put("transferStreet", result.get("factoryUseSiteStreet") + "_" + result.get("streetName"));
//移装变更-移装场所
result.put("transferUsePlace",result.get("usePlace"));
result.put("transferUsePlace", result.get("usePlace"));
//移装变更-详细地址
result.put("transferAddress",result.get("useAddress"));
result.put("transferAddress", result.get("useAddress"));
//移装变更-经纬度
result.put("transferLongitudeLatitude",result.get("longitudeLatitude"));
result.put("transferLongitudeLatitude", result.get("longitudeLatitude"));
//移装变更-属地监管部门
result.put("orgBranchCode",result.get("orgBranchCode")+"_"+result.get("orgBranchName"));
result.put("orgBranchCode", result.get("orgBranchCode") + "_" + result.get("orgBranchName"));
//移装变更-所属经营单位
result.put("transferIsXixian",result.get("isNotXiXian"));
result.put("transferIsXixian", result.get("isNotXiXian"));
//移装变更-安全管理员
result.put("transferSafetyManager",result.get("safetyManagerId")+"_"+result.get("safetyManager"));
result.put("transferSafetyManager", result.get("safetyManagerId") + "_" + result.get("safetyManager"));
//移装变更-安全管理员姓名
result.put("transferSafetyManagerName",result.get("safetyManager"));
result.put("transferSafetyManagerName", result.get("safetyManager"));
//移装变更-电话
result.put("transferPhone",result.get("phone"));
result.put("transferPhone", result.get("phone"));
//移装变更-产权单位
result.put("transferUseInfo",result.get("estateUnitCreditCode")+"_"+result.get("estateUnitName"));
result.put("transferUseInfo", result.get("estateUnitCreditCode") + "_" + result.get("estateUnitName"));
return result;
}
}
\ No newline at end of file
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgChangeRegistrationTransferMapper;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author Administrator
*/
@Component
@Slf4j
public class JgChangeRegistrationTransferUsedCheckImpl extends BaseEquipUsedCheckService {
private final RedissonClient redissonClient;
private final String bizType = "changeRegistrationTransfer";
private final JgChangeRegistrationTransferMapper mapper;
public JgChangeRegistrationTransferUsedCheckImpl(RedissonClient redissonClient, JgChangeRegistrationTransferMapper mapper) {
this.redissonClient = redissonClient;
this.mapper = mapper;
}
@Override
public RedissonClient getRedisClient() {
return redissonClient;
}
@Override
public String getApplyBizType() {
return bizType;
}
public void init() {
// 获取设备数据并处理
Map<String, Set<String>> resultMap = mapper.queryForFlowingEquipList().stream()
.filter(Objects::nonNull)
.flatMap(changeData -> {
JSONObject changeDataJson = JSON.parseObject(changeData);
return changeDataJson.getJSONArray("registrationList").stream()
.filter(item -> item instanceof JSONObject)
.map(item -> (JSONObject) item)
.collect(Collectors.groupingBy(
reg -> reg.getString("useUnitCreditCode"),
Collectors.mapping(reg -> reg.getString("sequenceNbr"), Collectors.toSet())
)).entrySet().stream();
})
.collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(existing, replacement) -> {
existing.addAll(replacement);
return existing;
}
));
// 将结果存储到 Redis
resultMap.forEach((companyCode, records) -> {
RBucket<Set<String>> rBucket = redissonClient.getBucket(getFlowingEquipRedisKey(companyCode, bizType));
rBucket.set(records);
});
}
}
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