Commit 9c4edd9e authored by 韩桐桐's avatar 韩桐桐

补证登记相关

parent e68e7c6f
......@@ -91,9 +91,6 @@ public class JgCertificateReplenishDto extends BaseDto {
@ApiModelProperty(value = "当前流程节点名称")
private String taskName;
@ApiModelProperty(value = "流程状态")
private String instanceStatus;
@ApiModelProperty(value = "下步执行角色/人id")
private String nextExecuteIds;
......@@ -129,4 +126,7 @@ public class JgCertificateReplenishDto extends BaseDto {
private String dataType;
private List<Map<String, Object>> equLists;
@ApiModelProperty("设备使用地址")
private String equUseAddress;
}
......@@ -2,11 +2,9 @@ package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.*;
import lombok.experimental.Accessors;
import java.util.Date;
......@@ -21,6 +19,7 @@ import java.util.Date;
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName("tzs_jg_certificate_replenish")
public class JgCertificateReplenish extends BaseEntity {
......@@ -70,6 +69,18 @@ public class JgCertificateReplenish extends BaseEntity {
private String applyStatus;
/**
* 申请状态
*/
@TableField(exist = false)
private String applyStatusDes;
/**
* 是否企业
*/
@TableField(exist = false)
private Boolean isCompany;
/**
* 使用单位统一信用代码
*/
@TableField("use_unit_code")
......@@ -121,6 +132,7 @@ public class JgCertificateReplenish extends BaseEntity {
* 遗失或者损毁时间
*/
@TableField("loss_damage_time")
@JsonFormat(pattern = "yyyy-MM-dd")
private Date lossDamageTime;
/**
......@@ -154,12 +166,6 @@ public class JgCertificateReplenish extends BaseEntity {
private String taskName;
/**
* 流程状态
*/
@TableField("instance_status")
private String instanceStatus;
/**
* 下步执行角色/人id
*/
@TableField("next_execute_ids")
......@@ -225,4 +231,12 @@ public class JgCertificateReplenish extends BaseEntity {
@TableField("whether_vehicle_cylinder")
private String whetherVehicleCylinder;
/**
* 设备使用地址
*/
@TableField("equ_use_address")
private String equUseAddress;
@TableField(exist = false)
private String processAdvice;
}
......@@ -2,11 +2,8 @@ package com.yeejoin.amos.boot.module.jg.api.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import org.typroject.tyboot.core.rdbms.orm.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.yeejoin.amos.boot.biz.common.entity.BaseEntity;
import lombok.*;
import lombok.experimental.Accessors;
import java.util.Date;
......@@ -19,6 +16,7 @@ import java.util.Date;
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
......
package com.yeejoin.amos.boot.module.jg.biz.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yeejoin.amos.boot.module.jg.api.dto.JgCertificateReplenishDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgEquipTransferDto;
......@@ -12,10 +13,7 @@ import io.swagger.annotations.Api;
import org.springframework.web.bind.annotation.RestController;
import com.yeejoin.amos.boot.biz.common.controller.BaseController;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.Map;
import java.util.*;
import java.util.stream.Collectors;
import com.yeejoin.amos.boot.module.jg.biz.service.impl.JgCertificateReplenishServiceImpl;
......@@ -30,6 +28,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.typroject.tyboot.core.restful.doc.TycloudOperation;
import org.typroject.tyboot.core.foundation.enumeration.UserType;
import static com.yeejoin.amos.boot.module.jg.biz.service.impl.JgCertificateReplenishServiceImpl.*;
/**
* @author system_generator
* @date 2025-03-19
......@@ -64,11 +64,35 @@ public class JgCertificateReplenishController extends BaseController {
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/save")
@ApiOperation(httpMethod = "POST", value = "新增", notes = "新增")
public ResponseModel<List<Map<String, Object>>> save(@RequestBody JSONObject jsonObject) {
public ResponseModel<List<JgCertificateReplenish>> save(@RequestBody JSONObject jsonObject) {
return ResponseHelper.buildResponse(jgCertificateReplenishServiceImpl.save(jsonObject));
}
/**
* 更新
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/update")
@ApiOperation(httpMethod = "POST", value = "根据sequenceNbr更新补证登记单", notes = "根据sequenceNbr更新补证登记单")
public ResponseModel<Object> updateBySequenceNbr(@RequestParam("submitType") String submitType,
@RequestBody JSONObject jsonObject) {
return ResponseHelper.buildResponse(jgCertificateReplenishServiceImpl.updateCertRep("0".equals(submitType) ? UPDDATE_NOT_SUBMIT : UPDDATE_SUBMIT, jsonObject));
}
/**
* 受理
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@PostMapping(value = "/accept")
@ApiOperation(httpMethod = "POST", value = "补证登记受理", notes = "补证登记受理")
public ResponseModel<JgEquipTransferDto> accept(@RequestParam(value = "operate") String operate, @RequestBody Map<String, Object> map) {
JSONObject model = JSON.parseObject(JSON.toJSONString(map.get(MODEL)));
model.put(PROCESS_ADVICE, map.get(PROCESS_ADVICE));
jgCertificateReplenishServiceImpl.accept("0".equals(operate) ? APPROVED : REJECTED, model);
return ResponseHelper.buildResponse(null);
}
/**
* 列表分页查询
*
* @param current 当前页
......@@ -99,33 +123,32 @@ public class JgCertificateReplenishController extends BaseController {
jgCertificateReplenishServiceImpl.cancel(dto);
return ResponseHelper.buildResponse(null);
}
//
// /**
// * 根据sequenceNbr更新
// *
// * @param sequenceNbr 主键
// * @return
// */
// @TycloudOperation(ApiLevel = UserType.AGENCY)
// @PutMapping(value = "/{sequenceNbr}")
// @ApiOperation(httpMethod = "PUT", value = "根据sequenceNbr更新", notes = "根据sequenceNbr更新")
// public ResponseModel<JgCertificateReplenish> updateBySequenceNbrJgCertificateReplenish(@RequestBody JgCertificateReplenish entity, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
// entity.setSequenceNbr(sequenceNbr);
// return ResponseHelper.buildResponse(jgCertificateReplenishServiceImpl.updateWithModel(entity));
// }
//
// /**
// * 根据sequenceNbr删除
// *
// * @param sequenceNbr 主键
// * @return
// */
// @TycloudOperation(ApiLevel = UserType.AGENCY)
// @DeleteMapping(value = "/{sequenceNbr}")
// @ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
// public ResponseModel<Boolean> deleteBySequenceNbr(HttpServletRequest request, @PathVariable(value = "sequenceNbr") Long sequenceNbr) {
// return ResponseHelper.buildResponse(jgCertificateReplenishServiceImpl.removeById(sequenceNbr));
// }
/**
* 根据sequenceNbr查询
*
* @param sequenceNbr 主键
* @return Map
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@GetMapping(value = "/details")
@ApiOperation(httpMethod = "GET", value = "根据sequenceNbr查询单据", notes = "根据sequenceNbr查询单据")
public ResponseModel<Map<String, Object>> selectOne(@RequestParam("sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(jgCertificateReplenishServiceImpl.queryBySequenceNbr(sequenceNbr));
}
/**
* 根据sequenceNbr删除
*
* @param sequenceNbr 主键
* @return
*/
@TycloudOperation(ApiLevel = UserType.AGENCY)
@DeleteMapping(value = "/{sequenceNbr}")
@ApiOperation(httpMethod = "DELETE", value = "根据sequenceNbr删除", notes = "根据sequenceNbr删除")
public ResponseModel<Boolean> deleteBySequenceNbr(@PathVariable(value = "sequenceNbr") Long sequenceNbr) {
return ResponseHelper.buildResponse(jgCertificateReplenishServiceImpl.removeCertRepBySequenceNbr(sequenceNbr));
}
//
// /**
// * 根据sequenceNbr查询
......
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import com.yeejoin.amos.boot.module.jg.api.dto.CompanyEquipCountDto;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgCertificateReplenishMapper;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgScrapCancelMapper;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Component;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
* @author Administrator
*/
@Component
@Slf4j
public class JgCertificateReplenishEquipUsedCheckImpl extends BaseEquipUsedCheckService {
private RedissonClient redissonClient;
private String bizType = "certReplenish";
private JgCertificateReplenishMapper mapper;
public JgCertificateReplenishEquipUsedCheckImpl(RedissonClient redissonClient, JgCertificateReplenishMapper mapper) {
this.redissonClient = redissonClient;
this.mapper = mapper;
}
@Override
public RedissonClient getRedisClient() {
return redissonClient;
}
@Override
public String getApplyBizType() {
return bizType;
}
@Override
public void init() {
// List<CompanyEquipCountDto> companyEquipCountDtos = mapper.queryForFlowingEquipList();
// companyEquipCountDtos.remove(null);
// companyEquipCountDtos.forEach(c -> {
// RBucket<Set<String>> rBucket = redissonClient.getBucket(getFlowingEquipRedisKey(c.getCompanyCode(), bizType));
// rBucket.set(Arrays.stream(c.getRecords().split(",")).collect(Collectors.toSet()));
// });
}
}
package com.yeejoin.amos.boot.module.jg.biz.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.map.MapBuilder;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yeejoin.amos.boot.biz.common.bo.CompanyBo;
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.utils.RedisKey;
import com.yeejoin.amos.boot.biz.common.utils.RedisUtils;
import com.yeejoin.amos.boot.module.jg.api.dto.InstanceRuntimeData;
import com.yeejoin.amos.boot.biz.common.utils.SnowflakeIdUtil;
import com.yeejoin.amos.boot.module.jg.api.dto.*;
import com.yeejoin.amos.boot.module.jg.api.dto.JgCertificateReplenishDto;
import com.yeejoin.amos.boot.module.jg.api.dto.JgCertificateReplenishDto;
import com.yeejoin.amos.boot.module.jg.api.dto.WorkflowResultDto;
import com.yeejoin.amos.boot.module.jg.api.entity.*;
import com.yeejoin.amos.boot.module.jg.api.enums.BusinessTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.CompanyTypeEnum;
import com.yeejoin.amos.boot.module.jg.api.enums.WorkFlowStatusEnum;
import com.yeejoin.amos.boot.module.jg.api.mapper.JgCertificateReplenishMapper;
import com.yeejoin.amos.boot.module.jg.api.service.IJgCertificateReplenishService;
import com.yeejoin.amos.boot.module.jg.biz.config.LocalBadRequest;
import com.yeejoin.amos.boot.module.jg.biz.context.EquipUsedCheckStrategyContext;
import com.yeejoin.amos.boot.module.jg.biz.context.FlowingEquipRedisContext;
import com.yeejoin.amos.boot.module.jg.biz.feign.TzsServiceFeignClient;
import com.yeejoin.amos.boot.module.jg.biz.utils.FileExporter;
import com.yeejoin.amos.boot.module.ymt.api.entity.*;
import com.yeejoin.amos.boot.module.ymt.api.enums.ApplicationFormTypeEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.EquipmentClassifityEnum;
import com.yeejoin.amos.boot.module.ymt.api.enums.FlowStatusEnum;
import com.yeejoin.amos.boot.module.ymt.api.mapper.EquipmentCategoryMapper;
import com.yeejoin.amos.feign.systemctl.model.TaskV2Model;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowBatchDTO;
import com.yeejoin.amos.feign.workflow.model.ActWorkflowStartDTO;
import com.yeejoin.amos.feign.workflow.model.ProcessTaskDTO;
import com.yeejoin.amos.feign.workflow.model.TaskResultDTO;
import io.seata.spring.annotation.GlobalTransactional;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.elasticsearch.index.query.BoolQueryBuilder;
import org.elasticsearch.index.query.QueryBuilders;
import org.elasticsearch.index.query.TermQueryBuilder;
import org.elasticsearch.index.query.TermsQueryBuilder;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ObjectUtils;
import org.springframework.util.StringUtils;
import org.typroject.tyboot.core.foundation.context.RequestContext;
import org.typroject.tyboot.core.foundation.utils.ValidationUtil;
import org.typroject.tyboot.core.rdbms.service.BaseService;
......@@ -53,13 +66,9 @@ import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.nio.file.Files;
import java.util.*;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.function.Supplier;
import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* 使用登记表补证服务实现类
......@@ -80,9 +89,21 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
public static final String SEQUENCE_NBR = "SEQUENCE_NBR";
public static final String FORM_DATA = "formData";
public static final String EQU_LISTS = "equLists";
public static final String EQU_LIST_CODE = "equListCode";
public static final String RECEIVE_ORG_CODE = "receiveOrgCode";
public static final String APPLICATION_FORM_FILE = "applicationFormFile";
public static final String OTHER_ACCESSORIES = "otherAccessories";
public static final String SAFETY_MANAGER_ID = "safetyManagerId";
public static final String APPROVAL_STATUS = "approvalStatus";
public static final String SAFETY_MANAGER_NAME = "safetyManagerName";
public static final String LOSS_DAMAGE_TIME = "lossDamageTime";
public static final String MODEL = "model";
public static final String PROCESS_ADVICE = "processAdvice";
public static final String IS_COMPANY = "isCompany";
public static final String APPLY_STATUS = "applyStatus";
private final List<String> NOT_FLOWING_STATE = Arrays.asList("6610", "6614", "6615", "6617", "6616");
private static final String EQUIP_TRANSFER_PROCESS_KEY = "certificateReplenish";
private final Map<String, Supplier> actionMap = new HashMap<>();
private static final String EQUIP_TRANSFER_PROCESS_KEY = "certReplenish";
private final Map<String, Function<JSONObject, Object>> actionMap = new HashMap<>();
/**
* 通过
*/
......@@ -99,7 +120,14 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
* 暂存
*/
public static final String DRAFT = "DRAFT";
;
/**
* 保存
*/
public static final String UPDDATE_NOT_SUBMIT = "SAVE_NOT_SUBMIT";
/**
* 保存提交
*/
public static final String UPDDATE_SUBMIT = "SAVE_SUBMIT";
/**
* 是否要提交 true :提交进入审批 false:暂存单据
*/
......@@ -108,9 +136,12 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
private final JgUseRegistrationManageServiceImpl registrationManageService;
private final TzsServiceFeignClient tzsServiceFeignClient;
private final RedisUtils redisUtils;
private final SnowflakeIdUtil sequence;
private final RedissonClient redissonClient;
private final CmWorkflowServiceImpl cmWorkflowService;
private final EquipmentCategoryMapper equipmentCategoryMapper;
private final JgCertificateReplenishEqServiceImpl certificateReplenishEqService;
private final JgRegistrationHistoryServiceImpl jgRegistrationHistoryService;
/**
* 用户信息
......@@ -121,48 +152,433 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
@PostConstruct
public void init() {
actionMap.put(APPROVED, () -> this.approved());
actionMap.put(REJECTED, () -> this.rejected());
actionMap.put(SUBMITTED, () -> this.submitted());
actionMap.put(DRAFT, () -> this.draft());
actionMap.put(APPROVED, this::approved);
actionMap.put(REJECTED, this::rejected);
actionMap.put(SUBMITTED, this::submitted);
actionMap.put(DRAFT, this::draft);
actionMap.put(UPDDATE_NOT_SUBMIT, this::updateNotsubmit);
actionMap.put(UPDDATE_SUBMIT, this::updateSubmit);
}
@GlobalTransactional(rollbackFor = Exception.class)
public Object updateSubmit(JSONObject jsonObject) {
JgCertificateReplenish certRep = this.buildUpdateCertRep(jsonObject, FlowStatusEnum.TO_BE_PROCESSED);
if (!StringUtils.hasText(certRep.getInstanceId())) {
// 未进流程直接发起并执行
List<WorkflowResultDto> workflowResultDtos = this.startWorkFlow(certRep.getReceiveOrgCode(), certRep.getApplyNo());
WorkflowResultDto workflowResultDto = workflowResultDtos.get(0);
certRep.setInstanceId(workflowResultDto.getInstanceId());
certRep.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorUserIds()));
certRep.setNextTaskId(workflowResultDto.getNextTaskId());
certRep.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
// 创建待办
this.buildTask(certRep, workflowResultDtos);
commonService.deleteTasksByRelationId(String.valueOf(certRep.getSequenceNbr()));
} else {
// 已经在流程中,执行一步
ProcessTaskDTO processTaskDTO = this.submit(certRep);
List<WorkflowResultDto> workflowResultDtos = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO));
String nextUserIds = workflowResultDtos.get(0).getNextExecutorUserIds();
certRep.setPromoter(RequestContext.getExeUserId());
certRep.setNextTaskId(processTaskDTO.getNextTask().get(0).getId());
// 更新下一步可执行人
certRep.setNextExecuteUserIds(nextUserIds);
commonService.saveExecuteFlowData2Redis(certRep.getInstanceId(), buildInstanceRuntimeData(certRep));
updateTaskModel(certRep);
createTaskModel(certRep, processTaskDTO, nextUserIds);
}
this.updateById(certRep);
this.updateCertRepEqs(jsonObject);
return certRep;
}
private void createTaskModel(JgCertificateReplenish certRep, ProcessTaskDTO processTaskDTO, String nextUserIds) {
TaskModelDto taskModelDto = new TaskModelDto();
taskModelDto.setFlowCreateDate(certRep.getCreateDate());
taskModelDto.setTaskCode(certRep.getApplyNo());
taskModelDto.setTaskName(processTaskDTO.getNextTask().get(0).getName());
taskModelDto.setRelationId(certRep.getInstanceId());
taskModelDto.setExecuteUserIds(nextUserIds);
taskModelDto.setTaskContent(String.format("来自%s的业务办理,【申请单号:%s】", certRep.getEquList(), certRep.getApplyNo()));
taskModelDto.setTaskDesc("");
taskModelDto.setTaskStatus(Integer.valueOf(certRep.getApplyStatus()));
taskModelDto.setTaskStatusLabel(FlowStatusEnum.getNameByType(Long.parseLong(certRep.getApplyStatus())));
taskModelDto.setStartUserId(certRep.getCreateUserId());
taskModelDto.setFlowCode(certRep.getNextTaskId());
taskModelDto.setFlowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode());
taskModelDto.setFlowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName());
taskModelDto.setTaskType(BusinessTypeEnum.JG_REPLACEMENT_REGISTRATION.getCode());
taskModelDto.setStartUser(certRep.getRecUserName());
taskModelDto.setStartUserCompanyName(certRep.getUseUnitName());
taskModelDto.setNextExecuteUser(certRep.getNextExecuteIds());
taskModelDto.setStartDate(certRep.getCreateDate() == null ? new Date() : certRep.getCreateDate());
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtils.copyProperties(certRep, taskMessageDto);
taskModelDto.setModel(taskMessageDto);
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
private TaskV2Model updateTaskModel(JgCertificateReplenish certRep) {
Map<String, Object> params = new HashMap<>();
params.put("relationId", certRep.getInstanceId());
params.put("taskStatus", certRep.getApplyStatus());
params.put("taskStatusLabel", FlowStatusEnum.getNameByType(Long.parseLong(certRep.getApplyStatus())));
params.put("flowStatus", certRep.getApplyStatus());
params.put("flowStatusLabel", FlowStatusEnum.getNameByType(Long.parseLong(certRep.getApplyStatus())));
params.put("model", certRep);
return commonService.updateTaskModel(params);
}
public Object rejected() {
return null;
private void buildRoleList(List<ProcessTaskDTO> processTasks, List<String> roleListNext, List<String> roleListAll) {
processTasks.forEach(p -> {
p.getNextCandidateGroups().values().forEach(e -> {
roleListNext.addAll(e);
roleListAll.addAll(e);
});
roleListAll.addAll(p.getCandidateGroups());
});
}
public Object approved() {
return null;
public Object updateNotsubmit(JSONObject jsonObject) {
JgCertificateReplenish certRep = this.buildUpdateCertRep(jsonObject, FlowStatusEnum.TO_BE_SUBMITTED);
this.updateById(certRep);
this.updateCertRepEqs(jsonObject);
return certRep;
}
private void updateCertRepEqs(JSONObject jsonObject) {
Long certRepSeq = Long.parseLong(jsonObject.getString("sequenceNbr"));
certificateReplenishEqService.remove(new LambdaQueryWrapper<JgCertificateReplenishEq>().eq(JgCertificateReplenishEq::getCertificateReplenishId, certRepSeq));
JSONArray equLists = jsonObject.getJSONArray(EQU_LISTS);
this.saveCertRepEqs(certRepSeq, equLists);
}
private JgCertificateReplenish buildUpdateCertRep(JSONObject jsonObject, FlowStatusEnum flowStatusEnum) {
JgCertificateReplenish certRep = JSONObject.parseObject(jsonObject.toJSONString(), JgCertificateReplenish.class);
String[] safetyManager = Objects.toString(jsonObject.get(SAFETY_MANAGER_ID)).split("_");
this.setEquClassification(certRep);
certRep.setApplyStatus(Objects.toString(flowStatusEnum.getCode()));
certRep.setApplicationFormFile(JSONObject.toJSONString(jsonObject.get(APPLICATION_FORM_FILE)));
certRep.setOtherAccessories(!ValidationUtil.isEmpty(jsonObject.get(OTHER_ACCESSORIES)) ? JSONObject.toJSONString(jsonObject.get(OTHER_ACCESSORIES)) : null);
certRep.setSafetyManagerName(safetyManager[1]);
return certRep;
}
/**
* 发起补证申请
*
* @param jsonObject
* @return
*/
@GlobalTransactional(rollbackFor = Exception.class)
public List<Map<String, Object>> save(JSONObject jsonObject) {
JgCertificateReplenishDto model = JSON.parseObject(JSONObject.toJSONString(jsonObject), JgCertificateReplenishDto.class);
List<Map<String, Object>> equLists = model.getEquLists();
public List<JgCertificateReplenish> save(JSONObject jsonObj) {
try {
Function<JSONObject, Object> processor = actionMap.getOrDefault(jsonObj.getString(SHOULD_SUBMIT), this::draft);
JgCertificateReplenish certRep = (JgCertificateReplenish) processor.apply(jsonObj);
// 创建历史数据
this.saveOrUpdateHisDataBatch(jsonObj, certRep.getSequenceNbr().toString());
return Collections.singletonList(certRep);
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw e;
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("保存失败!");
} finally {
FlowingEquipRedisContext.clean();
}
}
@GlobalTransactional(rollbackFor = Exception.class)
public Object updateCertRep(String actionKey, JSONObject jsonObject) {
try {
Function<JSONObject, Object> processor = actionMap.getOrDefault(actionKey, this::updateNotsubmit);
JgCertificateReplenish certRep = (JgCertificateReplenish) processor.apply(jsonObject);
// 更新历史数据
this.saveOrUpdateHisDataBatch(jsonObject, certRep.getSequenceNbr().toString());
return Collections.singletonList(certRep);
} catch (BadRequest | LocalBadRequest e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw e;
} catch (Exception e) {
log.error(e.getMessage(), e);
this.rollBackForDelRedisData();
throw new BadRequest("更新失败!");
} finally {
FlowingEquipRedisContext.clean();
}
}
public void accept(String actionKey, JSONObject model) {
JgCertificateReplenishDto certRepDto = JSONObject.parseObject(model.toJSONString(), JgCertificateReplenishDto.class);
String instanceId = certRepDto.getInstanceId();
String nextTaskId = certRepDto.getNextTaskId();
String lockKey = CommonServiceImpl.buildJgExecuteLockKey(instanceId);
RLock lock = redissonClient.getLock(lockKey);
try {
boolean isLocked = lock.tryLock(0, 180, TimeUnit.SECONDS);
if (!isLocked) {
throw new BadRequest("当前流程已经被执行!请重新打开页面查看并执行!");
}
commonService.checkForExecuteFlow(nextTaskId, instanceId);
Function<JSONObject, Object> processor = actionMap.getOrDefault(actionKey, this::rejected);
JgCertificateReplenish certRep = (JgCertificateReplenish) processor.apply(model);
commonService.saveExecuteFlowData2Redis(instanceId, this.buildInstanceRuntimeData(certRep));
this.saveOrUpdateHisDataBatch(model, certRep.getSequenceNbr().toString());
this.delRepeatUseEquipData(certRep.getSequenceNbr(), certRep.getApplyStatus(), certRep.getUseUnitCode());
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
if (lock.isHeldByCurrentThread()) {
lock.unlock();
}
}
}
public Object draft(JSONObject jsonObj) {
Long sequenceNbr = sequence.nextId();
JSONArray equLists = jsonObj.getJSONArray(EQU_LISTS);
this.saveCertRepEqs(sequenceNbr, equLists);
JgCertificateReplenish certificateReplenish = this.buildCertRep(sequenceNbr, jsonObj, new WorkflowResultDto());
this.save(certificateReplenish);
return certificateReplenish;
}
public void saveOrUpdateHisDataBatch(JSONObject jsonObj, String sequenceNbr) {
jsonObj.put(SAFETY_MANAGER_NAME, jsonObj.getString(SAFETY_MANAGER_ID).split("_")[1]);
commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_REPLACEMENT_REGISTRATION.getName(), jsonObj, null, sequenceNbr);
}
private void rollBackForDelRedisData() {
FlowingEquipRedisContext.getContext().forEach(e -> EquipUsedCheckStrategyContext.getUsedStrategy(EQUIP_TRANSFER_PROCESS_KEY).delDataForCheckWithKey(e.getData(), e.getRedisKey()));
}
public JgCertificateReplenish buildCertRep(Long sequenceNbr, JSONObject jsonObj, WorkflowResultDto workflowResultDto) {
JgCertificateReplenishDto dto = JSON.parseObject(JSONObject.toJSONString(jsonObj), JgCertificateReplenishDto.class);
Date date = new Date();
String[] receiveOrg = Objects.toString(jsonObj.get(RECEIVE_ORG_CODE)).split("_");
String[] safetyManager = Objects.toString(jsonObj.get(SAFETY_MANAGER_ID)).split("_");
JgCertificateReplenish certRep = new JgCertificateReplenish();
BeanUtil.copyProperties(dto, certRep);
certRep.setSequenceNbr(sequenceNbr);
this.setEquClassification(certRep);
certRep.setApplyNo(dto.getApplyNo());
certRep.setApplyDate(date);
certRep.setInstanceId(workflowResultDto.getInstanceId());
certRep.setNextTaskId(workflowResultDto.getNextTaskId());
certRep.setPromoter(RequestContext.getExeUserId());
certRep.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
certRep.setNextExecuteIds(String.join(",", workflowResultDto.getNextExecutorRoleIds()));
certRep.setApplyStatus(Objects.toString(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
certRep.setReceiveOrgCode(receiveOrg[0]);
certRep.setReceiveOrgName(receiveOrg[1]);
certRep.setUseUnitCode(getSelectedOrgInfo().getCompany().getCompanyCode());
certRep.setUseUnitName(getSelectedOrgInfo().getCompany().getCompanyName());
certRep.setApplicationFormFile(JSONObject.toJSONString(jsonObj.get(APPLICATION_FORM_FILE)));
certRep.setOtherAccessories(!ValidationUtil.isEmpty(jsonObj.get(OTHER_ACCESSORIES)) ? JSONObject.toJSONString(jsonObj.get(OTHER_ACCESSORIES)) : null);
certRep.setSafetyManagerName(safetyManager[1]);
certRep.setIsDelete(Boolean.FALSE);
certRep.setCreateDate(date);
certRep.setRecDate(date);
certRep.setCreateUserId(getSelectedOrgInfo().getUserModel().getUserId());
certRep.setRecUserId(getSelectedOrgInfo().getUserModel().getUserId());
certRep.setCreateUserName(getSelectedOrgInfo().getUserModel().getRealName());
certRep.setRecUserName(getSelectedOrgInfo().getUserModel().getRealName());
return certRep;
}
public void saveCertRepEqs(Long sequenceNbr, JSONArray equLists) {
ArrayList<JgCertificateReplenishEq> replenishEqs = new ArrayList<>();
equLists.forEach(equ -> {
JSONObject equObj = JSONObject.parseObject(JSON.toJSONString(equ));
JgCertificateReplenishEq certRepEq = new JgCertificateReplenishEq();
certRepEq.setSequenceNbr(sequence.nextId());
certRepEq.setCertificateReplenishId(sequenceNbr.toString());
certRepEq.setEquId(equObj.getString(record));
replenishEqs.add(certRepEq);
});
certificateReplenishEqService.saveBatch(replenishEqs);
}
private void setEquClassification(JgCertificateReplenish certRep) {
String equListCode = certRep.getEquListCode();
String equCategoryCode = certRep.getEquCategoryCode();
Optional.ofNullable(equListCode).ifPresent(code -> certRep.setEquList(equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>().eq(EquipmentCategory::getCode, code)).getName()));
Optional.ofNullable(equCategoryCode).ifPresent(code -> certRep.setEquCategory(equipmentCategoryMapper.selectOne(new LambdaQueryWrapper<EquipmentCategory>().eq(EquipmentCategory::getCode, code)).getName()));
}
public Object submitted(JSONObject jsonObj) {
Long sequenceNbr = sequence.nextId();
JgCertificateReplenishDto model = JSON.parseObject(JSONObject.toJSONString(jsonObj), JgCertificateReplenishDto.class);
// 校验设备在流程中
CompanyBo company = getSelectedOrgInfo().getCompany();
model.getEquLists().forEach(device -> EquipUsedCheckStrategyContext.getUsedStrategy(EQUIP_TRANSFER_PROCESS_KEY).equipRepeatUsedCheck(String.valueOf(device.get(SEQUENCE_NBR)), CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ? company.getCompanyCode().split("_")[1] : company.getCompanyCode()));
// 启动工作流
List<WorkflowResultDto> workflowResultList = this.startWorkFlow(model.getReceiveOrgCode().split("_")[0], model.getApplyNo());
WorkflowResultDto workflowResultDto = workflowResultList.get(0);
JgCertificateReplenish certRep = this.buildCertRep(sequenceNbr, jsonObj, workflowResultDto);
commonService.saveExecuteFlowData2Redis(workflowResultDto.getInstanceId(), buildInstanceRuntimeData(certRep));
// 代办
this.buildTask(certRep, workflowResultList);
this.save(certRep);
this.saveCertRepEqs(certRep.getSequenceNbr(), jsonObj.getJSONArray(EQU_LISTS));
return certRep;
}
public Object rejected(JSONObject jsonObj) {
JSONObject jsonObject = JSONObject.parseObject(JSONObject.toJSONString(jsonObj));
JgCertificateReplenish certRep = this.baseMapper.selectById(Objects.toString(jsonObject.get("sequenceNbr")));
certRep.setProcessAdvice(jsonObject.getString(PROCESS_ADVICE));
TaskResultDTO workDto = new TaskResultDTO();
workDto.setResultCode(APPROVAL_STATUS);
workDto.setTaskId(certRep.getNextTaskId());
HashMap<String, Object> commMap = new HashMap<>();
if (certRep.getApplyStatus().equals("6614") || certRep.getApplyStatus().equals("6615")) {
commMap.put(APPROVAL_STATUS, "提交");
} else {
commMap.put(APPROVAL_STATUS, 1);
}
workDto.setNextExecuteUserCompanyCode(certRep.getUseUnitCode());
workDto.setVariable(commMap);
workDto.setComment(certRep.getProcessAdvice());
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(certRep.getNextTaskId(), workDto, "1");
// 提取节点等信息
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
certRep.setPromoter("");
certRep.setApplyStatus(String.valueOf(FlowStatusEnum.REJECTED.getCode()));
certRep.setNextTaskId(workflowResultDto.getNextTaskId());
certRep.setNextExecuteUserIds(workflowResultDto.getNextExecutorUserIds());
// 上个代办改为驳回
TaskV2Model taskV2Model = this.updateLastTodo(certRep, FlowStatusEnum.REJECTED);
this.createNewTodo(certRep, workflowResultDto, taskV2Model, FlowStatusEnum.REJECTED);
return this.updateById(certRep) ? certRep : null;
}
public ProcessTaskDTO submit(JgCertificateReplenish certRep) {
JgCertificateReplenish model = this.getById(certRep.getSequenceNbr());
// 组装信息
String op = "提交";
TaskResultDTO dto = new TaskResultDTO();
dto.setResultCode("approvalStatus");
dto.setTaskId(certRep.getNextTaskId());
HashMap<String, Object> map = new HashMap<>();
map.put("approvalStatus", op);
dto.setNextExecuteUserCompanyCode(model.getReceiveOrgCode());
dto.setVariable(map);
return cmWorkflowService.completeOrReject(certRep.getNextTaskId(), dto, op);
}
public Object approved(JSONObject jsonObj) {
JgCertificateReplenish certRep = this.baseMapper.selectById(Objects.toString(jsonObj.get("sequenceNbr")));
certRep.setProcessAdvice(jsonObj.getString(PROCESS_ADVICE));
TaskResultDTO workDto = new TaskResultDTO();
workDto.setResultCode(APPROVAL_STATUS);
workDto.setTaskId(certRep.getNextTaskId());
HashMap<String, Object> commMap = new HashMap<>();
if (certRep.getApplyStatus().equals("6614") || certRep.getApplyStatus().equals("6615")) {
commMap.put(APPROVAL_STATUS, "提交");
} else {
commMap.put(APPROVAL_STATUS, 0);
}
workDto.setNextExecuteUserCompanyCode(certRep.getReceiveOrgCode());
workDto.setVariable(commMap);
workDto.setComment(certRep.getProcessAdvice());
ProcessTaskDTO processTaskDTO = cmWorkflowService.completeOrReject(certRep.getNextTaskId(), workDto, "0");
// 提取节点等信息
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
certRep.setPromoter(getSelectedOrgInfo().getUserModel().getUserId());
certRep.setProcessAdvice(certRep.getProcessAdvice());
TaskV2Model taskV2Model;
if (StringUtils.isEmpty(workflowResultDto.getNextExecutorRoleIds())) {
certRep.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_FINISHED.getCode()));
certRep.setPromoter("");
certRep.setNextTaskId(null);
certRep.setAcceptDate(new Date());
// 上个代办改为已办
this.updateLastTodo(certRep, FlowStatusEnum.TO_BE_FINISHED);
} else {
certRep.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
certRep.setPromoter(RequestContext.getExeUserId());
certRep.setApplyStatus(String.valueOf(FlowStatusEnum.TO_BE_PROCESSED.getCode()));
certRep.setNextTaskId(workflowResultDto.getNextTaskId());
certRep.setInstanceId(workflowResultDto.getInstanceId());
// 上个代办改为已办
taskV2Model = this.updateLastTodo(certRep, FlowStatusEnum.TO_BE_FINISHED);
// 创建新的代办
this.createNewTodo(certRep, workflowResultDto, taskV2Model, FlowStatusEnum.TO_BE_PROCESSED);
}
// 创建历史数据
// this.saveOrUpdateHisDataBatch();
return null;
// this.saveOrUpdateHisDataBatch(jsonObj, certRep.getSequenceNbr().toString());
return this.updateById(certRep) ? certRep : null;
}
/**
* 上个代办改为已办
*
* @param certRep
* @return 代办信息
*/
private TaskV2Model updateLastTodo(JgCertificateReplenish certRep, FlowStatusEnum statusEnum) {
return commonService.updateTaskModel(MapBuilder.<String, Object>create().put("taskStatus", statusEnum.getCode()).put("taskStatusLabel", statusEnum.getName()).put("flowStatus", statusEnum.getCode()).put("flowStatusLabel", statusEnum.getName()).put("relationId", certRep.getInstanceId()).put("model", certRep).build());
}
/**
* 创建新代办
*/
private void createNewTodo(JgCertificateReplenish certRep, WorkflowResultDto workflowResultDto, TaskV2Model taskV2Model, FlowStatusEnum statusEnum) {
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(certRep, taskMessageDto);
TaskModelDto taskModelDto = TaskModelDto.builder().flowCreateDate(taskV2Model.getFlowCreateDate()).taskName(workflowResultDto.getNextTaskName()).taskCode(taskV2Model.getTaskCode()).taskType(taskV2Model.getTaskType()).taskTypeLabel(taskV2Model.getTaskTypeLabel()).relationId(taskV2Model.getRelationId()).executeUserIds(workflowResultDto.getNextExecutorUserIds()).taskStatusLabel(statusEnum.getName()).flowStatus(statusEnum.getCode()).flowCode(workflowResultDto.getNextTaskId()).flowStatusLabel(statusEnum.getName()).taskContent(String.format("来自%s的业务办理,【申请单号:%s】", certRep.getEquList(), certRep.getApplyNo())).taskDesc(String.format("来自%s的业务办理,【申请单号:%s】", certRep.getEquList(), certRep.getApplyNo())).startUserCompanyName(getSelectedOrgInfo().getCompany().getCompanyName()).startUserId(taskV2Model.getStartUserId()).startUser(taskV2Model.getStartUser()).startDate(taskV2Model.getStartDate()).pageType(statusEnum.getCode() == 6614 ? "edit" : "look").model(taskMessageDto).nextExecuteUser(workflowResultDto.getNextExecutorRoleIds()).build();
commonService.buildTaskModel(Collections.singletonList(taskModelDto));
}
public Object draft() {
return null;
/**
* 启动工作流
*
* @return 工作流信息
*/
private List<WorkflowResultDto> startWorkFlow(String receiveOrgCode, String applyNo) {
ActWorkflowBatchDTO actWorkflowBatchDTO = new ActWorkflowBatchDTO();
ActWorkflowStartDTO workflowStartDTO = new ActWorkflowStartDTO();
workflowStartDTO.setProcessDefinitionKey(EQUIP_TRANSFER_PROCESS_KEY);
workflowStartDTO.setBusinessKey(applyNo);
workflowStartDTO.setCompleteFirstTask(Boolean.TRUE);
workflowStartDTO.setNextExecuteUserCompanyCode(receiveOrgCode);
actWorkflowBatchDTO.setProcess(Collections.singletonList(workflowStartDTO));
List<ProcessTaskDTO> processTaskDTOS = cmWorkflowService.startBatch(actWorkflowBatchDTO);
return commonService.buildWorkFlowInfo(processTaskDTOS);
}
public Object submitted() {
return null;
/**
* 插入代办
*/
private void buildTask(JgCertificateReplenish certRep, List<WorkflowResultDto> workflowResultList) {
if (BeanUtil.isEmpty(certRep) || CollectionUtils.isEmpty(workflowResultList)) {
return;
}
List<TaskModelDto> taskModelList = new ArrayList<>();
TaskModelDto taskModelDto = this.buildTaskModelDto(certRep, workflowResultList.get(0));
taskModelList.add(taskModelDto);
commonService.buildTaskModel(taskModelList);
}
/**
* 组装代办消息
*
* @param certRep 单据信息
* @param workflowResultDto 工作流返回信息
* @return 代办信息
*/
private TaskModelDto buildTaskModelDto(JgCertificateReplenish certRep, WorkflowResultDto workflowResultDto) {
TaskMessageDto taskMessageDto = new TaskMessageDto();
BeanUtil.copyProperties(certRep, taskMessageDto);
return TaskModelDto.builder().flowCreateDate(certRep.getCreateDate()).taskName(workflowResultDto.getNextTaskName()).taskCode(certRep.getApplyNo()).taskType(BusinessTypeEnum.JG_REPLACEMENT_REGISTRATION.getCode()).taskTypeLabel(BusinessTypeEnum.JG_REPLACEMENT_REGISTRATION.getName()).relationId(workflowResultDto.getInstanceId()).executeUserIds(workflowResultDto.getNextExecutorUserIds()).taskStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode()).taskStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName()).flowStatus(FlowStatusEnum.TO_BE_PROCESSED.getCode()).flowCode(workflowResultDto.getNextTaskId()).flowStatusLabel(FlowStatusEnum.TO_BE_PROCESSED.getName()).taskContent(String.format("来自%s的业务办理,【申请单号:%s】", certRep.getEquList(), certRep.getApplyNo())).taskDesc(String.format("来自%s的业务办理,【申请单号:%s】", certRep.getEquList(), certRep.getApplyNo())).startUserId(certRep.getCreateUserId()).startUser(certRep.getCreateUserName()).startUserCompanyName(getSelectedOrgInfo().getCompany().getCompanyName()).startDate(certRep.getCreateDate()).model(taskMessageDto).nextExecuteUser(certRep.getNextExecuteIds()).build();
public void saveOrUpdateHisDataBatch(List<JgEquipTransfer> transferList, List<JgEquipTransferEq> jgEquipTransferEqList) {
// commonService.saveOrUpdateHistory(BusinessTypeEnum.JG_REPLACEMENT_REGISTRATION.getName(), getEquipInfoJson(j.getEquId()), j.getEquId(), j.getEquipTransferId());
}
/**
......@@ -174,8 +590,7 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
boolean isSupervision = company.getLevel().equals(BaseController.COMPANY_TYPE_SUPERVISION);
String useUnitCode = "";
if (isCompany) {
useUnitCode = CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ?
company.getCompanyCode().split("_")[1] : company.getCompanyCode();
useUnitCode = CompanyTypeEnum.INDIVIDUAL.getName().equals(company.getCompanyType()) ? company.getCompanyCode().split("_")[1] : company.getCompanyCode();
}
Page<JgCertificateReplenish> result = new Page<>();
IPage<JgCertificateReplenish> replenishIPage = this.lambdaQuery()
......@@ -184,17 +599,20 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
// 非监管
.eq(isCompany, JgCertificateReplenish::getUseUnitCode, useUnitCode)
.eq(JgCertificateReplenish::getIsDelete, Boolean.FALSE)
.eq(!ValidationUtil.isEmpty(dto.getUseRegistrationCode()), JgCertificateReplenish::getUseRegistrationCode, dto.getUseRegistrationCode())
.like(!ValidationUtil.isEmpty(dto.getUseRegistrationCode()), JgCertificateReplenish::getUseRegistrationCode, dto.getUseRegistrationCode())
.eq(!ValidationUtil.isEmpty(dto.getEquListCode()), JgCertificateReplenish::getEquListCode, dto.getEquListCode())
.eq(!ValidationUtil.isEmpty(dto.getApplyNo()), JgCertificateReplenish::getApplyNo, dto.getApplyNo())
.like(!ValidationUtil.isEmpty(dto.getApplyNo()), JgCertificateReplenish::getApplyNo, dto.getApplyNo())
.eq(!ValidationUtil.isEmpty(dto.getApplyStatus()), JgCertificateReplenish::getApplyStatus, dto.getApplyStatus())
.eq(!ValidationUtil.isEmpty(dto.getUseUnitCode()), JgCertificateReplenish::getUseUnitCode, dto.getUseUnitCode())
.eq(!ValidationUtil.isEmpty(dto.getApplicationReason()), JgCertificateReplenish::getApplicationReason, dto.getApplicationReason())
.eq(!ValidationUtil.isEmpty(dto.getLossDamageTime()), JgCertificateReplenish::getLossDamageTime, dto.getLossDamageTime())
.eq(!ValidationUtil.isEmpty(dto.getInstanceStatus()), JgCertificateReplenish::getInstanceStatus, dto.getInstanceStatus())
.eq(!ValidationUtil.isEmpty(dto.getAcceptDate()), JgCertificateReplenish::getAcceptDate, dto.getAcceptDate())
.page(page);
result.setRecords(replenishIPage.getRecords());
result.setRecords(replenishIPage.getRecords().stream().peek(item -> {
item.setApplyStatusDes(FlowStatusEnum.getNameByType(Long.parseLong(item.getApplyStatus())));
item.setIsCompany(isCompany);
item.setApplicationReason("0".equals(item.getApplicationReason()) ? "遗失" : "损毁");
}).collect(Collectors.toList()));
result.setTotal(replenishIPage.getTotal());
return result;
}
......@@ -219,10 +637,7 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
File pdfFile = null;
try {
pdfFile = commonService.wordToPdf(fileName, wordPath, formData);
return MapBuilder.<String, Object>create()
.put("certReplenishFormUrl", commonService.uploadFile(pdfFile, "certificateReplenishFiles"))
.put("applyNo", applyNo)
.build();
return MapBuilder.<String, Object>create().put("certReplenishFormUrl", commonService.uploadFile(pdfFile, "certificateReplenishFiles")).put("applyNo", applyNo).build();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
......@@ -280,13 +695,7 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
JSONArray equListsAfterAssembly = new JSONArray();
for (int i = 0; i < equLists.size(); i++) {
JSONObject item = equLists.getJSONObject(i);
equListsAfterAssembly.add(MapBuilder.<String, Object>create()
.put("index", i + 1)
.put("productName", item.getString("PRODUCT_NAME"))
.put("equCode", item.getString("EQU_CODE"))
.put("useRegistrationCode", item.getString("USE_ORG_CODE"))
.put("factoryNum", item.getString("FACTORY_NUM"))
.build());
equListsAfterAssembly.add(MapBuilder.<String, Object>create().put("index", i + 1).put("productName", item.getString("PRODUCT_NAME")).put("equCode", item.getString("EQU_CODE")).put("useRegistrationCode", item.getString("USE_ORG_CODE")).put("factoryNum", item.getString("FACTORY_NUM")).build());
}
result.put(EQU_LISTS, equListsAfterAssembly);
result.put("handler", getSelectedOrgInfo().getUserModel().getRealName());
......@@ -308,8 +717,16 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
if (ValidationUtil.isEmpty(registrationManage)) {
return result;
}
List<JSONObject> equipmentLists = this.queryEquByCert(registrationManage.getUseRegistrationCode());
result.put(EQU_LISTS, equipmentLists);
result.put(useRegistrationCode, registrationManage.getUseRegistrationCode());
result.put(equUseAddress, registrationManage.getEquUseAddress());
return result;
}
private List<JSONObject> queryEquByCert(String useRegistrationCode) {
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(USE_ORG_CODE, registrationManage.getUseRegistrationCode());
TermQueryBuilder termQueryBuilder = QueryBuilders.termQuery(USE_ORG_CODE, useRegistrationCode);
boolQuery.must(termQueryBuilder);
BoolQueryBuilder meBuilder = QueryBuilders.boolQuery();
meBuilder.should(QueryBuilders.matchQuery(STATUS, "已认领"));
......@@ -327,10 +744,7 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
} catch (Exception ex) {
ex.printStackTrace();
}
result.put(EQU_LISTS, equipmentLists);
result.put(useRegistrationCode, registrationManage.getUseRegistrationCode());
result.put(equUseAddress, registrationManage.getEquUseAddress());
return result;
return equipmentLists;
}
/**
......@@ -353,7 +767,7 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
commonService.checkForRevocationFlow(nextTaskId, instanceId);
JgCertificateReplenish certRep = baseMapper.selectById(dto.getSequenceNbr());
// 回滚工作流
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(dto.getInstanceId());
ProcessTaskDTO processTaskDTO = cmWorkflowService.rollBack(instanceId);
WorkflowResultDto workflowResultDto = commonService.buildWorkFlowInfo(Collections.singletonList(processTaskDTO)).get(0);
certRep.setPromoter("");
certRep.setNextExecuteIds(workflowResultDto.getNextExecutorRoleIds());
......@@ -389,8 +803,7 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
}
List<String> records = list.stream().map(JgCertificateReplenishEq::getEquId).collect(Collectors.toList());
if (NOT_FLOWING_STATE.contains(status)) {
EquipUsedCheckStrategyContext.getUsedStrategy(EQUIP_TRANSFER_PROCESS_KEY)
.delDataForCheckEquipRepeatUsed(records, companyCode);
EquipUsedCheckStrategyContext.getUsedStrategy(EQUIP_TRANSFER_PROCESS_KEY).delDataForCheckEquipRepeatUsed(records, companyCode);
}
}
......@@ -401,4 +814,36 @@ public class JgCertificateReplenishServiceImpl extends BaseService<JgCertificate
.nextTaskId(certRep.getNextTaskId())
.build();
}
public Map<String, Object> queryBySequenceNbr(Long sequenceNbr) {
JgCertificateReplenish certRep = baseMapper.selectById(sequenceNbr);
CompanyBo company = getSelectedOrgInfo().getCompany();
boolean isCompany = company.getLevel().equals(BaseController.COMPANY_TYPE_COMPANY);
if (FlowStatusEnum.TO_BE_FINISHED.getCode() == Integer.parseInt(certRep.getApplyStatus())) {
// 已完成状态显示历史数据
JSONObject jsonObject = commonService.queryHistoryData(sequenceNbr);
jsonObject.put(IS_COMPANY, isCompany);
jsonObject.put(APPLY_STATUS, FlowStatusEnum.TO_BE_FINISHED.getCode());
return jsonObject;
} else {
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> result = mapper.convertValue(certRep, new TypeReference<Map<String, Object>>() {
});
result.put(EQU_LISTS, this.queryEquByCert(certRep.getUseRegistrationCode()));
result.put(LOSS_DAMAGE_TIME, certRep.getLossDamageTime());
JSONObject jsonObject = commonService.queryHistoryData(sequenceNbr);
result.put(SAFETY_MANAGER_ID, jsonObject.get(SAFETY_MANAGER_ID));
result.put(IS_COMPANY, isCompany);
return result;
}
}
public Boolean removeCertRepBySequenceNbr(Long sequenceNbr) {
JgCertificateReplenish certRep = this.baseMapper.selectById(sequenceNbr);
commonService.deleteTaskModel(sequenceNbr.toString(), certRep.getInstanceId());
this.getBaseMapper().update(null, new LambdaUpdateWrapper<JgCertificateReplenish>().eq(JgCertificateReplenish::getSequenceNbr, sequenceNbr).set(JgCertificateReplenish::getIsDelete, true));
certificateReplenishEqService.getBaseMapper().update(null, new LambdaUpdateWrapper<JgCertificateReplenishEq>().eq(JgCertificateReplenishEq::getCertificateReplenishId, sequenceNbr).set(JgCertificateReplenishEq::getIsDelete, true));
jgRegistrationHistoryService.getBaseMapper().update(null, new LambdaUpdateWrapper<JgRegistrationHistory>().eq(JgRegistrationHistory::getCurrentDocumentId, sequenceNbr).set(JgRegistrationHistory::getIsDelete, true));
return Boolean.TRUE;
}
}
\ No newline at end of file
......@@ -322,5 +322,23 @@
"pageType": "look",
"name": "超设计使用年限变更",
"url": "/mixuap?appId=1742358052905971713&id=1897575052807794690&roleIds={roleIds}&userId={userId}&pageType=look"
},
{
"type": "121",
"pageType": "draft",
"name": "补证登记",
"url": "/mixuap?appId=1742358052905971713&id=1902274552956743682&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "121",
"pageType": "edit",
"name": "补证登记",
"url": "/mixuap?appId=1742358052905971713&id=1902274797757296642&roleIds={roleIds}&userId={userId}&pageType=edit"
},
{
"type": "121",
"pageType": "look",
"name": "补证登记",
"url": "/mixuap?appId=1742358052905971713&id=1902274797757296642&roleIds={roleIds}&userId={userId}&pageType=look"
}
]
\ 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