Commit 7c9ffaf7 authored by tianyiming's avatar tianyiming

安装告知修改

parent f770b178
package com.yeejoin.amos.boot.module.jg.api.service; package com.yeejoin.amos.boot.module.jg.api.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
...@@ -59,7 +60,7 @@ public interface IJgInstallationNoticeService extends IService<JgInstallationNot ...@@ -59,7 +60,7 @@ public interface IJgInstallationNoticeService extends IService<JgInstallationNot
* @param model 数据 * @param model 数据
* @param submitType 保存类型 * @param submitType 保存类型
*/ */
void saveNotice(String submitType, Map<String, Object> model, ReginParams reginParams); void saveNotice(String submitType, JSONObject model, ReginParams reginParams);
/** /**
* 打印告知单 * 打印告知单
......
package com.yeejoin.amos.boot.module.jg.biz.controller; package com.yeejoin.amos.boot.module.jg.biz.controller;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
...@@ -47,7 +48,7 @@ public class JgInstallationNoticeController extends BaseController { ...@@ -47,7 +48,7 @@ public class JgInstallationNoticeController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save") @PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增安装告知", notes = "新增安装告知") @ApiOperation(httpMethod = "POST", value = "新增安装告知", notes = "新增安装告知")
public ResponseModel<String> save(@RequestParam String submitType, @RequestBody Map<String, Object> model) { public ResponseModel<String> save(@RequestParam String submitType, @RequestBody JSONObject model) {
ReginParams reginParams = getSelectedOrgInfo(); ReginParams reginParams = getSelectedOrgInfo();
iJgInstallationNoticeService.saveNotice(submitType, model, reginParams); iJgInstallationNoticeService.saveNotice(submitType, model, reginParams);
......
...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON; ...@@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgInstallationNoticeServiceImpl; import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgInstallationNoticeServiceImpl;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.StartPlatformTokenService;
import com.yeejoin.amos.component.robot.AmosRequestContext; import com.yeejoin.amos.component.robot.AmosRequestContext;
import com.yeejoin.amos.feign.privilege.Privilege; import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel; import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
...@@ -40,15 +41,16 @@ public class PublicWorkFlowMessage extends EmqxListener { ...@@ -40,15 +41,16 @@ public class PublicWorkFlowMessage extends EmqxListener {
*/ */
public static final String WORKFLOW_TASK_COMPLETED = "workflow/task/completed"; public static final String WORKFLOW_TASK_COMPLETED = "workflow/task/completed";
// /** /**
// * 流程执行结束主题 * 流程执行结束主题
// */ */
// public static final String WORKFLOW_PROCESS_COMPLETE = "workflow/process/complete"; public static final String WORKFLOW_PROCESS_COMPLETE = "workflow/process/complete";
@Autowired @Autowired
private JgInstallationNoticeServiceImpl jgInstallationNoticeService; private JgInstallationNoticeServiceImpl jgInstallationNoticeService;
@Autowired
StartPlatformTokenService platformTokenService;
@PostConstruct @PostConstruct
void init() throws Exception { void init() throws Exception {
...@@ -59,9 +61,11 @@ public class PublicWorkFlowMessage extends EmqxListener { ...@@ -59,9 +61,11 @@ public class PublicWorkFlowMessage extends EmqxListener {
@Override @Override
public void processMessage(String topic, MqttMessage message) throws Exception { public void processMessage(String topic, MqttMessage message) throws Exception {
RequestContext.setAppKey(amosAuth.getAppKey()); // RequestContext.setAppKey(amosAuth.getAppKey());
RequestContext.setProduct(amosAuth.getProduct()); // RequestContext.setProduct(amosAuth.getProduct());
RequestContext.setToken(amosAuth.getToken()); // RequestContext.setToken(amosAuth.getToken());
// RequestContext.setAgencyCode(amosAuth.getUserId());
// platformTokenService.getToken();
JSONObject messageObject = JSON.parseObject(new String(message.getPayload())); JSONObject messageObject = JSON.parseObject(new String(message.getPayload()));
String businessKey = messageObject.get("businessKey").toString(); String businessKey = messageObject.get("businessKey").toString();
String[] s = businessKey.split("_"); String[] s = businessKey.split("_");
...@@ -76,6 +80,10 @@ public class PublicWorkFlowMessage extends EmqxListener { ...@@ -76,6 +80,10 @@ public class PublicWorkFlowMessage extends EmqxListener {
if ("installationNotice".equals(type)) { if ("installationNotice".equals(type)) {
jgInstallationNoticeService.completeWorkFlow(messageObject); jgInstallationNoticeService.completeWorkFlow(messageObject);
} }
} else if (topic.equals(WORKFLOW_PROCESS_COMPLETE)) {
if ("installationNotice".equals(type)) {
// jgInstallationNoticeService.completeWorkFlow(messageObject);
}
} }
} }
......
...@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; ...@@ -8,7 +8,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper; import com.yeejoin.amos.boot.biz.common.dao.mapper.DataDictionaryMapper;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import com.yeejoin.amos.boot.biz.common.entity.DataDictionary; import com.yeejoin.amos.boot.biz.common.entity.DataDictionary;
import com.yeejoin.amos.boot.biz.common.utils.DateUtils; 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.RedisKey;
...@@ -41,14 +40,17 @@ import com.yeejoin.amos.feign.workflow.model.AjaxResult; ...@@ -41,14 +40,17 @@ import com.yeejoin.amos.feign.workflow.model.AjaxResult;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO; import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import fr.opensagres.xdocreport.core.io.IOUtils; import fr.opensagres.xdocreport.core.io.IOUtils;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import netscape.javascript.JSObject;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.io.Resource; import org.springframework.core.io.Resource;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.TransactionSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils; import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
...@@ -127,8 +129,13 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -127,8 +129,13 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
private TzBaseUnitLicenceMapper baseUnitLicenceMapper; private TzBaseUnitLicenceMapper baseUnitLicenceMapper;
@Value("classpath:/json/urlInfo.json") @Value("classpath:/json/urlInfo.json")
private Resource bizTypeInfo; public Resource bizTypeInfo;
@Autowired
private TransactionDefinition transactionDefinition;
@Autowired
private PlatformTransactionManager platformTransactionManager;
/** /**
* 根据sequenceNbr查询 * 根据sequenceNbr查询
...@@ -421,9 +428,12 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -421,9 +428,12 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
@Override @Override
@SuppressWarnings({"Duplicates", "rawtypes"}) @SuppressWarnings({"Duplicates", "rawtypes"})
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveNotice(String submitType, Map<String, Object> jgInstallationNoticeDtoMap, ReginParams reginParams) { public void saveNotice(String submitType, JSONObject jgInstallationNoticeDtoMap, ReginParams reginParams) {
String[] taskName = new String[]{"流程结束"}; String[] taskName = new String[]{"流程结束"};
// TransactionStatus transactionStatus = platformTransactionManager.getTransaction(transactionDefinition);
// JgInstallationNoticeDto model = BeanUtil.toBeanIgnoreError(jgInstallationNoticeDtoMap.get(TABLE_PAGE_ID).toString(), JgInstallationNoticeDto.class);
JgInstallationNoticeDto model = JSON.parseObject(jgInstallationNoticeDtoMap.get(TABLE_PAGE_ID).toString(), JgInstallationNoticeDto.class); JgInstallationNoticeDto model = JSON.parseObject(jgInstallationNoticeDtoMap.get(TABLE_PAGE_ID).toString(), JgInstallationNoticeDto.class);
// 字段转换 // 字段转换
convertField(model); convertField(model);
...@@ -476,24 +486,51 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -476,24 +486,51 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
jgInstallationNoticeMapper.insertBatchSomeColumn(list); jgInstallationNoticeMapper.insertBatchSomeColumn(list);
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO(); List<JgInstallationNoticeEq> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> {
List<ActWorkflowStartDTO> workflowStartDTOS = new ArrayList<>(); List<JgInstallationNotice> collect = list.stream().filter(jgInstallationNotice -> jgRelationEquip.getEquipTransferId().equals(jgInstallationNotice.getApplyNo())).collect(Collectors.toList());
list.forEach(item -> { Long sequenceNbr = collect.get(0).getSequenceNbr();
if (SUBMIT_TYPE_FLOW.equals(submitType)) { return jgRelationEquip.setEquipTransferId(String.valueOf(sequenceNbr));
// 发起流程 }).collect(Collectors.toList());
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY); jgInstallationNoticeEqMapper.insertBatchSomeColumn(jgRelationEquipList);
dto.setBusinessKey(item.getSequenceNbr() + "_" + "installationNotice");
dto.setCompleteFirstTask(Boolean.TRUE);
workflowStartDTOS.add(dto); // 需要在事务提交之后,否则事务隔离查询不出数据
TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
@Override
public void afterCommit() {
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> workflowStartDTOS = new ArrayList<>();
list.forEach(item -> {
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(PROCESS_DEFINITION_KEY);
dto.setBusinessKey(item.getSequenceNbr() + "_" + "installationNotice");
dto.setCompleteFirstTask(Boolean.TRUE);
HashMap<String, Object> variables = new HashMap<>();
variables.put("code", "2121");
dto.setVariables(variables);
workflowStartDTOS.add(dto);
}
});
try {
actWorkflowBatchDTO.setProcess(workflowStartDTOS);
Workflow.taskV2Client.startByVariableBatch(actWorkflowBatchDTO);
} catch (Exception e) {
log.error("提交失败:{}", e);
}
} }
}); });
try {
actWorkflowBatchDTO.setProcess(workflowStartDTOS);
Workflow.taskV2Client.startByVariableBatch(actWorkflowBatchDTO);
} catch (Exception e) {
log.error("提交失败:{}", e); // platformTransactionManager.commit(transactionStatus);
}
// list.forEach(item -> { // list.forEach(item -> {
...@@ -524,13 +561,6 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -524,13 +561,6 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
// } // }
// }); // });
List<JgInstallationNoticeEq> jgRelationEquipList = equipList.stream().map(jgRelationEquip -> {
List<JgInstallationNotice> collect = list.stream().filter(jgInstallationNotice -> jgRelationEquip.getEquipTransferId().equals(jgInstallationNotice.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr();
return jgRelationEquip.setEquipTransferId(String.valueOf(sequenceNbr));
}).collect(Collectors.toList());
jgInstallationNoticeEqMapper.insertBatchSomeColumn(jgRelationEquipList);
} }
...@@ -718,8 +748,8 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -718,8 +748,8 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
ArrayList<String> roleList = new ArrayList<>(); ArrayList<String> roleList = new ArrayList<>();
boolean submit = submit(jgInstallationNotice, op); boolean submit = submit(jgInstallationNotice, op);
if(submit) { if(submit) {
getNext(roleList, dto.getInstanceId(),taskName); // getNext(roleList, dto.getInstanceId(),taskName);
jgInstallationNotice.setStatus(taskName[0]); // jgInstallationNotice.setStatus(taskName[0]);
if("0".equals(op)) { if("0".equals(op)) {
if(roleList.size() == 0) { if(roleList.size() == 0) {
...@@ -845,7 +875,7 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -845,7 +875,7 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
List<AgencyUserModel> userList = Privilege.agencyUserClient List<AgencyUserModel> userList = Privilege.agencyUserClient
.queryByRoleId(jgInstallationNotice.getNextExecuteIds(), null,Boolean.FALSE).getResult(); .queryByRoleId(jgInstallationNotice.getNextExecuteIds(), null,Boolean.FALSE).getResult();
List<String> userIds = userList.stream().map(AgencyUserModel::getUserId).collect(Collectors.toList()); List<String> userIds = userList.stream().map(AgencyUserModel::getUserId).collect(Collectors.toList());
taskV2Model.setExecuteUserIds(taskV2ModelOld.getCreateUserId()); taskV2Model.setExecuteUserIds(taskV2ModelOld.getRecUserId());
taskV2Model.setExtras(JSON.toJSONString(jgInstallationNotice)); taskV2Model.setExtras(JSON.toJSONString(jgInstallationNotice));
taskV2Model.setRelationId(jgInstallationNotice.getInstanceId()); taskV2Model.setRelationId(jgInstallationNotice.getInstanceId());
Map<String, Object> userOrgRoleMap = FeignUtil.remoteCall(() -> Privilege.userOrgRoleClient.getme()); Map<String, Object> userOrgRoleMap = FeignUtil.remoteCall(() -> Privilege.userOrgRoleClient.getme());
...@@ -869,15 +899,15 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -869,15 +899,15 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
public void buildTaskModel(TaskV2Model model){ public void buildTaskModel(TaskV2Model model){
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class); // ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
model.setStartDate(new Date()); model.setStartDate(new Date());
model.setStartUserId(reginParams.getUserModel().getUserId());
model.setTaskSource("workFlow"); model.setTaskSource("workFlow");
model.setCreateDate(new Date()); model.setCreateDate(new Date());
model.setFinishStatus(Boolean.FALSE); model.setFinishStatus(Boolean.FALSE);
model.setCreateUserId(reginParams.getUserModel().getUserId()); model.setAgencyCode("tzs");
model.setAgencyCode(reginParams.getUserModel().getAgencyCode()); model.setCreateUserId(RequestContext.getExeUserId());
model.setTaskTitle(reginParams.getUserModel().getRealName() + "发起了" + model.getTaskTitle()); model.setStartUserId(RequestContext.getExeUserId());
model.setTaskTitle("发起了" + model.getTaskTitle());
Systemctl.taskV2Client.create(model); Systemctl.taskV2Client.create(model);
} }
...@@ -923,6 +953,14 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -923,6 +953,14 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
public void updateByWorkFlow(JSONObject jsonObject) { public void updateByWorkFlow(JSONObject jsonObject) {
JgInstallationNotice jgInstallationNotice = this.getById(jsonObject.get("businessId").toString()); JgInstallationNotice jgInstallationNotice = this.getById(jsonObject.get("businessId").toString());
List<String> list = (List<String>) jsonObject.get("candidateGroups"); List<String> list = (List<String>) jsonObject.get("candidateGroups");
JSONArray executor = parseArray(jsonObject.get("executor").toString());
List<String> userList = new ArrayList<>();
for (Object datum : executor) {
if (((Map) datum).containsKey("userId")) {
userList.add(((Map) datum).get("userId").toString());
}
}
String userIds = String.join(",", userList);
jgInstallationNotice.setInstanceId(jsonObject.get("processInstanceId").toString()); jgInstallationNotice.setInstanceId(jsonObject.get("processInstanceId").toString());
jgInstallationNotice.setNextExecuteIds(String.join(",", list)); jgInstallationNotice.setNextExecuteIds(String.join(",", list));
jgInstallationNotice.setInstanceStatus(jgInstallationNotice.getInstanceStatus() + "," + String.join(",", list)); jgInstallationNotice.setInstanceStatus(jgInstallationNotice.getInstanceStatus() + "," + String.join(",", list));
...@@ -931,10 +969,11 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -931,10 +969,11 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
// 代办业务 // 代办业务
TaskV2Model taskV2Model = new TaskV2Model(); TaskV2Model taskV2Model = new TaskV2Model();
//获取待办任务执行人 //获取待办任务执行人
List<AgencyUserModel> userList = Privilege.agencyUserClient // List<AgencyUserModel> userList = Privilege.agencyUserClient
.queryByRoleId(jgInstallationNotice.getNextExecuteIds(), null,Boolean.FALSE).getResult(); // .queryByRoleId(jgInstallationNotice.getNextExecuteIds(), null,Boolean.FALSE).getResult();
List<String> userIds = userList.stream().map(AgencyUserModel::getUserId).collect(Collectors.toList()); // List<String> userIds = userList.stream().map(AgencyUserModel::getUserId).collect(Collectors.toList());
taskV2Model.setExecuteUserIds(CollectionUtils.isEmpty(userIds)?"": String.join(",", userIds)); taskV2Model.setExecuteUserIds(userIds);
taskV2Model.setExtras(JSON.toJSONString(jgInstallationNotice)); taskV2Model.setExtras(JSON.toJSONString(jgInstallationNotice));
taskV2Model.setRelationId(jgInstallationNotice.getInstanceId()); taskV2Model.setRelationId(jgInstallationNotice.getInstanceId());
taskV2Model.setTaskType("installNotice"); taskV2Model.setTaskType("installNotice");
...@@ -947,6 +986,8 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN ...@@ -947,6 +986,8 @@ public class JgInstallationNoticeServiceImpl extends BaseService<JgInstallationN
taskV2Model.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode()); taskV2Model.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskV2Model.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName()); taskV2Model.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskV2Model.setTaskCode(jgInstallationNotice.getApplyNo()); taskV2Model.setTaskCode(jgInstallationNotice.getApplyNo());
taskV2Model.setStartUserId(jgInstallationNotice.getCreateUserId());
taskV2Model.setCreateUserId(jgInstallationNotice.getCreateUserId());
buildTaskModel(taskV2Model); buildTaskModel(taskV2Model);
} }
......
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