Commit ee153f51 authored by 麻笑宇's avatar 麻笑宇

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into…

Merge remote-tracking branch 'origin/develop_tzs_register_to_0715' into develop_tzs_register_to_0715
parents 71c9c051 1457e7cc
......@@ -62,4 +62,7 @@ public class JgCertificateChangeRecordDto extends BaseModel {
@ApiModelProperty(value = "设备类别")
private String equCategory;
@ApiModelProperty(value = "跳转路径")
private String routePath;
}
package com.yeejoin.amos.boot.module.jg.api.dto;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.yeejoin.amos.boot.biz.common.dto.BaseDto;
......@@ -27,4 +29,10 @@ public class JgScrapCancelEqDto extends BaseDto {
@ApiModelProperty(value = "设备id")
private String equId;
@ApiModelProperty(value = "使用登记id")
private String certificateSeq;
@ApiModelProperty(value = "设备信息")
private JSONArray equipInfo;
}
......@@ -107,4 +107,10 @@ public class JgCertificateChangeRecord extends BaseEntity {
@TableField("EQU_CATEGORY")
private String equCategory;
/**
* 跳转路径
*/
@TableField("route_path")
private String routePath;
}
package com.yeejoin.amos.boot.module.jg.api.entity;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
......@@ -34,4 +36,17 @@ public class JgScrapCancelEq extends BaseEntity {
@TableField("equ_id")
private String equId;
/**
* 使用登记id
*/
@TableField("certificate_seq")
private String certificateSeq;
/**
* 设备信息
*/
@TableField("equip_info")
private String equipInfo;
}
......@@ -8,11 +8,11 @@ public enum CancelTypeEnum {
/**
* 报废注销
*/
SCRAPPED("1", "报废注销"),
SCRAPPED("1", "报废"),
/**
* 移装注销
*/
TRANSFER("2", "移装注销");
TRANSFER("2", "注销");
private final String code;
......
package com.yeejoin.amos.boot.module.jg.api.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.util.HashMap;
import java.util.Map;
@AllArgsConstructor
@Getter
public enum CertificateStatusEnum {
/**
* 设备状态枚举
*
*/
YIDENGJI("已登记",0),
YIZHUXIAO("已注销",1);
String name;
Integer code;
public static Map<Integer,String> getName=new HashMap<>();
public static Map<String,Integer> getCode=new HashMap<>();
static {
for (CertificateStatusEnum e : CertificateStatusEnum.values()){
getName.put(e.code, e.name);
getCode.put(e.name, e.code);
}
}
}
......@@ -33,7 +33,7 @@ import java.util.*;
* @date 2023-12-12
*/
@RestController
@Api(tags = "Api")
@Api(tags = "使用登记Api")
@RequestMapping(value = "/jg-use-registration")
public class JgUseRegistrationController extends BaseController {
......@@ -250,17 +250,14 @@ public class JgUseRegistrationController extends BaseController {
/**
* 使用登记流程错误数据处理
* @param sequenceNbr sequenceNbr
* @param applyNo applyNo
* @return s
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/yunWei/handleErrorForm")
@ApiOperation(httpMethod = "POST", value = "使用登记流程错误数据处理", notes = "使用登记流程错误数据处理")
public ResponseModel<Object> handleErrorForm(@RequestParam("sequenceNbr") Long sequenceNbr,
@RequestParam("nextTaskId") String nextTaskId,
@RequestParam("instanceId") String instanceId
) {
jgUseRegistrationServiceImpl.handleErrorForm(sequenceNbr, instanceId, nextTaskId);
return ResponseHelper.buildResponse("ok");
public ResponseModel<Object> handleErrorForm(@RequestParam("applyNo") String applyNo) {
jgUseRegistrationServiceImpl.handleErrorForm(applyNo);
return ResponseHelper.buildResponse("申请单【"+applyNo+"】处理成功");
}
}
......@@ -206,4 +206,17 @@ public class JgVehicleInformationController extends BaseController {
JgVehicleInformation result = jgVehicleInformationServiceImpl.cancelApplication(vehicleInformationDto.getSequenceNbr(), vehicleInformationDto.getCancelReason());
return ResponseHelper.buildResponse(result);
}
/**
* 车用气瓶流程错误数据处理
* @param applyNo applyNo
* @return s
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/yunWei/handleErrorVehicleForm")
@ApiOperation(httpMethod = "POST", value = "车用气瓶流程错误数据处理", notes = "车用气瓶流程错误数据处理")
public ResponseModel<Object> handleErrorVehicleForm(@RequestParam("applyNo") String applyNo) {
jgVehicleInformationServiceImpl.handleErrorVehicleForm(applyNo);
return ResponseHelper.buildResponse("申请单【"+applyNo+"】处理成功");
}
}
......@@ -33,6 +33,7 @@ import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.service.ICmWorkflowService;
import com.yeejoin.amos.boot.module.jg.biz.utils.FileExporter;
import com.yeejoin.amos.boot.module.jg.biz.utils.ImageUtils;
import com.yeejoin.amos.boot.module.jg.flc.api.fegin.WorkFlowFeignService;
import com.yeejoin.amos.boot.module.ymt.api.dto.ESEquipmentCategoryDto;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
......@@ -149,6 +150,8 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
private JgCertificateChangeRecordEqServiceImpl certificateChangeRecordEqService;
@Autowired
private JgUseRegistrationManageServiceImpl jgUseRegistrationManageService;
@Autowired
private WorkFlowFeignService workFlowFeignService;
private Map<String, Object> fillingMediumMap;
......@@ -1470,4 +1473,78 @@ public class JgVehicleInformationServiceImpl extends BaseService<JgVehicleInform
"单号【" + obj.getApplyNo() + "】,申请日期" + simpleDateFormat.format(obj.getRecDate());
}
public void handleErrorVehicleForm(String applyNo) {
LambdaQueryWrapper<JgVehicleInformation> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(JgVehicleInformation::getApplyNo, applyNo);
JgVehicleInformation jgVehicleInformation = this.baseMapper.selectOne(queryWrapper);
if (jgVehicleInformation != null) {
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(jgVehicleInformation.getInstanceId());
RLock lock = redissonClient.getLock(lockKey);
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
// 解决并发问题:多个人同时操作一个流程(并发执行通过、驳回、撤回)
if (!isLocked) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
// 流程执行时,状态及权限校验
ProcessTaskDTO complete = workFlowFeignService.handleErrorForm(jgVehicleInformation.getInstanceId(), jgVehicleInformation.getReceiveCompanyCode()).getResult();
ArrayList<ProcessTaskDTO> processTaskDTOS = new ArrayList<>();
processTaskDTOS.add(complete);
List<WorkflowResultDto> resultDto = commonService.buildWorkFlowInfo(processTaskDTOS);
if (!ObjectUtils.isEmpty(resultDto) && !ObjectUtils.isEmpty(resultDto.get(0))) {
WorkflowResultDto workflowResultDto = resultDto.get(0);
String role = workflowResultDto.getNextExecutorRoleIds();
String taskCode = FlowStatusEnum.TO_BE_FINISHED.getName();
if (!ObjectUtils.isEmpty(workflowResultDto.getNextTaskCode())) {
taskCode = workflowResultDto.getNextTaskCode();
}
jgVehicleInformation.setNextTaskId(workflowResultDto.getNextTaskId());
jgVehicleInformation.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
jgVehicleInformation.setNextExecuteIds(role);
jgVehicleInformation.setInstanceStatus(
Optional.ofNullable(jgVehicleInformation.getInstanceStatus())
.map(status -> String.join(",", status, role))
.orElse(role)
);
jgVehicleInformation.setStatus(Objects.requireNonNull(WorkFlowStatusEnum.getMessage(taskCode)).getPass());
jgVehicleInformation.setPromoter(workflowResultDto.getStartUserId());
// 更新代办状态
HashMap<String, Object> params = new HashMap<>();
params.put("relationId", jgVehicleInformation.getInstanceId());
params.put("flowStatus", commonService.getDictionaryCodeByName(jgVehicleInformation.getStatus()));
params.put("flowStatusLabel", jgVehicleInformation.getStatus());
params.put("taskStatus", commonService.getDictionaryCodeByName(jgVehicleInformation.getStatus()));
params.put("taskStatusLabel", jgVehicleInformation.getStatus());
TaskV2Model taskV2Model = commonService.updateTaskModel(params);
// 创建新的代办
if (!ObjectUtils.isEmpty(taskV2Model)) {
TaskModelDto taskModelDto = new TaskModelDto();
BeanUtils.copyProperties(taskV2Model, taskModelDto);
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(jgVehicleInformation, taskMessageDto);
taskModelDto.setModel(taskMessageDto);
taskModelDto.setTaskName(workflowResultDto.getNextTaskName());
taskModelDto.setStartUserId(workflowResultDto.getExecutorId());
taskModelDto.setExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
taskModelDto.setTaskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setNextExecuteUser(workflowResultDto.getNextExecutorRoleIds());
taskModelDto.setFlowCode(workflowResultDto.getNextTaskId());
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
} else {
workflowResultDto.setInstanceId(jgVehicleInformation.getInstanceId());
buildTask(jgVehicleInformation, workflowResultDto);
}
}
this.getBaseMapper().updateById(jgVehicleInformation);
commonService.saveExecuteFlowData2Redis(jgVehicleInformation.getInstanceId(), this.buildInstanceRuntimeData(jgVehicleInformation));
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
}
}
}
\ No newline at end of file
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