Merge remote-tracking branch 'origin/master'

This commit is contained in:
yjz
2023-10-19 16:07:48 +08:00
18 changed files with 218 additions and 83 deletions
+34
View File
@@ -270,4 +270,38 @@ CREATE TABLE `laws_asms_open_api`
alter table laws_asms_open_api
comment '汽车标准数字化平台ASMS开放API接口管理';
DROP TABLE IF EXISTS `laws_asms_domestic`;
CREATE TABLE `laws_asms_domestic`
(
`id` varchar(100) NOT NULL PRIMARY KEY COMMENT '主键ID',
`code` varchar(100) COMMENT '标准法规编号/标准号',
`name` varchar(100) COMMENT '标准法规名称/标准名称',
`english_name` varchar(100) COMMENT '法规英文名称',
`type` varchar(100) COMMENT '标准法规类别/标准类别',
`applicable_certification_list_string` varchar(100) COMMENT '适用认证',
`applicable_models_list_string` varchar(100) COMMENT '适用车型拼接名称',
`degree_adoption` varchar(100) COMMENT '采标程度',
`drafting_people` varchar(500) COMMENT '起草人',
`drafting_unit` varchar(500) COMMENT '起草单位',
`focal_point_name` varchar(100) COMMENT '标准领域名称',
`implementation_date` varchar(100) COMMENT '实施日期',
`international_standard` varchar(100) COMMENT '采用国际标准号',
`new_car_implementation_date` varchar(100) COMMENT '新车实施日期',
`new_register_car_implementation_date` varchar(100) COMMENT '新注册车实施日期',
`power_type_list_string` varchar(100) COMMENT '动力类型',
`production_car_implementation_date` varchar(100) COMMENT '在产车实施日期',
`proposing_department` varchar(100) COMMENT '提出部门',
`publish_date` varchar(100) COMMENT '发布日期',
`replace_code` varchar(100) COMMENT '代替标准号',
`scope_application` varchar(100) COMMENT '适用范围',
`standard_nature` varchar(100) COMMENT '标准性质',
`standard_status` varchar(100) COMMENT '标准状态',
`subcommittee` varchar(100) COMMENT '分标委',
`create_time` varchar(100) COMMENT '创建时间',
`update_time` varchar(100) COMMENT '更新时间',
`is_sync` varchar(5) COMMENT '是否同步(0未同步,1已同步)'
) COMMENT = 'ASMS国内法规';
alter table laws_asms_domestic
comment 'ASMS国内法规';
@@ -1,30 +0,0 @@
package com.jero.modules.docking.asms.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.common.api.vo.Result;
import com.jero.modules.docking.asms.util.AsmsPostUtil;
import com.jero.modules.laws.common.constant.FieldCommon;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
/**
* @Author: liao
* @Date: 2023/10/17 17:36
* @Description:
*/
@Api(tags="国内法规标准")
@RestController
@RequestMapping("/asms")
public class AsmsController {
@Autowired
private AsmsPostUtil asmsPostUtil;
@GetMapping(value = "/getInfo")
public Result<Object> getInfo(String uri, Map<String, String> map) {
List<Map<String, String>> mapList = asmsPostUtil.sendGetReq(uri, map);
return Result.OK(mapList);
}
}
@@ -1,16 +1,14 @@
package com.jero.modules.docking.asms.api.controller;
package com.jero.modules.docking.asms.controller;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSON;
import com.jero.common.api.vo.Result;
import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.api.service.ILawsAsmsOpenApiService;
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.service.ILawsAsmsOpenApiService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.docking.asms.util.AsmsPostUtil;
import lombok.extern.slf4j.Slf4j;
@@ -18,7 +16,6 @@ import com.jero.common.system.base.controller.JeroController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
@@ -1,4 +1,4 @@
package com.jero.modules.docking.asms.api.entity;
package com.jero.modules.docking.asms.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
@@ -1,7 +1,7 @@
package com.jero.modules.docking.asms.api.mapper;
package com.jero.modules.docking.asms.mapper;
import org.apache.ibatis.annotations.Mapper;
import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
@@ -1,7 +1,7 @@
<?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.docking.asms.api.mapper.LawsAsmsOpenApiMapper">
<resultMap id="LawsAsmsOpenApiResultMap" type="com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi">
<mapper namespace="com.jero.modules.docking.asms.mapper.LawsAsmsOpenApiMapper">
<resultMap id="LawsAsmsOpenApiResultMap" type="com.jero.modules.docking.asms.entity.LawsAsmsOpenApi">
<id column="id" property="id" />
<result column="api_name" property="apiName" />
<result column="api_url" property="apiUrl" />
@@ -1,6 +1,6 @@
package com.jero.modules.docking.asms.api.service;
package com.jero.modules.docking.asms.service;
import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -1,13 +1,11 @@
package com.jero.modules.docking.asms.api.service.impl;
package com.jero.modules.docking.asms.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.Result;
import com.jero.modules.docking.asms.api.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.api.mapper.LawsAsmsOpenApiMapper;
import com.jero.modules.docking.asms.api.service.ILawsAsmsOpenApiService;
import com.jero.modules.docking.asms.entity.LawsAsmsOpenApi;
import com.jero.modules.docking.asms.mapper.LawsAsmsOpenApiMapper;
import com.jero.modules.docking.asms.service.ILawsAsmsOpenApiService;
import com.jero.modules.docking.asms.util.AsmsPostUtil;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.service.ISysDictItemService;
@@ -20,7 +18,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.jero.common.exception.JeroBootException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@@ -3,6 +3,8 @@ package com.jero.modules.docking.asms.util;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.RedisUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -13,10 +15,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Component;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
/**
* @Author: liao
@@ -24,6 +23,7 @@ import java.util.Objects;
* @Description: 远程调用
*/
@Component
@Slf4j
public class AsmsPostUtil {
@Autowired
@@ -62,6 +62,7 @@ public class AsmsPostUtil {
token = resultMap.get("token");
// 将新获取的token存入redis
redisUtil.set(ASMS_SYSTEM_AUTH_TOKEN, token, expire * 60 * 60);
log.info("new token is creating: {}", token);
}
return token;
}
@@ -75,9 +76,10 @@ public class AsmsPostUtil {
**/
public List<Map<String, String>> sendGetReq(String uri, Map<String, String> map) {
// 准备请求头
String token = getToken();
HttpHeaders headers = new HttpHeaders();
headers.set("Content-Type", "application/x-www-form-urlencoded");
headers.set("X-Access-Token", getToken());
headers.set("X-Access-Token", token);
if (StringUtils.isBlank(uri)) {
throw new JeroBootException("url不能为空");
@@ -91,19 +93,32 @@ public class AsmsPostUtil {
url += "?" + s.substring(1);
}
ResponseEntity<Result> responseEntity = restTemplate.exchange(url.toString(),
HttpMethod.GET, new HttpEntity<>(null, headers), Result.class);
ResponseEntity<Result> responseEntity;
try {
log.info("request url : {}", url);
responseEntity = restTemplate.exchange(url.toString(),
HttpMethod.GET, new HttpEntity<>(null, headers), Result.class);
} catch (Exception e) {
log.info("old token is deleting: {}", token);
redisUtil.del(ASMS_SYSTEM_AUTH_TOKEN);
e.printStackTrace();
throw new JeroBootException("操作失败,请稍后重试");
}
if (!responseEntity.getBody().isSuccess()) {
throw new JeroBootException("汽车标准数字化平台:请求发送失败");
}
Map<String, Object> resultMap = (Map<String, Object>) responseEntity.getBody().getResult();
if (Objects.isNull(resultMap)) {
throw new JeroBootException("返回数据为空");
}
List<Map<String, String>> mapList = (List<Map<String, String>>) resultMap.get("records");
mapList.forEach(eMap -> {
StringBuilder sb = new StringBuilder();
eMap.forEach((k, v) -> sb.append(k + ":" + v + ","));
System.out.println(sb);
});
if (CollectionUtils.isEmpty(mapList)) {
mapList = new ArrayList<>();
Map<String, String> result = (Map<String, String>) responseEntity.getBody().getResult();
mapList.add(result);
}
log.info("返回{}条数据", mapList.size());
return mapList;
}
@@ -89,6 +89,19 @@ public class WorkCenterController {
return Result.OK(sentList);
}
@ApiOperation(value = "查询全部流程")
@GetMapping("/getAllList")
public Result<?> getAllList(ProcessAll processAll,
@RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProcessAll> queryWrapper = getProcessAllQueryWrapper(processAll);
Page<ProcessAll> page = new Page<>(pageNo, pageSize);
IPage<ProcessAll> sentList = processAllService.getAllList(page, queryWrapper);
return Result.OK(sentList);
}
@NotNull
private QueryWrapper<ProcessAll> getProcessAllQueryWrapper(ProcessAll processAll) {
String prcName = processAll.getPrcName();
@@ -105,7 +118,7 @@ public class WorkCenterController {
return queryWrapper;
}
@ApiOperation(value = "撤销流程")
@ApiOperation(value = "强制撤销")
@PostMapping("/delete")
public Result<?> delete(@RequestBody Map<String, String> map) {
String processInstanceId = map.get("processInstanceId");
@@ -1,5 +1,6 @@
package com.jero.modules.activiti.enums;
import com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl;
import lombok.AllArgsConstructor;
import lombok.Getter;
@@ -13,11 +14,13 @@ public enum ProcessTypeEnum {
/**
* A
*/
A("企标制修订流程", 1,"Process_17bj7d9");
A("企标制修订流程", 1, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl"),
B("企标立项变更流程",2, "com.jero.modules.activiti.process.esInitChange.service.impl.ProcessEsInitChangeServiceImpl"),
;
private String name;
private Integer value;
private String key;
private String implClass;
public static String getNameByValue(Integer value) {
for (ProcessTypeEnum enumObject : values()) {
@@ -28,9 +31,18 @@ public enum ProcessTypeEnum {
return null;
}
public static Integer getValueByKey(String key) {
public static String getClassByValue(Integer value) {
for (ProcessTypeEnum enumObject : values()) {
if (enumObject.getKey().equals(key)) {
if (enumObject.getValue().equals(value)) {
return enumObject.getImplClass();
}
}
return null;
}
public static Integer getValueByName(String name) {
for (ProcessTypeEnum enumObject : values()) {
if (enumObject.getName().equals(name)) {
return enumObject.getValue();
}
}
@@ -1,24 +1,16 @@
package com.jero.modules.activiti.listener;
import java.util.List;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.enums.ProcessStatusEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.util.SpringContextUtil;
import org.activiti.bpmn.model.ActivitiListener;
import org.activiti.bpmn.model.FlowElement;
import org.activiti.engine.*;
import org.activiti.engine.delegate.DelegateExecution;
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.ExecutionListener;
import org.activiti.engine.delegate.TaskListener;
import org.activiti.engine.repository.ProcessDefinition;
import org.activiti.engine.runtime.NativeProcessInstanceQuery;
import org.activiti.engine.runtime.ProcessInstance;
/**
* @author liJiaRao
@@ -45,7 +37,7 @@ public class StartListener implements ExecutionListener {
//新增流程总表信息(剩余的内容在启动流程时填充)
ProcessAll processAll = new ProcessAll();
processAll.setProcessInstanceId(processInstanceId);
processAll.setPrcType(ProcessTypeEnum.getValueByKey(key));
processAll.setPrcType(ProcessTypeEnum.getValueByName(name));
processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue());
processAllService.save(processAll);
}
@@ -19,4 +19,6 @@ public interface ProcessAllMapper extends BaseMapper<ProcessAll> {
IPage<ProcessAll> getCompletedList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper);
IPage<ProcessAll> getSentList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper);
IPage<ProcessAll> getAllList(Page<ProcessAll> page, @Param(Constants.WRAPPER) QueryWrapper<ProcessAll> queryWrapper);
}
@@ -17,7 +17,7 @@
${ew.customSqlSegment}
) p
left join process_approval_record par on p.process_instance_id = par.process_instance_id
WHERE par.finish_flag = 0
WHERE par.finish_flag = 0 or par.id is null
group by p.process_instance_id
</select>
@@ -30,7 +30,20 @@
${ew.customSqlSegment}
) p
left join process_approval_record par on p.process_instance_id = par.process_instance_id
WHERE par.finish_flag = 0
WHERE par.finish_flag = 0 or par.id is null
group by p.process_instance_id
</select>
<select id="getAllList" resultType="com.jero.modules.activiti.entity.ProcessAll">
select p.*, group_concat(par.user_id) as handleUserId
from (
select pa.*, max(par.create_time) as receivedTaskTime, max(par.end_time) as completedTaskTime
from process_all pa
left join process_approval_record par on pa.process_instance_id = par.process_instance_id
${ew.customSqlSegment}
) p
left join process_approval_record par on p.process_instance_id = par.process_instance_id
WHERE par.finish_flag = 0 or par.id is null
group by p.process_instance_id
</select>
</mapper>
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.mapper.ProcessApprovalRecordMapper;
import org.activiti.engine.RuntimeService;
import org.springframework.stereotype.Service;
@@ -46,13 +47,29 @@ public class ProcessAllService extends ServiceImpl<ProcessAllMapper, ProcessAll>
}
public void delete(String processInstanceId) {
runtimeService.deleteProcessInstance(processInstanceId,"撤销");
LambdaQueryWrapper<ProcessAll> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessAll::getProcessInstanceId,processInstanceId);
this.remove(wrapper);
//activiti撤销
runtimeService.deleteProcessInstance(processInstanceId,"强制撤销");
//获得流程总表
ProcessAll processAll = getByProcessInstanceId(processInstanceId);
//删除流程总表
this.removeById(processAll.getId());
//删除审批表
LambdaQueryWrapper<ProcessApprovalRecord> wrapper1 = new LambdaQueryWrapper<>();
wrapper1.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
processApprovalRecordMapper.delete(wrapper1);
//业务表修改为草稿
Integer prcType = processAll.getPrcType();
WorkCenterService classByValue = null;
try {
classByValue = (WorkCenterService) Class.forName(ProcessTypeEnum.getClassByValue(prcType)).newInstance();
}catch (Exception e) {
log.error(e.getMessage(),e);
}
classByValue.changeToDraft(processAll.getProjectId());
//todo 同步删除操作到统一待办
}
public IPage<ProcessAll> getAllList(Page<ProcessAll> page, QueryWrapper<ProcessAll> queryWrapper) {
return processAllMapper.getAllList(page,queryWrapper);
}
}
@@ -0,0 +1,13 @@
package com.jero.modules.activiti.service;
/**
* @author liJiaRao
* @date 2023-10-19 15:22
*/
public interface WorkCenterService {
/**
* 更改业务表为草稿
* @param id
*/
void changeToDraft(String id);
}
@@ -115,4 +115,17 @@ public class FieldCommon {
// 稽查内容
public static final String CHECK_LIST = "checkList";
// 发布稿(原文)
public static final String FILE_PUBLISH_OF_ORIGINAL = "publish_of_original";
// 修改单
public static final String FILE_MODIFICATION_LIST = "modification_list";
// 报批稿
public static final String FILE_DRAFT_FOR_REVIEW = "draft_for_review";
// 送审稿
public static final String FILE_DRAFT_FOR_APPROVAL = "draft_for_approval";
// 征求意见稿
public static final String FILE_DRAFT_FOR_COMMENT = "draft_for_comment";
// 草案
public static final String FILE_DRAFT = "draft";
}
@@ -34,6 +34,8 @@ import com.jero.modules.personal.entity.LawsBrowsingHistory;
import com.jero.modules.personal.entity.LawsStandardCollection;
import com.jero.modules.personal.service.ILawsBrowsingHistoryService;
import com.jero.modules.personal.service.ILawsStandardCollectionService;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
@@ -123,6 +125,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
private EnterpriseStandardAuthUserService esAuthUserService;
@Resource
private WaterMarkUtil waterMarkUtil;
@Autowired
private ISarFileSplitInfoService sarFileSplitInfoService;
/**
* @Author: liao
@@ -165,11 +169,54 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
}
// 是否收藏判断标识
collectionFlag(infoPage.getRecords());
// 标准拆分标识
splitFlag(infoPage.getRecords());
// 待处理
return infoPage;
}
/**
* @Author: liao
* @Date: 2023/10/19 15:36
* @Description: 标准拆分标识
**/
private void splitFlag(List<Map<String, Object>> records) {
// 获取全部id集合
List<String> ids = records.stream().map(kv ->
String.valueOf(kv.get("id"))).collect(Collectors.toList());
if (CollectionUtils.isEmpty(ids)) return;
// 查询标准拆分表
LambdaQueryWrapper<SarFileSplitInfoEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SarFileSplitInfoEO::getStandardId, ids);
queryWrapper.isNotNull(SarFileSplitInfoEO::getPublishBeforeId);
queryWrapper.isNotNull(SarFileSplitInfoEO::getFileType);
List<SarFileSplitInfoEO> sarFileSplitInfoEOList = sarFileSplitInfoService.list(queryWrapper);
if (CollectionUtils.isEmpty(sarFileSplitInfoEOList)) {
return;
}
Map<String, String> flagMap = new HashMap<>();
sarFileSplitInfoEOList.forEach(e -> flagMap.put(e.getStandardId() + "," + e.getFileType(), e.getId()));
records.forEach(map -> {
String id = (String) map.get("id");
map.put(FieldCommon.FILE_PUBLISH_OF_ORIGINAL + FieldCommon._STANDARD_SPLIT,
flagMap.get(id + "," + FieldCommon.FILE_PUBLISH_OF_ORIGINAL));
map.put(FieldCommon.FILE_MODIFICATION_LIST + FieldCommon._STANDARD_SPLIT,
flagMap.get(id + "," + FieldCommon.FILE_MODIFICATION_LIST));
map.put(FieldCommon.FILE_DRAFT_FOR_REVIEW + FieldCommon._STANDARD_SPLIT,
flagMap.get(id + "," + FieldCommon.FILE_DRAFT_FOR_REVIEW));
map.put(FieldCommon.FILE_DRAFT_FOR_APPROVAL + FieldCommon._STANDARD_SPLIT,
flagMap.get(id + "," + FieldCommon.FILE_DRAFT_FOR_APPROVAL));
map.put(FieldCommon.FILE_DRAFT_FOR_COMMENT + FieldCommon._STANDARD_SPLIT,
flagMap.get(id + "," + FieldCommon.FILE_DRAFT_FOR_COMMENT));
map.put(FieldCommon.FILE_DRAFT + FieldCommon._STANDARD_SPLIT,
flagMap.get(id + "," + FieldCommon.FILE_DRAFT));
});
}
@Override
public IPage<Map<String, Object>> getExportData(Map<String, Object> parameterMap, List<LawsTag> fieldList) {
// 获取操作模块