Commit 62d022b9 authored by LiuLin's avatar LiuLin

fix(jg):设备移交代码提交

parent 2d094de9
package com.yeejoin.amos.boot.module.jg.api.dto; package com.yeejoin.amos.boot.module.jg.api.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto; import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import java.util.Date; import java.util.Date;
import java.util.List;
import java.util.Map;
/** /**
* 设备移交 * 设备移交
...@@ -20,7 +23,6 @@ public class JgEquipTransferDto extends BaseDto { ...@@ -20,7 +23,6 @@ public class JgEquipTransferDto extends BaseDto {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ApiModelProperty(value = "申请编号") @ApiModelProperty(value = "申请编号")
private String applyNo; private String applyNo;
...@@ -78,4 +80,13 @@ public class JgEquipTransferDto extends BaseDto { ...@@ -78,4 +80,13 @@ public class JgEquipTransferDto extends BaseDto {
@ApiModelProperty(value = "任务发起人id") @ApiModelProperty(value = "任务发起人id")
private String promoter; private String promoter;
@ApiModelProperty(value = "任务名称")
private String taskName;
@ApiModelProperty(value = "流程执行角色")
private String instanceRoles;
@TableField(exist = false)
@ApiModelProperty(value = "告知设备列表")
private List<Map<String, Object>> deviceList;
} }
...@@ -136,4 +136,10 @@ public class JgEquipTransfer extends BaseEntity { ...@@ -136,4 +136,10 @@ public class JgEquipTransfer extends BaseEntity {
@TableField(value = "task_name") @TableField(value = "task_name")
private String taskName; private String taskName;
/**
* 任务发起人id
*/
@TableField(value = "instance_roles")
private String instanceRoles;
} }
package com.yeejoin.amos.boot.module.jg.api.mapper; package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEquipTransferEq; import com.yeejoin.amos.boot.module.jg.api.entity.JgEquipTransferEq;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
* 设备移交关系表 Mapper 接口 * 设备移交关系表 Mapper 接口
...@@ -9,6 +8,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; ...@@ -9,6 +8,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author system_generator * @author system_generator
* @date 2023-12-20 * @date 2023-12-20
*/ */
public interface JgEquipTransferEqMapper extends BaseMapper<JgEquipTransferEq> { public interface JgEquipTransferEqMapper extends CustomBaseMapper<JgEquipTransferEq> {
} }
...@@ -2,7 +2,9 @@ package com.yeejoin.amos.boot.module.jg.api.mapper; ...@@ -2,7 +2,9 @@ package com.yeejoin.amos.boot.module.jg.api.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto; import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgInstallationNoticeDto;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEquipTransfer; import com.yeejoin.amos.boot.module.jg.api.entity.JgEquipTransfer;
import com.yeejoin.amos.boot.module.jg.api.entity.JgInstallationNotice;
import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -15,7 +17,7 @@ import java.util.Map; ...@@ -15,7 +17,7 @@ import java.util.Map;
* @date 2023-12-20 * @date 2023-12-20
*/ */
public interface JgEquipTransferMapper extends CustomBaseMapper<JgEquipTransfer> { public interface JgEquipTransferMapper extends CustomBaseMapper<JgEquipTransfer> {
Page<JgEquipTransfer> queryForPage(Page<JgEquipTransfer> page, JgEquipTransferDto dto, String type, String companyCode); Page<JgEquipTransfer> queryForPage(Page<JgEquipTransfer> page, @Param("param") JgEquipTransferDto model, @Param("type") String type, @Param("companyCode") String companyCode);
void updatePromoter(@Param("id")Long id); void updatePromoter(@Param("id")Long id);
......
package com.yeejoin.amos.boot.module.jg.biz.controller;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgEquipTransferServiceImpl;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
/**
* 设备移交
*
* @author system_generator
* @date 2023-12-20
*/
@RestController
@Api(tags = "设备移交Api")
@RequestMapping(value = "/jg-equip-transfer")
public class JgEquipTransferByWorkFlowController extends BaseController {
@Autowired
JgEquipTransferServiceImpl jgEquipTransferServiceImpl;
private static final String TABLE_PAGE_ID = "1734141426742095873";
/**
* 受理
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/accept")
@ApiOperation(httpMethod = "POST", value = "设备移交受理", notes = "设备移交受理")
public ResponseModel<JgEquipTransferDto> accept(@RequestBody Map<String, Object> model, String op) {
LinkedHashMap model1 = (LinkedHashMap)model.get("model");
LinkedHashMap equipTransferInfo = (LinkedHashMap)model1.get(TABLE_PAGE_ID);
JgEquipTransferDto jgEquipTransferDto = JSON.parseObject(JSON.toJSONString(equipTransferInfo), JgEquipTransferDto.class);
jgEquipTransferServiceImpl.accept(jgEquipTransferDto,op);
return ResponseHelper.buildResponse(null);
}
/**
* 设备移交撤销
*
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/cancel")
@ApiOperation(httpMethod = "POST", value = "设备移交撤销", notes = "设备移交撤销")
public ResponseModel<JgEquipTransferDto> cancel(@RequestBody Map<String, Object> model) {
JgEquipTransferDto equipTransferInfo = BeanUtil.mapToBean(((LinkedHashMap) model.get(TABLE_PAGE_ID)), JgEquipTransferDto.class, true);
if (Objects.isNull(equipTransferInfo)) {
throw new IllegalArgumentException("参数equipTransferInfo不能为空");
}
jgEquipTransferServiceImpl.cancel(equipTransferInfo);
return ResponseHelper.buildResponse(equipTransferInfo);
}
}
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 com.yeejoin.amos.boot.module.jg.api.entity.JgEquipTransfer; import com.yeejoin.amos.boot.module.jg.api.entity.JgEquipTransfer;
import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
...@@ -8,8 +9,7 @@ import io.swagger.annotations.ApiOperation; ...@@ -8,8 +9,7 @@ import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController; import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Arrays; import java.util.*;
import java.util.Map;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgEquipTransferServiceImpl; import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgEquipTransferServiceImpl;
import org.typroject.tyboot.core.restful.utils.ResponseHelper; import org.typroject.tyboot.core.restful.utils.ResponseHelper;
import org.typroject.tyboot.core.restful.utils.ResponseModel; import org.typroject.tyboot.core.restful.utils.ResponseModel;
...@@ -31,6 +31,8 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType; ...@@ -31,6 +31,8 @@ import org.typroject.tyboot.core.foundation.enumeration.UserType;
@RequestMapping(value = "/jg-equip-transfer") @RequestMapping(value = "/jg-equip-transfer")
public class JgEquipTransferController extends BaseController { public class JgEquipTransferController extends BaseController {
private static final String TABLE_PAGE_ID = "1734141426742095873";
@Autowired @Autowired
JgEquipTransferServiceImpl jgEquipTransferServiceImpl; JgEquipTransferServiceImpl jgEquipTransferServiceImpl;
...@@ -42,8 +44,32 @@ public class JgEquipTransferController extends BaseController { ...@@ -42,8 +44,32 @@ public class JgEquipTransferController 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<JgEquipTransferDto> save(@RequestParam String submitType, @RequestBody Map<String, JgEquipTransferDto> dto) { public ResponseModel<Object> save(@RequestParam String submitType, @RequestBody Map<String, JgEquipTransferDto> modelMap) {
return ResponseHelper.buildResponse(jgEquipTransferServiceImpl.saveOrUpdateModel(dto, false)); jgEquipTransferServiceImpl.saveOrUpdateModel(submitType, modelMap.get(TABLE_PAGE_ID), getSelectedOrgInfo());
return ResponseHelper.buildResponse("ok");
}
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PutMapping(value = "/update")
@ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新设备移交", notes = "根据sequenceNbr更新设备移交")
public ResponseModel<JgEquipTransferDto> updateBySequenceNbr(@RequestParam String submitType, @RequestBody Map<String, Object> modelMap, @RequestParam(value = "op", required = false) String op) {
JgEquipTransferDto equipTransferDto = BeanUtil.mapToBean(((LinkedHashMap) modelMap.get(TABLE_PAGE_ID)), JgEquipTransferDto.class, true);
if (Objects.isNull(equipTransferDto)) {
throw new IllegalArgumentException("参数equipTransferDto不能为空");
}
return ResponseHelper.buildResponse(jgEquipTransferServiceImpl.updateEquipTransfer(submitType, equipTransferDto, op));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/delete")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除设备移交", notes = "根据sequenceNbr删除设备移交")
public ResponseModel<Boolean> deleteBySequenceNbr(@RequestParam(value = "sequenceNbr") Long[] sequenceNbr) {
return ResponseHelper.buildResponse(jgEquipTransferServiceImpl.removeById(sequenceNbr));
} }
/** /**
...@@ -54,7 +80,7 @@ public class JgEquipTransferController extends BaseController { ...@@ -54,7 +80,7 @@ public class JgEquipTransferController extends BaseController {
*/ */
@TycloudOperation(ApiLevel = UserType.AGENCY) @TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/deleteBatch") @DeleteMapping(value = "/deleteBatch")
@ApiOperation(httpMethod = "POST", value = "批量删除设备移交", notes = "批量删除设备移交") @ApiOperation(httpMethod = "DELETE", value = "批量删除设备移交", notes = "批量删除设备移交")
public ResponseModel<Object> deleteBySequenceNbr(@RequestParam String ids) { public ResponseModel<Object> deleteBySequenceNbr(@RequestParam String ids) {
if (StringUtils.isEmpty(ids)) { if (StringUtils.isEmpty(ids)) {
throw new RuntimeException("请选择需要删除的行!"); throw new RuntimeException("请选择需要删除的行!");
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl; package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.biz.common.bo.ReginParams; import com.yeejoin.amos.boot.biz.common.bo.ReginParams;
import com.yeejoin.amos.boot.module.jg.api.entity.JgEquipTransfer; 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.entity.*;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipTransferEqMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipTransferMapper; import com.yeejoin.amos.boot.module.jg.api.mapper.JgEquipTransferMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgEquipTransferService; import com.yeejoin.amos.boot.module.jg.api.service.IJgEquipTransferService;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto; import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto;
import com.yeejoin.amos.boot.module.ymt.api.common.BaseException; import com.yeejoin.amos.boot.module.ymt.api.common.BaseException;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum; import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.OtherInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.mapper.RegistrationInfoMapper;
import com.yeejoin.amos.boot.module.ymt.api.service.ICreateCodeService;
import com.yeejoin.amos.component.feign.model.FeignClientResult;
import com.yeejoin.amos.feign.workflow.Workflow;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
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 lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.rdbms.service.BaseService; import org.typroject.tyboot.core.rdbms.service.BaseService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import java.util.HashMap; import java.text.ParseException;
import java.util.List; import java.util.*;
import java.util.Map; import java.util.stream.Collectors;
import java.util.Objects;
/** /**
* 设备移交服务实现类 * 设备移交服务实现类
...@@ -25,19 +48,223 @@ import java.util.Objects; ...@@ -25,19 +48,223 @@ import java.util.Objects;
* @author system_generator * @author system_generator
* @date 2023-12-20 * @date 2023-12-20
*/ */
@Slf4j
@Service @Service
public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,JgEquipTransfer, JgEquipTransferMapper> implements IJgEquipTransferService { public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,JgEquipTransfer, JgEquipTransferMapper> implements IJgEquipTransferService {
@Value("${workflow.process-definition-key.equip-transfer:}")
private String equipTransferProcessKey;
private static final String SUBMIT_TYPE_FLOW = "1";
@Autowired
private ICreateCodeService iCreateCodeService;
@Autowired
JgEquipTransferEqMapper jgEquipTransferEqMapper;
@Autowired
OtherInfoMapper tzsJgOtherInfoMapper;
@Autowired
RegistrationInfoMapper tzsJgRegistrationInfoMapper;
@Autowired
RedisUtils redisUtils;
@Transactional(rollbackFor = {Exception.class, BaseException.class}) @Transactional(rollbackFor = {Exception.class, BaseException.class})
public JgEquipTransferDto saveOrUpdateModel(Map<String, JgEquipTransferDto> dto, Boolean enableStartFlow) { public void saveOrUpdateModel(String submitType, JgEquipTransferDto model, ReginParams reginParams) {
String[] taskName = new String[]{"流程结束"}; String[] taskName = new String[]{"流程结束"};
boolean isUpdate = false; // 字段转换
String instanceId = null; convertField(model);
JgEquipTransfer entity = null; // 获取告知设备列表
List<Map<String, Object>> deviceList = model.getDeviceList();
if (CollectionUtils.isEmpty(deviceList)) {
return;
}
// 获取设备移交顺序号
List<String> applyNoList = iCreateCodeService.createApplicationFormCode(ApplicationFormTypeEnum.SBYJ.getCode(), deviceList.size());
if (CollectionUtils.isEmpty(applyNoList)) {
return;
}
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
// 判断当前是否为提交
List<String> instanceIdList = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
// 发起流程
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
List<ActWorkflowStartDTO> list = new ArrayList<>();
for (int i = 0; i<deviceList.size() ; i++
) {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(equipTransferProcessKey);
dto.setBusinessKey(String.valueOf(i));
list.add(dto);
}
actWorkflowBatchDTO.setProcess(list);
try {
FeignClientResult result = Workflow.taskV2Client.startByVariableBatch(actWorkflowBatchDTO);
List<Object> returnList = (List<Object>) result.getResult();
for (Object obj :returnList
) {
JSONObject jsonObject = JSON.parseObject(JSONObject.toJSONString(obj));
String instanceId = jsonObject.getString("id");
instanceIdList.add(instanceId);
// 查询下节点任务
if(returnList.get(0).equals(obj)) {
getNext(roleListFirst, instanceId,taskName);
}
// 推动下一个节点
AjaxResult ajaxResult = Workflow.taskClient.getTask(instanceId);
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setComment("提交流程");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", "0");
dto.setVariable(map);
//执行流程
AjaxResult ajaxResult1;
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
if (ajaxResult1.get("code").equals(200)) {
getNext(roleListSecond, instanceId,taskName);
} else {
log.error("提交失败");
}
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
}
}
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
}
}
List<JgEquipTransfer> list = new ArrayList<>();
List<JgEquipTransferEq> equipTransferEqList = new ArrayList<>();
deviceList.forEach(obj -> {
JgEquipTransferEq jgEquipTransferEq = new JgEquipTransferEq();
JgEquipTransfer dto = new JgEquipTransfer();
BeanUtils.copyProperties(model, dto);
int i = deviceList.indexOf(obj);
String applyNo = applyNoList.get(i);
dto.setApplyNo(applyNo);
dto.setApplyDate(new Date());
dto.setNextExecuteIds(String.join(",", roleListSecond));
dto.setInstanceStatus(String.join(",", roleListFirst));
dto.setPromoter(reginParams.getUserModel().getUserId());
dto.setApplyStatus(taskName[0]);
dto.setInstallUnitName(reginParams.getCompany().getCompanyName());
dto.setInstallUnitCreditCode(reginParams.getCompany().getCompanyCode());
jgEquipTransferEq.setEquId(String.valueOf(obj.get("SEQUENCE_NBR")));
jgEquipTransferEq.setEquipTransferId(applyNo);
if (!CollectionUtils.isEmpty(instanceIdList)) {
dto.setInstanceId(instanceIdList.get(i));
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
} else {
dto.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
}
list.add(dto);
equipTransferEqList.add(jgEquipTransferEq);
});
this.baseMapper.insertBatchSomeColumn(list);
List<JgEquipTransferEq> jgEquipTransferEqList = equipTransferEqList.stream().map(transferEq -> {
List<JgEquipTransfer> collect = list.stream().filter(transfer -> transferEq.getEquipTransferId().equals(transfer.getApplyNo())).collect(Collectors.toList());
Long sequenceNbr = collect.get(0).getSequenceNbr();
return transferEq.setEquipTransferId(String.valueOf(sequenceNbr));
}).collect(Collectors.toList());
jgEquipTransferEqMapper.insertBatchSomeColumn(jgEquipTransferEqList);
}
private void convertField(JgEquipTransferDto model) {
if (null == model)
return;
// 分割单位
String useUnitId = model.getUseUnitCreditCode();
if (!ObjectUtils.isEmpty(useUnitId)) {
String[] useUnitList = useUnitId.split("_");
if (useUnitList.length > 1) {
model.setUseUnitCreditCode(useUnitList[0]);
model.setUseUnitName(useUnitList[1]);
}
}
// 分割接收机构
String installUnitId = model.getInstallUnitCreditCode();
if (!ObjectUtils.isEmpty(installUnitId)) {
String[] installUnitIdList = installUnitId.split("_");
if (installUnitIdList.length > 1) {
model.setInstallUnitCreditCode(installUnitIdList[0]);
model.setInstallUnitName(installUnitIdList[1]);
}
}
}
public Map<String, Object> getNextWorkflowNode(String instanceId) {
String role = "";
String taskName = "流程结束";
ArrayList<String> roleList = new ArrayList<>();
AjaxResult taskNoAuth = Workflow.taskClient.getTaskNoAuth(instanceId);
if (!org.springframework.util.ObjectUtils.isEmpty(taskNoAuth.get("data"))) {
JSONObject nextTask = JSON.parseObject(JSON.toJSONString(taskNoAuth.get("data")));
String nextTaskId = nextTask.getString("id");
taskName = nextTask.getString("name");
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map) datum).containsKey("groupId")) {
roleList.add(((Map) datum).get("groupId").toString());
}
}
}
role = String.join(",", roleList);
return MapBuilder.<String, Object>create().put("taskName", taskName).put("role", role).build();
}
return null; void getNext(ArrayList<String> roleListFirst, String instanceId, String[] taskName) {
AjaxResult aj = Workflow.taskClient.getTaskNoAuth(instanceId);
JSONObject taskNoAuth = JSON.parseObject(JSON.toJSONString(aj.get("data")));
if (!org.springframework.util.ObjectUtils.isEmpty(taskNoAuth)) {
String nextTaskId = taskNoAuth.getString("id");
AjaxResult taskGroupName = Workflow.taskClient.getTaskGroupName(nextTaskId);
taskName[0] = taskNoAuth.getString("name");
JSONArray data = JSON.parseArray(JSON.toJSONString(taskGroupName.get("data")));
for (Object datum : data) {
if (((Map) datum).containsKey("groupId")) {
roleListFirst.add(((Map) datum).get("groupId").toString());
}
}
}
} }
/**
* 启动工作流
* @param businessKey businessKey
* @return s
* @throws Exception e
*/
public String startFlow(String businessKey) throws Exception {
// 重新开启工作流
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(equipTransferProcessKey);
dto.setBusinessKey(StringUtils.defaultString(businessKey, "1"));
AjaxResult ajaxResult = Workflow.taskClient.startByVariable(dto);
if (log.isDebugEnabled()) {
log.debug("开启工作流结果:{}", ajaxResult);
}
if (ajaxResult == null || (ajaxResult.get(AjaxResult.CODE_TAG) != null && !"200".equals(ajaxResult.get(AjaxResult.CODE_TAG).toString()))) {
throw new BaseException("开启工作流错误");
}
return ((Map<?, ?>) ajaxResult.get("data")).get("id").toString();
}
@Override @Override
public Page<JgEquipTransferDto> queryForJgEquipTransferPage(Page<JgEquipTransfer> page, JgEquipTransferDto dto, String type, ReginParams reginParams) { public Page<JgEquipTransferDto> queryForJgEquipTransferPage(Page<JgEquipTransfer> page, JgEquipTransferDto dto, String type, ReginParams reginParams) {
...@@ -103,4 +330,136 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,J ...@@ -103,4 +330,136 @@ public class JgEquipTransferServiceImpl extends BaseService<JgEquipTransferDto,J
map.computeIfPresent(field, (key, value) -> JSON.parseArray(value.toString())); map.computeIfPresent(field, (key, value) -> JSON.parseArray(value.toString()));
} }
} }
public void accept(JgEquipTransferDto jgEquipTransferDto, String op) {
String[] taskName = new String[]{"流程结束"};
String userId = RequestContext.getExeUserId();
JgEquipTransfer jgEquipTransfer = this.baseMapper.selectById(jgEquipTransferDto.getSequenceNbr());
// 组装设备注册代码
StringBuffer stringBuffer = new StringBuffer();
String ym = null;
try {
ym = DateUtils.dateFormat(new Date(), DateUtils.DATE_PATTERN_MM);
} catch (ParseException e) {
log.error("日期转换失败:{}", e.getMessage());
}
ArrayList<String> roleList = new ArrayList<>();
boolean submit = submit(jgEquipTransfer, op);
if(submit) {
getNext(roleList, jgEquipTransferDto.getInstanceId(),taskName);
jgEquipTransfer.setApplyStatus(taskName[0]);
if("0".equals(op)) {
if(roleList.isEmpty()) {
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
jgEquipTransfer.setPromoter("");
//TODO
} else {
jgEquipTransfer.setNextExecuteIds(String.join(",", roleList));
if (!ObjectUtils.isEmpty(jgEquipTransfer.getInstanceStatus())) {
jgEquipTransfer.setInstanceStatus(jgEquipTransfer.getInstanceStatus() + "," + String.join(",", roleList));
} else {
jgEquipTransfer.setInstanceStatus(String.join(",", roleList));
}
jgEquipTransfer.setPromoter(userId);
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
}
} else {
//驳回
jgEquipTransfer.setPromoter("");
jgEquipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
jgEquipTransfer.setInstanceStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
}
updateById(jgEquipTransfer);
}
}
public boolean submit(JgEquipTransfer transfer,String op) {
AjaxResult ajaxResult = Workflow.taskClient.getTask(transfer.getInstanceId());
JSONObject dataObject = JSON.parseObject(JSON.toJSONString(ajaxResult.get("data")));
String taskId = dataObject.getString("id");
//组装信息
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(taskId);
dto.setComment("提交流程");
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
dto.setVariable(map);
//执行流程
AjaxResult ajaxResult1 = null;
try {
ajaxResult1 = Workflow.taskClient.completeByTask(taskId, dto);
return ajaxResult1.get("code").equals(200);
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
return false;
}
}
public void cancel(JgEquipTransferDto equipTransferInfo) {
FeignClientResult ajaxResult = Workflow.taskV2Client.rollBack(equipTransferInfo.getInstanceId());
JgEquipTransfer equipTransfer = this.baseMapper.selectById(equipTransferInfo.getSequenceNbr());
if (ajaxResult.getStatus() == 200) {
equipTransfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_SUBMITTED.getCode()));
this.baseMapper.updateById(equipTransfer);
}
}
public JgEquipTransferDto updateEquipTransfer(String submitType, JgEquipTransferDto equipTransferDto, String op) {
if (Objects.isNull(equipTransferDto) || StringUtils.isEmpty(submitType))
throw new IllegalArgumentException("参数不能为空");
String[] taskName = new String[]{"流程结束"};
ReginParams reginParams = JSONObject.parseObject(redisUtils.get(RedisKey.buildReginKey(
RequestContext.getExeUserId(), RequestContext.getToken())).toString(), ReginParams.class);
// 字段转换
this.convertField(equipTransferDto);
ArrayList<String> roleListFirst = new ArrayList<>();
ArrayList<String> roleListSecond = new ArrayList<>();
if (SUBMIT_TYPE_FLOW.equals(submitType)) {
AjaxResult ajaxResult;
// 发起流程
if (!org.springframework.util.StringUtils.hasText(equipTransferDto.getInstanceId())) {
ActWorkflowStartDTO dto = new ActWorkflowStartDTO();
dto.setProcessDefinitionKey(equipTransferProcessKey);
dto.setBusinessKey("1");
try {
ajaxResult = Workflow.taskClient.startByVariable(dto);
String instanceId = ((Map) ajaxResult.get("data")).get("id").toString();
equipTransferDto.setInstanceId(instanceId);
// 查询下节点任务
getNext(roleListFirst, instanceId,taskName);
equipTransferDto.setInstanceStatus(String.join(",", roleListFirst));
} catch (Exception e) {
log.error("提交失败:{}", e.getMessage());
throw new RuntimeException(e);
}
}
JgEquipTransfer transfer = new JgEquipTransfer();
BeanUtils.copyProperties(equipTransferDto,transfer);
boolean submit = submit(transfer, op);
if(submit) {
// 查询下节点任务
getNext(roleListSecond, transfer.getInstanceId(),taskName);
transfer.setApplyStatus(taskName[0]);
if (!org.springframework.util.ObjectUtils.isEmpty(transfer.getInstanceStatus())) {
transfer.setInstanceStatus(transfer.getInstanceStatus() + "," + roleListSecond);
} else {
transfer.setInstanceStatus(String.join(",", roleListSecond));
}
transfer.setPromoter(RequestContext.getExeUserId());
transfer.setNextExecuteIds(String.join(",", roleListSecond));
transfer.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
updateById(transfer);
}
} else {
JgEquipTransfer bean = new JgEquipTransfer();
BeanUtils.copyProperties(equipTransferDto, bean);
updateById(bean);
}
return equipTransferDto;
}
} }
\ No newline at end of file
...@@ -74,7 +74,7 @@ public class CreateCodeServiceImpl implements ICreateCodeService { ...@@ -74,7 +74,7 @@ public class CreateCodeServiceImpl implements ICreateCodeService {
@Override @Override
public String createUseRegistrationCode(String key) { public String createUseRegistrationCode(String key) {
rulePrefix = "(" + LocalDate.now().format(DateTimeFormatter.ofPattern("yy")) + ")"; rulePrefix = "(" + LocalDate.now().format(DateTimeFormatter.ofPattern("yy")) + ")";
return generateSequence(key, SEQUENCE_TYPE_UR, LOCK_KEY_UR); return (key.length() == 5) ?generateSequence(key, SEQUENCE_TYPE_UR, LOCK_KEY_UR): "生成码规则不对!";
} }
@Override @Override
......
...@@ -75,7 +75,7 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService { ...@@ -75,7 +75,7 @@ public class GenerateCodeServiceImpl implements IGenerateCodeService {
@Override @Override
public String createUseRegistrationCode(String key) { public String createUseRegistrationCode(String key) {
rulePrefix = "(" + LocalDate.now().format(DateTimeFormatter.ofPattern("yy")) + ")"; rulePrefix = "(" + LocalDate.now().format(DateTimeFormatter.ofPattern("yy")) + ")";
return generateSequence(key, SEQUENCE_TYPE_UR, LOCK_KEY_UR); return (key.length() == 5) ? generateSequence(key, SEQUENCE_TYPE_UR, LOCK_KEY_UR) : "生成码规则不对!";
} }
@Override @Override
......
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