Merge remote-tracking branch 'origin/SecondStage' into SecondStage
This commit is contained in:
@@ -17,7 +17,8 @@ public enum ProcessTypeEnum {
|
||||
MARKET_STANDARD_PUBLISH("市场清单发布流程", 4, "com.jero.modules.activiti.process.ms.service.impl.ProcessMarketStandardReleaseServiceImpl", "/workCenter/MarketListReleaseProcess", "/workCenter/MarketListReleaseProcess"),
|
||||
ENTERPRISE_STANDARD_ABOLISH_PUBLISH("企标废止发布流程", 5, "com.jero.modules.activiti.process.abolish.service.impl.ProcessAbolishReleaseServiceImpl", "/workCenter/AbolishReleaseProcess", "/workCenter/AbolishReleaseProcess"),
|
||||
ES_REVISION_ADVICE("企业标准制修订及征求意见流程", 6, "com.jero.modules.activiti.process.esRevisionAdvice.service.impl.EsRevisionServiceImpl","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"),
|
||||
ANNUAL_INIT("年度制修订计划流程", 7, "com.jero.modules.activiti.process.annualinit.service.impl.ProcessAnnualInitService","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision")
|
||||
ANNUAL_INIT("年度制修订计划流程", 7, "com.jero.modules.activiti.process.annualinit.service.impl.ProcessAnnualInitService","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"),
|
||||
DOMESTIC_VEHICLE_CONTROL_PUBLISH("国内整车型号和VIN前八位管控流程", 8, "com.jero.modules.activiti.process.vehicledomestic.service.impl.ProcessVehicleDomesticReleaseServiceImpl","/workCenter/VehicleDomesticReleaseProcess","/workCenter/VehicleDomesticReleaseProcess")
|
||||
;
|
||||
|
||||
private final String name;
|
||||
|
||||
+2
-1
@@ -17,7 +17,8 @@ public enum ProcessType {
|
||||
MARKET_STANDARD_PUBLISH("市场清单发布流程", "4", "market_standard_publish", "ProcessNewStandardImportServiceImpl"),
|
||||
ENTERPRISE_STANDARD_ABOLISH_PUBLISH("企标废止发布流程", "5", "enterprise_standard_abolish_publish", "ProcessAbolishReleaseServiceImpl"),
|
||||
ES_REVISION_ADVICE("企标制修订及征求意见流程", "6", "es_revision_advice", "ProcessEsRevisionServiceImpl"),
|
||||
ANNUAL_INIT("年度制修订计划流程", "7", "process-annual-init", "ProcessAnnualInitService")
|
||||
ANNUAL_INIT("年度制修订计划流程", "7", "process-annual-init", "ProcessAnnualInitService"),
|
||||
DOMESTIC_VEHICLE_CONTROL_PUBLISH("国内整车型号和VIN前八位管控流程", "8", "domestic_vehicle_control_publish", "ProcessVehicleDomesticReleaseServiceImpl")
|
||||
;
|
||||
|
||||
private final String name;
|
||||
|
||||
-15
@@ -1,15 +0,0 @@
|
||||
package com.jero.modules.activiti.process.vehicledomestic.common;
|
||||
|
||||
public interface Constant {
|
||||
|
||||
String TAKE_EFFECT = "1";
|
||||
|
||||
String ABOLISH = "2";
|
||||
|
||||
String FUEL_OIL = "1";
|
||||
|
||||
String HYBRID_POWER = "2";
|
||||
|
||||
String PURE_ELECTRIC = "3";
|
||||
|
||||
}
|
||||
+52
-14
@@ -2,12 +2,17 @@ package com.jero.modules.activiti.process.vehicledomestic.controller;
|
||||
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.aspect.annotation.AutoLog;
|
||||
import com.jero.common.aspect.annotation.Translation;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.service.IProcessVehicleDomesticReleaseService;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.vo.ProcessVehicleDomesticReleaseVo;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.apache.poi.ss.formula.functions.T;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
@@ -26,32 +31,65 @@ public class ProcessVehicleDomesticReleaseController {
|
||||
|
||||
@Resource
|
||||
private IProcessVehicleDomesticReleaseService processVehicleDomesticReleaseService;
|
||||
@Resource
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
|
||||
/**
|
||||
* 根据能源类型导出模板
|
||||
*/
|
||||
@AutoLog(value = "国内整车型号和VIN前八位管控流程-根据能源类型导出模板")
|
||||
@ApiOperation(value="国内整车型号和VIN前八位管控流程-根据能源类型导出模板", notes="国内整车型号和VIN前八位管控流程-根据能源类型导出模板")
|
||||
@GetMapping(value = "/exportTemplateByType")
|
||||
// @RequiresPermissions("clubManagement:clubManagement:import")
|
||||
public ModelAndView exportTemplateByType(HttpServletRequest request) {
|
||||
return processVehicleDomesticReleaseService.exportTemplateByType(request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导入
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "国内整车型号和VIN前八位管控流程-导入")
|
||||
@ApiOperation(value="国内整车型号和VIN前八位管控流程-导入", notes="国内整车型号和VIN前八位管控流程-导入")
|
||||
@PostMapping(value = "/importExcel")
|
||||
// @RequiresPermissions("clubManagement:clubManagement:import")
|
||||
public Result<?> excelimport(HttpServletRequest request) {
|
||||
return processVehicleDomesticReleaseService.importExcel(request);
|
||||
}
|
||||
|
||||
@AutoLog(value = "国内整车型号和VIN前八位管控流程-发起流程")
|
||||
@ApiOperation(value = "国内整车型号和VIN前八位管控流程-发起流程", notes = "国内整车型号和VIN前八位管控流程-发起流程")
|
||||
@PostMapping(value = "/start")
|
||||
public Result<T> startProcess(@Validated @RequestBody ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO) {
|
||||
processVehicleDomesticReleaseService.startProcess(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "国内整车型号和VIN前八位管控流程-同意")
|
||||
@ApiOperation(value = "国内整车型号和VIN前八位管控流程-同意", notes = "国内整车型号和VIN前八位管控流程-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<T> agree(@Validated @RequestBody ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO) {
|
||||
processVehicleDomesticReleaseService.approveTask(processInfoVO, true);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "国内整车型号和VIN前八位管控流程-驳回")
|
||||
@ApiOperation(value = "国内整车型号和VIN前八位管控流程-驳回", notes = "国内整车型号和VIN前八位管控流程-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<T> reject(@Validated @RequestBody ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO) {
|
||||
processVehicleDomesticReleaseService.approveTask(processInfoVO, false);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "国内整车型号和VIN前八位管控流程-提交")
|
||||
@ApiOperation(value = "国内整车型号和VIN前八位管控流程-提交", notes = "国内整车型号和VIN前八位管控流程-提交")
|
||||
@PostMapping("/submit")
|
||||
public Result<T> submit(@Validated @RequestBody ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO) {
|
||||
processVehicleDomesticReleaseService.submit(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "国内整车型号和VIN前八位管控流程-办理")
|
||||
@ApiOperation(value="国内整车型号和VIN前八位管控流程-办理", notes="国内整车型号和VIN前八位管控流程-办理")
|
||||
@GetMapping("/handle/{taskId}")
|
||||
@Translation
|
||||
public Result<?> handle(@PathVariable("taskId") String taskId) {
|
||||
ProcessDraft draft = actFlowCommonService.getExistDraftByTaskId(taskId, ProcessTypeEnum.DOMESTIC_VEHICLE_CONTROL_PUBLISH);
|
||||
if (draft != null) {
|
||||
return Result.OK(draft);
|
||||
}
|
||||
return Result.OK(processVehicleDomesticReleaseService.getHandleData(taskId));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+9
-6
@@ -2,14 +2,16 @@ package com.jero.modules.activiti.process.vehicledomestic.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import java.time.LocalDateTime;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -41,9 +43,6 @@ public class ProcessVehicleDomesticRelease implements Serializable {
|
||||
@ApiModelProperty(value = "抄送人员")
|
||||
private String copyUser;
|
||||
|
||||
@ApiModelProperty(value = "0表示流程未完成,1表示流程已完成")
|
||||
private Integer isFinish;
|
||||
|
||||
@ApiModelProperty(value = "0表示未删除,1表示删除")
|
||||
private Integer delFlag;
|
||||
|
||||
@@ -51,13 +50,17 @@ public class ProcessVehicleDomesticRelease implements Serializable {
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date createTime;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
}
|
||||
|
||||
+78
@@ -0,0 +1,78 @@
|
||||
package com.jero.modules.activiti.process.vehicledomestic.listener;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.jero.common.api.SendMessageAPI;
|
||||
import com.jero.common.api.dto.message.SendMessageDTO;
|
||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.entity.ProcessVehicleDomesticRelease;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.service.IProcessVehicleDomesticReleaseService;
|
||||
import com.jero.modules.laws.businessSupport.common.Constant;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleDomesticLibrary;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleDomesticLibraryService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.delegate.DelegateExecution;
|
||||
import org.activiti.engine.delegate.ExecutionListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
import javax.annotation.Resource;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import java.util.Objects;
|
||||
|
||||
/**
|
||||
* @author: Mzaxd
|
||||
* @Date: 2023/10/10 14:14
|
||||
*/
|
||||
@Slf4j
|
||||
@Component("ProcessDomesticVehicleEndListener")
|
||||
public class ProcessDomesticVehicleEndListener implements ExecutionListener, Serializable {
|
||||
|
||||
@Resource
|
||||
private IProcessVehicleDomesticReleaseService processVehicleDomesticReleaseService;
|
||||
@Resource
|
||||
private ILawsVehicleDomesticLibraryService lawsVehicleDomesticLibraryService;
|
||||
@Resource
|
||||
private ISysUserService sysUserService;
|
||||
@Resource
|
||||
private SendMessageAPI sendMessageAPI;
|
||||
|
||||
|
||||
/**
|
||||
* 国内整车型号和VIN前八位管控流程结束之后给抄送人发消息
|
||||
* @param delegateExecution
|
||||
*/
|
||||
@Override
|
||||
public void notify(DelegateExecution delegateExecution) {
|
||||
log.info("国内整车型号和VIN前八位管控流程:监听执行器开始执行");
|
||||
// 找到流程实例Id
|
||||
String processInstanceId = delegateExecution.getProcessInstanceId();
|
||||
// 更新业务主表的字段
|
||||
ProcessVehicleDomesticRelease processVehicleDomesticRelease = processVehicleDomesticReleaseService.getOne(new LambdaQueryWrapper<ProcessVehicleDomesticRelease>().eq(ProcessVehicleDomesticRelease::getProcessInstanceId, processInstanceId), false);
|
||||
LawsVehicleDomesticLibrary lawsVehicleDomesticLibrary = lawsVehicleDomesticLibraryService.getById(processVehicleDomesticRelease.getVehicleId());
|
||||
lawsVehicleDomesticLibrary.setFinishDate(new Date()); // 完成日期
|
||||
lawsVehicleDomesticLibrary.setIsFinish(Constant.IS_FINISH); // 是否完成流程
|
||||
lawsVehicleDomesticLibrary.setState(Constant.TAKE_EFFECT); // 状态
|
||||
lawsVehicleDomesticLibraryService.updateById(lawsVehicleDomesticLibrary);
|
||||
// 给抄送人发送消息
|
||||
String processDefinitionKey = ProcessType.NEW_STANDARD_IMPORT.getProcessKey();
|
||||
// 发送消息
|
||||
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
||||
sendMessageDTO.setTemplateCode(processDefinitionKey);
|
||||
sendMessageDTO.setToUserId(processVehicleDomesticRelease.getCopyUser());
|
||||
LambdaQueryWrapper<SysUser> querySysUser = new LambdaQueryWrapper<>();
|
||||
querySysUser.eq(SysUser::getUsername,processVehicleDomesticRelease.getCreateBy());
|
||||
SysUser sysUser = sysUserService.getOne(querySysUser,false);
|
||||
if(!Objects.isNull(sysUser)){
|
||||
sendMessageDTO.setSendUser(sysUser.getId());
|
||||
}
|
||||
Map<String, String> sendMap = new HashMap<>();
|
||||
sendMap.put("standardNumber","测试占位符1");
|
||||
sendMap.put("standardName", "测试占位符2");
|
||||
sendMessageDTO.setMap(sendMap);
|
||||
sendMessageAPI.sendMessage(sendMessageDTO);
|
||||
log.info("国内整车型号和VIN前八位管控流程:监听执行器执行结束");
|
||||
}
|
||||
}
|
||||
+10
-1
@@ -2,9 +2,10 @@ package com.jero.modules.activiti.process.vehicledomestic.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.entity.ProcessVehicleDomesticRelease;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.vo.ProcessVehicleDomesticReleaseVo;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
@@ -20,4 +21,12 @@ public interface IProcessVehicleDomesticReleaseService extends IService<ProcessV
|
||||
ModelAndView exportTemplateByType(HttpServletRequest request);
|
||||
|
||||
Result<?> importExcel(HttpServletRequest request);
|
||||
|
||||
void startProcess(ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO);
|
||||
|
||||
void approveTask(ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO, boolean pass);
|
||||
|
||||
void submit(ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO);
|
||||
|
||||
ProcessInfoVO<ProcessVehicleDomesticReleaseVo> getHandleData(String taskId);
|
||||
}
|
||||
|
||||
+294
-4
@@ -1,16 +1,42 @@
|
||||
package com.jero.modules.activiti.process.vehicledomestic.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.api.vo.ResultCommon;
|
||||
import com.jero.common.exception.JeroBootException;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.util.ImportExcelUtil;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.common.Constant;
|
||||
import com.jero.modules.activiti.common.ActivitiCommon;
|
||||
import com.jero.modules.activiti.entity.ProcessAll;
|
||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
||||
import com.jero.modules.activiti.enums.ProcessTypeEnum;
|
||||
import com.jero.modules.activiti.process.abolish.entity.ProcessAbolishRelease;
|
||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
||||
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
||||
import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
|
||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.entity.ProcessVehicleDomesticRelease;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.mapper.ProcessVehicleDomesticReleaseMapper;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.service.IProcessVehicleDomesticReleaseService;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.vo.ProcessVehicleDomesticReleaseVo;
|
||||
import com.jero.modules.activiti.process.vehicledomestic.vo.excel.*;
|
||||
import com.jero.modules.activiti.service.ProcessAllService;
|
||||
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
|
||||
import com.jero.modules.activiti.service.ProcessNodeLinkService;
|
||||
import com.jero.modules.laws.businessSupport.common.Constant;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleDomesticLibrary;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleDomesticLibrarySublist;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleDomesticLibraryService;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleDomesticLibrarySublistService;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.activiti.engine.RuntimeService;
|
||||
import org.activiti.engine.TaskService;
|
||||
import org.activiti.engine.runtime.ProcessInstance;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecgframework.poi.excel.ExcelImportUtil;
|
||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||
@@ -20,16 +46,17 @@ import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
import org.springframework.web.multipart.MultipartHttpServletRequest;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
|
||||
|
||||
|
||||
/**
|
||||
@@ -41,12 +68,33 @@ import java.util.stream.Collectors;
|
||||
* @since 2024-09-23
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
@Slf4j
|
||||
public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl<ProcessVehicleDomesticReleaseMapper, ProcessVehicleDomesticRelease> implements IProcessVehicleDomesticReleaseService {
|
||||
|
||||
|
||||
private static final String NEWLINE_CHARACTER = "</br>";
|
||||
private static final String ENERGY_TYPE = "energyType";
|
||||
|
||||
@Resource
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
@Resource
|
||||
private ProcessNodeLinkService processNodeLinkService;
|
||||
@Resource
|
||||
private ProcessApprovalRecordService processApprovalRecordService;
|
||||
@Resource
|
||||
private ProcessAllService processAllService;
|
||||
@Resource
|
||||
private RuntimeService runtimeService;
|
||||
@Resource
|
||||
private IProcessHandleService processHandleService;
|
||||
@Resource
|
||||
private TaskService taskService;
|
||||
@Resource
|
||||
private ILawsVehicleDomesticLibraryService lawsVehicleDomesticLibraryService;
|
||||
@Resource
|
||||
private ILawsVehicleDomesticLibrarySublistService lawsVehicleDomesticLibrarySublistService;
|
||||
|
||||
@Override
|
||||
public ModelAndView exportTemplateByType(HttpServletRequest request) {
|
||||
String energyType = request.getParameter(ENERGY_TYPE);
|
||||
@@ -118,6 +166,248 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl<Proces
|
||||
return Result.OK(excelList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startProcess(ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO) {
|
||||
// 流程Key
|
||||
String processDefinitionKey = ProcessType.DOMESTIC_VEHICLE_CONTROL_PUBLISH.getProcessKey();
|
||||
// 流程信息
|
||||
BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO();
|
||||
// 任务信息
|
||||
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
|
||||
// 人员信息
|
||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
|
||||
// 业务数据
|
||||
ProcessVehicleDomesticReleaseVo businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
// 设置流程变量
|
||||
Map<String, Object> actVariables = setVariables(userInfoMap);
|
||||
// 删除草稿
|
||||
actFlowCommonService.getExistDraftAndRemove(processInfoVO.getDraftId());
|
||||
// 启动流程
|
||||
ProcessInstance processInstance = actFlowCommonService.startProcess(processDefinitionKey, actVariables);
|
||||
// 获取流程实例ID
|
||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||
String processInstanceId = processInstance.getId();
|
||||
businessInfoDTO.setProcessInstanceId(processInstanceId);
|
||||
processInfo.setProcessInstanceId(processInstanceId);
|
||||
processInfo.setProcessDefinitionId(processDefinitionId);
|
||||
processInfo.setProcessType(ProcessTypeEnum.DOMESTIC_VEHICLE_CONTROL_PUBLISH.getValue());
|
||||
// 第一个节点业务数据处理
|
||||
startNodeBusProcess(processInfoVO);
|
||||
// 保存选人信息
|
||||
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, changeVariables(userInfoMap));
|
||||
// 当前用户Id
|
||||
String userId = UserUtils.getUserId();
|
||||
// 获取第一个任务的taskId
|
||||
String taskId = actFlowCommonService.getFirstTaskId(processInstanceId, userId, processDefinitionId);
|
||||
processTask.setTaskId(taskId);
|
||||
// 保存第一个节点的草稿
|
||||
processHandleService.saveToDraft(processInfoVO, UserUtils.getUserId());
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
// 根据流程实例id更新流程总表
|
||||
actFlowCommonService.updateProcessAll(processInfo);
|
||||
// 自动完成第一个任务
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
// 保存快照
|
||||
processHandleService.saveToSnapshot(processInfoVO,userId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void approveTask(ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO, boolean pass) {
|
||||
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
|
||||
String taskId = processTask.getTaskId();
|
||||
// 获取task
|
||||
if (StringUtils.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("taskId为空或任务不存在");
|
||||
}
|
||||
// 获取当前节点的id
|
||||
ProcessApprovalRecord processApprovalRecord = actFlowCommonService.getNodeIdByTaskId(taskId);
|
||||
String xmlNodeId = processApprovalRecord.getNodeId();
|
||||
//任务Id 查询任务对象
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
String processInstanceId = task.getProcessInstanceId();
|
||||
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
|
||||
if(Objects.isNull(task)){
|
||||
throw new JeroBootException("找不到对应任务");
|
||||
}
|
||||
if (pass && task.getName().equals("法规部门处理人审批")) {
|
||||
startRegulatoryProcess(processInfoVO, processInstanceId);
|
||||
}
|
||||
if(Objects.isNull(processTask.getCommitFlag())){
|
||||
processTask.setCommitFlag(pass ? ActivitiCommon.COMMIT_FLAG1 : ActivitiCommon.COMMIT_FLAG2);
|
||||
}
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
// 设置流程变量
|
||||
runtimeService.setVariable(processInstanceId, PASS, pass);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
// 驳回,结束所有节点
|
||||
processApprovalRecordService.updateApprovalRecordFinishFlag(pass, taskId, xmlNodeId, processInstanceId);
|
||||
// 保存快照
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
if(!Objects.isNull(process)){
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
|
||||
basicProcessInfoDTO.setProcessName(process.getPrcName());
|
||||
basicProcessInfoDTO.setProcessType(process.getPrcType());
|
||||
basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId());
|
||||
basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId());
|
||||
basicProcessInfoDTO.setProcessDescription(process.getPrcMes());
|
||||
basicProcessInfoDTO.setProcessDueDate(process.getDueTime());
|
||||
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
|
||||
// 保存快照
|
||||
processHandleService.saveToSnapshot(processInfoVO,userId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void submit(ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO) {
|
||||
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
|
||||
String taskId = processTask.getTaskId();
|
||||
// 获取task
|
||||
if (StringUtils.isBlank(taskId) || !actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("taskId为空或任务不存在");
|
||||
}
|
||||
//任务Id 查询任务对象
|
||||
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
|
||||
if(Objects.isNull(task)){
|
||||
throw new JeroBootException("找不到对应任务");
|
||||
}
|
||||
// 人员信息
|
||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
|
||||
// 设置流程变量
|
||||
Map<String, Object> actVariables = setVariables(userInfoMap);
|
||||
String processInstanceId = task.getProcessInstanceId();
|
||||
runtimeService.setVariables(processInstanceId,actVariables);
|
||||
String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
|
||||
// 发起节点 更新业务数据
|
||||
startNodeBusProcess(processInfoVO);
|
||||
// 更新审批表为完成,填充数据
|
||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||
// 审批节点
|
||||
actFlowCommonService.completeTask(taskId, userId);
|
||||
// 保存快照
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
if(!Objects.isNull(process)){
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
|
||||
basicProcessInfoDTO.setProcessName(process.getPrcName());
|
||||
basicProcessInfoDTO.setProcessType(process.getPrcType());
|
||||
basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId());
|
||||
basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId());
|
||||
basicProcessInfoDTO.setProcessDescription(process.getPrcMes());
|
||||
basicProcessInfoDTO.setProcessDueDate(process.getDueTime());
|
||||
processInfoVO.setBasicProcessInfoDTO(basicProcessInfoDTO);
|
||||
// 保存快照
|
||||
processHandleService.saveToSnapshot(processInfoVO,userId);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProcessInfoVO<ProcessVehicleDomesticReleaseVo> getHandleData(String taskId) {
|
||||
if (!actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("任务不存在");
|
||||
}
|
||||
ProcessInfoVO<ProcessVehicleDomesticReleaseVo> result = new ProcessInfoVO<>();
|
||||
// 使用流程引擎根据taskId找到流程实例Id
|
||||
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
|
||||
// 获取流程通用数据
|
||||
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
if(!Objects.isNull(process)){
|
||||
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
|
||||
basicProcessInfoDTO.setProcessName(process.getPrcName());
|
||||
basicProcessInfoDTO.setProcessType(process.getPrcType());
|
||||
basicProcessInfoDTO.setProcessDefinitionId(process.getProcessDefinitionId());
|
||||
basicProcessInfoDTO.setProcessInstanceId(process.getProcessInstanceId());
|
||||
basicProcessInfoDTO.setProcessDescription(process.getPrcMes());
|
||||
basicProcessInfoDTO.setProcessDueDate(process.getDueTime());
|
||||
result.setBasicProcessInfoDTO(basicProcessInfoDTO);
|
||||
}
|
||||
// 获取流程实例数据
|
||||
ProcessVehicleDomesticReleaseVo processVehicleDomesticReleaseVo = new ProcessVehicleDomesticReleaseVo();
|
||||
// 流程表
|
||||
LambdaQueryWrapper<ProcessVehicleDomesticRelease> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(ProcessVehicleDomesticRelease::getProcessInstanceId, processInstanceId);
|
||||
ProcessVehicleDomesticRelease processVehicleDomesticRelease = getOne(lambdaQueryWrapper,false);
|
||||
processVehicleDomesticReleaseVo.setCopyUser(processVehicleDomesticRelease.getCopyUser());
|
||||
// 业务主表
|
||||
LawsVehicleDomesticLibrary lawsVehicleDomesticLibrary = lawsVehicleDomesticLibraryService.getById(processVehicleDomesticRelease.getVehicleId());
|
||||
processVehicleDomesticReleaseVo.setRemark(lawsVehicleDomesticLibrary.getRemark());
|
||||
processVehicleDomesticReleaseVo.setEnergyType(lawsVehicleDomesticLibrary.getEnergyType());
|
||||
// 业务子表
|
||||
LambdaQueryWrapper<LawsVehicleDomesticLibrarySublist> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(LawsVehicleDomesticLibrarySublist::getVehicleId, processVehicleDomesticRelease.getVehicleId());
|
||||
LawsVehicleDomesticLibrarySublist lawsVehicleDomesticLibrarySublist = lawsVehicleDomesticLibrarySublistService.getOne(queryWrapper);
|
||||
BeanUtils.copyProperties(lawsVehicleDomesticLibrarySublist, processVehicleDomesticReleaseVo);
|
||||
result.setBusinessInfoDTO(processVehicleDomesticReleaseVo);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void startRegulatoryProcess(ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO, String processInstanceId) {
|
||||
ProcessVehicleDomesticReleaseVo businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
if (!Objects.isNull(businessInfoDTO)) {
|
||||
ProcessVehicleDomesticRelease processVehicleDomesticRelease = getOne(new LambdaQueryWrapper<ProcessVehicleDomesticRelease>().eq(ProcessVehicleDomesticRelease::getProcessInstanceId, processInstanceId), false);
|
||||
LawsVehicleDomesticLibrary lawsVehicleDomesticLibrary = lawsVehicleDomesticLibraryService.getById(processVehicleDomesticRelease.getVehicleId());
|
||||
lawsVehicleDomesticLibrary.setVehicleModel(businessInfoDTO.getVehicleModel()); // 整车型号
|
||||
lawsVehicleDomesticLibrary.setVinTopEight(businessInfoDTO.getVinTopEight()); // VIN前八位
|
||||
lawsVehicleDomesticLibrary.setVehicleBasis(businessInfoDTO.getVehicleBasis()); // 整车型号编制依据
|
||||
lawsVehicleDomesticLibrary.setVinBasis(businessInfoDTO.getVinBasis()); // VIN编制依据
|
||||
lawsVehicleDomesticLibrary.setRegulatoryEngineer(UserUtils.getUserId()); // 法规工程师
|
||||
lawsVehicleDomesticLibraryService.updateById(lawsVehicleDomesticLibrary);
|
||||
}
|
||||
}
|
||||
|
||||
private Map<String, Object> changeVariables(Map<String, Object> userInfoMap) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
userInfoMap.forEach((key, value) -> {
|
||||
if(Objects.equals("checkUserLeader2List",key + "List")){
|
||||
map.put(key + "List", value);
|
||||
}
|
||||
map.put(key, value);
|
||||
});
|
||||
return map;
|
||||
}
|
||||
|
||||
private void startNodeBusProcess(ProcessInfoVO<ProcessVehicleDomesticReleaseVo> processInfoVO) {
|
||||
ProcessVehicleDomesticReleaseVo businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
// 保存数据到 国内整车型号及VIN前八位管控库表
|
||||
LawsVehicleDomesticLibrary lawsVehicleDomesticLibrary = new LawsVehicleDomesticLibrary();
|
||||
BeanUtils.copyProperties(businessInfoDTO, lawsVehicleDomesticLibrary);
|
||||
lawsVehicleDomesticLibrary.setIsFinish(Constant.NOT_FINISH); // 流程未完成
|
||||
lawsVehicleDomesticLibrary.setApplicant(UserUtils.getUserId()); // 流程发起人
|
||||
lawsVehicleDomesticLibraryService.save(lawsVehicleDomesticLibrary);
|
||||
String vehicleId = lawsVehicleDomesticLibrary.getId(); // 主表id
|
||||
// 保存数据到 国内整车型号及VIN前八位管控库子表
|
||||
LawsVehicleDomesticLibrarySublist lawsVehicleDomesticLibrarySublist = new LawsVehicleDomesticLibrarySublist();
|
||||
BeanUtils.copyProperties(businessInfoDTO, lawsVehicleDomesticLibrarySublist);
|
||||
lawsVehicleDomesticLibrarySublist.setVehicleId(vehicleId);
|
||||
lawsVehicleDomesticLibrarySublistService.save(lawsVehicleDomesticLibrarySublist);
|
||||
// 保存数据到 国内整车型号及VIN前八位管控库流程表
|
||||
ProcessVehicleDomesticRelease processVehicleDomesticRelease = new ProcessVehicleDomesticRelease();
|
||||
processVehicleDomesticRelease.setVehicleId(vehicleId);
|
||||
processVehicleDomesticRelease.setProcessInstanceId(businessInfoDTO.getProcessInstanceId());
|
||||
processVehicleDomesticRelease.setCopyUser(businessInfoDTO.getCopyUser());
|
||||
this.save(processVehicleDomesticRelease);
|
||||
}
|
||||
|
||||
private Map<String, Object> setVariables(Map<String, Object> userInfoMap) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
// 人员信息
|
||||
userInfoMap.forEach((key, value) -> {
|
||||
if(Objects.equals("checkUserLeader1List",key + "List") ||
|
||||
Objects.equals("checkUserLeader2List",key + "List") ||
|
||||
Objects.equals("checkUserLeader3List",key + "List") ||
|
||||
Objects.equals("checkUserLeader4List",key + "List")){
|
||||
map.put(key, value);
|
||||
map.put(key + "List", Arrays.asList(value.toString().split(",")));
|
||||
return;
|
||||
}
|
||||
map.put(key, value);
|
||||
});
|
||||
return map;
|
||||
}
|
||||
|
||||
private StringBuilder validatorExcel(String energyType, List<?> excelList) {
|
||||
StringBuilder msg;
|
||||
if (Constant.FUEL_OIL.equals(energyType)) {
|
||||
|
||||
+135
@@ -0,0 +1,135 @@
|
||||
package com.jero.modules.activiti.process.vehicledomestic.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.util.Date;
|
||||
|
||||
|
||||
@Data
|
||||
public class ProcessVehicleDomesticReleaseVo {
|
||||
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "流程实例Id")
|
||||
private String processInstanceId;
|
||||
|
||||
@ApiModelProperty(value = "抄送人员")
|
||||
private String copyUser;
|
||||
|
||||
@ApiModelProperty(value = "能源类型")
|
||||
private String energyType;
|
||||
|
||||
@ApiModelProperty(value = "整车型号")
|
||||
private String vehicleModel;
|
||||
|
||||
@ApiModelProperty(value = "vin前八位")
|
||||
private String vinTopEight;
|
||||
|
||||
@ApiModelProperty(value = "整车型号编制依据")
|
||||
private String vehicleBasis;
|
||||
|
||||
@ApiModelProperty(value = "vin编制依据")
|
||||
private String vinBasis;
|
||||
|
||||
@ApiModelProperty(value = "代替整车型号")
|
||||
private String insteadVehicleModel;
|
||||
|
||||
@ApiModelProperty(value = "申请人")
|
||||
private String applicant;
|
||||
|
||||
@ApiModelProperty(value = "完成日期")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date finishDate;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(value = "法规工程师")
|
||||
private String regulatoryEngineer;
|
||||
|
||||
@ApiModelProperty(value = "状态")
|
||||
private String state;
|
||||
|
||||
@ApiModelProperty(value = "车型代码")
|
||||
private String vehicleTypeCode;
|
||||
|
||||
@ApiModelProperty(value = "动力类型")
|
||||
private String powerType;
|
||||
|
||||
@ApiModelProperty(value = "车辆外廓尺寸(长*宽*高)")
|
||||
private String carOutSize;
|
||||
|
||||
@ApiModelProperty(value = "前后标牌")
|
||||
private String aroundSignage;
|
||||
|
||||
@ApiModelProperty(value = "整备质量(教练车)")
|
||||
private String vehicleQuality;
|
||||
|
||||
@ApiModelProperty(value = "驱动型式")
|
||||
private String drivingType;
|
||||
|
||||
@ApiModelProperty(value = "车身形式")
|
||||
private String bodyType;
|
||||
|
||||
@ApiModelProperty(value = "燃料类型")
|
||||
private String fuelType;
|
||||
|
||||
@ApiModelProperty(value = "发动机型号")
|
||||
private String engineType;
|
||||
|
||||
@ApiModelProperty(value = "变速器型式")
|
||||
private String transmissionType;
|
||||
|
||||
@ApiModelProperty(value = "变速器型号")
|
||||
private String transmissionModel;
|
||||
|
||||
@ApiModelProperty(value = "发动机排量(L)")
|
||||
private String engineCapacity;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机型号")
|
||||
private String driveMotorModel;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机峰值功率(kw)")
|
||||
private String driveMotorPeakPower;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机额定功率(kw)")
|
||||
private String driveMotorRatedPower;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机类型")
|
||||
private String driveMotorType;
|
||||
|
||||
@ApiModelProperty(value = "动力电池型号")
|
||||
private String powerBatteryModel;
|
||||
|
||||
@ApiModelProperty(value = "电池类型")
|
||||
private String batteryType;
|
||||
|
||||
@ApiModelProperty(value = "混合方式")
|
||||
private String mixedModel;
|
||||
|
||||
@ApiModelProperty(value = "动力电池组标称电压")
|
||||
private String powerBatteryVoltage;
|
||||
|
||||
@ApiModelProperty(value = "动力电池组总成标称容量")
|
||||
private String powerBatteryVolume;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机的布置位置")
|
||||
private String driveMotorPlace;
|
||||
|
||||
@ApiModelProperty(value = "排放水平")
|
||||
private String emissionLevel;
|
||||
|
||||
@ApiModelProperty(value = "油耗阶段")
|
||||
private String fuelConsumptionStage;
|
||||
|
||||
@ApiModelProperty(value = "前排正面气囊")
|
||||
private String frontFrontAirbag;
|
||||
|
||||
@ApiModelProperty(value = "前排座椅侧气囊")
|
||||
private String frontSeatSideAirbags;
|
||||
|
||||
}
|
||||
+27
-2
@@ -3,15 +3,40 @@ package com.jero.modules.laws.businessSupport.common;
|
||||
public interface Constant {
|
||||
|
||||
/**
|
||||
* 整车型号及vin前八位库-状态:现行
|
||||
* 国内整车型号及vin前八位库-燃料类型:传统燃油
|
||||
*/
|
||||
String FUEL_OIL = "1";
|
||||
|
||||
/**
|
||||
* 国内整车型号及vin前八位库-燃料类型:混合动力
|
||||
*/
|
||||
String HYBRID_POWER = "2";
|
||||
|
||||
/**
|
||||
* 国内整车型号及vin前八位库-燃料类型:纯电动
|
||||
*/
|
||||
String PURE_ELECTRIC = "3";
|
||||
|
||||
/**
|
||||
* 整车型号及vin前八位库-状态:生效
|
||||
*/
|
||||
String TAKE_EFFECT = "1";
|
||||
|
||||
/**
|
||||
* 整车型号及vin前八位库-状态:废弃
|
||||
* 整车型号及vin前八位库-状态:作废
|
||||
*/
|
||||
String ABOLISH = "2";
|
||||
|
||||
/**
|
||||
* 整车型号及vin前八位库-流程未完成
|
||||
*/
|
||||
String NOT_FINISH = "0";
|
||||
|
||||
/**
|
||||
* 整车型号及vin前八位库-流程已完成
|
||||
*/
|
||||
String IS_FINISH = "1";
|
||||
|
||||
/**
|
||||
* 法规释疑库-发布状态:未发布
|
||||
*/
|
||||
|
||||
+4
-25
@@ -67,12 +67,15 @@ public class LawsVehicleDomesticLibrary implements Serializable {
|
||||
@ApiModelProperty(value = "法规工程师")
|
||||
private String regulatoryEngineer;
|
||||
|
||||
@ApiModelProperty(value = "状态")
|
||||
@ApiModelProperty(value = "状态 1-生效 2-作废")
|
||||
private String state;
|
||||
|
||||
@ApiModelProperty(value = "逻辑删除")
|
||||
private Integer delFlag;
|
||||
|
||||
@ApiModelProperty(value = "流程是否完成 0-未完成 1-已完成")
|
||||
private String isFinish;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@@ -97,28 +100,4 @@ public class LawsVehicleDomesticLibrary implements Serializable {
|
||||
@ApiModelProperty(value = "子表数据")
|
||||
private LawsVehicleDomesticLibrarySublist lawsVehicleDomesticLibrarySublist;
|
||||
|
||||
@ApiModelProperty(value = "发动机型号")
|
||||
private String engineType;
|
||||
|
||||
@ApiModelProperty(value = "变速器型式")
|
||||
private String transmissionType;
|
||||
|
||||
@ApiModelProperty(value = "变速器型号")
|
||||
private String transmissionModel;
|
||||
|
||||
@ApiModelProperty(value = "发动机排量(L)")
|
||||
private String engineCapacity;
|
||||
|
||||
@ApiModelProperty(value = "排放水平")
|
||||
private String emissionLevel;
|
||||
|
||||
@ApiModelProperty(value = "油耗阶段")
|
||||
private String fuelConsumptionStage;
|
||||
|
||||
@ApiModelProperty(value = "前排正面气囊")
|
||||
private String frontFrontAirbag;
|
||||
|
||||
@ApiModelProperty(value = "前排座椅侧气囊")
|
||||
private String frontSeatSideAirbags;
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:activiti="http://activiti.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.activiti.org/processdef">
|
||||
<process id="domestic_vehicle_control_publish" name="国内整车型号和VIN前八位管控流程" isExecutable="true">
|
||||
<documentation>国内整车型号和VIN前八位管控流程</documentation>
|
||||
<startEvent id="sid-7fc1abd4-9818-45fe-ac03-52f7deebe198"/>
|
||||
<userTask id="sid-8605d400-fb36-48db-8249-be0fd4eab8ff" name="发起人发起" activiti:assignee="${importStartUser}"/>
|
||||
<exclusiveGateway id="sid-ee3b5f18-fd95-4037-af61-a5055283cfa6"/>
|
||||
<userTask id="sid-c9b1b2a7-a883-468a-aecf-47e86b400b4a" name="起草部门经理审批" activiti:assignee="${checkUserLeader1}"/>
|
||||
<exclusiveGateway id="sid-879f73b8-1ad7-4ae3-a43a-2dacea4a0fa7"/>
|
||||
<userTask id="sid-e2712d42-ea23-4ac5-aa40-cd356a092276" name="项目经理审批 " activiti:assignee="${checkUserLeader2}">
|
||||
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="checkUserLeader2List" activiti:elementVariable="checkUserLeader2">
|
||||
<completionCondition>${!pass}</completionCondition>
|
||||
</multiInstanceLoopCharacteristics>
|
||||
</userTask>
|
||||
<userTask id="sid-a70444e4-f061-4fd4-82ec-0ea77b6a9584" name="法规部门处理人审批 " activiti:assignee="${checkUserLeader3}"/>
|
||||
<exclusiveGateway id="sid-b8e7efdd-31d3-4fee-8585-8489260ba0c9"/>
|
||||
<userTask id="sid-8683ed8e-3fa4-415f-92c3-c3a591c59528" name="法规部门经理审批 " activiti:assignee="${checkUserLeader4}"/>
|
||||
<exclusiveGateway id="sid-f7bfdc25-c5f2-4604-8e7a-b812a1890b04"/>
|
||||
<sequenceFlow id="sid-3a28372b-6cdf-4d82-971b-aab55aa185f4" sourceRef="sid-7fc1abd4-9818-45fe-ac03-52f7deebe198" targetRef="sid-8605d400-fb36-48db-8249-be0fd4eab8ff"/>
|
||||
<sequenceFlow id="sid-4a0f31fb-1119-4fa9-af29-f3cef2d5b863" sourceRef="sid-8605d400-fb36-48db-8249-be0fd4eab8ff" targetRef="sid-ee3b5f18-fd95-4037-af61-a5055283cfa6"/>
|
||||
<sequenceFlow id="sid-5190baa6-efdb-4376-9d96-acda5d39e734" sourceRef="sid-ee3b5f18-fd95-4037-af61-a5055283cfa6" targetRef="sid-c9b1b2a7-a883-468a-aecf-47e86b400b4a">
|
||||
<conditionExpression xsi:type="tFormalExpression"/>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-5b56a0e6-44b0-48d1-a4d9-74a1e3be017b" sourceRef="sid-c9b1b2a7-a883-468a-aecf-47e86b400b4a" targetRef="sid-f7bfdc25-c5f2-4604-8e7a-b812a1890b04">
|
||||
<conditionExpression/>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-42db14bf-ccb0-4fee-958d-d3401b693cdc" sourceRef="sid-f7bfdc25-c5f2-4604-8e7a-b812a1890b04" targetRef="sid-e2712d42-ea23-4ac5-aa40-cd356a092276" name="通过">
|
||||
<conditionExpression xsi:type="tFormalExpression">${pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-59da8e1f-c1c1-4c9a-ac6b-03fa05052dbf" sourceRef="sid-e2712d42-ea23-4ac5-aa40-cd356a092276" targetRef="sid-879f73b8-1ad7-4ae3-a43a-2dacea4a0fa7">
|
||||
<conditionExpression/>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-a11e99b0-28e9-4f86-bb9b-62b34a2cacfa" sourceRef="sid-879f73b8-1ad7-4ae3-a43a-2dacea4a0fa7" targetRef="sid-a70444e4-f061-4fd4-82ec-0ea77b6a9584" name="通过">
|
||||
<conditionExpression xsi:type="tFormalExpression">${pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-f0492ae4-c40d-45a3-b2de-ee04982c669e" sourceRef="sid-a70444e4-f061-4fd4-82ec-0ea77b6a9584" targetRef="sid-b8e7efdd-31d3-4fee-8585-8489260ba0c9">
|
||||
<conditionExpression/>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-bc36e9c9-27f2-464d-a748-587161b505ae" sourceRef="sid-b8e7efdd-31d3-4fee-8585-8489260ba0c9" targetRef="sid-8683ed8e-3fa4-415f-92c3-c3a591c59528" name="通过">
|
||||
<conditionExpression xsi:type="tFormalExpression">${pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<exclusiveGateway id="sid-8be4e2c2-89d6-4ae3-8e32-11469f8a488a"/>
|
||||
<endEvent id="sid-fca19eca-d725-4791-91d2-3dca22631c67">
|
||||
<extensionElements>
|
||||
<activiti:executionListener event="end" delegateExpression="${ProcessDomesticVehicleEndListener}"/>
|
||||
</extensionElements>
|
||||
</endEvent>
|
||||
<sequenceFlow id="sid-872db765-c1d8-476d-89fc-8ce10e960fa2" sourceRef="sid-8683ed8e-3fa4-415f-92c3-c3a591c59528" targetRef="sid-8be4e2c2-89d6-4ae3-8e32-11469f8a488a"/>
|
||||
<sequenceFlow id="sid-29c1c062-cfbb-41c3-ae46-e366ee0d0ea3" sourceRef="sid-8be4e2c2-89d6-4ae3-8e32-11469f8a488a" targetRef="sid-fca19eca-d725-4791-91d2-3dca22631c67" name="通过">
|
||||
<conditionExpression xsi:type="tFormalExpression">${pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-541ff5cf-a60a-460b-9fa9-fdf48062cb47" sourceRef="sid-f7bfdc25-c5f2-4604-8e7a-b812a1890b04" targetRef="sid-8605d400-fb36-48db-8249-be0fd4eab8ff" name="驳回">
|
||||
<conditionExpression xsi:type="tFormalExpression">${!pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-b041214e-f7fa-4b8c-80fb-58b4ea60eef7" sourceRef="sid-879f73b8-1ad7-4ae3-a43a-2dacea4a0fa7" targetRef="sid-8605d400-fb36-48db-8249-be0fd4eab8ff" name="驳回">
|
||||
<conditionExpression xsi:type="tFormalExpression">${!pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-cd9eebb7-ae8d-4d3d-96a7-e0c363211664" sourceRef="sid-b8e7efdd-31d3-4fee-8585-8489260ba0c9" targetRef="sid-8605d400-fb36-48db-8249-be0fd4eab8ff" name="驳回">
|
||||
<conditionExpression xsi:type="tFormalExpression">${!pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-aa1436d0-a664-4165-b559-987c080e85fb" sourceRef="sid-8be4e2c2-89d6-4ae3-8e32-11469f8a488a" targetRef="sid-8605d400-fb36-48db-8249-be0fd4eab8ff" name="驳回">
|
||||
<conditionExpression xsi:type="tFormalExpression">${!pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
</process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_domestic-vehicle">
|
||||
<bpmndi:BPMNPlane bpmnElement="domestic_vehicle_control_publish" id="BPMNPlane_domestic-vehicle">
|
||||
<bpmndi:BPMNShape id="shape-706a00ba-14c0-4cf7-af0e-1f2c835b32d0" bpmnElement="sid-7fc1abd4-9818-45fe-ac03-52f7deebe198">
|
||||
<omgdc:Bounds x="-320.0" y="-27.5" width="30.0" height="30.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-7eeb629e-b541-4d8b-9cf6-d8fb1da97953" bpmnElement="sid-8605d400-fb36-48db-8249-be0fd4eab8ff">
|
||||
<omgdc:Bounds x="-265.0" y="-35.000008" width="75.0" height="45.00001"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-b30170b1-c4c2-486b-8265-f078551e7d84" bpmnElement="sid-ee3b5f18-fd95-4037-af61-a5055283cfa6">
|
||||
<omgdc:Bounds x="-165.0" y="-32.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-09d87809-3a05-4ec2-ba2f-aa7a2ad4bdeb" bpmnElement="sid-c9b1b2a7-a883-468a-aecf-47e86b400b4a">
|
||||
<omgdc:Bounds x="-105.0" y="-35.0" width="80.0" height="45.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-71aebc70-3655-44ff-8870-3b7735df04d1" bpmnElement="sid-879f73b8-1ad7-4ae3-a43a-2dacea4a0fa7">
|
||||
<omgdc:Bounds x="165.0" y="-32.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-1e533537-8d0a-46f6-9135-9ce0ac1fb2d0" bpmnElement="sid-a70444e4-f061-4fd4-82ec-0ea77b6a9584">
|
||||
<omgdc:Bounds x="235.0" y="-35.0" width="75.0" height="45.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-2a877952-33fc-4580-b803-18d1fa384e48" bpmnElement="sid-b8e7efdd-31d3-4fee-8585-8489260ba0c9">
|
||||
<omgdc:Bounds x="330.0" y="-32.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-b9480e1d-6c3b-4578-9149-e406d9625454" bpmnElement="sid-8683ed8e-3fa4-415f-92c3-c3a591c59528">
|
||||
<omgdc:Bounds x="400.0" y="-35.0" width="75.0" height="45.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-43e4ea71-42a1-45d3-9d1f-cc94d5b99bfa" bpmnElement="sid-f7bfdc25-c5f2-4604-8e7a-b812a1890b04">
|
||||
<omgdc:Bounds x="0.0" y="-32.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-88308590-6d1d-4964-b009-ae64eb9d351a" bpmnElement="sid-e2712d42-ea23-4ac5-aa40-cd356a092276">
|
||||
<omgdc:Bounds x="67.5" y="-35.0" width="75.0" height="45.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="edge-bc516af6-2230-4138-bff3-eb4ce0478294" bpmnElement="sid-3a28372b-6cdf-4d82-971b-aab55aa185f4">
|
||||
<omgdi:waypoint x="-289.99997" y="-12.5"/>
|
||||
<omgdi:waypoint x="-265.0" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-07b379d8-9845-4a99-a709-38b39d2d04ab" bpmnElement="sid-4a0f31fb-1119-4fa9-af29-f3cef2d5b863">
|
||||
<omgdi:waypoint x="-190.0" y="-12.5"/>
|
||||
<omgdi:waypoint x="-165.0" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-24f98be5-1496-46c8-a62f-74bf0c08f801" bpmnElement="sid-5190baa6-efdb-4376-9d96-acda5d39e734">
|
||||
<omgdi:waypoint x="-125.0" y="-12.5"/>
|
||||
<omgdi:waypoint x="-105.0" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-bfd9900d-3d71-4fa1-b401-575e1f36c4b0" bpmnElement="sid-5b56a0e6-44b0-48d1-a4d9-74a1e3be017b">
|
||||
<omgdi:waypoint x="-25.0" y="-12.5"/>
|
||||
<omgdi:waypoint x="0.0" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-2ed09466-6d85-4968-8fcb-2b2a1c1659b6" bpmnElement="sid-42db14bf-ccb0-4fee-958d-d3401b693cdc">
|
||||
<omgdi:waypoint x="40.0" y="-12.5"/>
|
||||
<omgdi:waypoint x="67.5" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-7aae95e5-4e50-48aa-8335-ef43e468c384" bpmnElement="sid-59da8e1f-c1c1-4c9a-ac6b-03fa05052dbf">
|
||||
<omgdi:waypoint x="142.5" y="-12.5"/>
|
||||
<omgdi:waypoint x="165.0" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-6ad3fc2c-05d0-401c-8feb-a3a42c5f75e8" bpmnElement="sid-a11e99b0-28e9-4f86-bb9b-62b34a2cacfa">
|
||||
<omgdi:waypoint x="205.0" y="-12.5"/>
|
||||
<omgdi:waypoint x="235.0" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-c082fec3-8097-4f34-933f-c6a6f0ffde2f" bpmnElement="sid-f0492ae4-c40d-45a3-b2de-ee04982c669e">
|
||||
<omgdi:waypoint x="310.0" y="-12.5"/>
|
||||
<omgdi:waypoint x="330.0" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-9c0fbdd0-bf07-409b-ba52-7501bb2c9b70" bpmnElement="sid-bc36e9c9-27f2-464d-a748-587161b505ae">
|
||||
<omgdi:waypoint x="370.0" y="-12.5"/>
|
||||
<omgdi:waypoint x="400.0" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape id="shape-932edc76-a405-43ea-8031-b628a8ef72b0" bpmnElement="sid-8be4e2c2-89d6-4ae3-8e32-11469f8a488a">
|
||||
<omgdc:Bounds x="495.0" y="-32.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-52ebaee7-e8ad-4656-8c63-ee203db1a235" bpmnElement="sid-fca19eca-d725-4791-91d2-3dca22631c67">
|
||||
<omgdc:Bounds x="570.0" y="-27.5" width="30.0" height="30.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="edge-9fb168cf-54f0-4ed1-a111-dff339566dc1" bpmnElement="sid-872db765-c1d8-476d-89fc-8ce10e960fa2">
|
||||
<omgdi:waypoint x="475.0" y="-12.5"/>
|
||||
<omgdi:waypoint x="495.0" y="-12.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-18b74d0d-362b-4898-9859-1ff66367e7d0" bpmnElement="sid-29c1c062-cfbb-41c3-ae46-e366ee0d0ea3">
|
||||
<omgdi:waypoint x="535.0" y="-12.5"/>
|
||||
<omgdi:waypoint x="570.0" y="-12.499998"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-63d0a3e3-567f-441b-a222-5f66a21b5de1" bpmnElement="sid-541ff5cf-a60a-460b-9fa9-fdf48062cb47">
|
||||
<omgdi:waypoint x="20.0" y="7.5"/>
|
||||
<omgdi:waypoint x="20.0" y="43.75"/>
|
||||
<omgdi:waypoint x="-227.5" y="43.75"/>
|
||||
<omgdi:waypoint x="-227.5" y="10.000008"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-d565573a-7d98-4568-acbe-1b644816824b" bpmnElement="sid-b041214e-f7fa-4b8c-80fb-58b4ea60eef7">
|
||||
<omgdi:waypoint x="185.0" y="7.5"/>
|
||||
<omgdi:waypoint x="185.0" y="43.75"/>
|
||||
<omgdi:waypoint x="-227.5" y="43.749992"/>
|
||||
<omgdi:waypoint x="-227.49997" y="10.000004"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-d01e2557-105c-4ca0-95dd-1565c8aa5cf7" bpmnElement="sid-cd9eebb7-ae8d-4d3d-96a7-e0c363211664">
|
||||
<omgdi:waypoint x="350.0" y="7.5"/>
|
||||
<omgdi:waypoint x="350.00003" y="43.750008"/>
|
||||
<omgdi:waypoint x="-227.5" y="43.75"/>
|
||||
<omgdi:waypoint x="-227.5" y="10.000008"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-8a94ed6b-9404-4929-b8ea-d33adb314f86" bpmnElement="sid-aa1436d0-a664-4165-b559-987c080e85fb">
|
||||
<omgdi:waypoint x="515.0" y="7.5"/>
|
||||
<omgdi:waypoint x="515.00006" y="43.750004"/>
|
||||
<omgdi:waypoint x="-227.5" y="43.75"/>
|
||||
<omgdi:waypoint x="-227.49997" y="10.000004"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</definitions>
|
||||
Reference in New Issue
Block a user