Merge remote-tracking branch 'origin/dev_third_stage' into dev_third_stage

This commit is contained in:
zyx.net
2022-09-07 11:57:13 +08:00
42 changed files with 670 additions and 144 deletions
@@ -79,7 +79,7 @@ ALTER TABLE `laws_weilai`.`params_report_config_data`
ALTER TABLE `laws_weilai`.`params_report`
ADD COLUMN `params_template_publish_version` int(11) NULL DEFAULT NULL COMMENT '对应参数模板发布版本' AFTER `old_params_manifest_id`;
-- 法规月报管理表
-- 法规月报管理表(生成环境已同步)
CREATE TABLE `laws_monthly_report_manage` (
`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 '创建人',
@@ -94,6 +94,91 @@ ALTER TABLE `laws_weilai`.`params_report`
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- 法规月报标题模板(生成环境已同步)
CREATE TABLE `laws_monthly_report_title_template` (
`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 '所属部门',
`parent_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '父id',
`title_cn` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '中文标题',
`title_en` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '英文标题',
`sort` int(10) NULL DEFAULT NULL COMMENT '排序',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- 法规月报填写(生成环境已同步)
CREATE TABLE `laws_monthly_report_write` (
`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 '所属部门',
`month` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '月份',
`memories_chapter` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '章节目录',
`content_template` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '内容模板',
`title_cn` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '中文标题',
`title_en` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '英文标题',
`technology_territory` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '相关领域',
`apply_car` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '适用车型',
`apply_scope` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '适用范围',
`state` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '状态',
`use_method` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '用法',
`implement_car` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实施车型',
`issue_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发布日期',
`new_car_implement_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '新车型实施日期',
`production_car_implement_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '在产车实施日期',
`content_cn` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主要内容中文',
`content_en` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '主要内容英文',
`work_progress_cn` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'NIO工作进展中文',
`work_progress_en` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'NIO工作进展英文',
`laws_contact` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '法规联系人',
`link` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '链接',
`export_state` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '导出状态',
`related_areas_cn` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '相关领域中文',
`related_areas_en` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '相关领域英文',
`source_cn` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源中文',
`time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '日期',
`source_en` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '来源英文',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- 法规月报新征求意见模板表(生成环境已同步)
CREATE TABLE `new_opinion_template` (
`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_monthly_report_write_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '月报填写表id',
`plan_number_cn` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '计划号中文',
`standard_name_cn` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准名称中文',
`standard_name_en` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准名称英文',
`expiration_date` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '征求意见截止日期',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- 法规月报新发布标准模板表(生成环境已同步)
CREATE TABLE `new_standard_template` (
`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_monthly_report_write_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '月报填写表id',
`standard_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准编号',
`standard_name_cn` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准名称中文',
`standard_name_en` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标准名称英文',
`issue_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '发布日期',
`implement_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '实施日期',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
-- 参数清单表 修改字段长度
ALTER TABLE `laws_weilai`.`params_manifest`
MODIFY COLUMN `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '标题' AFTER `sys_org_code`;
@@ -999,3 +1084,8 @@ COMMENT='清单确认-拒绝原因表'
ROW_FORMAT=DYNAMIC
;
-- 增加 中国台湾 国旗数据 2022-09-06
INSERT INTO `laws_weilai`.`country_national_flag` (`id`, `create_by`, `create_time`, `update_by`, `update_time`, `sys_org_code`, `country_name_cn`, `country_name_en`, `national_flag_id`, `national_flag_url`) VALUES ('28', NULL, NULL, NULL, NULL, NULL, '中国台湾', 'Tai Wan China', NULL, '/jero-boot/nationalFlag/TaiWanChina.png');
-- 增加 中国台湾 数据字典数据 2022-09-06
INSERT INTO `laws_weilai`.`sys_dict_item` (`id`, `dict_id`, `item_text`, `item_value`, `description`, `sort_order`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `is_tag_dict`, `is_read_only`, `attribute_type`, `del_flag`, `en_name`) VALUES ('1567085557701386242', '1493782108399820801', '中国台湾', '96d49ba5797d4791906ce2baee87d4bc', '中国台湾', 1, 1, 'admin', '2022-09-06 17:41:27', 'admin', '2022-09-06 17:41:35', 1, NULL, NULL, '0', 'Tai Wan China');
@@ -95,6 +95,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/sys/common/download/**", "anon");//文件预览
filterChainDefinitionMap.put("/sys/split/file/**", "anon");//图片预览
filterChainDefinitionMap.put("/generic/**", "anon");//pdf预览需要文件
filterChainDefinitionMap.put("/document/bussDocumentLibraryEO/updateES", "anon");//编辑ES数据
filterChainDefinitionMap.put("/", "anon");
filterChainDefinitionMap.put("/doc.html", "anon");
filterChainDefinitionMap.put("/**/*.js", "anon");
@@ -155,6 +156,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/lark/larkEventSubscriptionConfig", "anon"); //飞书调用接口,事件订阅配置。
filterChainDefinitionMap.put("/lark/larkCardMessageConfig", "anon"); //飞书调用接口,卡片消息配置。
filterChainDefinitionMap.put("/sys/user/querySysUserListByIdList", "anon"); // 工作流根据用户idList获取用户信息接口
filterChainDefinitionMap.put("/project/projectTaskInventoryConditionAssessmentEO/initConditionAssessment", "anon"); // 初始化项目当前状态数据接口
// 添加自己的过滤器并且取名为jwt
Map<String, Filter> filterMap = new HashMap<String, Filter>(1);
@@ -75,7 +75,7 @@ public class PDFUtils {
brush.getGraphics().save();
brush.getGraphics().translateTransform((float) brush.getSize().getWidth() / 1.5, (float) brush.getSize().getHeight() / 3);
brush.getGraphics().rotateTransform(-45);
brush.getGraphics().drawString(watermark, new PdfFont(PdfFontFamily.Helvetica, 10),
brush.getGraphics().drawString(watermark, new PdfFont(PdfFontFamily.Times_Roman, 10),
PdfBrushes.getViolet(), 0 , 0 , new PdfStringFormat(PdfTextAlignment.Center));
brush.getGraphics().restore();
brush.getGraphics().setTransparency(1);
@@ -2250,7 +2250,12 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
try {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String issueTime = (String) map.get("issue_time");
String issueTime = "";
if(ObjectUtils.isNotEmpty(map.get("es_update_flag")) && ObjectUtils.isNotEmpty(map.get("issue_time"))){
map.put("issue_time",df.format(map.get("issue_time")));
}else{
issueTime = (String) map.get("issue_time");
}
Date issueTimeDate = null;
if(StringUtils.isNotBlank(issueTime)){
issueTimeDate = df.parse(issueTime);
@@ -2311,13 +2316,14 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
mapCopy(stringObjectMap, mapT);
dataListTemp.add(mapT);
}
//编辑ES(更新搜索中心的历史数据,不需要发消息)
if(ObjectUtils.isEmpty(map.get("es_update_flag"))){
//更新log
updateLog(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, cut);
//处理修改代替标准,发送通知
sendMessageUpdate(mapTemp, dataListTemp, fieldList, fieldDateList, fieldFileList, fieldPullList, cut);
}
//更新log
updateLog(map, dataList, fieldList, fieldDateList, fieldFileList, fieldPullList, cut);
//判断该条数据是否订阅
//处理修改代替标准,发送通知
sendMessageUpdate(mapTemp, dataListTemp, fieldList, fieldDateList, fieldFileList, fieldPullList, cut);
//树形数据字典
List<SysCategory> categoryList = sysCategoryService.list();
@@ -2360,8 +2366,11 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (ObjectUtils.isNotEmpty(value)) {
//处理修改人和修改时间
if ("update_by".equals(key)) {
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
value = sysUser.getUsername();
//编辑ES时不处理(修改搜索中心历史数据)
if(ObjectUtils.isEmpty(map.get("es_update_flag"))){
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
value = sysUser.getUsername();
}
}
List<OnlCgformField> fieldDate = fieldDateList.stream().filter(e -> entry.getKey().equals(e.getDbFieldName())).collect(Collectors.toList());
//处理时间类型
@@ -5737,11 +5746,17 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
String dbFieldName = onlCgformField.getDbFieldName();
for (Map.Entry<String, Object> entry : map.entrySet()) {
String key = entry.getKey();
String value = (String) entry.getValue();
if (dbFieldName.equals(key)) {
List<OSSFile> files = oSSFileAll.stream().filter(e -> StringUtils.isNotBlank(value) && value.equals(e.getConnectId())).collect(Collectors.toList());
if (files.size() != 0) {
result.addAll(files);
if(!"create_time".equals(key)
&& !"update_time".equals(key)
&& !"issue_time".equals(key)
&& !"implement_time".equals(key)
&& !"xin1_che1_xing2_shi2_shi1_ri4_qi1".equals(key)){
String value = (String) entry.getValue();
if (dbFieldName.equals(key)) {
List<OSSFile> files = oSSFileAll.stream().filter(e -> StringUtils.isNotBlank(value) && value.equals(e.getConnectId())).collect(Collectors.toList());
if (files.size() != 0) {
result.addAll(files);
}
}
}
}
@@ -446,6 +446,9 @@ public class LawsTechnologyEvaluationEOServiceImpl extends ServiceImpl<LawsTechn
/*String itemNum = row.getCell(0, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();
String itemName = row.getCell(1, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();
String itemContents = row.getCell(2, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK).toString();*/
if(StringUtils.isEmpty(itemNum) && StringUtils.isEmpty(itemName) && StringUtils.isEmpty(itemContents)){
continue;
}
Map<String,Object> itemInfoMap = new HashMap<>();
String itemId = UUID.randomUUID().toString().replace("-", "");
@@ -806,7 +806,7 @@ public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowle
//XXX向您推送了XXXXXXXXXX,请注意查看。
String msgContentEN = currentUser.getUsername()+" pushed " + problemKnowledgeBaseTitle + " to you.Please be reminded to check it out.";
String msgTitle = problemKnowledgeBaseTitle + " has been shared with you, please check.";
String msgTitle = "A problem knowledge base has been shared with you, please check";
//飞书跳转链接
String hrefFeishu = backUrl + JumpLinkEnum.PROBLEM_KNOWLEDGE_BASE_DETAIL.getLink() + "?id=" + problemKnowledgeBaseId;
@@ -195,4 +195,15 @@ public class ConditionAssessmentEOController extends JeroController<ConditionAss
public Result<?> addOrUpdateConditionAssessmentBatch(@RequestBody ConditionAssessmentVO conditionAssessmentVO) {
return conditionAssessmentEOService.addOrUpdateBatch(conditionAssessmentVO);
}
/**
* 初始化当前项目状态评估数据 (法规清单在项目状态评估表中没有的)
*/
@AutoLog(value = "任务清单-项目状态评估表-初始化当前项目状态评估数据")
@ApiOperation(value="任务清单-项目状态评估表-初始化当前项目状态评估数据", notes="任务清单-项目状态评估表-初始化当前项目状态评估数据")
@GetMapping(value = "/initConditionAssessment")
public Result<?> initConditionAssessment(@RequestParam Map<String,Object> params) {
this.conditionAssessmentEOService.initConditionAssessment(params);
return Result.OK("初始化数据成功!");
}
}
@@ -98,4 +98,10 @@ public interface IConditionAssessmentEOService extends IService<ConditionAssessm
* @param conditionAssessmentVO
*/
Result<?> addOrUpdateBatch(ConditionAssessmentVO conditionAssessmentVO);
/**
* 初始化项目当前状态数据
* @param params
*/
void initConditionAssessment(Map<String, Object> params);
}
@@ -5,14 +5,18 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.project.entity.ConditionAssessmentEO;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectTaskInventoryEO;
import com.jero.modules.project.enums.CurrentProjectStatusEnum;
import com.jero.modules.project.enums.ProjectRoleEnum;
import com.jero.modules.project.mapper.ConditionAssessmentEOMapper;
import com.jero.modules.project.service.IConditionAssessmentEOService;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.vo.ConditionAssessmentVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -27,6 +31,9 @@ import java.util.stream.Collectors;
@Service
public class ConditionAssessmentEOServiceImpl extends ServiceImpl<ConditionAssessmentEOMapper,ConditionAssessmentEO> implements IConditionAssessmentEOService {
@Autowired
private IProjectLawsInventoryEOService projectLawsInventoryEOService;
/**
* 保存
*
@@ -317,4 +324,42 @@ public class ConditionAssessmentEOServiceImpl extends ServiceImpl<ConditionAsses
return Result.ok();
}
@Override
public void initConditionAssessment(Map<String, Object> params) {
String projectLibraryId = (String) params.get("projectLibraryId");
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryQueryWrapper = new QueryWrapper<>();
if(StringUtils.isNotEmpty(projectLibraryId)){
//如果项目库id不为空,只处理这一个项目下的数据。
lawsInventoryQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId);
}
List<ProjectLawsInventoryEO> lawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryQueryWrapper);
if(CollectionUtils.isNotEmpty(lawsInventoryEOList)){
QueryWrapper<ConditionAssessmentEO> conditionAssessmentQueryWrapper = new QueryWrapper<>();
List<ConditionAssessmentEO> conditionAssessmentEOList = this.baseMapper.selectList(conditionAssessmentQueryWrapper);
//过滤出,没有项目当前状态数据的法规清单数据
lawsInventoryEOList = lawsInventoryEOList.stream().filter(lawsInventory -> {
boolean flag = true;
for (ConditionAssessmentEO conditionAssessmentEO : conditionAssessmentEOList) {
if(StringUtils.equals(lawsInventory.getId(),conditionAssessmentEO.getProjectLawsInventoryId())){
flag = false;
break;
}
}
return flag;
}).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(lawsInventoryEOList)){
for (ProjectLawsInventoryEO lawsInventory : lawsInventoryEOList) {
ConditionAssessmentEO conditionAssessmentEO = new ConditionAssessmentEO();
conditionAssessmentEO.setRoleCode(ProjectRoleEnum.REGULATI_AND_HOMOLOGATION_ENGINEER.getValue());
conditionAssessmentEO.setProjectLawsInventoryId(lawsInventory.getId());
conditionAssessmentEO.setConditionAssessment(CurrentProjectStatusEnum.BLUE.getValue());
this.addOrUpdate(conditionAssessmentEO);
}
}
}
}
}
@@ -391,6 +391,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
if(CollectionUtils.isNotEmpty(projectTaskInventoryEOList)){
//项目任务清单数据初始化
this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOList);
projectTaskInventoryEOList.forEach(taskInventory -> {
this.initConditionAssessmentEO(taskInventory.getProjectLawsInventoryId());
});
}
}
@@ -593,6 +596,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
removeById(id);
this.projectTaskInventoryEOService.deleteByProjectLawsInventoryIds(Arrays.asList(id.split(",")));
QueryWrapper<ConditionAssessmentEO> removeWrapper = new QueryWrapper<>();
removeWrapper.lambda().eq(ConditionAssessmentEO::getProjectLawsInventoryId,id);
this.conditionAssessmentEOService.remove(removeWrapper);
}
/**
@@ -627,6 +634,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
removeByIds(ids);
this.projectTaskInventoryEOService.deleteByProjectLawsInventoryIds(ids);
QueryWrapper<ConditionAssessmentEO> removeWrapper = new QueryWrapper<>();
removeWrapper.lambda().in(ConditionAssessmentEO::getProjectLawsInventoryId,ids);
this.conditionAssessmentEOService.remove(removeWrapper);
}
/**
@@ -2620,6 +2631,9 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
// projectLawsInventoryLogEOService.updateLog(contentLog, projectLibraryId,CutEnum.CN.getValue());
// projectLawsInventoryLogEOService.updateLog(enContentLog, projectLibraryId,CutEnum.EN.getValue());
this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOList);
projectTaskInventoryEOList.forEach(taskInventory -> {
this.initConditionAssessmentEO(taskInventory.getProjectLawsInventoryId());
});
}
}
@@ -4472,6 +4486,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
this.projectTaskInventoryEOService.deleteByProjectLawsInventoryIds(idList);
this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOList);
//初始化项目状态评估
projectTaskInventoryEOList.forEach(taskInventory -> {
this.initConditionAssessmentEO(taskInventory.getProjectLawsInventoryId());
});
//删除该法规的任务明细数据
QueryWrapper<ProjectTaskInventoryDetailEO> deleteTaskInventoryDetailWrapper = new QueryWrapper<>();
deleteTaskInventoryDetailWrapper.lambda().in(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,idList);
@@ -4834,6 +4853,10 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
projectTaskInventoryEOList.add(projectTaskInventoryEO);
}
this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOList);
//初始化项目状态评估
projectTaskInventoryEOList.forEach(taskInventory -> {
this.initConditionAssessmentEO(taskInventory.getProjectLawsInventoryId());
});
//更新log
String serialNumber = dataList.stream().map(e->e.getSerialNumber()).collect(Collectors.joining(","));
@@ -7314,4 +7337,21 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
}
return resultUserId;
}
/**
* 初始化 法规清单对应的 项目状态评估表
* @param projectLawsInventoryId
*/
public void initConditionAssessmentEO(String projectLawsInventoryId){
QueryWrapper<ConditionAssessmentEO> removeWrapper = new QueryWrapper<>();
removeWrapper.lambda().eq(ConditionAssessmentEO::getProjectLawsInventoryId,projectLawsInventoryId);
this.conditionAssessmentEOService.remove(removeWrapper);
ConditionAssessmentEO conditionAssessmentEO = new ConditionAssessmentEO();
conditionAssessmentEO.setRoleCode(ProjectRoleEnum.REGULATI_AND_HOMOLOGATION_ENGINEER.getValue());
conditionAssessmentEO.setProjectLawsInventoryId(projectLawsInventoryId);
conditionAssessmentEO.setConditionAssessment(CurrentProjectStatusEnum.BLUE.getValue());
this.conditionAssessmentEOService.addOrUpdate(conditionAssessmentEO);
}
}
@@ -449,8 +449,8 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrapper = new QueryWrapper<>();
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,id);
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue());
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue());
//lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue());
//lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue());
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = projectLawsInventoryEOMapper.selectList(lawsInventoryEOQueryWrapper);
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
List<String> projectLawsInventoryIdList = projectLawsInventoryEOList.stream().distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList());
@@ -179,8 +179,8 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO,req.getParameterMap());
//QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrapper = new QueryWrapper<>();
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getProjectLibraryId,projectLibraryId);
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue());
lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue());
//lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getInventoryAffirmStatus, InventoryAffirmStatusEnum.ACCEPTED.getValue());
//lawsInventoryEOQueryWrapper.lambda().eq(ProjectLawsInventoryEO::getTaskAffirmStatus, TaskAffirmStatusEnum.ACCEPTED.getValue());
String dutyTerritoryStr = "";
if (StringUtils.isNotEmpty(projectTaskInventoryEO.getDutyTerritory())) {
@@ -224,7 +224,8 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
taskDetailQueryWrapper.lambda().in(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,projectLawsInventoryIdList);
List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOList = this.projectTaskInventoryDetailEOMapper.selectList(taskDetailQueryWrapper);
if(CollectionUtils.isNotEmpty(projectTaskInventoryEOList) && CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOList)){
//if(CollectionUtils.isNotEmpty(projectTaskInventoryEOList) && CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOList)){
if(CollectionUtils.isNotEmpty(projectTaskInventoryEOList)){
projectLawsInventoryEOList.forEach(projectLawsInventory -> {
projectTaskInventoryEOList.forEach(projectTaskInventory -> {
if(StringUtils.equals(projectLawsInventory.getId(),projectTaskInventory.getProjectLawsInventoryId())){
@@ -575,7 +576,13 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
//2022-08-24 判断当前登录用户是否是系统管理员 R&H Manager角色如果是的话看到的数据与studio一致
List<SysUserRole> userRoleList = this.sysUserRoleService.list(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, currentUser.getId())); // 查询用户所有角色
if(CollectionUtils.isNotEmpty(userRoleList)){
List<String> roleIdList = CollectManifestRoleIdEnum.getIdList();
List<String> roleIdList = new ArrayList<>();
String adminRoleId = CollectManifestRoleIdEnum.ADMIN_ID.getId();
String managerRoleId = CollectManifestRoleIdEnum.MANAGER_ID.getId();
roleIdList.add(adminRoleId);
roleIdList.add(managerRoleId);
List<SysUserRole> userRoles = userRoleList.stream().filter(userRole -> {
boolean flag = false;
for (String roleId : roleIdList) {
@@ -803,7 +810,7 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
}
/*if(StringUtils.isNotEmpty(actiProcInstId) && (isRegulationOwner || isHomologationEngineer || isStudio)){*/
if(StringUtils.isNotEmpty(actiProcInstId) && (isStudio || (showVerify || showDesign || showPrehomo))){
if(((isRegulationOwner || isHomologationEngineer || isStudio) || (showVerify || showDesign || showPrehomo))){
projectTaskInventoryEO.setShowFlag(TaskStatusEnum.SHOW_FLAG.getValue());
}
@@ -81,4 +81,7 @@ public class LawsMonthlyReportTitleTemplateEO implements Serializable {
//排序
private int sort;
@TableField(exist = false)
private String key;
}
@@ -220,6 +220,10 @@ public class LawsMonthlyReportTitleTemplateEOServiceImpl extends ServiceImpl<Law
public List<LawsMonthlyReportTitleTemplateEO> getPageInfo(LawsMonthlyReportTitleTemplateEO lawsMonthlyReportTitleTemplateEOTemp, HttpServletRequest req) {
QueryWrapper<LawsMonthlyReportTitleTemplateEO> queryWrapper = QueryGenerator.initQueryWrapper(lawsMonthlyReportTitleTemplateEOTemp, req.getParameterMap());
List<LawsMonthlyReportTitleTemplateEO> lawsMonthlyReportTitleTemplateEOS = this.list(queryWrapper);
for (LawsMonthlyReportTitleTemplateEO lawsMonthlyReportTitleTemplateEO : lawsMonthlyReportTitleTemplateEOS) {
//前端需要的特殊数据格式
lawsMonthlyReportTitleTemplateEO.setKey(lawsMonthlyReportTitleTemplateEO.getId());
}
List<LawsMonthlyReportTitleTemplateEO> parentList = lawsMonthlyReportTitleTemplateEOS.stream()
.filter(e -> StringUtils.isBlank(e.getParentId())).collect(Collectors.toList());
Collections.sort(parentList, new Comparator<LawsMonthlyReportTitleTemplateEO>() {
@@ -1519,7 +1519,7 @@ public class DocumentSearchServiceImpl implements IDocumentSearchService {
list1.add("</text>");
mapTemp.put("pre_tags", list);
mapTemp.put("post_tags", list1);
mapTemp.put("fragment_size", 280);//高亮字段内容长度去除html样式标签统计字数设置为200
mapTemp.put("fragment_size", 500);//高亮字段内容长度去除html样式标签统计字数设置为200
mapTemp.put("number_of_fragments", 1);//高亮内容默认分为5段, 此处设置为一段
mapTemp.put("type", "plain");
mapHighlight.put(key, mapTemp);
@@ -60,15 +60,15 @@ public class workFlowController {
return this.startTaskToConfirmProcess(jsonObject);
}else if(StringUtils.equals(type,FlowTypeEnum.SJFHXSHLC.getValue())){
jsonObject.put("id", FlowTypeEnum.SJFHXSHLC.getProcessDefinitionKey());
initConditionAssessmentEO(jsonObject);
//initConditionAssessmentEO(jsonObject);
return this.activiti_define_start(jsonObject);
}else if(StringUtils.equals(type,FlowTypeEnum.PREHOMOQRLC.getValue())){
jsonObject.put("id", FlowTypeEnum.PREHOMOQRLC.getProcessDefinitionKey());
initConditionAssessmentEO(jsonObject);
//initConditionAssessmentEO(jsonObject);
return this.activiti_define_start(jsonObject);
}else if(StringUtils.equals(type,FlowTypeEnum.YZFHXSCLC.getValue())){
jsonObject.put("id", FlowTypeEnum.YZFHXSCLC.getProcessDefinitionKey());
initConditionAssessmentEO(jsonObject);
//initConditionAssessmentEO(jsonObject);
return this.activiti_define_start(jsonObject);
}else if(StringUtils.equals(type,FlowTypeEnum.FGYJSJLC.getValue())){
jsonObject.put("id", FlowTypeEnum.FGYJSJLC.getProcessDefinitionKey());
Binary file not shown.

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 KiB

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 198 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 66 KiB

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 117 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 305 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 127 KiB

After

Width:  |  Height:  |  Size: 25 KiB

+2
View File
@@ -1283,4 +1283,6 @@ module.exports = {
rejectReason:'Reject Reason',
collectionLegislativeComments:'Collection of Legislative Comments',
regulatoryAndTechnicalAssessment:'Regulatory and technical assessment',
listConfirmationRejectionReason:'List confirmation rejection reason',
taskConfirmationRejectionReason:'Task confirmation rejection reason'
}
+3 -2
View File
@@ -834,7 +834,7 @@ module.exports = {
feedbackMessage: '反馈意见',
result: '结果',
opinion: '意见',
operationNode: '操作节点',
OperationNode: '操作节点',
selectInquiry: '选择询问人',
sendBack: '退回',
taskConfirmationProcess: '任务确认流程',
@@ -1385,5 +1385,6 @@ module.exports = {
rejectReason:'拒绝原因',
collectionLegislativeComments:'法规意见收集',
regulatoryAndTechnicalAssessment:'法规技术评估',
listConfirmationRejectionReason:'清单确认驳回原因',
taskConfirmationRejectionReason:'任务确认驳回原因'
}
@@ -12,43 +12,6 @@
<div style="padding-top: 68px;background: #fff">
<div class="detail-content" style="padding: 24px">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="8">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('displayPermission')">{{$t('displayPermission')}}</span>
</div>
<a-form-model-item class="itemModel" prop="showPermissions">
<a-select :placeholder="$t('PleaseSelect')+$t('displayPermission')"
@change="showPermissionsChange"
v-model="formInline.showPermissions">
<a-select-option v-for="(item, key) in projectNameList"
:key="key"
:value="item.value">
<span class="selectText" :title=" item.name ">
{{ item.name}}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
<a-col :span="8" v-if="isDisplay">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('authorizedUser')">{{$t('authorizedUser')}}</span>
</div>
<a-form-model-item class="itemModel" prop="studioEngineerName">
<PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('authorizedUser')}"
:personneQuery="formInline"
@change="PersonnelSelectionChange"
v-model="formInline.studioEngineerName"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="8">
<div class="box-title-text">
@@ -106,25 +69,55 @@
<a-col :span="8">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('standardNo')">{{$t('standardNo')}}</span>
<span class="Required">*</span>
<span class="title-text-text" :title="$t('displayPermission')">{{$t('displayPermission')}}</span>
</div>
<a-form-model-item class="itemModel" prop="standNumber">
<a-input class="box-input"
:title="formInline.standNumber"
:disabled="true"
v-model="formInline.standNumber"
:placeholder="$t('PleaseEnter')+$t('standardNo')"/>
<a-form-model-item class="itemModel" prop="showPermissions">
<a-select :placeholder="$t('PleaseSelect')+$t('displayPermission')"
@change="showPermissionsChange"
v-model="formInline.showPermissions">
<a-select-option v-for="(item, key) in projectNameList"
:key="key"
:value="item.value">
<span class="selectText" :title=" item.name ">
{{ item.name}}
</span>
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
<a-col :span="8" v-if="isDisplay">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('authorizedUser')">{{$t('authorizedUser')}}</span>
</div>
<a-form-model-item class="itemModel" prop="studioEngineerName">
<PersonnelSelection :query="{db_field_name:'studioEngineer',db_field_txt:$t('authorizedUser')}"
:personneQuery="formInline"
@change="PersonnelSelectionChange"
v-model="formInline.studioEngineerName"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="8">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"></span>
<span class="title-text-text" :title="$t('standardNo')">{{$t('standardNo')}}</span>
</div>
<a-button class="box-button" type="primary" @click="bringInDocumentInformationClick">
{{$t('bringInDocumentInformation')}}
</a-button>
<a-form-model-item class="itemModel" prop="standNumber">
<a-input class="box-input-index"
:title="formInline.standNumber"
:disabled="true"
v-model="formInline.standNumber"
:placeholder="$t('PleaseEnter')+$t('standardNo')"/>
<a-button class="box-button-index"
:title="$t('bringInDocumentInformation')"
type="primary" @click="bringInDocumentInformationClick">
{{$t('bringInDocumentInformation')}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
@@ -584,6 +577,26 @@
margin-top: 4px;
}
.box-button-index {
height: 38px;
margin-top: 2px;
width: 120px;
overflow: hidden;
padding: 0 0;
float: right;
text-align: center;
}
::v-deep .box-button-index span {
display: inline-block;
width: 100px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-top: 4px;
text-align: center;
}
.submit-button {
width: 100%;
margin-top: 20px;
@@ -612,4 +625,11 @@
overflow: hidden;
word-break: break-word;
}
.box-input-index {
width: calc(100% - 130px);
display: inline-block;
height: 38px;
margin-right: 10px;
}
</style>
@@ -18,6 +18,7 @@
<template v-for="tag in tagList">
<a-checkable-tag
:key="tag.id"
:title="tag.problemLabel"
:checked="selectedTags.indexOf(tag.id) > -1"
@change="checked => handleChange(tag.id, checked)"
>
@@ -45,7 +46,7 @@
<div style="margin-bottom: 10px;position: relative">
<!-- <a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>-->
<div class="text-text-right"
:class="{ 'null-input':item.checked }">
:class="{ 'null-input':index % 2 == 0 ? true : false}">
<div class="text-header" @click="titleClick(item)">
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
<template slot="title">
@@ -306,7 +307,7 @@
}
.text-text-right {
padding: 19px 0;
padding: 19px 20px;
box-sizing: border-box;
/*margin-left: 38px;*/
}
@@ -352,8 +353,15 @@
font-weight: 400;
color: #040B29;
opacity: 0.7;
white-space: pre-wrap;
word-wrap: break-word;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all;
}
.page {
@@ -367,18 +375,9 @@
line-height: 10;
}
::v-deep .ant-tag {
padding: 2px 4px;
background: #9B9DA9;
color: #fff !important;
}
::v-deep .ant-tag-checkable:not(.ant-tag-checkable-checked):hover {
color: #fff !important;
}
::v-deep .ant-tag-checkable-checked {
background: #21c9cc;
border: 1px #21c9cc solid;
color: #21c9cc;
}
::v-deep p {
@@ -394,11 +393,21 @@
}
.box-content-left .ant-tag-checkable {
padding: 3px 8px;
padding: 4px 10px;
display: inline-block;
box-sizing: border-box;
margin-bottom: 10px;
background: #fff;
border: 1px #d9d9d9 solid;
color: rgba(0, 0, 0, 0.65);
max-width: 150px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
word-break: break-all;
}
.box-content-left .ant-tag-checkable-checked {
color: #fff;
.box-content-left .ant-tag-checkable-checked{
border: 1px #21c9cc solid;
color: #21c9cc;
}
</style>
@@ -26,10 +26,10 @@
</div>
<div v-if="conList.length > 0" style="height: calc(100vh - 240px);overflow:auto;">
<div v-for="(item,index) in conList" :key="item.id">
<div style="margin-bottom: 10px;position: relative;overflow: hidden">
<div style="margin-bottom: 10px;position: relative;overflow: hidden"
:class="{ 'null-input':index % 2 == 0 ? true : false }">
<!-- <a-checkbox :value="item.id" class="checkbox-left"></a-checkbox>-->
<div class="text-text-right"
:class="{ 'null-input':item.checked }">
<div class="text-text-right">
<div class="text-header" @click="titleClick(item)">
<a-tooltip placement="topLeft" :mouseEnterDelay="0.5">
<template slot="title">
@@ -270,7 +270,7 @@
}
.text-text-right {
padding: 19px 0;
padding: 19px 19px;
width: calc(100% - 180px);
box-sizing: border-box;
/*margin-left: 38px;*/
@@ -327,6 +327,15 @@
font-weight: 400;
color: #040B29;
opacity: 0.7;
overflow: hidden;
display: -webkit-box;
text-overflow: ellipsis;
/*! autoprefixer: off */
-webkit-box-orient: vertical;
-webkit-line-clamp: 4;
/*! autoprefixer: on;*/
text-justify: inter-ideograph;
word-break: break-all;
}
.page {
@@ -244,11 +244,17 @@
})
},
sVisible(val) {
sVisible(val,num) {
this.splitVisible = false
if (num == 1){
eventBUs.$emit('searchGetData')
}
},
iVisible(val) {
iVisible(val,num) {
this.importsVisible = val
if (num == 1){
eventBUs.$emit('searchGetData')
}
},
//查询
searchQuery() {
@@ -43,6 +43,7 @@
@click="cancleImports">{{$t('cancel')}}
</a-button>
<a-button class="imports-btn imports-sub" type="primary" @click="handleSubmit"
:loading="loading"
v-has="'split:sarFileSplitItems:importSplitResult'">{{$t('submit')}}
</a-button>
</div>
@@ -57,7 +58,7 @@
<div class="err-value" v-html="errValue"></div>
<!-- <span class="err-value">{{errValue}}</span>-->
</a-modal>
<JLoading :loading="loading">{{$t('Submitting')}}</JLoading>
<!-- <JLoading :loading="loading">{{$t('Submitting')}}</JLoading>-->
<!-- <split-upload ref="uploadFile" :disabled="disabled" :title="upload1" :accept="accept" @uploadSuccess="uploadSuccess"></split-upload>-->
</a-drawer>
</div>
@@ -290,10 +291,9 @@
}).then(res => {
if (res.data.success) {
this.$message.success(this.$t('OperationSuccessful'))
eventBUs.$emit('searchGetData')
this.visible = false
this.loading = false
this.$emit('visible', false)
this.$emit('visible', false,1)
} else {
this.loading = false
// this.$message.warning(res.data.message)
@@ -68,12 +68,12 @@
<a-button class="split-btn" type="primary" @click="cancelSplit"
style='background-color: #f5222d;border: none;margin-right: 15px'>{{$t('cancel')}}
</a-button>
<a-button class="split-btn split-chai" type="primary" @click="submitSplit"
<a-button class="split-btn split-chai" type="primary" :loading="loading" @click="submitSplit"
v-has="'split:sarFileSplitInfo:add'">{{$t('submit')}}
</a-button>
</div>
</div>
<JLoading :loading="loading">{{$t('Submitting')}}</JLoading>
<!-- <JLoading :loading="loading">{{$t('Submitting')}}</JLoading>-->
</a-drawer>
</div>
</template>
@@ -244,10 +244,9 @@
postAction(`split/sarFileSplitInfo/add`, params).then(res => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
eventBUs.$emit('searchGetData')
this.visible = false
this.loading = false
this.$emit('visible', false)
this.$emit('visible', false,1)
} else {
this.loading = false
this.$message.warning(res.message)
@@ -281,10 +280,10 @@
postAction(`split/sarFileSplitInfo/add`, params).then(res => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
eventBUs.$emit('searchGetData')
// eventBUs.$emit('searchGetData')
this.visible = false
this.loading = false
this.$emit('visible', false)
this.$emit('visible', false,1)
} else {
this.loading = false
this.$message.warning(res.message)
@@ -725,6 +725,29 @@
getAction(this.url.list, query).then((res) => {
if (res.success) {
this.dataSource = res.result || []
if (this.dataSource.length == 0) {
this.$nextTick(() => {
let anttablebody = document.getElementsByClassName('ant-table-body')
let antfixedLeft = document.querySelectorAll('.ant-table-fixed-left .ant-table-body-inner')
let antfixedRight = document.querySelectorAll('.ant-table-fixed-right .ant-table-body-inner')
anttablebody[0].classList.add('ant-table-body-one')
antfixedLeft[0].classList.add('antfixedLeft')
antfixedRight[0].classList.add('antfixedRight')
})
} else {
let anttablebody = document.getElementsByClassName('ant-table-body-one')
let antfixedLeft = document.getElementsByClassName('antfixedLeft')
let antfixedRight = document.getElementsByClassName('antfixedRight')
if (anttablebody && anttablebody.length > 0) {
anttablebody[0].classList.remove('ant-table-body-one')
}
if (antfixedLeft && antfixedLeft.length > 0) {
antfixedLeft[0].classList.remove('antfixedLeft')
}
if (antfixedRight && antfixedRight.length > 0) {
antfixedRight[0].classList.remove('antfixedRight')
}
}
this.loading = false
} else {
this.loading = false
@@ -1030,6 +1053,37 @@
::v-deep .ant-table-body {
background: transparent!important;
}
::v-deep .ant-table-fixed-header .ant-table-body-inner {
overflow: visible;
}
::v-deep .ant-table-body {
padding-bottom: 7px;
}
::v-deep .ant-table-body-inner {
padding-bottom: 16px;
}
::v-deep .ant-table-scroll .ant-table-header::-webkit-scrollbar {
/*height: 0;*/
width: 0;
}
::v-deep .ant-table-body-one {
padding-bottom: 0!important;
}
::v-deep .antfixedLeft {
padding-bottom: 0!important;
overflow: scroll!important;
}
::v-deep .antfixedRight {
padding-bottom: 0!important;
overflow: scroll!important;
}
</style>
<style>
.box-input .ant-select-selection {
+9 -12
View File
@@ -291,10 +291,7 @@ export default {
userData: {},
wrapperCol: { span: 16 },
contentVisible: false, //条款内容弹框显示
queryParams: {
pageNo: 1,
pageSize: 10
},
queryParams: {},
pageSize: 10,
pageNo: 1,
disabled:false,
@@ -747,7 +744,7 @@ export default {
}
},
pageOnChange(page, pageSize) {
this.queryParams.pageNo = page
this.pageNo = page
this.loadData()
},
addModelList() {
@@ -761,6 +758,8 @@ export default {
//获取列表数据
loadData(item) {
this.queryParams.supFolder = this.menuId
this.queryParams.pageNo= this.pageNo
this.queryParams.pageSize= this.pageSize
let params = {
...this.queryParams,
...item,
@@ -785,10 +784,8 @@ export default {
},
//清空
searchReset() {
this.queryParams = {
pageNo: 1,
pageSize: 10
}
this.pageNo = 1
this.queryParams = {}
this.loadData()
},
//新增
@@ -942,13 +939,13 @@ export default {
},
//点击页数
onChangePage(page, pageSize) {
this.queryParams.pageNo = page
this.pageNo = page
this.loadData()
},
//一页显示条数
SizeChange(page, pageSize) {
this.queryParams.pageSize = pageSize
this.queryParams.pageNo = 1
this.pageSize = pageSize
this.pageNo = 1
this.loadData()
},
// 上传文件
@@ -183,19 +183,34 @@
}
})
},
rejectCauseAdd(rejectCause,ids) {
let rejectTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
let query = {
rejectUserId:this.userInfo().id,
rejectTime:rejectTime,
rejectCause:rejectCause,
projectLawsInventoryId:ids,
rejectType:'1',
}
postAction('/project/projectLawsInventoryRejectCauseEO/add', query).then((res) => {
})
},
completeTask(value, handlingTime) {
let json = Object.assign(this.queryBy, { handlingTime: handlingTime }, value)
let data = JSON.stringify(json).replace(/\"/g, '\'')
Object.keys(data).forEach(res => {
if (data[res] && typeof data[res] == 'string') {
data[res] = data[res].replace(/\"/g, '“')
data[res] = data[res].replace(/\'/g, '')
if (json.flag == '1'){
this.rejectCauseAdd(value.approvalOpinion,this.queryBy.id)
}
Object.keys(json).forEach(res => {
if (json[res] && typeof json[res] == 'string') {
json[res] = json[res].replace(/\"/g, '“')
json[res] = json[res].replace(/\'/g, '')
}
})
let query = {
userid: this.userInfo().id,
taskId: this.$route.query.taskId || this.$route.query.taskIds,
json: data
json: JSON.stringify(json).replace(/\"/g, '\'')
}
postAction('/workFlow/completeTask', query).then((res) => {
if (res.success) {
@@ -7,7 +7,7 @@
</div>
<!-- <span class="flow-chart-title">{{ $route.params.processNumber }} {{ $route.params.processTypeName }} 流程图</span>-->
</div>
<div class="flow-group" style="margin-top: 30px;overflow: auto;">
<div class="flow-group" style="margin-top: 30px;overflow: auto;text-align: center">
<img :src="processStep" class="process-img">
</div>
</div>
@@ -805,8 +805,9 @@
</a-col>
</a-row>
<div class="header-text" v-if="rejectCauseList && rejectCauseList.length > 0">
{{$t('reasonsForRejection')}}
{{$t('listConfirmationRejectionReason')}}
</div>
<div v-if="rejectCauseList && rejectCauseList.length > 0"
v-for="(item,index) in rejectCauseList">
<a-row :gutter="24">
@@ -847,6 +848,51 @@
</a-col>
</a-row>
</div>
<div class="header-text" v-if="rejectCauseListOne && rejectCauseListOne.length > 0">
{{$t('taskConfirmationRejectionReason')}}
</div>
<div v-if="rejectCauseListOne && rejectCauseListOne.length > 0"
v-for="(item,index) in rejectCauseListOne">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectedBy')">{{$t('rejectedBy')}}</span>
</div>
<div class="itemModel-reject">
{{item.createBy ? item.createBy : '--'}}
</div>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectionTime')">{{$t('rejectionTime')}}</span>
</div>
<div class="itemModel-reject">
{{item.rejectTime ? item.rejectTime : '--'}}
</div>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectReason')">{{$t('rejectReason')}}</span>
</div>
<div class="itemModel-reject">
{{item.rejectCause ? item.rejectCause : '--'}}
</div>
</div>
</a-col>
</a-row>
</div>
</a-form-model>
</a-spin>
<div class="drawer-bootom-button">
@@ -881,6 +927,7 @@
visible: false,
confirmLoading: false,
rules: {},
rejectCauseListOne: [],
rulesData: {
subtitle: [
{
@@ -966,9 +1013,20 @@
}
getAction('/project/projectLawsInventoryRejectCauseEO/list', query).then((res) => {
if (res.success) {
this.rejectCauseList = res.result
this.rejectCauseList = []
this.rejectCauseListOne = []
if (res.result && res.result.length > 0) {
res.result.forEach(val => {
if (val.rejectType == '0') {
this.rejectCauseList.push(val)
} else if (val.rejectType == '1') {
this.rejectCauseListOne.push(val)
}
})
}
} else {
this.rejectCauseList = []
this.rejectCauseListOne = []
}
})
},
@@ -1507,9 +1507,32 @@
getAction(this.url.list, query).then((res) => {
this.getRoleByUserId()
if (res.success) {
this.dataSource = res.result
this.dataSource = res.result || []
this.loading = false
this.JLoading = false
if (this.dataSource.length == 0) {
this.$nextTick(() => {
let anttablebody = document.getElementsByClassName('ant-table-body')
let antfixedLeft = document.querySelectorAll('.ant-table-fixed-left .ant-table-body-inner')
let antfixedRight = document.querySelectorAll('.ant-table-fixed-right .ant-table-body-inner')
anttablebody[0].classList.add('ant-table-body-one')
antfixedLeft[0].classList.add('antfixedLeft')
antfixedRight[0].classList.add('antfixedRight')
})
} else {
let anttablebody = document.getElementsByClassName('ant-table-body-one')
let antfixedLeft = document.getElementsByClassName('antfixedLeft')
let antfixedRight = document.getElementsByClassName('antfixedRight')
if (anttablebody && anttablebody.length > 0) {
anttablebody[0].classList.remove('ant-table-body-one')
}
if (antfixedLeft && antfixedLeft.length > 0) {
antfixedLeft[0].classList.remove('antfixedLeft')
}
if (antfixedRight && antfixedRight.length > 0) {
antfixedRight[0].classList.remove('antfixedRight')
}
}
} else {
this.JLoading = false
this.loading = false
@@ -2052,7 +2075,7 @@
commentContent: this.$t('For') + content.join(',') + this.$t('markedRejection') + '' + this.formInlineComment.commentContent,
projectLibraryId: this.$route.query.id
}
this.rejectCauseAdd(this.formInlineComment.commentContent,ids)
this.rejectCauseAdd(this.formInlineComment.commentContent, ids)
this.confirmLoadingComment = true
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
this.updateStatusBatch(1, selectedRowKeys)
@@ -2067,14 +2090,14 @@
}
})
},
rejectCauseAdd(rejectCause,ids) {
rejectCauseAdd(rejectCause, ids) {
let rejectTime = moment(new Date()).format('YYYY-MM-DD HH:mm:ss')
let query = {
rejectUserId:this.userInfo().id,
rejectTime:rejectTime,
rejectCause:rejectCause,
projectLawsInventoryId:ids.join(','),
rejectType:'0',
rejectUserId: this.userInfo().id,
rejectTime: rejectTime,
rejectCause: rejectCause,
projectLawsInventoryId: ids.join(','),
rejectType: '0'
}
postAction('/project/projectLawsInventoryRejectCauseEO/add', query).then((res) => {
@@ -2413,6 +2436,58 @@
::v-deep .ant-table-body {
background: transparent !important;
}
::v-deep .ant-table-body::-webkit-scrollbar {
z-index: 10000000;
}
/*::v-deep .ant-table .ant-table-fixed-left {*/
/* height: auto !important;*/
/* bottom: 8px !important;*/
/*}*/
/*::v-deep .ant-table .ant-table-fixed-right {*/
/* height: auto !important;*/
/* bottom: 8px !important;*/
/*}*/
::v-deep .ant-table-fixed-header .ant-table-body-inner {
overflow: visible;
}
/*::v-deep .ant-table-fixed-left .ant-table-body-inner {*/
/* overflow-y: scroll;*/
/*}*/
/*::v-deep .ant-table-fixed-right .ant-table-body-inner {*/
/* overflow-y: scroll;*/
/*}*/
::v-deep .ant-table-body {
padding-bottom: 7px;
}
::v-deep .ant-table-body-inner {
padding-bottom: 16px;
}
::v-deep .ant-table-scroll .ant-table-header::-webkit-scrollbar {
/*height: 0;*/
width: 0;
}
::v-deep .ant-table-body-one {
padding-bottom: 0!important;
}
::v-deep .antfixedLeft {
padding-bottom: 0!important;
overflow: scroll!important;
}
::v-deep .antfixedRight {
padding-bottom: 0!important;
overflow: scroll!important;
}
</style>
<style>
.box-input .ant-select-selection {
@@ -434,7 +434,7 @@
</a-col>
</a-row>
<div class="header-text" v-if="rejectCauseList && rejectCauseList.length > 0">
{{$t('reasonsForRejection')}}
{{$t('listConfirmationRejectionReason')}}
</div>
<div v-if="rejectCauseList && rejectCauseList.length > 0"
v-for="(item,index) in rejectCauseList">
@@ -476,6 +476,49 @@
</a-col>
</a-row>
</div>
<div class="header-text" v-if="rejectCauseListOne && rejectCauseListOne.length > 0">
{{$t('taskConfirmationRejectionReason')}}
</div>
<div v-if="rejectCauseListOne && rejectCauseListOne.length > 0"
v-for="(item,index) in rejectCauseListOne">
<a-row :gutter="24">
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectedBy')">{{$t('rejectedBy')}}</span>
</div>
<div class="itemModel">
{{item.createBy ? item.createBy : '--'}}
</div>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectionTime')">{{$t('rejectionTime')}}</span>
</div>
<div class="itemModel">
{{item.rejectTime ? item.rejectTime : '--'}}
</div>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text"
:title="$t('rejectReason')">{{$t('rejectReason')}}</span>
</div>
<div class="itemModel">
{{item.rejectCause ? item.rejectCause : '--'}}
</div>
</div>
</a-col>
</a-row>
</div>
</a-form-model>
</a-spin>
<div class="drawer-bootom-button">
@@ -507,7 +550,8 @@
formInline: {},
disabled: false,
userInfoQuery: {},
rejectCauseList:[]
rejectCauseList:[],
rejectCauseListOne:[]
}
},
mounted() {
@@ -527,9 +571,20 @@
}
getAction('/project/projectLawsInventoryRejectCauseEO/list', query).then((res) => {
if (res.success) {
this.rejectCauseList = res.result
this.rejectCauseList = []
this.rejectCauseListOne = []
if (res.result && res.result.length > 0) {
res.result.forEach(val => {
if (val.rejectType == '0') {
this.rejectCauseList.push(val)
} else if (val.rejectType == '1') {
this.rejectCauseListOne.push(val)
}
})
}
} else {
this.rejectCauseList = []
this.rejectCauseListOne = []
}
})
},