Merge branch 'fix_20230911_UAT' into 'master'

平台件新增字段

See merge request laws-nio/laws-weilai!363
This commit is contained in:
高嵩
2023-10-15 10:50:28 +00:00
215 changed files with 65975 additions and 2319 deletions
@@ -1208,4 +1208,96 @@ MODIFY COLUMN `work_progress_en` text CHARACTER SET utf8mb4 COLLATE utf8mb4_gene
--参数收集清单 添加英文
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Control Component' WHERE `id` = '84fec4a260dc646dc570cbf7cb581dab';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Component Value' WHERE `id` = '5d468613746f413a53fa0b485089839b';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Validate Component' WHERE `id` = '608274a6a6dfed0e183093d9ea357436';
UPDATE `laws_weilai`.`onl_cgform_field` SET `db_field_en_name` = 'Validate Component' WHERE `id` = '608274a6a6dfed0e183093d9ea357436';
--平台件项目库数据标识
ALTER TABLE `laws_weilai`.`project_library_base`
ADD COLUMN `platform` varchar(255) NULL COMMENT '平台件项目库数据(platform=YES' AFTER `brand`;
--平台件合规认证计划
CREATE TABLE `laws_weilai`.`platform_task_planning` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建日期',
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新日期',
`sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`node_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '节点名称',
`node_time` datetime(0) NULL DEFAULT NULL COMMENT '节点时间',
`project_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '项目id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
--车型项目库法规清单关联平台件表2023-09-19
CREATE TABLE `laws_inventory_platform` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建日期',
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新日期',
`sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`laws_inventory_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '车型项目库法规清单id',
`platform_laws_inventory_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '平台件项目库法规清单id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
--车修改字段长度2023-09-28
ALTER TABLE `project_certification_directory`
MODIFY COLUMN `directory_name` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '目录名称' AFTER `project_library_id`,
MODIFY COLUMN `lot` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '批次' AFTER `directory_name`,
MODIFY COLUMN `detection_report_location` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '检测报告位置' AFTER `experiment_file`,
MODIFY COLUMN `explain_info` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '说明' AFTER `detection_report_location`;
--添加平台件项目库字段2023-10-09
ALTER TABLE `project_library_base`
ADD COLUMN `power` varchar(255) NULL COMMENT '功率' AFTER `platform`,
ADD COLUMN `producer` varchar(255) NULL COMMENT '生产商' AFTER `power`,
ADD COLUMN `duty_depart` varchar(255) NULL COMMENT '责任部门' AFTER `producer`,
ADD COLUMN `regulation_owner_id` varchar(255) NULL COMMENT '法规工程师' AFTER `duty_depart`,
ADD COLUMN `engineering_interface_person` varchar(255) NULL COMMENT '工程接口人' AFTER `regulation_owner_id`,
ADD COLUMN `brand_label` varchar(255) NULL COMMENT '名牌标签' AFTER `engineering_interface_person`,
ADD COLUMN `product_model` varchar(255) NULL COMMENT '产品型号' AFTER `brand_label`,
ADD COLUMN `cell_enterprise` varchar(255) NULL COMMENT '电芯生产企业' AFTER `product_model`,
ADD COLUMN `assembly_enterprise` varchar(255) NULL COMMENT '总成生产企业' AFTER `cell_enterprise`,
ADD COLUMN `part_number_cn` varchar(255) NULL COMMENT '零件号(国内)' AFTER `assembly_enterprise`,
ADD COLUMN `part_number_en` varchar(255) NULL COMMENT '零件号(国外)' AFTER `part_number_cn`,
ADD COLUMN `filing_code` varchar(255) NULL COMMENT '24位备案码' AFTER `part_number_en`,
ADD COLUMN `supplier_code` varchar(255) NULL COMMENT '供应商代码' AFTER `filing_code`,
ADD COLUMN `product_type_code` varchar(255) NULL COMMENT '产品类型代码' AFTER `supplier_code`,
ADD COLUMN `battery_type_code` varchar(255) NULL COMMENT '电池类型代码' AFTER `product_type_code`,
ADD COLUMN `specification_code` varchar(255) NULL COMMENT '规格代码' AFTER `battery_type_code`,
ADD COLUMN `traceability_code` varchar(255) NULL COMMENT '追溯代码' AFTER `specification_code`,
ADD COLUMN `ymd_number` varchar(255) NULL COMMENT '生产也月日序列号' AFTER `traceability_code`,
ADD COLUMN `size` varchar(255) NULL COMMENT '尺寸' AFTER `ymd_number`,
ADD COLUMN `rated_capacity` varchar(255) NULL COMMENT '额定容量' AFTER `size`,
ADD COLUMN `nominal_voltage` varchar(255) NULL COMMENT '标称电压' AFTER `rated_capacity`,
ADD COLUMN `rated_mass` varchar(255) NULL COMMENT '额定质量' AFTER `nominal_voltage`,
ADD COLUMN `module_number` varchar(255) NULL COMMENT '包含模块个数' AFTER `rated_mass`,
ADD COLUMN `connection_type` varchar(255) NULL COMMENT '模块串并联方式' AFTER `module_number`,
ADD COLUMN `module_specification_code` varchar(255) NULL COMMENT '所用模块或单体规格代码' AFTER `connection_type`,
ADD COLUMN `cooling_method` varchar(255) NULL COMMENT '冷却方式' AFTER `module_specification_code`,
ADD COLUMN `filing_completion_time` datetime(0) NULL COMMENT '备案完成时间' AFTER `cooling_method`,
ADD COLUMN `remark` varchar(1000) NULL COMMENT '备注' AFTER `filing_completion_time`;
--平台件合规认证计划添加标识字段2023-10-09
ALTER TABLE `platform_task_planning`
ADD COLUMN `flag` varchar(255) NULL COMMENT '位置标识(用来区分上下两部分数据,up->上,down->下)' AFTER `project_id`
--平台件合规认证计划初始化数据 2023-10-10
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('08ecf06f4f947836d0e95285fd8afb96', NULL, NULL, NULL, NULL, NULL, 'KO', NULL, NULL, 'up');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('09e577fa7afa3a8cb26b9c8f29eaf8d9', NULL, NULL, NULL, NULL, NULL, 'RF', NULL, NULL, 'up');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('17323a3d13e747e493c41e2e09bedc92', NULL, NULL, NULL, NULL, NULL, 'ADF', NULL, NULL, 'up');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('1d8e6f4286e402ab55845fac79576683', NULL, NULL, NULL, NULL, NULL, 'BDF', NULL, NULL, 'up');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('3f6174140af490d111a9b087580e29fc', NULL, NULL, NULL, NULL, NULL, 'BDR', NULL, NULL, 'up');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('50dcbff0377f68f2e01f89b3677f7cef', NULL, NULL, NULL, NULL, NULL, 'CDF', NULL, NULL, 'up');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('5b22bcbc6ac90933f96faa1371fe16dc', NULL, NULL, NULL, NULL, NULL, 'ESO', NULL, NULL, 'up');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('7e98edcee56a14394e0fd9448132f2e0', NULL, NULL, NULL, NULL, NULL, 'SOP', NULL, NULL, 'up');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('85fa6eb0b58d93d4cc76b8fb1d5248ca', NULL, NULL, NULL, NULL, NULL, '法规清单(KO+2~4w', NULL, NULL, 'down');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('97aaf07d156b6a4278e0ac3627566c8b', NULL, NULL, NULL, NULL, NULL, '责任确认(RF', NULL, NULL, 'down');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('a533416284ab81c7f6ee95b5e9e06d38', NULL, NULL, NULL, NULL, NULL, '设计核查(BDF', NULL, NULL, 'down');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('cd7d6332a42dd3855f0117ffb188f5b1', NULL, NULL, NULL, NULL, NULL, '强检报告(CDF前)', NULL, NULL, 'down');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('e611b793756bf9caeb4a1c09526ceb76', NULL, NULL, NULL, NULL, NULL, 'E-markCDF前)', NULL, NULL, 'down');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('e76e63a251aa6d64cac96125315805e1', NULL, NULL, NULL, NULL, NULL, 'CAMDS提交(CDF前)', NULL, NULL, 'down');
INSERT INTO `platform_task_planning`(`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `node_name`, `node_time`, `project_id`, `flag`) VALUES ('ee85c1b1964586e512ef0b2b401b16b5', NULL, NULL, NULL, NULL, NULL, '验证检查(ESO', NULL, NULL, 'down');
@@ -6,15 +6,17 @@ package com.jero.common.constant.enums;
* @auth zhn
*/
public enum YesOrNoEnum {
NO("","0"),
YES("","1");
NO("","NO","0"),
YES("","YES","1");
String name;
String nameEn;
String value;
private YesOrNoEnum(String name, String value) {
private YesOrNoEnum(String name,String nameEn, String value) {
this.name = name;
this.nameEn = nameEn;
this.value = value;
}
@@ -33,4 +35,12 @@ public enum YesOrNoEnum {
public void setValue(String value) {
this.value = value;
}
public String getNameEn() {
return nameEn;
}
public void setNameEn(String nameEn) {
this.nameEn = nameEn;
}
}
@@ -28,7 +28,7 @@ import com.jero.common.util.oConvertUtils;
public class JwtUtil {
// Token过期时间30分钟(用户登录过期时间是此时间的两倍,以token在reids缓存时间为准)
public static final long EXPIRE_TIME = 240 * 60 * 1000;
public static final long EXPIRE_TIME = 7 * 24 * 60 * 60 * 1000L;
/**
* 校验token是否正确
@@ -688,6 +688,11 @@ public class SysPermissionController {
existTaskFlag = sysPermissionService.judgeToDo();
meta.put("existTask",existTaskFlag);
}
//OTA任务
if(StringUtils.equals(permission.getId(), SysPermissionEnum.OTA_TASKS.getId())){
}
json.put("meta", meta);
}
@@ -118,6 +118,44 @@ public class SysUserController {
@Autowired
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
/**
* 搜索用户列表数据
*/
@ApiOperation(value = "搜索用户列表数据")
@RequestMapping(value = "/searchUser", method = RequestMethod.GET)
public Result<List<SysUser>> searchUser(SysUser user, HttpServletRequest req) {
Result<List<SysUser>> result = new Result<List<SysUser>>();
List<SysUser> resList = new ArrayList<>();
String username = user.getUsername();
SysUser userSearch = null;
if(StringUtils.isNotEmpty(username)){
userSearch = sysUserService.getUserByName(username);
}
QueryWrapper<SysUser> queryWrapper1 = new QueryWrapper<>();
if(StringUtils.isNotEmpty(username)){
queryWrapper1.like("username",username);
queryWrapper1.orderByAsc("username");
}
Page<SysUser> page = new Page<>(1, 20);
IPage<SysUser> pageList = sysUserService.page(page, queryWrapper1);
List<SysUser> userList = pageList.getRecords();
if(null != userSearch){
SysUser finalUserSearch = userSearch;
boolean hasUser = userList.stream()
.filter(u -> u.getId().equals(finalUserSearch.getId()))
.findFirst()
.isPresent();
if(!hasUser){
resList.add(userSearch);
}
}
resList.addAll(userList);
result.setSuccess(true);
result.setResult(resList);
log.info(userList.toString());
return result;
}
/**
* 获取用户列表数据
*
@@ -9,6 +9,7 @@ public enum SysPermissionEnum {
PROJECT_REGULATION_TASKS("项目法规任务","1580735287309119489",""),
REGULATORY_ASSESSMENT_TASKS("法规评估任务","1580735611793059842",""),
OTA_TASKS("OTA任务","1702513806814900226",""),
PROJECT_PARAMETER_TASKS("项目参数任务","1580735965892980738","");
private String name;
@@ -23,11 +23,12 @@
SELECT pm.id
FROM params_manifest pm
JOIN ( SELECT id FROM
( SELECT id,substring_index( substring_index( a.certification_engineer, ',', b.help_topic_id + 1 ), ',',- 1 ) user_id
( SELECT id,substring_index( substring_index( a.certification_engineer, ',', b.help_topic_id + 1 ), ',',- 1 ) user_id,
a.platform
FROM
project_library_base a
JOIN mysql.help_topic b ON b.help_topic_id &lt; ( length( a.certification_engineer ) - length( REPLACE ( a.certification_engineer, ',', '' ) ) + 1 )) temp
WHERE user_id = #{userId}) a ON pm.project_id = a.id
WHERE user_id = #{userId} and platform is null) a ON pm.project_id = a.id
where pm.state = #{state}
</select>
@@ -161,4 +161,9 @@ public class AuthDummyInventoryInfoEO implements Serializable {
/**认证类型*/
@ApiModelProperty(value = "认证类型")
private String attestationType;
/**备注*/
@ApiModelProperty(value = "备注")
@Excel(name = "备注", width = 50)
private String remark;
}
@@ -961,9 +961,9 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if(CollectionUtils.isNotEmpty(baseList)){
String title = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID,*编号,*责任领域,*交付物类型,交付物模板";
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID,*编号,*责任领域,*交付物类型,交付物模板,备注";
}else{
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID,*Number,*Responsible Field,*Deliverable Type,Deliverable Template";
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID,*Number,*Responsible Field,*Deliverable Type,Deliverable Template,Remark";
}
int pos = file.getOriginalFilename().lastIndexOf(".");
@@ -1081,7 +1081,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
if (i == 0) {
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
headerSb.append(cell.getStringCellValue() + ",");
if(j == 8){
if(j == 9){
break;
}
} else if(i > 1){
@@ -1623,8 +1623,10 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
}else{
for (AuthDummyInventoryInfoEO authDummyInventoryInfoEO : datas) {
List<BussDocumentLibraryEO> collect = bussDocumentLibraryEOList.stream()
.filter(e -> e.getSerialNumber().equals(authDummyInventoryInfoEO.getSerialNumber())).collect(Collectors.toList());
authDummyInventoryInfoEO.setBussDocumentLibraryId(collect.get(0).getId());
.filter(e -> e.getSerialNumber().trim().equals(authDummyInventoryInfoEO.getSerialNumber().trim())).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(collect)){
authDummyInventoryInfoEO.setBussDocumentLibraryId(collect.get(0).getId());
}
}
}
// //2. 验证标准号在法规清单中是否添加过
@@ -1705,6 +1707,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
case "*责任领域": return "dutyTerritoryName";
case "交付物模板": return "deliverableTemplateName";
case "*交付物类型" : return "deliverableTypeName";
case "备注" : return "remark";
case "*Category" : return "Category";
case "*Inspection Items" : return"inspectionItem";
@@ -1715,6 +1718,7 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
case "*Responsible Field" : return "dutyTerritoryName";
case "Deliverable Template" : return "deliverableTemplateName";
case "*Deliverable Type" : return "deliverableTypeNameEn";
case "Remark" : return "remark";
default: return null;
@@ -1797,17 +1801,17 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
String title = "";
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
title = "*类别,*检验项目,*配置项,*认证类型,*WVTA ID," +
"*编号,*责任领域,*交付物类型,交付物模板,";
"*编号,*责任领域,*交付物类型,交付物模板,备注,";
}else{
title = "*Category,*Inspection Items,*Configuration Item,*Certification Type,*WVTA ID," +
"*Number,*Responsible Field,*Deliverable Type,Deliverable Template,";
"*Number,*Responsible Field,*Deliverable Type,Deliverable Template,Remark,";
}
List<String> list = Arrays.asList(title.split(","));
int index = 0;
if(CutEnum.CN.getValue().equals(authDummyInventoryInfoEO.getCut())){
index = list.indexOf("交付物模板") + 1;
index = list.indexOf("备注") + 1;
}else{
index = list.indexOf("Deliverable Template") + 1;
index = list.indexOf("Remark") + 1;
}
//创建临时文件夹
@@ -0,0 +1,177 @@
package com.jero.modules.cert.collect.controller;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.cert.collect.entity.ParamsCollectExport;
import com.jero.modules.cert.collect.enums.ExportStateEnum;
import com.jero.modules.cert.collect.service.IParamsCollectExportService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
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;
/**
* @Description: 参数收集导出列表
* @Author: jero-boot
* @Date: 2023-09-26
* @Version: V1.0
*/
@Api(tags="参数收集导出列表")
@RestController
@RequestMapping("/params/paramsCollectExport")
@Slf4j
public class ParamsCollectExportController extends JeroController<ParamsCollectExport, IParamsCollectExportService> {
@Autowired
private IParamsCollectExportService paramsCollectExportService;
/**
* 分页列表查询
*
* @param paramsCollectExport
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "参数收集导出列表-分页列表查询")
@ApiOperation(value="参数收集导出列表-分页列表查询", notes="参数收集导出列表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ParamsCollectExport paramsCollectExport,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@RequestParam(name = "cut") String cut,
HttpServletRequest req) {
QueryWrapper<ParamsCollectExport> queryWrapper = QueryGenerator.initQueryWrapper(paramsCollectExport, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
Page<ParamsCollectExport> page = new Page<ParamsCollectExport>(pageNo, pageSize);
IPage<ParamsCollectExport> pageList = paramsCollectExportService.page(page, queryWrapper);
List<ParamsCollectExport> resList = pageList.getRecords();
for (ParamsCollectExport pce : resList) {
pce.setStateText(ExportStateEnum.getNameByVal(pce.getState(),cut));
}
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "参数收集导出列表-列表查询")
@ApiOperation(value="参数收集导出列表-列表查询", notes="参数收集导出列表-列表查询")
@GetMapping(value = "/list")
public Result<List<ParamsCollectExport>> queryList() {
List<ParamsCollectExport> list = paramsCollectExportService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param paramsCollectExport
* @return
*/
@AutoLog(value = "参数收集导出列表-添加")
@ApiOperation(value="参数收集导出列表-添加", notes="参数收集导出列表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ParamsCollectExport paramsCollectExport) {
paramsCollectExportService.add(paramsCollectExport);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param paramsCollectExport
* @return
*/
@AutoLog(value = "参数收集导出列表-编辑")
@ApiOperation(value="参数收集导出列表-编辑", notes="参数收集导出列表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ParamsCollectExport paramsCollectExport) {
paramsCollectExportService.editById(paramsCollectExport);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "参数收集导出列表-通过id删除")
@ApiOperation(value="参数收集导出列表-通过id删除", notes="参数收集导出列表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
paramsCollectExportService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "参数收集导出列表-批量删除")
@ApiOperation(value="参数收集导出列表-批量删除", notes="参数收集导出列表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.paramsCollectExportService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "参数收集导出列表-通过id查询")
@ApiOperation(value="参数收集导出列表-通过id查询", notes="参数收集导出列表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ParamsCollectExport paramsCollectExport = paramsCollectExportService.queryById(id);
if(paramsCollectExport==null) {
return Result.error("未找到对应数据");
}
return Result.OK(paramsCollectExport);
}
/**
* 导出excel
*
* @param request
* @param paramsCollectExport
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ParamsCollectExport paramsCollectExport) {
return super.exportXls(request, paramsCollectExport, ParamsCollectExport.class, "参数收集导出列表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ParamsCollectExport.class);
}
}
@@ -0,0 +1,88 @@
package com.jero.modules.cert.collect.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
/**
* @Description: 参数收集导出列表
* @Author: jero-boot
* @Date: 2023-09-26
* @Version: V1.0
*/
@Data
@TableName("params_collect_export")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="params_collect_export对象", description="参数收集导出列表")
public class ParamsCollectExport implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**文件名称*/
@Excel(name = "文件名称", width = 15)
@ApiModelProperty(value = "文件名称")
private String fileName;
/**导出状态*/
@Excel(name = "导出状态", width = 15)
@ApiModelProperty(value = "导出状态")
private String state;
@TableField(exist = false)
private String stateText;
/**文件关联ID*/
@Excel(name = "文件关联ID", width = 15)
@ApiModelProperty(value = "文件关联ID")
private String fileId;
/**参数清单id*/
@Excel(name = "参数清单id", width = 15)
@ApiModelProperty(value = "参数清单id")
private String paramsManifestId;
}
@@ -0,0 +1,63 @@
package com.jero.modules.cert.collect.enums;
import com.jero.common.constant.enums.CutEnum;
/**
* @Author: liyawei
* @Description: 参数收集清单-配置数据单个类型
* @Date: Created in 11:33 2022/5/7
*/
public enum ExportStateEnum {
EXPORTING("导出中", "Exporting", "0"),
SUCCESSFULLY("导出成功", "Export Successfully", "1"),
FAILURE("导出失败", "Export Failure", "2");
String nameCn;
String nameEn;
String value;
ExportStateEnum(String nameCn, String nameEn, String value) {
this.nameCn = nameCn;
this.nameEn = nameEn;
this.value = value;
}
public String getNameCn() {
return nameCn;
}
public void setNameCn(String nameCn) {
this.nameCn = nameCn;
}
public String getNameEn() {
return nameEn;
}
public void setNameEn(String nameEn) {
this.nameEn = nameEn;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getNameByVal(String val, String cut) {
ExportStateEnum res = EXPORTING;
for (ExportStateEnum es : ExportStateEnum.values()) {
if (es.getValue().equals(val)) {
res = es;
break;
}
}
if (CutEnum.CN.getValue().equals(cut)) {
return res.getNameCn();
} else {
return res.getNameEn();
}
}
}
@@ -0,0 +1,17 @@
package com.jero.modules.cert.collect.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.cert.collect.entity.ParamsCollectExport;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 参数收集导出列表
* @Author: jero-boot
* @Date: 2023-09-26
* @Version: V1.0
*/
public interface ParamsCollectExportMapper extends BaseMapper<ParamsCollectExport> {
}
@@ -0,0 +1,16 @@
<?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.cert.collect.mapper.ParamsCollectExportMapper">
<resultMap id="ParamsCollectExportResultMap" type="com.jero.modules.cert.collect.entity.ParamsCollectExport">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="file_name" property="fileName" />
<result column="state" property="state" />
<result column="file_id" property="fileId" />
<result column="params_manifest_id" property="paramsManifestId" />
</resultMap>
</mapper>
@@ -0,0 +1,61 @@
package com.jero.modules.cert.collect.service;
import com.jero.modules.cert.collect.entity.ParamsCollectExport;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 参数收集导出列表
* @Author: jero-boot
* @Date: 2023-09-26
* @Version: V1.0
*/
public interface IParamsCollectExportService extends IService<ParamsCollectExport> {
/**
* 保存
*
* @param paramsCollectExport
* @return
*/
void add(ParamsCollectExport paramsCollectExport);
/**
* 更新
*
* @param paramsCollectExport
* @return
*/
void editById(ParamsCollectExport paramsCollectExport);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ParamsCollectExport queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ParamsCollectExport> queryList();
}
@@ -0,0 +1,89 @@
package com.jero.modules.cert.collect.service.impl;
import com.jero.modules.cert.collect.entity.ParamsCollectExport;
import com.jero.modules.cert.collect.mapper.ParamsCollectExportMapper;
import com.jero.modules.cert.collect.service.IParamsCollectExportService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
* @Description: 参数收集导出列表
* @Author: jero-boot
* @Date: 2023-09-26
* @Version: V1.0
*/
@Service
public class ParamsCollectExportServiceImpl extends ServiceImpl<ParamsCollectExportMapper, ParamsCollectExport> implements IParamsCollectExportService {
/**
* 保存
*
* @param paramsCollectExport
* @return
*/
@Override
public void add(ParamsCollectExport paramsCollectExport) {
Date now = new Date();
paramsCollectExport.setCreateTime(now);
paramsCollectExport.setUpdateTime(now);
save(paramsCollectExport);
}
/**
* 更新
*
* @param paramsCollectExport
* @return
*/
@Override
public void editById(ParamsCollectExport paramsCollectExport) {
Date now = new Date();
paramsCollectExport.setUpdateTime(now);
saveOrUpdate(paramsCollectExport);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public ParamsCollectExport queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<ParamsCollectExport> queryList() {
return list();
}
}
@@ -183,6 +183,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
private IProjectUserDutyTerritoryService projectUserDutyTerritoryService;
@Autowired
private IParamsCollectManifestUserTypeLogEOService paramsCollectManifestUserTypeLogEOService;
@Autowired
private IParamsCollectExportService paramsCollectExportService;
/**
* 保存
@@ -697,6 +699,14 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
sqlJoinSb.append(" and dre like '%").append(paramsCollectManifestVO.getDre()).append("%'");
}
if (StringUtils.isNotEmpty(paramsCollectManifestVO.getState())) {
paramsCollectManifestVO.setDre(paramsCollectManifestVO.getState().replaceAll("'", "\'"));
sqlJoinSb.append(" and state = '").append(paramsCollectManifestVO.getDre()).append("'");
}
if (StringUtils.isNotEmpty(paramsCollectManifestVO.getCertCategory())) {
sqlJoinSb.append(" and cert_category like '%").append(paramsCollectManifestVO.getCertCategory()).append("%'");
}
// 如果高级查询条件不为空拼接参数
if (StringUtils.isNotEmpty(paramsCollectManifestVO.getQueryConditionVOListStr())) {
List<QueryConditionVO> queryConditionVOList = JSONObject.parseArray(paramsCollectManifestVO.getQueryConditionVOListStr(), QueryConditionVO.class);
@@ -826,7 +836,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
});
for (ParamsConfigDataEO paramsConfigDataEO : paramsConfigDatas) {
List<ParamsConfigDataVO> paramsConfigDataVOList = this.getConfigDataVOList(controlType, paramsConfigEO, paramsConfigDataEO, collectManifestEO); // 重新组合配置数据
paramsConfigDataVO.put(paramsConfigDataEO.getId(), paramsConfigDataVOList);
paramsConfigDataVO.put(paramsConfigDataEO.getOrderNum() + "+" + paramsConfigDataEO.getId(), paramsConfigDataVOList);
}
}else{
ParamsConfigDataEO paramsConfigDataEO = this.getConfigDataEOByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId, paramsConfigDataEOList); // 参数配置数据
@@ -1621,14 +1631,22 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
// 拼接历史记录信息
for (Map.Entry<String, Object> configDataMap : paramsConfigDataVOMap.entrySet()) {
List<Map<String, Object>> paramsConfigDataVOList = (List<Map<String, Object>>) configDataMap.getValue();
int orderNum = 0;
//顺序号不存在ID中查询的时候会拼接
String paramsConfigDataId = configDataMap.getKey();
int plusIndex = paramsConfigDataId.indexOf("+");
if (plusIndex != -1) {
orderNum = Integer.parseInt(paramsConfigDataId.substring(0, plusIndex));
paramsConfigDataId = paramsConfigDataId.substring(plusIndex + 1);
}
if (CollectionUtil.isNotEmpty(paramsConfigDataVOList)) {
ParamsConfigDataEO paramsConfigDataEO = new ParamsConfigDataEO();
if (CollectionUtils.isNotEmpty(oldConfigDataEOList)) {
String finalParamsConfigDataId = paramsConfigDataId;
List<ParamsConfigDataEO> oldConfigDataEOs = oldConfigDataEOList.stream().filter(configData -> {
boolean flag = false;
if (StringUtils.equals(configDataMap.getKey(), configData.getId())) {
if (StringUtils.equals(finalParamsConfigDataId, configData.getId())) {
flag = true;
}
return flag;
@@ -1638,8 +1656,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
paramsConfigDataEO.setId(oldConfigDataEOs.get(0).getId());
}
}
paramsConfigDataEO.setId(configDataMap.getKey());
paramsConfigDataEO.setId(paramsConfigDataId);
paramsConfigDataEO.setOrderNum(orderNum);
paramsConfigDataEO.setParamsCollectManifestId(paramsCollectManifestId);
paramsConfigDataEO.setParamsConfigId(paramsConfigEOId);
@@ -1789,7 +1807,14 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
Integer orderNum = (Integer) paramsConfigDataVOList.get(0).get("orderNum");
if (CollectionUtil.isNotEmpty(paramsConfigDataVOList)) {
ParamsConfigDataEO paramsConfigDataEO = new ParamsConfigDataEO();
paramsConfigDataEO.setId(configDataMap.getKey());
//顺序号不存在ID中查询的时候会拼接
String paramsConfigDataId = configDataMap.getKey();
int plusIndex = paramsConfigDataId.indexOf("+");
if (plusIndex != -1) {
orderNum = Integer.parseInt(paramsConfigDataId.substring(0, plusIndex));
paramsConfigDataId = paramsConfigDataId.substring(plusIndex + 1);
}
paramsConfigDataEO.setId(paramsConfigDataId);
for (Map<String, Object> paramsConfigDataVO : paramsConfigDataVOList) {
@@ -3588,6 +3613,20 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
if (StringUtils.isNotEmpty(paramsCollectManifestVO.getExportName())) {
fileOriName = paramsCollectManifestVO.getExportName();
}
//创建导出记录
ParamsCollectExport pce = new ParamsCollectExport();
String pceId = UUID.randomUUID().toString().replace("-", "");
pce.setId(pceId);
pce.setParamsManifestId(paramsCollectManifestVO.getParamsManifestId());
pce.setState(ExportStateEnum.EXPORTING.getValue());
pce.setFileName(fileOriName+ ".zip");
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
paramsCollectExportService.add(pce);
}
});
thread1.start();
//创建临时文件夹
String fileNowPath = uploadpath + "/tempZip/" + UUID.randomUUID().toString().replace("-", "") + File.separator + fileOriName;
File nowFile = new File(fileNowPath);
@@ -3683,17 +3722,17 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
excelOS.flush();
excelOS.close();
ZipUtil.zip(fileNowPath, fileNowPath + ".zip");
FileInputStream fis = new FileInputStream(fileNowPath + ".zip");
int len = 0;
while ((len = fis.read()) != -1) {
os.write(len);
}
// FileInputStream fis = new FileInputStream(fileNowPath + ".zip");
// int len = 0;
// while ((len = fis.read()) != -1) {
// os.write(len);
// }
// // 将导出文件上传到cos上
// String uploadFileName = fileOriName + ".zip";
// InputStream uploadFileio = new FileInputStream(new File(fileNowPath+".zip"));
// MultipartFile mFile = new MockMultipartFile(uploadFileName, uploadFileName, "text/plain", uploadFileio); // 用于上传
// OSSFile ossFile = ossFileService.uploadLocalOfCos(mFile, "/manifest", "", CutEnum.CN.getValue()); // 上传导出的压缩包
// 将导出文件上传到cos上
String uploadFileName = fileOriName + ".zip";
InputStream uploadFileio = new FileInputStream(new File(fileNowPath+".zip"));
MultipartFile mFile = new MockMultipartFile(uploadFileName, uploadFileName, "text/plain", uploadFileio); // 用于上传
OSSFile ossFile = ossFileService.uploadLocalOfCos(mFile, "/manifest", "", CutEnum.CN.getValue()); // 上传导出的压缩包
//
// // 系统向用户发消息
// LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal(); // 获取当前登录人
@@ -3725,8 +3764,13 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
// uploadFileio.close();
os.flush();
os.close(); // 后开先关
fis.close(); // 先开后关
// fis.close(); // 先开后关
pce.setState(ExportStateEnum.SUCCESSFULLY.getValue());
pce.setFileId(ossFile.getId());
paramsCollectExportService.updateById(pce);
} catch (Exception e) {
pce.setState(ExportStateEnum.FAILURE.getValue());
paramsCollectExportService.updateById(pce);
if (e instanceof JeroBootException) {
throw new JeroBootException(e.getMessage());
} else {
@@ -3736,7 +3780,6 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
} else {
throw new JeroBootException("下载文件失败,请重试");
}
}
} finally {
IOUtils.closeQuietly(os);
@@ -7439,10 +7482,12 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
JSONArray resList = new JSONArray();
if(ObjectUtils.isNotEmpty(dtList)){
for (String dtId : dtList) {
JSONObject dt = new JSONObject();
dt.put("key",dtId);
dt.put("value",dictItemsMap.get(dtId));
resList.add(dt);
if(StringUtils.isNotBlank(dtId)){
JSONObject dt = new JSONObject();
dt.put("key",dtId);
dt.put("value",dictItemsMap.get(dtId));
resList.add(dt);
}
}
}
return Result.OK(resList);
@@ -80,6 +80,10 @@ public class ParamsCollectManifestHistoryEOServiceImpl extends ServiceImpl<Param
@Override
public IPage queryList(IPage page, ParamsCollectManifestHistoryEO paramsCollectManifestHistoryEO, String cut, HttpServletRequest req) {
QueryWrapper<ParamsCollectManifestHistoryEO> queryWrapper = QueryGenerator.initQueryWrapper(paramsCollectManifestHistoryEO, req.getParameterMap());
String allNumber = req.getParameter("allNumber");
if(StringUtils.isNotBlank(allNumber)){
queryWrapper.lambda().eq(ParamsCollectManifestHistoryEO::getNioNumber,allNumber);
}
queryWrapper.lambda().notIn(ParamsCollectManifestHistoryEO::getControlType, ControlTypeEnum.Title.getValue())
.orderByAsc(ParamsCollectManifestHistoryEO::getNioNumber);
@@ -173,7 +177,7 @@ public class ParamsCollectManifestHistoryEOServiceImpl extends ServiceImpl<Param
});
for (ParamsConfigDataHistoryEO paramsConfigDataEO : configDataEOList) {
List<ParamsConfigDataVO> paramsConfigDataVOList = this.getConfigDataVOList(controlType, paramsConfigEO, paramsConfigDataEO, collectManifestEO); // 重新组合配置数据
paramsConfigDataVO.put(paramsConfigDataEO.getId(), paramsConfigDataVOList);
paramsConfigDataVO.put(paramsConfigDataEO.getOrderNum()+"+"+paramsConfigDataEO.getId(), paramsConfigDataVOList);
}
}else{
ParamsConfigDataHistoryEO paramsConfigDataEO = this.getConfigDataEOByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId, paramsConfigDataEOList); // 参数配置数据
@@ -8,16 +8,32 @@ 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.cert.collect.entity.*;
import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
import com.jero.modules.cert.collect.entity.ParamsCollectManifestHistoryEO;
import com.jero.modules.cert.collect.entity.ParamsConfigDataEO;
import com.jero.modules.cert.collect.entity.ParamsConfigDataHistoryEO;
import com.jero.modules.cert.collect.entity.ParamsConfigEO;
import com.jero.modules.cert.collect.entity.ParamsConfigHistoryEO;
import com.jero.modules.cert.collect.entity.ParamsManifestEO;
import com.jero.modules.cert.collect.entity.ParamsManifestHistoryEO;
import com.jero.modules.cert.collect.enums.CollectManifestChangeFlagEnum;
import com.jero.modules.cert.collect.enums.CollectManifestStateEnum;
import com.jero.modules.cert.collect.enums.ManifestStateEnum;
import com.jero.modules.cert.collect.mapper.*;
import com.jero.modules.cert.collect.service.*;
import com.jero.modules.cert.collect.mapper.ParamsCollectManifestEOMapper;
import com.jero.modules.cert.collect.mapper.ParamsCollectManifestHistoryEOMapper;
import com.jero.modules.cert.collect.mapper.ParamsConfigEOMapper;
import com.jero.modules.cert.collect.mapper.ParamsManifestEOMapper;
import com.jero.modules.cert.collect.mapper.ParamsManifestHistoryEOMapper;
import com.jero.modules.cert.collect.service.IParamsCollectManifestEOService;
import com.jero.modules.cert.collect.service.IParamsConfigDataEOService;
import com.jero.modules.cert.collect.service.IParamsConfigDataHistoryEOService;
import com.jero.modules.cert.collect.service.IParamsConfigEOService;
import com.jero.modules.cert.collect.service.IParamsConfigHistoryEOService;
import com.jero.modules.cert.collect.service.IParamsManifestEOService;
import com.jero.modules.cert.collect.service.IParamsManifestHistoryEOService;
import com.jero.modules.cert.collect.vo.ParamsManifestHistoryVO;
import com.jero.modules.cert.collect.vo.ParamsManifestVO;
import com.jero.modules.cert.report.entity.ParamsReportEO;
@@ -29,7 +45,6 @@ import com.jero.modules.cert.template.enums.ControlTypeEnum;
import com.jero.modules.cert.template.service.IParamsInfoPublishEOService;
import com.jero.modules.cert.template.service.IParamsTemplateEOService;
import com.jero.modules.enums.DictCodeEnum;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.IProjectRelatedPersonnelService;
@@ -50,7 +65,16 @@ import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.text.NumberFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
/**
@@ -619,6 +643,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
for (ParamsCollectManifestEO oldCollectManifestEO : diffList) {
ParamsCollectManifestEO updateCollectManifestEO = new ParamsCollectManifestEO();
updateCollectManifestEO.setId(oldCollectManifestEO.getId());
updateCollectManifestEO.setNioNumber(oldCollectManifestEO.getNioNumber());
updateCollectManifestEO.setState(CollectManifestStateEnum.CHANGE.getValue());
updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_BEFORE.getValue()); // 标记为变更前参数项
updateCollectManifestEO.setDelFlag(CollectManifestChangeFlagEnum.DELETE_AFTER.getValue()); // 因新发布模板中没有该参数项标记为变更时已删除参数项
@@ -698,6 +723,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
updateParamsConfigDataEO.setTextData((String) reportConfigDataEOList.get(0).get("text_data"));
updateParamsConfigDataEO.setPullData((String) reportConfigDataEOList.get(0).get("pull_data"));
updateParamsConfigDataEO.setFileConnectId((String) reportConfigDataEOList.get(0).get("file_connect_id"));
updateParamsConfigDataEO.setOrderNum((Integer) reportConfigDataEOList.get(0).get("order_num"));
updateConfigDataEOList.add(updateParamsConfigDataEO);
} else if (CollectionUtil.isNotEmpty(reportConfigDataEOList) && CollectionUtil.isEmpty(configDataEOList)) {
ParamsConfigDataEO addParamsConfigDataEO = new ParamsConfigDataEO();
@@ -705,6 +731,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
addParamsConfigDataEO.setTextData((String) reportConfigDataEOList.get(0).get("text_data"));
addParamsConfigDataEO.setPullData((String) reportConfigDataEOList.get(0).get("pull_data"));
addParamsConfigDataEO.setFileConnectId((String) reportConfigDataEOList.get(0).get("file_connect_id"));
addParamsConfigDataEO.setOrderNum((Integer) reportConfigDataEOList.get(0).get("order_num"));
addParamsConfigDataEO.setParamsConfigId(configId);
addParamsConfigDataEO.setParamsCollectManifestId(updateCollectManifestEO.getId());
updateConfigDataEOList.add(addParamsConfigDataEO);
@@ -1183,20 +1210,24 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
for (SysDictItem dictItem : dutyTerritoryList) {
// 计算数量
notStartNumber += listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_COLLECT.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.SDT_BACK.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.get("state"))) && dictItem.getItemValue().equals(e.get("duty_territory")))
|| CollectManifestStateEnum.SDT_BACK.getValue().equals(e.get("state")))
&& dictItem.getItemValue().equals(e.get("duty_territory")))
.count(); // 未开始的参数项 数量
collectingNumber += listAll.stream().filter(e -> (CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.DRE_BACK.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.get("state"))) && dictItem.getItemValue().equals(e.get("duty_territory")))
|| CollectManifestStateEnum.CERT_BACK.getValue().equals(e.get("state")))
&& dictItem.getItemValue().equals(e.get("duty_territory")))
.count(); // 收集中的参数项 数量
submitNumber += listAll.stream().filter(e -> CollectManifestStateEnum.SUBMIT.getValue().equals(e.get("state")) && dictItem.getItemValue().equals(e.get("duty_territory")))
submitNumber += listAll.stream().filter(e -> (CollectManifestStateEnum.SUBMIT.getValue().equals(e.get("state"))
|| CollectManifestStateEnum.CHANGE.getValue().equals(e.get("state")))
&& dictItem.getItemValue().equals(e.get("duty_territory")))
.count(); // 已提交的参数项 数量
syncReportNumber += listAll.stream().filter(e -> CollectManifestStateEnum.SYNC_REPORT.getValue().equals(e.get("state")) && dictItem.getItemValue().equals(e.get("duty_territory")))
syncReportNumber += listAll.stream().filter(e -> CollectManifestStateEnum.SYNC_REPORT.getValue().equals(e.get("state"))
&& dictItem.getItemValue().equals(e.get("duty_territory")))
.count(); // 已同步上报库的参数项 数量
}
@@ -1465,4 +1496,5 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
}
}
}
}
@@ -187,6 +187,7 @@
select
prcd.*,
prc.old_params_config_id,
prc.config_name,
prd.nio_number
from params_report_config_data prcd
inner join params_report_detail prd on prd.id = prcd.params_collect_manifest_id
@@ -203,6 +204,7 @@
left join params_report_config_data prcd on prd.id = prcd.params_collect_manifest_id
where prd.params_manifest_id = #{paramsReportId}
and prcd.params_config_id = #{paramsReportConfigId}
order by prcd.order_num ASC
</select>
</mapper>
@@ -57,4 +57,4 @@
<include refid="BaseQuerySql"/>
order by export_time desc
</select>
</mapper>
</mapper>
@@ -39,4 +39,7 @@ public interface IParamsReportConfigDataEOService extends IService<ParamsReportC
* @return
*/
int deleteByParamsReportDetailIdList(List<String> paramsReportDetailIdList);
List<ParamsReportConfigDataEO> queryListByCollectManifestIdList(List<String> paramsCollectManifestIdList);
}
@@ -78,4 +78,19 @@ public class ParamsReportConfigDataEOServiceImpl extends ServiceImpl<ParamsRepor
return baseMapper.delete(queryWrapper);
}
/**
* 通过id查询
*
* @param paramsConfigId
* @param paramsCollectManifestId
* @return
*/
@Override
public List<ParamsReportConfigDataEO> queryListByCollectManifestIdList(List<String> paramsCollectManifestIdList) {
LambdaQueryWrapper<ParamsReportConfigDataEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ParamsReportConfigDataEO::getParamsCollectManifestId, paramsCollectManifestIdList);
queryWrapper.orderByDesc(ParamsReportConfigDataEO::getOrderNum);
return this.list(queryWrapper);
}
}
@@ -154,6 +154,9 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
dictItemList.addAll(dictItems);
}
List<String> collectManifestIdList = list.stream().map(ParamsReportDetailEO::getId).distinct().collect(Collectors.toList());
List<ParamsReportConfigDataEO> paramsReportConfigDataEOList = this.paramsReportConfigDataEOService.queryListByCollectManifestIdList(collectManifestIdList);
List<Map<String, Object>> listMap = new ArrayList<>();
list.forEach(collectManifestEO -> { // 参数收集清单
@@ -225,7 +228,14 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
Map<String, Object> configMap = new HashMap<>();
String paramsConfigId = paramsConfigEO.getId();
List<ParamsReportConfigDataEO> paramsConfigDataEOList = this.paramsReportConfigDataEOService.queryListByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId); // 参数配置数据
List<ParamsReportConfigDataEO> paramsConfigDataEOList = paramsReportConfigDataEOList.stream().filter(prcdEO -> {
boolean flag = false;
if (StringUtils.equals(prcdEO.getParamsConfigId(),paramsConfigId) && StringUtils.equals(prcdEO.getParamsCollectManifestId(),paramsCollectManifestId)) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
// List<ParamsReportConfigDataEO> paramsConfigDataEOList = this.paramsReportConfigDataEOService.queryListByConfigIdAndCollectManifestId(paramsConfigId, paramsCollectManifestId); // 参数配置数据
if(CollectionUtils.isNotEmpty(paramsConfigDataEOList)){
// 匿名比较器排序
Collections.sort(paramsConfigDataEOList, new Comparator<ParamsReportConfigDataEO>() {
@@ -239,7 +249,7 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
});
for (ParamsReportConfigDataEO paramsConfigDataEO : paramsConfigDataEOList) {
List<ParamsConfigDataVO> paramsConfigDataVOList = this.getConfigDataVOList(controlType, paramsConfigEO, paramsConfigDataEO, collectManifestEO); // 重新组合配置数据
paramsConfigDataVO.put(paramsConfigDataEO.getId(),paramsConfigDataVOList);
paramsConfigDataVO.put(paramsConfigDataEO.getOrderNum()+"+"+paramsConfigDataEO.getId(),paramsConfigDataVOList);
}
}
@@ -1866,14 +1876,18 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
Map<String, Object> paramsConfigDataVOMap = (Map<String, Object>) paramsReportConfigDataMap.get("paramsConfigData");
for (Map.Entry<String, Object> paramsConfigDataMap : paramsConfigDataVOMap.entrySet()) {
//顺序号不存在ID中查询的时候会拼接
String configDataId = paramsConfigDataMap.getKey();
List<Map<String, Object>> configDataVOList = (List<Map<String, Object>>) paramsConfigDataMap.getValue();
if (CollectionUtil.isNotEmpty(configDataVOList)) {
Integer orderNum = (Integer) configDataVOList.get(0).get("orderNum");
int orderNum = (Integer) configDataVOList.get(0).get("orderNum");
int plusIndex = configDataId.indexOf("+");
if (plusIndex != -1) {
configDataId = configDataId.substring(plusIndex + 1);
orderNum = Integer.parseInt(configDataId.substring(0, plusIndex));
}
ParamsReportConfigDataEO paramsReportConfigDataEO = new ParamsReportConfigDataEO();
paramsReportConfigDataEO.setOrderNum(orderNum);
for (Map<String, Object> paramsConfigDataVO : configDataVOList) {
@@ -2043,7 +2057,6 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
paramsReportConfigDataEO.setParamsCollectManifestId(paramsCollectManifestId);
paramsReportConfigDataEO.setParamsConfigId(paramsReportConfigEOId);
paramsReportConfigDataEO.setId(configDataId);
newConfigDataEOList.add(paramsReportConfigDataEO);
}
//
@@ -2057,7 +2070,7 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
prcdQueryWrap.lambda().eq(ParamsReportConfigDataEO::getParamsCollectManifestId,paramsCollectManifestId);
List<ParamsReportConfigDataEO> prcdEoList = this.paramsReportConfigDataEOService.list(prcdQueryWrap);
if(CollectionUtils.isNotEmpty(prcdEoList)){
List<String> paramsConfigDataIdList = paramsConfigDataVOMap.entrySet().stream().map(e -> e.getKey()).distinct().collect(Collectors.toList());
List<String> paramsConfigDataIdList = paramsConfigDataVOMap.entrySet().stream().map(e -> e.getKey().split("\\+")[0]).distinct().collect(Collectors.toList());
List<String> newAddPcdDataIdList = paramsConfigDataVOMap.entrySet().stream().map(e -> e.getKey()).filter(e -> {
boolean flag = false;
@@ -5468,7 +5468,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
list.add(map4);
//文件信息
map5.put("db_field_name", "text_info");//字段
map5.put("db_field_txt", "Text Info");//字段中文名
map5.put("db_field_txt", "Text Status");//字段中文名
list.add(map5);
}
} else if ("condition".equals(flag)) {
@@ -5551,7 +5551,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
list.add(map3);
//文件信息
map4.put("db_field_name", "text_info");//字段
map4.put("db_field_txt", "Text Info");//字段中文名
map4.put("db_field_txt", "Text Status");//字段中文名
list.add(map4);
}
} else if ("condition".equals(flag)) {
@@ -2273,6 +2273,10 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
value = pullMore(dictItemList, dummyInventoryInfoEO, errorMsg, dutyTerritory,msgList,"责任领域","Responsible Field","duty_territory");
if(StringUtils.isNotBlank(value)){
dummyInventoryInfoEO.setDutyTerritory(value);
List<String> list = Arrays.asList(value.split(","));
List<SysDictItem> ddList = dictItemList.stream().filter(e -> "duty_territory".equals(e.getDictCode()) && list.contains(e.getItemValue())).collect(Collectors.toList());
List<String> valueList = ddList.stream().map(SysDictItem::getStatNode).collect(Collectors.toList());
dummyInventoryInfoEO.setDutyDepart(StringUtils.join(valueList,","));
}
}
@@ -0,0 +1,389 @@
package com.jero.modules.home.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.MD5Util;
import com.jero.common.util.oConvertUtils;
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
import com.jero.modules.ota.service.IOtaManageApplyEOService;
import com.jero.modules.system.entity.SysDepartPermission;
import com.jero.modules.system.entity.SysPermission;
import com.jero.modules.system.entity.SysPermissionDataRule;
import com.jero.modules.system.entity.SysRolePermission;
import com.jero.modules.system.enums.SysPermissionEnum;
import com.jero.modules.system.mapper.TodoCenterMapper;
import com.jero.modules.system.model.SysPermissionTree;
import com.jero.modules.system.model.TreeModel;
import com.jero.modules.system.service.ISysDepartPermissionService;
import com.jero.modules.system.service.ISysPermissionDataRuleService;
import com.jero.modules.system.service.ISysPermissionService;
import com.jero.modules.system.service.ISysRolePermissionService;
import com.jero.modules.system.util.PermissionDataUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.*;
import java.util.stream.Collectors;
/**
* <p>
* 菜单权限表 为了做待办中心消息提醒放过来的
* </p>
*
* @Author scott
* @since 2018-12-21
*/
@Slf4j
@RestController
@RequestMapping("/home/permission")
public class HomePermissionController {
@Autowired
private ISysPermissionService sysPermissionService;
@Autowired
private TodoCenterMapper todoCenterMapper;
@Autowired
private IOtaManageApplyEOService otaManageApplyEOService;
/**
* 查询用户拥有的菜单权限和按钮权限
*
* @return
*/
@RequestMapping(value = "/getUserPermissionByToken", method = RequestMethod.GET)
public Result<?> getUserPermissionByToken(String cut) {
Result<JSONObject> result = new Result<JSONObject>();
try {
//直接获取当前用户不适用前端token
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (oConvertUtils.isEmpty(loginUser)) {
return Result.error("请登录系统!");
}
List<SysPermission> metaList = sysPermissionService.queryByUser(loginUser.getUsername());
//添加首页路由
//update-begin-author:taoyan date:20200211 for: TASK #3368 路由缓存首页的缓存设置有问题需要根据后台的路由配置来实现是否缓存
if (!PermissionDataUtil.hasIndexPage(metaList)) {
SysPermission indexMenu = sysPermissionService.list(new LambdaQueryWrapper<SysPermission>().eq(SysPermission::getName, "首页")).get(0);
metaList.add(0, indexMenu);
}
//update-end-author:taoyan date:20200211 for: TASK #3368 路由缓存首页的缓存设置有问题需要根据后台的路由配置来实现是否缓存
JSONObject json = new JSONObject();
JSONArray menujsonArray = new JSONArray();
this.getPermissionJsonArray(menujsonArray, metaList, null, cut);
JSONArray authjsonArray = new JSONArray();
this.getAuthJsonArray(authjsonArray, metaList);
//查询所有的权限
LambdaQueryWrapper<SysPermission> query = new LambdaQueryWrapper<SysPermission>();
query.eq(SysPermission::getDelFlag, CommonConstant.DEL_FLAG_0);
query.eq(SysPermission::getMenuType, CommonConstant.MENU_TYPE_2);
//query.eq(SysPermission::getStatus, "1");
List<SysPermission> allAuthList = sysPermissionService.list(query);
JSONArray allauthjsonArray = new JSONArray();
this.getAllAuthJsonArray(allauthjsonArray, allAuthList);
//路由菜单
json.put("menu", menujsonArray);
//按钮权限用户拥有的权限集合
json.put("auth", authjsonArray);
//全部权限配置集合按钮权限访问权限
json.put("allAuth", allauthjsonArray);
result.setResult(json);
result.success("查询成功");
} catch (Exception e) {
result.error500("查询失败:" + e.getMessage());
log.error(e.getMessage(), e);
}
return result;
}
/**
* 获取菜单JSON数组
*
* @param jsonArray
* @param metaList
* @param parentJson
*/
private void getPermissionJsonArray(JSONArray jsonArray, List<SysPermission> metaList, JSONObject parentJson, String cut) {
for (SysPermission permission : metaList) {
if (permission.getMenuType() == null) {
continue;
}
String tempPid = permission.getParentId();
JSONObject json = getPermissionJsonObject(permission, cut);
if (json == null) {
continue;
}
if (parentJson == null && oConvertUtils.isEmpty(tempPid)) {
jsonArray.add(json);
if (!permission.isLeaf()) {
getPermissionJsonArray(jsonArray, metaList, json, cut);
}
} else if (parentJson != null && oConvertUtils.isNotEmpty(tempPid) && tempPid.equals(parentJson.getString("id"))) {
// 类型( 0一级菜单 1子菜单 2按钮 )
if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_2)) {
JSONObject metaJson = parentJson.getJSONObject("meta");
if (metaJson.containsKey("permissionList")) {
metaJson.getJSONArray("permissionList").add(json);
} else {
JSONArray permissionList = new JSONArray();
permissionList.add(json);
metaJson.put("permissionList", permissionList);
}
// 类型( 0一级菜单 1子菜单 2按钮 )
} else if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_1) || permission.getMenuType().equals(CommonConstant.MENU_TYPE_0)) {
if (parentJson.containsKey("children")) {
parentJson.getJSONArray("children").add(json);
} else {
JSONArray children = new JSONArray();
children.add(json);
parentJson.put("children", children);
}
if (!permission.isLeaf()) {
getPermissionJsonArray(jsonArray, metaList, json, cut);
}
}
}
}
}
/**
* 获取权限JSON数组
*
* @param jsonArray
* @param metaList
*/
private void getAuthJsonArray(JSONArray jsonArray, List<SysPermission> metaList) {
for (SysPermission permission : metaList) {
if (permission.getMenuType() == null) {
continue;
}
JSONObject json = null;
if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_2) && CommonConstant.STATUS_1.equals(permission.getStatus())) {
json = new JSONObject();
json.put("action", permission.getPerms());
json.put("type", permission.getPermsType());
json.put("describe", permission.getName());
jsonArray.add(json);
}
}
}
/**
* 获取权限JSON数组
*
* @param jsonArray
* @param allList
*/
private void getAllAuthJsonArray(JSONArray jsonArray, List<SysPermission> allList) {
JSONObject json = null;
for (SysPermission permission : allList) {
json = new JSONObject();
json.put("action", permission.getPerms());
json.put("status", permission.getStatus());
//1显示2禁用
json.put("type", permission.getPermsType());
json.put("describe", permission.getName());
jsonArray.add(json);
}
}
/**
* 根据菜单配置生成路由json
*
* @param permission
* @return
*/
private JSONObject getPermissionJsonObject(SysPermission permission, String cut) {
JSONObject json = new JSONObject();
// 类型(0一级菜单 1子菜单 2按钮)
if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_2)) {
//json.put("action", permission.getPerms());
//json.put("type", permission.getPermsType());
//json.put("describe", permission.getName());
return null;
} else if (permission.getMenuType().equals(CommonConstant.MENU_TYPE_0) || permission.getMenuType().equals(CommonConstant.MENU_TYPE_1)) {
json.put("id", permission.getId());
if (permission.isRoute()) {
json.put("route", "1");// 表示生成路由
} else {
json.put("route", "0");// 表示不生成路由
}
if (isWWWHttpUrl(permission.getUrl())) {
json.put("path", MD5Util.MD5Encode(permission.getUrl(), "utf-8"));
} else {
json.put("path", permission.getUrl());
}
// 重要规则路由name (通过URL生成路由name,路由name供前端开发页面跳转使用)
if (oConvertUtils.isNotEmpty(permission.getComponentName())) {
json.put("name", permission.getComponentName());
} else {
json.put("name", urlToRouteName(permission.getUrl()));
}
// 是否隐藏路由默认都是显示的
if (permission.isHidden()) {
json.put("hidden", true);
}
// 聚合路由
if (permission.isAlwaysShow()) {
json.put("alwaysShow", true);
}
json.put("component", permission.getComponent());
JSONObject meta = new JSONObject();
// 由用户设置是否缓存页面 用布尔值
if (permission.isKeepAlive()) {
meta.put("keepAlive", true);
} else {
meta.put("keepAlive", false);
}
/*update_begin author:wuxianquan date:20190908 for:往菜单信息里添加外链菜单打开方式 */
//外链菜单打开方式
if (permission.isInternalOrExternal()) {
meta.put("internalOrExternal", true);
} else {
meta.put("internalOrExternal", false);
}
/* update_end author:wuxianquan date:20190908 for: 往菜单信息里添加外链菜单打开方式*/
if (CutEnum.EN.getValue().equals(cut)) {
meta.put("title", permission.getMenuEn());
} else {
meta.put("title", permission.getName());
}
//update-begin--Author:scott Date:20201015 for路由缓存问题关闭了tab页时再打开就不刷新 #842
String component = permission.getComponent();
if (oConvertUtils.isNotEmpty(permission.getComponentName()) || oConvertUtils.isNotEmpty(component)) {
meta.put("componentName", oConvertUtils.getString(permission.getComponentName(), component.substring(component.lastIndexOf("/") + 1)));
}
//update-end--Author:scott Date:20201015 for路由缓存问题关闭了tab页时再打开就不刷新 #842
if (oConvertUtils.isEmpty(permission.getParentId())) {
// 一级菜单跳转地址
json.put("redirect", permission.getRedirect());
if (oConvertUtils.isNotEmpty(permission.getIcon())) {
meta.put("icon", permission.getIcon());
}
} else {
if (oConvertUtils.isNotEmpty(permission.getIcon())) {
meta.put("icon", permission.getIcon());
}
}
if (isWWWHttpUrl(permission.getUrl())) {
meta.put("url", permission.getUrl());
}
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
Map<String, Object> params = new HashMap<>();
params.put("currentUserId", currentUser.getId());
List<String> flowTypeList = new ArrayList<>();
//项目法规任务
if (StringUtils.equals(permission.getId(), SysPermissionEnum.PROJECT_REGULATION_TASKS.getId())) {
flowTypeList.add("1");
flowTypeList.add("2");
flowTypeList.add("3");
flowTypeList.add("4");
flowTypeList.add("10");
flowTypeList.add("21");
params.put("flowTypeList", flowTypeList);
//存在待办任务标识true为有
boolean existTaskFlag = false;
int result = todoCenterMapper.todoCenterTaskCount(params);
if (result > 0) {
existTaskFlag = true;
}
//查询当前登录用户是否有项目法规任务
meta.put("existTask", existTaskFlag);
}
//法规评估任务
if (StringUtils.equals(permission.getId(), SysPermissionEnum.REGULATORY_ASSESSMENT_TASKS.getId())) {
flowTypeList.add("5");
flowTypeList.add("6");
params.put("flowTypeList", flowTypeList);
int result = todoCenterMapper.todoCenterTaskCount(params);
boolean existTaskFlag = false;
if (result > 0) {
existTaskFlag = true;
}
meta.put("existTask", existTaskFlag);
}
//项目参数任务
if (StringUtils.equals(permission.getId(), SysPermissionEnum.PROJECT_PARAMETER_TASKS.getId())) {
boolean existTaskFlag = false;
existTaskFlag = sysPermissionService.judgeToDo();
meta.put("existTask", existTaskFlag);
}
//OTA任务
if (StringUtils.equals(permission.getId(), SysPermissionEnum.OTA_TASKS.getId())) {
boolean existTaskFlag = false;
List<OtaManageReceiveNsdp> otaList = otaManageApplyEOService.getOtaTodoList(new OtaManageReceiveNsdp());
if(!otaList.isEmpty()){
existTaskFlag = true;
}
meta.put("existTask", existTaskFlag);
}
json.put("meta", meta);
}
return json;
}
/**
* 判断是否外网URL 例如 http://localhost:8080/jero-boot/swagger-ui.html#/ 支持特殊格式 {{
* window._CONFIG['domianURL'] }}/druid/ {{ JS代码片段 }}前台解析会自动执行JS代码片段
*
* @return
*/
private boolean isWWWHttpUrl(String url) {
if (url != null && (url.startsWith("http://") || url.startsWith("https://") || url.startsWith("{{"))) {
return true;
}
return false;
}
/**
* 通过URL生成路由name去掉URL前缀斜杠替换内容中的斜杠/- 举例 URL = /isystem/role RouteName =
* isystem-role
*
* @return
*/
private String urlToRouteName(String url) {
if (oConvertUtils.isNotEmpty(url)) {
if (url.startsWith("/")) {
url = url.substring(1);
}
url = url.replace("/", "-");
// 特殊标记
url = url.replace(":", "@");
return url;
} else {
return null;
}
}
}
@@ -8,6 +8,7 @@ import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.PageUtil;
import com.jero.modules.ota.entity.OtaManageApplyEO;
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
import com.jero.modules.ota.service.IOtaManageApplyEOService;
import com.jero.modules.ota.vo.VersionVO;
import com.jero.modules.project.entity.ProjectLibraryBase;
@@ -344,5 +345,20 @@ public class OtaManageApplyEOController extends JeroController<OtaManageApplyEO,
return otaManageApplyEOService.oneCarExportXls(request, otaManageApplyEO);
}
/**
* OTA管理待办中心列表
*/
@AutoLog(value = "OTA管理列表和全车型列表-OTA管理待办中心列表")
@ApiOperation(value="OTA管理列表和全车型列表-OTA管理待办中心列表", notes="OTA管理列表和全车型列表-OTA管理待办中心列表")
@GetMapping(value = "/getOtaTodoList")
public Result<?> getOtaTodoList(OtaManageReceiveNsdp otaManageReceiveNsdp,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize) {
List<OtaManageReceiveNsdp> list = otaManageApplyEOService.getOtaTodoList(otaManageReceiveNsdp);
Page pages = PageUtil.getPages(pageNo, pageSize, list);
return Result.OK(pages);
}
}
@@ -211,6 +211,20 @@ public class OtaManageApplyEO implements Serializable {
@ApiModelProperty(value = "导出文件名")
private String exportName;
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "软件版本创建时间")
private Date createdAt;
@TableField(exist = false)
@ApiModelProperty(value = "发布类型")
private String releaseType;
@TableField(exist = false)
@ApiModelProperty(value = "车型(匹配版本号后)")
private String vehicleMatch;
@TableField(exist = false)
@ApiModelProperty(value = "中英文切换")
private String cut;
@@ -71,4 +71,9 @@ public class OtaManagePermission implements Serializable {
@ApiModelProperty(value = "对应applyID")
private String applyId;
/**车型*/
@Excel(name = "车型", width = 15)
@ApiModelProperty(value = "车型")
private String vehicle;
}
@@ -116,6 +116,16 @@ public class OtaManageReceive implements Serializable {
@ApiModelProperty(value = "发布时间")
private String releaseDate;
/**车型(匹配版本号后)*/
@Excel(name = "车型(匹配版本号后)", width = 15)
@ApiModelProperty(value = "车型(匹配版本号后)")
private String vehicleMatch;
/**发布类型*/
@Excel(name = "发布类型", width = 15)
@ApiModelProperty(value = "发布类型")
private String releaseType;
}
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
@@ -71,6 +72,12 @@ public class OtaManageReceiveNsdp implements Serializable {
@ApiModelProperty(value = "发布版本")
private String releaseName;
/**发布版本*/
@Excel(name = "适用车型", width = 15)
@ApiModelProperty(value = "适用车型")
private String vehicle;
/**发布类型*/
@Excel(name = "发布类型", width = 15)
@ApiModelProperty(value = "发布类型")
@@ -93,4 +100,17 @@ public class OtaManageReceiveNsdp implements Serializable {
@ApiModelProperty(value = "创建时间")
private java.util.Date createdAt;
@TableField(exist = false)
private String market;
@TableField(exist = false)
@ApiModelProperty(value = "表头排序字段")
private java.lang.String orderByField;
@TableField(exist = false)
@ApiModelProperty(value = "排序")
private java.lang.String orderBy;
}
@@ -15,6 +15,9 @@ import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
@Service
public class OtaDataUpdate implements Job {
@@ -34,6 +37,11 @@ public class OtaDataUpdate implements Job {
*/
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
//截取版本号中前面数字部分
String regex = "BL\\d+\\.+\\d+\\.(\\d+)";
Pattern pattern = Pattern.compile(regex);
List<OtaManageReceive> omrSyncList = otaManageReceiveService.getReceiveSync();
List<OtaManageReceive> omrList = otaManageReceiveService.queryList();
@@ -66,6 +74,13 @@ public class OtaDataUpdate implements Job {
}
if (addFlag) {
//同步数据中新增
String plannedBpLaunchBatch = omrSync.getPlannedBpLaunchBatch();
if (StringUtils.isNotEmpty(plannedBpLaunchBatch)) {
Matcher matcher = pattern.matcher(plannedBpLaunchBatch);
if (matcher.find()) {
omrSync.setPlannedBpLaunchBatch(matcher.group());
}
}
addList.add(omrSync);
}
}
@@ -79,7 +94,6 @@ public class OtaDataUpdate implements Job {
otaManageReceiveService.updateBatchById(updateList);
}
List<OtaManageReceiveNsdp> omrnSyncList = otaManageReceiveNsdpService.getOtaManageReceiveNsdpSync();
List<OtaManageReceiveNsdp> omrnList = otaManageReceiveNsdpService.queryList();
@@ -103,9 +117,6 @@ public class OtaDataUpdate implements Job {
}
}
Map<String, Date> releaceDateMap = new HashMap<>();
Date today = new Date();
for (OtaManageReceiveNsdp omrnSync : omrnSyncList) {
boolean addFlag = true;
for (OtaManageReceiveNsdp omrn : omrnList) {
@@ -115,22 +126,16 @@ public class OtaDataUpdate implements Job {
}
if (addFlag) {
//同步数据中新增
addNsdpList.add(omrnSync);
}
//找到最快来临的发布时间
Date releaceDate = releaceDateMap.get(omrnSync.getReleaseName());
try {
Date syncDate = sdf.parse(omrnSync.getReleaseDate());
if (null == releaceDate) {
releaceDateMap.put(omrnSync.getReleaseName(), syncDate);
} else {
if (syncDate.after(today) && syncDate.before(releaceDate)) {
releaceDateMap.put(omrnSync.getReleaseName(), syncDate);
String releaseName = omrnSync.getReleaseName();
if (StringUtils.isNotEmpty(releaseName)) {
Matcher matcher = pattern.matcher(releaseName);
if (matcher.find()) {
omrnSync.setReleaseName(matcher.group());
}
}
} catch (ParseException e) {
e.printStackTrace();
addNsdpList.add(omrnSync);
}
}
if (CollectionUtils.isNotEmpty(addNsdpList)) {
@@ -143,27 +148,112 @@ public class OtaDataUpdate implements Job {
otaManageReceiveNsdpService.updateBatchById(updateNsdpList);
}
//记录发布时间
Map<String, Date> releaceDateMap = new HashMap<>();
//记录车型列表
Map<String ,Set<String>> omrnVehicleMap = new HashMap<>();
Map<String ,String> releaceTypeMap = new HashMap<>();
Date today = new Date();
List<OtaManageReceiveNsdp> omrnLastList = otaManageReceiveNsdpService.queryList();
for (OtaManageReceiveNsdp omrn : omrnLastList) {
//找到最快来临的发布时间
Date releaceDate = releaceDateMap.get(omrn.getReleaseName());
try {
Date syncDate = sdf.parse(omrn.getReleaseDate());
if (null == releaceDate) {
releaceDateMap.put(omrn.getReleaseName(), syncDate);
} else {
if (syncDate.after(today) && syncDate.before(releaceDate)) {
releaceDateMap.put(omrn.getReleaseName(), syncDate);
}
}
} catch (ParseException e) {
e.printStackTrace();
}
//处理车型字符串
Set<String> vehicleSet = omrnVehicleMap.get(omrn.getReleaseName());
if(null == vehicleSet){
vehicleSet = new HashSet<>();
}
String appliedVehicleProject = omrn.getVehicle();
if(StringUtils.isNotEmpty(appliedVehicleProject)){
for (String s : appliedVehicleProject.split(",")) {
String[] split = s.split(" ");
if (split.length == 3) {
String projectName = split[0];
String market = split[2];
vehicleSet.add(projectName + " " + market);
}
}
}
omrnVehicleMap.put(omrn.getReleaseName(),vehicleSet);
releaceTypeMap.put(omrn.getReleaseName(),omrn.getReleaseType());
}
//开始刷新 otaManageReceive中的车型和发布时间
List<OtaManageReceive> dateUpdateList = new ArrayList<>();
List<OtaManageReceive> omrListForDate = otaManageReceiveService.queryList();
for (OtaManageReceive omr : omrListForDate) {
if(releaceDateMap.containsKey(omr.getPlannedBpLaunchBatch())){
//处理发布时间
if (releaceDateMap.containsKey(omr.getPlannedBpLaunchBatch())) {
omr.setReleaseDate(sdf.format(releaceDateMap.get(omr.getPlannedBpLaunchBatch())));
dateUpdateList.add(omr);
}
//处理车型
String appliedVehicleProject = omr.getAppliedVehicleProject();
Set<String> vehicleSet = new HashSet<>();
if(StringUtils.isNotEmpty(appliedVehicleProject)){
Set<String> omrnVehicleSet = omrnVehicleMap.get(omr.getPlannedBpLaunchBatch());
if(CollectionUtils.isEmpty(omrnVehicleSet)){
omrnVehicleSet = new HashSet<>();
}
for (String s : appliedVehicleProject.split(",")) {
String[] split = s.split(" ");
if (split.length == 1 && "All".equals(split[0])) {
vehicleSet.addAll(omrnVehicleSet);
}else if (split.length == 2) {
if("All".equals(split[1])){
for (String val : omrnVehicleSet) {
if(val.contains(split[0])){
vehicleSet.add(val);
}
}
}else{
for (String val : omrnVehicleSet) {
if(val.contains(s)){
vehicleSet.add(val);
}
}
}
}else if (split.length == 3) {
for (String val : omrnVehicleSet) {
if(val.contains(split[0]+" "+split[2])){
vehicleSet.add(val);
}
}
}
}
if(!vehicleSet.isEmpty()){
omr.setVehicleMatch(vehicleSet.stream().collect(Collectors.joining(",")));
}
omr.setReleaseType(releaceTypeMap.get(omr.getPlannedBpLaunchBatch()));
}
dateUpdateList.add(omr);
}
if (CollectionUtils.isNotEmpty(dateUpdateList)) {
otaManageReceiveService.updateBatchById(dateUpdateList);
}
System.out.println("===============================OtaDataUpdate定时任务结束===============================");
}
private boolean compareReceive(OtaManageReceiveNsdp omrn, OtaManageReceiveNsdp omrnSync) {
if (!StringUtils.equals(omrn.getPlatformName(), omrnSync.getPlatformName())) {
return false;
}
if (!StringUtils.equals(omrn.getReleaseName(), omrnSync.getReleaseName())) {
return false;
}
if (!StringUtils.equals(omrn.getReleaseType(), omrnSync.getReleaseType())) {
return false;
}
@@ -173,13 +263,13 @@ public class OtaDataUpdate implements Job {
if (!StringUtils.equals(omrn.getReleaseDate(), omrnSync.getReleaseDate())) {
return false;
}
if (!StringUtils.equals(omrn.getVehicle(), omrnSync.getVehicle())) {
return false;
}
return true;
}
private boolean compareReceive(OtaManageReceive omr, OtaManageReceive omrSync) {
if (!StringUtils.equals(omr.getPlannedBpLaunchBatch(), omrSync.getPlannedBpLaunchBatch())) {
return false;
}
if (!StringUtils.equals(omr.getSummary(), omrSync.getSummary())) {
return false;
}
@@ -72,7 +72,7 @@
omr.summary,omr.status,
omr.homologation_impact,omr.homologation,
omr.impact_cn_homo,omr.impact_eu_homo,
omr.master_domain,omr.applied_vehicle_project,
omr.master_domain,omr.applied_vehicle_project,omr.vehicle_match,
oma.id,oma.project_version,oma.attestation_schedule,oma.match_status,oma.remark,oma.vehicle_type
from ota_manage_receive omr
left join ota_manage_apply oma on oma.vdr = omr.id
@@ -92,9 +92,6 @@
and (omr.impact_cn_homo LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.impactHomo}),'%')
and omr.impact_eu_homo LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.impactHomo}),'%'))
</if>
<if test="otaManageApplyEO.appliedVehicleProject != null and otaManageApplyEO.appliedVehicleProject != ''">
and omr.applied_vehicle_project LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.appliedVehicleProject}),'%')
</if>
<if test="otaManageApplyEO.homologationImpact != null and otaManageApplyEO.homologationImpact != ''">
and omr.homologation_impact LIKE CONCAT(CONCAT('%',#{otaManageApplyEO.homologationImpact}),'%')
</if>
@@ -153,6 +150,7 @@
oma.attestation_schedule,
oma.project_version,
pni.project_name car,
oma.vehicle_type,
pyni.year_name
FROM
project_library_base plb
@@ -2,6 +2,7 @@ package com.jero.modules.ota.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.ota.entity.OtaManageApplyEO;
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
import com.jero.modules.ota.vo.VersionVO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import org.springframework.web.servlet.ModelAndView;
@@ -134,4 +135,6 @@ public interface IOtaManageApplyEOService extends IService<OtaManageApplyEO> {
ModelAndView allCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO);
ModelAndView oneCarExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO);
List<OtaManageReceiveNsdp> getOtaTodoList(OtaManageReceiveNsdp otaManageReceiveNsdp);
}
@@ -61,4 +61,6 @@ public interface IOtaManageReceiveNsdpService extends IService<OtaManageReceiveN
List<OtaManageReceiveNsdp> getOtaManageReceiveNsdpSync();
List<OtaManageReceiveNsdp> getListByReleaseName(String releaseName);
}
@@ -4,6 +4,7 @@ import com.jero.modules.ota.entity.OtaManageApplyEO;
import com.jero.modules.ota.entity.OtaManageReceive;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* @Description: OTA管理
@@ -64,6 +65,8 @@ public interface IOtaManageReceiveService extends IService<OtaManageReceive> {
List<OtaManageReceive> getReceiveByplanned(String plannedBpLaunchBatch);
List<OtaManageReceive> getReceiveByplannedList(List<String> plannedBpLaunchBatchList);
List<OtaManageReceive> getReceiveSync();
@@ -11,18 +11,12 @@ import com.jero.common.util.oConvertUtils;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.ota.entity.OtaManageApplyEO;
import com.jero.modules.ota.entity.OtaManageHistory;
import com.jero.modules.ota.entity.OtaManagePermission;
import com.jero.modules.ota.entity.OtaManageReceive;
import com.jero.modules.ota.entity.*;
import com.jero.modules.ota.enums.OtaCarEnum;
import com.jero.modules.ota.enums.OtaHomoImpactEnum;
import com.jero.modules.ota.enums.OtaStatusEnum;
import com.jero.modules.ota.mapper.OtaManageApplyEOMapper;
import com.jero.modules.ota.service.IOtaManageApplyEOService;
import com.jero.modules.ota.service.IOtaManageHistoryService;
import com.jero.modules.ota.service.IOtaManagePermissionService;
import com.jero.modules.ota.service.IOtaManageReceiveService;
import com.jero.modules.ota.service.*;
import com.jero.modules.ota.vo.AllCarExportCnVO;
import com.jero.modules.ota.vo.AllCarExportEnVO;
import com.jero.modules.ota.vo.OneCarExportCnVO;
@@ -63,6 +57,7 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import java.text.Collator;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
@@ -108,6 +103,8 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
@Autowired
private IOtaManagePermissionService otaManagePermissionService;
@Autowired
private IOtaManageReceiveNsdpService otaManageReceiveNsdpService;
@Autowired
private ISysDictService sysDictService;
@Autowired
@@ -198,6 +195,87 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
return list();
}
public List<OtaManageApplyEO> getNsdpList(OtaManageApplyEO otaManageApplyEO) {
Date today = new Date();
List<OtaManageApplyEO> resList = new ArrayList<>();
List<OtaManageReceiveNsdp> dataList = otaManageReceiveNsdpService.queryList();
Map<String, List<OtaManageReceiveNsdp>> dataMap = dataList.stream().collect(Collectors.groupingBy(OtaManageReceiveNsdp::getReleaseName));
for (String rn : dataMap.keySet()) {
if(StringUtils.isNotEmpty(otaManageApplyEO.getPlannedBpLaunchBatch())&&!otaManageApplyEO.getPlannedBpLaunchBatch().equals(rn)){
continue;
}
List<OtaManageReceiveNsdp> valList = dataMap.get(rn);
if (CollectionUtils.isNotEmpty(valList)) {
Date releaseDate = null;
//市场
Set<String> marketSet = new HashSet<>();
//车型
Set<String> vehicleSet = new HashSet<>();
for (OtaManageReceiveNsdp omrn : valList) {
//找到最快来临的发布时间
try {
if(StringUtils.isNotBlank(omrn.getReleaseDate())){
Date syncDate = sdf.parse(omrn.getReleaseDate());
if (null == releaseDate) {
releaseDate = syncDate;
} else {
if (syncDate.after(today) && syncDate.before(releaseDate)) {
releaseDate = syncDate;
}
}
}
} catch (ParseException e) {
e.printStackTrace();
}
String appliedVehicleProject = omrn.getVehicle();
if(StringUtils.isNotEmpty(appliedVehicleProject)){
for (String s : appliedVehicleProject.split(",")) {
String[] split = s.split(" ");
if (split.length == 3) {
vehicleSet.add(split[0]+" "+split[2]);
marketSet.add(split[2]);
}
}
}
}
if(ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeStart()) && ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeEnd())){
if(ObjectUtils.isEmpty(releaseDate) || otaManageApplyEO.getSoftwareIssueTimeStart().after(releaseDate) || otaManageApplyEO.getSoftwareIssueTimeEnd().before(releaseDate)){
continue;
}
}
if (StringUtils.isNotEmpty(otaManageApplyEO.getAppliedVehicleProject()) && !vehicleSet.contains(otaManageApplyEO.getAppliedVehicleProject())) {
continue;
}
if (StringUtils.isNotEmpty(otaManageApplyEO.getMarket()) && !marketSet.contains(otaManageApplyEO.getMarket())) {
continue;
}
OtaManageReceiveNsdp omrn = valList.get(0);
if (StringUtils.isNotEmpty(otaManageApplyEO.getReleaseType()) && !otaManageApplyEO.getReleaseType().equals(omrn.getReleaseType())) {
continue;
}
OtaManageApplyEO oma = new OtaManageApplyEO();
oma.setId(omrn.getId());
oma.setPlannedBpLaunchBatch(omrn.getReleaseName());
if (!marketSet.isEmpty()) {
oma.setMarket(StringUtils.join(marketSet, ","));
}
if (!vehicleSet.isEmpty()) {
oma.setAppliedVehicleProject(StringUtils.join(vehicleSet, ","));
}
if (ObjectUtils.isNotEmpty(releaseDate)) {
oma.setReleaseDate(sdf.format(releaseDate));
}
oma.setCreatedAt(omrn.getCreatedAt());
oma.setReleaseType(omrn.getReleaseType());
resList.add(oma);
}
}
return resList;
}
/**
* OTA管理列表和全车型列表-分页列表查询
*
@@ -208,7 +286,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
public List<OtaManageApplyEO> getOtaPage(OtaManageApplyEO otaManageApplyEO) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
boolean otaManager = isOtaManager();
List<OtaManageApplyEO> otaManageApplyEOList = this.getBaseMapper().getOtaList(otaManageApplyEO);
List<OtaManageApplyEO> otaManageApplyEOList = this.getNsdpList(otaManageApplyEO);
List<OtaManageApplyEO> dataList = new ArrayList<>();
//去跟manager和studio权限
@@ -223,80 +301,80 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
}
}
List<OtaManageApplyEO> result = new ArrayList<>();
// List<OtaManageApplyEO> result = new ArrayList<>();
// if (!dataList.isEmpty()) {
// List<String> otaNameList = OtaCarEnum.getOtaNameList();
// List<String> plannedBpLaunchBatchList = dataList.stream()
// .filter(e -> StringUtils.isNotBlank(e.getPlannedBpLaunchBatch()))
// .map(OtaManageApplyEO::getPlannedBpLaunchBatch).distinct().collect(Collectors.toList());
// if (!plannedBpLaunchBatchList.isEmpty()) {
// for (String plannedBpLaunchBatch : plannedBpLaunchBatchList) {
// OtaManageApplyEO manageApplyEO = new OtaManageApplyEO();
// manageApplyEO.setPlannedBpLaunchBatch(plannedBpLaunchBatch);
// manageApplyEO.setId(plannedBpLaunchBatch);
//
// List<OtaManageApplyEO> otaManageApplyEOS = dataList.stream()
// .filter(e -> plannedBpLaunchBatch.equals(e.getPlannedBpLaunchBatch())).collect(Collectors.toList());
// if (!otaManageApplyEOS.isEmpty()) {
// //发布时间
// manageApplyEO.setReleaseDate(otaManageApplyEOS.get(0).getReleaseDate());
//
// List<String> appliedVehicleProjectList = otaManageApplyEOS.stream()
// .filter(e -> StringUtils.isNotBlank(e.getAppliedVehicleProject()))
// .map(OtaManageApplyEO::getAppliedVehicleProject).collect(Collectors.toList());
// List<String> carList = new ArrayList<>();
// for (String appliedVehicleProject : appliedVehicleProjectList) {
// carList.addAll(Arrays.asList(appliedVehicleProject.split(",")));
// }
// if (!carList.isEmpty()) {
// //适用车型
// carList = carList.stream().distinct().collect(Collectors.toList());
// manageApplyEO.setAppliedVehicleProject(StringUtils.join(carList, ","));
// //市场
// Set<String> marketSet = new HashSet<>();
// for (String appliedVehicleProject : carList) {
// if(otaNameList.contains(appliedVehicleProject)){
// marketSet.add(appliedVehicleProject);
// }else{
// for (String s : appliedVehicleProject.split(",")) {
// String[] split = s.split(" ");
// if (split.length == 2) {
// if (!otaNameList.contains(s)) {
// marketSet.add(split[1]);
// }
// } else if (split.length == 3) {
// if (!otaNameList.contains(s)) {
// marketSet.add(split[2]);
// }
// }
// }
// }
// }
// if (!marketSet.isEmpty()) {
// manageApplyEO.setMarket(StringUtils.join(marketSet, ","));
// }
// }
// }
// result.add(manageApplyEO);
// }
// }
// }
// if (ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeStart())) {
// result = result.stream()
// .filter(e -> StringUtils.isNotBlank(e.getReleaseDate())
// && (e.getReleaseNameDate().after(otaManageApplyEO.getSoftwareIssueTimeStart())
// || e.getReleaseNameDate().equals(otaManageApplyEO.getSoftwareIssueTimeStart()))).collect(Collectors.toList());
// }
// if (ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeEnd())) {
// result = result.stream().filter(e -> StringUtils.isNotBlank(e.getReleaseDate())
// && (e.getReleaseNameDate().before(otaManageApplyEO.getSoftwareIssueTimeEnd())
// || e.getReleaseNameDate().equals(otaManageApplyEO.getSoftwareIssueTimeEnd()))).collect(Collectors.toList());
// }
if (!dataList.isEmpty()) {
List<String> otaNameList = OtaCarEnum.getOtaNameList();
List<String> plannedBpLaunchBatchList = dataList.stream()
.filter(e -> StringUtils.isNotBlank(e.getPlannedBpLaunchBatch()))
.map(OtaManageApplyEO::getPlannedBpLaunchBatch).distinct().collect(Collectors.toList());
if (!plannedBpLaunchBatchList.isEmpty()) {
for (String plannedBpLaunchBatch : plannedBpLaunchBatchList) {
OtaManageApplyEO manageApplyEO = new OtaManageApplyEO();
manageApplyEO.setPlannedBpLaunchBatch(plannedBpLaunchBatch);
manageApplyEO.setId(plannedBpLaunchBatch);
List<OtaManageApplyEO> otaManageApplyEOS = dataList.stream()
.filter(e -> plannedBpLaunchBatch.equals(e.getPlannedBpLaunchBatch())).collect(Collectors.toList());
if (!otaManageApplyEOS.isEmpty()) {
//发布时间
manageApplyEO.setReleaseDate(otaManageApplyEOS.get(0).getReleaseDate());
List<String> appliedVehicleProjectList = otaManageApplyEOS.stream()
.filter(e -> StringUtils.isNotBlank(e.getAppliedVehicleProject()))
.map(OtaManageApplyEO::getAppliedVehicleProject).collect(Collectors.toList());
List<String> carList = new ArrayList<>();
for (String appliedVehicleProject : appliedVehicleProjectList) {
carList.addAll(Arrays.asList(appliedVehicleProject.split(",")));
}
if (!carList.isEmpty()) {
//适用车型
carList = carList.stream().distinct().collect(Collectors.toList());
manageApplyEO.setAppliedVehicleProject(StringUtils.join(carList, ","));
//市场
Set<String> marketSet = new HashSet<>();
for (String appliedVehicleProject : carList) {
if(otaNameList.contains(appliedVehicleProject)){
marketSet.add(appliedVehicleProject);
}else{
for (String s : appliedVehicleProject.split(",")) {
String[] split = s.split(" ");
if (split.length == 2) {
if (!otaNameList.contains(s)) {
marketSet.add(split[1]);
}
} else if (split.length == 3) {
if (!otaNameList.contains(s)) {
marketSet.add(split[2]);
}
}
}
}
}
if (!marketSet.isEmpty()) {
manageApplyEO.setMarket(StringUtils.join(marketSet, ","));
}
}
}
result.add(manageApplyEO);
}
}
}
if (ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeStart())) {
result = result.stream()
.filter(e -> StringUtils.isNotBlank(e.getReleaseDate())
&& (e.getReleaseNameDate().after(otaManageApplyEO.getSoftwareIssueTimeStart())
|| e.getReleaseNameDate().equals(otaManageApplyEO.getSoftwareIssueTimeStart()))).collect(Collectors.toList());
}
if (ObjectUtils.isNotEmpty(otaManageApplyEO.getSoftwareIssueTimeEnd())) {
result = result.stream().filter(e -> StringUtils.isNotBlank(e.getReleaseDate())
&& (e.getReleaseNameDate().before(otaManageApplyEO.getSoftwareIssueTimeEnd())
|| e.getReleaseNameDate().equals(otaManageApplyEO.getSoftwareIssueTimeEnd()))).collect(Collectors.toList());
}
if (!result.isEmpty()) {
//表头排序
heartSort(otaManageApplyEO, result);
heartSort(otaManageApplyEO, dataList);
}
return result;
return dataList;
}
/**
@@ -414,7 +492,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
}
}
// 软件发布时间
if ("releaseName".equals(otaManageApplyEO.getOrderByField())) {
if ("releaseDate".equals(otaManageApplyEO.getOrderByField())) {
if (OrderEnum.POSITIVE.getValue().equals(otaManageApplyEO.getOrderBy())) {
Collections.sort(otaManageApplyEOList, (e1, e2) -> {
String e1ReleaseName = StringUtils.isNotBlank(e1.getReleaseDate()) ? e1.getReleaseDate() : "";
@@ -669,6 +747,22 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
});
}
}
//发布类型
if ("releaseType".equals(otaManageApplyEO.getOrderByField())) {
if (OrderEnum.POSITIVE.getValue().equals(otaManageApplyEO.getOrderBy())) {
Collections.sort(otaManageApplyEOList, (e1, e2) -> {
String e1ReleaseType = StringUtils.isNotBlank(e1.getReleaseType()) ? e1.getReleaseType() : "";
String e2ReleaseType = StringUtils.isNotBlank(e2.getReleaseType()) ? e2.getReleaseType() : "";
return comparator.compare(e1ReleaseType, e2ReleaseType);
});
} else if (OrderEnum.REVERSE.getValue().equals(otaManageApplyEO.getOrderBy())) {
Collections.sort(otaManageApplyEOList, (e1, e2) -> {
String e1ReleaseType = StringUtils.isNotBlank(e1.getReleaseType()) ? e1.getReleaseType() : "";
String e2ReleaseType = StringUtils.isNotBlank(e2.getReleaseType()) ? e2.getReleaseType() : "";
return comparator.compare(e2ReleaseType, e1ReleaseType);
});
}
}
//备注
if ("remark".equals(otaManageApplyEO.getOrderByField())) {
if (OrderEnum.POSITIVE.getValue().equals(otaManageApplyEO.getOrderBy())) {
@@ -685,6 +779,13 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
});
}
}
if(StringUtils.isEmpty(otaManageApplyEO.getOrderByField())){
Collections.sort(otaManageApplyEOList, (e1, e2) -> {
Date e1CreatedAt = ObjectUtils.isNotEmpty(e1.getCreatedAt()) ? e1.getCreatedAt() : new Date(0);
Date e2CreatedAt = ObjectUtils.isNotEmpty(e2.getCreatedAt()) ? e2.getCreatedAt() : new Date(0);
return e2CreatedAt.compareTo(e1CreatedAt);
});
}
}
private boolean hasPermission(String plannedBpLaunchBatch){
@@ -734,27 +835,31 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
manageApplyEO.setVehicleType("");
}
}
String appliedVehicleProject = manageApplyEO.getAppliedVehicleProject();
String appliedVehicleProject = manageApplyEO.getVehicleMatch();
if (StringUtils.isNotBlank(appliedVehicleProject)) {
String[] appliedVehicleProjectArr = appliedVehicleProject.split(",");
for (String appliedVehicleProjectTemp : appliedVehicleProjectArr) {
String[] split = appliedVehicleProjectTemp.split(" ");
if (split.length == 1) {
if(carMarket.equals(appliedVehicleProjectTemp)){
omaMap.put(manageApplyEO.getVdr(), manageApplyEO);
break;
} else if (split.length == 2) {
if (Arrays.equals(conditionSplit, split)) {
omaMap.put(manageApplyEO.getVdr(), manageApplyEO);
break;
}
} else if (split.length == 3) {
List<String> listTemp = Arrays.asList(split);
List<String> conditionList = Arrays.asList(conditionSplit);
if (listTemp.containsAll(conditionList)) {
omaMap.put(manageApplyEO.getVdr(), manageApplyEO);
break;
}
}
// String[] split = appliedVehicleProjectTemp.split(" ");
// if (split.length == 1) {
// omaMap.put(manageApplyEO.getVdr(), manageApplyEO);
// break;
// } else if (split.length == 2) {
// if (Arrays.equals(conditionSplit, split)) {
// omaMap.put(manageApplyEO.getVdr(), manageApplyEO);
// break;
// }
// } else if (split.length == 3) {
// List<String> listTemp = Arrays.asList(split);
// List<String> conditionList = Arrays.asList(conditionSplit);
// if (listTemp.containsAll(conditionList)) {
// omaMap.put(manageApplyEO.getVdr(), manageApplyEO);
// break;
// }
// }
}
}
}
@@ -882,7 +987,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
*/
@Override
public Map<String, Object> getPullDownList() {
List<OtaManageApplyEO> otaManageApplyEOS = this.getBaseMapper().getOtaCarList(null);
List<OtaManageApplyEO> otaManageApplyEOS = this.getNsdpList(new OtaManageApplyEO());
Map<String, Object> result = new HashMap<>();
if (!otaManageApplyEOS.isEmpty()) {
//软件版本 planned_bp_launch_batch_
@@ -922,11 +1027,48 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
return result;
}
/**
* 下拉数据-全部和分车型不含年款
*
* @return
*/
@Override
public List<String> getCarList(String cut, String plannedBpLaunchBatch) {
List<OtaManageReceiveNsdp> dataList = otaManageReceiveNsdpService.getListByReleaseName(plannedBpLaunchBatch);
//车型
Set<String> vehicleSet = new HashSet<>();
for (OtaManageReceiveNsdp omrn : dataList) {
String appliedVehicleProject = omrn.getVehicle();
if(StringUtils.isNotEmpty(appliedVehicleProject)){
for (String s : appliedVehicleProject.split(",")) {
String[] split = s.split(" ");
if (split.length == 3) {
String projectName = split[0];
String market = split[2];
vehicleSet.add(projectName + " " + market);
}
}
}
}
List<String> resList = new ArrayList<>();
if (CutEnum.CN.getValue().equals(cut)) {
resList.add("全部");
} else {
resList.add("All");
}
resList.addAll(vehicleSet);
return resList;
}
/**
* 下拉数据-全部和分车型不含年款
*
* @return
*/
/*.
@Override
public List<String> getCarList(String cut, String plannedBpLaunchBatch) {
Set<String> set = new HashSet<>();
@@ -1003,6 +1145,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
}
return result;
}
*/
public List<String> getStudioCarList(String plannedBpLaunchBatch) {
Set<String> set = new HashSet<>();
@@ -1166,61 +1309,92 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
*/
@Override
public List<VersionVO> getVersionInfo(String vdr, String car, String cut) {
//认证进度数据字典 certification_progress
List<SysDictItem> regionDictList = sysDictItemServiceImpl.selectItemsByDictCode("certification_progress");
List<DictModel> regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
List<VersionVO> versionVOList = this.getBaseMapper().getVersionInfo(vdr);
List<VersionVO> result = new LinkedList<>();
if (!versionVOList.isEmpty()) {
List<VersionVO> oneList = versionVOList.stream().filter(e -> StringUtils.isBlank(e.getParentId())).collect(Collectors.toList());
List<VersionVO> twoList = versionVOList.stream().filter(e -> StringUtils.isNotBlank(e.getParentId())).collect(Collectors.toList());
OtaManageReceive omr = otaManageReceiveService.getById(vdr);
//获取到版本号然后获取所有车型
String plannedBpLaunchBatch = omr.getPlannedBpLaunchBatch();
if (StringUtils.isNotEmpty(plannedBpLaunchBatch)) {
List<OtaManageReceiveNsdp> dataList = otaManageReceiveNsdpService.getListByReleaseName(plannedBpLaunchBatch);
//车型
Set<String> vehicleSet = new HashSet<>();
for (OtaManageReceiveNsdp omrn : dataList) {
String appliedVehicleProject = omrn.getVehicle();
if (StringUtils.isNotEmpty(appliedVehicleProject)) {
for (String s : appliedVehicleProject.split(",")) {
String[] split = s.split(" ");
if (split.length == 3) {
vehicleSet.add(split[0] + " " + split[2]);
}
}
}
}
for (VersionVO versionVO : oneList) {
result.add(versionVO);
List<VersionVO> collect = twoList.stream().filter(e -> versionVO.getProjectId().equals(e.getParentId())).collect(Collectors.toList());
Collections.sort(collect, new Comparator<VersionVO>() {
@Override
public int compare(VersionVO o1, VersionVO o2) {
return Integer.valueOf(o1.getVersionNumber()).compareTo(Integer.valueOf(o2.getVersionNumber()));
//认证进度数据字典 certification_progress
List<SysDictItem> regionDictList = sysDictItemServiceImpl.selectItemsByDictCode("certification_progress");
List<DictModel> regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
List<VersionVO> versionVOList = this.getBaseMapper().getVersionInfo(vdr);
if (!versionVOList.isEmpty()) {
// List<VersionVO> oneList = versionVOList.stream().filter(e -> StringUtils.isBlank(e.getParentId())).collect(Collectors.toList());
// List<VersionVO> twoList = versionVOList.stream().filter(e -> StringUtils.isNotBlank(e.getParentId())).collect(Collectors.toList());
//
// for (VersionVO versionVO : oneList) {
// result.add(versionVO);
// List<VersionVO> collect = twoList.stream().filter(e -> versionVO.getProjectId().equals(e.getParentId())).collect(Collectors.toList());
// Collections.sort(collect, new Comparator<VersionVO>() {
// @Override
// public int compare(VersionVO o1, VersionVO o2) {
// return Integer.valueOf(o1.getVersionNumber()).compareTo(Integer.valueOf(o2.getVersionNumber()));
// }
// });
// result.addAll(collect);
// }
for (VersionVO versionVO : versionVOList) {
String market = versionVO.getMarket();
List<String> list = new LinkedList<>();
for (String s : market.split(",")) {
List<DictModel> collect = regionList.stream().filter(e -> e.getValue().equals(s)).collect(Collectors.toList());
if (!collect.isEmpty()) {
list.add(collect.get(0).getTextEn());
}
}
});
result.addAll(collect);
}
for (VersionVO versionVO : result) {
String market = versionVO.getMarket();
List<String> list = new LinkedList<>();
for (String s : market.split(",")) {
List<DictModel> collect = regionList.stream().filter(e -> e.getValue().equals(s)).collect(Collectors.toList());
if (!collect.isEmpty()) {
list.add(collect.get(0).getTextEn());
if (!list.isEmpty()) {
market = StringUtils.join(list, ",");
}
}
if (!list.isEmpty()) {
market = StringUtils.join(list, ",");
}
if (StringUtils.isBlank(versionVO.getProjectVersion())) {
versionVO.setVersionName(versionVO.getCar() + "-" + market);
} else {
versionVO.setVersionName(versionVO.getCar() + "-" + versionVO.getYearName() + "-" + market + "-" + versionVO.getVersionNumber());
}
//认证进度
if (StringUtils.isNotBlank(versionVO.getAttestationSchedule())) {
List<SysDictItem> collect = regionDictList.stream()
.filter(e -> e.getItemValue().equals(versionVO.getAttestationSchedule())).collect(Collectors.toList());
if (CutEnum.CN.getValue().equals(cut)) {
versionVO.setAttestationSchedule(collect.get(0).getItemText());
if (StringUtils.isBlank(versionVO.getProjectVersion())) {
versionVO.setVersionName(versionVO.getCar() + "-" + market);
} else {
versionVO.setAttestationSchedule(collect.get(0).getEnName());
versionVO.setVersionName(versionVO.getCar() + "-" + versionVO.getYearName() + "-" + market + "-" + versionVO.getVersionNumber());
}
//认证进度
if (StringUtils.isNotBlank(versionVO.getAttestationSchedule())) {
List<SysDictItem> collect = regionDictList.stream()
.filter(e -> e.getItemValue().equals(versionVO.getAttestationSchedule())).collect(Collectors.toList());
if (CutEnum.CN.getValue().equals(cut)) {
versionVO.setAttestationSchedule(collect.get(0).getItemText());
} else {
versionVO.setAttestationSchedule(collect.get(0).getEnName());
}
}
result.add(versionVO);
}
}
for (String vehicleStr : vehicleSet) {
boolean flag = false;
for (VersionVO ver : result) {
if(ver.getVehicleType().equals(vehicleStr)){
flag = true;
break;
}
}
if(!flag){
VersionVO versionVO = new VersionVO();
versionVO.setVersionName(vehicleStr);
versionVO.setVehicleType(vehicleStr);
result.add(versionVO);
}
}
}
if (result.isEmpty()) {
VersionVO versionVO = new VersionVO();
versionVO.setVersionName(car);
result.add(versionVO);
}
return result;
}
@@ -1231,6 +1405,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
@Override
public void issueNotice(String id) {
if (StringUtils.isNotEmpty(id)) {
/*
//根据版本查出所有vdr
List<OtaManageReceive> omrList = otaManageReceiveService.getReceiveByplanned(id);
List<String> appliedVehicleProjectList = omrList.stream()
@@ -1278,62 +1453,91 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
}
}
}
//查询所有NT2平台的项目
ProjectLibraryBase plbSearch = new ProjectLibraryBase();
plbSearch.setDigitalPlatform("NT2");
List<ProjectLibraryBase> plbList = projectLibraryBaseService.getList(plbSearch);
//存储符合条件的项目中Studio的用户ID
Set<String> matchStudioSet = new HashSet();
for (ProjectLibraryBase plb : plbList) {
boolean flag = false;
if (appMap.containsKey("All")) {
matchStudioSet.add(plb.getStudioEngineer());
continue;
}
String targetMarket = plb.getTargetMarket();
String projectName = plb.getProjectName().toUpperCase(Locale.ROOT);
String[] targetMarkets = targetMarket.split(",");
for (String tm : targetMarkets) {
if ((appMap.containsKey("CN") && tm.equals("China"))
|| (appMap.containsKey("EU") && tm.equals("EU"))
|| (appMap.containsKey("RHD") && tm.equals("UK"))) {
//三个ALL的市场类型
matchStudioSet.add(plb.getStudioEngineer());
continue;
}
if (appMap.containsKey(projectName)) {
Set appSet = appMap.get(projectName);
if (appSet.contains(tm)) {
matchStudioSet.add(plb.getStudioEngineer());
continue;
*/
List<OtaManageReceiveNsdp> dataList = otaManageReceiveNsdpService.getListByReleaseName(id);
//车型
Set<String> vehicleSet = new HashSet<>();
for (OtaManageReceiveNsdp omrn : dataList) {
String appliedVehicleProject = omrn.getVehicle();
if(StringUtils.isNotEmpty(appliedVehicleProject)){
for (String s : appliedVehicleProject.split(",")) {
String[] split = s.split(" ");
if (split.length == 3) {
String projectName = split[0];
String market = split[2];
vehicleSet.add(projectName + " " + market);
}
}
}
}
//查询所有NT2平台的项目
ProjectLibraryBase plbSearch = new ProjectLibraryBase();
plbSearch.setDigitalPlatform("NT2");
List<ProjectLibraryBase> plbList = projectLibraryBaseService.getList(plbSearch);
//存储符合条件的项目中Studio的用户ID,value车型列表
Map<String,Set<String>> matchStudioMap = new HashMap<>();
for (ProjectLibraryBase plb : plbList) {
String projectName = plb.getProjectName();
if(projectName.equals("FORCE")){
projectName = "Force";
}
boolean flag = false;
String targetMarket = plb.getTargetMarket();
String[] targetMarkets = targetMarket.split(",");
for (String tm : targetMarkets) {
String tmStr = tm.trim();
if (tm.equals("China")) {
tmStr = "CN";
} else if (tm.equals("UK")) {
tmStr = "RHD";
}
String vehicleStr = projectName + " " + tmStr;
if (vehicleSet.contains(vehicleStr)) {
Set vehset = null;
if (matchStudioMap.containsKey(plb.getStudioEngineer())) {
vehset = matchStudioMap.get(plb.getStudioEngineer());
} else {
vehset = new HashSet<>();
}
vehset.add(vehicleStr);
matchStudioMap.put(plb.getStudioEngineer(), vehset);
}
}
}
List<OtaManagePermission> ompAllList = otaManagePermissionService.list();
List<OtaManagePermission> ompList = new ArrayList<>();
for (String studioId : matchStudioSet) {
OtaManagePermission omp = new OtaManagePermission();
omp.setApplyId(id);
omp.setUserId(studioId);
ompList.add(omp);
for (String studioId : matchStudioMap.keySet()) {
List<OtaManagePermission> filterList = ompAllList.stream().filter(o->o.getApplyId().equals(id)&&o.getUserId().equals(studioId)).collect(Collectors.toList());
if(CollectionUtils.isEmpty(filterList)){
OtaManagePermission omp = new OtaManagePermission();
omp.setApplyId(id);
omp.setUserId(studioId);
omp.setVehicle(matchStudioMap.get(studioId).stream().collect(Collectors.joining(",")));
ompList.add(omp);
}
}
if(CollectionUtils.isNotEmpty(ompList)){
otaManagePermissionService.saveBatch(ompList);
}
otaManagePermissionService.saveBatch(ompList);
//给studio发消息
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
Map<String, Object> params = new HashMap<>();
List<String> userIdList = new ArrayList<>(matchStudioSet);
List<String> userIdList = new ArrayList<>(matchStudioMap.keySet());
params.put("userIdList", userIdList);
params.put("contentCn", "您好,请及时查看处理此项任务,谢谢!-请在PC端查看");
params.put("contentEn", "Hello! Please check and address the task in a timely manner. Thank you!-Check on the PC");
params.put("plannedBpLaunchBatch", id);
params.put("viewBtnUrlCnPhone", backUrlPhone);
String url = backUrl;
if (omrList.size() > 0) {
url = backUrl + "/components/detil?plannedBpLaunchBatch=" + id + "&releaseDate=" + omrList.get(0).getReleaseDate();
if (dataList.size() > 0) {
url = backUrl + "/components/detil?plannedBpLaunchBatch=" + id + "&releaseDate=" + dataList.get(0).getReleaseDate();
}
params.put("viewBtnUrlCn", url);
params.put("viewBtnUrlEn", url);
params.put("appliedVehicleProject", appMap.keySet().stream().collect(Collectors.joining(",")));
params.put("appliedVehicleProject", vehicleSet.stream().collect(Collectors.joining(",")));
params.put("Initiator", " " + currentUser.getUsername());
params.put("initiatorStrCn", "发起人");
params.put("initiatorStrEn", "Initiator");
@@ -1832,7 +2036,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
public List<Map<String, Object>> getStatisticalStatus(String projectId, String plannedBpLaunchBatch, String cut, List<ProjectLibraryBase> plbEoList) {
List<Map<String, Object>> result = new ArrayList<>();
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
if (!plbEoList.isEmpty()) {
if (ObjectUtils.isNotEmpty(plbEoList)) {
projectLibraryBaseList = plbEoList.stream().filter(e -> e.getId().equals(projectId)).collect(Collectors.toList());
}
List<OtaManageApplyEO> receiveList = this.getBaseMapper().getListByProjectId(projectId, plannedBpLaunchBatch);
@@ -1954,7 +2158,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
@Override
public ModelAndView otaExportXls(HttpServletRequest request, OtaManageApplyEO otaManageApplyEO) {
// Step.2 获取导出数据
List<OtaManageApplyEO> pageList = getOtaPage(otaManageApplyEO);
List<OtaManageApplyEO> pageList = getNsdpList(otaManageApplyEO);
List<OtaManageApplyEO> exportList = null;
// 过滤选中数据
@@ -2081,4 +2285,143 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
}
public List<OtaManageApplyEO> getListByVdrList(List<String> vdrList) {
if(CollectionUtils.isEmpty(vdrList)){
return new ArrayList<>();
}
QueryWrapper<OtaManageApplyEO> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(OtaManageApplyEO::getVdr, vdrList);
List<OtaManageApplyEO> resList = this.list(queryWrapper);
return resList;
}
@Override
public List<OtaManageReceiveNsdp> getOtaTodoList(OtaManageReceiveNsdp otaManageReceiveNsdp) {
List<OtaManageReceiveNsdp> resList = new ArrayList<>();
LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String userId = user.getId();
//查询所有此人权限
List<OtaManagePermission> ompList = otaManagePermissionService.queryByUserId(userId);
//筛选版本号ID
List<String> plannedList = ompList.stream().map(OtaManagePermission::getApplyId).distinct().collect(Collectors.toList());
//查询所有VDR
List<OtaManageReceive> omrList = otaManageReceiveService.getReceiveByplannedList(plannedList);
List<String> vdrList = omrList.stream().map(OtaManageReceive::getId).distinct().collect(Collectors.toList());
List<OtaManageApplyEO> omaList = this.getListByVdrList(vdrList);
for (OtaManagePermission omp : ompList) {
if (StringUtils.isNotEmpty(otaManageReceiveNsdp.getReleaseName()) && !omp.getApplyId().contains(otaManageReceiveNsdp.getReleaseName())) {
continue;
}
String vehicleStr = omp.getVehicle();
String[] vehicleList = vehicleStr.split(",");
for (String vehicle : vehicleList) {
if (StringUtils.isNotEmpty(otaManageReceiveNsdp.getVehicle()) && !vehicle.contains(otaManageReceiveNsdp.getVehicle())) {
continue;
}
List<OtaManageReceive> omrVehicleList = omrList.stream()
.filter(obj -> StringUtils.isNotEmpty(obj.getPlannedBpLaunchBatch()) && obj.getPlannedBpLaunchBatch().equals(omp.getApplyId())
&& StringUtils.isNotEmpty(obj.getVehicleMatch()) && obj.getVehicleMatch().contains(vehicle))
.collect(Collectors.toList());
for (OtaManageReceive mrVehicle : omrVehicleList) {
if (StringUtils.isNotEmpty(otaManageReceiveNsdp.getReleaseType()) && !otaManageReceiveNsdp.getReleaseType().equals(mrVehicle.getReleaseType())) {
continue;
}
if (!OtaHomoImpactEnum.YES.getValue().equals(mrVehicle.getHomologationImpact())
&& !OtaHomoImpactEnum.INTER_VALID.getValue().equals(mrVehicle.getHomologationImpact())) {
List<OtaManageApplyEO> applyList = omaList.stream()
.filter(obj -> StringUtils.isNotEmpty(obj.getVdr()) && obj.getVdr().equals(mrVehicle.getId())
&& StringUtils.isNotEmpty(obj.getVehicleType()) && obj.getVehicleType().equals(vehicle))
.collect(Collectors.toList());
if (CollectionUtils.isEmpty(applyList) || OtaStatusEnum.TO_BE_MATCHED.getKey().equals(applyList.get(0).getMatchStatus())) {
OtaManageReceiveNsdp omrn = new OtaManageReceiveNsdp();
omrn.setId(UUID.randomUUID().toString().replace("-", ""));
omrn.setReleaseName(omp.getApplyId());
omrn.setReleaseType(mrVehicle.getReleaseType());
omrn.setVehicle(vehicle);
omrn.setReleaseDate(mrVehicle.getReleaseDate());
resList.add(omrn);
break;
}
}
}
}
}
if (!resList.isEmpty()) {
//表头排序
headSort(otaManageReceiveNsdp,resList);
}
return resList;
}
private void headSort(OtaManageReceiveNsdp otaManageReceiveNsdp, List<OtaManageReceiveNsdp> resList) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
// 软件版本
if ("releaseName".equals(otaManageReceiveNsdp.getOrderByField())) {
if (OrderEnum.POSITIVE.getValue().equals(otaManageReceiveNsdp.getOrderBy())) {
Collections.sort(resList, (e1, e2) -> {
String e1ReleaseName = StringUtils.isNotBlank(e1.getReleaseName()) ? e1.getReleaseName() : "";
String e2ReleaseName = StringUtils.isNotBlank(e2.getReleaseName()) ? e2.getReleaseName() : "";
return comparator.compare(e1ReleaseName, e2ReleaseName);
});
} else if (OrderEnum.REVERSE.getValue().equals(otaManageReceiveNsdp.getOrderBy())) {
Collections.sort(resList, (e1, e2) -> {
String e1ReleaseName = StringUtils.isNotBlank(e1.getReleaseName()) ? e1.getReleaseName() : "";
String e2ReleaseName = StringUtils.isNotBlank(e2.getReleaseName()) ? e2.getReleaseName() : "";
return comparator.compare(e2ReleaseName, e1ReleaseName);
});
}
}
// 发布类型
if ("releaseType".equals(otaManageReceiveNsdp.getOrderByField())) {
if (OrderEnum.POSITIVE.getValue().equals(otaManageReceiveNsdp.getOrderBy())) {
Collections.sort(resList, (e1, e2) -> {
String e1ReleaseType = StringUtils.isNotBlank(e1.getReleaseType()) ? e1.getReleaseType() : "";
String e2ReleaseType = StringUtils.isNotBlank(e2.getReleaseType()) ? e2.getReleaseType() : "";
return comparator.compare(e1ReleaseType, e2ReleaseType);
});
} else if (OrderEnum.REVERSE.getValue().equals(otaManageReceiveNsdp.getOrderBy())) {
Collections.sort(resList, (e1, e2) -> {
String e1ReleaseType = StringUtils.isNotBlank(e1.getReleaseType()) ? e1.getReleaseType() : "";
String e2ReleaseType = StringUtils.isNotBlank(e2.getReleaseType()) ? e2.getReleaseType() : "";
return comparator.compare(e2ReleaseType, e1ReleaseType);
});
}
}
// 适用车型
if ("vehicle".equals(otaManageReceiveNsdp.getOrderByField())) {
if (OrderEnum.POSITIVE.getValue().equals(otaManageReceiveNsdp.getOrderBy())) {
Collections.sort(resList, (e1, e2) -> {
String e1Vehicle= StringUtils.isNotBlank(e1.getVehicle()) ? e1.getVehicle() : "";
String e2Vehicle= StringUtils.isNotBlank(e2.getVehicle()) ? e2.getVehicle() : "";
return comparator.compare(e1Vehicle, e2Vehicle);
});
} else if (OrderEnum.REVERSE.getValue().equals(otaManageReceiveNsdp.getOrderBy())) {
Collections.sort(resList, (e1, e2) -> {
String e1Vehicle= StringUtils.isNotBlank(e1.getVehicle()) ? e1.getVehicle() : "";
String e2Vehicle= StringUtils.isNotBlank(e2.getVehicle()) ? e2.getVehicle() : "";
return comparator.compare(e2Vehicle, e1Vehicle);
});
}
}
// 软件发布时间
if ("releaseDate".equals(otaManageReceiveNsdp.getOrderByField())) {
if (OrderEnum.POSITIVE.getValue().equals(otaManageReceiveNsdp.getOrderBy())) {
Collections.sort(resList, (e1, e2) -> {
String e1ReleaseDate = StringUtils.isNotBlank(e1.getReleaseDate()) ? e1.getReleaseDate() : "";
String e2ReleaseDate = StringUtils.isNotBlank(e2.getReleaseDate()) ? e2.getReleaseDate() : "";
return comparator.compare(e1ReleaseDate, e2ReleaseDate);
});
} else if (OrderEnum.REVERSE.getValue().equals(otaManageReceiveNsdp.getOrderBy())) {
Collections.sort(resList, (e1, e2) -> {
String e1ReleaseDate = StringUtils.isNotBlank(e1.getReleaseDate()) ? e1.getReleaseDate() : "";
String e2ReleaseDate = StringUtils.isNotBlank(e2.getReleaseDate()) ? e2.getReleaseDate() : "";
return comparator.compare(e2ReleaseDate, e1ReleaseDate);
});
}
}
}
}
@@ -1,5 +1,6 @@
package com.jero.modules.ota.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
import com.jero.modules.ota.mapper.OtaManageReceiveNsdpMapper;
import com.jero.modules.ota.service.IOtaManageReceiveNsdpService;
@@ -91,4 +92,12 @@ public class OtaManageReceiveNsdpServiceImpl extends ServiceImpl<OtaManageReceiv
public List<OtaManageReceiveNsdp> getOtaManageReceiveNsdpSync() {
return this.getBaseMapper().getOtaManageReceiveNsdpSync();
}
@Override
public List<OtaManageReceiveNsdp> getListByReleaseName(String releaseName) {
LambdaQueryWrapper<OtaManageReceiveNsdp> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OtaManageReceiveNsdp::getReleaseName, releaseName);
return this.list(queryWrapper);
}
}
@@ -4,9 +4,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.modules.ota.entity.OtaManageReceive;
import com.jero.modules.ota.mapper.OtaManageReceiveMapper;
import com.jero.modules.ota.service.IOtaManageReceiveService;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.util.Map;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
/**
@@ -100,6 +106,17 @@ public class OtaManageReceiveServiceImpl extends ServiceImpl<OtaManageReceiveMap
return this.list(queryWrapper);
}
@Override
public List<OtaManageReceive> getReceiveByplannedList(List<String> plannedBpLaunchBatchList) {
if(CollectionUtils.isEmpty(plannedBpLaunchBatchList)){
return new ArrayList<>();
}
QueryWrapper<OtaManageReceive> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().in(OtaManageReceive::getPlannedBpLaunchBatch, plannedBpLaunchBatchList);
List<OtaManageReceive> resList = this.list(queryWrapper);
return resList;
}
@Override
public List<OtaManageReceive> getReceiveSync() {
return this.getBaseMapper().getReceiveSync();
@@ -62,6 +62,9 @@ public class VersionVO {
private String versionName;
@ApiModelProperty(value = "项目版本-id")
private java.lang.String projectVersion;
private String projectVersion;
@ApiModelProperty(value = "适用车型")
private String vehicleType;
}
@@ -0,0 +1,376 @@
package com.jero.modules.platform.controller;
import com.alibaba.fastjson.JSONObject;
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.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.platform.service.IPlatformProjectCertificationInventoryEOService;
import com.jero.modules.system.entity.SysRole;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @Description: 项目库-认证清单表
* @Author: jero-boot
* @Date: 2023-03-03
* @Version: V1.0
*/
@Api(tags="平台件项目库-认证清单表")
@RestController
@RequestMapping("/platform/projectCertificationInventoryEO")
@Slf4j
public class PlatformProjectCertificationInventoryEOController extends JeroController<ProjectCertificationInventoryEO, IPlatformProjectCertificationInventoryEOService> {
@Autowired
private IPlatformProjectCertificationInventoryEOService platformProjectCertificationInventoryEOService;
/**
* 分页列表查询
*
* @param projectCertificationInventoryEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "项目库-认证清单表-分页列表查询")
@ApiOperation(value="项目库-认证清单表-分页列表查询", notes="项目库-认证清单表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ProjectCertificationInventoryEO projectCertificationInventoryEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@RequestParam(name="cut", defaultValue="cn") String cut,
HttpServletRequest req) {
String flowStatusStr = "";
if (StringUtils.isNotEmpty(projectCertificationInventoryEO.getFlowStatus())) {
flowStatusStr = projectCertificationInventoryEO.getFlowStatus();
projectCertificationInventoryEO.setFlowStatus(null);
}
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryEO, req.getParameterMap());
if (StringUtils.isNotEmpty(flowStatusStr)) {
String finalflowStatusStr = flowStatusStr.replaceAll("\\*","");
queryWrapper.and(query -> {
query.lambda().like(ProjectCertificationInventoryEO::getFlowStatus, finalflowStatusStr);
if(StringUtils.contains(finalflowStatusStr,",")){
String[] flowStatusArr = finalflowStatusStr.split(",");
for (String fs : flowStatusArr) {
query.or(q -> {
q.like("flow_status",fs);
});
}
}
});
}
queryWrapper.orderByDesc("create_time");
Page<ProjectCertificationInventoryEO> page = new Page<ProjectCertificationInventoryEO>(pageNo, pageSize);
IPage<ProjectCertificationInventoryEO> pageList = this.platformProjectCertificationInventoryEOService.queryPage(queryWrapper,page,projectCertificationInventoryEO,cut);
return Result.OK(cut,pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "项目库-认证清单表-列表查询")
@ApiOperation(value="项目库-认证清单表-列表查询", notes="项目库-认证清单表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProjectCertificationInventoryEO>> queryList() {
List<ProjectCertificationInventoryEO> list = platformProjectCertificationInventoryEOService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param projectCertificationInventoryEO
* @return
*/
@AutoLog(value = "项目库-认证清单表-添加")
@ApiOperation(value="项目库-认证清单表-添加", notes="项目库-认证清单表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProjectCertificationInventoryEO projectCertificationInventoryEO) {
platformProjectCertificationInventoryEOService.add(projectCertificationInventoryEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param projectCertificationInventoryEO
* @return
*/
@AutoLog(value = "项目库-认证清单表-编辑")
@ApiOperation(value="项目库-认证清单表-编辑", notes="项目库-认证清单表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ProjectCertificationInventoryEO projectCertificationInventoryEO) {
platformProjectCertificationInventoryEOService.editById(projectCertificationInventoryEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "项目库-认证清单表-通过id删除")
@ApiOperation(value="项目库-认证清单表-通过id删除", notes="项目库-认证清单表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
platformProjectCertificationInventoryEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "项目库-认证清单表-批量删除")
@ApiOperation(value="项目库-认证清单表-批量删除", notes="项目库-认证清单表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.platformProjectCertificationInventoryEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "项目库-认证清单表-通过id查询")
@ApiOperation(value="项目库-认证清单表-通过id查询", notes="项目库-认证清单表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ProjectCertificationInventoryEO projectCertificationInventoryEO = platformProjectCertificationInventoryEOService.queryById(id);
if(projectCertificationInventoryEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(projectCertificationInventoryEO);
}
/**
* 导出excel
*
* @param request
* @param projectCertificationInventoryEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ProjectCertificationInventoryEO projectCertificationInventoryEO) {
return super.exportXls(request, projectCertificationInventoryEO, ProjectCertificationInventoryEO.class, "项目库-认证清单表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ProjectCertificationInventoryEO.class);
}
@AutoLog(value = "项目库-认证清单表-批量添加")
@ApiOperation(value="项目库-认证清单表-批量添加", notes="项目库-认证清单表-批量添加")
@PostMapping(value = "/batchAdd")
public Result<?> batchAdd(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.batchAdd(json);
}
@AutoLog(value = "项目库-认证清单表-批量设置")
@ApiOperation(value="项目库-认证清单表-批量设置", notes="项目库-认证清单表-批量设置")
@PostMapping(value = "/setBatch")
public Result<?> setBatch(@RequestBody ProjectCertificationInventoryEO projectCertificationInventoryEO) {
return this.platformProjectCertificationInventoryEOService.setBatch(projectCertificationInventoryEO);
}
@AutoLog(value = "项目库-认证清单表-studio发布")
@ApiOperation(value="项目库-认证清单表-studio发布", notes="项目库-认证清单表-studio发布")
@PostMapping(value = "/issue")
public Result<?> issue(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.issue(json);
}
@AutoLog(value = "项目库-认证清单表-当前登录用户角色")
@ApiOperation(value="项目库-认证清单表-当前登录用户角色", notes="项目库-认证清单表-当前登录用户角色")
@GetMapping(value = "/getRoleByUserId")
public Result<List<SysRole>> getRoleByUserId(@RequestParam Map<String,Object> params) {
return this.platformProjectCertificationInventoryEOService.getRoleByUserId(params);
}
@AutoLog(value = "项目库-认证清单表-获取流程状态列表")
@ApiOperation(value="项目库-认证清单表-获取流程状态列表", notes="项目库-认证清单表-获取流程状态列表")
@GetMapping(value = "/getFlowStatusList")
public Result<?> getFlowStatusList(@RequestParam("cut") String cut) {
return this.platformProjectCertificationInventoryEOService.getFlowStatusList(cut);
}
@AutoLog(value = "项目库-认证清单表-认证流程统一提交任务接口")
@ApiOperation(value="项目库-认证清单表-认证流程统一提交任务接口", notes="项目库-认证清单表-认证流程统一提交任务接口")
@PostMapping(value = "/submitTask")
public Result<?> submitTask(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.submitTask(json);
}
@AutoLog(value = "项目库-认证清单表-批量保存")
@ApiOperation(value="项目库-认证清单表-批量保存", notes="项目库-认证清单表-批量保存")
@PostMapping(value = "/saveBatch")
public Result<?> saveBatch(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.saveBatch(json);
}
@AutoLog(value = "项目库-认证清单表-流程重置")
@ApiOperation(value="项目库-认证清单表-流程重置", notes="项目库-认证清单表-流程重置")
@PostMapping(value = "/resetFlow")
public Result<?> resetFlow(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.resetFlow(json);
}
@AutoLog(value = "项目库-认证清单表-转办")
@ApiOperation(value="项目库-认证清单表-转办", notes="项目库-认证清单表-转办")
@PostMapping(value = "/transferTask")
public Result<?> transferTask(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.transferTask(json);
}
@AutoLog(value = "项目库-认证清单表-催办")
@ApiOperation(value="项目库-认证清单表-催办", notes="项目库-认证清单表-催办")
@PostMapping(value = "/expediting")
public Result<?> expediting(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.expediting(json);
}
@AutoLog(value = "项目库-认证清单表-批量修改配置项")
@ApiOperation(value="项目库-认证清单表-批量修改配置项", notes="项目库-认证清单表-批量修改配置项")
@PostMapping(value = "/updateConfigItemBatch")
public Result<?> updateConfigItemBatch(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.updateConfigItemBatch(json);
}
@ApiOperation(value="项目库-认证清单表-模板下载", notes="项目库-认证清单表-模板下载")
@GetMapping(value = "/exportTemplate")
public void exportTemplate(ProjectCertificationInventoryEO projectCertificationInventoryEO, HttpServletResponse response, HttpServletRequest request) throws Exception {
platformProjectCertificationInventoryEOService.exportTemplate(projectCertificationInventoryEO,response,request);
}
/**
* 导入数据
*
* @param file
* @param projectCertificationInventoryEO
* @return
*/
@ApiOperation(value="项目库-认证清单表-导入数据", notes="项目库-认证清单表-导入数据")
@RequestMapping(value = "/importData", method = RequestMethod.POST)
public Result<?> importData(@RequestParam(value = "file", required = false) MultipartFile file,
ProjectCertificationInventoryEO projectCertificationInventoryEO) {
platformProjectCertificationInventoryEOService.importData(file,projectCertificationInventoryEO);
return Result.OK("导入成功");
}
/**
* 导出数据
* @param request
* @param projectCertificationInventoryEO
*/
@ApiOperation(value="项目库-认证清单表-导出数据", notes="项目库-认证清单表-导出数据")
@RequestMapping(value = "/exportData",method = RequestMethod.GET)
// @RequiresPermissions("projectLawsInventory:exportData")
public void exportData(HttpServletResponse response,
HttpServletRequest request,
ProjectCertificationInventoryEO projectCertificationInventoryEO) {
platformProjectCertificationInventoryEOService.exportData(response,request, projectCertificationInventoryEO);
}
@AutoLog(value = "项目库-认证清单表-调取添加")
@ApiOperation(value="项目库-认证清单表-调取添加", notes="项目库-认证清单表-调取添加")
@PostMapping(value = "/callAdd")
public Result<?> callAdd(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.callAdd(json);
}
@AutoLog(value = "项目库-认证清单表-引用交付物")
@ApiOperation(value="项目库-认证清单表-引用交付物", notes="项目库-认证清单表-引用交付物")
@PostMapping(value = "/citeDeliverable")
public Result<?> citeDeliverable(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.citeDeliverable(json);
}
/**
* 批量更新法规清单状态
* @param json
* @return
*/
@AutoLog(value = "项目库-认证清单表-批量更新流程状态")
@ApiOperation(value="项目库-认证清单表-批量更新流程状态", notes="项目库-认证清单表-批量更新流程状态")
@PostMapping(value = "/updateStatusBatch")
public Result<?> updateStatusBatch(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.updateStatusBatch(json);
}
/**
* 添加配置 等同于 复制
* @param json
* @return
*/
@AutoLog(value = "项目库-认证清单表-添加配置")
@ApiOperation(value="项目库-认证清单表-添加配置", notes="项目库-认证清单表-添加配置")
@PostMapping(value = "/addConfigByIds")
public Result<?> addConfigByIds(@RequestBody JSONObject json) {
return this.platformProjectCertificationInventoryEOService.addConfigByIds(json);
}
/**
* 获取责任人和接口人
* @return
*/
@AutoLog(value = "项目库-认证清单表-获取责任人和接口人")
@ApiOperation(value="项目库-认证清单表-获取责任人和接口人", notes="项目库-认证清单表-获取责任人和接口人")
@GetMapping(value = "/queryDutyPersonByProjectId")
public Result<?> queryDutyPersonByProjectId(@RequestParam Map<String,Object> params) {
return Result.OK(this.platformProjectCertificationInventoryEOService.queryDutyPersonByProjectId(params));
}
/**
* 匹配相关人员
* @param params
* @return
*/
@AutoLog(value = "项目库-认证清单表-匹配相关人员")
@ApiOperation(value="项目库-认证清单表-匹配相关人员", notes="项目库-法规清单表-匹配相关人员")
@PostMapping(value = "/matchRelevantPeople")
public Result<?> matchRelevantPeople(@RequestBody Map<String,Object> params){
return this.platformProjectCertificationInventoryEOService.matchRelevantPeople(params);
}
}
@@ -0,0 +1,576 @@
package com.jero.modules.platform.controller;
import com.alibaba.fastjson.JSONObject;
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.itextpdf.text.DocumentException;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.PageUtil;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.dummy.entity.DummyInventoryBaseEO;
import com.jero.modules.dummy.service.IDummyInventoryBaseEOService;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.vo.ProjectTaskUrgVo;
import com.jero.modules.platform.service.IPlatformProjectLawsInventoryEOService;
import com.jero.modules.system.entity.SysRole;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @Description: 项目库-法规清单表
* @Author: jero-boot
* @Date: 2022-04-14
* @Version: V1.0
*/
@Api(tags="平台件项目库-法规清单表")
@RestController
@RequestMapping("/platform/projectLawsInventoryEO")
@Slf4j
public class PlatformProjectLawsInventoryEOController extends JeroController<ProjectLawsInventoryEO, IProjectLawsInventoryEOService> {
@Autowired
private IPlatformProjectLawsInventoryEOService platformProjectLawsInventoryEOService;
@Autowired
private IBussDocumentLibraryEOService bussDocumentLibraryEOService;
@Autowired
private IDummyInventoryBaseEOService dummyInventoryBaseEOService;
/**
* 分页列表查询
*
* @param projectLawsInventoryEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "项目库-法规清单表-分页列表查询")
@ApiOperation(value="项目库-法规清单表-分页列表查询", notes="项目库-法规清单表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ProjectLawsInventoryEO projectLawsInventoryEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
IPage<ProjectLawsInventoryEO> pageList = this.platformProjectLawsInventoryEOService.queryPage(projectLawsInventoryEO,pageNo,pageSize,req);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "项目库-法规清单表-列表查询")
@ApiOperation(value="项目库-法规清单表-列表查询", notes="项目库-法规清单表-列表查询")
@GetMapping(value = "/list")
@RequiresPermissions("projectLawsInventory:list")
public Result<List<ProjectLawsInventoryEO>> queryList(ProjectLawsInventoryEO projectLawsInventoryEO,HttpServletRequest req) {
List<ProjectLawsInventoryEO> list = platformProjectLawsInventoryEOService.queryList(projectLawsInventoryEO,req);
return Result.OK(projectLawsInventoryEO.getCut(),list);
}
/**
* 添加
*
* @param projectLawsInventoryEO
* @return
*/
@AutoLog(value = "项目库-法规清单表-添加")
@ApiOperation(value="项目库-法规清单表-添加", notes="项目库-法规清单表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProjectLawsInventoryEO projectLawsInventoryEO) {
platformProjectLawsInventoryEOService.add(projectLawsInventoryEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param projectLawsInventoryEO
* @return
*/
@AutoLog(value = "项目库-法规清单表-编辑")
@ApiOperation(value="项目库-法规清单表-编辑", notes="项目库-法规清单表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ProjectLawsInventoryEO projectLawsInventoryEO) {
platformProjectLawsInventoryEOService.editById(projectLawsInventoryEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "项目库-法规清单表-通过id删除")
@ApiOperation(value="项目库-法规清单表-通过id删除", notes="项目库-法规清单表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id,
@RequestParam(name="projectLibraryId",required=true) String projectLibraryId,
@RequestParam(name="cut",required=true) String cut) {
platformProjectLawsInventoryEOService.deleteById(id,projectLibraryId,cut);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "项目库-法规清单表-批量删除")
@ApiOperation(value="项目库-法规清单表-批量删除", notes="项目库-法规清单表-批量删除")
@PostMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestBody JSONObject json) {
String ids = json.getString("ids");
String projectLibraryId = json.getString("projectLibraryId");
String cut = json.getString("cut");
this.platformProjectLawsInventoryEOService.deleteByIds(Arrays.asList(ids.split(",")),projectLibraryId,cut);
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "项目库-法规清单表-通过id查询")
@ApiOperation(value="项目库-法规清单表-通过id查询", notes="项目库-法规清单表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ProjectLawsInventoryEO projectLawsInventoryEO = platformProjectLawsInventoryEOService.queryById(id);
if(projectLawsInventoryEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(projectLawsInventoryEO);
}
/**
* 导出excel
*
* @param request
* @param projectLawsInventoryEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ProjectLawsInventoryEO projectLawsInventoryEO) {
return super.exportXls(request, projectLawsInventoryEO, ProjectLawsInventoryEO.class, "项目库-法规清单表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ProjectLawsInventoryEO.class);
}
/**
* 批量更新法规清单状态
* @param json
* @return
*/
@AutoLog(value = "项目库-法规清单表-批量更新状态")
@ApiOperation(value="项目库-法规清单表-批量更新状态", notes="项目库-法规清单表-批量更新状态")
@PostMapping(value = "/updateStatusBatch")
public Result<?> updateStatusBatch(@RequestBody JSONObject json) {
return this.platformProjectLawsInventoryEOService.updateStatusBatch(json);
}
/**
* 匹配相关人员
* @param params
* @return
*/
@AutoLog(value = "项目库-法规清单表-匹配相关人员")
@ApiOperation(value="项目库-法规清单表-匹配相关人员", notes="项目库-法规清单表-匹配相关人员")
@PostMapping(value = "/matchRelevantPeople")
public Result<?> matchRelevantPeople(@RequestBody Map<String,Object> params){
return this.platformProjectLawsInventoryEOService.matchRelevantPeople(params);
}
/**
* 流程调用接口
* @param jsonObject
* @return
*/
@AutoLog(value = "项目库-法规清单表-流程调用")
@ApiOperation(value="项目库-法规清单表-流程调用", notes="项目库-法规清单表-流程调用")
@PostMapping(value = "/processCall")
public Result<?> processCall(@RequestBody JSONObject jsonObject){
return this.platformProjectLawsInventoryEOService.processCall(jsonObject);
}
/**
* 通过id查询
* @param params
* @return
*/
@AutoLog(value = "项目库-法规清单表-通过id与操作类型查询")
@ApiOperation(value="项目库-法规清单表-通过id与操作类型查询", notes="项目库-法规清单表-通过id与操作类型查询")
@GetMapping(value = "/queryProjectLawsInventoryInfoById")
public Result<?> queryProjectLawsInventoryInfoById(@RequestParam Map<String,Object> params) {
List<ProjectLawsInventoryEO> result = platformProjectLawsInventoryEOService.queryProjectLawsInventoryInfoById(params);
return Result.OK((String) params.get("cut"),result);
}
@AutoLog(value = "法规清单添加调用文档库数据--分页")
@ApiOperation(value="法规清单添加调用文档库数据--分页", notes="法规清单添加调用文档库数据--分页")
@PostMapping(value = "/queryPageInfoBussDocument")
public Result<?> queryPageInfo(@RequestBody BussDocumentLibraryEO bussDocumentLibraryEO,
HttpServletRequest req) {
QueryWrapper<BussDocumentLibraryEO> queryWrapper = QueryGenerator.initQueryWrapper(bussDocumentLibraryEO, req.getParameterMap());
Page<BussDocumentLibraryEO> page = new Page<BussDocumentLibraryEO>(bussDocumentLibraryEO.getPageNo(), bussDocumentLibraryEO.getPageSize());
IPage<BussDocumentLibraryEO> pageList = bussDocumentLibraryEOService.queryPageInfoDummy(page, queryWrapper,bussDocumentLibraryEO);
return Result.OK(pageList);
}
/**
* 复制
*
* @param ids
* @return
*/
@AutoLog(value = "复制")
@ApiOperation(value="复制", notes="复制")
@GetMapping(value = "/copyInfoByIds")
public Result<?> copyInfoByIds(@RequestParam(name="ids",required=true) String ids,
@RequestParam(name="cut",required=true) String cut,
@RequestParam(name="operateType",required=true) String operateType) {
try {
platformProjectLawsInventoryEOService.copyInfoByIds(ids,operateType);
} catch (Exception e) {
if(CutEnum.CN.getValue().equals(cut)){
return Result.error("复制失败");
}else{
return Result.error("Copy the failure");
}
}
if(CutEnum.CN.getValue().equals(cut)){
return Result.OK("复制成功");
}else{
return Result.OK("Copy success");
}
}
/**
* 批量设置
*
* @param projectLawsInventoryEO
* @return
*/
@AutoLog(value = "批量设置")
@ApiOperation(value="批量设置", notes="批量设置")
@PostMapping(value = "/setBatch")
public Result<?> setBatch(@RequestBody ProjectLawsInventoryEO projectLawsInventoryEO) {
String cut = projectLawsInventoryEO.getCut();
try {
platformProjectLawsInventoryEOService.setBatch(projectLawsInventoryEO);
} catch (Exception e) {
e.printStackTrace();
log.error("批量设置失败:" + e.getMessage());
if(CutEnum.CN.getValue().equals(cut)){
return Result.error("批量设置失败!");
}else{
return Result.error("Batch set success");
}
}
if(CutEnum.CN.getValue().equals(cut)){
return Result.OK("批量设置成功");
}else{
return Result.OK("Batch set success");
}
}
/**
* 调取虚拟清单数据
*
* @param dummyInventoryBaseEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "调取虚拟清单数据")
@ApiOperation(value="调取虚拟清单数据", notes="调取虚拟清单数据")
@PostMapping(value = "/getPageInfoDummy")
public Result<?> getPageInfoDummy(@RequestBody DummyInventoryBaseEO dummyInventoryBaseEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
// dummyInventoryBaseEO.setName("*发*");
QueryWrapper<DummyInventoryBaseEO> queryWrapper = QueryGenerator.initQueryWrapper(dummyInventoryBaseEO, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
Page<DummyInventoryBaseEO> page = new Page<DummyInventoryBaseEO>(pageNo, pageSize);
IPage<DummyInventoryBaseEO> pageList = dummyInventoryBaseEOService.getPageInfoDummy(page,queryWrapper);
return Result.OK(dummyInventoryBaseEO.getCut(),pageList);
}
@ApiOperation(value = "模板下载")
@GetMapping(value = "/exportTemplate")
public void exportTemplate(ProjectLawsInventoryEO projectLawsInventoryEO, HttpServletResponse response, HttpServletRequest request) throws Exception {
platformProjectLawsInventoryEOService.exportTemplate(projectLawsInventoryEO,response,request);
}
/**
* 导出数据
* @param request
* @param projectLawsInventoryEO
*/
@RequestMapping(value = "/exportData")
@RequiresPermissions("projectLawsInventory:exportData")
public void exportData(HttpServletResponse response,
HttpServletRequest request,
ProjectLawsInventoryEO projectLawsInventoryEO) {
platformProjectLawsInventoryEOService.exportData(response,request, projectLawsInventoryEO);
}
/**
* 导入数据
*
* @param file
* @param projectLawsInventoryEO
* @return
*/
@RequestMapping(value = "/importData", method = RequestMethod.POST)
public Result<?> importData(@RequestParam(value = "file", required = false) MultipartFile file,
ProjectLawsInventoryEO projectLawsInventoryEO) {
platformProjectLawsInventoryEOService.importData(file,projectLawsInventoryEO);
return Result.OK("导入成功");
}
@AutoLog(value = "变更")
@ApiOperation(value="变更", notes="变更")
@PostMapping(value = "/change")
public Result<?> change(@RequestBody JSONObject params) {
return this.platformProjectLawsInventoryEOService.change(params);
}
@AutoLog(value = "下载pdf报告")
@ApiOperation(value="下载pdf报告", notes="下载pdf报告")
@GetMapping(value = "/downloadReport")
public void downloadReport(@RequestParam Map<String,Object> params, HttpServletRequest req, HttpServletResponse resp) throws DocumentException {
this.platformProjectLawsInventoryEOService.downloadReport(params,req,resp);
}
/**
* 列表查询条件 标识传 1-->用于查询文档库字段属
* 法规清单添加调取文档库时高级搜索条件
* @param flag
* @return
*/
@AutoLog(value = "法规清单添加调取文档库时高级搜索条件")
@ApiOperation(value="法规清单添加调取文档库时高级搜索条件", notes="法规清单添加调取文档库时高级搜索条件")
@GetMapping(value = "/queryConditionInventory")
public Result<List<Map<String,Object>>> queryConditionInventory(@RequestParam(name="flag",required=true) String flag,
@RequestParam(name="cut",required=true) String cut) {
List<Map<String,Object>> list = bussDocumentLibraryEOService.queryConditionInventory(flag,cut);
return Result.OK(list);
}
@ApiOperation(value="法规清单中添加调用文档库数据--分页", notes="法规清单中添加调用文档库数据--分页")
@PostMapping(value = "/queryPageDummy")
@ResponseBody
public net.sf.json.JSONObject queryPageDummy(@RequestBody Map<String,Object> parameter) {
IPage infoPage = bussDocumentLibraryEOService.getPageDummy(parameter);
Result<IPage> ok = Result.OK(infoPage);
net.sf.json.JSONObject jsonResult = net.sf.json.JSONObject.fromObject(ok);
return jsonResult;
}
/**
*
* @param params
* cut:中英文标识
* id法规清单id
* @param req
* @param resp
* @throws DocumentException
*/
@AutoLog(value = "下载docx报告")
@ApiOperation(value="下载docx报告", notes="下载docx报告")
@GetMapping(value = "/downloadDocxReport")
public void downloadDocxReport(@RequestParam Map<String,Object> params, HttpServletRequest req, HttpServletResponse resp) throws DocumentException {
this.platformProjectLawsInventoryEOService.downloadDocxReport(params,req,resp);
}
@AutoLog(value = "催办")
@ApiOperation(value="催办", notes="催办")
@PostMapping(value = "/expediting")
public Result<?> expediting(@RequestBody JSONObject json) {
return this.platformProjectLawsInventoryEOService.expediting(json);
}
/**
* 当前登录用户角色
* @return
*/
@ApiOperation(value = "当前登录用户角色")
@RequestMapping(value = "/getRoleByUserId", method = RequestMethod.GET)
public Result<List<SysRole>> getRoleByUserId(String projectLibraryId,String cut) {
Result<List<SysRole>> result = new Result<>();
List<SysRole> list = platformProjectLawsInventoryEOService.getRoleByUserId(projectLibraryId,cut);
if(list==null||list.size()<=0) {
result.error500("未找到角色信息");
}else {
result.setResult(list);
result.setSuccess(true);
}
return result;
}
@AutoLog(value = "任务清单催办")
@ApiOperation(value="任务清单催办", notes="任务清单催办")
@PostMapping(value = "/taskUrg")
public Result<?> taskUrg(@RequestBody ProjectTaskUrgVo projectTaskUrgVo) {
return this.platformProjectLawsInventoryEOService.taskUrg(projectTaskUrgVo);
}
@AutoLog(value = "项目库-法规清单表-根据项目库id更新符合性流程发起人、责任人接口")
@ApiOperation(value="项目库-法规清单表-根据项目库id更新符合性流程发起人、责任人接口", notes="项目库-法规清单表-根据项目库id更新符合性流程发起人、责任人接口")
@GetMapping(value = "/updateFlowInfoByProjectLibraryIds")
public Result<?> updateFlowInfoByProjectLibraryIds(@RequestParam("projectLibraryIds") String projectLibraryIds){
return this.platformProjectLawsInventoryEOService.updateFlowInfoByProjectLibraryIds(projectLibraryIds);
}
@AutoLog(value = "项目库-法规清单表-studio发布")
@ApiOperation(value="项目库-法规清单表-studio发布", notes="项目库-法规清单表-studio发布")
@PostMapping(value = "/studioPublish")
public Result<?> studioPublish(@RequestBody JSONObject json) {
return this.platformProjectLawsInventoryEOService.studioPublish(json);
}
@AutoLog(value = "项目库-法规清单表-studio撤回")
@ApiOperation(value="项目库-法规清单表-studio撤回", notes="项目库-法规清单表-studio撤回")
@PostMapping(value = "/studioWithdrew")
public Result<?> studioWithdrew(@RequestBody JSONObject json) {
return this.platformProjectLawsInventoryEOService.studioWithdrew(json);
}
@AutoLog(value = "项目库-法规清单表-法规工程师退回")
@ApiOperation(value="项目库-法规清单表-法规工程师退回", notes="项目库-法规清单表-法规工程师退回")
@PostMapping(value = "/regulationOwnerReturned")
public Result<?> regulationOwnerReturned(@RequestBody JSONObject json) {
return this.platformProjectLawsInventoryEOService.regulationOwnerReturned(json);
}
@AutoLog(value = "流程重置-迁移法规清单流程历史数据专用")
@ApiOperation(value="流程重置-迁移法规清单流程历史数据专用", notes="流程重置-迁移法规清单流程历史数据专用")
@PostMapping(value = "/resetFlowTemp")
public Result<?> resetFlowTemp(@RequestBody JSONObject params) {
return this.platformProjectLawsInventoryEOService.resetFlowTemp(params);
}
/**
* 批量更新法规清单状态
* @param json
* @return
*/
@AutoLog(value = "项目库-法规清单表-批量更新流程状态")
@ApiOperation(value="项目库-法规清单表-批量更新流程状态", notes="项目库-法规清单表-批量更新流程状态")
@PostMapping(value = "/updateFlowStatusBatch")
public Result<?> updateFlowStatusBatch(@RequestBody JSONObject json) {
return this.platformProjectLawsInventoryEOService.updateFlowStatusBatch(json);
}
@AutoLog(value = "项目库-法规清单表-引用交付物")
@ApiOperation(value="项目库-法规清单表-引用交付物", notes="项目库-法规清单表-引用交付物")
@PostMapping(value = "/citeDeliverable")
public Result<?> citeDeliverable(@RequestBody JSONObject json) {
return this.platformProjectLawsInventoryEOService.citeDeliverable(json);
}
@AutoLog(value = "项目库-法规清单表-强制转办")
@ApiOperation(value="项目库-法规清单表-强制转办", notes="项目库-法规清单表-强制转办")
@PostMapping(value = "/compulsoryTransfer")
public Result<?> compulsoryTransfer(@RequestBody JSONObject json) {
return this.platformProjectLawsInventoryEOService.compulsoryTransfer(json);
}
/**
* 通过projectId查询责任人
*
* @return
*/
@AutoLog(value = "项目库-法规清单表-通过projectId查询责任人")
@ApiOperation(value="项目库-法规清单表-通过projectId查询责任人", notes="项目库-法规清单表-通过projectId查询责任人")
@GetMapping(value = "/queryDutyPersonByProjectId")
public Result<?> queryDutyPersonByProjectId(@RequestParam Map<String,Object> params){
Map<String, List<Map<String, Object>>> res = this.platformProjectLawsInventoryEOService.queryDutyPersonByProjectId(params);
return Result.OK(res);
}
/**
* 分页查询不符合项列表
* @return
*/
@AutoLog(value = "项目库-法规清单表-查询不符合项列表")
@ApiOperation(value="项目库-法规清单表-查询不符合项列表", notes="项目库-法规清单表-查询不符合项列表")
@GetMapping(value = "/queryNotComplianList")
public Result<?> queryNotComplianList(@RequestParam Map<String,Object> params) {
List<Map<String,Object>> result = this.platformProjectLawsInventoryEOService.queryNotComplianList(params);
Page pages = PageUtil.getPages(Integer.parseInt((String) params.get("pageNo")), Integer.parseInt((String) params.get("pageSize")), result);
return Result.OK(pages);
}
/**
* 导出不符合项列表
* @param request
* @param params
*/
@AutoLog(value = "项目库-法规清单表-导出不符合项列表")
@ApiOperation(value="项目库-法规清单表-导出不符合项列表", notes="项目库-法规清单表-导出不符合项列表")
@RequestMapping(value = "/exportNotComplianList")
public void exportNotComplianList(HttpServletResponse response,
HttpServletRequest request,
@RequestBody Map<String,Object> params) {
this.platformProjectLawsInventoryEOService.exportNotComplianList(response,request, params);
}
@AutoLog(value = "项目库-法规清单表-定版校验")
@ApiOperation(value="项目库-法规清单表-定版校验", notes="项目库-法规清单表-定版校验")
@GetMapping(value = "/finalizationVerify")
public Result<?> finalizationVerify(@RequestParam Map<String,Object> params){
return this.platformProjectLawsInventoryEOService.finalizationVerify(params);
}
}
@@ -0,0 +1,310 @@
package com.jero.modules.platform.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.platform.service.IPlatformProjectLibraryBaseService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @Description: 项目库基础表
* @Author: jero-boot
* @Date: 2022-04-11
* @Version: V1.0
*/
@Api(tags="平台件项目库")
@RestController
@RequestMapping("/platform/projectLibraryBase")
@Slf4j
public class PlatformProjectLibraryBaseController extends JeroController<ProjectLibraryBase, IPlatformProjectLibraryBaseService> {
@Autowired
private IPlatformProjectLibraryBaseService platformIProjectLibraryBaseService;
/**
* 分页列表查询
*
* @return
*/
@AutoLog(value = "项目库基础表-分页列表查询")
@ApiOperation(value="项目库基础表-分页列表查询", notes="项目库基础表-分页列表查询")
@PostMapping(value = "/page")
public Result<?> queryPageList(@RequestBody Map<String,Object> params) {
List<ProjectLibraryBase> pageList= platformIProjectLibraryBaseService.queryPageList(params);
Page pages = platformIProjectLibraryBaseService.getPages(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString()), pageList);
return Result.OK(params.get("cut").toString(),pages);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "项目库基础表-列表查询")
@ApiOperation(value="项目库基础表-列表查询", notes="项目库基础表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProjectLibraryBase>> queryList(ProjectLibraryBase projectLibraryBase) {
List<ProjectLibraryBase> list = platformIProjectLibraryBaseService.getList(projectLibraryBase);
return Result.OK(list);
}
/**
* 添加
*
* @param projectLibraryBase
* @return
*/
@AutoLog(value = "项目库基础表-添加")
@ApiOperation(value="项目库基础表-添加", notes="项目库基础表-添加")
@RequiresPermissions("projectLibraryBase:add")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) throws ParseException {
platformIProjectLibraryBaseService.add(projectLibraryBase);
return Result.OK("添加成功!");
}
/**
* 项目扩展(添加子项目子项目基本信息相关人员名单法规/认证任务计划与被扩展项目保持一致)
*
* @param projectLibraryBase
* @return
*/
@AutoLog(value = "项目扩展(添加子项目)")
@ApiOperation(value="项目扩展(添加子项目)", notes="项目扩展(添加子项目)")
@RequiresPermissions("projectLibraryBase:add")
@PostMapping(value = "/addChild")
public Result<?> addChild(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) throws ParseException {
platformIProjectLibraryBaseService.addChild(projectLibraryBase);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param projectLibraryBase
* @return
*/
@AutoLog(value = "项目库基础表-编辑")
@ApiOperation(value="项目库基础表-编辑", notes="项目库基础表-编辑")
@RequiresPermissions("projectLibraryBase:edit")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) {
platformIProjectLibraryBaseService.editById(projectLibraryBase);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "项目库基础表-通过id删除")
@ApiOperation(value="项目库基础表-通过id删除", notes="项目库基础表-通过id删除")
@RequiresPermissions("projectLibraryBase:delete")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id,
@RequestParam(name="cut",required=true) String cut) {
platformIProjectLibraryBaseService.deleteById(id,cut);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "项目库基础表-批量删除")
@ApiOperation(value="项目库基础表-批量删除", notes="项目库基础表-批量删除")
@RequiresPermissions("projectLibraryBase:deleteBatch")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids,
@RequestParam(name="cut",required=true) String cut) {
this.platformIProjectLibraryBaseService.deleteByIds(Arrays.asList(ids.split(",")),cut);
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "项目库基础表-通过id查询")
@ApiOperation(value="项目库基础表-通过id查询", notes="项目库基础表-通过id查询")
@RequiresPermissions("projectLibraryBase:queryById")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id,
@RequestParam(name="cut",required=true) String cut) {
List<ProjectLibraryBase> data = platformIProjectLibraryBaseService.queryById(id,cut);
if(data==null) {
return Result.error("未找到对应数据");
}
return Result.OK(cut,data);
}
/**
* 导出excel
*
* @param request
* @param projectLibraryBase
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ProjectLibraryBase projectLibraryBase) {
return super.exportXls(request, projectLibraryBase, ProjectLibraryBase.class, "项目库基础表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ProjectLibraryBase.class);
}
/**
* 项目详情-统计接口
* @param id 项目库id
* @return
*/
@AutoLog(value = "项目详情-统计接口")
@ApiOperation(value="项目详情-统计接口", notes="项目详情-统计接口")
@GetMapping(value = "/getProjectDetailsStatistics")
public Result<?> getProjectDetailsStatistics(@RequestParam(name="id",required=true) String id,
@RequestParam(name="cut",required=true) String cut) {
Map<String,Object> data = platformIProjectLibraryBaseService.getProjectDetailsStatistics(id);
return Result.OK(cut,data);
}
/**
* 项目详情-统计接口-根据领域分组
* @return
*/
@AutoLog(value = "项目详情-统计接口-根据领域分组")
@ApiOperation(value="项目详情-统计接口-根据领域分组", notes="项目详情-统计接口-根据领域分组")
@GetMapping(value = "/getProjectDetailsStatisticsGroupByTerritory")
public Result<?> getProjectDetailsStatisticsGroupByTerritory(@RequestParam Map<String,Object> params) {
Map<String,Object> data = platformIProjectLibraryBaseService.getProjectDetailsStatisticsGroupByTerritory(params);
return Result.OK((String)params.get("cut"),data);
}
/**
* 导出excel
*
* @param request
* @param params
*/
@RequestMapping(value = "/exportProjectDetailsStatisticsGroupByTerritoryXls")
public void exportProjectDetailsStatisticsGroupByTerritoryXls(HttpServletResponse response,HttpServletRequest request, @RequestParam Map<String,Object> params) {
platformIProjectLibraryBaseService.exportProjectDetailsStatisticsGroupByTerritoryXls(response,request, params);
}
/**
* 项目置顶,取消置顶(只置顶主项目)
* @param id
* @param flag 0为置顶, 1为取消置顶
* @return
*/
@AutoLog(value = "项目置顶,取消置顶(只置顶主项目)")
@ApiOperation(value="项目置顶,取消置顶(只置顶主项目)", notes="项目置顶,取消置顶(只置顶主项目)")
@GetMapping(value = "/top")
public Result<?> top(String id,String flag) {
platformIProjectLibraryBaseService.top(id,flag);
return Result.OK("编辑成功!");
}
/**
* 获取项目所有的版本(主版本和子版本的集合)
* @param id 项目id
* @return
*/
@AutoLog(value = "获取项目所有的版本(主版本和子版本的集合)")
@ApiOperation(value="获取项目所有的版本(主版本和子版本的集合)", notes="获取项目所有的版本(主版本和子版本的集合)")
@GetMapping(value = "/getVersionsInfo")
public Result<?> getVersionsInfo(String id) {
List<String> versionsInfoList = platformIProjectLibraryBaseService.getVersionsInfo(id);
return Result.OK(versionsInfoList);
}
/**
* 版本统计
* @return
*/
@AutoLog(value = "版本统计")
@ApiOperation(value="版本统计)", notes="版本统计")
@PostMapping(value = "/versionStatistics")
public Result<?> versionStatistics(@RequestBody Map<String,Object> params) {
List<ProjectLibraryBase> projectLibraryBasesList = platformIProjectLibraryBaseService.versionStatistics(String.valueOf(params.get("id")));
Page pages = platformIProjectLibraryBaseService.getPages(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString()), projectLibraryBasesList);
return Result.OK(pages);
}
@AutoLog(value = "对接火山引擎接口getProjectInfo")
@ApiOperation(value="对接火山引擎接口-获取项目统计信息1", notes="对接火山引擎接口-获取项目统计信息1")
@PostMapping(value = "/getProjectInfo")
public Result<?> getProjectInfo(){
JSONArray resList = platformIProjectLibraryBaseService.getProjectInfo();
return Result.OK(resList);
}
@AutoLog(value = "对接火山引擎接口getProjectProgressInfo")
@ApiOperation(value="对接火山引擎接口-获取项目统计信息2", notes="对接火山引擎接口-获取项目统计信息2")
@PostMapping(value = "/getProjectProgressInfo")
public Result<?> getProjectProgressInfo(){
JSONArray resList = this.platformIProjectLibraryBaseService.getProjectProgressInfo();
return Result.OK(resList);
}
// 导出项目进度统计(状态导出)
@RequestMapping(value = "/exportProjectProgressStatisticsXls")
public void exportProjectProgressStatisticsXls(HttpServletResponse response,HttpServletRequest request, @RequestParam Map<String,Object> params) {
this.platformIProjectLibraryBaseService.exportProjectProgressStatisticsXls(response,request, params);
}
@AutoLog(value = "获取用户在该项目中所有的责任领域")
@ApiOperation(value="获取用户在该项目中所有的责任领域", notes="获取用户在该项目中所有的责任领域")
@GetMapping(value = "/getUserAllDutyTerritoryList")
public Result<List<DictModel>> getUserAllDutyTerritoryList(@RequestParam Map<String,Object> params){
List<DictModel> resList = this.platformIProjectLibraryBaseService.getUserAllDutyTerritoryList(params);
return Result.OK(resList);
}
@AutoLog(value = "全局替换用户")
@ApiOperation(value="全局替换用户", notes="全局替换用户")
@PostMapping(value = "/overallReplacementUser")
public Result<?> overallReplacementUser(@RequestBody JSONObject json){
return this.platformIProjectLibraryBaseService.overallReplacementUser(json);
}
}
@@ -0,0 +1,212 @@
package com.jero.modules.platform.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
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.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
import com.jero.modules.platform.service.IPlatformTaskPlanningEOService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* @Description: 平台件合规认证计划
* @Author: jero-boot
* @Date: 2023-09-14
* @Version: V1.0
*/
@Api(tags="平台件合规认证计划")
@RestController
@RequestMapping("/platform/platformTaskPlanningEO")
@Slf4j
public class PlatformTaskPlanningEOController extends JeroController<PlatformTaskPlanningEO, IPlatformTaskPlanningEOService> {
@Autowired
private IPlatformTaskPlanningEOService platformTaskPlanningEOService;
/**
* 分页列表查询
*
* @param platformTaskPlanningEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "平台件合规认证计划-分页列表查询")
@ApiOperation(value="平台件合规认证计划-分页列表查询", notes="平台件合规认证计划-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(PlatformTaskPlanningEO platformTaskPlanningEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PlatformTaskPlanningEO> queryWrapper = QueryGenerator.initQueryWrapper(platformTaskPlanningEO, req.getParameterMap());
Page<PlatformTaskPlanningEO> page = new Page<PlatformTaskPlanningEO>(pageNo, pageSize);
IPage<PlatformTaskPlanningEO> pageList = platformTaskPlanningEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "平台件合规认证计划-列表查询")
@ApiOperation(value="平台件合规认证计划-列表查询", notes="平台件合规认证计划-列表查询")
@GetMapping(value = "/list")
public Result<?> queryList(String projectId) {
List<PlatformTaskPlanningEO> platformTaskPlanningEOList = platformTaskPlanningEOService.queryList(projectId);
return Result.OK(platformTaskPlanningEOList);
}
@AutoLog(value = "平台件合规认证计划-编辑数据回显")
@ApiOperation(value="平台件合规认证计划-编辑数据回显", notes="平台件合规认证计划-编辑数据回显")
@GetMapping(value = "/queryListUpdate")
public Result<?> queryListUpdate(String projectId) {
Map<String,Object> result = platformTaskPlanningEOService.queryListUpdate(projectId);
return Result.OK(result);
}
/**
* 添加
*
* @param platformTaskPlanningEO
* @return
*/
@AutoLog(value = "平台件合规认证计划-添加")
@ApiOperation(value="平台件合规认证计划-添加", notes="平台件合规认证计划-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody PlatformTaskPlanningEO platformTaskPlanningEO) {
platformTaskPlanningEOService.add(platformTaskPlanningEO);
return Result.OK("添加成功!");
}
/**
* 添加
*
* @param data
* @return
*/
@AutoLog(value = "平台件合规认证计划-批量添加")
@ApiOperation(value="平台件合规认证计划-批量添加", notes="平台件合规认证计划-批量添加")
@PostMapping(value = "/addBatch")
public Result<?> addBatch(@RequestBody Map<String,Object> data) {
// JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(data.get("list")));
// JSONArray jsonArrayUp = JSONArray.parseArray(JSON.toJSONString(data.get("listUp")));
// JSONArray jsonArrayDown = JSONArray.parseArray(JSON.toJSONString(data.get("listDown")));
// List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp = jsonArray.toJavaList(PlatformTaskPlanningEO.class);
// List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown = jsonArray.toJavaList(PlatformTaskPlanningEO.class);
// platformTaskPlanningEOService.addBatch(platformTaskPlanningEOListUp,platformTaskPlanningEOListDown);
JSONArray jsonArrayUp = JSONArray.parseArray(JSON.toJSONString(data.get("listUp")));
JSONArray jsonArrayDown = JSONArray.parseArray(JSON.toJSONString(data.get("listDown")));
List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp = jsonArrayUp.toJavaList(PlatformTaskPlanningEO.class);
List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown = jsonArrayDown.toJavaList(PlatformTaskPlanningEO.class);
platformTaskPlanningEOService.addBatch(platformTaskPlanningEOListUp,platformTaskPlanningEOListDown);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param platformTaskPlanningEO
* @return
*/
@AutoLog(value = "平台件合规认证计划-编辑")
@ApiOperation(value="平台件合规认证计划-编辑", notes="平台件合规认证计划-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody PlatformTaskPlanningEO platformTaskPlanningEO) {
platformTaskPlanningEOService.editById(platformTaskPlanningEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "平台件合规认证计划-通过id删除")
@ApiOperation(value="平台件合规认证计划-通过id删除", notes="平台件合规认证计划-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
platformTaskPlanningEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "平台件合规认证计划-批量删除")
@ApiOperation(value="平台件合规认证计划-批量删除", notes="平台件合规认证计划-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.platformTaskPlanningEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "平台件合规认证计划-通过id查询")
@ApiOperation(value="平台件合规认证计划-通过id查询", notes="平台件合规认证计划-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
PlatformTaskPlanningEO platformTaskPlanningEO = platformTaskPlanningEOService.queryById(id);
if(platformTaskPlanningEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(platformTaskPlanningEO);
}
/**
* 导出excel
*
* @param request
* @param platformTaskPlanningEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PlatformTaskPlanningEO platformTaskPlanningEO) {
return super.exportXls(request, platformTaskPlanningEO, PlatformTaskPlanningEO.class, "平台件合规认证计划");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, PlatformTaskPlanningEO.class);
}
}
@@ -0,0 +1,204 @@
package com.jero.modules.platform.controller;
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.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.platform.service.IPlatformProjectNameInfoEOService;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import com.jero.modules.project.service.IProjectNameInfoEOService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 项目名信息表
* @Author: jero-boot
* @Date: 2022-04-18
* @Version: V1.0
*/
@Api(tags="平台件-项目名信息表")
@RestController
@RequestMapping("/platform/projectNameInfoEO")
@Slf4j
public class platformProjectNameInfoEOController extends JeroController<ProjectNameInfoEO, IProjectNameInfoEOService> {
@Autowired
private IPlatformProjectNameInfoEOService platformProjectNameInfoEOService;
/**
* 分页列表查询
*
* @param projectNameInfoEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "项目名信息表-分页列表查询")
@ApiOperation(value="项目名信息表-分页列表查询", notes="项目名信息表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ProjectNameInfoEO projectNameInfoEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ProjectNameInfoEO> queryWrapper = QueryGenerator.initQueryWrapper(projectNameInfoEO, req.getParameterMap());
Page<ProjectNameInfoEO> page = new Page<ProjectNameInfoEO>(pageNo, pageSize);
IPage<ProjectNameInfoEO> pageList = platformProjectNameInfoEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "项目名信息表-列表查询")
@ApiOperation(value="项目名信息表-列表查询", notes="项目名信息表-列表查询")
@GetMapping(value = "/list")
public Result<List<ProjectNameInfoEO>> queryList() {
List<ProjectNameInfoEO> list = platformProjectNameInfoEOService.queryList();
return Result.OK(list);
}
/**
* 返回项目全拼
*
* @return
*/
@AutoLog(value = "返回项目全拼")
@ApiOperation(value="返回项目全拼", notes="返回项目全拼")
@GetMapping(value = "/queryProjectNameList")
public Result<List<ProjectLibraryBase>> queryProjectNameList(String cut) {
List<ProjectLibraryBase> list = platformProjectNameInfoEOService.queryProjectNameList(cut);
return Result.OK(list);
}
/**
* 添加
*
* @param projectNameInfoEO
* @return
*/
@AutoLog(value = "项目名信息表-添加")
@ApiOperation(value="项目名信息表-添加", notes="项目名信息表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProjectNameInfoEO projectNameInfoEO) {
platformProjectNameInfoEOService.add(projectNameInfoEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param projectNameInfoEO
* @return
*/
@AutoLog(value = "项目名信息表-编辑")
@ApiOperation(value="项目名信息表-编辑", notes="项目名信息表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ProjectNameInfoEO projectNameInfoEO) {
platformProjectNameInfoEOService.editById(projectNameInfoEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "项目名信息表-通过id删除")
@ApiOperation(value="项目名信息表-通过id删除", notes="项目名信息表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
platformProjectNameInfoEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "项目名信息表-批量删除")
@ApiOperation(value="项目名信息表-批量删除", notes="项目名信息表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.platformProjectNameInfoEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "项目名信息表-通过id查询")
@ApiOperation(value="项目名信息表-通过id查询", notes="项目名信息表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ProjectNameInfoEO projectNameInfoEO = platformProjectNameInfoEOService.queryById(id);
if(projectNameInfoEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(projectNameInfoEO);
}
/**
* 导出excel
*
* @param request
* @param projectNameInfoEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ProjectNameInfoEO projectNameInfoEO) {
return super.exportXls(request, projectNameInfoEO, ProjectNameInfoEO.class, "项目名信息表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ProjectNameInfoEO.class);
}
/**
* 接收space系统数据
*
* @return
*/
// @AutoLog(value = "项目名信息表-space")
// @ApiOperation(value="项目名信息表-space", notes="项目名信息表-space")
// @RequestMapping(value = "/getSpaceInfo", method = RequestMethod.POST)
// public void getSpaceInfo(@RequestParam(name="cut",required=true) String cut) {
// platformProjectNameInfoEOService.getSpaceInfo(cut);
// }
}
@@ -0,0 +1,99 @@
package com.jero.modules.platform.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: 平台件合规认证计划
* @Author: jero-boot
* @Date: 2023-09-14
* @Version: V1.0
*/
@Data
@TableName("platform_task_planning")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="platform_task_planning对象", description="平台件合规认证计划")
public class PlatformTaskPlanningEO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**节点名称*/
@Excel(name = "节点名称", width = 15)
@ApiModelProperty(value = "节点名称")
private java.lang.String nodeName;
/**节点时间*/
@Excel(name = "节点时间", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "节点时间")
private java.util.Date nodeTime;
/**项目id*/
@Excel(name = "项目id", width = 15)
@ApiModelProperty(value = "项目id")
private java.lang.String projectId;
@ApiModelProperty(value = "字段名与项目库保持一致")
@TableField(exist = false)
private java.lang.String name;
/**节点时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "字段名与项目库保持一致")
@TableField(exist = false)
private java.util.Date time;
@TableField(exist = false)
private String status;
@TableField(exist = false)
private boolean isG;
//标识用来区分上下两部分数据up->down->
private String Flag;
}
@@ -0,0 +1,45 @@
package com.jero.modules.platform.enums;
/**
* 任务状态枚举类
*/
public enum UpAndDownEnum {
UP("上部分","up"),
DOWN("下部分","down"),
;
String name;
String value;
private UpAndDownEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value) {
UpAndDownEnum[] values = values();
for (UpAndDownEnum taskStatusEnum : values) {
if (taskStatusEnum.value.equals(value)) {
return taskStatusEnum.name;
}
}
return null;
}
}
@@ -0,0 +1,14 @@
package com.jero.modules.platform.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
/**
* @Description: 项目库-认证清单表
* @Author: jero-boot
* @Date: 2023-03-03
* @Version: V1.0
*/
public interface PlatformProjectCertificationInventoryEOMapper extends BaseMapper<ProjectCertificationInventoryEO> {
}
@@ -0,0 +1,49 @@
package com.jero.modules.platform.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @Description: 项目库-法规清单表
* @Author: jero-boot
* @Date: 2022-04-14
* @Version: V1.0
*/
public interface PlatformProjectLawsInventoryEOMapper extends BaseMapper<ProjectLawsInventoryEO> {
/**
* 获取清单确认统计
* @param projectLibraryId 项目库id
* @return
*/
List<Map<String, Object>> getlistingToConfirmStatistics(@Param("projectLibraryId") String projectLibraryId);
/**
* 获取清单确认统计
* @param projectLibraryId 项目库id
* @return
*/
List<Map<String, Object>> getTaskToConfirmStatistics(@Param("projectLibraryId")String projectLibraryId);
/**
* 统计该项目中某一个 清单确认状态的数据 根据领域分组
* @param projectLibraryId 项目库id
* @param inventoryAffirmStatus 清单确认状态
* @return
*/
List<Map<String, Object>> getListingToConfirmStatisticsGroupByTerritory(@Param("projectLibraryId") String projectLibraryId,@Param("inventoryAffirmStatus") String inventoryAffirmStatus);
/**
* 统计该项目中某一个 任务确认状态的数据 根据领域分组
* @param projectLibraryId
* @param taskAffirmStatus
* @return
*/
List<Map<String, Object>> getTaskToConfirmStatisticsGroupByTerritory(@Param("projectLibraryId") String projectLibraryId, @Param("taskAffirmStatus") String taskAffirmStatus);
List<Map<String,Object>> queryNotComplianList(@Param("params") Map<String, Object> params);
}
@@ -0,0 +1,32 @@
package com.jero.modules.platform.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.project.entity.ProjectLibraryBase;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @Description: 项目库基础表
* @Author: jero-boot
* @Date: 2022-04-11
* @Version: V1.0
*/
public interface PlatformProjectLibraryBaseMapper extends BaseMapper<ProjectLibraryBase> {
/**分页列表*/
List<ProjectLibraryBase> queryPageList(@Param("params") Map<String, Object> params);
List<ProjectLibraryBase> queryMaimList();
// IPage<ProjectLibraryBase> queryPageList(IPage page, Map<String, Object> params);
List<ProjectLibraryBase> getList(@Param("projectLibraryBase") ProjectLibraryBase projectLibraryBase);
/**根据id查询*/
List<ProjectLibraryBase> queryById(String id);
ProjectLibraryBase selectProjectName(@Param("projectLibraryId") String projectLibraryId);
List<ProjectLibraryBase> getListByIds(@Param("idList") List<String> idList);
}
@@ -0,0 +1,20 @@
package com.jero.modules.platform.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import org.apache.ibatis.annotations.Select;
import java.util.List;
/**
* @Description: 项目名信息表
* @Author: jero-boot
* @Date: 2022-04-18
* @Version: V1.0
*/
public interface PlatformProjectNameInfoEOMapper extends BaseMapper<ProjectNameInfoEO> {
@Select("select pni.id,pni.project_name,pyni.id as year_id,pyni.year_name,pni.vehicle_platform,pni.digital_platform\n" +
"from project_name_info as pni\n" +
"left join project_year_name_info as pyni on pni.id=pyni.project_name_id;")
List<ProjectNameInfoEO> selectProjectNameAndYear();
}
@@ -0,0 +1,14 @@
package com.jero.modules.platform.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
/**
* @Description: 平台件合规认证计划
* @Author: jero-boot
* @Date: 2023-09-14
* @Version: V1.0
*/
public interface PlatformTaskPlanningEOMapper extends BaseMapper<PlatformTaskPlanningEO> {
}
@@ -0,0 +1,31 @@
<?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.platform.mapper.PlatformProjectCertificationInventoryEOMapper">
<resultMap id="ProjectCertificationInventoryEOResultMap" type="com.jero.modules.project.entity.ProjectCertificationInventoryEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="category" property="category" />
<result column="inspection_item" property="inspectionItem" />
<result column="config_item" property="configItem" />
<result column="wvta_id" property="wvtaId" />
<result column="serial_number" property="serialNumber" />
<result column="duty_territory" property="dutyTerritory" />
<result column="deliverable" property="deliverable" />
<result column="buss_document_library_id" property="bussDocumentLibraryId" />
<result column="sdt" property="sdt" />
<result column="duty_person" property="dutyPerson" />
<result column="deliverable_type" property="deliverableType" />
<result column="deliverable_template" property="deliverableTemplate" />
<result column="delivery_result" property="deliveryResult" />
<result column="end_time" property="endTime" />
<result column="flow_status" property="flowStatus" />
<result column="report_number" property="reportNumber" />
<result column="product_model" property="productModel" />
<result column="production_enterprise_name" property="productionEnterpriseName" />
<result column="certification_progress" property="certificationProgress" />
</resultMap>
</mapper>
@@ -0,0 +1,195 @@
<?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.platform.mapper.PlatformProjectLawsInventoryEOMapper">
<resultMap id="ProjectLawsInventoryEOResultMap" type="com.jero.modules.project.entity.ProjectLawsInventoryEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="project_library_id" property="projectLibraryId" />
<result column="serial_number" property="serialNumber" />
<result column="title" property="title" />
<result column="subtitle" property="subtitle" />
<result column="corresponding_standard" property="correspondingStandard" />
<result column="implement_type" property="implementType" />
<result column="xin1_che1_xing2_shi2_shi1_ri4_qi1" property="xin1Che1Xing2Shi2Shi1Ri4Qi1" />
<result column="implement_time" property="implementTime" />
<result column="attestation_type" property="attestationType" />
<result column="attestation_rank" property="attestationRank" />
<result column="wvta_id" property="wvtaId" />
<result column="duty_territory" property="dutyTerritory" />
<result column="regulation_owner_id" property="regulationOwnerId" />
<result column="homologation_engineer_id" property="homologationEngineerId" />
<result column="engineering_interface_person" property="engineeringInterfacePerson" />
<result column="remark" property="remark" />
<result column="design_deliverable_type" property="designDeliverableType" />
<result column="design_deliverable_template" property="designDeliverableTemplate" />
<result column="design_initiator" property="designInitiator" />
<result column="design_duty" property="designDuty" />
<result column="design_due_date" property="designDueDate" />
<result column="prehomo_deliverable_type" property="prehomoDeliverableType" />
<result column="prehomo_deliverable_template" property="prehomoDeliverableTemplate" />
<result column="prehomo_initiator" property="prehomoInitiator" />
<result column="prehomo_duty" property="prehomoDuty" />
<result column="prehomo_due_date" property="prehomoDueDate" />
<result column="verify_deliverable_type" property="verifyDeliverableType" />
<result column="verify_deliverable_template" property="verifyDeliverableTemplate" />
<result column="verify_initiator" property="verifyInitiator" />
<result column="verify_duty" property="verifyDuty" />
<result column="verify_due_date" property="verifyDueDate" />
<result column="region" property="region" />
<result column="applicable_supplement" property="applicableSupplement" />
<result column="verify_remark" property="verifyRemark" />
<result column="prehomo_remark" property="prehomoRemark" />
<result column="design_remark" property="designRemark" />
<result column="file_id" property="fileId" />
</resultMap>
<select id="getlistingToConfirmStatistics" resultType="hashmap">
select
count(inventory_affirm_status) as "inventoryAffirmStatusCount",
inventory_affirm_status as "inventoryAffirmStatus",
id as "id"
from
project_laws_inventory
where
project_library_id in
<foreach collection="projectLibraryId.split(',')" index="index" separator="," open="(" close=")" item="item">
#{item}
</foreach>
group by inventory_affirm_status
</select>
<select id="getTaskToConfirmStatistics" resultType="hashmap">
select
count(task_affirm_status) as "taskAffirmStatusCount",
task_affirm_status as "taskAffirmStatus",
id as "id"
from
project_laws_inventory
where
project_library_id in
<foreach collection="projectLibraryId.split(',')" index="index" separator="," open="(" close=")" item="item">
#{item}
</foreach>
group by task_affirm_status
</select>
<select id="getListingToConfirmStatisticsGroupByTerritory" resultType="hashmap">
select
count(inventory_affirm_status) as "amount",
inventory_affirm_status as "inventoryAffirmStatus",
id as "id",
duty_territory as "dutyTerritory"
from
project_laws_inventory
where
project_library_id = #{projectLibraryId}
and inventory_affirm_status = #{inventoryAffirmStatus}
group by duty_territory;
</select>
<select id="getTaskToConfirmStatisticsGroupByTerritory" resultType="hashmap">
select
count(task_affirm_status) as "amount",
task_affirm_status as "taskAffirmStatus",
id as "id",
duty_territory as "dutyTerritory"
from
project_laws_inventory
where
project_library_id = #{projectLibraryId}
and task_affirm_status = #{taskAffirmStatus}
group by duty_territory;
</select>
<select id="queryNotComplianList" resultType="hashmap">
select
id as "id",
serial_number as "serialNumber",
title as "title",
flow_type as "flowType",
duty_territory as "dutyTerritory",
flow_status as "flowStatus",
regulation_owner_id as "regulationOwnerId",
duty_id as "dutyId",
stand_id as "standId"
from (
SELECT
id,
serial_number,
title,
"2" as flow_type,
duty_territory,
design_flow_status as flow_status,
regulation_owner_id,
design_duty_id as duty_id,
project_library_id,
stand_id
FROM
project_laws_inventory
WHERE
project_library_id = #{params.projectLibraryId}
and design_flow_status IN
<foreach collection="params.complianceFlowStatusList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
UNION
SELECT
id,
serial_number,
title,
"4" as flow_type,
duty_territory,
verify_flow_status as flow_status,
regulation_owner_id,
verify_duty_id as duty_id,
project_library_id,
stand_id
FROM
project_laws_inventory
WHERE
project_library_id = #{params.projectLibraryId}
and verify_flow_status IN
<foreach collection="params.complianceFlowStatusList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
) temp
<!--<include refid="BaseQuerySql"/>-->
<!--<if test="params.orderByField != null and params.orderByField != ''">
order by temp.${params.orderByField}
<if test="params.orderBy == 1">
asc
</if>
<if test="params.orderBy == 2">
desc
</if>
</if>-->
<if test="params.orderByField == null or params.orderByField == ''">
order by temp.serial_number desc
</if>
</select>
<sql id="BaseQuerySql">
<where>
<if test="params.serialNumber != null and params.serialNumber !=''">
and temp.serial_number like CONCAT(CONCAT('%',#{params.serialNumber}),'%')
</if>
<if test="params.title != null and params.title !=''">
and temp.title like CONCAT(CONCAT('%',#{params.title}),'%')
</if>
<if test="params.dutyTerritory != null and params.dutyTerritory !=''">
and temp.duty_territory like CONCAT(CONCAT('%',#{params.dutyTerritory}),'%')
<!--and (
temp.duty_territory = #{params.dutyTerritory} or
<foreach collection="params.dutyTerritory.split(',')" index="" item="item" open="(" close=")" separator="or">
temp.duty_territory like CONCAT(CONCAT('%',#{item}),'%')
</foreach>
)-->
</if>
</where>
</sql>
</mapper>
@@ -0,0 +1,331 @@
<?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.platform.mapper.PlatformProjectLibraryBaseMapper">
<resultMap id="ProjectLibraryBaseResultMap" type="com.jero.modules.project.entity.ProjectLibraryBase">
<id column="id" property="id" />
<result column="project_name_id" property="projectNameId" />
<result column="year_name_id" property="yearNameId" />
<result column="target_market" property="targetMarket" />
<result column="project_status" property="projectStatus" />
<result column="studio_engineer" property="studioEngineer" />
<result column="certification_engineer" property="certificationEngineer" />
<result column="vehicle_platform" property="vehiclePlatform" />
<result column="digital_platform" property="digitalPlatform" />
<result column="ipd_info" property="ipdInfo" />
<result column="vehicle_development_plan" property="vehicleDevelopmentPlan" />
<result column="attestation_plan" property="attestationPlan" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="brand" property="brand" />
</resultMap>
<sql id="select_item">
select
plb.id,
plb.project_name_id,
pni.project_name as project_name,
pyni.id as year_name_id,
pyni.year_name,
plb.target_market,
plb.project_status,
plb.studio_engineer,
studiouser.username as studio_engineer_name,
plb.certification_engineer,
plb.vehicle_platform,
plb.digital_platform,
plb.ipd_info,
plb.vehicle_development_plan,
plb.attestation_plan,
plb.create_by,
plb.create_time,
plb.sys_org_code,
plb.update_by,
plb.update_time,
plb.parent_id,
plb.project_version,
plb.explanation,
plb.software_version,
plb.sort,
plb.flag,
plb.brand,
plb.power,
plb.producer,
plb.duty_depart,
plb.regulation_owner_id,
plb.engineering_interface_person,
plb.brand_label,
plb.product_model,
plb.cell_enterprise,
plb.assembly_enterprise,
plb.part_number_cn,
plb.part_number_en,
plb.filing_code,
plb.supplier_code,
plb.product_type_code,
plb.battery_type_code,
plb.specification_code,
plb.traceability_code,
plb.ymd_number,
plb.size,
plb.rated_capacity,
plb.nominal_voltage,
plb.rated_mass,
plb.module_number,
plb.connection_type,
plb.module_specification_code,
plb.cooling_method,
plb.filing_completion_time,
plb.remark,
sdi.item_text brandText,
sdi.en_name brandTextEn
from project_library_base as plb
left join project_name_info as pni on plb.project_name_id=pni.id
left join sys_user as studiouser on plb.studio_engineer=studiouser.id
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
left join sys_dict_item as sdi on sdi.item_value = plb.brand
</sql>
<select id="queryPageList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
<include refid="select_item"/>
<where>
<if test="params.projectName != null and params.projectName != ''">
<!--搜索条件:项目名称,包含%,单独搜索-->
<choose>
<when test='params.projectName != null and params.projectName != "" and params.projectName.contains("%")'>
( pni.project_name like '%1%%' escape '1' or pni.project_name like '%1%%' escape '1')
</when>
<otherwise>
<!--(pni.project_name like concat('%',#{params.projectName},'%') or pyni.year_name like concat('%',#{params.projectName},'%'))-->
</otherwise>
</choose>
</if>
<!--搜索条件:目标市场-->
<if test="params.targetMarket != null and params.targetMarket != '' ">
and plb.target_market like concat('%',#{params.targetMarket},'%')
</if>
<!--搜索条件:项目状态-->
<if test="params.projectStatus != null and params.projectStatus != '' ">
and plb.project_status like concat('%',#{params.projectStatus},'%')
</if>
<if test="params.studioEngineer != null and params.studioEngineer != ''">
<!--搜索条件:studio工程师,包含%,单独搜索-->
<choose>
<when test='params.studioEngineer != null and params.studioEngineer != "" and params.studioEngineer.contains("%")'>
and plb.studio_engineer like '%1%%' escape '1'
</when>
<otherwise>
and plb.studio_engineer like concat('%',#{params.studioEngineer},'%')
</otherwise>
</choose>
</if>
<if test="params.certificationEngineer != null and params.certificationEngineer != ''">
<!--搜索条件:认证工程师,包含%,单独搜索-->
<choose>
<when test='params.certificationEngineer != null and params.certificationEngineer != "" and params.certificationEngineer.contains("%")'>
and plb.certification_engineer like '%1%%' escape '1'
</when>
<otherwise>
and plb.certification_engineer like concat('%',#{params.certificationEngineer},'%')
</otherwise>
</choose>
</if>
<!--搜索条件:车型平台-->
<if test="params.vehiclePlatform != null and params.vehiclePlatform != '' ">
and plb.vehicle_platform like concat('%',#{params.vehiclePlatform},'%')
</if>
<!--搜索条件:数字平台-->
<if test="params.digitalPlatform != null and params.digitalPlatform != '' ">
and plb.digital_platform like concat('%',#{params.digitalPlatform},'%')
</if>
<!--搜索条件:品牌-->
<if test="params.brand != null and params.brand != '' ">
and plb.brand = #{params.brand}
</if>
</where>
order by plb.sort desc, plb.create_time desc
</select>
<select id="queryMaimList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
<include refid="select_item"/>
<where>
parent_id = '' or parent_id is null
</where>
order by plb.create_time desc
</select>
<!-- <select id="queryPageList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">-->
<!-- <include refid="select_item"/>-->
<!-- <where>-->
<!-- <if test="params.projectName != null and params.projectName != ''">-->
<!-- &lt;!&ndash;搜索条件:项目名称,包含%,单独搜索&ndash;&gt;-->
<!-- <choose>-->
<!-- <when test='params.projectName != null and params.projectName != "" and params.projectName.contains("%")'>-->
<!-- ( pni.project_name like '%1%%' escape '1' or pni.project_name like '%1%%' escape '1')-->
<!-- </when>-->
<!-- <otherwise>-->
<!-- (pni.project_name like concat('%',#{params.projectName},'%') or pyni.year_name like concat('%',#{params.projectName},'%'))-->
<!-- </otherwise>-->
<!-- </choose>-->
<!-- </if>-->
<!-- &lt;!&ndash;搜索条件:目标市场&ndash;&gt;-->
<!-- <if test="params.targetMarket != null and params.targetMarket != '' ">-->
<!-- and plb.target_market like concat('%',#{params.targetMarket},'%')-->
<!-- </if>-->
<!-- &lt;!&ndash;搜索条件:项目状态&ndash;&gt;-->
<!-- <if test="params.projectStatus != null and params.projectStatus != '' ">-->
<!-- and plb.project_status like concat('%',#{params.projectStatus},'%')-->
<!-- </if>-->
<!-- <if test="params.studioEngineer != null and params.studioEngineer != ''">-->
<!-- &lt;!&ndash;搜索条件:studio工程师,包含%,单独搜索&ndash;&gt;-->
<!-- <choose>-->
<!-- <when test='params.studioEngineer != null and params.studioEngineer != "" and params.studioEngineer.contains("%")'>-->
<!-- and plb.studio_engineer like '%1%%' escape '1'-->
<!-- </when>-->
<!-- <otherwise>-->
<!-- and plb.studio_engineer like concat('%',#{params.studioEngineer},'%')-->
<!-- </otherwise>-->
<!-- </choose>-->
<!-- </if>-->
<!-- <if test="params.certificationEngineer != null and params.certificationEngineer != ''">-->
<!-- &lt;!&ndash;搜索条件:认证工程师,包含%,单独搜索&ndash;&gt;-->
<!-- <choose>-->
<!-- <when test='params.certificationEngineer != null and params.certificationEngineer != "" and params.certificationEngineer.contains("%")'>-->
<!-- and plb.certification_engineer like '%1%%' escape '1'-->
<!-- </when>-->
<!-- <otherwise>-->
<!-- and plb.certification_engineer like concat('%',#{params.certificationEngineer},'%')-->
<!-- </otherwise>-->
<!-- </choose>-->
<!-- </if>-->
<!-- &lt;!&ndash;搜索条件:车型平台&ndash;&gt;-->
<!-- <if test="params.vehiclePlatform != null and params.vehiclePlatform != '' ">-->
<!-- and plb.vehicle_platform like concat('%',#{params.vehiclePlatform},'%')-->
<!-- </if>-->
<!-- &lt;!&ndash;搜索条件:数字平台&ndash;&gt;-->
<!-- <if test="params.digitalPlatform != null and params.digitalPlatform != '' ">-->
<!-- and plb.digital_platform like concat('%',#{params.digitalPlatform},'%')-->
<!-- </if>-->
<!-- </where>-->
<!-- order by plb.create_time desc-->
<!-- </select>-->
<select id="getList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
<include refid="select_item"/>
<where>
<if test="projectLibraryBase.projectName != null and projectLibraryBase.projectName != ''">
<!--搜索条件:项目名称,包含%,单独搜索-->
<choose>
<when test='projectLibraryBase.projectName != null and projectLibraryBase.projectName != "" and projectLibraryBase.projectName.contains("%")'>
and pni.project_name like '%1%%' escape '1'
</when>
<otherwise>
and pni.project_name like concat('%',#{projectLibraryBase.projectName},'%')
</otherwise>
</choose>
</if>
<!--搜索条件:目标市场-->
<if test="projectLibraryBase.targetMarket != null and projectLibraryBase.targetMarket != '' ">
and plb.target_market like concat('%',#{projectLibraryBase.targetMarket},'%')
</if>
<!--搜索条件:项目状态-->
<if test="projectLibraryBase.projectStatus != null and projectLibraryBase.projectStatus != '' ">
and plb.project_status like concat('%',#{projectLibraryBase.projectStatus},'%')
</if>
<!--搜索条件:品牌-->
<if test="projectLibraryBase.brand != null and projectLibraryBase.brand != '' ">
and plb.brand = #{projectLibraryBase.brand}
</if>
<if test="projectLibraryBase.studioEngineer != null and projectLibraryBase.studioEngineer != ''">
<!--搜索条件:studio工程师,包含%,单独搜索-->
<choose>
<when test='projectLibraryBase.studioEngineer != null and projectLibraryBase.studioEngineer != "" and projectLibraryBase.studioEngineer.contains("%")'>
and plb.studio_engineer like '%1%%' escape '1'
</when>
<otherwise>
and plb.studio_engineer like concat('%',#{projectLibraryBase.studioEngineer},'%')
</otherwise>
</choose>
</if>
<if test="projectLibraryBase.certificationEngineer != null and projectLibraryBase.certificationEngineer != ''">
<!--搜索条件:认证工程师,包含%,单独搜索-->
<choose>
<when test='projectLibraryBase.certificationEngineer != null and projectLibraryBase.certificationEngineer != "" and projectLibraryBase.certificationEngineer.contains("%")'>
and plb.certification_engineer like '%1%%' escape '1'
</when>
<otherwise>
and plb.certification_engineer like concat('%',#{projectLibraryBase.certificationEngineer},'%')
</otherwise>
</choose>
</if>
<!--搜索条件:车型平台-->
<!-- <if test="projectLibraryBase.vehiclePlatform != null and projectLibraryBase.vehiclePlatform != '' ">-->
<!-- and plb.vehicle_platform like concat('%',#{projectLibraryBase.vehiclePlatform},'%')-->
<!-- </if>-->
<!--搜索条件:数字平台-->
<!-- <if test="projectLibraryBase.digitalPlatform != null and projectLibraryBase.digitalPlatform != '' ">-->
<!-- and plb.digital_platform like concat('%',#{projectLibraryBase.digitalPlatform},'%')-->
<!-- </if>-->
</where>
order by plb.create_time desc
</select>
<select id="queryById" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
<include refid="select_item"/>
<where>
<if test="id != null and id != '' ">
plb.id=#{id}
</if>
</where>
order by plb.create_time desc
</select>
<select id="selectProjectName" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
SELECT
concat( pni.project_name, '-', pyni.year_name ) AS project_name
FROM
project_library_base plb
LEFT JOIN project_name_info pni ON plb.project_name_id = pni.id
LEFT JOIN project_year_name_info pyni ON plb.year_name_id = pyni.id
WHERE
plb.id = #{projectLibraryId}
</select>
<select id="getListByIds" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
<include refid="select_item"/>
where plb.id in
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
order by plb.create_time desc
</select>
</mapper>
@@ -0,0 +1,15 @@
<?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.platform.mapper.PlatformProjectNameInfoEOMapper">
<resultMap id="ProjectNameInfoEOResultMap" type="com.jero.modules.project.entity.ProjectNameInfoEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="project_name" property="projectName" />
<result column="vehicle_platform" property="vehiclePlatform" />
<result column="digital_platform" property="digitalPlatform" />
</resultMap>
</mapper>
@@ -0,0 +1,15 @@
<?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.platform.mapper.PlatformTaskPlanningEOMapper">
<resultMap id="PlatformTaskPlanningEOResultMap" type="com.jero.modules.platform.entity.PlatformTaskPlanningEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="node_name" property="nodeName" />
<result column="node_time" property="nodeTime" />
<result column="project_id" property="projectId" />
</resultMap>
</mapper>
@@ -0,0 +1,341 @@
package com.jero.modules.platform.service;
import com.alibaba.fastjson.JSONObject;
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.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Description: 项目库-认证清单表
* @Author: jero-boot
* @Date: 2023-03-03
* @Version: V1.0
*/
public interface IPlatformProjectCertificationInventoryEOService extends IService<ProjectCertificationInventoryEO> {
/**
* 保存
*
* @param projectCertificationInventoryEO
* @return
*/
void add(ProjectCertificationInventoryEO projectCertificationInventoryEO);
/**
* 更新
*
* @param projectCertificationInventoryEO
* @return
*/
void editById(ProjectCertificationInventoryEO projectCertificationInventoryEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ProjectCertificationInventoryEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ProjectCertificationInventoryEO> queryList();
/**
* 批量添加
* @param json
* @return
*/
Result<?> batchAdd(JSONObject json);
/**
* 批量设置
* @param projectCertificationInventoryEO
* @return
*/
Result<?> setBatch(ProjectCertificationInventoryEO projectCertificationInventoryEO);
/**
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<ProjectCertificationInventoryEO> datas, String cut);
/**
* 导入时的数据处理
* @param datas
* @param cut
*/
void importDisposeData(List<ProjectCertificationInventoryEO> datas, String cut);
String getTreeNameImport(String cut, List<SysCategory> categoryList, List<String> technologyTerritoryList);
String getTreeName(String cut, List<SysCategory> categoryList, List<String> technologyTerritoryList);
/**
* studio发布
* @param json
* @return
*/
Result<?> issue(JSONObject json);
void addProcessInfoEO(ProcessInfoEO processInfoEO, String projectLibraryId);
void addProcessInfoDetailEO(List<ProcessInfoDetailEO> processInfoDetailEOList, String processInfoId, String taskDefinitionKey);
Result<List<SysRole>> getRoleByUserId(Map<String, Object> params);
Result<?> getFlowStatusList(String cut);
IPage<ProjectCertificationInventoryEO> queryPage(QueryWrapper<ProjectCertificationInventoryEO> queryWrapper,
Page<ProjectCertificationInventoryEO> page,
ProjectCertificationInventoryEO projectCertificationInventoryEO,
String cut);
void createQueryPermission(QueryWrapper<ProjectCertificationInventoryEO> queryWrapper, String roleCode);
/**
* 认证流程统一提交任务
* @param json
* @return
*/
Result<?> submitTask(JSONObject json);
/**
* 认证工程师发起任务
* @param json
* @return
*/
Result<?> certificationInitiatingTask(JSONObject json);
/**
* 批量保存
* @param json
* @return
*/
Result<?> saveBatch(JSONObject json);
/**
* 流程重置
* @param json
* @return
*/
Result<?> resetFlow(JSONObject json);
/**
* 转办任务
* @param json
* @return
*/
Result<?> transferTask(JSONObject json);
/**
* 催办任务
* @param json
* @return
*/
Result<?> expediting(JSONObject json);
Map<String,Object> getCertificationInventoryLinkHrefFeishu(String projectLibraryId,String PRN_CN,String PRN_EN);
Map<String,Object> getStandNameAndItemName(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList);
/**
* 模板下载
* @param projectCertificationInventoryEO
* @param response
* @param request
*/
void exportTemplate(ProjectCertificationInventoryEO projectCertificationInventoryEO, HttpServletResponse response, HttpServletRequest request);
/**
* 批量修改配置项
* @param json
* @return
*/
Result<?> updateConfigItemBatch(JSONObject json);
/**
* 调取添加
* @param json
* @return
*/
Result<?> callAdd(JSONObject json);
/**
* 导入数据
* @param file
* @param projectCertificationInventoryEO
*/
void importData(MultipartFile file, ProjectCertificationInventoryEO projectCertificationInventoryEO);
/**
* projectCertificationInventoryEO
* @param response
* @param request
* @param projectCertificationInventoryEO
*/
void exportData(HttpServletResponse response, HttpServletRequest request, ProjectCertificationInventoryEO projectCertificationInventoryEO);
/**
* 引用交付物
* @param json
* @return
*/
Result<?> citeDeliverable(JSONObject json);
/**
* 根据模板返送消息
* @param projectCertificationInventoryEOS
* @param templeteId
* @param userIdList
* @param userInfoList
*/
void sendMessageByTemplateId(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOS, String templeteId, List<String> userIdList, List<SysUser> userInfoList, Date endTimeString, String taskDefinitionKey);
/**
* 数据唯一校验
* @param projectCertificationInventoryEOList
* @param cut
* @return
*/
List<ProjectCertificationInventoryEO> dataUniqueCheck(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList, String cut,List<String> result,String projectLibraryId);
/**
*
* @param json
* @return
*/
Result<?> updateStatusBatch(JSONObject json);
/**
* 添加配置
* @param json
* @return
*/
Result<?> addConfigByIds(JSONObject json);
String handlePhoneLink(String id, String prn_cn, String key);
void certificationInventoryEOListSortByEndTimeAsc(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList);
void certificationInventoryEOListSortByInventoryVerifyEndTimeAsc(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList);
void certificationInventoryEOListSortByTaskConfirmEndTimeAsc(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList);
Map<String, List<Map<String, Object>>> queryDutyPersonByProjectId(Map<String, Object> params);
/**
* 获取任务确认统计信息
* @param pciEoList
* @return
*/
List<Map<String, Object>> getTaskToConfirmStatistics(List<ProjectCertificationInventoryEO> pciEoList);
/**
* 获取Pre-Homo统计信息
* @param pciEoList
* @return
*/
List<Map<String, Object>> getPrehomoStatistice(List<ProjectCertificationInventoryEO> pciEoList);
/**
* 获取认证进度统计信息 全部
* @param pciEoList
* @return
*/
List<Map<String, Object>> getAllCertificationProgressStatistics(List<ProjectCertificationInventoryEO> pciEoList);
/**
* 获取认证进度统计信息 整车
* @param pciEoList
* @return
*/
List<Map<String, Object>> getCarCertificationProgressStatistics(List<ProjectCertificationInventoryEO> pciEoList);
/**
* 获取认证进度统计信息 零部件
* @param pciEoList
* @return
*/
List<Map<String, Object>> getPartCertificationProgressStatistics(List<ProjectCertificationInventoryEO> pciEoList);
/**
* 按照认证任务确认状态分组
* @param pciEos
* @return
*/
Map<String, Object> groupByFGRwqrStatus(List<ProjectCertificationInventoryEO> pciEos);
/**
* 按照preHomo确认状态分组
* @param pciEos
* @return
*/
Map<String, Object> groupByPreHomoStatus(List<ProjectCertificationInventoryEO> pciEos);
/**
* 根据认证进度分组
* @param pciEos
* @return
*/
Map<String, Object> groupByCertificationProgress(List<ProjectCertificationInventoryEO> pciEos);
/**
* 同步待办中心明细数据-认证清单 截止日期
* @param endTime
* @param editEndTimeCertificationInventoryEOS
*/
void syncProcessInfoDetailEndTime(Date endTime, List<ProjectCertificationInventoryEO> editEndTimeCertificationInventoryEOS);
/**
* 获取用户的责任领域数组
* @param params
* @return
*/
List<SysDictItem> getUserDutyTerritoryList(Map<String, Object> params);
/**
* 替换用户
* @param json
*/
void replacementUser(JSONObject json);
/**
* 匹配相关人员
* @param params
* @return
*/
Result<?> matchRelevantPeople(Map<String, Object> params);
}
@@ -0,0 +1,325 @@
package com.jero.modules.platform.service;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.itextpdf.text.DocumentException;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.vo.ProjectTaskUrgVo;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @Description: 项目库-法规清单表
* @Author: jero-boot
* @Date: 2022-04-14
* @Version: V1.0
*/
public interface IPlatformProjectLawsInventoryEOService extends IService<ProjectLawsInventoryEO> {
/**
* 保存
*
* @param projectLawsInventoryEO
* @return
*/
void add(ProjectLawsInventoryEO projectLawsInventoryEO);
/**
* 更新
*
* @param projectLawsInventoryEO
* @return
*/
void editById(ProjectLawsInventoryEO projectLawsInventoryEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id,String projectLibraryId,String cut);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids,String projectLibraryId,String cut);
/**
* 通过id查询
*
* @param id
* @return
*/
ProjectLawsInventoryEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ProjectLawsInventoryEO> queryList(ProjectLawsInventoryEO projectLawsInventoryEO, HttpServletRequest req);
/**
* 批量更新状态
* @param json
* @return
*/
Result<?> updateStatusBatch(JSONObject json);
void sendMessage(String msgTitle, String msgContent, List<String> userIdList, String projectLibraryId, Map<String,Object> params, FeishuMsgVo feishuMsgVo, MessageTypeEnum messageType,String initiator);
/**
* 匹配相关人员
* @param params
* @return
*/
Result<?> matchRelevantPeople(Map<String, Object> params);
/**
* 流程调用
* @param jsonObject
* @return
*/
Result<?> processCall(JSONObject jsonObject);
List<ProjectLawsInventoryEO> queryProjectLawsInventoryInfoById(Map<String, Object> params);
void copyInfoByIds(String ids,String operateType);
/**
* 批量设置
* @param projectLawsInventoryEO
*/
void setBatch(ProjectLawsInventoryEO projectLawsInventoryEO);
/**
* 模板下载
* @param projectLawsInventoryEO
* @param response
* @param request
*/
void exportTemplate(ProjectLawsInventoryEO projectLawsInventoryEO, HttpServletResponse response, HttpServletRequest request);
void exportData(HttpServletResponse response,
HttpServletRequest request,
ProjectLawsInventoryEO projectLawsInventoryEO);
void importData(MultipartFile file,
ProjectLawsInventoryEO projectLawsInventoryEO);
void dataDispose(List<ProjectLawsInventoryEO> list, LoginUser currentUser, int isProjectRole, String cut);
Result<?> change(JSONObject parmas);
/**
* 下载pdf报告
* @param params
* @param req
* @param resp
* @throws DocumentException
*/
void downloadReport(Map<String, Object> params,HttpServletRequest req, HttpServletResponse resp)throws DocumentException;
/**
* 下载docx报告
* @param params
* @param req
* @param resp
*/
void downloadDocxReport(Map<String, Object> params, HttpServletRequest req, HttpServletResponse resp);
/**
* 催办
* @param json
* @return
*/
Result<?> expediting(JSONObject json);
List<SysRole> getRoleByUserId(String projectLibraryId,String cut);
void addProcessInfo(ProcessInfoEO processInfoEO, String projectLibraryId, Date endTime);
void addProcessInfoDetail(String processInfoId, List<ProcessInfoDetailEO> processInfoDetailEOList, Date endTime);
Result<?> taskUrg(ProjectTaskUrgVo projectTaskUrgVo);
Result<?> updateFlowInfoByProjectLibraryIds(String projectLibraryIds);
void updateFlowInfo(ProjectLawsInventoryEO projectLawsInventoryEO);
/**
* studio发布启动清单确认流程
* @param json
* @return
*/
Result<?> studioPublish(JSONObject json);
/**
* studio撤回
* @param json
* @return
*/
Result<?> studioWithdrew(JSONObject json);
/**
* 法规工程师退回
* @param json
* @return
*/
Result<?> regulationOwnerReturned(JSONObject json);
/**
* 根据id获取交付物类型展示名称
* @param projectLawsInventoryId
* @param cut
* @param flowType
* @return
*/
String getDeliverableTypeNameById(String projectLawsInventoryId, String cut, String flowType,List<ProjectLawsInventoryEO> projectLawsInventoryEOList,List<SysCategory> categoryList);
/**
* 根据id获取责任领域展示名称
* @param projectLawsInventoryId
* @param cut
* @param projectLawsInventoryEOList
* @param sysDictItems
* @param dicCode
* @return
*/
String getDutyTerritoryNameById(String projectLawsInventoryId, String cut, List<ProjectLawsInventoryEO> projectLawsInventoryEOList, List<SysDictItem> sysDictItems,String dicCode);
void sendMessageByTemplateId(String templeteId,Map<String,Object> params);
Map<String, Object> getProjectLawsInventoryLinkHrefFeishu(String projectLibraryId, String PRN_CN, String PRN_EN,String roleOpen);
/**
* 获取待办中心跳转链接
* @param projectLibraryId
* @param todoCenterParams
* @return
*/
Map<String, Object> getToDoCenterLinkHrefFeishu(String projectLibraryId, Map<String,Object> todoCenterParams);
/**
* 法规清单根据清单确认截至日期顺序排序
* @param projectLawsInventoryEOS
*/
void lawsInventoryEOListSortByInventoryAffirmDueDate(List<ProjectLawsInventoryEO> projectLawsInventoryEOS);
/**
* 法规清单根据设计符合性截至日期顺序排序
* @param projectLawsInventoryEOS
*/
void lawsInventoryEOListSortByDesignDueDate(List<ProjectLawsInventoryEO> projectLawsInventoryEOS);
/**
* 法规清单根据验证符合性截至日期顺序排序
* @param projectLawsInventoryEOS
*/
void lawsInventoryEOListSortByVerifyDueDate(List<ProjectLawsInventoryEO> projectLawsInventoryEOS);
/**
* 创建查询权限2023-04-06 修改UAT问题第22条
* @param isProjectRole
* @param currentUser
*/
void createQueryPermission(int isProjectRole, LoginUser currentUser, QueryWrapper<ProjectLawsInventoryEO> projectLawsInventoryEOQueryWrapper);
Result<?> resetFlowTemp(JSONObject parmas);
/**
* 批量更新流程状态
* @param json
* @return
*/
Result<?> updateFlowStatusBatch(JSONObject json);
Result<?> citeDeliverable(JSONObject json);
Result<?> compulsoryTransfer(JSONObject json);
Map<String, List<Map<String, Object>>> queryDutyPersonByProjectId(Map<String, Object> params);
/**
* 获取任务确认统计信息
* @param projectLawsInventoryEOList
* @return
*/
List<Map<String, Object>> getTaskToConfirmStatistics(List<ProjectLawsInventoryEO> projectLawsInventoryEOList);
/**
* 获取设计符合性统计信息
* @param projectLawsInventoryEOList
* @return
*/
List<Map<String, Object>> getDesignComplianceStatistice(List<ProjectLawsInventoryEO> projectLawsInventoryEOList);
/**
* 获取验证符合性统计信息
* @param projectLawsInventoryEOList
* @return
*/
List<Map<String, Object>> getVerifyComplianceStatistice(List<ProjectLawsInventoryEO> projectLawsInventoryEOList);
List<Map<String,Object>> queryNotComplianList(Map<String, Object> params);
void exportNotComplianList(HttpServletResponse response, HttpServletRequest request, Map<String, Object> params);
/**
* 按照法规任务确认状态分组
* @param pliEos
* @return
*/
Map<String, Object> groupByFGRwqrStatus(List<ProjectLawsInventoryEO> pliEos);
/**
* 按照设计符合性状态分组
* @param pliEos
* @return
*/
Map<String, Object> groupByDesignStatus(List<ProjectLawsInventoryEO> pliEos);
/**
* 按照验证符合性状态分组
* @param pliEos
* @return
*/
Map<String, Object> groupByVerifyStatus(List<ProjectLawsInventoryEO> pliEos);
IPage<ProjectLawsInventoryEO> queryPage(ProjectLawsInventoryEO projectLawsInventoryEO, Integer pageNo, Integer pageSize, HttpServletRequest req);
Result<?> finalizationVerify(Map<String, Object> params);
/**
* 获取用户的责任领域数组
* @param params
* @return
*/
List<SysDictItem> getUserDutyTerritoryList(Map<String, Object> params);
/***
* 替换用户
* @param params
*/
void replacementUser(JSONObject json);
int checkUserRole(String projectLibraryId, String currentUserId, String lawsInventoryId);
}
@@ -0,0 +1,191 @@
package com.jero.modules.platform.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.project.entity.ProjectLibraryBase;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
/**
* @Description: 项目库基础表
* @Author: jero-boot
* @Date: 2022-04-11
* @Version: V1.0
*/
public interface IPlatformProjectLibraryBaseService extends IService<ProjectLibraryBase> {
/**
* 保存
*
* @param projectLibraryBase
* @return
*/
void add(ProjectLibraryBase projectLibraryBase) throws ParseException;
/**
* 项目扩展(添加子项目-子项目基本信息相关人员名单法规/认证任务计划与被扩展项目保持一致)
*
* @param projectLibraryBase
* @return
*/
void addChild(ProjectLibraryBase projectLibraryBase) throws ParseException;
/**
* 更新
*
* @param projectLibraryBase
* @return
*/
void editById(ProjectLibraryBase projectLibraryBase);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id, String cut);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids,String cut);
/**
* 通过id查询
*
* @param id
* @return
*/
List<ProjectLibraryBase> queryById(String id,String cut);
/**
* 列表查询
*
* @return
*/
List<ProjectLibraryBase> getList(ProjectLibraryBase projectLibraryBase);
/**
* 分页列表查询
*
* @return
*/
List<ProjectLibraryBase> queryPageList(Map<String, Object> params);
// IPage<ProjectLibraryBase> queryPageList(Map<String, Object> params);
/**
* 项目详情-统计接口
* @param id
* @return
*/
Map<String, Object> getProjectDetailsStatistics(String id);
/**
* 项目详情-统计接口-根据领域分组
* @param params
* @return
*/
Map<String, Object> getProjectDetailsStatisticsGroupByTerritory(Map<String, Object> params);
void exportProjectDetailsStatisticsGroupByTerritoryXls(HttpServletResponse response, HttpServletRequest request, Map<String, Object> params);
void checkData(String id, String cut);
void disposeData(List<ProjectLibraryBase> records,String cut,boolean disposeTargetMarketFlag);
Page getPages(Integer currentPage, Integer pageSize, List<ProjectLibraryBase> list);
/**
* 项目置顶,取消置顶(只置顶主项目)
* @param id
* @param flag 0为置顶, 1为取消置顶
* @return
*/
void top(String id,String flag);
/**
* 获取项目所有的版本(主版本和子版本的集合)
* @param id
* @return
*/
List<String> getVersionsInfo(String id);
/**
* 版本统计
* @param id
* @return
*/
List<ProjectLibraryBase> versionStatistics(String id);
/**
* 通过主项目id和子项目版本号
* @param version
* @param parentId
* @return
*/
String getIdByVersionAndParentId(String version, String parentId);
/**
* 查询主项目及其所有子项目
* @param parentId
* @return
*/
List<ProjectLibraryBase> getParentAndChildern(String parentId);
/**
* 根据id查询项目库详情信息 发送飞书消息时使用之前的 queryById不太兼容
* @param projectLibraryId
* @return
*/
ProjectLibraryBase selectById(String projectLibraryId);
/**
* 对接火山引擎接口-获取项目统计信息
* @return
*/
JSONArray getProjectInfo();
/**
* 对接火山引擎接口-获取项目统计信息
* @return
*/
JSONArray getProjectProgressInfo();
/**
* 导出项目进度统计(状态导出)
* @param response
* @param request
* @param params
*/
void exportProjectProgressStatisticsXls(HttpServletResponse response, HttpServletRequest request, Map<String, Object> params);
/**
* 获取用户在该项目中所有的责任领域数组
* @param params
* @return
*/
List<DictModel> getUserAllDutyTerritoryList(Map<String, Object> params);
/**
* 全局替换用户
* @param json
* @return
*/
Result<?> overallReplacementUser(JSONObject json);
List<ProjectLibraryBase> queryList(List<String> projectIdList);
List<ProjectLibraryBase> getListByIds(List<String> projectIdList);
}
@@ -0,0 +1,73 @@
package com.jero.modules.platform.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import java.util.List;
/**
* @Description: 项目名信息表
* @Author: jero-boot
* @Date: 2022-04-18
* @Version: V1.0
*/
public interface IPlatformProjectNameInfoEOService extends IService<ProjectNameInfoEO> {
/**
* 保存
*
* @param projectNameInfoEO
* @return
*/
void add(ProjectNameInfoEO projectNameInfoEO);
/**
* 更新
*
* @param projectNameInfoEO
* @return
*/
void editById(ProjectNameInfoEO projectNameInfoEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ProjectNameInfoEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ProjectNameInfoEO> queryList();
/**
* 返回项目全拼
* @return
*/
List<ProjectLibraryBase> queryProjectNameList(String cut);
//void getSpaceInfo(String cut);
}
@@ -0,0 +1,76 @@
package com.jero.modules.platform.service;
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
* @Description: 平台件合规认证计划
* @Author: jero-boot
* @Date: 2023-09-14
* @Version: V1.0
*/
public interface IPlatformTaskPlanningEOService extends IService<PlatformTaskPlanningEO> {
/**
* 保存
*
* @param platformTaskPlanningEO
* @return
*/
void add(PlatformTaskPlanningEO platformTaskPlanningEO);
/**
* 平台件合规认证计划-批量添加
* @param platformTaskPlanningEOListUp
* @param platformTaskPlanningEOListDown
*/
void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp,List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown);
/**
* 更新
*
* @param platformTaskPlanningEO
* @return
*/
void editById(PlatformTaskPlanningEO platformTaskPlanningEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
PlatformTaskPlanningEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<PlatformTaskPlanningEO> queryList(String projectId);
/**
* 平台件合规认证计划-编辑数据回显
* @param projectId
* @return
*/
Map<String,Object> queryListUpdate(String projectId);
}
@@ -0,0 +1,374 @@
package com.jero.modules.platform.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.platform.mapper.PlatformProjectNameInfoEOMapper;
import com.jero.modules.platform.service.IPlatformProjectNameInfoEOService;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import com.jero.modules.project.entity.ProjectYearNameInfoEO;
import com.jero.modules.project.mapper.ProblemManagementEOMapper;
import com.jero.modules.project.service.impl.ProblemManagementEOServiceImpl;
import com.jero.modules.project.service.impl.ProjectYearNameInfoEOServiceImpl;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.util.StringUtils;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @Description: 项目名信息表
* @Author: jero-boot
* @Date: 2022-04-18
* @Version: V1.0
*/
@Service
public class PlatformProjectNameInfoEOServiceImpl extends ServiceImpl<PlatformProjectNameInfoEOMapper, ProjectNameInfoEO> implements IPlatformProjectNameInfoEOService {
@Autowired
private ProjectYearNameInfoEOServiceImpl projectYearNameInfoEOService;
@Autowired
private ProblemManagementEOMapper problemManagementEOMapper;
@Autowired
private ISysDictService sysDictService;
@Autowired
private ProblemManagementEOServiceImpl problemManagementEOService;
/**
* 保存
*
* @param projectNameInfoEO
* @return
*/
@Override
public void add(ProjectNameInfoEO projectNameInfoEO) {
Date now = new Date();
projectNameInfoEO.setCreateTime(now);
projectNameInfoEO.setUpdateTime(now);
save(projectNameInfoEO);
}
/**
* 更新
*
* @param projectNameInfoEO
* @return
*/
@Override
public void editById(ProjectNameInfoEO projectNameInfoEO) {
Date now = new Date();
projectNameInfoEO.setUpdateTime(now);
saveOrUpdate(projectNameInfoEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public ProjectNameInfoEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<ProjectNameInfoEO> queryList() {
QueryWrapper<ProjectNameInfoEO> nameInfoEOQueryWrapper = new QueryWrapper<>();
List<ProjectNameInfoEO> projectNameInfoEOList = list(nameInfoEOQueryWrapper);
// List<String> projectNameInfoIdList = projectNameInfoEOList.stream().map(e -> e.getId()).collect(Collectors.toList());
for (ProjectNameInfoEO projectNameInfoEO : projectNameInfoEOList){
QueryWrapper<ProjectYearNameInfoEO> yearNameInfoEOQueryWrapper = new QueryWrapper<>();
yearNameInfoEOQueryWrapper.eq("project_name_id",projectNameInfoEO.getId());
List<ProjectYearNameInfoEO> yearNameInfoDataList = projectYearNameInfoEOService.list(yearNameInfoEOQueryWrapper);
if(CollectionUtils.isNotEmpty(yearNameInfoDataList)) {
projectNameInfoEO.setYearNameDataList(yearNameInfoDataList);
}
}
// List<ProjectNameInfoEO> projectNameAndYear = projectNameInfoEOMapper.selectProjectNameAndYear();
return projectNameInfoEOList;
}
/**
* 列表查询
*
* @return
*/
@Override
public List<ProjectLibraryBase> queryProjectNameList(String cut) {
List<ProjectLibraryBase> projectLibraryBaseList = problemManagementEOMapper.queryByIds(null);
//目标市场数据字典
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseList) {
//目标市场
String targetMarket = problemManagementEOService.getMarket(cut, targetMarketList, projectLibraryBase);
//主项目的版本号
String projectVersion = "";
if(StringUtils.isBlank(projectLibraryBase.getParentId())){
projectVersion = "00";
}else{
projectVersion = projectLibraryBase.getProjectVersion();
}
if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){
projectLibraryBase.setProjectName(projectLibraryBase.getProjectName()
+ "-" + projectLibraryBase.getYearName()
+ "-" + targetMarket
+"-"+projectVersion);
}
}
return projectLibraryBaseList;
}
/* @Override
public void getSpaceInfo(String cut){
String jsonData ="";
try {
jsonData = spaceService.getSign();
if(StringUtils.isNotBlank(jsonData)) {
//静态测试数据
*//* jsonData = "{\n" +
" \"resultData\": [\n" +
" {\n" +
" \"modelCode\": \"ES8_00\",\n" +
" \"modelName\": \"ES8\",\n" +
" \"hardwarePltCode\": \"mhp_npa\",\n" +
" \"hardwarePltName\": \"NPA\",\n" +
" \"softwarePltCode\": \"msp_nt1\",\n" +
" \"softwarePltName\": \"NT1\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.2\",\n" +
" \"yearName\": \"G1.2\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.3\",\n" +
" \"yearName\": \"G1.3\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.f\",\n" +
" \"yearName\": \"G1.F\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.f.e\",\n" +
" \"yearName\": \"G1.F.E\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_my2018\",\n" +
" \"yearName\": \"MY2018\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.5\",\n" +
" \"yearName\": \"G1.5\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"modelCode\": \"FURY_00\",\n" +
" \"modelName\": \"FURY\",\n" +
" \"hardwarePltCode\": \"mhp_npa\",\n" +
" \"hardwarePltName\": \"NPA\",\n" +
" \"softwarePltCode\": \"msp_nt1\",\n" +
" \"softwarePltName\": \"NT1\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.2\",\n" +
" \"yearName\": \"G1.2\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.3\",\n" +
" \"yearName\": \"G1.3\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.f\",\n" +
" \"yearName\": \"G1.F\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.6\",\n" +
" \"yearName\": \"G1.6\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.5\",\n" +
" \"yearName\": \"G1.5\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1.e\",\n" +
" \"yearName\": \"G1.1.E\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"modelCode\": \"FORCE_00\",\n" +
" \"modelName\": \"FORCE\",\n" +
" \"hardwarePltCode\": \"mhp_npb\",\n" +
" \"hardwarePltName\": \"NPB\",\n" +
" \"softwarePltCode\": \"msp_nt2\",\n" +
" \"softwarePltName\": \"NT2\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1.e\",\n" +
" \"yearName\": \"G1.1.E\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.2\",\n" +
" \"yearName\": \"G1.2\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.3\",\n" +
" \"yearName\": \"G1.3\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.f\",\n" +
" \"yearName\": \"G1.F\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.6\",\n" +
" \"yearName\": \"G1.6\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.5\",\n" +
" \"yearName\": \"G1.5\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"modelCode\": \"Gemini_00\",\n" +
" \"modelName\": \"Gemini\",\n" +
" \"hardwarePltCode\": \"mhp_npa\",\n" +
" \"hardwarePltName\": \"NPA\",\n" +
" \"softwarePltCode\": \"msp_nt2\",\n" +
" \"softwarePltName\": \"NT2\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1.e\",\n" +
" \"yearName\": \"G1.1.E\"\n" +
" }\n" +
" ]\n" +
" },\n" +
" {\n" +
" \"modelCode\": \"Pegasus_00\",\n" +
" \"modelName\": \"Pegasus\",\n" +
" \"hardwarePltCode\": \"mhp_npc\",\n" +
" \"hardwarePltName\": \"NPC\",\n" +
" \"softwarePltCode\": \"msp_nt2\",\n" +
" \"softwarePltName\": \"NT2\",\n" +
" \"modelYearInfoList\": [\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1\",\n" +
" \"yearName\": \"G1.1\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_g1.1.e\",\n" +
" \"yearName\": \"G1.1.E\"\n" +
" },\n" +
" {\n" +
" \"yearCode\": \"mp_G1.1.RH\",\n" +
" \"yearName\": \"G1.1.RH\"\n" +
" }\n" +
" ]\n" +
" }\n" +
" ],\n" +
" \"resultCode\": \"WL-0000\",\n" +
" \"resultDesc\": \"Success\"\n" +
"}";*//*
JSONObject result = (JSONObject) JSON.parse(jsonData);
JSONArray resultData = result.getJSONArray("resultData");
String modelName = "";//项目名称
String hardwarePltName = "";//车型平台
String softwarePltName = "";//数字平台
//获取resultData中所需的数据
for (int i = 0; i < resultData.size(); i++) {
JSONObject jsonObject = resultData.getJSONObject(i);
modelName = jsonObject.getString("modelName");//项目名称
hardwarePltName = jsonObject.getString("hardwarePltName");//车型平台
softwarePltName = jsonObject.getString("softwarePltName");//数字平台
String nameInfoId = UUID.randomUUID().toString().replace("-", "");
ProjectNameInfoEO projectNameInfoEO = new ProjectNameInfoEO();
projectNameInfoEO.setId(nameInfoId);
projectNameInfoEO.setProjectName(modelName);
projectNameInfoEO.setVehiclePlatform(hardwarePltName);
projectNameInfoEO.setDigitalPlatform(softwarePltName);
//保存
save(projectNameInfoEO);
//设置年款名
JSONArray modelYearInfoJson = jsonObject.getJSONArray("modelYearInfoList");
for (int j = 0; j < modelYearInfoJson.size(); j++) {
JSONObject modelYearInfo = modelYearInfoJson.getJSONObject(j);
String yearName = modelYearInfo.getString("yearName");
ProjectYearNameInfoEO projectYearNameInfoEO = new ProjectYearNameInfoEO();
projectYearNameInfoEO.setProjectNameId(nameInfoId);
projectYearNameInfoEO.setYearName(yearName);
//保存
projectYearNameInfoEOService.save(projectYearNameInfoEO);
}
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("从Space获取项目名称相关数据,成功保存");
}else{
throw new JeroBootException("Get the data related to the project name from Space and save it successfully.");
}
}
}else{
if(CutEnum.CN.getValue().equals(cut)) {
throw new JeroBootException("从Space获取项目名称相关数据为空");
}else{
throw new JeroBootException("Data related to obtaining project name from Space is empty.");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}*/
}
@@ -0,0 +1,226 @@
package com.jero.modules.platform.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.platform.entity.PlatformTaskPlanningEO;
import com.jero.modules.platform.enums.UpAndDownEnum;
import com.jero.modules.platform.mapper.PlatformTaskPlanningEOMapper;
import com.jero.modules.platform.service.IPlatformTaskPlanningEOService;
import com.jero.modules.project.enums.PlanStatusEnum;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Description: 平台件合规认证计划
* @Author: jero-boot
* @Date: 2023-09-14
* @Version: V1.0
*/
@Service
public class PlatformTaskPlanningEOServiceImpl extends ServiceImpl<PlatformTaskPlanningEOMapper, PlatformTaskPlanningEO> implements IPlatformTaskPlanningEOService {
/**
* 保存
*
* @param platformTaskPlanningEO
* @return
*/
@Override
public void add(PlatformTaskPlanningEO platformTaskPlanningEO) {
Date now = new Date();
platformTaskPlanningEO.setCreateTime(now);
platformTaskPlanningEO.setUpdateTime(now);
save(platformTaskPlanningEO);
}
/**
* 平台件合规认证计划-批量添加
* @param platformTaskPlanningEOListUp
* @param platformTaskPlanningEOListDown
*/
@Override
public void addBatch(List<PlatformTaskPlanningEO> platformTaskPlanningEOListUp,List<PlatformTaskPlanningEO> platformTaskPlanningEOListDown) {
if(!platformTaskPlanningEOListUp.isEmpty()){
//先删除在新增
// LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<PlatformTaskPlanningEO> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(PlatformTaskPlanningEO::getCreateBy,loginUser.getUsername());
wrapper.eq(PlatformTaskPlanningEO::getProjectId,platformTaskPlanningEOListUp.get(0).getProjectId());
this.remove(wrapper);
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOListUp) {
Date now = new Date();
platformTaskPlanningEO.setCreateTime(now);
platformTaskPlanningEO.setUpdateTime(now);
platformTaskPlanningEO.setFlag("up");
platformTaskPlanningEO.setId(null);
}
for (PlatformTaskPlanningEO platformTaskPlanningEO : platformTaskPlanningEOListDown) {
Date now = new Date();
platformTaskPlanningEO.setCreateTime(now);
platformTaskPlanningEO.setUpdateTime(now);
platformTaskPlanningEO.setFlag("down");
platformTaskPlanningEO.setId(null);
}
saveBatch(platformTaskPlanningEOListUp);
saveBatch(platformTaskPlanningEOListDown);
}
}
/**
* 更新
*
* @param platformTaskPlanningEO
* @return
*/
@Override
public void editById(PlatformTaskPlanningEO platformTaskPlanningEO) {
Date now = new Date();
platformTaskPlanningEO.setUpdateTime(now);
saveOrUpdate(platformTaskPlanningEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
removeById(id);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public PlatformTaskPlanningEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<PlatformTaskPlanningEO> queryList(String projectId) {
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
Date date = null;
try {
date = sdf.parse(sdf.format(new Date()));
} catch (ParseException e) {
e.printStackTrace();
}
LambdaQueryWrapper<PlatformTaskPlanningEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PlatformTaskPlanningEO::getProjectId,projectId);
wrapper.isNotNull(PlatformTaskPlanningEO::getNodeTime);
wrapper.orderByAsc(PlatformTaskPlanningEO::getNodeTime);
List<PlatformTaskPlanningEO> taskPlanningEOList = list(wrapper);
if(ObjectUtils.isNotEmpty(taskPlanningEOList)){
for (PlatformTaskPlanningEO platformTaskPlanningEO : taskPlanningEOList) {
platformTaskPlanningEO.setName(platformTaskPlanningEO.getNodeName());
platformTaskPlanningEO.setTime(platformTaskPlanningEO.getNodeTime());
if(ObjectUtils.isNotEmpty(platformTaskPlanningEO.getNodeTime())){
if(platformTaskPlanningEO.getNodeTime().after(date)){
platformTaskPlanningEO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
}else if(platformTaskPlanningEO.getNodeTime().before(date)){
platformTaskPlanningEO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
}else{
platformTaskPlanningEO.setStatus(PlanStatusEnum.ON_GOING.getValue());
}
}
if(UpAndDownEnum.UP.getValue().equals(platformTaskPlanningEO.getFlag())){
platformTaskPlanningEO.setG(true);
}else if(UpAndDownEnum.DOWN.getValue().equals(platformTaskPlanningEO.getFlag())){
platformTaskPlanningEO.setG(false);
}
}
}
return taskPlanningEOList;
}
/**
* 平台件合规认证计划-编辑数据回显
*
* @return
*/
@Override
public Map<String,Object> queryListUpdate(String projectId) {
SimpleDateFormat sdf = new SimpleDateFormat("yyy-MM-dd");
Date date = null;
try {
date = sdf.parse(sdf.format(new Date()));
} catch (ParseException e) {
e.printStackTrace();
}
LambdaQueryWrapper<PlatformTaskPlanningEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PlatformTaskPlanningEO::getProjectId,projectId);
wrapper.orderByAsc(PlatformTaskPlanningEO::getNodeTime);
List<PlatformTaskPlanningEO> taskPlanningEOList = list(wrapper);
Map<String,Object> result = new HashMap<>();
if(ObjectUtils.isEmpty(taskPlanningEOList)){
LambdaQueryWrapper<PlatformTaskPlanningEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.isNull(PlatformTaskPlanningEO::getProjectId);
List<PlatformTaskPlanningEO> list = list(queryWrapper);
List<PlatformTaskPlanningEO> up = list.stream()
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.UP.getValue().equals(e.getFlag())).collect(Collectors.toList());
List<PlatformTaskPlanningEO> down = list.stream()
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.DOWN.getValue().equals(e.getFlag())).collect(Collectors.toList());
result.put("listUp",up);
result.put("listDown",down);
}else{
for (PlatformTaskPlanningEO platformTaskPlanningEO : taskPlanningEOList) {
platformTaskPlanningEO.setName(platformTaskPlanningEO.getNodeName());
platformTaskPlanningEO.setTime(platformTaskPlanningEO.getNodeTime());
platformTaskPlanningEO.setG(false);
if(ObjectUtils.isNotEmpty(platformTaskPlanningEO.getNodeTime())){
if(platformTaskPlanningEO.getNodeTime().after(date)){
platformTaskPlanningEO.setStatus(PlanStatusEnum.LESS_THAN_TIME.getValue());
}else if(platformTaskPlanningEO.getNodeTime().before(date)){
platformTaskPlanningEO.setStatus(PlanStatusEnum.OUT_OF_DATE.getValue());
}else{
platformTaskPlanningEO.setStatus(PlanStatusEnum.ON_GOING.getValue());
}
}
}
List<PlatformTaskPlanningEO> up = taskPlanningEOList.stream()
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.UP.getValue().equals(e.getFlag())).collect(Collectors.toList());
List<PlatformTaskPlanningEO> down = taskPlanningEOList.stream()
.filter(e -> StringUtils.isNotBlank(e.getFlag()) && UpAndDownEnum.DOWN.getValue().equals(e.getFlag())).collect(Collectors.toList());
result.put("listUp",up);
result.put("listDown",down);
}
return result;
}
}
@@ -0,0 +1,208 @@
package com.jero.modules.project.controller;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.LawsInventoryPlatformEO;
import com.jero.modules.project.service.ILawsInventoryPlatformEOService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 车型项目库法规清单关联平台件表
* @Author: jero-boot
* @Date: 2023-09-19
* @Version: V1.0
*/
@Api(tags="车型项目库法规清单关联平台件表")
@RestController
@RequestMapping("/project/lawsInventoryPlatformEO")
@Slf4j
public class LawsInventoryPlatformEOController extends JeroController<LawsInventoryPlatformEO, ILawsInventoryPlatformEOService> {
@Autowired
private ILawsInventoryPlatformEOService lawsInventoryPlatformEOService;
/**
* 分页列表查询
*
* @param lawsInventoryPlatformEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "车型项目库法规清单关联平台件表-分页列表查询")
@ApiOperation(value="车型项目库法规清单关联平台件表-分页列表查询", notes="车型项目库法规清单关联平台件表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(LawsInventoryPlatformEO lawsInventoryPlatformEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<LawsInventoryPlatformEO> queryWrapper = QueryGenerator.initQueryWrapper(lawsInventoryPlatformEO, req.getParameterMap());
Page<LawsInventoryPlatformEO> page = new Page<LawsInventoryPlatformEO>(pageNo, pageSize);
IPage<LawsInventoryPlatformEO> pageList = lawsInventoryPlatformEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "车型项目库法规清单关联平台件表-列表查询")
@ApiOperation(value="车型项目库法规清单关联平台件表-列表查询", notes="车型项目库法规清单关联平台件表-列表查询")
@GetMapping(value = "/list")
public Result<List<LawsInventoryPlatformEO>> queryList() {
List<LawsInventoryPlatformEO> list = lawsInventoryPlatformEOService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param lawsInventoryPlatformEO
* @return
*/
@AutoLog(value = "车型项目库法规清单关联平台件表-添加")
@ApiOperation(value="车型项目库法规清单关联平台件表-添加", notes="车型项目库法规清单关联平台件表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody LawsInventoryPlatformEO lawsInventoryPlatformEO) {
lawsInventoryPlatformEOService.add(lawsInventoryPlatformEO);
return Result.OK("添加成功!");
}
/**
* 批量添加
*
* @param json
* @return
*/
@AutoLog(value = "车型项目库法规清单关联平台件表-批量添加")
@ApiOperation(value="车型项目库法规清单关联平台件表-批量添加", notes="车型项目库法规清单关联平台件表-批量添加")
@PostMapping(value = "/addBatch")
public Result<?> addBatch(@Validated @RequestBody JSONObject json) {
JSONArray dataList = json.getJSONArray("list");
List<LawsInventoryPlatformEO> lawsInventoryPlatformEOS = new ArrayList<>();
for (Object data : dataList) {
LawsInventoryPlatformEO inventoryPlatformEO = JSONObject.parseObject(JSONObject.toJSONString(data), LawsInventoryPlatformEO.class);
lawsInventoryPlatformEOS.add(inventoryPlatformEO);
}
lawsInventoryPlatformEOService.addBatch(lawsInventoryPlatformEOS);
String msg = "";
if(ObjectUtils.isNotEmpty(json.get("msg"))){
msg = (String)json.get("msg");
}else{
msg = "";
}
return Result.OK(msg);
}
/**
* 编辑
*
* @param lawsInventoryPlatformEO
* @return
*/
@AutoLog(value = "车型项目库法规清单关联平台件表-编辑")
@ApiOperation(value="车型项目库法规清单关联平台件表-编辑", notes="车型项目库法规清单关联平台件表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody LawsInventoryPlatformEO lawsInventoryPlatformEO) {
lawsInventoryPlatformEOService.editById(lawsInventoryPlatformEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "车型项目库法规清单关联平台件表-通过id删除")
@ApiOperation(value="车型项目库法规清单关联平台件表-通过id删除", notes="车型项目库法规清单关联平台件表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
lawsInventoryPlatformEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "车型项目库法规清单关联平台件表-批量删除")
@ApiOperation(value="车型项目库法规清单关联平台件表-批量删除", notes="车型项目库法规清单关联平台件表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.lawsInventoryPlatformEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "车型项目库法规清单关联平台件表-通过id查询")
@ApiOperation(value="车型项目库法规清单关联平台件表-通过id查询", notes="车型项目库法规清单关联平台件表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
LawsInventoryPlatformEO lawsInventoryPlatformEO = lawsInventoryPlatformEOService.queryById(id);
if(lawsInventoryPlatformEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(lawsInventoryPlatformEO);
}
/**
* 导出excel
*
* @param request
* @param lawsInventoryPlatformEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, LawsInventoryPlatformEO lawsInventoryPlatformEO) {
return super.exportXls(request, lawsInventoryPlatformEO, LawsInventoryPlatformEO.class, "车型项目库法规清单关联平台件表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, LawsInventoryPlatformEO.class);
}
}
@@ -561,4 +561,6 @@ public class PhoneProjectLawsInventoryEOController extends JeroController<Projec
public Result<?> finalizationVerify(@RequestParam Map<String,Object> params){
return this.projectLawsInventoryEOService.finalizationVerify(params);
}
}
@@ -1,32 +1,39 @@
package com.jero.modules.project.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
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.system.entity.SysRole;
import lombok.extern.slf4j.Slf4j;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
import com.jero.modules.system.entity.SysRole;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
@@ -86,6 +93,19 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
return Result.OK(cut,pageList);
}
/**
* 勾选认证清单进行关联平台件
*
* @return
*/
@AutoLog(value = "勾选认证清单进行关联平台件")
@ApiOperation(value="勾选认证清单进行关联平台件", notes="勾选认证清单进行关联平台件")
@PostMapping(value = "/listPlatform")
public Result<?> listPlatform(@RequestBody Map<String,Object> params) {
String msg = projectCertificationInventoryEOService.listPlatform(params);
return Result.OK(msg);
}
/**
* 列表查询
*
@@ -575,4 +575,16 @@ public class ProjectLawsInventoryEOController extends JeroController<ProjectLaws
public Result<?> finalizationVerify(@RequestParam Map<String,Object> params){
return this.projectLawsInventoryEOService.finalizationVerify(params);
}
/**
* 点击流程状态查看流程详情平台件
*
* @return
*/
@AutoLog(value = "点击流程状态查看流程详情(平台件)")
@ApiOperation(value="点击流程状态查看流程详情(平台件)", notes="点击流程状态查看流程详情(平台件)")
@GetMapping(value = "/queryPlatformList")
public Result<List<ProjectLawsInventoryEO>> queryPlatformList(String lawsInventoryId,String flowFlag,String cut) {
List<ProjectLawsInventoryEO> list = projectLawsInventoryEOService.queryPlatformList(lawsInventoryId,flowFlag,cut);
return Result.OK(list);
}
}
@@ -61,6 +61,41 @@ public class ProjectLibraryBaseController extends JeroController<ProjectLibraryB
Page pages = projectLibraryBaseService.getPages(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString()), pageList);
return Result.OK(params.get("cut").toString(),pages);
}
@AutoLog(value = "认证清单引用交付物")
@ApiOperation(value="认证清单引用交付物", notes="认证清单引用交付物")
@PostMapping(value = "/quotePage")
// @PostMapping(value = "/page")
public Result<?> quotePage(@RequestBody Map<String,Object> params) {
params.put("flag","quote");
List<ProjectLibraryBase> pageList= projectLibraryBaseService.queryPageList(params);
Page pages = projectLibraryBaseService.getPages(Integer.parseInt(params.get("pageNo").toString()), Integer.parseInt(params.get("pageSize").toString()), pageList);
return Result.OK(params.get("cut").toString(),pages);
}
/**
* 勾选法规清单进行关联平台件
*
* @return
*/
@AutoLog(value = "勾选法规清单进行关联平台件")
@ApiOperation(value="勾选法规清单进行关联平台件", notes="勾选法规清单进行关联平台件")
@PostMapping(value = "/listPlatform")
public Result<?> listPlatform(@RequestBody Map<String,Object> params) {
Map<String, Object> map = projectLibraryBaseService.listPlatform(params);
return Result.OK(params.get("cut").toString(),map);
}
/**
* 不勾选法规清单进行关联平台件
*
* @return
*/
@AutoLog(value = "不勾选法规清单进行关联平台件")
@ApiOperation(value="不勾选法规清单进行关联平台件", notes="不勾选法规清单进行关联平台件")
@PostMapping(value = "/listPlatformAll")
public Result<?> listPlatformAll(@RequestBody Map<String,Object> params) {
Map<String, Object> mapList = projectLibraryBaseService.listPlatformAll(params);
return Result.OK(params.get("cut").toString(),mapList);
}
/**
* 列表查询
@@ -170,6 +205,18 @@ public class ProjectLibraryBaseController extends JeroController<ProjectLibraryB
return Result.OK(cut,data);
}
@AutoLog(value = "待办中心-项目详情")
@ApiOperation(value="待办中心-项目详情", notes="待办中心-项目详情")
@GetMapping(value = "/queryByIdFlow")
public Result<?> queryByIdFlow(@RequestParam(name="id",required=true) String id,
@RequestParam(name="cut",required=true) String cut) {
List<ProjectLibraryBase> data = projectLibraryBaseService.queryByIdFlow(id,cut);
if(data==null) {
return Result.error("未找到对应数据");
}
return Result.OK(cut,data);
}
/**
* 导出excel
*
@@ -0,0 +1,76 @@
package com.jero.modules.project.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: 车型项目库法规清单关联平台件表
* @Author: jero-boot
* @Date: 2023-09-19
* @Version: V1.0
*/
@Data
@TableName("laws_inventory_platform")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="laws_inventory_platform对象", description="车型项目库法规清单关联平台件表")
public class LawsInventoryPlatformEO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**车型项目库法规清单id*/
@Excel(name = "车型项目库法规清单id", width = 15)
@ApiModelProperty(value = "车型项目库法规清单id")
private java.lang.String lawsInventoryId;
/**平台件项目库法规清单id*/
@Excel(name = "平台件项目库法规清单id", width = 15)
@ApiModelProperty(value = "平台件项目库法规清单id")
private java.lang.String platformLawsInventoryId;
@TableField(exist = false)
@ApiModelProperty(value = "平台件项目库法规清单ids")
private java.lang.String platformLawsInventoryIds;
}
@@ -216,4 +216,8 @@ public class ProjectCertificationInventoryDutyEnginnerEO implements Serializable
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
@TableField(exist = false)
private String endTimeStr;
@ApiModelProperty(value = "备注")
// @Excel(name = "备注", width = 50)
private String remark;
}
@@ -0,0 +1,222 @@
package com.jero.modules.project.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: 认证清单工程接口人和责任人导出类
* @Author: jero-boot
* @Date: 2023-03-03
* @Version: V1.0
*/
@Data
@TableName("project_certification_inventory")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="project_certification_inventory对象", description="项目库-认证清单表")
public class ProjectCertificationInventoryDutyEnginnerEOEnPlatform implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**类别*/
@Excel(name = "Category", width = 20)
@ApiModelProperty(value = "类别")
private String category;
/**检验项目*/
@Excel(name = "Inspection Items", width = 20)
@ApiModelProperty(value = "检验项目")
private String inspectionItem;
/**配置项*/
@ApiModelProperty(value = "配置项")
@Dict(dicCode = "ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4")
private String configItem;
/**WVTA ID*/
@Excel(name = "WVTA ID", width = 20)
@ApiModelProperty(value = "WVTA ID")
private String wvtaId;
/**标准编号*/
@Excel(name = "Standard No", width = 20)
@ApiModelProperty(value = "标准编号")
private String serialNumber;
/**责任领域*/
@ApiModelProperty(value = "责任领域")
private String dutyTerritory;
/**责任领域名称**/
@Excel(name = "Responsible Field", width = 20)
@TableField(exist = false)
private String dutyTerritoryName;
/**责任领域名称-英文**/
@TableField(exist = false)
private String dutyTerritoryNameEn;
/**工程接口人*/
@ApiModelProperty(value = "工程接口人")
private String sdt;
/**工程接口人名称**/
@Excel(name = "Eng. Interface", width = 20)
@TableField(exist = false)
private String sdtName;
/**责任人*/
@ApiModelProperty(value = "责任人")
private String dutyPerson;
/**责任人名称**/
@Excel(name = "Assignee", width = 20)
@TableField(exist = false)
private String dutyPersonName;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "Deliverable Template", width = 40)
private String deliverableTemplateName;
/**交付物类型*/
@ApiModelProperty(value = "交付物类型")
private String deliverableType;
// 交付物类型名称
@Excel(name = "Deliverable Type", width = 20)
@TableField(exist = false)
private String deliverableTypeName;
// 交付物类型名称-英文
@TableField(exist = false)
private String deliverableTypeNameEn;
/**交付物*/
// @Excel(name = "交付物", width = 15)
@ApiModelProperty(value = "交付物")
private String deliverable;
/**文档库id*/
// @Excel(name = "文档库id", width = 15)
@ApiModelProperty(value = "文档库id")
private String bussDocumentLibraryId;
/**交付结果*/
@Excel(name = "Deliverables Result", width = 20)
@ApiModelProperty(value = "交付结果")
private String deliveryResult;
/**截止日期*/
@Excel(name = "Due Date", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "截止日期")
private java.util.Date endTime;
/**流程状态*/
@ApiModelProperty(value = "流程状态")
private String flowStatus;
// 流程状态展示名称
@Excel(name = "Process Status", width = 20)
@TableField(exist = false)
private String flowStatusName;
/**报告编号*/
// @Excel(name = "Report No", width = 20)
@ApiModelProperty(value = "报告编号")
private String reportNumber;
/**产品型号*/
// @Excel(name = "Product Model", width = 20)
@ApiModelProperty(value = "产品型号")
private String productModel;
/**生产企业名称*/
// @Excel(name = "Name Of Manufacturer", width = 40)
@ApiModelProperty(value = "生产企业名称")
private String productionEnterpriseName;
/**认证进度*/
@ApiModelProperty(value = "认证进度")
private String certificationProgress;
/**认证进度展示名称**/
@TableField(exist = false)
// @Excel(name = "Homologation Progress", width = 40)
private String certificationProgress_dictText;
// @Excel(name = "认证进度备注", width = 15)
@ApiModelProperty(value = "认证进度备注")
private String certificationProgressRemark;
/**项目库id*/
@ApiModelProperty(value = "项目库id")
private String projectLibraryId;
@TableField(exist = false)
private String cut;
@TableField(exist = false)
private String ids;
@TableField(exist = false)
private String roleCode;
/**值类型,对应SysCategoryValueTypeEnum中value**/
@TableField(exist = false)
private String valueType;
@TableField(exist = false)
private String excelName;
// @Excel(name = "截止日期", width = 20, format = "yyyy-MM-dd")
@TableField(exist = false)
private String endTimeStr;
@ApiModelProperty(value = "备注")
@Excel(name = "Remark", width = 50)
private String remark;
}
@@ -0,0 +1,223 @@
package com.jero.modules.project.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
/**
* @Description: 认证清单工程接口人和责任人导出类
* @Author: jero-boot
* @Date: 2023-03-03
* @Version: V1.0
*/
@Data
@TableName("project_certification_inventory")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="project_certification_inventory对象", description="项目库-认证清单表")
public class ProjectCertificationInventoryDutyEnginnerEOPlatform implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**类别*/
@Excel(name = "类别", width = 20)
@ApiModelProperty(value = "类别")
private String category;
/**检验项目*/
@Excel(name = "检验项目", width = 20)
@ApiModelProperty(value = "检验项目")
private String inspectionItem;
/**配置项*/
@ApiModelProperty(value = "配置项")
@Dict(dicCode = "ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4")
private String configItem;
/**WVTA ID*/
@Excel(name = "WVTA ID", width = 20)
@ApiModelProperty(value = "WVTA ID")
private String wvtaId;
/**标准编号*/
@Excel(name = "标准编号", width = 20)
@ApiModelProperty(value = "标准编号")
private String serialNumber;
/**责任领域*/
@ApiModelProperty(value = "责任领域")
private String dutyTerritory;
/**责任领域名称**/
@Excel(name = "责任领域", width = 20)
@TableField(exist = false)
private String dutyTerritoryName;
/**责任领域名称-英文**/
@TableField(exist = false)
private String dutyTerritoryNameEn;
/**工程接口人*/
@ApiModelProperty(value = "工程接口人")
private String sdt;
/**工程接口人名称**/
@Excel(name = "工程接口人", width = 20)
@TableField(exist = false)
private String sdtName;
/**责任人*/
@ApiModelProperty(value = "责任人")
private String dutyPerson;
/**责任人名称**/
@Excel(name = "责任人", width = 20)
@TableField(exist = false)
private String dutyPersonName;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "交付物模板", width = 20)
private String deliverableTemplateName;
/**交付物类型*/
@ApiModelProperty(value = "交付物类型")
private String deliverableType;
// 交付物类型名称
@Excel(name = "交付物类型", width = 20)
@TableField(exist = false)
private String deliverableTypeName;
// 交付物类型名称-英文
@TableField(exist = false)
private String deliverableTypeNameEn;
/**交付物*/
// @Excel(name = "交付物", width = 15)
@ApiModelProperty(value = "交付物")
private String deliverable;
/**文档库id*/
// @Excel(name = "文档库id", width = 15)
@ApiModelProperty(value = "文档库id")
private String bussDocumentLibraryId;
/**交付结果*/
@Excel(name = "交付结果", width = 20)
@ApiModelProperty(value = "交付结果")
private String deliveryResult;
/**截止日期*/
@Excel(name = "截止日期", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "截止日期")
private Date endTime;
/**流程状态*/
@ApiModelProperty(value = "流程状态")
private String flowStatus;
// 流程状态展示名称
@Excel(name = "流程状态", width = 20)
@TableField(exist = false)
private String flowStatusName;
/**报告编号*/
// @Excel(name = "报告编号", width = 20)
@ApiModelProperty(value = "报告编号")
private String reportNumber;
/**产品型号*/
// @Excel(name = "产品型号", width = 20)
@ApiModelProperty(value = "产品型号")
private String productModel;
/**生产企业名称*/
// @Excel(name = "生产企业名称", width = 20)
@ApiModelProperty(value = "生产企业名称")
private String productionEnterpriseName;
/**认证进度*/
@ApiModelProperty(value = "认证进度")
private String certificationProgress;
/**认证进度展示名称**/
// @Excel(name = "认证进度", width = 20)
@TableField(exist = false)
private String certificationProgress_dictText;
// @Excel(name = "认证进度备注", width = 15)
@ApiModelProperty(value = "认证进度备注")
private String certificationProgressRemark;
/**项目库id*/
@ApiModelProperty(value = "项目库id")
private String projectLibraryId;
@TableField(exist = false)
private String cut;
@TableField(exist = false)
private String ids;
@TableField(exist = false)
private String roleCode;
/**值类型,对应SysCategoryValueTypeEnum中value**/
@TableField(exist = false)
private String valueType;
@TableField(exist = false)
private String excelName;
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
@TableField(exist = false)
private String endTimeStr;
@ApiModelProperty(value = "备注")
@Excel(name = "备注", width = 50)
private String remark;
}
@@ -1,24 +1,22 @@
package com.jero.modules.project.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
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 com.fasterxml.jackson.databind.annotation.JsonSerialize;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
@@ -258,7 +256,16 @@ public class ProjectCertificationInventoryEO implements Serializable {
@ApiModelProperty(value = "认证类型")
private String attestationType;
/**备注*/
@ApiModelProperty(value = "备注")
@Excel(name = "备注", width = 50)
private String remark;
/**一级责任领域**/
@TableField(exist = false)
private String firstLevelDutyTerritory;
@ApiModelProperty(value = "关联平台件数据")
@TableField(exist = false)
private List<ProjectCertificationInventoryEO> projectCertificationInventoryEOS;
}
@@ -0,0 +1,228 @@
package com.jero.modules.project.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
/**
* @Description: 项目库-认证清单表
* @Author: jero-boot
* @Date: 2023-03-03
* @Version: V1.0
*/
@Data
@TableName("project_certification_inventory")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="project_certification_inventory对象", description="项目库-认证清单表")
public class ProjectCertificationInventoryEOEnPlatform implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**类别*/
@Excel(name = "Category", width = 20)
@ApiModelProperty(value = "类别")
private String category;
/**检验项目*/
@Excel(name = "Inspection Items", width = 20)
@ApiModelProperty(value = "检验项目")
private String inspectionItem;
/**配置项*/
@ApiModelProperty(value = "配置项")
@Dict(dicCode = "ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4")
private String configItem;
/**认证类型*/
@Excel(name = "Certification Type", width = 20)
@ApiModelProperty(value = "认证类型")
@TableField(exist = false)
private String attestationTypeName;
/**WVTA ID*/
@Excel(name = "WVTA ID", width = 20)
@ApiModelProperty(value = "WVTA ID")
private String wvtaId;
/**标准编号*/
@Excel(name = "Standard No", width = 20)
@ApiModelProperty(value = "标准编号")
private String serialNumber;
/**责任领域*/
@ApiModelProperty(value = "责任领域")
private String dutyTerritory;
/**责任领域名称**/
@Excel(name = "Responsible Field", width = 20)
@TableField(exist = false)
private String dutyTerritoryName;
/**责任领域名称-英文**/
@TableField(exist = false)
private String dutyTerritoryNameEn;
/**工程接口人*/
@ApiModelProperty(value = "工程接口人")
private String sdt;
/**工程接口人名称**/
@Excel(name = "Eng. Interface", width = 20)
@TableField(exist = false)
private String sdtName;
/**责任人*/
@ApiModelProperty(value = "责任人")
private String dutyPerson;
/**责任人名称**/
@Excel(name = "Assignee", width = 20)
@TableField(exist = false)
private String dutyPersonName;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "Deliverable Template", width = 40)
private String deliverableTemplateName;
/**交付物类型*/
@ApiModelProperty(value = "交付物类型")
private String deliverableType;
// 交付物类型名称
@Excel(name = "Deliverable Type", width = 20)
@TableField(exist = false)
private String deliverableTypeName;
// 交付物类型名称-英文
@TableField(exist = false)
private String deliverableTypeNameEn;
/**交付物*/
// @Excel(name = "交付物", width = 15)
@ApiModelProperty(value = "交付物")
private String deliverable;
/**文档库id*/
// @Excel(name = "文档库id", width = 15)
@ApiModelProperty(value = "文档库id")
private String bussDocumentLibraryId;
/**交付结果*/
@Excel(name = "Deliverables Result", width = 20)
@ApiModelProperty(value = "交付结果")
private String deliveryResult;
/**截止日期*/
@Excel(name = "Due Date", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "截止日期")
private java.util.Date endTime;
/**流程状态*/
@ApiModelProperty(value = "流程状态")
private String flowStatus;
// 流程状态展示名称
@Excel(name = "Process Status", width = 20)
@TableField(exist = false)
private String flowStatusName;
/**报告编号*/
@Excel(name = "Report No", width = 20)
@ApiModelProperty(value = "报告编号")
private String reportNumber;
/**产品型号*/
@Excel(name = "Product Model", width = 20)
@ApiModelProperty(value = "产品型号")
private String productModel;
/**生产企业名称*/
@Excel(name = "Name Of Manufacturer", width = 40)
@ApiModelProperty(value = "生产企业名称")
private String productionEnterpriseName;
/**认证进度*/
@ApiModelProperty(value = "认证进度")
private String certificationProgress;
/**认证进度展示名称**/
@TableField(exist = false)
private String certificationProgress_dictText;
// @Excel(name = "认证进度备注", width = 15)
@ApiModelProperty(value = "认证进度备注")
private String certificationProgressRemark;
/**项目库id*/
@ApiModelProperty(value = "项目库id")
private String projectLibraryId;
@TableField(exist = false)
private String cut;
@TableField(exist = false)
private String ids;
@TableField(exist = false)
private String roleCode;
/**值类型,对应SysCategoryValueTypeEnum中value**/
@TableField(exist = false)
private String valueType;
@TableField(exist = false)
private String excelName;
// @Excel(name = "截止日期", width = 20, format = "yyyy-MM-dd")
@TableField(exist = false)
private String endTimeStr;
@ApiModelProperty(value = "备注")
@Excel(name = "Remark", width = 50)
private String remark;
}
@@ -0,0 +1,268 @@
package com.jero.modules.project.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
* @Description: 项目库-认证清单表
* @Author: jero-boot
* @Date: 2023-03-03
* @Version: V1.0
*/
@Data
@TableName("project_certification_inventory")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="project_certification_inventory对象", description="项目库-认证清单表")
public class ProjectCertificationInventoryEOPlatform implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private String sysOrgCode;
/**类别*/
@Excel(name = "类别", width = 20)
@ApiModelProperty(value = "类别")
private String category;
/**检验项目*/
@Excel(name = "检验项目", width = 20)
@ApiModelProperty(value = "检验项目")
private String inspectionItem;
/**配置项*/
@ApiModelProperty(value = "配置项")
@Dict(dicCode = "ren4_zheng4_qing1_dan1_-_pei4_zhi4_xiang4")
private String configItem;
/**认证类型名称**/
@Excel(name = "认证类型", width = 20)
@TableField(exist = false)
private String attestationTypeName;
/**WVTA ID*/
@Excel(name = "WVTA ID", width = 20)
@ApiModelProperty(value = "WVTA ID")
private String wvtaId;
/**标准编号*/
@Excel(name = "标准编号", width = 20)
@ApiModelProperty(value = "标准编号")
private String serialNumber;
/**责任领域*/
@ApiModelProperty(value = "责任领域")
private String dutyTerritory;
/**责任领域名称**/
@Excel(name = "责任领域", width = 20)
@TableField(exist = false)
private String dutyTerritoryName;
/**责任领域名称-英文**/
@TableField(exist = false)
private String dutyTerritoryNameEn;
/**责任部门*/
@ApiModelProperty(value = "责任部门")
private String dutyDepart;
/**工程接口人*/
@ApiModelProperty(value = "工程接口人")
private String sdt;
/**工程接口人名称**/
@Excel(name = "工程接口人", width = 20)
@TableField(exist = false)
private String sdtName;
/**责任人*/
@ApiModelProperty(value = "责任人")
private String dutyPerson;
/**责任人名称**/
@Excel(name = "责任人", width = 20)
@TableField(exist = false)
private String dutyPersonName;
/**交付物模板*/
@ApiModelProperty(value = "交付物模板")
private String deliverableTemplate;
/**交付物模板名称**/
@TableField(exist = false)
@Excel(name = "交付物模板", width = 20)
private String deliverableTemplateName;
/**交付物类型*/
@ApiModelProperty(value = "交付物类型")
private String deliverableType;
// 交付物类型名称
@Excel(name = "交付物类型", width = 20)
@TableField(exist = false)
private String deliverableTypeName;
// 交付物类型名称-英文
@TableField(exist = false)
private String deliverableTypeNameEn;
/**交付物*/
// @Excel(name = "交付物", width = 15)
@ApiModelProperty(value = "交付物")
private String deliverable;
/**文档库id*/
// @Excel(name = "文档库id", width = 15)
@ApiModelProperty(value = "文档库id")
private String bussDocumentLibraryId;
/**交付结果*/
@Excel(name = "交付结果", width = 20)
@ApiModelProperty(value = "交付结果")
private String deliveryResult;
/**截止日期*/
@Excel(name = "截止日期", width = 20, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "截止日期")
private Date endTime;
/**流程状态*/
@ApiModelProperty(value = "流程状态")
private String flowStatus;
// 流程状态展示名称
@Excel(name = "流程状态", width = 20)
@TableField(exist = false)
private String flowStatusName;
/**报告编号*/
@Excel(name = "报告编号", width = 20)
@ApiModelProperty(value = "报告编号")
private String reportNumber;
/**产品型号*/
@Excel(name = "产品型号", width = 20)
@ApiModelProperty(value = "产品型号")
private String productModel;
/**生产企业名称*/
@Excel(name = "生产企业名称", width = 20)
@ApiModelProperty(value = "生产企业名称")
private String productionEnterpriseName;
/**认证进度*/
@ApiModelProperty(value = "认证进度")
private String certificationProgress;
// 认证进度排序字段
@TableField(exist = false)
private String certificationProgressNumber;
/**认证进度展示名称**/
@TableField(exist = false)
private String certificationProgress_dictText;
// @Excel(name = "认证进度备注", width = 15)
@ApiModelProperty(value = "认证进度备注")
private String certificationProgressRemark;
/**项目库id*/
@ApiModelProperty(value = "项目库id")
private String projectLibraryId;
@TableField(exist = false)
private String cut;
@TableField(exist = false)
private String ids;
@TableField(exist = false)
private String roleCode;
/**值类型,对应SysCategoryValueTypeEnum中value**/
@TableField(exist = false)
private String valueType;
@TableField(exist = false)
private String excelName;
// @Excel(name = "*截止日期", width = 20, format = "yyyy-MM-dd")
@TableField(exist = false)
private String endTimeStr;
@TableField(exist = false)
private String reasonForReturn;
//排序1->正序 2->倒序
@TableField(exist = false)
private String orderBy;
//排序字段
@TableField(exist = false)
private String orderByField;
/**清单校核截止时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "清单校核截止时间")
private Date inventoryVerifyEndTime;
/**责任确认截止时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "责任确认截止时间")
private Date taskConfirmEndTime;
/**认证类型*/
@ApiModelProperty(value = "认证类型")
private String attestationType;
/**一级责任领域**/
@TableField(exist = false)
private String firstLevelDutyTerritory;
@ApiModelProperty(value = "关联平台件数据")
@TableField(exist = false)
private List<ProjectCertificationInventoryEOPlatform> projectCertificationInventoryEOS;
@ApiModelProperty(value = "备注")
@Excel(name = "备注", width = 50)
private String remark;
}
@@ -1,12 +1,10 @@
package com.jero.modules.project.entity;
import com.baomidou.mybatisplus.annotation.FieldStrategy;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
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;
@@ -17,6 +15,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
@@ -187,6 +186,10 @@ public class ProjectLawsInventoryEO implements Serializable {
@ApiModelProperty(value = "法规工程师名称")
private String regulationOwnerName;//法规工程师名称
@TableField(exist = false)
@ApiModelProperty(value = "法规工程师名称(前端指定要的)")
private String regulationOwnerIdName;//法规工程师名称前端指定要的
/**认证工程师id*/
@ApiModelProperty(value = "认证工程师id")
private String homologationEngineerId;
@@ -538,4 +541,13 @@ public class ProjectLawsInventoryEO implements Serializable {
/**一级责任领域**/
@TableField(exist = false)
private String firstLevelDutyTerritory;
@TableField(exist = false)
private String projectName;//项目名称
@TableField(exist = false)
private List<ProjectLawsInventoryEO> projectLawsInventoryEOS;
@TableField(exist = false)
private String platformIds;//平台件数据id
}
@@ -161,6 +161,112 @@ public class ProjectLibraryBase implements Comparable<ProjectLibraryBase> {
@TableField(exist = false)
private String projectNameCn;
@ApiModelProperty(value = "平台件数据标识,platform = YES,为平台件数据,platform为空是项目库数据")
private String platform;
//平台件项目库字段--------------------------------------------------------------------------------------------------------------
@ApiModelProperty(value = "功率")
private String power;
@ApiModelProperty(value = "生产商")
private String producer;
@ApiModelProperty(value = "责任部门")
private String dutyDepart;
@TableField(exist = false)
private String dutyDepartName;
@ApiModelProperty(value = "法规工程师")
private String regulationOwnerId;
@TableField(exist = false)
@ApiModelProperty(value = "法规工程师回显")
private String regulationOwnerIdName;
@ApiModelProperty(value = "工程接口人")
private String engineeringInterfacePerson;
@TableField(exist = false)
@ApiModelProperty(value = "工程接口人回显")
private String engineeringInterfacePersonName;
@ApiModelProperty(value = "名牌标签")
private String brandLabel;
@ApiModelProperty(value = "产品型号")
private String productModel;
@ApiModelProperty(value = "电芯生产企业")
private String cellEnterprise;
@ApiModelProperty(value = "总成生产企业")
private String assemblyEnterprise;
@ApiModelProperty(value = "零件号(国内)")
private String partNumberCn;
@ApiModelProperty(value = "零件号(国外)")
private String partNumberEn;
@ApiModelProperty(value = "24位备案码")
private String filingCode;
@ApiModelProperty(value = "供应商代码(1-3")
private String supplierCode;
@ApiModelProperty(value = "产品类型代码(4")
private String productTypeCode;
@ApiModelProperty(value = "电池类型代码(5")
private String batteryTypeCode;
@ApiModelProperty(value = "规格代码(6-7")
private String specificationCode;
@ApiModelProperty(value = "追溯代码(8")
private String traceabilityCode;
@ApiModelProperty(value = "生产也月日序列号")
private String ymdNumber;
@ApiModelProperty(value = "尺寸")
private String size;
@ApiModelProperty(value = "额定容量")
private String ratedCapacity;
@ApiModelProperty(value = "标称电压")
private String nominalVoltage;
@ApiModelProperty(value = "额定质量")
private String ratedMass;
@ApiModelProperty(value = "包含模块个数")
private String moduleNumber;
@ApiModelProperty(value = "模块串并联方式")
private String connectionType;
@ApiModelProperty(value = "所用模块或单体规格代码")
private String moduleSpecificationCode;
@ApiModelProperty(value = "冷却方式")
private String coolingMethod;
@ApiModelProperty(value = "备案完成时间")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
private java.util.Date filingCompletionTime;
@ApiModelProperty(value = "备注")
private String remark;
@TableField(exist = false)
private List<String> urlList;
@Override
public int compareTo(ProjectLibraryBase o) {
if (!this.getProjectName().equals(o.getProjectName())) {
@@ -32,8 +32,8 @@ public enum CertificationInventoryFlowStatusEnum {
RESULTS_TO_BE_SUBMITTED("结果待提交","Results to be submitted","Results to be submitted"),
//ENGINEER_RETURN("工程师退回","Engineer return","Engineer return"),
RESULTS_TO_BE_REVIEWED("结果待审查","Results to be reviewed","Results to be reviewed"),
REVIEW_AND_PASS("审查通过","Review and pass","Review and pass"),
REVIEW_AND_RETURN("审查退回","Review and return","Review and return"),
REVIEW_AND_PASS("审查通过","Approve","Review and pass"),
REVIEW_AND_RETURN("审查退回","Reject","Review and return"),
UNINVOLVED("不涉及","NA","NA"),
;
@@ -0,0 +1,45 @@
package com.jero.modules.project.enums;
/**
* 任务状态枚举类
*/
public enum FlowFlagEnum {
DESIGN("设计符合性流程状态","design"),
VERIFY("验证符合性流程状态","verify"),
;
String name;
String value;
private FlowFlagEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value) {
FlowFlagEnum[] values = values();
for (FlowFlagEnum taskStatusEnum : values) {
if (taskStatusEnum.value.equals(value)) {
return taskStatusEnum.name;
}
}
return null;
}
}
@@ -0,0 +1,66 @@
package com.jero.modules.project.enums;
import java.util.LinkedList;
import java.util.List;
/**
* 消息类型枚举类
*/
public enum FlowStateEnum {
INCONFORMITY("不符合","Non-Compliance","Non-Compliance"),
TO_TRACK("待追踪","To be tracked","To be tracked"),
CONFORMITY("符合","Compliance","Compliance"),
UNINVOLVED("不涉及","NA","NA"),
LIST_TO_BE_RELEASED("清单待发布","List to be released","List to be released"),
LIST_TO_BE_CHECKED("任务待发起","Task to be initiated","List to be checked"),
REGULATORY_ENGINEER_RETURNS("法规工程师退回","Regulatory engineer returns","Regulatory engineer returns"),
REFUSAL_OF_RESPONSIBLE_PERSON("责任人拒绝","Refusal of responsible person","Duty Person Rejected"),
TASK_TO_BE_CONFIRMED("任务待确认","Task to be confirmed","Task to be confirmed"),
RESULTS_TO_BE_SUBMITTED("结果待提交","Results to be submitted","Results to be submitted"),
RESULTS_TO_BE_REVIEWED("结果待审查","Results to be reviewed","Results to be reviewed"),
;
String nameCn;
String nameEn;
String value;
private FlowStateEnum(String nameCn, String nameEn, String value) {
this.nameCn = nameCn;
this.nameEn = nameEn;
this.value = value;
}
public String getNameCn() {
return nameCn;
}
public void setNameCn(String nameCn) {
this.nameCn = nameCn;
}
public String getNameEn() {
return nameEn;
}
public void setNameEn(String nameEn) {
this.nameEn = nameEn;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static List<String> getValueInfo() {
List<String> result = new LinkedList<>();
FlowStateEnum[] values = values();
for (FlowStateEnum flowStateEnum : values) {
result.add(flowStateEnum.getValue());
}
return result;
}
}
@@ -73,7 +73,7 @@ public class PrehomoJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("prehomo流程,定时任务开启 =====================================================");
/*
//查询出已经启动了prehomo流程的数据 并且流程没有结束
QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
queryProjectTaskInventoryWrapper.isNotNull("prehomo_p_id");
@@ -367,5 +367,7 @@ public class PrehomoJob implements Job {
}
}
log.info("prehomo流程,定时任务结束 =====================================================");
*/
}
}
@@ -0,0 +1,17 @@
package com.jero.modules.project.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.project.entity.LawsInventoryPlatformEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 车型项目库法规清单关联平台件表
* @Author: jero-boot
* @Date: 2023-09-19
* @Version: V1.0
*/
public interface LawsInventoryPlatformEOMapper extends BaseMapper<LawsInventoryPlatformEO> {
}
@@ -1,11 +1,11 @@
package com.jero.modules.project.mapper;
import java.util.List;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.project.entity.ProblemManagementEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.project.entity.ProblemManagementEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
/**
* @Description: 问题管理
@@ -17,4 +17,6 @@ public interface ProblemManagementEOMapper extends BaseMapper<ProblemManagementE
List<ProjectLibraryBase> queryByIds(@Param("ids") String ids);
List<ProjectLibraryBase> queryByIdsProblem(@Param("ids") String ids);
}
@@ -1,7 +1,6 @@
package com.jero.modules.project.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.project.entity.ProjectLibraryBase;
import org.apache.ibatis.annotations.Param;
@@ -25,6 +24,8 @@ public interface ProjectLibraryBaseMapper extends BaseMapper<ProjectLibraryBase>
/**根据id查询*/
List<ProjectLibraryBase> queryById(String id);
List<ProjectLibraryBase> queryByIdFlow(String id);
ProjectLibraryBase selectProjectName(@Param("projectLibraryId") String projectLibraryId);
List<ProjectLibraryBase> getListByIds(@Param("idList") List<String> idList);
@@ -0,0 +1,14 @@
<?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.project.mapper.LawsInventoryPlatformEOMapper">
<resultMap id="LawsInventoryPlatformEOResultMap" type="com.jero.modules.project.entity.LawsInventoryPlatformEO">
<id column="id" property="id" />
<result column="create_by" property="createBy" />
<result column="create_time" property="createTime" />
<result column="update_by" property="updateBy" />
<result column="update_time" property="updateTime" />
<result column="sys_org_code" property="sysOrgCode" />
<result column="laws_inventory_id" property="lawsInventoryId" />
<result column="platform_laws_inventory_id" property="platformLawsInventoryId" />
</resultMap>
</mapper>
@@ -31,6 +31,8 @@
pni.project_name,
plb.target_market,
plb.project_version,
plb.project_name_id,
plb.platform,
pyni.year_name,
pli.serial_number,
pli.title,
@@ -62,6 +64,7 @@
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id
where
1=1
<!--<if test="ncrTrackVO.projectLibraryId != null and ncrTrackVO.projectLibraryId != ''">
plb.id =#{ncrTrackVO.projectLibraryId}
and
@@ -90,7 +93,7 @@
(pli.design_duty_id =#{ncrTrackVO.duty} or pli.prehomo_duty_id =#{ncrTrackVO.duty} or pli.verify_duty_id =#{ncrTrackVO.duty})
and
</if>-->
(
and(
design_flow_status =#{ncrTrackVO.inconformity}
or verify_flow_status =#{ncrTrackVO.inconformity}
)
@@ -104,7 +107,6 @@
and (pli.regulation_owner_id =#{ncrTrackVO.userId}
or pli.homologation_engineer_id =#{ncrTrackVO.userId}
or pli.engineering_interface_person =#{ncrTrackVO.userId}
or ptid.user_id =#{ncrTrackVO.userId}
)
</if>
</if>
@@ -161,6 +163,7 @@
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id
where
<if test="ncrTrackVO.projectLibraryId != null and ncrTrackVO.projectLibraryId != ''">
plb.id =#{ncrTrackVO.projectLibraryId}
and
@@ -186,8 +189,8 @@
and
</if>
(
design_flow_status =#{ncrTrackVO.inconformity} or design_flow_status =#{ncrTrackVO.track}
or verify_flow_status =#{ncrTrackVO.inconformity} or verify_flow_status =#{ncrTrackVO.track}
design_flow_status =#{ncrTrackVO.inconformity}
or verify_flow_status =#{ncrTrackVO.inconformity}
)
and pli.duty_territory in
<foreach collection="list" index="index" item="item" open="(" close=")" separator=",">
@@ -54,11 +54,50 @@
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
<where>
<if test="ids != null and ids !=''">
plb.id in
and plb.id in
<foreach collection="ids.split(',')" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
</select>
<select id="queryByIdsProblem" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
select
plb.id,
plb.project_name_id,
pni.project_name as project_name,
pyni.id as year_name_id,
pyni.year_name,
plb.target_market,
plb.project_status,
plb.studio_engineer,
studiouser.username as studio_engineer_name,
plb.certification_engineer,
plb.vehicle_platform,
plb.digital_platform,
plb.ipd_info,
plb.vehicle_development_plan,
plb.attestation_plan,
plb.create_by,
plb.create_time,
plb.sys_org_code,
plb.update_by,
plb.update_time,
plb.parent_id,
plb.project_version,
plb.platform
from project_library_base as plb
left join project_name_info as pni on plb.project_name_id=pni.id
left join sys_user as studiouser on plb.studio_engineer=studiouser.id
left join project_year_name_info as pyni on plb.year_name_id=pyni.id
<where>
<if test="ids != null and ids !=''">
plb.id in
<foreach collection="ids.split(',')" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
</where>
order by plb.platform
</select>
</mapper>
@@ -52,6 +52,8 @@
plb.sort,
plb.flag,
plb.brand,
plb.power,
plb.producer,
sdi.item_text brandText,
sdi.en_name brandTextEn
from project_library_base as plb
@@ -66,11 +68,16 @@
<include refid="select_item"/>
<where>
1=1
<if test="params.flag != 'quote'">
and plb.platform is null
</if>
<if test="params.projectName != null and params.projectName != ''">
<!--搜索条件:项目名称,包含%,单独搜索-->
<choose>
<when test='params.projectName != null and params.projectName != "" and params.projectName.contains("%")'>
( pni.project_name like '%1%%' escape '1' or pni.project_name like '%1%%' escape '1')
and ( pni.project_name like '%1%%' escape '1' or pni.project_name like '%1%%' escape '1')
</when>
<otherwise>
<!--(pni.project_name like concat('%',#{params.projectName},'%') or pyni.year_name like concat('%',#{params.projectName},'%'))-->
@@ -127,14 +134,23 @@
and plb.brand = #{params.brand}
</if>
</where>
order by plb.sort desc, plb.create_time desc
<if test="params.flag = 'quote'">
order by plb.platform, plb.sort desc, plb.create_time desc
</if>
<if test="params.flag != 'quote'">
order by plb.sort desc, plb.create_time desc
</if>
</select>
<select id="queryMaimList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
<include refid="select_item"/>
<where>
plb.platform is null
and(
parent_id = '' or parent_id is null
)
</where>
order by plb.create_time desc
</select>
@@ -206,6 +222,7 @@
<include refid="select_item"/>
<where>
plb.platform is null
<if test="projectLibraryBase.projectName != null and projectLibraryBase.projectName != ''">
<!--搜索条件:项目名称,包含%,单独搜索-->
<choose>
@@ -274,7 +291,16 @@
<include refid="select_item"/>
<where>
<if test="id != null and id != '' ">
plb.id=#{id}
and plb.id=#{id}
</if>
</where>
order by plb.create_time desc
</select>
<select id="queryByIdFlow" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
<include refid="select_item"/>
<where>
<if test="id != null and id != '' ">
and plb.id=#{id}
</if>
</where>
order by plb.create_time desc
@@ -288,7 +314,7 @@
LEFT JOIN project_name_info pni ON plb.project_name_id = pni.id
LEFT JOIN project_year_name_info pyni ON plb.year_name_id = pyni.id
WHERE
plb.id = #{projectLibraryId}
plb.id = #{projectLibraryId} and platform is null
</select>
<select id="getListByIds" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
@@ -298,6 +324,7 @@
<foreach collection="idList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
and plb.platform is null
order by plb.create_time desc
</select>
</mapper>
@@ -34,7 +34,8 @@
LEFT JOIN project_name_info AS pni ON plb.project_name_id = pni.id
LEFT JOIN project_year_name_info AS pyni ON plb.year_name_id = pyni.id
LEFT JOIN sys_dict_item AS sdi ON sdi.item_value = plb.target_market
where plb.parent_id = #{parentId}
where
plb.parent_id = #{parentId}
or plb.id = #{id}
</select>
</mapper>
@@ -0,0 +1,67 @@
package com.jero.modules.project.service;
import com.jero.modules.project.entity.LawsInventoryPlatformEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 车型项目库法规清单关联平台件表
* @Author: jero-boot
* @Date: 2023-09-19
* @Version: V1.0
*/
public interface ILawsInventoryPlatformEOService extends IService<LawsInventoryPlatformEO> {
/**
* 保存
*
* @param lawsInventoryPlatformEO
* @return
*/
void add(LawsInventoryPlatformEO lawsInventoryPlatformEO);
/**
* 批量保存
* @param lawsInventoryPlatformEOList
*/
void addBatch(List<LawsInventoryPlatformEO> lawsInventoryPlatformEOList);
/**
* 更新
*
* @param lawsInventoryPlatformEO
* @return
*/
void editById(LawsInventoryPlatformEO lawsInventoryPlatformEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
LawsInventoryPlatformEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<LawsInventoryPlatformEO> queryList();
}
@@ -4,10 +4,9 @@ import com.alibaba.fastjson.JSONObject;
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.common.api.vo.Result;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysRole;
@@ -339,4 +338,11 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
* @return
*/
Result<?> matchRelevantPeople(Map<String, Object> params);
/**
* 勾选认证清单进行关联平台件
* @param params
* @return
*/
String listPlatform(Map<String, Object> params);
}
@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.itextpdf.text.DocumentException;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
@@ -323,4 +322,6 @@ public interface IProjectLawsInventoryEOService extends IService<ProjectLawsInve
*/
void replacementUser(JSONObject json);
int checkUserRole(String projectLibraryId, String currentUserId, String lawsInventoryId);
List<ProjectLawsInventoryEO> queryPlatformList(String lawsInventoryId,String flowFlag,String cut);
}
@@ -70,6 +70,8 @@ public interface IProjectLibraryBaseService extends IService<ProjectLibraryBase>
*/
List<ProjectLibraryBase> queryById(String id,String cut);
List<ProjectLibraryBase> queryByIdFlow(String id,String cut);
/**
* 列表查询
*
@@ -83,6 +85,20 @@ public interface IProjectLibraryBaseService extends IService<ProjectLibraryBase>
* @return
*/
List<ProjectLibraryBase> queryPageList(Map<String, Object> params);
/**
* 勾选法规清单进行关联平台件
* @param params
* @return
*/
Map<String,Object> listPlatform(Map<String, Object> params);
/**
* 不勾选法规清单进行关联平台件
* @param params
* @return
*/
Map<String,Object> listPlatformAll(Map<String, Object> params);
// IPage<ProjectLibraryBase> queryPageList(Map<String, Object> params);
/**
@@ -75,6 +75,8 @@ public interface IProjectLibraryStatisticsService {
*/
Map<String, Object> getPartCertificationProgressStatisticsGroupByTerritory(List<ProjectCertificationInventoryEO> datas, Map<String, Object> params);
Map<String, Object> getPartCertificationProgressStatisticsGroupByTerritoryTemp(List<ProjectCertificationInventoryEO> datas, Map<String, Object> params);
/**
* 获取认证参数收集-统计信息
* @param datas
@@ -82,4 +84,6 @@ public interface IProjectLibraryStatisticsService {
* @return
*/
Map<String, Object> getParameterCollectingStatisticsGroupByTerritory(List<ParamsCollectManifestEO> datas, Map<String, Object> params);
Map<String, Object> getParameterCollectingStatisticsGroupByTerritoryExport(List<ParamsCollectManifestEO> datas, Map<String, Object> params);
}
@@ -14,8 +14,21 @@ import com.jero.modules.dummy.util.ListDiff;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.oss.entity.OSSFile;
import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.project.entity.*;
import com.jero.modules.project.enums.*;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectLibraryRoleRelEO;
import com.jero.modules.project.entity.ProjectRelatedPersonnel;
import com.jero.modules.project.entity.ProjectUserPermission;
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
import com.jero.modules.project.enums.InventoryAffirmNodeEnum;
import com.jero.modules.project.enums.JumpLinkEnum;
import com.jero.modules.project.enums.PermissionDescriptionEnum;
import com.jero.modules.project.enums.ProjectInventoryFieldEnum;
import com.jero.modules.project.enums.ProjectMessageEnum;
import com.jero.modules.project.enums.ProjectRoleEnum;
import com.jero.modules.project.enums.ProjectUserLocationEnum;
import com.jero.modules.project.enums.RoleRelModelTypeEnum;
import com.jero.modules.project.enums.TaskStatusEnum;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryRoleRelEOService;
import com.jero.modules.project.service.IProjectUserPermissionService;
@@ -43,14 +56,20 @@ import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.SerializationUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.xmlbeans.impl.xb.xsdschema.Public;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
/**
@@ -1248,6 +1267,243 @@ public class ProjectLawsInventoryEOEditServiceImpl {
throw new JeroBootException("该用户没有权限操作该数据!");
}
}
public void editByIdPlatform(ProjectLawsInventoryEO projectLawsInventoryEO) {
Date now = new Date();
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// boolean checkResult = checkData(projectLawsInventoryEO.getProjectLibraryId(), currentUser.getId(), projectLawsInventoryEO.getId());
// if (checkResult) {
QueryWrapper<ProjectLawsInventoryEO> oldPliQueryWrap = new QueryWrapper<>();
oldPliQueryWrap.lambda().eq(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId());
List<ProjectLawsInventoryEO> oldPliEoList = projectLawsInventoryEOService.list(oldPliQueryWrap);
this.updateProjectLawsInventorySendMessage(projectLawsInventoryEO);
// 根据法规清单id获取该法规清单在待办中心的任务明细
List<String> oldPliEoIdList = oldPliEoList.stream().map(ProjectLawsInventoryEO::getId).distinct().collect(Collectors.toList());
QueryWrapper<ProcessInfoDetailEO> pidEoQueryWrap = new QueryWrapper<>();
pidEoQueryWrap.lambda().in(ProcessInfoDetailEO::getProjectLawsInventoryId, oldPliEoIdList);
List<ProcessInfoDetailEO> pidEoList = this.processInfoDetailEOService.list(pidEoQueryWrap);
if (CollectionUtils.isNotEmpty(pidEoList)) {
// 处理编辑法规工程师的逻辑
this.updateRegulationOwner(projectLawsInventoryEO, oldPliEoList, pidEoList);
// 处理编辑责任人的逻辑
this.updateDutyPerson(projectLawsInventoryEO, oldPliEoList, pidEoList);
}
// 处理修改设计或验证符合性截止日期的逻辑
this.updateDesignOrVerifyEndTime(projectLawsInventoryEO, oldPliEoList);
projectLawsInventoryEO.setUpdateTime(now);
ProjectLawsInventoryEO projectLawsInventoryEOCopy = SerializationUtils.clone(projectLawsInventoryEO);//复制
//更新log
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String username = sysUser.getUsername();
String contentLog = username + "编辑了清单中的“" + projectLawsInventoryEO.getSerialNumber() + "”:</br>";
String enContentLog = username + " edited the “" + projectLawsInventoryEO.getSerialNumber() + "” in the list:</br>";
List<ProjectLawsInventoryEO> infoEOList = new ArrayList<>();
infoEOList.add(projectLawsInventoryEO);
List<ProjectLawsInventoryEO> infoEOListCopy = new ArrayList<>();
infoEOListCopy.add(projectLawsInventoryEOCopy);
//查询数据库里原来的数据
QueryWrapper<ProjectLawsInventoryEO> queryWrapper = new QueryWrapper<>();
List<ProjectLawsInventoryEO> dataList = projectLawsInventoryEOService.list(queryWrapper.eq("id", projectLawsInventoryEO.getId()));
List<ProjectLawsInventoryEO> dataListCopy = DeepCopyListUtil.depCopy(dataList);
LambdaUpdateWrapper<ProjectLawsInventoryEO> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.in(ProjectLawsInventoryEO::getId, projectLawsInventoryEO.getId());
setDateNull(projectLawsInventoryEO, updateWrapper);
//保存
projectLawsInventoryEOService.update(projectLawsInventoryEO, updateWrapper);
// saveOrUpdate(projectLawsInventoryEO);
//获取编辑中的责任领域
List<String> dutyTerritoryList = new ArrayList<>();
dutyTerritoryList = Arrays.asList(projectLawsInventoryEO.getDutyTerritory().split(","));
dutyTerritoryList = dutyTerritoryList.stream().distinct().collect(Collectors.toList());
//获取当前的projectLibrartId
String projectLibrartId = projectLawsInventoryEO.getProjectLibraryId();
String cut = projectLawsInventoryEO.getCut();
Map<String, Object> params = new HashMap<>();
params.put("projectLibraryId", projectLibrartId);
params.put("userId", currentUser.getId());
params.put("modelType", RoleRelModelTypeEnum.LAWS_INVENTORY.getValue());
ProjectLibraryRoleRelEO projectLibraryRoleRelEO = projectLibraryRoleRelEOService.queryByProjectLibraryIdAndUserId(params);
String roleCode1 = projectLibraryRoleRelEO.getRoleCode();
//分别获取当前编辑中的设计符合性和认证符合性责任人
List<String> designDutyIdList = new ArrayList<>();
designDutyIdList = Arrays.asList(projectLawsInventoryEO.getDesignDutyId().split(","));
List<String> verifyDutyIdList = new ArrayList<>();
verifyDutyIdList = Arrays.asList(projectLawsInventoryEO.getVerifyDutyId().split(","));
//allDutyList 为法规工程师中验证符合性和确认符合中的责任人
List<String> allDutyList = new ArrayList<>();
allDutyList.addAll(designDutyIdList);
allDutyList.addAll(verifyDutyIdList);
allDutyList = allDutyList.stream().distinct().collect(Collectors.toList());
//获取相关责任领域下的和projectLibrartId的相关人员名单的信息
List<ProjectRelatedPersonnel> projectRelatedPersonnelList = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritoy(projectLibrartId, dutyTerritoryList);
List<String> allList = new ArrayList<>();
List<String> enginnerList = new ArrayList<>();
List<String> lawEnginnerList = new ArrayList<>();
List<String> enginnerLawSetList = new ArrayList<>();
List<String> enginnerAttSetList = new ArrayList<>();
//根据相关人员名单获取的工程接口人
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
String enginneringInterfacePerson = relatedPersonnel.getEngineeringInterfacePerson();
if (!StringUtils.isEmpty(enginneringInterfacePerson)) {
enginnerList = Arrays.stream(enginneringInterfacePerson.split(",")).collect(Collectors.toList());
allList.addAll(enginnerList);
}
}
//获取相关人员名单中的法规工程师
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
String lawEngineer = relatedPersonnel.getLawEngineer();
if (!StringUtils.isEmpty(lawEngineer)) {
lawEnginnerList = Arrays.stream(lawEngineer.split(",")).collect(Collectors.toList());
allList.addAll(lawEnginnerList);
}
}
//获取相关人员名单中的工程接口-法规工程师设置
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
String engineerLawSet = relatedPersonnel.getEngineerLawSet();
if (!StringUtils.isEmpty(engineerLawSet)) {
enginnerLawSetList = Arrays.stream(engineerLawSet.split(",")).collect(Collectors.toList());
allList.addAll(enginnerLawSetList);
}
}
//获取相关人员名单中的工程接口-认证工程师设置
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
String engineerAttSet = relatedPersonnel.getEngineerAttSet();
if (!StringUtils.isEmpty(engineerAttSet)) {
enginnerAttSetList = Arrays.stream(engineerAttSet.split(",")).collect(Collectors.toList());
allList.addAll(enginnerAttSetList);
}
}
//获取当前项目库id的studio工程师和认证工程师
List<String> studionList = new ArrayList<>();
List<String> certificationEngineerList = new ArrayList<>();
List<ProjectLibraryBase> projectLibraryBases = projectLibraryBaseService.queryById(projectLibrartId, cut);
for (ProjectLibraryBase projectLibraryBase : projectLibraryBases) {
studionList.add(projectLibraryBase.getStudioEngineer());
String certificationEngineer = projectLibraryBase.getCertificationEngineer();
if (!StringUtils.isEmpty(certificationEngineer)) {
certificationEngineerList = Arrays.stream(certificationEngineer.split(",")).collect(Collectors.toList());
allList.addAll(certificationEngineerList);
}
}
allList = allList.stream().filter(all -> {
return StringUtils.isNotBlank(all);
}).distinct().collect(Collectors.toList());
/*
for(String all : allList){
if(all.equals("")){
allList.remove(all);
}
}
*/
//遍历所有人alllist中是否包含责任人,如果包含不用操作
//-------如果不包含,再去判断当前用户的角色是studio法规还是认证
for (ProjectRelatedPersonnel relatedPersonnel : projectRelatedPersonnelList) {
if (allList.size() > 0) {
for (String allDuty : allDutyList) {
String dutyPerson = allDuty;
if (StringUtils.isNotEmpty(dutyPerson) && !allList.contains(dutyPerson) && StringUtils.isNotEmpty(roleCode1)) {
if (roleCode1.equals(com.jero.modules.project.enums.ProjectRoleEnum.STUDIO_ENGINEER.getValue())) {
if (relatedPersonnel.getEngineeringInterfacePerson() != null) {
String engineeringInterfacePerson = dutyPerson + "," + relatedPersonnel.getEngineeringInterfacePerson();
relatedPersonnel.setEngineeringInterfacePerson(engineeringInterfacePerson);
} else {
relatedPersonnel.setEngineeringInterfacePerson(dutyPerson);
}
} else if (roleCode1.equals(com.jero.modules.project.enums.ProjectRoleEnum.REGULATI_ENGINEER.getValue())) {
if (relatedPersonnel.getEngineerLawSet() != null) {
String engineerLawSet = dutyPerson + "," + relatedPersonnel.getEngineerLawSet();
relatedPersonnel.setEngineerLawSet(engineerLawSet);
} else {
relatedPersonnel.setEngineerLawSet(dutyPerson);
}
} else if (roleCode1.equals(com.jero.modules.project.enums.ProjectRoleEnum.HOMOLOGATION_ENGINEER.getValue())) {
if (relatedPersonnel.getEngineerAttSet() != null) {
String engineerAttSet = dutyPerson + "," + relatedPersonnel.getEngineerAttSet();
relatedPersonnel.setEngineerAttSet(engineerAttSet);
} else {
relatedPersonnel.setEngineerAttSet(dutyPerson);
}
}
}
}
}
}
this.projectRelatedPersonnelService.updateBatchById(projectRelatedPersonnelList);
//翻译-中文
translateData(infoEOList);
translateData(dataList);
//翻译-英文
translateDataToEn(infoEOListCopy);
translateDataToEn(dataListCopy);
//比对不同字段
Map<String, String> infoDiff = ListDiff.compareObject(dataList.get(0), projectLawsInventoryEO);
Map<String, String> infoDiffEn = ListDiff.compareObject(dataListCopy.get(0), projectLawsInventoryEOCopy);
//设置更新log
setContentLog(infoDiff, contentLog, infoDiffEn, enContentLog, projectLawsInventoryEO.getProjectLibraryId());
//验证用户是否是该法规上级 项目库的studio 如果是则同步更新流程
int roleCode = projectLawsInventoryEOService.checkUserRole(projectLawsInventoryEO.getProjectLibraryId(), currentUser.getId(), "");
if (StringUtils.equals(String.valueOf(roleCode), ProjectRoleEnum.STUDIO_ENGINEER.getValue())) {
//更新流程信息
projectLawsInventoryEOService.updateFlowInfo(projectLawsInventoryEO);
}
//设置权限 先删后加
List<ProjectUserPermission> adds = new ArrayList<>();
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getRegulationOwnerId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getRegulationOwnerId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_REGULATION.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getHomologationEngineerId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getHomologationEngineerId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_HOMOLOGATION.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getEngineeringInterfacePerson())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getEngineeringInterfacePerson(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_INTERFACE.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignInitiatorId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_INITIATOR.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getDesignDutyId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_DESIGN_DUTY.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoInitiatorId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoInitiatorId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_INITIATOR.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getPrehomoDutyId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getPrehomoDutyId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_PREHOMO_DUTY.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyInitiatorId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyInitiatorId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_INITIATOR.getValue());
}
if (ObjectUtils.isNotEmpty(projectLawsInventoryEO.getVerifyDutyId())) {
setProjectLawsInventoryPermission(projectLawsInventoryEO.getVerifyDutyId(), projectLawsInventoryEO.getProjectLibraryId(), projectLawsInventoryEO.getId(), now, adds, ProjectUserLocationEnum.PROJECT_LAWS_INVENTORY_VERIFY_DUTY.getValue());
}
if (ObjectUtils.isNotEmpty(adds)) {
projectUserPermissionService.saveBatch(adds);
}
// }
// else {
// throw new JeroBootException("该用户没有权限操作该数据!");
// }
}
/**
* 发送消息

Some files were not shown because too many files have changed in this diff Show More