Commit c6f73ae1 authored by chenzhao's avatar chenzhao

Merge remote-tracking branch 'origin/develop_tzs_register' into develop_tzs_register

parents 3521d2e7 f32890c9
package com.yeejoin.amos.boot.module.jg.biz.service;
import com.yeejoin.amos.feign.workflow.model.*;
import java.util.List;
/**
* @author Administrator
*/
public interface ICmWorkflowService {
List<ProcessTaskDTO> startBatch(ActWorkflowBatchDTO params);
ProcessTaskDTO complete(String taskId, TaskResultDTO data);
ProcessTaskDTO rollBack(String processInstanceId);
}
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author Administrator
*/
@Service
@Slf4j
public class CmWorkflowServiceImpl implements ICmWorkflowService {
@Override
public List<ProcessTaskDTO> startBatch(ActWorkflowBatchDTO params) {
List<ProcessTaskDTO> processTasks;
try {
log.info("开始请求工作流启动接口:/start/batch,请求参数:{}", JSONObject.toJSONString(params));
processTasks = FeignUtil.remoteCall(() -> Workflow.taskV2Client.startForBatch(params));
} catch (Exception e) {
log.error("调用工作流批量启动失败", e);
throw new RuntimeException("调用工作流批量启动失败");
}
return processTasks;
}
@Override
public ProcessTaskDTO complete(String taskId, TaskResultDTO data) {
ProcessTaskDTO processTaskDTO;
try {
log.info("开始请求工作流完成任务接口:/complete/standard/{taskId},请求参数:{},{}", taskId, JSONObject.toJSONString(data));
processTaskDTO = FeignUtil.remoteCall(() -> Workflow.taskV2Client.completeByTaskFroStandard(taskId, data));
} catch (Exception e) {
log.error("调用工作流完成任务接口失败", e);
throw new RuntimeException("调用工作流完成任务接口失败");
}
return processTaskDTO;
}
@Override
public ProcessTaskDTO rollBack(String processInstanceId) {
log.info("开始请求工作流撤回接口:/rollBack/standard/{processInstanceId},请求参数:{}", processInstanceId);
return FeignUtil.remoteCall(() -> Workflow.taskV2Client.rollBackTask(processInstanceId));
}
}
......@@ -7,6 +7,8 @@ import com.aspose.words.SaveFormat;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.DataDictionary;
import com.yeejoin.amos.boot.biz.common.service.IDataDictionaryService;
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.ByteArrayMultipartFile;
......@@ -76,6 +78,9 @@ public class CommonServiceImpl implements ICommonService {
@Autowired
CommonMapper commonMapper;
@Autowired
IDataDictionaryService iDataDictionaryService;
@Value("classpath:/json/superviseBusinessCategory.json")
private Resource superviseBusinessCategory;
......@@ -713,4 +718,19 @@ public class CommonServiceImpl implements ICommonService {
return sb.length() > 0 ? sb.substring(0, sb.length() - 1) : "";
}
/**
* 根据流程状态name 获取流程状态code
* @param name 流程状态name
* @return 流程状态code
*/
public Integer getDictionaryCodeByName(String name) {
List<DataDictionary> jggzzz = iDataDictionaryService.getByType("JGGZZZ");
for (DataDictionary item : jggzzz) {
if (item.getName().equals(name)) {
return Integer.parseInt(item.getCode());
}
}
return null;
}
}
\ No newline at end of file
......@@ -14,7 +14,9 @@ import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
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.JgChangeRegistrationNameDto;
import com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto;
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.IJgChangeRegistrationNameService;
......@@ -103,6 +105,9 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
@Autowired
AccessFeignService accessFeignService;
@Autowired
CommonServiceImpl commonService;
......@@ -211,7 +216,8 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
dto.setUseUnitCreditCode(reginParams.getCompany().getCompanyCode());
dto.setUseUnitName(reginParams.getCompany().getCompanyName());
this.save(dto);
// 创建代办
this.createTaskModel(dto, taskName[0], submitType);
List<JgChangeRegistrationNameEq> equipList = new ArrayList<>();
List<JgRegistrationHistory> list = new ArrayList<>();
deviceList.forEach(obj -> {
......@@ -223,7 +229,6 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgRelationEquip.setCreateUserId(reginParams.getUserModel().getUserId());
jgRelationEquip.setCreateUserName(reginParams.getUserModel().getRealName());
equipList.add(jgRelationEquip);
JgRegistrationHistory jgRegistrationHistory = new JgRegistrationHistory();
jgRegistrationHistory.setCreateUserId(reginParams.getUserModel().getUserId());
jgRegistrationHistory.setCreateDate(dto.getCreateDate());
......@@ -237,10 +242,46 @@ public class JgChangeRegistrationNameServiceImpl extends BaseService<JgChangeReg
jgRegistrationHistory.setCurrentDocumentId(dto.getApplyNo());
list.add(jgRegistrationHistory);
});
jgChangeRegistrationNameEqService.saveBatch(equipList);
jgRegistrationHistoryService.saveBatch(list);
}
private void createTaskModel(JgChangeRegistrationName dto, String taskName, String submitType) {
if("1".equals(submitType)){
TaskModelDto taskModelDto = new TaskModelDto();
taskModelDto.setFlowCreateDate(dto.getApplyDate());
taskModelDto.setTaskName(taskName);
taskModelDto.setTaskCode(dto.getApplyNo());
taskModelDto.setTaskContent(this.buildTaskContent(dto));
taskModelDto.setTaskDesc("");
taskModelDto.setTaskType(BusinessTypeEnum.JG_NAME_CHANGE_REGISTRATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_NAME_CHANGE_REGISTRATION.getName());
taskModelDto.setRelationId(dto.getInstanceId());
taskModelDto.setExecuteUserIds(dto.getNextExecutorIds());
taskModelDto.setTaskStatus(this.getTaskCodeByName(dto.getAuditStatus()));
taskModelDto.setTaskStatusLabel(dto.getAuditStatus());
taskModelDto.setStartUserId(dto.getCreateUserId());
taskModelDto.setStartUser(dto.getCreateUserName());
taskModelDto.setStartUserCompanyName(dto.getUseUnitName());
taskModelDto.setStartDate(dto.getCreateDate());
taskModelDto.setModel(dto);
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
}
private Integer getTaskCodeByName(String auditStatus) {
return null;
}
/**
* 摘要构建
* @param dto 业务
* @return 摘要
*/
private String buildTaskContent(JgChangeRegistrationName dto) {
return "申请单号:" + dto.getApplyNo() + "的业务办理";
}
public JgChangeRegistrationNameDto updateInfo(String submitType, JgChangeRegistrationNameDto jgChangeRegistrationNameDto, String op) {
ReginParams reginParams = JSON.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
if (Objects.isNull(jgChangeRegistrationNameDto) || StringUtils.isEmpty(submitType)) {
......
......@@ -455,6 +455,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
public Map<String, Map<String, Object>> getTransferDetail(String sequenceNbr, String equipId) {
Map<String, Map<String, Object>> pageDataMap = new HashMap<>();
Map<String, Object> resultDataMap = new HashMap<>();
String record = "";
//移装变更详情
JgChangeRegistrationTransfer transferById = this.getById(sequenceNbr);
......@@ -462,6 +463,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
Map<String, Object> transferToMap = Bean.BeantoMap(transferById);
resultDataMap.putAll(transferToMap);
}
//判断流程是否执行完成,
// 1、未执行完成时查询历史表
// 2、执行完成后查询使用信息表
......@@ -469,7 +471,7 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
JgRegistrationHistory historyData = jgRegistrationHistoryService.getDteailByRecord(equipId, transferById.getApplyNo());
if (!ValidationUtil.isEmpty(historyData)) {
JSONObject newPosition = JSON.parseObject(historyData.getChangeData());
String record = newPosition.getString("record");
record = newPosition.getString("record");
String receiveOrgCode = newPosition.getString("receiveOrgCode");
String equCode = newPosition.getString("equCode");
String province = newPosition.getString("province");
......@@ -516,7 +518,8 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
if (!ValidationUtil.isEmpty(useInfoByRecord)) {
Map<String, Object> useInfoToMap = Bean.BeantoMap(useInfoByRecord);
resultDataMap.put("record", useInfoByRecord.getRecord());
record = useInfoByRecord.getRecord();
resultDataMap.put("record", record);
resultDataMap.putAll(useInfoToMap);
// 省市区街道字段
resultDataMap.put("province", useInfoByRecord.getProvince() + "_" + useInfoByRecord.getProvinceName());
......@@ -533,7 +536,11 @@ public class JgChangeRegistrationTransferServiceImpl extends BaseService<JgChang
}
resultDataMap.put("receiveOrgCode", transferById.getReceiveOrgCode() + "_" + transferById.getReceiveOrgName());
}
//查询设备详情
if(!ValidationUtil.isEmpty(record)){
Map<String, Object> equipDetailMap = idxBizJgRegisterInfoService.getDetailFieldCamelCaseByRecord(record);
resultDataMap.putAll(equipDetailMap);
}
if (!resultDataMap.isEmpty()) {
pageDataMap.put(TABLE_PAGE_ID, resultDataMap);
}
......
......@@ -11,11 +11,14 @@ 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.common.BizCommonConstant;
import com.yeejoin.amos.boot.module.jg.api.dto.ByteArrayMultipartFile;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgTransferNoticeDto;
import com.yeejoin.amos.boot.module.jg.api.dto.TaskModelDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNotice;
import com.yeejoin.amos.boot.module.jg.api.entity.JgTransferNoticeEq;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgTransferNoticeEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgTransferNoticeMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgTransferNoticeService;
......@@ -358,13 +361,86 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
ArrayList<String> roleListSecond = new ArrayList<>();
// 判断当前是否为提交
List<String> instanceIdList = new ArrayList<>();
workFlowInfo(submitType, taskName, deviceList, roleListFirst, roleListSecond, instanceIdList);
List<JgTransferNotice> list = new ArrayList<>();
List<JgTransferNoticeEq> equipList = new ArrayList<>();
deviceList.forEach(obj -> {
JgTransferNoticeEq jgRelationEquip = new JgTransferNoticeEq();
JgTransferNotice dto = new JgTransferNotice();
BeanUtils.copyProperties(model, dto);
int i = deviceList.indexOf(obj);
String applyNo = responseModel.getResult().get(i);
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setApplyNo(applyNo);
dto.setNoticeDate(new Date());
if(SUBMIT_TYPE_FLOW.equals(submitType)) {
dto.setNextExecuteIds(String.join(",", roleListSecond));
dto.setInstanceStatus(String.join(",", roleListFirst));
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setStatus(taskName[0]);
}
dto.setInstallUnitName(reginParams.getCompany().getCompanyName());
dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgRelationEquip.setEquipTransferId(applyNo);
if (!CollectionUtils.isEmpty(instanceIdList)) {
dto.setInstanceId(instanceIdList.get(i));
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
list.add(dto);
equipList.add(jgRelationEquip);
});
jgTransferNoticeMapper.insertBatchSomeColumn(list);
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
buildTask(list);
}
List<JgTransferNoticeEq> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> {
List<JgTransferNotice> collect = list.stream().filter(JgTransferNotice -> jgRelationEquip.getEquipTransferId().equals(JgTransferNotice.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr();
return jgRelationEquip.setEquipTransferId(String.valueOf(sequenceNbr));
}).collect(Collectors.toList());
jgTransferNoticeEqMapper.insertBatchSomeColumn(jgRelationEquipList);
}
@Autowired
private CommonServiceImpl commonService;
private void buildTask(List<JgTransferNotice> list) {
List<TaskModelDto> taskModelDtoList = new ArrayList<>();
list.forEach(item -> {
TaskModelDto taskModelDto = new TaskModelDto();
taskModelDto.setFlowCreateDate(item.getCreateDate());
// taskModelDto.setTaskName(); // 工作流API返回
taskModelDto.setTaskCode(item.getApplyNo());
taskModelDto.setTaskType(BusinessTypeEnum.JG_INSTALLATION_NOTIFICATION.getCode());
taskModelDto.setTaskTypeLabel(BusinessTypeEnum.JG_INSTALLATION_NOTIFICATION.getName());
taskModelDto.setRelationId(item.getInstanceId());
// taskModelDto.setExecuteUserIds(); // 工作流API返回
taskModelDto.setTaskStatus(commonService.getDictionaryCodeByName(item.getNoticeStatus())); // 流程状态枚举
taskModelDto.setTaskStatusLabel(item.getNoticeStatus());
taskModelDto.setStartUserId(item.getCreateUserId());
taskModelDto.setStartUser(item.getRecUserName());
// taskModelDto.setStartUserCompanyName(); // 任务发起人所在单位
taskModelDto.setStartDate(item.getCreateDate());
taskModelDto.setModel(item);
taskModelDtoList.add(taskModelDto);
});
commonService.buildTaskModel(taskModelDtoList);
}
private void workFlowInfo(String submitType, String[] taskName, List<Map<String, Object>> deviceList, ArrayList<String> roleListFirst, ArrayList<String> roleListSecond, List<String> instanceIdList) {
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程
// ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
for (int i = 0; i < deviceList.size(); i++
) {
for (int i = 0; i < deviceList.size(); i++) {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(String.valueOf(i));
......@@ -383,7 +459,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
instanceIdList.add(instanceId);
// 查询下节点任务
if(returnList.get(0).equals(obj)) {
getNext(roleListFirst, instanceId,taskName);
getNext(roleListFirst, instanceId, taskName);
}
// 推动下一个节点
AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId);
......@@ -402,7 +478,7 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
if (ajaxResult1.get("code").equals(200)) {
getNext(roleListSecond, instanceId,taskName);
getNext(roleListSecond, instanceId, taskName);
} else {
log.error("提交失败");
}
......@@ -414,47 +490,6 @@ public class JgTransferNoticeServiceImpl extends BaseService<JgTransferNoticeDto
log.error("提交失败:{}", e);
}
}
List<JgTransferNotice> list = new ArrayList<>();
List<JgTransferNoticeEq> equipList = new ArrayList<>();
deviceList.forEach(obj -> {
JgTransferNoticeEq jgRelationEquip = new JgTransferNoticeEq();
JgTransferNotice dto = new JgTransferNotice();
BeanUtils.copyProperties(model, dto);
int i = deviceList.indexOf(obj);
String applyNo = responseModel.getResult().get(i);
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setApplyNo(applyNo);
dto.setNoticeDate(new Date());
if(SUBMIT_TYPE_FLOW.equals(submitType)) {
dto.setNextExecuteIds(String.join(",", roleListSecond));
dto.setInstanceStatus(String.join(",", roleListFirst));
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setStatus(taskName[0]);
}
dto.setInstallUnitName(reginParams.getCompany().getCompanyName());
dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
jgRelationEquip.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgRelationEquip.setEquipTransferId(applyNo);
if (!CollectionUtils.isEmpty(instanceIdList)) {
dto.setInstanceId(instanceIdList.get(i));
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setNoticeStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
list.add(dto);
equipList.add(jgRelationEquip);
});
jgTransferNoticeMapper.insertBatchSomeColumn(list);
List<JgTransferNoticeEq> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> {
List<JgTransferNotice> collect = list.stream().filter(JgTransferNotice -> jgRelationEquip.getEquipTransferId().equals(JgTransferNotice.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr();
return jgRelationEquip.setEquipTransferId(String.valueOf(sequenceNbr));
}).collect(Collectors.toList());
jgTransferNoticeEqMapper.insertBatchSomeColumn(jgRelationEquipList);
}
private void convertField(JgTransferNoticeDto model) {
......
......@@ -63,13 +63,13 @@
"type": "107",
"pageType": "look",
"name": "使用登记",
"url": ""
"url": "url:/mixuap?appId=1742358052905971713&id=1735202405437435906&roleIds={roleIds}&userId={userId}&pageType=look"
},
{
"type": "107",
"pageType": "edit",
"name": "使用登记",
"url": ""
"url": "url:/mixuap?appId=1742358052905971713&id=1735202405437435906&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "108",
......@@ -99,13 +99,13 @@
"type": "110",
"pageType": "look",
"name": "移装变更登记",
"url": ""
"url": "/mixuap?appId=1742358052905971713&id=1737388393685348353&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&pageType=look&auditStatus=%s&instanceId=%s"
},
{
"type": "110",
"pageType": "edit",
"name": "移装变更登记",
"url": ""
"url": "/mixuap?appId=1742358052905971713&id=1737388347548004354&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&pageType=edit&auditStatus=%s&userId=%s&instanceId=%s"
},
{
"type": "111",
......@@ -135,12 +135,12 @@
"type": "113",
"pageType": "look",
"name": "设备注销",
"url": ""
"url": "/mixuap?appId=1742358052905971713&id=1737357871097606146&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&formType=detail&noticeStatus=%s&instanceId=%s"
},
{
"type": "113",
"pageType": "edit",
"name": "设备注销",
"url": ""
"url": "/mixuap?appId=1742358052905971713&id=1737358169170014210&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&formType=edit&noticeStatus=%s&userId=%s&instanceId=%s"
}
]
\ No newline at end of file
......@@ -52,7 +52,7 @@
<dependency>
<groupId>com.yeejoin</groupId>
<artifactId>amos-feign-workflow</artifactId>
<version>1.10.3</version>
<version>1.10.4</version>
<scope>compile</scope>
</dependency>
<dependency>
......
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