add:新增国际整车型号管控库和流程相关代码
This commit is contained in:
@@ -20,6 +20,7 @@ public enum ProcessTypeEnum {
|
||||
ANNUAL_INIT("企业标准年度制修订计划流程", 7, "com.jero.modules.activiti.process.annualinit.service.ProcessAnnualInitService","/workCenter/ESAnnualRevisionPlanProcess","/workCenter/ESAnnualRevisionPlanProcess"),
|
||||
DOMESTIC_VEHICLE_CONTROL_PUBLISH("国内整车型号和VIN前八位管控流程", 8, "com.jero.modules.activiti.process.vehicledomestic.service.impl.ProcessVehicleDomesticReleaseServiceImpl","/workCenter/VehicleDomesticReleaseProcess","/workCenter/VehicleDomesticReleaseProcess"),
|
||||
PLAN_CHANGE("企业标准计划变更流程", 9, "com.jero.modules.activiti.process.planchange.service.ProcessPlanChangeService","/workCenter/enterpriseStandardRevision/enterpriseStandardRevisionFlow","/workCenter/enterpriseStandardRevision"),
|
||||
INTERNATIONAL_VEHICLE_CONTROL_PUBLISH("国际整车型号和VIN前八位管控流程", 10, "com.jero.modules.activiti.process.vehicleinternational.service.impl.ProcessVehicleDomesticReleaseServiceImpl","/workCenter/VehicleInternationalReleaseProcess","/workCenter/VehicleInternationalReleaseProcess")
|
||||
;
|
||||
|
||||
private final String name;
|
||||
|
||||
+1
@@ -20,6 +20,7 @@ public enum ProcessType {
|
||||
ANNUAL_INIT("企业标准年度制修订计划流程", "7", "process-annual-init", "ProcessAnnualInitService"),
|
||||
DOMESTIC_VEHICLE_CONTROL_PUBLISH("国内整车型号和VIN前八位管控流程", "8", "domestic_vehicle_control_publish", "ProcessVehicleDomesticReleaseServiceImpl"),
|
||||
PLAN_CHANGE("企业标准计划变更流程", "9", "process-plan-change", "ProcessPlanChangeService"),
|
||||
INTERNATIONAL_VEHICLE_CONTROL_PUBLISH("国际整车型号和VIN前八位管控流程", "10", "international_vehicle_control_publish", "ProcessVehicleInternationalReleaseServiceImpl")
|
||||
;
|
||||
|
||||
private final String name;
|
||||
|
||||
+2
@@ -1,5 +1,7 @@
|
||||
package com.jero.modules.activiti.process.planchange.service;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.modules.activiti.process.planchange.entity.ProcessPlanChangeLink;
|
||||
import com.jero.modules.activiti.process.planchange.mapper.ProcessPlanChangeLinkMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
+2
-1
@@ -321,7 +321,7 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl<Proces
|
||||
LawsVehicleDomesticLibrary lawsVehicleDomesticLibrary = lawsVehicleDomesticLibraryService.getOne(lambdaQueryWrapper, false);
|
||||
if (!Objects.isNull(lawsVehicleDomesticLibrary)) {
|
||||
String msg = (Objects.equals(LocaleContextHolder.getLocale(), Locale.ENGLISH) ?
|
||||
"The vehicleModel is already exist" : "该整车型号已存在");
|
||||
"The vehicleModel:" + jsonObject.getString("vehicleModel") + "is already exist" : "整车型:" + jsonObject.getString("vehicleModel") +"号已存在");
|
||||
Result<String> result = new Result<>();
|
||||
result.setMessage(msg);
|
||||
result.setSuccess(false); // 前端根据success判断是否通过验证
|
||||
@@ -366,6 +366,7 @@ public class ProcessVehicleDomesticReleaseServiceImpl extends ServiceImpl<Proces
|
||||
queryWrapper.eq(LawsVehicleDomesticLibrarySublist::getVehicleId, processVehicleDomesticRelease.getVehicleId());
|
||||
LawsVehicleDomesticLibrarySublist lawsVehicleDomesticLibrarySublist = lawsVehicleDomesticLibrarySublistService.getOne(queryWrapper);
|
||||
BeanUtils.copyProperties(lawsVehicleDomesticLibrarySublist, processVehicleDomesticReleaseVo);
|
||||
processVehicleDomesticReleaseVo.setId(processVehicleDomesticRelease.getId());
|
||||
result.setBusinessInfoDTO(processVehicleDomesticReleaseVo);
|
||||
return result;
|
||||
}
|
||||
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
package com.jero.modules.activiti.process.vehicleinterntional.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
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.vehicleinterntional.service.IProcessVehicleInternationalReleaseService;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.vo.ProcessVehicleInternationalReleaseVo;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
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;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号和VIN前八位管控流程 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/process/vehicle/international")
|
||||
public class ProcessVehicleInternationalReleaseController {
|
||||
|
||||
@Resource
|
||||
private IProcessVehicleInternationalReleaseService processVehicleInternationalReleaseService;
|
||||
@Resource
|
||||
private ActFlowCommonService actFlowCommonService;
|
||||
|
||||
@AutoLog(value = "国际整车型号和VIN前八位管控流程-导出模板")
|
||||
@ApiOperation(value="国际整车型号和VIN前八位管控流程-导出模板", notes="国际整车型号和VIN前八位管控流程-导出模板")
|
||||
@GetMapping(value = "/exportTemplate")
|
||||
public ModelAndView exportTemplate(HttpServletRequest request) {
|
||||
return processVehicleInternationalReleaseService.exportTemplate(request);
|
||||
}
|
||||
|
||||
@AutoLog(value = "国际整车型号和VIN前八位管控流程-导入")
|
||||
@ApiOperation(value="国际整车型号和VIN前八位管控流程-导入", notes="国际整车型号和VIN前八位管控流程-导入")
|
||||
@PostMapping(value = "/importExcel")
|
||||
public Result<?> excelimport(HttpServletRequest request) {
|
||||
return processVehicleInternationalReleaseService.importExcel(request);
|
||||
}
|
||||
|
||||
@AutoLog(value = "国际整车型号和VIN前八位管控流程-发起流程")
|
||||
@ApiOperation(value = "国际整车型号和VIN前八位管控流程-发起流程", notes = "国际整车型号和VIN前八位管控流程-发起流程")
|
||||
@PostMapping(value = "/start")
|
||||
public Result<T> startProcess(@Validated @RequestBody ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO) {
|
||||
processVehicleInternationalReleaseService.startProcess(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "国际整车型号和VIN前八位管控流程-同意")
|
||||
@ApiOperation(value = "国际整车型号和VIN前八位管控流程-同意", notes = "国际整车型号和VIN前八位管控流程-同意")
|
||||
@PostMapping("/agree")
|
||||
public Result<T> agree(@Validated @RequestBody ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO) {
|
||||
processVehicleInternationalReleaseService.approveTask(processInfoVO, true);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "国际整车型号和VIN前八位管控流程-驳回")
|
||||
@ApiOperation(value = "国际整车型号和VIN前八位管控流程-驳回", notes = "国际整车型号和VIN前八位管控流程-驳回")
|
||||
@PostMapping("/reject")
|
||||
public Result<T> reject(@Validated @RequestBody ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO) {
|
||||
processVehicleInternationalReleaseService.approveTask(processInfoVO, false);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "国际整车型号和VIN前八位管控流程-提交")
|
||||
@ApiOperation(value = "国际整车型号和VIN前八位管控流程-提交", notes = "国际整车型号和VIN前八位管控流程-提交")
|
||||
@PostMapping("/submit")
|
||||
public Result<T> submit(@Validated @RequestBody ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO) {
|
||||
processVehicleInternationalReleaseService.submit(processInfoVO);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@AutoLog(value = "国际整车型号和VIN前八位管控流程-校验整车型号")
|
||||
@ApiOperation(value = "国际整车型号和VIN前八位管控流程-校验整车型号", notes = "国际整车型号和VIN前八位管控流程-校验整车型号")
|
||||
@PostMapping("/checkVehicleModel")
|
||||
public Result<String> checkVehicleModel(@RequestBody JSONObject jsonObject) {
|
||||
return processVehicleInternationalReleaseService.checkVehicleModel(jsonObject);
|
||||
}
|
||||
|
||||
@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(processVehicleInternationalReleaseService.getHandleData(taskId));
|
||||
}
|
||||
|
||||
}
|
||||
+61
@@ -0,0 +1,61 @@
|
||||
package com.jero.modules.activiti.process.vehicleinterntional.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 io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号和VIN前八位管控流程
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("process_vehicle_international_release")
|
||||
@ApiModel(value="ProcessVehicleInternationalRelease对象", description="国际整车型号和VIN前八位管控流程")
|
||||
public class ProcessVehicleInternationalRelease implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "主键ID")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "流程实例Id")
|
||||
private String processInstanceId;
|
||||
|
||||
@ApiModelProperty(value = "整车型号id")
|
||||
private String vehicleId;
|
||||
|
||||
@ApiModelProperty(value = "抄送人")
|
||||
private String copyUser;
|
||||
|
||||
@ApiModelProperty(value = "0表示未删除,1表示删除")
|
||||
private Integer delFlag;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@ApiModelProperty(value = "更新人")
|
||||
private String updateBy;
|
||||
|
||||
@ApiModelProperty(value = "更新时间")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
|
||||
}
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
package com.jero.modules.activiti.process.vehicleinterntional.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.activiti.process.vehicleinterntional.entity.ProcessVehicleInternationalRelease;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.service.IProcessVehicleInternationalReleaseService;
|
||||
import com.jero.modules.laws.businessSupport.common.Constant;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleDomesticLibrary;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrary;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleDomesticLibraryService;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibraryService;
|
||||
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("ProcessInternationalVehicleEndListener")
|
||||
public class ProcessInternationalVehicleEndListener implements ExecutionListener, Serializable {
|
||||
|
||||
@Resource
|
||||
private IProcessVehicleInternationalReleaseService processVehicleInternationalReleaseService;
|
||||
@Resource
|
||||
private ILawsVehicleInternationalLibraryService lawsVehicleInternationalLibraryService;
|
||||
@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();
|
||||
// 更新业务主表的字段
|
||||
ProcessVehicleInternationalRelease processVehicleInternationalRelease = processVehicleInternationalReleaseService.getOne(new LambdaQueryWrapper<ProcessVehicleInternationalRelease>().eq(ProcessVehicleInternationalRelease::getProcessInstanceId, processInstanceId), false);
|
||||
LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary = lawsVehicleInternationalLibraryService.getById(processVehicleInternationalRelease.getVehicleId());
|
||||
lawsVehicleInternationalLibrary.setFinishDate(new Date()); // 完成日期
|
||||
lawsVehicleInternationalLibrary.setIsFinish(Constant.IS_FINISH); // 是否完成流程
|
||||
lawsVehicleInternationalLibrary.setState(Constant.TAKE_EFFECT); // 状态
|
||||
lawsVehicleInternationalLibraryService.updateById(lawsVehicleInternationalLibrary);
|
||||
// 给抄送人发送消息
|
||||
String processDefinitionKey = ProcessType.NEW_STANDARD_IMPORT.getProcessKey();
|
||||
// 发送消息
|
||||
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
||||
sendMessageDTO.setTemplateCode(processDefinitionKey);
|
||||
sendMessageDTO.setToUserId(processVehicleInternationalRelease.getCopyUser());
|
||||
LambdaQueryWrapper<SysUser> querySysUser = new LambdaQueryWrapper<>();
|
||||
querySysUser.eq(SysUser::getUsername,processVehicleInternationalRelease.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前八位管控流程:监听执行器执行结束");
|
||||
}
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.jero.modules.activiti.process.vehicleinterntional.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.entity.ProcessVehicleInternationalRelease;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号和VIN前八位管控流程 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
public interface ProcessVehicleInternationalReleaseMapper extends BaseMapper<ProcessVehicleInternationalRelease> {
|
||||
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.activiti.process.vehicleinterntional.mapper.ProcessVehicleInternationalReleaseMapper">
|
||||
|
||||
</mapper>
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
package com.jero.modules.activiti.process.vehicleinterntional.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
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.vehicleinterntional.entity.ProcessVehicleInternationalRelease;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.vo.ProcessVehicleInternationalReleaseVo;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号和VIN前八位管控流程 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
public interface IProcessVehicleInternationalReleaseService extends IService<ProcessVehicleInternationalRelease> {
|
||||
|
||||
ModelAndView exportTemplate(HttpServletRequest request);
|
||||
|
||||
Result<?> importExcel(HttpServletRequest request);
|
||||
|
||||
void startProcess(ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO);
|
||||
|
||||
void approveTask(ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO, boolean pass);
|
||||
|
||||
void submit(ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO);
|
||||
|
||||
Result<String> checkVehicleModel(JSONObject jsonObject);
|
||||
|
||||
ProcessInfoVO<ProcessVehicleInternationalReleaseVo> getHandleData(String taskId);
|
||||
}
|
||||
+596
@@ -0,0 +1,596 @@
|
||||
package com.jero.modules.activiti.process.vehicleinterntional.service.impl;
|
||||
|
||||
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.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.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.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.vehicleinterntional.entity.ProcessVehicleInternationalRelease;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.mapper.ProcessVehicleInternationalReleaseMapper;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.service.IProcessVehicleInternationalReleaseService;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.vo.ProcessVehicleInternationalReleaseVo;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.vo.excel.ProcessVehicleInternationalExcelVo;
|
||||
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.LawsVehicleInternationalLibrary;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrarySublist;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibraryService;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibrarySublistService;
|
||||
import com.jero.modules.sys.utils.UserUtils;
|
||||
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;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.entity.ImportParams;
|
||||
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.context.i18n.LocaleContextHolder;
|
||||
import org.springframework.stereotype.Service;
|
||||
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.*;
|
||||
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号和VIN前八位管控流程 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
@Service
|
||||
public class ProcessVehicleInternationalReleaseServiceImpl extends ServiceImpl<ProcessVehicleInternationalReleaseMapper, ProcessVehicleInternationalRelease> implements IProcessVehicleInternationalReleaseService {
|
||||
|
||||
@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 ILawsVehicleInternationalLibraryService lawsVehicleInternationalLibraryService;
|
||||
@Resource
|
||||
private ILawsVehicleInternationalLibrarySublistService lawsVehicleInternationalLibrarySublistService;
|
||||
|
||||
private static final String NEWLINE_CHARACTER = "</br>";
|
||||
|
||||
@Override
|
||||
public ModelAndView exportTemplate(HttpServletRequest request) {
|
||||
// AutoPoi 导出Excel
|
||||
ModelAndView modelAndView = new ModelAndView(new JeecgEntityExcelView());
|
||||
// 设置文件名
|
||||
modelAndView.addObject(JeroController.FILE_NAME, "国际整车型号及VIN前八位统计表.xls");
|
||||
modelAndView.addObject(JeroController.CLASS, ProcessVehicleInternationalExcelVo.class);
|
||||
List<ProcessVehicleInternationalExcelVo> excelList = new ArrayList<>();
|
||||
// 设置导出参数
|
||||
ExportParams exportParams = new ExportParams(null, "国内");
|
||||
exportParams.setType(ExcelType.HSSF);
|
||||
modelAndView.addObject(JeroController.PARAMS, exportParams);
|
||||
// 将数据列表传递给 NormalExcelConstants.DATA_LIST
|
||||
modelAndView.addObject(NormalExcelConstants.DATA_LIST, excelList);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<?> importExcel(HttpServletRequest request) {
|
||||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||
Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
|
||||
List<ProcessVehicleInternationalExcelVo> excelList = new ArrayList<>();
|
||||
for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
|
||||
MultipartFile file = entity.getValue();// 获取上传文件对象
|
||||
// 校验表头
|
||||
excelHeadVerify(ProcessVehicleInternationalExcelVo.class, file);
|
||||
try {
|
||||
ImportParams params = new ImportParams();
|
||||
params.setNeedSave(true);
|
||||
params.setHeadRows(1);
|
||||
excelList = ExcelImportUtil.importExcel(file.getInputStream(), ProcessVehicleInternationalExcelVo.class, params);
|
||||
if (CollectionUtils.isEmpty(excelList)) {
|
||||
throw new JeroBootException("没有数据可导入");
|
||||
}
|
||||
if (excelList.size() > 1) {
|
||||
throw new JeroBootException("一次只能导入一条数据");
|
||||
}
|
||||
// 校验数据
|
||||
StringBuilder msg = validatorExcel(excelList);
|
||||
if (StringUtils.isNotEmpty(msg.toString())) {
|
||||
return Result.error(msg.toString());
|
||||
}
|
||||
}catch (Exception e) {
|
||||
log.error(e.getMessage(),e);
|
||||
return Result.error("文件导入失败:"+e.getMessage());
|
||||
} finally {
|
||||
try {
|
||||
file.getInputStream().close();
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
return Result.OK(excelList.get(0));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void startProcess(ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO) {
|
||||
// 流程Key
|
||||
String processDefinitionKey = ProcessType.INTERNATIONAL_VEHICLE_CONTROL_PUBLISH.getProcessKey();
|
||||
// 流程信息
|
||||
BasicProcessInfoDTO processInfo = processInfoVO.getBasicProcessInfoDTO();
|
||||
// 任务信息
|
||||
BasicTaskInfoDTO processTask = processInfoVO.getBasicTaskInfoDTO();
|
||||
// 人员信息
|
||||
Map<String, Object> userInfoMap = processInfoVO.getUserInfoMap();
|
||||
// 业务数据
|
||||
ProcessVehicleInternationalReleaseVo 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.INTERNATIONAL_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<ProcessVehicleInternationalReleaseVo> 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<ProcessVehicleInternationalReleaseVo> 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);
|
||||
// 发起节点 更新业务数据
|
||||
updateNodeBusProcess(processInfoVO, processInstanceId);
|
||||
// 更新审批表为完成,填充数据
|
||||
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 Result<String> checkVehicleModel(JSONObject jsonObject) {
|
||||
if (Objects.isNull(jsonObject)) {
|
||||
throw new JeroBootException(ResultCommon.EMPTY_COMMON, "vehicleModel");
|
||||
}
|
||||
String vehicleType = jsonObject.getString("vehicleType"); // 车辆形式
|
||||
String variant = jsonObject.getString("variant"); // 变型
|
||||
String version = jsonObject.getString("version"); // 改型
|
||||
String vehicleModel = vehicleType + " " + variant + " " + version;
|
||||
LambdaQueryWrapper<LawsVehicleInternationalLibrary> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(LawsVehicleInternationalLibrary::getIsFinish, Constant.IS_FINISH);
|
||||
lambdaQueryWrapper.eq(LawsVehicleInternationalLibrary::getVehicleModel, vehicleModel);
|
||||
LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary = lawsVehicleInternationalLibraryService.getOne(lambdaQueryWrapper, false);
|
||||
if (!Objects.isNull(lawsVehicleInternationalLibrary)) {
|
||||
String msg = (Objects.equals(LocaleContextHolder.getLocale(), Locale.ENGLISH) ?
|
||||
"The vehicleModel: " + vehicleModel + "is already exist" : "整车型号:" + vehicleModel + "已存在");
|
||||
Result<String> result = new Result<>();
|
||||
result.setMessage(msg);
|
||||
result.setSuccess(false); // 前端根据success判断是否通过验证
|
||||
return result;
|
||||
}else {
|
||||
return Result.OK();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ProcessInfoVO<ProcessVehicleInternationalReleaseVo> getHandleData(String taskId) {
|
||||
if (!actFlowCommonService.taskExists(taskId)) {
|
||||
throw new JeroBootException("任务不存在");
|
||||
}
|
||||
ProcessInfoVO<ProcessVehicleInternationalReleaseVo> 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);
|
||||
}
|
||||
// 获取流程实例数据
|
||||
ProcessVehicleInternationalReleaseVo processVehicleInternationalReleaseVo = new ProcessVehicleInternationalReleaseVo();
|
||||
// 流程表
|
||||
LambdaQueryWrapper<ProcessVehicleInternationalRelease> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(ProcessVehicleInternationalRelease::getProcessInstanceId, processInstanceId);
|
||||
ProcessVehicleInternationalRelease processVehicleInternationalRelease = getOne(lambdaQueryWrapper,false);
|
||||
BeanUtils.copyProperties(processVehicleInternationalRelease, processVehicleInternationalReleaseVo);
|
||||
// 业务主表
|
||||
LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary = lawsVehicleInternationalLibraryService.getById(processVehicleInternationalRelease.getVehicleId());
|
||||
BeanUtils.copyProperties(lawsVehicleInternationalLibrary, processVehicleInternationalReleaseVo);
|
||||
// 业务子表
|
||||
LambdaQueryWrapper<LawsVehicleInternationalLibrarySublist> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(LawsVehicleInternationalLibrarySublist::getVehicleId, processVehicleInternationalRelease.getVehicleId());
|
||||
LawsVehicleInternationalLibrarySublist lawsVehicleInternationalLibrarySublist = lawsVehicleInternationalLibrarySublistService.getOne(queryWrapper);
|
||||
BeanUtils.copyProperties(lawsVehicleInternationalLibrarySublist, processVehicleInternationalReleaseVo);
|
||||
processVehicleInternationalReleaseVo.setId(processVehicleInternationalRelease.getId());
|
||||
result.setBusinessInfoDTO(processVehicleInternationalReleaseVo);
|
||||
return result;
|
||||
}
|
||||
|
||||
private void updateNodeBusProcess(ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO, String processInstanceId) {
|
||||
ProcessVehicleInternationalReleaseVo businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
ProcessVehicleInternationalRelease processVehicleInternationalRelease = getOne(new LambdaQueryWrapper<ProcessVehicleInternationalRelease>().eq(ProcessVehicleInternationalRelease::getProcessInstanceId, processInstanceId), false);
|
||||
String vehicleId = processVehicleInternationalRelease.getVehicleId();
|
||||
// 更新数据到 流程表
|
||||
ProcessVehicleInternationalRelease newProcessVehicleInternationalRelease = new ProcessVehicleInternationalRelease();
|
||||
BeanUtils.copyProperties(businessInfoDTO, newProcessVehicleInternationalRelease);
|
||||
newProcessVehicleInternationalRelease.setId(processVehicleInternationalRelease.getId());
|
||||
this.updateById(newProcessVehicleInternationalRelease);
|
||||
// 更新数据到 业务主表
|
||||
LambdaUpdateWrapper<LawsVehicleInternationalLibrary> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
lambdaUpdateWrapper.eq(LawsVehicleInternationalLibrary::getId, vehicleId); // id
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getIsFinish, Constant.NOT_FINISH); // 是否完成流程
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getApplicant, UserUtils.getUserId()); // 申请人
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getRemark, businessInfoDTO.getRemark()); // 备注
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getVehicleModel, null); // 整车型号
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getVehicleType, null); // 车辆型式
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getVariant, null); // 变型
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getVersion, null); // 改型
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getVinTopEight, null); // vin前八位
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getVehicleBasis, null); // 整车型号编制依据
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getVinBasis, null); // vin编制依据
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getRegulatoryEngineer, null); // 法规工程师
|
||||
lawsVehicleInternationalLibraryService.update(lambdaUpdateWrapper);
|
||||
// 更新数据到 业务子表
|
||||
LawsVehicleInternationalLibrarySublist lawsVehicleInternationalLibrarySublist = new LawsVehicleInternationalLibrarySublist();
|
||||
BeanUtils.copyProperties(businessInfoDTO, lawsVehicleInternationalLibrarySublist);
|
||||
lawsVehicleInternationalLibrarySublist.setVehicleId(vehicleId);
|
||||
LawsVehicleInternationalLibrarySublist oldLawsVehicleInternationalLibrarySublist = lawsVehicleInternationalLibrarySublistService.getOne(new LambdaQueryWrapper<LawsVehicleInternationalLibrarySublist>()
|
||||
.eq(LawsVehicleInternationalLibrarySublist::getVehicleId, vehicleId), false);
|
||||
lawsVehicleInternationalLibrarySublist.setId(oldLawsVehicleInternationalLibrarySublist.getId());
|
||||
lawsVehicleInternationalLibrarySublistService.updateById(lawsVehicleInternationalLibrarySublist);
|
||||
}
|
||||
|
||||
private void startRegulatoryProcess(ProcessInfoVO<ProcessVehicleInternationalReleaseVo> processInfoVO, String processInstanceId) {
|
||||
ProcessVehicleInternationalReleaseVo businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
if (!Objects.isNull(businessInfoDTO)) {
|
||||
ProcessVehicleInternationalRelease processVehicleInternationalRelease = getOne(new LambdaQueryWrapper<ProcessVehicleInternationalRelease>().eq(ProcessVehicleInternationalRelease::getProcessInstanceId, processInstanceId), false);
|
||||
LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary = lawsVehicleInternationalLibraryService.getById(processVehicleInternationalRelease.getVehicleId());
|
||||
lawsVehicleInternationalLibrary.setVehicleBasis(businessInfoDTO.getVehicleBasis()); // 整车型号编制依据
|
||||
lawsVehicleInternationalLibrary.setVehicleType(businessInfoDTO.getVehicleType()); // 车辆形式
|
||||
lawsVehicleInternationalLibrary.setVariant(businessInfoDTO.getVariant()); // 变型
|
||||
lawsVehicleInternationalLibrary.setVersion(businessInfoDTO.getVersion()); // 改型
|
||||
// 整车型号由车辆形式、变型、改型组成
|
||||
String vehicleModel = businessInfoDTO.getVehicleType() + " " + businessInfoDTO.getVariant() + " " + businessInfoDTO.getVersion();
|
||||
lawsVehicleInternationalLibrary.setVehicleModel(vehicleModel); // 整车型号
|
||||
lawsVehicleInternationalLibrary.setVinTopEight(businessInfoDTO.getVinTopEight()); // VIN前八位
|
||||
lawsVehicleInternationalLibrary.setVinBasis(businessInfoDTO.getVinBasis()); // VIN编制依据
|
||||
lawsVehicleInternationalLibrary.setRegulatoryEngineer(UserUtils.getUserId()); // 法规工程师
|
||||
lawsVehicleInternationalLibraryService.updateById(lawsVehicleInternationalLibrary);
|
||||
}
|
||||
}
|
||||
|
||||
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<ProcessVehicleInternationalReleaseVo> processInfoVO) {
|
||||
ProcessVehicleInternationalReleaseVo businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
// 保存数据到 国际整车型号及VIN前八位管控库表
|
||||
LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary = new LawsVehicleInternationalLibrary();
|
||||
BeanUtils.copyProperties(businessInfoDTO, lawsVehicleInternationalLibrary);
|
||||
lawsVehicleInternationalLibrary.setIsFinish(Constant.NOT_FINISH); // 流程未完成
|
||||
lawsVehicleInternationalLibrary.setApplicant(UserUtils.getUserId()); // 流程发起人
|
||||
lawsVehicleInternationalLibraryService.save(lawsVehicleInternationalLibrary);
|
||||
String vehicleId = lawsVehicleInternationalLibrary.getId(); // 主表id
|
||||
// 保存数据到 国际整车型号及VIN前八位管控库子表
|
||||
LawsVehicleInternationalLibrarySublist lawsVehicleInternationalLibrarySublist = new LawsVehicleInternationalLibrarySublist();
|
||||
BeanUtils.copyProperties(businessInfoDTO, lawsVehicleInternationalLibrarySublist);
|
||||
lawsVehicleInternationalLibrarySublist.setVehicleId(vehicleId);
|
||||
lawsVehicleInternationalLibrarySublistService.save(lawsVehicleInternationalLibrarySublist);
|
||||
// 保存数据到 国内整车型号及VIN前八位管控库流程表
|
||||
ProcessVehicleInternationalRelease processVehicleInternationalRelease = new ProcessVehicleInternationalRelease();
|
||||
processVehicleInternationalRelease.setVehicleId(vehicleId);
|
||||
processVehicleInternationalRelease.setProcessInstanceId(businessInfoDTO.getProcessInstanceId());
|
||||
processVehicleInternationalRelease.setCopyUser(businessInfoDTO.getCopyUser());
|
||||
this.save(processVehicleInternationalRelease);
|
||||
}
|
||||
|
||||
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(List<ProcessVehicleInternationalExcelVo> excelList) {
|
||||
StringBuilder msg = new StringBuilder();
|
||||
for (int i = 0; i < excelList.size(); i++) {
|
||||
ProcessVehicleInternationalExcelVo excelVo = excelList.get(i);
|
||||
StringBuilder msgSub = new StringBuilder();
|
||||
// 校验车型代码
|
||||
if (StringUtils.isBlank(excelVo.getVehicleTypeCode())) {
|
||||
msgSub.append(getErrorMsg(i, "车型代码不能为空;"));
|
||||
}
|
||||
// 校验动力类型
|
||||
if (StringUtils.isBlank(excelVo.getPowerType())) {
|
||||
msgSub.append(getErrorMsg(i, "动力类型不能为空;"));
|
||||
}
|
||||
// 校验发动机型号
|
||||
if (StringUtils.isNotBlank(excelVo.getEngineType())) {
|
||||
}
|
||||
// 校验驱动电机型号
|
||||
if (StringUtils.isNotBlank(excelVo.getDriveMotorModel())) {
|
||||
}
|
||||
// 校验动力电池型号
|
||||
if (StringUtils.isNotBlank(excelVo.getPowerBatteryModel())) {
|
||||
}
|
||||
// 校验变速器型号
|
||||
if (StringUtils.isBlank(excelVo.getTransmissionModel())) {
|
||||
msgSub.append(getErrorMsg(i, "变速器型号不能为空;"));
|
||||
}
|
||||
// 校验车身形式
|
||||
if (StringUtils.isBlank(excelVo.getBodyType())) {
|
||||
msgSub.append(getErrorMsg(i, "车身形式不能为空;"));
|
||||
}
|
||||
// 校验驱动形式
|
||||
if (StringUtils.isBlank(excelVo.getDrivingType())) {
|
||||
msgSub.append(getErrorMsg(i, "驱动形式不能为空;"));
|
||||
}
|
||||
// 校验驱动轴数量
|
||||
if (StringUtils.isBlank(excelVo.getDrivingShaftsNumber())) {
|
||||
msgSub.append(getErrorMsg(i, "驱动轴数量不能为空;"));
|
||||
}
|
||||
// 校验转向型式
|
||||
if (StringUtils.isBlank(excelVo.getSteeringType())) {
|
||||
msgSub.append(getErrorMsg(i, "转向型式不能为空;"));
|
||||
}
|
||||
// 校验座位数量
|
||||
if (StringUtils.isBlank(excelVo.getSeatsNumber())) {
|
||||
msgSub.append(getErrorMsg(i, "座位数量不能为空;"));
|
||||
}
|
||||
// 校验技术允许最大满载质量(Kg)
|
||||
if (StringUtils.isBlank(excelVo.getAllowedMaxFullLoad())) {
|
||||
msgSub.append(getErrorMsg(i, "技术允许最大满载质量(Kg)不能为空;"));
|
||||
}else if (excelVo.getAllowedMaxFullLoad().length() > 50) {
|
||||
msgSub.append(getErrorMsg(i, "技术允许最大满载质量(Kg)字符长度不能超过50;"));
|
||||
}
|
||||
// 校验车辆外廓尺寸(长x宽X高)
|
||||
if (StringUtils.isBlank(excelVo.getCarOutSize())) {
|
||||
msgSub.append(getErrorMsg(i, "校验车辆外廓尺寸(长x宽X高)不能为空;"));
|
||||
}else if (excelVo.getCarOutSize().length() > 50) {
|
||||
msgSub.append(getErrorMsg(i, "校验车辆外廓尺寸(长x宽X高)字符长度不能超过50;"));
|
||||
}
|
||||
// 校验发动机工作原理
|
||||
if (StringUtils.isBlank(excelVo.getEngineWorkingPrinciple())) {
|
||||
msgSub.append(getErrorMsg(i, "发动机工作原理不能为空;"));
|
||||
}
|
||||
// 校验燃料类型
|
||||
if (StringUtils.isBlank(excelVo.getFuelType())) {
|
||||
msgSub.append(getErrorMsg(i, "燃料类型不能为空;"));
|
||||
}
|
||||
// 校验发动机排量(L)
|
||||
if (StringUtils.isNotBlank(excelVo.getEngineCapacity())) {
|
||||
}
|
||||
// 校验额定转速(rpm)
|
||||
if (StringUtils.isNotBlank(excelVo.getRatedSpeed()) && excelVo.getRatedSpeed().length() > 50) {
|
||||
msgSub.append(getErrorMsg(i, "额定转速(rpm)字符长度不能超过50;"));
|
||||
}
|
||||
// 校验发动机最大净功率(kW)
|
||||
if (StringUtils.isNotBlank(excelVo.getEngineMaxPower()) && excelVo.getEngineMaxPower().length() > 50) {
|
||||
msgSub.append(getErrorMsg(i, "发动机最大净功率(kw)字符长度不能超过50;"));
|
||||
}
|
||||
// 校验驱动电机峰值功率(kW)
|
||||
if (StringUtils.isNotBlank(excelVo.getDriveMotorPeakPower()) && excelVo.getDriveMotorPeakPower().length() > 50) {
|
||||
msgSub.append(getErrorMsg(i, "发动机最大净功率(kw)字符长度不能超过50;"));
|
||||
}
|
||||
// 校验排放水平
|
||||
if (StringUtils.isNotBlank(excelVo.getEmissionLevel())) {
|
||||
}
|
||||
// 校验能耗(L/100km or kwh/100km)
|
||||
if (StringUtils.isBlank(excelVo.getEnergyConsumption())) {
|
||||
msgSub.append(getErrorMsg(i, "能耗(L/100km or kwh/100km)不能为空;"));
|
||||
}
|
||||
// 校验储能装置种类
|
||||
if (StringUtils.isNotBlank(excelVo.getEnergyStorageDevices())) {
|
||||
}
|
||||
// 校验变速器型式
|
||||
if (StringUtils.isBlank(excelVo.getTransmissionType())) {
|
||||
msgSub.append(getErrorMsg(i, "变速器型式不能为空;"));
|
||||
}
|
||||
// 校验变速器档位数
|
||||
if (StringUtils.isBlank(excelVo.getTransmissionGearNumber())) {
|
||||
msgSub.append(getErrorMsg(i, "变速器档位数不能为空;"));
|
||||
}
|
||||
// 校验变速器是否带手动模式
|
||||
if (StringUtils.isBlank(excelVo.getTransmissionIsHasManual())) {
|
||||
msgSub.append(getErrorMsg(i, "变速器是否带手动模式不能为空;"));
|
||||
}
|
||||
// 校验前排正面气囊
|
||||
if (StringUtils.isBlank(excelVo.getFrontFrontAirbag())) {
|
||||
msgSub.append(getErrorMsg(i, "前排正面气囊不能为空;"));
|
||||
}
|
||||
// 校验前排座椅侧气囊
|
||||
if (StringUtils.isBlank(excelVo.getFrontSeatSideAirbags())) {
|
||||
msgSub.append(getErrorMsg(i, "前排座椅侧气囊不能为空;"));
|
||||
}
|
||||
//校验销售区域
|
||||
if (StringUtils.isBlank(excelVo.getSalesArea())) {
|
||||
msgSub.append(getErrorMsg(i, "前销售区域不能为空;"));
|
||||
}
|
||||
// 校验品牌
|
||||
if (StringUtils.isBlank(excelVo.getBrand())) {
|
||||
msgSub.append(getErrorMsg(i, "品牌不能为空;"));
|
||||
}
|
||||
if (msgSub.length() > 0) {
|
||||
msg.append(msgSub).append(NEWLINE_CHARACTER);
|
||||
}
|
||||
}
|
||||
return msg;
|
||||
}
|
||||
|
||||
// 校验表头
|
||||
private void excelHeadVerify(Class<?> clazz, MultipartFile file) {
|
||||
try {
|
||||
if (!(boolean) ImportExcelUtil.checkTemplateTitle(file, clazz, 0, 0)){
|
||||
throw new JeroBootException(ResultCommon.IMPORT_TEMPLATE_ERROR);
|
||||
}
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new JeroBootException(ResultCommon.IMPORT_TEMPLATE_ERROR);
|
||||
}
|
||||
}
|
||||
|
||||
// 错误消息格式化
|
||||
private String getErrorMsg(int rowIndex, String errorMsg) {
|
||||
return "第" + (rowIndex + 2) + "行" + errorMsg;
|
||||
}
|
||||
}
|
||||
+196
@@ -0,0 +1,196 @@
|
||||
package com.jero.modules.activiti.process.vehicleinterntional.vo;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class ProcessVehicleInternationalReleaseVo {
|
||||
|
||||
@ApiModelProperty(value = "主键")
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "流程实例Id")
|
||||
private String processInstanceId;
|
||||
|
||||
@ApiModelProperty(value = "抄送人员")
|
||||
private String copyUser;
|
||||
|
||||
@ApiModelProperty(value = "整车型号")
|
||||
@Excel(name = "整车型号", width = 20)
|
||||
private String vehicleModel;
|
||||
|
||||
@ApiModelProperty(value = "车辆型式")
|
||||
@Excel(name = "车辆型式", width = 20)
|
||||
private String vehicleType;
|
||||
|
||||
@ApiModelProperty(value = "变型(variant)")
|
||||
@Excel(name = "变型(variant)", width = 20)
|
||||
private String variant;
|
||||
|
||||
@ApiModelProperty(value = "改型(version)")
|
||||
@Excel(name = "改型(version)", width = 20)
|
||||
private String version;
|
||||
|
||||
@ApiModelProperty(value = "vin前八位")
|
||||
@Excel(name = "vin前八位", width = 20)
|
||||
private String vinTopEight;
|
||||
|
||||
@ApiModelProperty(value = "整车型号编制依据")
|
||||
@Excel(name = "整车型号编制依据", width = 20)
|
||||
private String vehicleBasis;
|
||||
|
||||
@ApiModelProperty(value = "vin编制依据")
|
||||
@Excel(name = "vin编制依据", width = 20)
|
||||
private String vinBasis;
|
||||
|
||||
@ApiModelProperty(value = "代替整车型号")
|
||||
@Excel(name = "代替整车型号", width = 20)
|
||||
private String insteadVehicleModel;
|
||||
|
||||
@ApiModelProperty(value = "申请人")
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
|
||||
@Excel(name = "申请人", width = 20, dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')")
|
||||
private String applicant;
|
||||
|
||||
@ApiModelProperty(value = "完成日期")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
@Excel(name = "完成日期", width = 20, format = "yyyy-MM-dd")
|
||||
private Date finishDate;
|
||||
|
||||
@ApiModelProperty(value = "法规工程师")
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
|
||||
@Excel(name = "法规工程师", width = 20, dictTable = "sys_user", dicCode = "id", dicText = "CONCAT(realname, '(', username, ')')")
|
||||
private String regulatoryEngineer;
|
||||
|
||||
@ApiModelProperty(value = "状态 1-生效 2-作废")
|
||||
@Dict(dicCode = "dvm_status")
|
||||
@Excel(name = "状态", width = 20, dicCode = "dvm_status")
|
||||
private String state;
|
||||
|
||||
@ApiModelProperty(value = "车型代码")
|
||||
@Excel(name = "车型代码", width = 20)
|
||||
private String vehicleTypeCode;
|
||||
|
||||
@ApiModelProperty(value = "动力类型")
|
||||
@Excel(name = "动力类型", width = 20)
|
||||
private String powerType;
|
||||
|
||||
@ApiModelProperty(value = "发动机型号")
|
||||
@Excel(name = "发动机型号", width = 20)
|
||||
private String engineType;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机型号")
|
||||
@Excel(name = "驱动电机型号", width = 20)
|
||||
private String driveMotorModel;
|
||||
|
||||
@ApiModelProperty(value = "动力电池型号")
|
||||
@Excel(name = "动力电池型号", width = 20)
|
||||
private String powerBatteryModel;
|
||||
|
||||
@ApiModelProperty(value = "变速器型号")
|
||||
@Excel(name = "变速器型号", width = 20)
|
||||
private String transmissionModel;
|
||||
|
||||
@ApiModelProperty(value = "车身形式")
|
||||
@Excel(name = "车身形式", width = 20)
|
||||
private String bodyType;
|
||||
|
||||
@ApiModelProperty(value = "驱动型式")
|
||||
@Excel(name = "驱动型式", width = 20)
|
||||
private String drivingType;
|
||||
|
||||
@ApiModelProperty(value = "驱动轴数量")
|
||||
@Excel(name = "驱动轴数量", width = 20)
|
||||
private String drivingShaftsNumber;
|
||||
|
||||
@ApiModelProperty(value = "转向型式")
|
||||
@Excel(name = "转向型式", width = 20)
|
||||
private String steeringType;
|
||||
|
||||
@ApiModelProperty(value = "座位数量")
|
||||
@Excel(name = "座位数量", width = 20)
|
||||
private String seatsNumber;
|
||||
|
||||
@ApiModelProperty(value = "技术允许最大满载质量(Kg)")
|
||||
@Excel(name = "技术允许最大满载质量(Kg)", width = 20)
|
||||
private String allowedMaxFullLoad;
|
||||
|
||||
@ApiModelProperty(value = "车辆外廓尺寸(长*宽*高)")
|
||||
@Excel(name = "车辆外廓尺寸(长*宽*高)", width = 20)
|
||||
private String carOutSize;
|
||||
|
||||
@ApiModelProperty(value = "发动机工作原理")
|
||||
@Excel(name = "发动机工作原理", width = 20)
|
||||
private String engineWorkingPrinciple;
|
||||
|
||||
@ApiModelProperty(value = "燃料类型")
|
||||
@Excel(name = "燃料类型", width = 20)
|
||||
private String fuelType;
|
||||
|
||||
@ApiModelProperty(value = "发动机排量(L)")
|
||||
@Excel(name = "发动机排量(L)", width = 20)
|
||||
private String engineCapacity;
|
||||
|
||||
@ApiModelProperty(value = "额定转速(rpm)")
|
||||
@Excel(name = "额定转速(rpm)", width = 20)
|
||||
private String ratedSpeed;
|
||||
|
||||
@ApiModelProperty(value = "发动机最大净功率(kw)")
|
||||
@Excel(name = "发动机最大净功率(kw)", width = 20)
|
||||
private String engineMaxPower;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机峰值功率(kw)")
|
||||
@Excel(name = "驱动电机峰值功率(kw)", width = 20)
|
||||
private String driveMotorPeakPower;
|
||||
|
||||
@ApiModelProperty(value = "排放水平")
|
||||
@Excel(name = "排放水平", width = 20)
|
||||
private String emissionLevel;
|
||||
|
||||
@ApiModelProperty(value = "能耗(L/100km or kwh/100km)")
|
||||
@Excel(name = "能耗(L/100km or kwh/100km)", width = 20)
|
||||
private String energyConsumption;
|
||||
|
||||
@ApiModelProperty(value = "储能装置种类")
|
||||
@Excel(name = "储能装置种类", width = 20)
|
||||
private String energyStorageDevices;
|
||||
|
||||
@ApiModelProperty(value = "变速器型式")
|
||||
@Excel(name = "变速器型式", width = 20)
|
||||
private String transmissionType;
|
||||
|
||||
@ApiModelProperty(value = "变速器档位数")
|
||||
@Excel(name = "变速器档位数", width = 20)
|
||||
private String transmissionGearNumber;
|
||||
|
||||
@ApiModelProperty(value = "变速器是否带手动模式")
|
||||
@Excel(name = "变速器是否带手动模式", width = 20)
|
||||
private String transmissionIsHasManual;
|
||||
|
||||
@ApiModelProperty(value = "前排正面气囊")
|
||||
@Excel(name = "前排正面气囊", width = 20)
|
||||
private String frontFrontAirbag;
|
||||
|
||||
@ApiModelProperty(value = "前排座椅侧气囊")
|
||||
@Excel(name = "前排座椅侧气囊", width = 20)
|
||||
private String frontSeatSideAirbags;
|
||||
|
||||
@ApiModelProperty(value = "销售区域")
|
||||
@Excel(name = "销售区域", width = 20)
|
||||
private String salesArea;
|
||||
|
||||
@ApiModelProperty(value = "品牌")
|
||||
@Excel(name = "品牌", width = 20)
|
||||
private String brand;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
@Excel(name = "备注", width = 20)
|
||||
private String remark;
|
||||
|
||||
}
|
||||
+126
@@ -0,0 +1,126 @@
|
||||
package com.jero.modules.activiti.process.vehicleinterntional.vo.excel;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
import org.jeecgframework.poi.excel.annotation.Excel;
|
||||
|
||||
@Data
|
||||
public class ProcessVehicleInternationalExcelVo {
|
||||
|
||||
@ApiModelProperty(value = "车型代码")
|
||||
@Excel(name = "车型代码", width = 20)
|
||||
private String vehicleTypeCode;
|
||||
|
||||
@ApiModelProperty(value = "动力类型")
|
||||
@Excel(name = "动力类型", width = 20)
|
||||
private String powerType;
|
||||
|
||||
@ApiModelProperty(value = "发动机型号")
|
||||
@Excel(name = "发动机型号", width = 20)
|
||||
private String engineType;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机型号")
|
||||
@Excel(name = "驱动电机型号", width = 20)
|
||||
private String driveMotorModel;
|
||||
|
||||
@ApiModelProperty(value = "动力电池型号")
|
||||
@Excel(name = "动力电池型号", width = 20)
|
||||
private String powerBatteryModel;
|
||||
|
||||
@ApiModelProperty(value = "变速器型号")
|
||||
@Excel(name = "变速器型号", width = 20)
|
||||
private String transmissionModel;
|
||||
|
||||
@ApiModelProperty(value = "车身形式")
|
||||
@Excel(name = "车身形式", width = 20)
|
||||
private String bodyType;
|
||||
|
||||
@ApiModelProperty(value = "驱动形式")
|
||||
@Excel(name = "驱动形式", width = 20)
|
||||
private String drivingType;
|
||||
|
||||
@ApiModelProperty(value = "驱动轴数量")
|
||||
@Excel(name = "驱动轴数量", width = 20)
|
||||
private String drivingShaftsNumber;
|
||||
|
||||
@ApiModelProperty(value = "转向型式")
|
||||
@Excel(name = "转向型式", width = 20)
|
||||
private String steeringType;
|
||||
|
||||
@ApiModelProperty(value = "座位数量")
|
||||
@Excel(name = "座位数量", width = 20)
|
||||
private String seatsNumber;
|
||||
|
||||
@ApiModelProperty(value = "技术允许最大满载质量(Kg)")
|
||||
@Excel(name = "技术允许最大满载质量(Kg)", width = 20)
|
||||
private String allowedMaxFullLoad;
|
||||
|
||||
@ApiModelProperty(value = "车辆外廓尺寸(长*宽*高)")
|
||||
@Excel(name = "车辆外廓尺寸(长*宽*高)", width = 20)
|
||||
private String carOutSize;
|
||||
|
||||
@ApiModelProperty(value = "发动机工作原理")
|
||||
@Excel(name = "发动机工作原理", width = 20)
|
||||
private String engineWorkingPrinciple;
|
||||
|
||||
@ApiModelProperty(value = "燃料类型")
|
||||
@Excel(name = "燃料类型", width = 20)
|
||||
private String fuelType;
|
||||
|
||||
@ApiModelProperty(value = "发动机排量(L)")
|
||||
@Excel(name = "发动机排量(L)", width = 20)
|
||||
private String engineCapacity;
|
||||
|
||||
@ApiModelProperty(value = "额定转速(rpm)")
|
||||
@Excel(name = "额定转速(rpm)", width = 20)
|
||||
private String ratedSpeed;
|
||||
|
||||
@ApiModelProperty(value = "发动机最大净功率(kw)")
|
||||
@Excel(name = "发动机最大净功率(kw)", width = 20)
|
||||
private String engineMaxPower;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机峰值功率(kw)")
|
||||
@Excel(name = "驱动电机峰值功率(kw)", width = 20)
|
||||
private String driveMotorPeakPower;
|
||||
|
||||
@ApiModelProperty(value = "排放水平")
|
||||
@Excel(name = "排放水平", width = 20)
|
||||
private String emissionLevel;
|
||||
|
||||
@ApiModelProperty(value = "能耗(L/100km or kwh/100km)")
|
||||
@Excel(name = "能耗(L/100km or kwh/100km)", width = 20)
|
||||
private String energyConsumption;
|
||||
|
||||
@ApiModelProperty(value = "储能装置种类")
|
||||
@Excel(name = "储能装置种类", width = 20)
|
||||
private String energyStorageDevices;
|
||||
|
||||
@ApiModelProperty(value = "变速器型式")
|
||||
@Excel(name = "变速器型式", width = 20)
|
||||
private String transmissionType;
|
||||
|
||||
@ApiModelProperty(value = "变速器档位数")
|
||||
@Excel(name = "变速器档位数", width = 20)
|
||||
private String transmissionGearNumber;
|
||||
|
||||
@ApiModelProperty(value = "变速器是否带手动模式")
|
||||
@Excel(name = "变速器是否带手动模式", width = 20)
|
||||
private String transmissionIsHasManual;
|
||||
|
||||
@ApiModelProperty(value = "前排正面气囊")
|
||||
@Excel(name = "前排正面气囊", width = 20)
|
||||
private String frontFrontAirbag;
|
||||
|
||||
@ApiModelProperty(value = "前排座椅侧气囊")
|
||||
@Excel(name = "前排座椅侧气囊", width = 20)
|
||||
private String frontSeatSideAirbags;
|
||||
|
||||
@ApiModelProperty(value = "销售区域")
|
||||
@Excel(name = "销售区域", width = 20)
|
||||
private String salesArea;
|
||||
|
||||
@ApiModelProperty(value = "品牌")
|
||||
@Excel(name = "品牌", width = 20)
|
||||
private String brand;
|
||||
|
||||
}
|
||||
+1
-1
@@ -26,7 +26,7 @@ import javax.servlet.http.HttpServletRequest;
|
||||
*/
|
||||
@Api(tags="国内整车型号及VIN前八位管控库")
|
||||
@RestController
|
||||
@RequestMapping("/domesticVehicle/library")
|
||||
@RequestMapping("/laws/domesticVehicle/library")
|
||||
@Slf4j
|
||||
public class LawsVehicleDomesticLibraryController {
|
||||
|
||||
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
package com.jero.modules.laws.businessSupport.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
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.process.vehicleinterntional.vo.ProcessVehicleInternationalReleaseVo;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrary;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibraryService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号及VIN前八位管控库 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/laws/internationalVehicle/library")
|
||||
public class LawsVehicleInternationalLibraryController {
|
||||
|
||||
@Resource
|
||||
private ILawsVehicleInternationalLibraryService lawsVehicleInternationalLibraryService;
|
||||
|
||||
/**
|
||||
* 分页列表查询
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "国际整车型号及VIN前八位管控库-分页列表查询")
|
||||
@ApiOperation(value="国际整车型号及VIN前八位管控库-分页列表查询", notes="国际整车型号及VIN前八位管控库-分页列表查询")
|
||||
@GetMapping(value = "/page")
|
||||
// @RequiresPermissions("companyStandardStatistics:search")
|
||||
public Result<?> queryPageList(LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary,
|
||||
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
|
||||
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
|
||||
HttpServletRequest req) {
|
||||
IPage<LawsVehicleInternationalLibrary> pageList= lawsVehicleInternationalLibraryService.queryPageList(lawsVehicleInternationalLibrary, pageNo, pageSize, req);
|
||||
return Result.OK(pageList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查看
|
||||
*
|
||||
* @param jsonObject
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "国际整车型号及VIN前八位管控库-查看")
|
||||
@ApiOperation(value="国际整车型号及VIN前八位管控库-查看", notes="国际整车型号及VIN前八位管控库-查看")
|
||||
@PostMapping(value = "/queryOne")
|
||||
@Translation
|
||||
// @RequiresPermissions("companyStandardStatistics:edit")
|
||||
public Result<?> queryOne(@RequestBody JSONObject jsonObject) {
|
||||
String id = jsonObject.getString("id");
|
||||
return lawsVehicleInternationalLibraryService.queryOne(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@AutoLog(value = "国际整车型号及VIN前八位管控库-删除")
|
||||
@ApiOperation(value="国际整车型号及VIN前八位管控库-删除", notes="国际整车型号及VIN前八位管控库-删除")
|
||||
@PostMapping(value = "/delete")
|
||||
// @RequiresPermissions("companyStandardStatistics:delete")
|
||||
public Result<?> delete(@RequestBody JSONObject jsonObject) {
|
||||
return lawsVehicleInternationalLibraryService.delete(jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 作废
|
||||
*/
|
||||
@AutoLog(value = "国际整车型号及VIN前八位管控库-作废")
|
||||
@ApiOperation(value="国际整车型号及VIN前八位管控库-作废", notes="国际整车型号及VIN前八位管控库-作废")
|
||||
@PostMapping(value = "/abolish")
|
||||
// @RequiresPermissions("companyStandardStatistics:delete")
|
||||
public Result<?> abolish(@RequestBody JSONObject jsonObject) {
|
||||
return lawsVehicleInternationalLibraryService.abolish(jsonObject);
|
||||
}
|
||||
|
||||
/**
|
||||
* 替换
|
||||
*/
|
||||
@AutoLog(value = "国际整车型号及VIN前八位管控库-替换")
|
||||
@ApiOperation(value="国际整车型号及VIN前八位管控库-替换", notes="国际整车型号及VIN前八位管控库-替换")
|
||||
@PostMapping(value = "/replace")
|
||||
// @RequiresPermissions("companyStandardStatistics:delete")
|
||||
public Result<?> replace(@RequestBody ProcessVehicleInternationalReleaseVo processVehicleInternationalReleaseVo) {
|
||||
return lawsVehicleInternationalLibraryService.replace(processVehicleInternationalReleaseVo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出
|
||||
*/
|
||||
@AutoLog(value = "国际整车型号及VIN前八位管控库-导出")
|
||||
@ApiOperation(value="国际整车型号及VIN前八位管控库-导出", notes="国际整车型号及VIN前八位管控库-导出")
|
||||
@GetMapping(value = "/exportXls")
|
||||
// @RequiresPermissions("companyStandardStatistics:delete")
|
||||
public ModelAndView exportXls(HttpServletRequest request) {
|
||||
return lawsVehicleInternationalLibraryService.exportXls(request);
|
||||
}
|
||||
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.jero.modules.laws.businessSupport.controller;
|
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号及VIN前八位管控库-子表 前端控制器
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/laws-vehicle-international-library-sublist")
|
||||
public class LawsVehicleInternationalLibrarySublistController {
|
||||
|
||||
}
|
||||
-4
@@ -96,10 +96,6 @@ public class LawsVehicleDomesticLibrary implements Serializable {
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "车型代码")
|
||||
private String vehicleTypeCode;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "子表数据")
|
||||
private LawsVehicleDomesticLibrarySublist lawsVehicleDomesticLibrarySublist;
|
||||
|
||||
+112
@@ -0,0 +1,112 @@
|
||||
package com.jero.modules.laws.businessSupport.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.jero.common.aspect.annotation.Dict;
|
||||
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>
|
||||
* 国际整车型号及VIN前八位管控库
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("laws_vehicle_international_library")
|
||||
@ApiModel(value="LawsVehicleInternationalLibrary对象", description="国际整车型号及VIN前八位管控库")
|
||||
public class LawsVehicleInternationalLibrary implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "主键")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "整车型号")
|
||||
private String vehicleModel;
|
||||
|
||||
@ApiModelProperty(value = "车辆型式")
|
||||
private String vehicleType;
|
||||
|
||||
@ApiModelProperty(value = "变型")
|
||||
private String variant;
|
||||
|
||||
@ApiModelProperty(value = "改型")
|
||||
private String version;
|
||||
|
||||
@ApiModelProperty(value = "vin前八位")
|
||||
private String vinTopEight;
|
||||
|
||||
@ApiModelProperty(value = "整车型号编制依据")
|
||||
private String vehicleBasis;
|
||||
|
||||
@ApiModelProperty(value = "vin编制依据")
|
||||
private String vinBasis;
|
||||
|
||||
@ApiModelProperty(value = "代替整车型号")
|
||||
private String insteadVehicleModel;
|
||||
|
||||
@ApiModelProperty(value = "申请人")
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
|
||||
private String applicant;
|
||||
|
||||
@ApiModelProperty(value = "完成日期")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date finishDate;
|
||||
|
||||
@ApiModelProperty(value = "法规工程师")
|
||||
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
|
||||
private String regulatoryEngineer;
|
||||
|
||||
@ApiModelProperty(value = "备注")
|
||||
private String remark;
|
||||
|
||||
@ApiModelProperty(value = "流程是否完成 0-未完成 1-已完成")
|
||||
private String isFinish;
|
||||
|
||||
@ApiModelProperty(value = "状态 1-生效 2-作废")
|
||||
@Dict(dicCode = "dvm_status")
|
||||
private String state;
|
||||
|
||||
@ApiModelProperty(value = "逻辑删除")
|
||||
@TableLogic(value = "0", delval = "1")
|
||||
private Integer delFlag;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@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 = "更新时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "子表数据")
|
||||
private LawsVehicleInternationalLibrarySublist lawsVehicleInternationalLibrarySublist;
|
||||
|
||||
|
||||
}
|
||||
+151
@@ -0,0 +1,151 @@
|
||||
package com.jero.modules.laws.businessSupport.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableLogic;
|
||||
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>
|
||||
* 国际整车型号及VIN前八位管控库-子表
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@Accessors(chain = true)
|
||||
@TableName("laws_vehicle_international_library_sublist")
|
||||
@ApiModel(value="LawsVehicleInternationalLibrarySublist对象", description="国际整车型号及VIN前八位管控库-子表")
|
||||
public class LawsVehicleInternationalLibrarySublist implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
@ApiModelProperty(value = "主键")
|
||||
@TableId(value = "id", type = IdType.ASSIGN_ID)
|
||||
private String id;
|
||||
|
||||
@ApiModelProperty(value = "整车型号id")
|
||||
private String vehicleId;
|
||||
|
||||
@ApiModelProperty(value = "车型代码")
|
||||
private String vehicleTypeCode;
|
||||
|
||||
@ApiModelProperty(value = "动力类型")
|
||||
private String powerType;
|
||||
|
||||
@ApiModelProperty(value = "发动机型号")
|
||||
private String engineType;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机型号")
|
||||
private String driveMotorModel;
|
||||
|
||||
@ApiModelProperty(value = "动力电池型号")
|
||||
private String powerBatteryModel;
|
||||
|
||||
@ApiModelProperty(value = "变速器型号")
|
||||
private String transmissionModel;
|
||||
|
||||
@ApiModelProperty(value = "车身形式")
|
||||
private String bodyType;
|
||||
|
||||
@ApiModelProperty(value = "驱动型式")
|
||||
private String drivingType;
|
||||
|
||||
@ApiModelProperty(value = "驱动轴数量")
|
||||
private String drivingShaftsNumber;
|
||||
|
||||
@ApiModelProperty(value = "转向型式")
|
||||
private String steeringType;
|
||||
|
||||
@ApiModelProperty(value = "座位数量")
|
||||
private String seatsNumber;
|
||||
|
||||
@ApiModelProperty(value = "技术允许最大满载质量(Kg)")
|
||||
private String allowedMaxFullLoad;
|
||||
|
||||
@ApiModelProperty(value = "车辆外廓尺寸(长*宽*高)")
|
||||
private String carOutSize;
|
||||
|
||||
@ApiModelProperty(value = "发动机工作原理")
|
||||
private String engineWorkingPrinciple;
|
||||
|
||||
@ApiModelProperty(value = "燃料类型")
|
||||
private String fuelType;
|
||||
|
||||
@ApiModelProperty(value = "发动机排量(L)")
|
||||
private String engineCapacity;
|
||||
|
||||
@ApiModelProperty(value = "额定转速(rpm)")
|
||||
private String ratedSpeed;
|
||||
|
||||
@ApiModelProperty(value = "发动机最大净功率(kW)")
|
||||
private String engineMaxPower;
|
||||
|
||||
@ApiModelProperty(value = "驱动电机峰值功率(kW)")
|
||||
private String driveMotorPeakPower;
|
||||
|
||||
@ApiModelProperty(value = "排放水平")
|
||||
private String emissionLevel;
|
||||
|
||||
@ApiModelProperty(value = "能耗(L/100km or kwh/100km)")
|
||||
private String energyConsumption;
|
||||
|
||||
@ApiModelProperty(value = "储能装置种类")
|
||||
private String energyStorageDevices;
|
||||
|
||||
@ApiModelProperty(value = "变速器型式")
|
||||
private String transmissionType;
|
||||
|
||||
@ApiModelProperty(value = "变速器档位数")
|
||||
private String transmissionGearNumber;
|
||||
|
||||
@ApiModelProperty(value = "变速器是否带手动模式")
|
||||
private String transmissionIsHasManual;
|
||||
|
||||
@ApiModelProperty(value = "前排正面气囊")
|
||||
private String frontFrontAirbag;
|
||||
|
||||
@ApiModelProperty(value = "前排座椅侧气囊")
|
||||
private String frontSeatSideAirbags;
|
||||
|
||||
@ApiModelProperty(value = "销售区域")
|
||||
private String salesArea;
|
||||
|
||||
@ApiModelProperty(value = "品牌")
|
||||
private String brand;
|
||||
|
||||
@ApiModelProperty(value = "逻辑删除")
|
||||
@TableLogic(value = "0", delval = "1")
|
||||
private Integer delFlag;
|
||||
|
||||
@ApiModelProperty(value = "创建人")
|
||||
private String createBy;
|
||||
|
||||
@ApiModelProperty(value = "创建时间")
|
||||
@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 = "更新时间")
|
||||
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
|
||||
private Date updateTime;
|
||||
|
||||
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.jero.modules.laws.businessSupport.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrary;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号及VIN前八位管控库 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
public interface LawsVehicleInternationalLibraryMapper extends BaseMapper<LawsVehicleInternationalLibrary> {
|
||||
|
||||
}
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
package com.jero.modules.laws.businessSupport.mapper;
|
||||
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrarySublist;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号及VIN前八位管控库-子表 Mapper 接口
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
public interface LawsVehicleInternationalLibrarySublistMapper extends BaseMapper<LawsVehicleInternationalLibrarySublist> {
|
||||
|
||||
}
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.laws.businessSupport.mapper.LawsVehicleInternationalLibraryMapper">
|
||||
|
||||
</mapper>
|
||||
+5
@@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="com.jero.modules.laws.businessSupport.mapper.LawsVehicleInternationalLibrarySublistMapper">
|
||||
|
||||
</mapper>
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
package com.jero.modules.laws.businessSupport.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.vo.ProcessVehicleInternationalReleaseVo;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrary;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号及VIN前八位管控库 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
public interface ILawsVehicleInternationalLibraryService extends IService<LawsVehicleInternationalLibrary> {
|
||||
|
||||
IPage<LawsVehicleInternationalLibrary> queryPageList(LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary, Integer pageNo, Integer pageSize, HttpServletRequest req);
|
||||
|
||||
Result<?> queryOne(String id);
|
||||
|
||||
Result<?> delete(JSONObject jsonObject);
|
||||
|
||||
Result<?> abolish(JSONObject jsonObject);
|
||||
|
||||
Result<?> replace(ProcessVehicleInternationalReleaseVo processVehicleInternationalReleaseVo);
|
||||
|
||||
ModelAndView exportXls(HttpServletRequest request);
|
||||
}
|
||||
+16
@@ -0,0 +1,16 @@
|
||||
package com.jero.modules.laws.businessSupport.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrarySublist;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号及VIN前八位管控库-子表 服务类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
public interface ILawsVehicleInternationalLibrarySublistService extends IService<LawsVehicleInternationalLibrarySublist> {
|
||||
|
||||
}
|
||||
+1
-1
@@ -67,7 +67,7 @@ public class LawsVehicleDomesticLibraryServiceImpl extends ServiceImpl<LawsVehic
|
||||
}
|
||||
LawsVehicleDomesticLibrary lawsVehicleDomesticLibrary = getById(id);
|
||||
if (Objects.isNull(lawsVehicleDomesticLibrary)) {
|
||||
throw new JeroBootException(ResultCommon.PARAMETERS_CANNOT_BE_NULL);
|
||||
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_RECORD_FOUND);
|
||||
}
|
||||
LambdaQueryWrapper<LawsVehicleDomesticLibrarySublist> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(LawsVehicleDomesticLibrarySublist::getVehicleId, id);
|
||||
|
||||
+206
@@ -0,0 +1,206 @@
|
||||
package com.jero.modules.laws.businessSupport.service.impl;
|
||||
|
||||
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.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
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.oConvertUtils;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.entity.ProcessVehicleInternationalRelease;
|
||||
import com.jero.modules.activiti.process.vehicleinterntional.vo.ProcessVehicleInternationalReleaseVo;
|
||||
import com.jero.modules.laws.businessSupport.common.Constant;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrary;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrarySublist;
|
||||
import com.jero.modules.laws.businessSupport.mapper.LawsVehicleInternationalLibraryMapper;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibraryService;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibrarySublistService;
|
||||
import com.jero.modules.laws.club.config.CustomExcelExportStyler;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||
import org.jeecgframework.poi.excel.entity.ExportParams;
|
||||
import org.jeecgframework.poi.excel.entity.enmus.ExcelType;
|
||||
import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.context.i18n.LocaleContextHolder;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号及VIN前八位管控库 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
@Service
|
||||
public class LawsVehicleInternationalLibraryServiceImpl extends ServiceImpl<LawsVehicleInternationalLibraryMapper, LawsVehicleInternationalLibrary> implements ILawsVehicleInternationalLibraryService {
|
||||
|
||||
@Resource
|
||||
private ILawsVehicleInternationalLibrarySublistService lawsVehicleInternationalLibrarySublistService;
|
||||
|
||||
@Override
|
||||
public IPage<LawsVehicleInternationalLibrary> queryPageList(LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary, Integer pageNo, Integer pageSize, HttpServletRequest req) {
|
||||
LambdaQueryWrapper<LawsVehicleInternationalLibrary> lambdaQueryWrapper = generationWrapper(req);
|
||||
Page<LawsVehicleInternationalLibrary> page = new Page<>(pageNo, pageSize);
|
||||
Page<LawsVehicleInternationalLibrary> result = page(page, lambdaQueryWrapper);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<?> queryOne(String id) {
|
||||
if (StringUtils.isBlank(id)) {
|
||||
throw new JeroBootException(ResultCommon.PARAMETERS_CANNOT_BE_NULL);
|
||||
}
|
||||
LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary = getById(id);
|
||||
if (Objects.isNull(lawsVehicleInternationalLibrary)) {
|
||||
throw new JeroBootException(ResultCommon.NO_CORRESPONDING_RECORD_FOUND);
|
||||
}
|
||||
LambdaQueryWrapper<LawsVehicleInternationalLibrarySublist> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(LawsVehicleInternationalLibrarySublist::getVehicleId, id);
|
||||
LawsVehicleInternationalLibrarySublist lawsVehicleInternationalLibrarySublist = lawsVehicleInternationalLibrarySublistService.getOne(queryWrapper, false);
|
||||
ProcessVehicleInternationalReleaseVo processVehicleInternationalReleaseVo = new ProcessVehicleInternationalReleaseVo();
|
||||
BeanUtils.copyProperties(lawsVehicleInternationalLibrary, processVehicleInternationalReleaseVo);
|
||||
BeanUtils.copyProperties(lawsVehicleInternationalLibrarySublist, processVehicleInternationalReleaseVo);
|
||||
processVehicleInternationalReleaseVo.setId(lawsVehicleInternationalLibrary.getId());
|
||||
return Result.OK(processVehicleInternationalReleaseVo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<?> delete(JSONObject jsonObject) {
|
||||
String id = jsonObject.getString("id");
|
||||
if(StringUtils.isBlank(id)){
|
||||
return Result.error(ResultCommon.PLEASE_SELECT_DATA);
|
||||
}
|
||||
// 删除主表数据
|
||||
removeById(id);
|
||||
// 删除子表数据
|
||||
lawsVehicleInternationalLibrarySublistService.remove(new LambdaQueryWrapper<LawsVehicleInternationalLibrarySublist>().eq(LawsVehicleInternationalLibrarySublist::getVehicleId, id));
|
||||
return Result.OK(ResultCommon.OK);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<?> abolish(JSONObject jsonObject) {
|
||||
String id = jsonObject.getString("id");
|
||||
if(StringUtils.isBlank(id)){
|
||||
return Result.error(ResultCommon.PLEASE_SELECT_DATA);
|
||||
}
|
||||
LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary = getById(id);
|
||||
if (Constant.ABOLISH.equals(lawsVehicleInternationalLibrary.getState())) {
|
||||
throw new JeroBootException((Objects.equals(LocaleContextHolder.getLocale(), Locale.ENGLISH) ?
|
||||
"The status is already abolished" : "状态已经是废止了"));
|
||||
}
|
||||
lawsVehicleInternationalLibrary.setState(Constant.ABOLISH);
|
||||
updateById(lawsVehicleInternationalLibrary);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<?> replace(ProcessVehicleInternationalReleaseVo processVehicleInternationalReleaseVo) {
|
||||
// 原数据
|
||||
String oldId = processVehicleInternationalReleaseVo.getId();
|
||||
// 原数据的整车型号
|
||||
LawsVehicleInternationalLibrary oldMainData = getById(oldId);
|
||||
if (Objects.isNull(oldMainData)) {
|
||||
throw new JeroBootException(ResultCommon.PARAMETERS_CANNOT_BE_NULL);
|
||||
}
|
||||
String oldVehicleModel = oldMainData.getVehicleModel();
|
||||
// 新数据
|
||||
LawsVehicleInternationalLibrary newMainData = new LawsVehicleInternationalLibrary();
|
||||
BeanUtils.copyProperties(processVehicleInternationalReleaseVo, newMainData);
|
||||
newMainData.setState(Constant.TAKE_EFFECT);
|
||||
newMainData.setIsFinish(Constant.IS_FINISH);
|
||||
newMainData.setInsteadVehicleModel(oldVehicleModel);
|
||||
newMainData.setId(null);
|
||||
LawsVehicleInternationalLibrarySublist lawsVehicleInternationalLibrarySublist = new LawsVehicleInternationalLibrarySublist();
|
||||
BeanUtils.copyProperties(processVehicleInternationalReleaseVo, lawsVehicleInternationalLibrarySublist);
|
||||
// 保存新数据
|
||||
save(newMainData);
|
||||
String vehicleId = newMainData.getId();
|
||||
lawsVehicleInternationalLibrarySublist.setId(null);
|
||||
lawsVehicleInternationalLibrarySublist.setVehicleId(vehicleId);
|
||||
lawsVehicleInternationalLibrarySublistService.save(lawsVehicleInternationalLibrarySublist);
|
||||
// 修改旧数据的状态为作废
|
||||
LambdaUpdateWrapper<LawsVehicleInternationalLibrary> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
|
||||
lambdaUpdateWrapper.eq(LawsVehicleInternationalLibrary::getId, oldId);
|
||||
lambdaUpdateWrapper.set(LawsVehicleInternationalLibrary::getState, Constant.ABOLISH);
|
||||
update(lambdaUpdateWrapper);
|
||||
return Result.OK();
|
||||
}
|
||||
|
||||
@Override
|
||||
public ModelAndView exportXls(HttpServletRequest request) {
|
||||
LambdaQueryWrapper<LawsVehicleInternationalLibrary> lambdaQueryWrapper = generationWrapper(request);
|
||||
String selections = request.getParameter("selections");
|
||||
ModelAndView mv = new ModelAndView(new JeecgEntityExcelView());
|
||||
if(!oConvertUtils.isEmpty(selections)){
|
||||
lambdaQueryWrapper.in(LawsVehicleInternationalLibrary::getId, Arrays.asList(selections.split(",")));
|
||||
}
|
||||
List<LawsVehicleInternationalLibrary> list = list(lambdaQueryWrapper);
|
||||
List<String> collectIds = list.stream().map(LawsVehicleInternationalLibrary::getId).collect(Collectors.toList());
|
||||
List<ProcessVehicleInternationalReleaseVo> excelList = new ArrayList<>();
|
||||
for (String collectId : collectIds) {
|
||||
LawsVehicleInternationalLibrary lawsVehicleInternationalLibrary = getById(collectId);
|
||||
LambdaQueryWrapper<LawsVehicleInternationalLibrarySublist> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.eq(LawsVehicleInternationalLibrarySublist::getVehicleId, collectId);
|
||||
LawsVehicleInternationalLibrarySublist lawsVehicleInternationalLibrarySublist = lawsVehicleInternationalLibrarySublistService.getOne(queryWrapper, false);
|
||||
ProcessVehicleInternationalReleaseVo processVehicleInternationalReleaseVo = new ProcessVehicleInternationalReleaseVo();
|
||||
BeanUtils.copyProperties(lawsVehicleInternationalLibrary, processVehicleInternationalReleaseVo);
|
||||
BeanUtils.copyProperties(lawsVehicleInternationalLibrarySublist, processVehicleInternationalReleaseVo);
|
||||
processVehicleInternationalReleaseVo.setId(lawsVehicleInternationalLibrary.getId());
|
||||
excelList.add(processVehicleInternationalReleaseVo);
|
||||
}
|
||||
//导出文件名称
|
||||
mv.addObject(JeroController.FILE_NAME, "国际");
|
||||
mv.addObject(JeroController.CLASS, ProcessVehicleInternationalReleaseVo.class);
|
||||
mv.addObject(JeroController.PARAMS, createExportParams("密级:核心商密□普通商密□内部资料■外部公开□", "国际"));
|
||||
mv.addObject(NormalExcelConstants.DATA_LIST, excelList);
|
||||
return mv;
|
||||
}
|
||||
|
||||
private ExportParams createExportParams(String title, String sheetName) {
|
||||
ExportParams exportParams = new ExportParams();
|
||||
exportParams.setTitle(title);
|
||||
exportParams.setType(ExcelType.HSSF);
|
||||
exportParams.setSheetName(sheetName);
|
||||
exportParams.setStyle(CustomExcelExportStyler.class);
|
||||
return exportParams;
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<LawsVehicleInternationalLibrary> generationWrapper(HttpServletRequest request) {
|
||||
LambdaQueryWrapper<LawsVehicleInternationalLibrary> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
String vehicleModel = request.getParameter("vehicleModel"); // 整车型号
|
||||
String vinTopEight = request.getParameter("vinTopEight"); // VIN前八位
|
||||
String vehicleTypeCode = request.getParameter("vehicleTypeCode"); // 车型代码
|
||||
if (StringUtils.isNotBlank(vehicleModel)) {
|
||||
lambdaQueryWrapper.like(LawsVehicleInternationalLibrary::getVehicleModel, vehicleModel);
|
||||
}
|
||||
if (StringUtils.isNotBlank(vinTopEight)) {
|
||||
lambdaQueryWrapper.like(LawsVehicleInternationalLibrary::getVinTopEight, vinTopEight);
|
||||
}
|
||||
if (StringUtils.isNotBlank(vehicleTypeCode)) {
|
||||
LambdaQueryWrapper<LawsVehicleInternationalLibrarySublist> queryWrapper = new LambdaQueryWrapper<>();
|
||||
queryWrapper.select(LawsVehicleInternationalLibrarySublist::getVehicleId);
|
||||
queryWrapper.like(LawsVehicleInternationalLibrarySublist::getVehicleTypeCode, vehicleTypeCode);
|
||||
List<LawsVehicleInternationalLibrarySublist> list = lawsVehicleInternationalLibrarySublistService.list(queryWrapper);
|
||||
List<String> ids = list.stream().map(LawsVehicleInternationalLibrarySublist::getVehicleId).collect(Collectors.toList());
|
||||
if (!CollectionUtils.isEmpty(ids)) {
|
||||
lambdaQueryWrapper.in(LawsVehicleInternationalLibrary::getId, ids);
|
||||
}else {
|
||||
lambdaQueryWrapper.in(LawsVehicleInternationalLibrary::getId, "");
|
||||
}
|
||||
}
|
||||
lambdaQueryWrapper.eq(LawsVehicleInternationalLibrary::getIsFinish, Constant.IS_FINISH); // 只展示走完流程的数据
|
||||
return lambdaQueryWrapper;
|
||||
}
|
||||
}
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
package com.jero.modules.laws.businessSupport.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.modules.laws.businessSupport.entity.LawsVehicleInternationalLibrarySublist;
|
||||
import com.jero.modules.laws.businessSupport.mapper.LawsVehicleInternationalLibrarySublistMapper;
|
||||
import com.jero.modules.laws.businessSupport.service.ILawsVehicleInternationalLibrarySublistService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 国际整车型号及VIN前八位管控库-子表 服务实现类
|
||||
* </p>
|
||||
*
|
||||
* @author sz
|
||||
* @since 2024-09-29
|
||||
*/
|
||||
@Service
|
||||
public class LawsVehicleInternationalLibrarySublistServiceImpl extends ServiceImpl<LawsVehicleInternationalLibrarySublistMapper, LawsVehicleInternationalLibrarySublist> implements ILawsVehicleInternationalLibrarySublistService {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,166 @@
|
||||
<?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="international_vehicle_control_publish" name="国际整车型号和VIN前八位管控流程" isExecutable="true">
|
||||
<startEvent id="sid-c483576e-82f8-4695-91b1-5639e83d929a"/>
|
||||
<userTask id="sid-ae80c354-9ade-43d7-be0b-ccfc2b347fe2" name="发起人发起" activiti:assignee="${importStartUser}"/>
|
||||
<exclusiveGateway id="sid-e78d13e2-999f-43c5-a571-dcf35c256e1e"/>
|
||||
<userTask id="sid-79b7c959-9003-4721-aa83-ea69780d3b84" name="起草部门经理审批" activiti:assignee="${checkUserLeader1}"/>
|
||||
<exclusiveGateway id="sid-f8b50b7d-1289-4833-a2ae-b7d8a9f712cd"/>
|
||||
<userTask id="sid-94189bb6-b253-4e58-baee-d011679f745d" name="项目经理审批 " activiti:assignee="${checkUserLeader2}">
|
||||
<multiInstanceLoopCharacteristics isSequential="false" activiti:collection="checkUserLeader2List" activiti:elementVariable="checkUserLeader2">
|
||||
<completionCondition>${!pass}</completionCondition>
|
||||
</multiInstanceLoopCharacteristics>
|
||||
</userTask>
|
||||
<exclusiveGateway id="sid-247f6f63-97e9-465c-8358-7e9836194a8f"/>
|
||||
<userTask id="sid-bb749423-1e38-4640-b258-8615962ec78a" name="法规部门处理人审批 " activiti:assignee="${checkUserLeader3}"/>
|
||||
<exclusiveGateway id="sid-df211942-ecdc-43f5-a2e0-ca41c5f47962"/>
|
||||
<sequenceFlow id="sid-66878423-85f6-48a7-a5ca-a399311f2b66" sourceRef="sid-c483576e-82f8-4695-91b1-5639e83d929a" targetRef="sid-ae80c354-9ade-43d7-be0b-ccfc2b347fe2"/>
|
||||
<sequenceFlow id="sid-0b5aaa39-d086-497f-bcc0-32a2eb37bbf4" sourceRef="sid-ae80c354-9ade-43d7-be0b-ccfc2b347fe2" targetRef="sid-e78d13e2-999f-43c5-a571-dcf35c256e1e"/>
|
||||
<sequenceFlow id="sid-849a2487-cdec-4b9d-bd7f-50f89e0acdaf" sourceRef="sid-e78d13e2-999f-43c5-a571-dcf35c256e1e" targetRef="sid-79b7c959-9003-4721-aa83-ea69780d3b84">
|
||||
<conditionExpression xsi:type="tFormalExpression"/>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-79f010a7-6934-413c-b044-ff7a2953c1a7" sourceRef="sid-79b7c959-9003-4721-aa83-ea69780d3b84" targetRef="sid-f8b50b7d-1289-4833-a2ae-b7d8a9f712cd"/>
|
||||
<sequenceFlow id="sid-71c9fe76-394d-4472-ae7e-e7b51176ebdb" sourceRef="sid-f8b50b7d-1289-4833-a2ae-b7d8a9f712cd" targetRef="sid-94189bb6-b253-4e58-baee-d011679f745d" name="通过">
|
||||
<conditionExpression xsi:type="tFormalExpression">${pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-7f794a11-e741-4a27-ba8c-e55208565446" sourceRef="sid-94189bb6-b253-4e58-baee-d011679f745d" targetRef="sid-247f6f63-97e9-465c-8358-7e9836194a8f"/>
|
||||
<sequenceFlow id="sid-bd755d1e-a72b-433e-8003-c17fc969e990" sourceRef="sid-247f6f63-97e9-465c-8358-7e9836194a8f" targetRef="sid-bb749423-1e38-4640-b258-8615962ec78a" name="通过">
|
||||
<conditionExpression xsi:type="tFormalExpression">${pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-d619a790-a898-4dec-bb5f-fd6f3d45b797" sourceRef="sid-bb749423-1e38-4640-b258-8615962ec78a" targetRef="sid-df211942-ecdc-43f5-a2e0-ca41c5f47962"/>
|
||||
<userTask id="sid-af5db21f-d883-4309-bdf6-c037495fbcd7" name="法规部门经理审批 " activiti:assignee="${checkUserLeader4}"/>
|
||||
<sequenceFlow id="sid-9bf4f4cb-e555-4344-90a6-45ad53769fe0" sourceRef="sid-df211942-ecdc-43f5-a2e0-ca41c5f47962" targetRef="sid-af5db21f-d883-4309-bdf6-c037495fbcd7" name="通过">
|
||||
<conditionExpression xsi:type="tFormalExpression">${pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<exclusiveGateway id="sid-34d54902-ab6a-401e-9bd7-515f9dc7c270"/>
|
||||
<sequenceFlow id="sid-fcb81dc6-7ac9-4372-8eb1-84cc1377257d" sourceRef="sid-af5db21f-d883-4309-bdf6-c037495fbcd7" targetRef="sid-34d54902-ab6a-401e-9bd7-515f9dc7c270"/>
|
||||
<endEvent id="sid-2237e720-869a-4fe2-9f77-ffc99093d373">
|
||||
<extensionElements>
|
||||
<activiti:executionListener event="end" delegateExpression="${ProcessInternationalVehicleEndListener}"/>
|
||||
</extensionElements>
|
||||
</endEvent>
|
||||
<sequenceFlow id="sid-305e193f-ec3a-4bd3-ada2-81865cb97774" sourceRef="sid-34d54902-ab6a-401e-9bd7-515f9dc7c270" targetRef="sid-2237e720-869a-4fe2-9f77-ffc99093d373" name="通过">
|
||||
<conditionExpression xsi:type="tFormalExpression">${pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-53d5f67e-e7dc-4af7-9785-5183b7d85f66" sourceRef="sid-f8b50b7d-1289-4833-a2ae-b7d8a9f712cd" targetRef="sid-ae80c354-9ade-43d7-be0b-ccfc2b347fe2" name="驳回">
|
||||
<conditionExpression xsi:type="tFormalExpression">${!pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-b8277378-78f5-450e-9052-62fd016736bb" sourceRef="sid-247f6f63-97e9-465c-8358-7e9836194a8f" targetRef="sid-ae80c354-9ade-43d7-be0b-ccfc2b347fe2" name="驳回">
|
||||
<conditionExpression xsi:type="tFormalExpression">${!pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-e7f50f04-fb9d-4be5-b294-4291166c139e" sourceRef="sid-df211942-ecdc-43f5-a2e0-ca41c5f47962" targetRef="sid-ae80c354-9ade-43d7-be0b-ccfc2b347fe2" name="驳回">
|
||||
<conditionExpression xsi:type="tFormalExpression">${!pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
<sequenceFlow id="sid-e3fa4efd-9df3-44d3-9822-8402e8e59a03" sourceRef="sid-34d54902-ab6a-401e-9bd7-515f9dc7c270" targetRef="sid-ae80c354-9ade-43d7-be0b-ccfc2b347fe2" name="驳回">
|
||||
<conditionExpression xsi:type="tFormalExpression">${!pass}</conditionExpression>
|
||||
</sequenceFlow>
|
||||
</process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_international_vehicle">
|
||||
<bpmndi:BPMNPlane bpmnElement="国际整车型号和VIN前八位管控流程" id="BPMNPlane_国际整车型号和VIN前八位管控流程">
|
||||
<bpmndi:BPMNShape id="shape-1b8786a6-c928-4733-8b58-4316532d1738" bpmnElement="sid-c483576e-82f8-4695-91b1-5639e83d929a">
|
||||
<omgdc:Bounds x="-270.0" y="-32.5" width="30.0" height="30.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-291ab3a7-8f2e-41aa-9861-fb4c6755d124" bpmnElement="sid-ae80c354-9ade-43d7-be0b-ccfc2b347fe2">
|
||||
<omgdc:Bounds x="-215.0" y="-35.0" width="60.0" height="35.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-d535c2de-f507-4627-b8fa-5be689d7b8db" bpmnElement="sid-e78d13e2-999f-43c5-a571-dcf35c256e1e">
|
||||
<omgdc:Bounds x="-135.0" y="-37.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-ef5d37e2-a211-4575-b30b-2b2bd8d7bcab" bpmnElement="sid-79b7c959-9003-4721-aa83-ea69780d3b84">
|
||||
<omgdc:Bounds x="-70.0" y="-35.0" width="60.0" height="35.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-eac56840-0879-4358-8ee7-a250284ab306" bpmnElement="sid-f8b50b7d-1289-4833-a2ae-b7d8a9f712cd">
|
||||
<omgdc:Bounds x="10.0" y="-37.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-a572afb0-a619-446f-b1f4-eb0d7b906da7" bpmnElement="sid-94189bb6-b253-4e58-baee-d011679f745d">
|
||||
<omgdc:Bounds x="70.0" y="-35.0" width="55.0" height="35.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-3dcacef4-4e43-4577-8f31-3ae9b9a62f1e" bpmnElement="sid-247f6f63-97e9-465c-8358-7e9836194a8f">
|
||||
<omgdc:Bounds x="145.0" y="-37.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-03fcc127-c30d-48f0-888e-2d1304907c04" bpmnElement="sid-bb749423-1e38-4640-b258-8615962ec78a">
|
||||
<omgdc:Bounds x="207.5" y="-35.0" width="55.0" height="35.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="shape-1061f45b-1f54-4ebb-a637-eddfede008f0" bpmnElement="sid-df211942-ecdc-43f5-a2e0-ca41c5f47962">
|
||||
<omgdc:Bounds x="285.0" y="-37.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="edge-b58017b7-9bd9-43de-ba39-dedea8904492" bpmnElement="sid-66878423-85f6-48a7-a5ca-a399311f2b66">
|
||||
<omgdi:waypoint x="-240.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="-215.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-2f0800c0-0565-4cf0-a2b4-80cfbeebdd1d" bpmnElement="sid-0b5aaa39-d086-497f-bcc0-32a2eb37bbf4">
|
||||
<omgdi:waypoint x="-155.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="-135.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-f0723056-f870-4f95-bca4-b403a9f990bd" bpmnElement="sid-849a2487-cdec-4b9d-bd7f-50f89e0acdaf">
|
||||
<omgdi:waypoint x="-95.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="-70.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-96f1ce6d-2651-4370-968f-e73aa30e4404" bpmnElement="sid-79f010a7-6934-413c-b044-ff7a2953c1a7">
|
||||
<omgdi:waypoint x="-10.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="10.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-04a7fd2f-5cbc-43e1-9284-90fe1e38690a" bpmnElement="sid-71c9fe76-394d-4472-ae7e-e7b51176ebdb">
|
||||
<omgdi:waypoint x="50.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="70.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-14867d4b-51fc-4981-9478-44edbf6f6947" bpmnElement="sid-7f794a11-e741-4a27-ba8c-e55208565446">
|
||||
<omgdi:waypoint x="125.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="145.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-4c164a32-a59e-41ab-8ac5-43dce317d3c4" bpmnElement="sid-bd755d1e-a72b-433e-8003-c17fc969e990">
|
||||
<omgdi:waypoint x="185.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="207.5" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-2ea2f120-edba-4456-bf32-8f76d7df1e32" bpmnElement="sid-d619a790-a898-4dec-bb5f-fd6f3d45b797">
|
||||
<omgdi:waypoint x="262.5" y="-17.5"/>
|
||||
<omgdi:waypoint x="285.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape id="shape-d1e17842-0c3d-4948-ad35-3fdd7954f766" bpmnElement="sid-af5db21f-d883-4309-bdf6-c037495fbcd7">
|
||||
<omgdc:Bounds x="350.0" y="-35.0" width="60.0" height="35.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="edge-c4eb99db-d270-4179-b661-348da07fb90c" bpmnElement="sid-9bf4f4cb-e555-4344-90a6-45ad53769fe0">
|
||||
<omgdi:waypoint x="325.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="350.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape id="shape-0bb626a3-0730-4443-a34d-de0f35f7e7fd" bpmnElement="sid-34d54902-ab6a-401e-9bd7-515f9dc7c270">
|
||||
<omgdc:Bounds x="425.0" y="-37.5" width="40.0" height="40.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="edge-00e76dfa-3cfe-46b1-afdd-474b3c21489d" bpmnElement="sid-fcb81dc6-7ac9-4372-8eb1-84cc1377257d">
|
||||
<omgdi:waypoint x="410.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="425.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape id="shape-86261f2f-2d59-4517-8199-66a9b55200d0" bpmnElement="sid-2237e720-869a-4fe2-9f77-ffc99093d373">
|
||||
<omgdc:Bounds x="485.0" y="-32.5" width="30.0" height="30.0"/>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="edge-f7be5a88-3842-4155-b494-55f9952c7817" bpmnElement="sid-305e193f-ec3a-4bd3-ada2-81865cb97774">
|
||||
<omgdi:waypoint x="465.0" y="-17.5"/>
|
||||
<omgdi:waypoint x="485.0" y="-17.5"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-32be22aa-dbc5-42f0-b73c-340cb4bb97a7" bpmnElement="sid-53d5f67e-e7dc-4af7-9785-5183b7d85f66">
|
||||
<omgdi:waypoint x="30.0" y="2.5"/>
|
||||
<omgdi:waypoint x="30.0" y="31.25"/>
|
||||
<omgdi:waypoint x="-185.0" y="31.25"/>
|
||||
<omgdi:waypoint x="-185.0" y="0.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-55ba399a-7e5e-447c-8631-6d444e5c15d1" bpmnElement="sid-b8277378-78f5-450e-9052-62fd016736bb">
|
||||
<omgdi:waypoint x="165.0" y="2.5"/>
|
||||
<omgdi:waypoint x="165.0" y="31.25"/>
|
||||
<omgdi:waypoint x="-185.0" y="31.25"/>
|
||||
<omgdi:waypoint x="-185.0" y="0.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-50345680-a9ff-42bf-8cad-a253f5926b47" bpmnElement="sid-e7f50f04-fb9d-4be5-b294-4291166c139e">
|
||||
<omgdi:waypoint x="305.0" y="2.5"/>
|
||||
<omgdi:waypoint x="305.00003" y="31.25"/>
|
||||
<omgdi:waypoint x="-185.0" y="31.249998"/>
|
||||
<omgdi:waypoint x="-184.99998" y="0.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="edge-79bb7ec3-0f2f-47c4-b59f-2689bac18a75" bpmnElement="sid-e3fa4efd-9df3-44d3-9822-8402e8e59a03">
|
||||
<omgdi:waypoint x="445.0" y="2.5"/>
|
||||
<omgdi:waypoint x="445.0" y="31.25"/>
|
||||
<omgdi:waypoint x="-185.0" y="31.249996"/>
|
||||
<omgdi:waypoint x="-185.0" y="0.0"/>
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</definitions>
|
||||
Reference in New Issue
Block a user