Commit a3ce85aa authored by 韩桐桐's avatar 韩桐桐

fix(jg):电梯注销添加代办

parent 6770ab6c
...@@ -37,7 +37,7 @@ public class JgScrapCancelController extends BaseController { ...@@ -37,7 +37,7 @@ public class JgScrapCancelController 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<Object> save(@RequestParam String submitType, @RequestBody Map<String, JSONObject> model) { public ResponseModel<Object> save(@RequestParam String submitType, @RequestBody Map<String, Object> model) {
jgScrapCancelService.save(submitType, model); jgScrapCancelService.save(submitType, model);
return ResponseHelper.buildResponse("ok"); return ResponseHelper.buildResponse("ok");
} }
......
...@@ -15,7 +15,6 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils; ...@@ -15,7 +15,6 @@ import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.JgScrapCancelDto; import com.yeejoin.amos.boot.module.jg.api.dto.JgScrapCancelDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgScrapCancel; 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.entity.JgScrapCancelEq;
import com.yeejoin.amos.boot.module.jg.api.entity.JgUseRegistration;
import com.yeejoin.amos.boot.module.jg.api.enums.CancelTypeEnum; 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.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgScrapCancelEqMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgScrapCancelEqMapper;
...@@ -35,13 +34,20 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper; ...@@ -35,13 +34,20 @@ import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgRegisterInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgUseInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.IdxBizJgUseInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.SuperviseInfoMapper; import com.yeejoin.amos.boot.module.ymt.api.mapper.SuperviseInfoMapper;
import com.yeejoin.amos.component.feign.model.FeignClientResult; import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.privilege.Privilege;
import com.yeejoin.amos.feign.privilege.model.AgencyUserModel;
import com.yeejoin.amos.feign.systemctl.Systemctl;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.Workflow; import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO; import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO; import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.AjaxResult; 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 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.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.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -53,9 +59,13 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil; ...@@ -53,9 +59,13 @@ import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.alibaba.fastjson.JSON.parseArray;
/** /**
* 设备注销报废服务实现类 * 设备注销报废服务实现类
* *
...@@ -87,6 +97,8 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -87,6 +97,8 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
SuperviseInfoMapper superviseInfoMapper; SuperviseInfoMapper superviseInfoMapper;
@Autowired @Autowired
RedisUtils redisUtils; RedisUtils redisUtils;
@Value("classpath:/json/urlInfo.json")
private Resource bizTypeInfo;
public Page<Map<String, Object>> getList(JgScrapCancelDto dto, Page<Map<String, Object>> page, List<String> roleIds) { public Page<Map<String, Object>> getList(JgScrapCancelDto dto, Page<Map<String, Object>> page, List<String> roleIds) {
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);
...@@ -122,10 +134,10 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -122,10 +134,10 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
@SuppressWarnings({"Duplicates", "rawtypes"}) @SuppressWarnings({"Duplicates", "rawtypes"})
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void save(String submitType, Map<String, JSONObject> jgInstallationNoticeDtoMap) { public void save(String submitType, Map<String, Object> jgInstallationNoticeDtoMap) {
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);
String[] taskName = new String[]{"流程结束"}; String[] taskName = new String[]{"流程结束"};
JSONObject jgScrapCancelAdd = jgInstallationNoticeDtoMap.get("jgScrapCancelAdd"); JSONObject jgScrapCancelAdd = (JSONObject) jgInstallationNoticeDtoMap.get("jgScrapCancelAdd");
String equipId = jgScrapCancelAdd.get("record").toString(); String equipId = jgScrapCancelAdd.get("record").toString();
jgScrapCancelAdd.remove("record"); jgScrapCancelAdd.remove("record");
...@@ -241,6 +253,31 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -241,6 +253,31 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
equipList.add(jgRelationEquip); equipList.add(jgRelationEquip);
}); });
this.saveBatch(list); this.saveBatch(list);
list.forEach(item -> {
// 代办业务
if ("1".equals(submitType)) {
TaskV2Model taskV2Model = new TaskV2Model();
//获取待办任务执行人
List<AgencyUserModel> userList = Privilege.agencyUserClient
.queryByRoleId(item.getNextExecuteIds(), null, Boolean.FALSE).getResult();
List<String> userIds = userList.stream().map(AgencyUserModel::getUserId).collect(Collectors.toList());
taskV2Model.setExecuteUserIds(CollectionUtils.isEmpty(userIds) ? "" : String.join(",", userIds));
taskV2Model.setExtras(JSON.toJSONString(item));
taskV2Model.setRelationId(item.getInstanceId());
taskV2Model.setTaskType("scrapCancel");
taskV2Model.setTaskTypeLabel("注销报废");
String url = getUrl(taskV2Model.getTaskType(), "look");
String format = String.format(url, item.getSequenceNbr(), item.getNextExecuteIds(), item.getNextExecuteIds(),
item.getAuditStatus(), item.getInstanceId());
taskV2Model.setRoutePath(format);
taskV2Model.setTaskTitle(item.getStatus());
taskV2Model.setTaskName(item.getStatus());
taskV2Model.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskV2Model.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskV2Model.setTaskCode(item.getApplyNo());
buildTaskModel(taskV2Model);
}
});
List<JgScrapCancelEq> jgScrapCancelEqList = equipList.stream().map(t -> { List<JgScrapCancelEq> jgScrapCancelEqList = equipList.stream().map(t -> {
List<JgScrapCancel> collect = list.stream().filter(item -> t.getEquipTransferId().equals(item.getApplyNo())).collect(Collectors.toList()); List<JgScrapCancel> collect = list.stream().filter(item -> t.getEquipTransferId().equals(item.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr(); Long sequenceNbr = collect.get(0).getSequenceNbr();
...@@ -263,6 +300,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -263,6 +300,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
if (Objects.isNull(jgScrapCancelDto) || StringUtils.isEmpty(submitType)) { if (Objects.isNull(jgScrapCancelDto) || StringUtils.isEmpty(submitType)) {
throw new IllegalArgumentException("参数不能为空"); throw new IllegalArgumentException("参数不能为空");
} }
boolean instancedId = ObjectUtils.isEmpty(jgScrapCancelDto.getInstanceId());
String[] taskName = new String[]{"流程结束"}; String[] taskName = new String[]{"流程结束"};
// 字段转换 // 字段转换
this.convertField(jgScrapCancelDto); this.convertField(jgScrapCancelDto);
...@@ -310,6 +348,36 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -310,6 +348,36 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
jgScrapCancel.setAuditStatus(String.valueOf(WorkFlowStatusEnum.CANCEL_RECEIVE.getPass())); jgScrapCancel.setAuditStatus(String.valueOf(WorkFlowStatusEnum.CANCEL_RECEIVE.getPass()));
this.updateById(jgScrapCancel); this.updateById(jgScrapCancel);
} }
if (!instancedId) {
HashMap<String, Object> map = new HashMap<>();
map.put("relationId", jgScrapCancelDto.getInstanceId());
map.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
map.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
updateTaskModel(map);
}
TaskV2Model taskV2Model = new TaskV2Model();
//获取待办任务执行人
List<AgencyUserModel> userList = Privilege.agencyUserClient
.queryByRoleId(jgScrapCancel.getNextExecuteIds(), null, Boolean.FALSE).getResult();
List<String> userIds = userList.stream().map(AgencyUserModel::getUserId).collect(Collectors.toList());
taskV2Model.setExecuteUserIds(CollectionUtils.isEmpty(userIds) ? "" : String.join(",", userIds));
taskV2Model.setExtras(JSON.toJSONString(jgScrapCancel));
taskV2Model.setRelationId(jgScrapCancel.getInstanceId());
taskV2Model.setTaskType("scrapCancel");
taskV2Model.setTaskTypeLabel("注销报废");
String url = getUrl(taskV2Model.getTaskType(), "look");
String format = String.format(url, jgScrapCancel.getSequenceNbr(), jgScrapCancel.getNextExecuteIds(),
jgScrapCancel.getNextExecuteIds(), jgScrapCancel.getAuditStatus(), jgScrapCancel.getInstanceId());
taskV2Model.setRoutePath(format);
taskV2Model.setTaskTitle(jgScrapCancel.getStatus());
taskV2Model.setTaskName(jgScrapCancel.getStatus());
taskV2Model.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskV2Model.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskV2Model.setTaskCode(jgScrapCancel.getApplyNo());
buildTaskModel(taskV2Model);
} else { } else {
JgScrapCancel bean = new JgScrapCancel(); JgScrapCancel bean = new JgScrapCancel();
BeanUtils.copyProperties(jgScrapCancelDto, bean); BeanUtils.copyProperties(jgScrapCancelDto, bean);
...@@ -367,6 +435,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -367,6 +435,7 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
} }
} }
} }
@Autowired @Autowired
IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper; IdxBizJgRegisterInfoMapper idxBizJgRegisterInfoMapper;
...@@ -435,6 +504,13 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -435,6 +504,13 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) { if (!FlowStatusEnum.TO_BE_FINISHED.getName().equals(taskCode)) {
jgScrapCancel.setAuditStatus(WorkFlowStatusEnum.getMessage(taskCode).getRollBack()); jgScrapCancel.setAuditStatus(WorkFlowStatusEnum.getMessage(taskCode).getRollBack());
} }
HashMap<String, Object> map = new HashMap<>();
map.put("relationId", instanceId);
map.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
map.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
map.put("isDelete", Boolean.TRUE);
updateTaskModel(map);
String join = String.join(",", roleList); String join = String.join(",", roleList);
jgScrapCancel.setPromoter(reginParams.getUserModel().getUserId()); jgScrapCancel.setPromoter(reginParams.getUserModel().getUserId());
jgScrapCancel.setNextExecuteIds(join); jgScrapCancel.setNextExecuteIds(join);
...@@ -513,10 +589,38 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -513,10 +589,38 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
if ("0".equals(operate)) { if ("0".equals(operate)) {
// 通过操作 // 通过操作
jgScrapCancel.setAuditStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass()); jgScrapCancel.setAuditStatus(WorkFlowStatusEnum.getMessage(taskCode).getPass());
HashMap<String, Object> map = new HashMap<>();
map.put("relationId", instanceId);
map.put("taskStatus", FlowStatusEnum.TO_BE_FINISHED.getCode());
map.put("taskStatusLabel", FlowStatusEnum.TO_BE_FINISHED.getName());
updateTaskModel(map);
} else { } else {
// 驳回操作 // 驳回操作
jgScrapCancel.setAuditStatus(WorkFlowStatusEnum.getMessage(taskCode).getReject()); jgScrapCancel.setAuditStatus(WorkFlowStatusEnum.getMessage(taskCode).getReject());
jgScrapCancel.setPromoter(null); jgScrapCancel.setPromoter(null);
HashMap<String, Object> map = new HashMap<>();
map.put("relationId", instanceId);
map.put("taskStatus", FlowStatusEnum.REJECTED.getCode());
map.put("taskStatusLabel", FlowStatusEnum.REJECTED.getName());
TaskV2Model taskV2ModelOld = updateTaskModel(map);
TaskV2Model taskV2Model = new TaskV2Model();
taskV2Model.setExecuteUserIds(taskV2ModelOld.getCreateUserId());
taskV2Model.setExtras(JSON.toJSONString(jgScrapCancel));
taskV2Model.setRelationId(instanceId);
taskV2Model.setTaskType("scrapCancel");
taskV2Model.setTaskTypeLabel("注销报废");
String url = getUrl(taskV2Model.getTaskType(), "edit");
String format = String.format(url, jgScrapCancel.getSequenceNbr(), jgScrapCancel.getNextExecuteIds(),
jgScrapCancel.getNextExecuteIds(), jgScrapCancel.getAuditStatus(), "", instanceId);
taskV2Model.setRoutePath(format);
taskV2Model.setTaskTitle(jgScrapCancel.getStatus());
taskV2Model.setTaskName(jgScrapCancel.getStatus());
taskV2Model.setTaskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskV2Model.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskV2Model.setTaskCode(jgScrapCancel.getApplyNo());
buildTaskModel(taskV2Model);
} }
} else { } else {
...@@ -559,4 +663,56 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc ...@@ -559,4 +663,56 @@ public class JgScrapCancelServiceImpl extends BaseService<JgScrapCancelDto, JgSc
this.getBaseMapper().updateById(jgScrapCancel); this.getBaseMapper().updateById(jgScrapCancel);
} }
public TaskV2Model updateTaskModel(Map<String, Object> params) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
List<TaskV2Model> result = Systemctl.taskV2Client.selectListByRelationId(params.get("relationId").toString()).getResult();
TaskV2Model model = result.stream().sorted((r1, r2) -> r2.getCreateDate().compareTo(r1.getCreateDate())) // 按时间降序排序
.findFirst()
.orElse(null);
model.setTaskStatus(Integer.valueOf(params.get("taskStatus").toString()));
model.setRoutePath(model.getRoutePath().replace("nextExecuteIds", "nextExecuteIdsOld"));
model.setTaskStatusLabel(params.get("taskStatusLabel").toString());
model.setEndDate(new Date());
model.setFinishStatus(Boolean.TRUE);
model.setEndUserId(reginParams.getUserModel().getUserId());
if (params.containsKey("isDelete")) {
Systemctl.taskV2Client.delete(model.getSequenceNbr().toString());
} else {
Systemctl.taskV2Client.update(model, model.getSequenceNbr());
}
return model;
}
public void buildTaskModel(TaskV2Model model) {
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
model.setStartDate(new Date());
model.setStartUserId(reginParams.getUserModel().getUserId());
model.setTaskSource("workFlow");
model.setCreateDate(new Date());
model.setFinishStatus(Boolean.FALSE);
model.setCreateUserId(reginParams.getUserModel().getUserId());
model.setAgencyCode(reginParams.getUserModel().getAgencyCode());
model.setTaskTitle(reginParams.getUserModel().getRealName() + "发起了" + model.getTaskTitle());
Systemctl.taskV2Client.create(model);
}
private String getUrl(String type, String pageType) {
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(type) && pageType.equals(map.get("pageType"))) {
url = map.get("url").toString();
break;
}
}
return url;
}
} }
\ No newline at end of file
[ [
{ {
"type": "scrapCancel",
"pageType": "look",
"url": "/mixuap?appId=1742358052905971713&id=1737357871097606146&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&formType=detail&noticeStatus=%s&instanceId=%s"
},
{
"type": "scrapCancel",
"pageType": "edit",
"url": "/mixuap?appId=1742358052905971713&id=1737358169170014210&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&formType=edit&noticeStatus=%s&userId=%s&instanceId=%s"
},
{
"type": "installNotice", "type": "installNotice",
"pageType": "look", "pageType": "look",
"url": "/mixuap?appId=1742358052905971713&id=1735246137364869121&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&formType=detail&noticeStatus=%s&instanceId=%s" "url": "/mixuap?appId=1742358052905971713&id=1735246137364869121&sequenceNbr=%s&roleIds=%s&nextExecuteIds=%s&formType=detail&noticeStatus=%s&instanceId=%s"
......
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