Commit 155d6d2e authored by chenzhao's avatar chenzhao

补充待办功能

parent 374be0e2
......@@ -140,4 +140,13 @@ public class CommonserviceImpl {
model.setStartDate(new Date());
return model;
}
public void deleteTaskModel(String id){
List<TaskV2Model> result =Systemctl.taskV2Client.selectListByRelationId(id).getResult();
TaskV2Model model = result.stream().sorted((r1, r2) -> r2.getCreateDate().compareTo(r1.getCreateDate())) // 按时间降序排序
.findFirst()
.orElse(null);
Systemctl.taskV2Client.delete(String.valueOf(model.getSequenceNbr()));
}
}
......@@ -213,7 +213,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
if (StringUtils.isNotBlank(model.getProcessInstanceId())){
commonservice.buildTaskModel(MapBuilder.<String, Object>create().put("instanceId", model.getProcessInstanceId()).put("startDate",new Date())
.put("agencyCode",reginParams.getUserModel().getAgencyCode()).put("userId",reginParams.getUserModel().getUserId()).put("startUser",reginParams.getUserModel().getUserId()).put("startUserId",reginParams.getUserModel().getUserId())
.put("taskStatus",FlowStatusEnum.REJECTED.getCode()).put("taskStatusLabel",FlowStatusEnum.REJECTED.getName()).put("taskName",taskName).put("taskType", model.getBizType()).put("taskTypeLabel", BizTypeEnum.getNameByCode(model.getBizType())).put("taskContent","")
.put("taskStatus",FlowStatusEnum.TO_BE_PROCESSED.getCode()).put("taskStatusLabel",FlowStatusEnum.TO_BE_PROCESSED.getName()).put("taskName",taskName).put("taskType", model.getBizType()).put("taskTypeLabel", BizTypeEnum.getNameByCode(model.getBizType())).put("taskContent","")
.put("taskTitle",reginParams.getUserModel().getUserName()+"发起了"+taskName).put("taskDesc","").put("taskCode",model.getApplicationNo())
.put("extras",JSON.toJSONString(model)).put("createUserId",reginParams.getUserModel().getUserName()).put("startUserId",reginParams.getUserModel().getUserId())
.put("routePath",url.replace("{sequenceNbr}",String.valueOf(model.getSequenceNbr())).replace("{userId}",reginParams.getUserModel().getUserId()).replace("{roleIds}",roleIds))
......@@ -286,6 +286,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
execueFlow(MapBuilder.<String, Object>create().put("op", "提交").put("instanceId", model.getProcessInstanceId()).put("comments", "").build());
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(model.getProcessInstanceId());
String role = (String) nextNodeInfo.get("role");
String taskName = (String) nextNodeInfo.get("taskName");
model.setNextExecuteIds(role);
model.setPromoter(reginParams.getUserModel().getUserId());
if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) {
......@@ -294,6 +295,37 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
model.setWorkflowRole(role);
}
this.updateWithModel(model);
String json = null;
try {
json = IOUtils.toString(bizTypeInfo.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
List<Map> list = parseArray(json, Map.class);
String url = null;
for (Map map : list) {
if (map.get("type").equals(model.getBizType() )&& "look".equals(map.get("pageType"))){
url = map.get("url").toString();
}
}
Map<String, Object> userOrgRoleMap = FeignUtil.remoteCall(() -> Privilege.userOrgRoleClient.getme());
List<String> userOrgRoleList = (List<String>) userOrgRoleMap.get("roleId");
String roleIds = String.join(",", userOrgRoleList);
commonservice.buildTaskModel(MapBuilder.<String, Object>create().put("instanceId", model.getProcessInstanceId()).put("startDate",new Date())
.put("agencyCode",reginParams.getUserModel().getAgencyCode()).put("userId",reginParams.getUserModel().getUserId()).put("startUser",reginParams.getUserModel().getUserId()).put("startUserId",reginParams.getUserModel().getUserId())
.put("taskStatus",FlowStatusEnum.REJECTED.getCode()).put("taskStatusLabel",FlowStatusEnum.REJECTED.getName()).put("taskName",taskName).put("taskType", model.getBizType()).put("taskTypeLabel", BizTypeEnum.getNameByCode(model.getBizType())).put("taskContent","")
.put("taskTitle",reginParams.getUserModel().getUserName()+"发起了"+taskName).put("taskDesc","").put("taskCode",model.getApplicationNo())
.put("extras",JSON.toJSONString(model)).put("createUserId",reginParams.getUserModel().getUserName()).put("startUserId",reginParams.getUserModel().getUserId())
.put("routePath",url.replace("{sequenceNbr}",String.valueOf(model.getSequenceNbr())).replace("{userId}",reginParams.getUserModel().getUserId()).replace("{roleIds}",roleIds))
.build());
Map<String,Object> params = new HashMap<>();
params.put("relationId",model.getProcessInstanceId());
params.put("taskStatus",FlowStatusEnum.TO_BE_PROCESSED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_PROCESSED.getName());
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
}
return model;
}
......@@ -414,6 +446,12 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
log.warn("JyjcInspectionApplicationModel Not Found!");
return;
}
params.put("relationId",inspectionApplicationModel.getProcessInstanceId());
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName());
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
List<JyjcInspectionResult> resultModels = new ArrayList(applicationEquipModels.size());
//List<String> codes = createCodeService.createApplicationFormCode(ApplicationFormTypeEnum.JG.getCode(), applicationEquipModels.size());
List<String> codes = tzsServiceFeignClient.applicationFormCode(ApplicationFormTypeEnum.JG.getCode(), applicationEquipModels.size()).getResult();
......@@ -459,8 +497,9 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
String op = params.get("op").toString();
Long sequenceNbr = Long.parseLong(params.get("sequenceNbr") + "");
params.put("taskStatus",FlowStatusEnum.TO_BE_PROCESSED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_PROCESSED.getName());
params.put("relationId",instanceId);
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName());
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
JyjcInspectionApplicationModel model = this.queryBySeq(sequenceNbr);
String json = null;
......@@ -539,6 +578,7 @@ public class JyjcInspectionApplicationServiceImpl extends BaseService<JyjcInspec
return false;
}
updateModelByInstanceId(inspectionApplicationModel.getSequenceNbr(), inspectionApplicationModel.getProcessInstanceId(), MapBuilder.<String, Object>create().put("status", FlowStatusEnum.ROLLBACK.getCode() + "").build(), true);
commonservice.deleteTaskModel(inspectionApplicationModel.getProcessInstanceId());
return true;
} catch (Exception e) {
e.printStackTrace();
......
package com.yeejoin.amos.boot.module.jyjc.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
......@@ -13,6 +14,7 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.common.api.dto.AttachmentDto;
import com.yeejoin.amos.boot.module.jyjc.api.entity.JyjcOpeningApplication;
import com.yeejoin.amos.boot.module.jyjc.api.enums.BizTypeEnum;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcBaseMapper;
import com.yeejoin.amos.boot.module.jyjc.api.mapper.JyjcOpeningApplicationMapper;
import com.yeejoin.amos.boot.module.jyjc.api.model.JyjcGeographicModel;
......@@ -32,10 +34,14 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseEnterpriseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzBaseUnitLicenceMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.TzsUserInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.component.feign.utils.FeignUtil;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.AjaxResult;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.ObjectUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
......@@ -52,9 +58,13 @@ import org.typroject.tyboot.core.restful.exception.instance.BadRequest;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import javax.annotation.Resource;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.*;
import java.util.stream.Collectors;
import static com.alibaba.fastjson.JSON.parseArray;
/**
* 服务实现类
......@@ -81,6 +91,8 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
@Value("${jyjc.user-post:6615}")
private String jyjcUserPost;
@Value("classpath:/json/bizTypeInfo.json")
private org.springframework.core.io.Resource bizTypeInfo;
@Autowired
private RedisUtils redisUtils;
......@@ -91,7 +103,8 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
private TzBaseEnterpriseInfoMapper enterpriseInfoMapper;
@Autowired
private TzsUserInfoMapper userInfoMapper;
@Autowired
CommonserviceImpl commonservice;
@Autowired
private WorkflowHelper workflowHelper;
@Autowired
......@@ -125,6 +138,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
// 查询下节点任务
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId);
String role = (String) nextNodeInfo.get("role");
String taskName = (String) nextNodeInfo.get("taskName");
model.setNextExecuteIds(role);
model.setPromoter(reginParams.getUserModel().getUserId());
if (!org.springframework.util.ObjectUtils.isEmpty(model.getWorkflowRole())) {
......@@ -132,6 +146,32 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
} else {
model.setWorkflowRole(role);
}
String json = null;
try {
json = IOUtils.toString(bizTypeInfo.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
List<Map> list = parseArray(json, Map.class);
String url = null;
for (Map map : list) {
if (map.get("type").equals("opening")&& "look".equals(map.get("pageType"))){
url = map.get("url").toString();
}
}
Map<String, Object> userOrgRoleMap = FeignUtil.remoteCall(() -> Privilege.userOrgRoleClient.getme());
List<String> userOrgRoleList = (List<String>) userOrgRoleMap.get("roleId");
String roleIds = String.join(",", userOrgRoleList);
commonservice.buildTaskModel(MapBuilder.<String, Object>create().put("instanceId", model.getWorkflowProstanceId()).put("startDate",new Date())
.put("agencyCode",reginParams.getUserModel().getAgencyCode()).put("userId",reginParams.getUserModel().getUserId()).put("startUser",reginParams.getUserModel().getUserId()).put("startUserId",reginParams.getUserModel().getUserId())
.put("taskStatus",FlowStatusEnum.TO_BE_PROCESSED.getCode()).put("taskStatusLabel",FlowStatusEnum.TO_BE_PROCESSED.getName()).put("taskName",taskName).put("taskType", "opening").put("taskTypeLabel", "检验业务").put("taskContent","")
.put("taskTitle",reginParams.getUserModel().getUserName()+"发起了"+taskName).put("taskDesc","").put("taskCode",model.getApplicationSeq())
.put("extras",JSON.toJSONString(model)).put("createUserId",reginParams.getUserModel().getUserName()).put("startUserId",reginParams.getUserModel().getUserId())
.put("routePath",url.replace("{sequenceNbr}",String.valueOf(model.getSequenceNbr())).replace("{userId}",reginParams.getUserModel().getUserId()).replace("{roleIds}",roleIds))
.build());
} else {
// 只有第一次改为待提交
if (entity == null) {
......@@ -494,9 +534,35 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
if ("1".equals(op)) {
// 如果是回退, 则业务状态改为驳回
status = FlowStatusEnum.REJECTED.getCode() + "";
params.put("relationId",instanceId);
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName());
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
String json = null;
try {
json = IOUtils.toString(bizTypeInfo.getInputStream(), java.lang.String.valueOf(StandardCharsets.UTF_8));
} catch (IOException e) {
e.printStackTrace();
}
List<Map> list = parseArray(json, Map.class);
String url = null;
for (Map map : list) {
if (map.get("type").equals("opening" )&& "edit".equals(map.get("pageType"))){
url = map.get("url").toString();
}
}
taskV2Model.setRoutePath(url);
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(instanceId);
String roles = (String) nextNodeInfo.get("role");
taskV2Model.setExecuteUserIds(roles);
commonservice.buildTaskModel(BeanUtil.beanToMap(taskV2Model));
} else {
if ("流程结束".equals(taskName)) {
status = FlowStatusEnum.TO_BE_FINISHED.getCode() + "";
params.put("taskStatus",FlowStatusEnum.TO_BE_FINISHED.getCode());
params.put("taskStatusLabel",FlowStatusEnum.TO_BE_FINISHED.getName());
TaskV2Model taskV2Model = commonservice.updateTaskModel(params);
} else {
status = FlowStatusEnum.TO_BE_PROCESSED.getCode() + "";
}
......@@ -526,6 +592,7 @@ public class JyjcOpeningApplicationServiceImpl extends BaseService<JyjcOpeningAp
Map<String, Object> nextNodeInfo = workflowHelper.getNextWorkflowNode(jyjcOpeningApplication.getWorkflowProstanceId());
String role = (String) nextNodeInfo.get("role");
Long id = Long.parseLong(sequenceNbr);
commonservice.deleteTaskModel(jyjcOpeningApplication.getWorkflowProstanceId());
updateModelByInstanceId(id, jyjcOpeningApplication.getWorkflowProstanceId(), FlowStatusEnum.ROLLBACK.getCode() + "", role, true);
} catch (Exception e) {
throw new BadRequest("撤回流程失败,请联系管理员!");
......
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