Commit 1457e7cc authored by 刘林's avatar 刘林

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into…

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into develop_tzs_register_to_0715
parents e7e5327d c4c35b35
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
......@@ -27,4 +29,10 @@ public class JgScrapCancelEqDto extends BaseDto {
@ApiModelProperty(value = "设备id")
private String equId;
@ApiModelProperty(value = "使用登记id")
private String certificateSeq;
@ApiModelProperty(value = "设备信息")
private JSONArray equipInfo;
}
package com.yeejoin.amos.boot.module.jg.api.entity;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
......@@ -34,4 +36,17 @@ public class JgScrapCancelEq extends BaseEntity {
@TableField("equ_id")
private String equId;
/**
* 使用登记id
*/
@TableField("certificate_seq")
private String certificateSeq;
/**
* 设备信息
*/
@TableField("equip_info")
private String equipInfo;
}
......@@ -8,11 +8,11 @@ public enum CancelTypeEnum {
/**
* 报废注销
*/
SCRAPPED("1", "报废注销"),
SCRAPPED("1", "报废"),
/**
* 移装注销
*/
TRANSFER("2", "移装注销");
TRANSFER("2", "注销");
private final String code;
......
package com.yeejoin.amos.boot.module.jg.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
@AllArgsConstructor
@Getter
public enum CertificateStatusEnum {
/**
* 设备状态枚举
*
*/
YIDENGJI("已登记",0),
YIZHUXIAO("已注销",1);
String name;
Integer code;
public static Map<Integer,String> getName=new HashMap<>();
public static Map<String,Integer> getCode=new HashMap<>();
static {
for (CertificateStatusEnum e : CertificateStatusEnum.values()){
getName.put(e.code, e.name);
getCode.put(e.name, e.code);
}
}
}
......@@ -2,24 +2,21 @@ 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.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils;
import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.entity.JgRegistrationHistory;
import com.yeejoin.amos.boot.module.jg.api.entity.JgScrapCancel;
import com.yeejoin.amos.boot.module.jg.api.entity.JgScrapCancelEq;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CancelTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgRegistrationHistoryMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgScrapCancelEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgScrapCancelMapper;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.*;
import com.yeejoin.amos.boot.module.jg.api.service.IJgRegistrationHistoryService;
import com.yeejoin.amos.boot.module.jg.api.service.IJgScrapCancelService;
import com.yeejoin.amos.boot.module.jg.api.vo.SortVo;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
......@@ -28,16 +25,15 @@ import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.entity.IdxBizJgUseInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.OtherInfo;
import com.yeejoin.amos.boot.module.ymt.api.entity.SuperviseInfo;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquimentEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.*;
import com.yeejoin.amos.boot.module.ymt.api.mapper.*;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import io.seata.spring.annotation.GlobalTransactional;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
......@@ -48,6 +44,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.RequestParam;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -71,7 +68,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
private static final String SUBMIT_TYPE_FLOW = "1";
private static final String PAGE_KEY = "jgScrapCancelAdd";
private static final String template = "来自%s【%s】【%s】的业务办理,【申请单号:%s】";
private static final String template = "%s发起%s%s业务申请,【申请单号:%s】";
@Autowired
WorkFlowFeignService workFlowFeginService;
@Autowired
......@@ -104,6 +101,17 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
@Autowired
private RedissonClient redissonClient;
@Autowired
private JgUseRegistrationManageServiceImpl jgUseRegistrationManageService;
@Autowired
private JgUseRegistrationManageMapper jgUseRegistrationManageMapper;
@Autowired
private JgCertificateChangeRecordServiceImpl certificateChangeRecordService;
@Autowired
private JgCertificateChangeRecordEqServiceImpl jgCertificateChangeRecordEqServiceImpl;
/**
* 移装移装注销/报废注销判断
*
......@@ -163,15 +171,14 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
@SuppressWarnings({"Duplicates", "rawtypes"})
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public JgScrapCancel save(String submitType, Map<String, Object> mapParams) {
ReginParams reginParams = this.getSelectedOrgInfo();
Map<String, Object> noticeParams = (Map) mapParams.get(PAGE_KEY);
String equipId = String.valueOf(noticeParams.get("record"));
String[] receiveOrg = String.valueOf(noticeParams.get("receiveOrgCreditCode")).split("_");
noticeParams.remove("record");
String[] taskName = new String[]{"流程结束"};
JgScrapCancelDto model = JSON.parseObject(JSON.toJSONString(noticeParams), JgScrapCancelDto.class);
model.setSEQUENCE_NBR(equipId);
model.setReceiveOrgCode(receiveOrg[0]);
model.setReceiveCompanyCode(receiveOrg[0]);
model.setReceiveOrgName(receiveOrg[1]);
......@@ -183,8 +190,6 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
log.error(" 获取告知单号失败");
throw new RuntimeException();
}
HashMap<String, Object> deviceMap = new HashMap<>();
deviceMap.put("SEQUENCE_NBR", model.getSEQUENCE_NBR());
String instanceId = "";
String nextTaskId = "";
......@@ -221,26 +226,15 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
this.buildRoleList(processTaskDTOS, roleListNext, roleListAll);
}
JgScrapCancelEq jgRelationEquip = new JgScrapCancelEq();
JgScrapCancel jgScrapCancel = new JgScrapCancel();
BeanUtils.copyProperties(model, jgScrapCancel);
String applyNo = applyNoList.get(0);
LambdaQueryWrapper<OtherInfo> otherLambda = new QueryWrapper<OtherInfo>().lambda();
otherLambda.eq(OtherInfo::getRecord, deviceMap.get("SEQUENCE_NBR"));
OtherInfo otherInfo = otherInfoMapper.selectOne(otherLambda);
if (!ObjectUtils.isEmpty(otherInfo)) {
String supervisoryCode = otherInfo.getSupervisoryCode();
jgScrapCancel.setSupervisoryCode(supervisoryCode);
}
jgScrapCancel.setApplyNo(applyNo);
jgScrapCancel.setCreateDate(new Date());
jgScrapCancel.setNextExecuteIds(String.join(",", roleListNext));
jgScrapCancel.setInstanceStatus(String.join(",", roleListAll));
jgScrapCancel.setPromoter(reginParams.getUserModel().getUserId());
jgScrapCancel.setNextTaskId(Objects.isNull(workflowResultDtos) ? null : workflowResultDtos.get(0).getNextTaskId());
jgRelationEquip.setEquId((String) deviceMap.get("SEQUENCE_NBR"));
jgRelationEquip.setEquipTransferId(applyNo);
if (!StringUtils.isEmpty(instanceId)) {
jgScrapCancel.setInstanceId(instanceId);
jgScrapCancel.setNextTaskId(nextTaskId);
......@@ -255,20 +249,71 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
this.save(jgScrapCancel);
// 新增代办
this.createTaskModel(jgScrapCancel, taskName[0], submitType, nextUserIds);
jgRelationEquip.setEquipTransferId(String.valueOf(jgScrapCancel.getSequenceNbr()));
jgScrapCancelEqService.save(jgRelationEquip);
// 保存设备关系表
saveEquip(noticeParams, jgScrapCancel);
String equListName = EquipmentClassifityEnum.getNameByCode(jgScrapCancel.getEquList());
jgScrapCancel.setEquListDesc(equListName);
jgScrapCancel.setCancelTypeDesc(getRegistrationClass(jgScrapCancel.getCancelType()));
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(noticeParams));
commonService.saveExecuteFlowData2Redis(instanceId, buildInstanceRuntimeData(jgScrapCancel));
save2HisData(noticeParams, equipId, jgRelationEquip, jgScrapCancel);
save2HisData(jsonObject,jgScrapCancel);
return jgScrapCancel;
}
//单位维度设备处理
private void saveEquip(Map<String, Object> noticeParams, JgScrapCancel jgScrapCancel) {
List<JgScrapCancelEq> JgScrapCancelEqList = new ArrayList<>();
// 判断是否是报废气瓶业务处理
if (CancelTypeEnum.SCRAPPED.getCode().equals(noticeParams.get("cancelType")) &&
CylinderTypeEnum.CYLINDER.getCode().equals(noticeParams.get("EQU_CATEGORY_CODE"))) {
// 证ids
List<String> certificates = (List<String>) noticeParams.get("sequenceNbrs");
if (ObjectUtils.isEmpty(certificates)) {
throw new BadRequest("请选择使用登记证");
}
LambdaQueryWrapper<JgUseRegistrationManage> lambdaQueryWrapper = new LambdaQueryWrapper();
lambdaQueryWrapper.in(JgUseRegistrationManage::getSequenceNbr, certificates.stream().map(Long::parseLong).collect(Collectors.toList()));
List<JgUseRegistrationManage> jgUseRegistrationManageList = jgUseRegistrationManageMapper.selectList(lambdaQueryWrapper);
List<Map<String, Object>> list = (List<Map<String, Object>>) noticeParams.get("equipments");
if (ObjectUtils.isEmpty(list)) {
throw new BadRequest("请选择设备");
}
for (JgUseRegistrationManage jgUseRegistrationManage : jgUseRegistrationManageList) {
JgScrapCancelEq jgScrapCancelEq = new JgScrapCancelEq();
jgScrapCancelEq.setCertificateSeq(jgUseRegistrationManage.getSequenceNbr().toString());
jgScrapCancelEq.setEquipInfo(JSON.parseArray(JSONObject.toJSONString(list.stream().filter(item -> item.get("USE_ORG_CODE").toString().equals(jgUseRegistrationManage.getUseRegistrationCode())).collect(Collectors.toList()))).toString());
jgScrapCancelEq.setEquipTransferId(String.valueOf(jgScrapCancel.getSequenceNbr()));
JgScrapCancelEqList.add(jgScrapCancelEq);
}
} else {
List<Map<String, Object>> certificates = new ArrayList<>();
// 证列表
if (CylinderTypeEnum.SPECIAL_CYLINDER.getCode().equals(noticeParams.get("EQU_CATEGORY_CODE"))) {
certificates = (List<Map<String, Object>>) noticeParams.get("cylCertificates");
} else {
certificates = (List<Map<String, Object>>) noticeParams.get("certificates");
}
if (ObjectUtils.isEmpty(certificates)) {
throw new BadRequest("请选择使用登记证");
}
// 使用登记证表idList
List<String> registrationIdList = certificates.stream().map(item -> item.get("sequenceNbr").toString()).collect(Collectors.toList());
List<JSONObject> equipmentList = jgUseRegistrationManageService.queryEquByCertificateSeqList(registrationIdList.stream().map(Long::parseLong).collect(Collectors.toList()));
for (Map<String, Object> certificate : certificates) {
JgScrapCancelEq jgScrapCancelEq = new JgScrapCancelEq();
jgScrapCancelEq.setCertificateSeq(certificate.get("sequenceNbr").toString());
jgScrapCancelEq.setEquipInfo(JSON.parseArray(String.valueOf(equipmentList.stream().filter(item -> item.get("USE_ORG_CODE").toString().equals(certificate.get("useRegistrationCode"))).collect(Collectors.toList()))).toString());
jgScrapCancelEq.setEquipTransferId(String.valueOf(jgScrapCancel.getSequenceNbr()));
JgScrapCancelEqList.add(jgScrapCancelEq);
}
}
jgScrapCancelEqService.saveBatch(JgScrapCancelEqList);
}
private void save2HisData(Map<String, Object> noticeParams, String equipId, JgScrapCancelEq jgRelationEquip, JgScrapCancel jgScrapCancel) {
noticeParams.put("record", equipId);
commonService.saveOrUpdateHistory(jgScrapCancel.getCancelTypeDesc(), new JSONObject(noticeParams), jgRelationEquip.getEquId(), jgScrapCancel.getSequenceNbr().toString());
private void save2HisData(JSONObject jsonObject, JgScrapCancel jgScrapCancel) {
commonService.saveOrUpdateHistory(jgScrapCancel.getCancelTypeDesc(), jsonObject, null, jgScrapCancel.getSequenceNbr().toString());
}
private void createTaskModel(JgScrapCancel scrapCancel, String taskName, String submitType, String nextUserIds) {
......@@ -278,7 +323,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
taskModelDto.setFlowCreateDate(scrapCancel.getCreateDate());
taskModelDto.setTaskName(taskName);
taskModelDto.setTaskCode(scrapCancel.getApplyNo());
taskModelDto.setTaskContent(this.buildTaskContent(scrapCancel.getEquList(), scrapCancel.getSupervisoryCode(), scrapCancel.getCancelType(), scrapCancel.getApplyNo()));
taskModelDto.setTaskContent(this.buildTaskContent(scrapCancel.getEquList(), scrapCancel.getCancelType(), scrapCancel.getApplyNo()));
taskModelDto.setTaskDesc("");
taskModelDto.setTaskType(businessTypeJudgment(scrapCancel.getCancelType()).getCode());
taskModelDto.setTaskTypeLabel(businessTypeJudgment(scrapCancel.getCancelType()).getName());
......@@ -291,7 +336,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
taskModelDto.setFlowStatusLabel(scrapCancel.getAuditStatus());
taskModelDto.setStartUserId(scrapCancel.getCreateUserId());
taskModelDto.setFlowCode(scrapCancel.getNextTaskId());
taskModelDto.setStartUser(reginParams.getUserModel().getRealName());
taskModelDto.setStartUser(scrapCancel.getRecUserName());
taskModelDto.setStartUserCompanyName(scrapCancel.getUseUnitName());
taskModelDto.setNextExecuteUser(scrapCancel.getNextExecuteIds());
taskModelDto.setStartDate(scrapCancel.getCreateDate() == null ? new Date() : scrapCancel.getCreateDate());
......@@ -302,7 +347,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtils.copyProperties(scrapCancel, taskMessageDto);
taskModelDto.setModel(taskMessageDto);
taskModelDto.setTaskContent(this.buildTaskContent(scrapCancel.getEquList(), scrapCancel.getSupervisoryCode(), scrapCancel.getCancelType(), scrapCancel.getApplyNo()));
// taskModelDto.setTaskContent(this.buildTaskContent(scrapCancel.getEquList(), scrapCancel.getCancelType(), scrapCancel.getApplyNo()));
taskModelDto.setTaskCode(scrapCancel.getApplyNo());
taskModelDto.setTaskType(businessTypeJudgment(scrapCancel.getCancelType()).getCode());
taskModelDto.setNextExecuteUser(scrapCancel.getNextExecuteIds());
......@@ -326,11 +371,13 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
*
* @return 摘要
*/
private String buildTaskContent(String equList, String supervisoryCode, String cancelType, String applyNo) {
// 来自电梯【X3100-123456】【移装注销】的业务办理【申请单号:ABCD0000001】
String type = "1".equals(cancelType) ? "报废注销" : "移装注销";
private String buildTaskContent(String equList, String cancelType, String applyNo) {
// XXX发起了电梯注销业务申请,【申请单号:ABCD0000001】
String type = "1".equals(cancelType) ? "报废" : "注销";
String equListName = EquipmentClassifityEnum.getNameByCode(equList);
return String.format(template, equListName, Objects.isNull(supervisoryCode) ? "无" : supervisoryCode, type, applyNo);
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String userName = reginParams.getUserModel().getRealName();
return String.format(template, userName, equListName, type, applyNo);
}
@Transactional(rollbackFor = Exception.class)
......@@ -353,7 +400,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
}
}
}
@GlobalTransactional(rollbackFor = Exception.class)
public JgScrapCancelDto updateInfo(String submitType, JgScrapCancelDto jgScrapCancelDto, String op, JSONObject pageData) {
if (Objects.isNull(jgScrapCancelDto) || StringUtils.isEmpty(submitType)) {
......@@ -465,7 +512,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
// 先更新之前的待办
TaskV2Model taskV2Model = updateTaskModel(jgScrapCancelDto, operate);
taskV2Model.setTaskDesc("");
taskV2Model.setTaskContent(this.buildTaskContent(jgScrapCancelDto.getEquList(), jgScrapCancelDto.getSupervisoryCode(), jgScrapCancelDto.getCancelType(), jgScrapCancelDto.getApplyNo()));
// taskV2Model.setTaskContent(this.buildTaskContent(jgScrapCancelDto.getEquList(), jgScrapCancelDto.getCancelType(), jgScrapCancelDto.getApplyNo()));
taskV2Model.setTaskName(taskName);
taskV2Model.setTaskCode(jgScrapCancelDto.getApplyNo());
taskV2Model.setRelationId(jgScrapCancelDto.getInstanceId());
......@@ -475,7 +522,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
taskV2Model.setFlowStatus(this.getTaskStatusByName(jgScrapCancelDto.getAuditStatus()));
taskV2Model.setFlowStatusLabel(jgScrapCancelDto.getAuditStatus());
taskV2Model.setTaskType(businessTypeJudgment(jgScrapCancelDto.getCancelType()).getCode());
taskV2Model.setStartUser(jgScrapCancelDto.getRecUserName());
// taskV2Model.setStartUser(jgScrapCancelDto.getRecUserName());
taskV2Model.setTaskTypeLabel(businessTypeJudgment(jgScrapCancelDto.getCancelType()).getName());
taskV2Model.setStartDate(jgScrapCancelDto.getCreateDate());
taskV2Model.setStartUserId(jgScrapCancelDto.getCreateUserId());
......@@ -549,13 +596,30 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
Map<String, Object> beanMap = BeanUtil.beanToMap(scrapCancel, false, true);
beanMap.put("cancelCertificateList", JSON.parse(scrapCancel.getCancelCertificate()));
beanMap.put("otherAccessories", JSON.parse(scrapCancel.getOtherAccessories()));
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryMapper.selectOne(new LambdaQueryWrapper<JgRegistrationHistory>().eq(JgRegistrationHistory::getCurrentDocumentId, sequenceNbr));
// 根据不同类型返回不同的字段、用于台套设备、气瓶、车用气瓶
if(jgRegistrationHistory != null){
JSONObject jsonObject = JSONObject.parseObject(jgRegistrationHistory.getChangeData());
if (CylinderTypeEnum.SPECIAL_CYLINDER.getCode().equals(jsonObject.get("EQU_CATEGORY_CODE"))) {
beanMap.put("cylCertificates", JSONArray.parse(jsonObject.get("cylCertificates").toString()));
beanMap.put("EQU_CATEGORY_CODE",CylinderTypeEnum.SPECIAL_CYLINDER.getCode());
} else if (CylinderTypeEnum.CYLINDER.getCode().equals(jsonObject.get("EQU_CATEGORY_CODE"))) {
beanMap.put("equipments", JSONArray.parse(jsonObject.get("equipments").toString()));
beanMap.put("EQU_CATEGORY_CODE",CylinderTypeEnum.CYLINDER.getCode());
beanMap.put("sequenceNbrs",jsonObject.get("sequenceNbrs"));
} else {
beanMap.put("certificates", JSONArray.parse(jsonObject.get("certificates").toString()));
}
}
if(scrapCancel.getAuditStatus().equals(FlowStatusEnum.TO_BE_FINISHED.getName())){
// 完成状态查询历史表
JSONObject jsonObject = commonService.queryHistoryData(sequenceNbr);
// 兼容老数据
if(jsonObject == null){
// 老数据逻辑
fillRuntimeData(sequenceNbr, resultMap);
// fillRuntimeData(sequenceNbr, resultMap);
} else {
CommonServiceImpl.formatTime2StrDateForEquip(jsonObject);
// 新数据逻辑
......@@ -564,7 +628,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
resultMap.putAll(beanMap);
} else {
// 其他状态显示实时数据
fillRuntimeData(sequenceNbr, resultMap);
// fillRuntimeData(sequenceNbr, resultMap);
resultMap.putAll(beanMap);
}
resultMap.put("receiveOrgCode", scrapCancel.getReceiveCompanyCode() + '_' + scrapCancel.getReceiveOrgName());
......@@ -583,6 +647,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public void revocation(String instanceId, String nextTaskId) {
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
......@@ -648,6 +713,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
}
@Transactional(rollbackFor = Exception.class)
@GlobalTransactional(rollbackFor = Exception.class)
public void flowExecute(String equList, Long id, String instanceId, String operate, String comment, String nextTaskId) {
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
......@@ -756,32 +822,78 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
public void updateInfoOther(JgScrapCancel jgScrapCancel) {
LambdaQueryWrapper<JgScrapCancelEq> lambdaEq = new QueryWrapper<JgScrapCancelEq>().lambda();
lambdaEq.eq(JgScrapCancelEq::getEquipTransferId, jgScrapCancel.getSequenceNbr());
JgScrapCancelEq jgScrapCancelEq = jgScrapCancelEqMapper.selectOne(lambdaEq);
List<JgScrapCancelEq> jgScrapCancelEqList = jgScrapCancelEqMapper.selectList(lambdaEq);
Map<String, Object> map1 = new HashMap<>();
ArrayList<String> equipIds = new ArrayList<>();
jgScrapCancelEqList.forEach(item ->{
if (!ObjectUtils.isEmpty(item.getEquipInfo())){
JSONArray jsonArray = JSONObject.parseArray(item.getEquipInfo());
jsonArray.forEach(info ->{
JSONObject jsonObject = JSONObject.parseObject(info.toString());
if (jsonObject.containsKey("SEQUENCE_NBR")){
equipIds.add(jsonObject.get("SEQUENCE_NBR").toString());
}
});
}
});
// ResponseModel<String> responseModel = tzsServiceFeignClient.useRegistrationCode(idxBizJgOtherInfoMapper.getSupervisoryCodeByEquipmentCode(jgScrapCancelEq.getEquId()));
// String newUseRegistrationCertificateNumber = responseModel.getResult().split("-")[0];
Map<String, Map<String, Object>> resultMap = new HashMap<>();
Map<String, Object> map1 = new HashMap<>();
// map1.put("USE_ORG_CODE", newUseRegistrationCertificateNumber);
if (CancelTypeEnum.SCRAPPED.getCode().equals(jgScrapCancel.getCancelType())) {
IdxBizJgUseInfo idxBizJgUseInfo = new IdxBizJgUseInfo();
idxBizJgUseInfo.setEquState(String.valueOf(EquimentEnum.BAOFEI.getCode()));
LambdaQueryWrapper<IdxBizJgUseInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(IdxBizJgUseInfo::getRecord, jgScrapCancelEq.getEquId());
wrapper.in(IdxBizJgUseInfo::getRecord, equipIds);
idxBizJgUseInfoMapper.update(idxBizJgUseInfo, wrapper);
map1.put("EQU_STATE", String.valueOf(EquimentEnum.BAOFEI.getCode()));
// 修改证管理表中的证的状态
// 查出所有需要改的使用登记证
List<String> certificateIds = jgScrapCancelEqList.stream().map(JgScrapCancelEq::getCertificateSeq).collect(Collectors.toList());
LambdaQueryWrapper<JgUseRegistrationManage> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(JgUseRegistrationManage::getSequenceNbr, certificateIds);
List<JgUseRegistrationManage> jgUseRegistrationManageList = jgUseRegistrationManageMapper.selectList(lambdaQueryWrapper);
// 过滤出非气瓶 或是车用气瓶的使用登记证
jgUseRegistrationManageList = jgUseRegistrationManageList.stream().filter(item -> !CylinderTypeEnum.CYLINDER.getCode().equals(item.getEquCategoryCode()) || item.getRegType().equals(BusinessTypeEnum.JG_VEHICLE_GAS_APPLICATION.getName())).collect(Collectors.toList());
List<Long> seqList = jgUseRegistrationManageList.stream().map(JgUseRegistrationManage::getSequenceNbr).collect(Collectors.toList());
//组装update条件
LambdaQueryWrapper<JgUseRegistrationManage> updateLambdaQueryWrapper = new LambdaQueryWrapper<>();
updateLambdaQueryWrapper.in(JgUseRegistrationManage::getSequenceNbr, seqList);
//设置证状态进行修改
JgUseRegistrationManage jgUseRegistrationManage = new JgUseRegistrationManage();
jgUseRegistrationManage.setCertificateStatus(CertificateStatusEnum.YIZHUXIAO.getName());
jgUseRegistrationManageMapper.update(jgUseRegistrationManage, updateLambdaQueryWrapper);
} else {
SuperviseInfo superviseInfo = new SuperviseInfo();
superviseInfo.setOrgBranchCode("");
superviseInfo.setOrgBranchName("");
LambdaQueryWrapper<SuperviseInfo> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(SuperviseInfo::getRecord, jgScrapCancelEq.getEquId());
wrapper.in(SuperviseInfo::getRecord, equipIds);
superviseInfoMapper.update(superviseInfo, wrapper);
map1.put("ORG_BRANCH_CODE", "");
map1.put("ORG_BRANCH_NAME", "");
map1.put("EQU_STATE", String.valueOf(EquimentEnum.ZHUXIAO.getCode()));
IdxBizJgUseInfo idxBizJgUseInfo = new IdxBizJgUseInfo();
idxBizJgUseInfo.setEquState(String.valueOf(EquimentEnum.ZHUXIAO.getCode()));
LambdaQueryWrapper<IdxBizJgUseInfo> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.in(IdxBizJgUseInfo::getRecord, equipIds);
idxBizJgUseInfoMapper.update(idxBizJgUseInfo, wrapper1);
// 修改证管理表中的证的状态
List<String> certificateIds = jgScrapCancelEqList.stream().map(JgScrapCancelEq::getCertificateSeq).collect(Collectors.toList());
JgUseRegistrationManage jgUseRegistrationManage = new JgUseRegistrationManage();
jgUseRegistrationManage.setCertificateStatus(CertificateStatusEnum.YIZHUXIAO.getName());
LambdaQueryWrapper<JgUseRegistrationManage> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(JgUseRegistrationManage::getSequenceNbr, certificateIds);
jgUseRegistrationManageMapper.update(jgUseRegistrationManage, lambdaQueryWrapper);
}
for (String equipId : equipIds) {
resultMap.put(equipId, map1);
}
resultMap.put(jgScrapCancelEq.getEquId(), map1);
// 流水表
saveRecord(jgScrapCancel, jgScrapCancelEqList);
try {
tzsServiceFeignClient.commonUpdateEsDataByIds(resultMap);
} catch (Exception e) {
......@@ -806,4 +918,46 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
return code == null ? jgScrapCancel.getReceiveCompanyCode() : code;
}
private void saveRecord(JgScrapCancel jgScrapCancel, List<JgScrapCancelEq> jgScrapCancelEqList) {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
String userName = reginParams.getUserModel().getRealName();
String content = userName + "办理了【" + CancelTypeEnum.getNameByType(jgScrapCancel.getCancelType()) + "】" +
"单号【" + jgScrapCancel.getApplyNo() + "】,办理日期" + DateUtils.getDateNowShortStr();
LambdaQueryWrapper<JgRegistrationHistory> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(JgRegistrationHistory::getCurrentDocumentId, jgScrapCancel.getSequenceNbr());
JgRegistrationHistory jgRegistrationHistory = jgRegistrationHistoryMapper.selectOne(lambdaQueryWrapper);
JSONObject jsonObject = JSONObject.parseObject(jgRegistrationHistory.getChangeData());
for (JgScrapCancelEq jgScrapCancelEq : jgScrapCancelEqList) {
JgCertificateChangeRecord changeRecord = new JgCertificateChangeRecord();
changeRecord.setApplyNo(jgScrapCancel.getApplyNo());
changeRecord.setReceiveOrgName(jgScrapCancel.getReceiveOrgName());
changeRecord.setAuditPassDate(new Date());
changeRecord.setRegType(CancelTypeEnum.getNameByType(jgScrapCancel.getCancelType()));
changeRecord.setRegDate(jgScrapCancel.getCreateDate());
changeRecord.setChangeContent(content);
changeRecord.setUseRegistrationCode(jgRegistrationHistory.getUseRegistrationCode());
changeRecord.setReceiveCompanyCode(jgScrapCancel.getReceiveOrgCode());
changeRecord.setCertificateNo(String.valueOf(jsonObject.get("certificateNo")));
changeRecord.setUseUnitCreditCode(jgScrapCancel.getUseUnitCode());
changeRecord.setUseUnitName(jgScrapCancel.getUseUnitName());
changeRecord.setEquCategory(String.valueOf(jsonObject.get("equCategory")));
changeRecord.setCreateDate(new Date());
changeRecord.setCreateUserId(reginParams.getUserModel().getUserId());
certificateChangeRecordService.save(changeRecord);
List<JgCertificateChangeRecordEq> changeRecordEqList = new ArrayList<>();
JSONArray jsonArray = JSONObject.parseArray(jgScrapCancelEq.getEquipInfo());
jsonArray.forEach(e->{
JSONObject equip = JSONObject.parseObject(e.toString());
JgCertificateChangeRecordEq changeRecordEq = new JgCertificateChangeRecordEq();
changeRecordEq.setChangeRecordId(changeRecord.getSequenceNbr().toString());//登记证记录主键
changeRecordEq.setEquId(equip.getString("SEQUENCE_NBR"));//设备主键
changeRecordEq.setProductCode(equip.getString("PRODUCT_NUM"));//设备产品编码(设备ES数据无编码,先存放名称)
changeRecordEqList.add(changeRecordEq);
});
jgCertificateChangeRecordEqServiceImpl.saveBatch(changeRecordEqList);
}
}
}
\ 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