Merge remote-tracking branch 'origin/master'

This commit is contained in:
zer0Black
2022-08-04 22:34:59 +08:00
91 changed files with 3212 additions and 558 deletions
@@ -506,6 +506,7 @@ INSERT INTO `laws_weilai`.`sys_permission`(`id`, `parent_id`, `name`, `url`, `co
INSERT INTO `laws_weilai`.`sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `menu_en`) VALUES ('1552484136976973825', '1539426795780005889', '新增', NULL, NULL, NULL, NULL, 2, 'report:exportTemplate:add', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2022-07-28 10:40:37', NULL, NULL, 0, 0, '1', 0, 'Add');
UPDATE `laws_weilai`.`sys_permission` SET `parent_id` = '1516964175944798210', `name` = '上报库管理', `url` = '/escalationlibrary', `component` = 'parameter/escalationlibrary/index', `component_name` = NULL, `redirect` = NULL, `menu_type` = 1, `perms` = 'params:report:page', `perms_type` = '1', `sort_no` = 3.00, `always_show` = 0, `icon` = NULL, `is_route` = 1, `is_leaf` = 0, `keep_alive` = 0, `hidden` = 0, `description` = NULL, `create_by` = 'admin', `create_time` = '2022-06-22 10:05:03', `update_by` = 'admin', `update_time` = '2022-07-28 10:52:00', `del_flag` = 0, `rule_flag` = 0, `status` = '1', `internal_or_external` = 0, `menu_en` = 'Escalation library management' WHERE `id` = '1539429224550457346';
UPDATE `laws_weilai`.`sys_permission` SET `parent_id` = '1516964175944798210', `name` = '参数导出模板管理', `url` = '/Parameterexport', `component` = 'parameter/parameterexport/index', `component_name` = NULL, `redirect` = NULL, `menu_type` = 1, `perms` = 'report:exportTemplate:page', `perms_type` = '1', `sort_no` = 2.00, `always_show` = 0, `icon` = NULL, `is_route` = 1, `is_leaf` = 0, `keep_alive` = 0, `hidden` = 0, `description` = NULL, `create_by` = 'admin', `create_time` = '2022-06-22 09:55:24', `update_by` = 'admin', `update_time` = '2022-07-28 10:40:02', `del_flag` = 0, `rule_flag` = 0, `status` = '1', `internal_or_external` = 0, `menu_en` = 'Parameter export template management' WHERE `id` = '1539426795780005889';
INSERT INTO `laws_weilai`.`sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `menu_en`) VALUES ('1554745894282264577', '1552487412749369345', '保存', NULL, NULL, NULL, NULL, 2, 'report:detail:export:save', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'admin', '2022-08-03 16:28:02', NULL, NULL, 0, 0, '1', 0, 'Save');
-- 角色表-增加对外报告管理员角色 2022-7-28 已同步生产环境
INSERT INTO `sys_role` VALUES ('1552536424587862017', '对外报告管理员', 'ExternalReportsManager', '对外报告文件夹列表的管理员', 'admin', '2022-7-28 14:08:23', NULL, NULL, NULL, NULL);
@@ -692,3 +693,36 @@ CREATE TABLE `laws_weilai`.`problem_knowledge_base_collect` (
`collect_status` varchar(100) 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 COMMENT = '问题知识库收藏表' ROW_FORMAT = Dynamic;
-- 参数清单 添加字段 2022-08-04
ALTER TABLE `laws_weilai`.`params_manifest`
ADD COLUMN `params_template_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数模板名称' AFTER `params_template_publish_version`;
ALTER TABLE `laws_weilai`.`params_manifest_history`
ADD COLUMN `params_template_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '参数模板名称' AFTER `source_params_manifest_id`;
-- 问题知识库-country_card-管理发布表 2022-08-04
CREATE TABLE `laws_weilai`.`country_card_manage_release` (
`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 NULL DEFAULT NULL COMMENT '创建日期',
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新日期',
`sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`apply_market` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '适用市场',
`release_status` varchar(100) 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 COMMENT = '问题知识库-country_card-管理发布表' ROW_FORMAT = Dynamic;
-- 问题知识库-country_card-管理发布明细表 2022-08-04
CREATE TABLE `laws_weilai`.`country_card_manage_release_detail` (
`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 NULL DEFAULT NULL COMMENT '创建日期',
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新日期',
`sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`country_card_manage_release_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'country_card管理发布表id',
`country_card_temp_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板表id',
`description` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '描述',
`content` varchar(2000) 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 COMMENT = '问题知识库-country_card-管理发布明细表' ROW_FORMAT = Dynamic;
@@ -53,3 +53,7 @@ ADD COLUMN `initiator` varchar(255) NULL COMMENT '发起人' AFTER `document_id`
-- 2022-07-05 修改字段类型 生产环境已同步
ALTER TABLE `project_laws_inventory_log`
MODIFY COLUMN `log_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL COMMENT 'log内容' AFTER `project_library_id`;
-- 2022-08-04 修改字段类型 生产环境未同步
ALTER TABLE `dummy_inventory_info`
MODIFY COLUMN `subtitle` varchar(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '子标题' AFTER `wvta_id`;
@@ -151,6 +151,9 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/lawsTechnologyEvaluation/lawsTechnologyEvaluationEO/processCall", "anon");
// 法规技术评估-条款信息评估结果表 工作流处理数据接口排除
filterChainDefinitionMap.put("/lawsTechnologyEvaluation/lawsTechnologyEvaluationItemResultEO/processCall", "anon");
filterChainDefinitionMap.put("/lark/larkEventSubscriptionConfig", "anon"); //飞书调用接口,事件订阅配置。
filterChainDefinitionMap.put("/lark/larkCardMessageConfig", "anon"); //飞书调用接口,卡片消息配置。
filterChainDefinitionMap.put("/sys/user/querySysUserListByIdList", "anon"); // 工作流根据用户idList获取用户信息接口
// 添加自己的过滤器并且取名为jwt
@@ -23,7 +23,6 @@ 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;
import java.util.stream.Collectors;
@@ -173,15 +172,15 @@ public class ParamsCollectManifestEOController extends JeroController<ParamsColl
/**
* 批量删除
*
* @param ids
* @param paramsCollectManifestVO
* @return
*/
@AutoLog(value = "参数项收集清单-批量删除")
@ApiOperation(value="参数项收集清单-批量删除", notes="参数项收集清单-批量删除")
@PostMapping(value = "/deleteBatch")
// @RequiresPermissions("params:collectManifest:delete")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
boolean isSuccess = paramsCollectManifestEOService.deleteByIds(Arrays.asList(ids.split(",")));
public Result<?> deleteBatch(@RequestBody ParamsCollectManifestVO paramsCollectManifestVO) {
boolean isSuccess = paramsCollectManifestEOService.deleteBatch(paramsCollectManifestVO);
if (isSuccess) {
return Result.OK("批量删除成功!");
} else {
@@ -94,7 +94,7 @@ public class ParamsManifestEO implements Serializable {
@ApiModelProperty(value = "对应参数模板发布版本")
private Integer paramsTemplatePublishVersion;
@TableField(exist = false)
@ApiModelProperty(value = "参数模板名称")
private String paramsTemplateName;
@TableField(exist = false)
@@ -43,7 +43,7 @@
pm.project_id as project_id,
pm.params_template_id as params_template_id,
pm.params_template_publish_version as params_template_publish_version,
pt.params_template_name as params_template_name
if (pt.params_template_name is not null, pt.params_template_name, pm.params_template_name) as params_template_name
</sql>
<sql id="BaseQuerySql">
@@ -43,13 +43,22 @@ public interface IParamsCollectManifestEOService extends IService<ParamsCollectM
void deleteById(String id);
/**
* 批量删除
* 批量删除-参数清单页面级
*
* @param ids
* @return
*/
boolean deleteByIds(List<String> ids);
/**
* 批量删除-参数项收集页面级
*
* @param paramsCollectManifestVO
* @return
*/
boolean deleteBatch(ParamsCollectManifestVO paramsCollectManifestVO);
/**
* 通过id查询
*
@@ -87,4 +87,7 @@ public interface IParamsManifestEOService extends IService<ParamsManifestEO> {
List<Map<String, String>> labelListForProjectDetails(String projectId);
Map<String, Object> getStatisticsForProjectDetails(String paramsManifestId, String cut);
// 参数模板删除时,记录参数模板名称到清单
boolean setTemplateName(List<String> paramsTemplateIds);
}
@@ -235,7 +235,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
}
/**
* 批量删除
* 批量删除-参数清单页面级
*
* @param ids
* @return
@@ -247,6 +247,41 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
return removeByIds(ids);
}
/**
* 批量删除-参数项收集页面级
*
* @param paramsCollectManifestVO
* @return
*/
@Override
public boolean deleteBatch(ParamsCollectManifestVO paramsCollectManifestVO) {
List<String> ids = Arrays.asList(paramsCollectManifestVO.getIds().split(","));
String paramsManifestId = paramsCollectManifestVO.getParamsManifestId();
// 删除参数项
boolean isSuccess = removeByIds(ids);
// 关联删除配置数据
paramsConfigDataEOService.deleteByParamsCollectManifestIdList(ids);
// 判断清单收集状态
Map<String, Object> map = isCollectFinished(paramsManifestId);
Boolean finish = (Boolean) map.get("finish");
Date time = (Date) map.get("time");
if (finish) {
// 更新清单状态和完成时间
ParamsManifestEO updateParamsManifestEO = new ParamsManifestEO();
updateParamsManifestEO.setId(paramsManifestId);
updateParamsManifestEO.setState(ManifestStateEnum.FINISHED.getValue());
updateParamsManifestEO.setFinishTime(time);
boolean isSuccess2 = paramsManifestEOService.updateById(updateParamsManifestEO);
if (isSuccess2) {
webSocketServer.sendMessage();
}
}
return isSuccess;
}
/**
* 通过id查询
*
@@ -1901,6 +1936,18 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
addReportDetailEO.setParamsManifestId(reportId);
addReportDetailEO.setSyncTime(syncTime);
addReportDetailEOList.add(addReportDetailEO);
// 添加配置数据
for (ParamsConfigEO configEO : paramsConfigEOList) {
ParamsReportConfigDataEO addReportConfigDataEO = new ParamsReportConfigDataEO();
addReportConfigDataEO.setId(UUID.randomUUID().toString().replace("-",""));
addReportConfigDataEO.setParamsConfigId(configIdMap.get(configEO.getId()));
addReportConfigDataEO.setParamsCollectManifestId(reportDetailId);
addReportConfigDataEO.setTextData(item.getTitleDefaultValue()); //标题默认值
addReportConfigDataEOList.add(addReportConfigDataEO);
}
}
}
@@ -705,6 +705,40 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
return result;
}
@Override
public boolean setTemplateName(List<String> paramsTemplateIds) {
List<ParamsManifestEO> updateManifestEOList = new ArrayList<>();
// 查询被删除模板信息
LambdaQueryWrapper<ParamsTemplateEO> paramsTemplateEOLambdaQueryWrapper = new LambdaQueryWrapper<>();
paramsTemplateEOLambdaQueryWrapper.in(ParamsTemplateEO::getId, paramsTemplateIds);
List<ParamsTemplateEO> paramsTemplateEOList = paramsTemplateEOService.list(paramsTemplateEOLambdaQueryWrapper);
List<String> paramsTemplateIdList = paramsTemplateEOList.stream().map(ParamsTemplateEO::getId).collect(Collectors.toList());
// 查询被删除模板的所有清单
LambdaQueryWrapper<ParamsManifestEO> paramsManifestEOLambdaQueryWrapper = new LambdaQueryWrapper<>();
paramsManifestEOLambdaQueryWrapper.in(ParamsManifestEO::getParamsTemplateId, paramsTemplateIdList);
List<ParamsManifestEO> paramsManifestEOList = list(paramsManifestEOLambdaQueryWrapper);
paramsTemplateEOList.forEach(templateEO-> {
// 查询使用该模板的所有清单
List<ParamsManifestEO> paramsManifestEOS = paramsManifestEOList.stream()
.filter(e-> templateEO.getId().equals(e.getParamsTemplateId()))
.collect(Collectors.toList());
paramsManifestEOS.forEach(manifestEO -> {
ParamsManifestEO updateManifestEO = new ParamsManifestEO();
updateManifestEO.setId(manifestEO.getId());
updateManifestEO.setParamsTemplateName(templateEO.getParamsTemplateName());
updateManifestEO.setFinishTime(manifestEO.getFinishTime());
updateManifestEOList.add(updateManifestEO);
});
});
return updateBatchById(updateManifestEOList);
}
private void getData(List<Map<String, Object>> data, double quantity, String percentage) {
Map<String, Object> map = new HashMap<>();
map.put("quantity", quantity);
@@ -423,8 +423,8 @@ public class ParamsReportDetailEOServiceImpl extends ServiceImpl<ParamsReportDet
configDataVO.setType(ConfigDataTypeEnum.TEXT.getValue());
configDataVO.setIsMust(paramsCollectManifestEO.getIsMust());
configDataVO.setIsLock(paramsConfigEO.getIsLock());
if (StringUtils.isNotEmpty(paramsCollectManifestEO.getTitleDefaultValue())) {
configDataVO.setDataValue(paramsCollectManifestEO.getTitleDefaultValue());
if (ObjectUtil.isNotEmpty(paramsConfigDataEO) && StringUtils.isNotEmpty(paramsConfigDataEO.getTextData())) {
configDataVO.setDataValue(paramsConfigDataEO.getTextData());
}
paramsConfigDataVOList.add(configDataVO);
@@ -1,5 +1,6 @@
package com.jero.modules.cert.report.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -14,6 +15,7 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
/**
* @Description: 上报库
@@ -132,18 +134,31 @@ public class ParamsReportEOServiceImpl extends ServiceImpl<ParamsReportEOMapper,
List<ParamsReportEO> updateEOList = new ArrayList<>();
List<ParamsManifestVO> paramsManifestEOList = paramsManifestEOMapper.listInfoAll(oldParamsManifestIdList);
List<String> paramsManifestIdList = paramsManifestEOList.stream().map(ParamsManifestVO::getId).collect(Collectors.toList());
List<Integer> paramsManifestVersionList = paramsManifestEOList.stream().map(ParamsManifestVO::getVersion).collect(Collectors.toList());
LambdaQueryWrapper<ParamsReportEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(ParamsReportEO::getOldParamsManifestId, paramsManifestIdList)
.in(ParamsReportEO::getVersion, paramsManifestVersionList);
List<ParamsReportEO> paramsReportEOList = list(queryWrapper);
paramsManifestEOList.forEach(paramsManifestVO -> {
LambdaQueryWrapper<ParamsReportEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ParamsReportEO::getOldParamsManifestId, paramsManifestVO.getId())
.eq(ParamsReportEO::getVersion, paramsManifestVO.getVersion());
ParamsReportEO paramsReportEO = getOne(queryWrapper);
ParamsReportEO updateEO = new ParamsReportEO();
updateEO.setId(paramsReportEO.getId());
updateEO.setTitle(paramsManifestVO.getTitle());
updateEO.setProjectName(paramsManifestVO.getProjectName());
List<ParamsReportEO> paramsReportEOS = paramsReportEOList.stream()
.filter(e-> paramsManifestVO.getId().equals(e.getOldParamsManifestId()) && paramsManifestVO.getVersion().equals(e.getVersion()))
.collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(paramsReportEOS)) {
ParamsReportEO paramsReportEO = paramsReportEOS.get(0);
ParamsReportEO updateEO = new ParamsReportEO();
updateEO.setId(paramsReportEO.getId());
updateEO.setTitle(paramsManifestVO.getTitle());
updateEO.setProjectName(paramsManifestVO.getProjectName());
updateEOList.add(updateEO);
}
updateEOList.add(updateEO);
});
return updateBatchById(updateEOList);
@@ -2,6 +2,7 @@ package com.jero.modules.cert.template.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.collect.service.IParamsManifestEOService;
import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO;
import com.jero.modules.cert.template.entity.ParamsInfoEO;
import com.jero.modules.cert.template.entity.ParamsTemplateEO;
@@ -16,10 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.transaction.Transactional;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.*;
/**
* @Description: 参数模板表
@@ -37,6 +35,9 @@ public class ParamsTemplateEOServiceImpl extends ServiceImpl<ParamsTemplateEOMap
@Autowired
private ICertCategoryParamsInfoEOService certCategoryParamsInfoEOService;
@Autowired
private IParamsManifestEOService paramsManifestEOService;
/**
* 保存
*
@@ -79,6 +80,10 @@ public class ParamsTemplateEOServiceImpl extends ServiceImpl<ParamsTemplateEOMap
// 关联删除参数项
certCategoryParamsInfoEOService.deleteByParamsTemplateIds(id);
paramsInfoEOService.deleteByParamsTemplateIds(id);
// 收集清单 添加参数模板名称
paramsManifestEOService.setTemplateName(Arrays.asList(id));
return removeById(id);
}
@@ -93,6 +98,10 @@ public class ParamsTemplateEOServiceImpl extends ServiceImpl<ParamsTemplateEOMap
// 关联删除参数项
certCategoryParamsInfoEOService.deleteByParamsTemplateIds(StringUtils.join(ids, ","));
paramsInfoEOService.deleteByParamsTemplateIds(StringUtils.join(ids, ","));
// 收集清单 添加参数模板名称
paramsManifestEOService.setTemplateName(ids);
return removeByIds(ids);
}
@@ -3630,8 +3630,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (value.contains("%")) {
value = value.replace("%", "/%");
}
conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%') ESCAPE '/'");
// conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%')");
// conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%') ESCAPE '/'");
conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%')");
} else if (FieldTypeEnum.PULL_SINGLE.getValue().equals(fieldType)
|| FieldTypeEnum.PULL_MORE.getValue().equals(fieldType)
|| FieldTypeEnum.TREE.getValue().equals(fieldType)) {
@@ -3659,8 +3659,8 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
if (value.contains("%")) {
value = value.replace("%", "/%");
}
conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%') ESCAPE '/'");
// conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%')");
// conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%') ESCAPE '/'");
conditionSb.append(" and " + key + " like concat(concat('%','" + value + "'),'%')");
}
}
}
@@ -1251,12 +1251,12 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
//子标题
if(StringUtils.isNotBlank(subtitle)){
if(subtitle.length() > 100){
if(subtitle.length() > 300){
String message = "";
if(CutEnum.CN.getValue().equals(dummyInventoryInfoEOTemp.getCut())){
message = errorMsg + "子标题不能超过100个字符, ";
message = errorMsg + "子标题不能超过300个字符, ";
}else{
message = errorMsg + " Subheadings cannot be checked more than 100 characters, ";
message = errorMsg + " Subheadings cannot be checked more than 300 characters, ";
}
msgList.add(message);
}
@@ -0,0 +1,91 @@
package com.jero.modules.feishu.controller;
import com.alibaba.fastjson.JSONObject;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.utils.LarkDecryptUtil;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@Api(tags="飞书交互控制层")
@RestController
@RequestMapping("/lark")
@Slf4j
public class LarkController {
@Autowired
private IFeishuService feishuService;
//加密密钥
@Value("${Feishu.eventSubscription.encryptKey}")
private String encryptKey;
/**
* 飞书调用接口飞书事件订阅配置
* @param jsonObject
* @return
*/
@PostMapping(value = "/larkEventSubscriptionConfig")
public String larkEventSubscriptionConfig(@RequestBody JSONObject jsonObject){
String encrypt = jsonObject.getString("encrypt");
log.info(encrypt);
LarkDecryptUtil d = new LarkDecryptUtil(encryptKey);
String decrypt = null;
try {
decrypt = d.decrypt(encrypt);
} catch (Exception exception) {
exception.printStackTrace();
}
log.info("decrypt:==========================================================" + decrypt);
//解析密钥json
JSONObject decryptJson = JSONObject.parseObject(decrypt);
Object event = decryptJson.get("event");
if(event != null){
JSONObject eventJson = JSONObject.parseObject(decryptJson.get("event").toString());
// 消息类型 与飞书开放平台文档应该一致
String msgType = eventJson.getString("msg_type");
//如果是文本类型消息进入处理
if(StringUtils.equals(msgType,"text")){
//用户发送的内容
String textWithoutAtBot = eventJson.getString("text_without_at_bot");
//用户发送的内容 与上方textWithoutAtBot变量一致(迷惑行为同样的内容用了两个字段返回)
String text = eventJson.getString("text");
//用户id
String employeeId = eventJson.getString("employee_id");
//判断用户发送的消息内容如果包含"知识库" 那么给用户推送知识库分类菜单
if(StringUtils.contains(text,"知识库")){
log.info(""+employeeId+"用户推送知识库一级分类菜单:==========================================================");
feishuService.sendKnowledgeBaseTypeCard(employeeId.split(","));
}
}
}
return decrypt;
}
/**
* 飞书卡片消息配置
* @param jsonObject
* @return
*/
@PostMapping(value = "/larkCardMessageConfig")
public JSONObject larkCardMessageConfig(@RequestBody JSONObject jsonObject){
JSONObject result = new JSONObject();
String challenge = jsonObject.getString("challenge");
if(StringUtils.isEmpty(challenge)){
this.feishuService.sendKnowledgeBaseInfoCard(jsonObject);
}
result.put("challenge",challenge);
log.info(result.toString());
return result;
}
}
@@ -1,5 +1,6 @@
package com.jero.modules.feishu.service;
import com.alibaba.fastjson.JSONObject;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import java.io.IOException;
@@ -43,4 +44,16 @@ public interface IFeishuService {
* @return
*/
String translateText(Map<String,Object> params);
/**
* 发送知识库分类卡片消息 用户输入知识库的时候
* @param userIds
*/
void sendKnowledgeBaseTypeCard(String[] userIds);
/**
* 发送知识库信息卡片消息 用户点击某一个分类的时候
* @param jsonObject
*/
void sendKnowledgeBaseInfoCard(JSONObject jsonObject);
}
@@ -3,11 +3,13 @@ package com.jero.modules.feishu.service.impl;
import cn.hutool.core.util.StrUtil;
import com.alibaba.druid.support.json.JSONUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.system.util.HttpRequestUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
@@ -306,4 +308,175 @@ public class FeishuServiceImpl implements IFeishuService {
return result;
}
/**
* 发送知识库分类卡片消息 用户输入知识库的时候
* @param userIds
*/
@Override
public void sendKnowledgeBaseTypeCard(String[] userIds){
String token = null;
try {
token = getTenantAccessToken();
} catch (IOException e) {
e.printStackTrace();
}
// 设置请求头
Map<String, String> headerMap = new HashMap<>();
headerMap.put("Authorization", "Bearer " + token);
headerMap.put("Content-Type", "application/json; charset=utf-8");
String sendJson = " {\n" +
" \"config\": {\n" +
" \"wide_screen_mode\": true\n" +
" },\n" +
" \"header\": {\n" +
" \"title\": {\n" +
" \"tag\": \"plain_text\",\n" +
" \"content\": \"点击下方的分类查看常见问题\"\n" +
" }\n" +
" }\n" +
"}";
JSONObject jsonObject = JSONObject.parseObject(sendJson);
JSONArray elements = new JSONArray();
JSONObject element = new JSONObject();
element.put("tag","action");
element.put("layout","bisected");
JSONArray actions = new JSONArray();
//组装推送过去的点击按钮
for (int i=0; i<5; i++){
JSONObject buttonObject = new JSONObject();
JSONObject text = new JSONObject();
JSONObject value = new JSONObject();
buttonObject.put("tag","button");
if(i==0){
text.put("tag","plain_text");
text.put("content","content1");
value.put("chosen","chosen1");
}
if(i==1){
text.put("tag","plain_text");
text.put("content","content2");
value.put("chosen","chosen2");
}
if(i==2){
text.put("tag","plain_text");
text.put("content","content3");
value.put("chosen","chosen3");
}
if(i==3){
text.put("tag","plain_text");
text.put("content","content4");
value.put("chosen","chosen4");
}
if(i==4){
text.put("tag","plain_text");
text.put("content","content5");
value.put("chosen","chosen5");
}
if(i==5){
text.put("tag","plain_text");
text.put("content","content6");
value.put("chosen","chosen6");
}
buttonObject.put("text",text);
buttonObject.put("type","primary");
buttonObject.put("value",value);
actions.add(buttonObject);
}
element.put("actions",actions);
elements.add(element);
jsonObject.put("elements",elements);
// 设置请求参数
JSONObject paramsMap = new JSONObject();
paramsMap.put("user_ids", userIds);
paramsMap.put("msg_type", "interactive");
paramsMap.put("card", jsonObject);
// 发送请求给飞书
String response = null;
try {
response = HttpRequestUtil.getResponseOfPOST(batchSendMessageUrl, headerMap, paramsMap.toJSONString());
} catch (IOException e) {
e.printStackTrace();
}
// 获取返回结果
JSONObject tokenJson = JSONObject.parseObject(response);
if(!tokenJson.get("code").toString().equals("0")) {
log.error("请求出现异常:" + tokenJson.get("msg") + " " + tokenJson);
}
}
@Override
public void sendKnowledgeBaseInfoCard(JSONObject jsonObject) {
String[] userIds = jsonObject.getString("user_id").split(",");
String clickStr = JSONObject.toJSONString(JSONObject.parseObject(JSONObject.toJSONString(jsonObject.get("action"))).get("value"));
log.info("用户点击的数据: " + clickStr);
String sendJson = " ";
JSONObject clickJson = JSONObject.parseObject(clickStr);
if(StringUtils.isNotEmpty(clickJson.getString("chosen"))){
sendJson = clickJson.getString("chosen");
}
String token = null;
try {
token = getTenantAccessToken();
} catch (IOException e) {
e.printStackTrace();
}
// 设置请求头
Map<String, String> headerMap = new HashMap<>();
headerMap.put("Authorization", "Bearer " + token);
headerMap.put("Content-Type", "application/json; charset=utf-8");
// 设置消息标题
JSONObject zh_cn = new JSONObject();
zh_cn.put("title", "title");
// 设置消息内容
// 第一行
JSONObject contentOne = new JSONObject();
contentOne.put("tag", "text");
contentOne.put("text", sendJson);
List<JSONObject> contentList = new ArrayList<>();
contentList.add(contentOne);
List<List<JSONObject>> list = new ArrayList<>();
list.add(contentList);
zh_cn.put("content", list);
JSONObject post = new JSONObject();
post.put("zh_cn", zh_cn);
JSONObject contentObj = new JSONObject();
contentObj.put("post", post);
// 设置请求参数
JSONObject paramsMap = new JSONObject();
paramsMap.put("user_ids", userIds);
paramsMap.put("msg_type", "post");
paramsMap.put("content", contentObj);
// 发送请求给飞书
String response = null;
try {
response = HttpRequestUtil.getResponseOfPOST(batchSendMessageUrl, headerMap, paramsMap.toJSONString());
} catch (IOException e) {
e.printStackTrace();
}
// 返回结果样例{"code":0,"data":{"invalid_department_ids":[],"invalid_open_ids":[],"invalid_union_ids":[],"invalid_user_ids":[],"message_id":"bm-d595567e4f448fafe397bc916f0be646"},"msg":"ok"}
// 获取返回结果
JSONObject tokenJson = JSONObject.parseObject(response);
if(!tokenJson.get("code").toString().equals("0")) {
log.error("请求出现异常:" + tokenJson.get("msg") + " " + tokenJson);
}
}
}
@@ -0,0 +1,55 @@
package com.jero.modules.feishu.utils;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
/**
* 飞书解密工具类
* @Author: wzj
* @Date: 2022/8/4 10:52
**/
public class LarkDecryptUtil {
public static void main(String[] args) throws Exception {
LarkDecryptUtil d = new LarkDecryptUtil("test key");
System.out.println(d.decrypt("P37w+VZImNgPEO1RBhJ6RtKl7n6zymIbEG1pReEzghk=")); //hello world
}
private byte[] keyBs;
public LarkDecryptUtil(String key) {
MessageDigest digest = null;
try {
digest = MessageDigest.getInstance("SHA-256");
} catch (NoSuchAlgorithmException e) {
// won't happen
}
keyBs = digest.digest(key.getBytes(StandardCharsets.UTF_8));
}
public String decrypt(String base64) throws Exception {
byte[] decode = Base64.getDecoder().decode(base64);
Cipher cipher = Cipher.getInstance("AES/CBC/NOPADDING");
byte[] iv = new byte[16];
System.arraycopy(decode, 0, iv, 0, 16);
byte[] data = new byte[decode.length - 16];
System.arraycopy(decode, 16, data, 0, data.length);
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(keyBs, "AES"), new IvParameterSpec(iv));
byte[] r = cipher.doFinal(data);
if (r.length > 0) {
int p = r.length - 1;
for (; p >= 0 && r[p] <= 16; p--) {
}
if (p != r.length - 1) {
byte[] rr = new byte[p + 1];
System.arraycopy(r, 0, rr, 0, p + 1);
r = rr;
}
}
return new String(r, StandardCharsets.UTF_8);
}
}
@@ -0,0 +1,170 @@
package com.jero.modules.problemKnowledgeBase.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.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseDetailEOService;
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: 问题知识库-country_card-管理发布明细表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
@Api(tags="问题知识库-country_card-管理发布明细表")
@RestController
@RequestMapping("/problemKnowledgeBase/countryCardManageReleaseDetailEO")
@Slf4j
public class CountryCardManageReleaseDetailEOController extends JeroController<CountryCardManageReleaseDetailEO, ICountryCardManageReleaseDetailEOService> {
@Autowired
private ICountryCardManageReleaseDetailEOService countryCardManageReleaseDetailEOService;
/**
* 分页列表查询
*
* @param countryCardManageReleaseDetailEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布明细表-分页列表查询")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-分页列表查询", notes="问题知识库-country_card-管理发布明细表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<CountryCardManageReleaseDetailEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardManageReleaseDetailEO, req.getParameterMap());
Page<CountryCardManageReleaseDetailEO> page = new Page<CountryCardManageReleaseDetailEO>(pageNo, pageSize);
IPage<CountryCardManageReleaseDetailEO> pageList = countryCardManageReleaseDetailEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布明细表-列表查询")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-列表查询", notes="问题知识库-country_card-管理发布明细表-列表查询")
@GetMapping(value = "/list")
public Result<List<CountryCardManageReleaseDetailEO>> queryList() {
List<CountryCardManageReleaseDetailEO> list = countryCardManageReleaseDetailEOService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param countryCardManageReleaseDetailEO
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布明细表-添加")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-添加", notes="问题知识库-country_card-管理发布明细表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
countryCardManageReleaseDetailEOService.add(countryCardManageReleaseDetailEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param countryCardManageReleaseDetailEO
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布明细表-编辑")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-编辑", notes="问题知识库-country_card-管理发布明细表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
countryCardManageReleaseDetailEOService.editById(countryCardManageReleaseDetailEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布明细表-通过id删除")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-通过id删除", notes="问题知识库-country_card-管理发布明细表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
countryCardManageReleaseDetailEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布明细表-批量删除")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-批量删除", notes="问题知识库-country_card-管理发布明细表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.countryCardManageReleaseDetailEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布明细表-通过id查询")
@ApiOperation(value="问题知识库-country_card-管理发布明细表-通过id查询", notes="问题知识库-country_card-管理发布明细表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO = countryCardManageReleaseDetailEOService.queryById(id);
if(countryCardManageReleaseDetailEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(countryCardManageReleaseDetailEO);
}
/**
* 导出excel
*
* @param request
* @param countryCardManageReleaseDetailEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
return super.exportXls(request, countryCardManageReleaseDetailEO, CountryCardManageReleaseDetailEO.class, "问题知识库-country_card-管理发布明细表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, CountryCardManageReleaseDetailEO.class);
}
}
@@ -0,0 +1,170 @@
package com.jero.modules.problemKnowledgeBase.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.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseEOService;
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: 问题知识库-country_card-管理发布表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
@Api(tags="问题知识库-country_card-管理发布表")
@RestController
@RequestMapping("/problemKnowledgeBase/countryCardManageReleaseEO")
@Slf4j
public class CountryCardManageReleaseEOController extends JeroController<CountryCardManageReleaseEO, ICountryCardManageReleaseEOService> {
@Autowired
private ICountryCardManageReleaseEOService countryCardManageReleaseEOService;
/**
* 分页列表查询
*
* @param countryCardManageReleaseEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布表-分页列表查询")
@ApiOperation(value="问题知识库-country_card-管理发布表-分页列表查询", notes="问题知识库-country_card-管理发布表-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(CountryCardManageReleaseEO countryCardManageReleaseEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<CountryCardManageReleaseEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardManageReleaseEO, req.getParameterMap());
Page<CountryCardManageReleaseEO> page = new Page<CountryCardManageReleaseEO>(pageNo, pageSize);
IPage<CountryCardManageReleaseEO> pageList = countryCardManageReleaseEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布表-列表查询")
@ApiOperation(value="问题知识库-country_card-管理发布表-列表查询", notes="问题知识库-country_card-管理发布表-列表查询")
@GetMapping(value = "/list")
public Result<List<CountryCardManageReleaseEO>> queryList() {
List<CountryCardManageReleaseEO> list = countryCardManageReleaseEOService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param countryCardManageReleaseEO
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布表-添加")
@ApiOperation(value="问题知识库-country_card-管理发布表-添加", notes="问题知识库-country_card-管理发布表-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody CountryCardManageReleaseEO countryCardManageReleaseEO) {
countryCardManageReleaseEOService.add(countryCardManageReleaseEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param countryCardManageReleaseEO
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布表-编辑")
@ApiOperation(value="问题知识库-country_card-管理发布表-编辑", notes="问题知识库-country_card-管理发布表-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody CountryCardManageReleaseEO countryCardManageReleaseEO) {
countryCardManageReleaseEOService.editById(countryCardManageReleaseEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布表-通过id删除")
@ApiOperation(value="问题知识库-country_card-管理发布表-通过id删除", notes="问题知识库-country_card-管理发布表-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
countryCardManageReleaseEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布表-批量删除")
@ApiOperation(value="问题知识库-country_card-管理发布表-批量删除", notes="问题知识库-country_card-管理发布表-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.countryCardManageReleaseEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "问题知识库-country_card-管理发布表-通过id查询")
@ApiOperation(value="问题知识库-country_card-管理发布表-通过id查询", notes="问题知识库-country_card-管理发布表-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
CountryCardManageReleaseEO countryCardManageReleaseEO = countryCardManageReleaseEOService.queryById(id);
if(countryCardManageReleaseEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(countryCardManageReleaseEO);
}
/**
* 导出excel
*
* @param request
* @param countryCardManageReleaseEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, CountryCardManageReleaseEO countryCardManageReleaseEO) {
return super.exportXls(request, countryCardManageReleaseEO, CountryCardManageReleaseEO.class, "问题知识库-country_card-管理发布表");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, CountryCardManageReleaseEO.class);
}
}
@@ -1,5 +1,6 @@
package com.jero.modules.problemKnowledgeBase.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
@@ -35,7 +36,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class CountryCardTempEOController extends JeroController<CountryCardTempEO, ICountryCardTempEOService> {
@Autowired
private ICountryCardTempEOService countryCardTempEOService;
/**
* 分页列表查询
*
@@ -55,6 +56,7 @@ public class CountryCardTempEOController extends JeroController<CountryCardTempE
QueryWrapper<CountryCardTempEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardTempEO, req.getParameterMap());
Page<CountryCardTempEO> page = new Page<CountryCardTempEO>(pageNo, pageSize);
IPage<CountryCardTempEO> pageList = countryCardTempEOService.page(page, queryWrapper);
this.countryCardTempEOService.disposeData(pageList.getRecords(),countryCardTempEO.getCut());
return Result.OK(pageList);
}
@@ -66,8 +68,9 @@ public class CountryCardTempEOController extends JeroController<CountryCardTempE
@AutoLog(value = "Country Card模板维护表-列表查询")
@ApiOperation(value="Country Card模板维护表-列表查询", notes="Country Card模板维护表-列表查询")
@GetMapping(value = "/list")
public Result<List<CountryCardTempEO>> queryList() {
List<CountryCardTempEO> list = countryCardTempEOService.queryList();
public Result<List<CountryCardTempEO>> queryList(CountryCardTempEO countryCardTempEO,HttpServletRequest req) {
List<CountryCardTempEO> list = countryCardTempEOService.queryList(countryCardTempEO,req);
this.countryCardTempEOService.disposeData(list,countryCardTempEO.getCut());
return Result.OK(list);
}
@@ -141,7 +144,16 @@ public class CountryCardTempEOController extends JeroController<CountryCardTempE
if(countryCardTempEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(countryCardTempEO);
List<CountryCardTempEO> countryCardTempEOList = new ArrayList<>();
countryCardTempEOList.add(countryCardTempEO);
this.countryCardTempEOService.disposeData(countryCardTempEOList,countryCardTempEO.getCut());
if(countryCardTempEOList.size() == 0){
return Result.error("未找到对应数据");
}
return Result.OK(countryCardTempEOList.get(0));
}
/**
@@ -35,7 +35,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class CountryCardTempItemEOController extends JeroController<CountryCardTempItemEO, ICountryCardTempItemEOService> {
@Autowired
private ICountryCardTempItemEOService countryCardTempItemEOService;
/**
* 分页列表查询
*
@@ -66,8 +66,8 @@ public class CountryCardTempItemEOController extends JeroController<CountryCardT
@AutoLog(value = "Country Card模板维护-字典项表-列表查询")
@ApiOperation(value="Country Card模板维护-字典项表-列表查询", notes="Country Card模板维护-字典项表-列表查询")
@GetMapping(value = "/list")
public Result<List<CountryCardTempItemEO>> queryList() {
List<CountryCardTempItemEO> list = countryCardTempItemEOService.queryList();
public Result<List<CountryCardTempItemEO>> queryList(CountryCardTempItemEO countryCardTempItemEO,HttpServletRequest req) {
List<CountryCardTempItemEO> list = countryCardTempItemEOService.queryList(countryCardTempItemEO,req);
return Result.OK(list);
}
@@ -0,0 +1,84 @@
package com.jero.modules.problemKnowledgeBase.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
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: 问题知识库-country_card-管理发布明细表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
@Data
@TableName("country_card_manage_release_detail")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="country_card_manage_release_detail对象", description="问题知识库-country_card-管理发布明细表")
public class CountryCardManageReleaseDetailEO 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;
/**country_card管理发布表id*/
@Excel(name = "country_card管理发布表id", width = 15)
@ApiModelProperty(value = "country_card管理发布表id")
private java.lang.String countryCardManageReleaseId;
/**模板表id*/
@Excel(name = "模板表id", width = 15)
@ApiModelProperty(value = "模板表id")
private java.lang.String countryCardTempId;
/**描述*/
@Excel(name = "描述", width = 15)
@ApiModelProperty(value = "描述")
private java.lang.String description;
/**内容*/
@Excel(name = "内容", width = 15)
@ApiModelProperty(value = "内容")
private java.lang.String content;
}
@@ -0,0 +1,74 @@
package com.jero.modules.problemKnowledgeBase.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
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: 问题知识库-country_card-管理发布表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
@Data
@TableName("country_card_manage_release")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="country_card_manage_release对象", description="问题知识库-country_card-管理发布表")
public class CountryCardManageReleaseEO 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 applyMarket;
/**发布状态*/
@Excel(name = "发布状态", width = 15)
@ApiModelProperty(value = "发布状态")
private java.lang.String releaseStatus;
}
@@ -3,7 +3,10 @@ package com.jero.modules.problemKnowledgeBase.entity;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.util.List;
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;
@@ -86,4 +89,10 @@ public class CountryCardTempEO implements Serializable {
@ApiModelProperty(value = "描述")
private java.lang.String description;
/**Country Card模板维护-字典项实体*/
@TableField(exist = false)
private List<CountryCardTempItemEO> countryCardTempItemEOList;
@TableField(exist = false)
private String cut;
}
@@ -0,0 +1,49 @@
package com.jero.modules.problemKnowledgeBase.enums;
import com.jero.common.constant.enums.CutEnum;
import org.apache.commons.lang3.StringUtils;
/**
* 标签类型枚举类
*/
public enum LableTypeEnum {
PULL_SINGLE("单选下拉框","Option drop - down box","3"),
FILE("文件","file","7"),
TEXT("文本框","text","8"),
LINK("链接输入","Link to the input","9"),
;
String cnName;
String enName;
String value;
private LableTypeEnum(String cnName,String enName, String value) {
this.cnName = cnName;
this.enName = enName;
this.value = value;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public static String getTextByValue(String value,String cut) {
LableTypeEnum[] values = values();
for (LableTypeEnum taskStatusEnum : values) {
if (taskStatusEnum.value.equals(value)) {
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
return taskStatusEnum.cnName;
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
return taskStatusEnum.enName;
}
}
}
return null;
}
}
@@ -0,0 +1,17 @@
package com.jero.modules.problemKnowledgeBase.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 问题知识库-country_card-管理发布明细表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
public interface CountryCardManageReleaseDetailEOMapper extends BaseMapper<CountryCardManageReleaseDetailEO> {
}
@@ -0,0 +1,17 @@
package com.jero.modules.problemKnowledgeBase.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 问题知识库-country_card-管理发布表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
public interface CountryCardManageReleaseEOMapper extends BaseMapper<CountryCardManageReleaseEO> {
}
@@ -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.problemKnowledgeBase.mapper.CountryCardManageReleaseDetailEOMapper">
<resultMap id="CountryCardManageReleaseDetailEOResultMap" type="com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO">
<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="country_card_manage_release_id" property="countryCardManageReleaseId" />
<result column="country_card_temp_id" property="countryCardTempId" />
<result column="description" property="description" />
<result column="content" property="content" />
</resultMap>
</mapper>
@@ -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.problemKnowledgeBase.mapper.CountryCardManageReleaseEOMapper">
<resultMap id="CountryCardManageReleaseEOResultMap" type="com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO">
<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="apply_market" property="applyMarket" />
<result column="release_status" property="releaseStatus" />
</resultMap>
</mapper>
@@ -0,0 +1,61 @@
package com.jero.modules.problemKnowledgeBase.service;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 问题知识库-country_card-管理发布明细表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
public interface ICountryCardManageReleaseDetailEOService extends IService<CountryCardManageReleaseDetailEO> {
/**
* 保存
*
* @param countryCardManageReleaseDetailEO
* @return
*/
void add(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO);
/**
* 更新
*
* @param countryCardManageReleaseDetailEO
* @return
*/
void editById(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
CountryCardManageReleaseDetailEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<CountryCardManageReleaseDetailEO> queryList();
}
@@ -0,0 +1,61 @@
package com.jero.modules.problemKnowledgeBase.service;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 问题知识库-country_card-管理发布表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
public interface ICountryCardManageReleaseEOService extends IService<CountryCardManageReleaseEO> {
/**
* 保存
*
* @param countryCardManageReleaseEO
* @return
*/
void add(CountryCardManageReleaseEO countryCardManageReleaseEO);
/**
* 更新
*
* @param countryCardManageReleaseEO
* @return
*/
void editById(CountryCardManageReleaseEO countryCardManageReleaseEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
CountryCardManageReleaseEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<CountryCardManageReleaseEO> queryList();
}
@@ -2,6 +2,8 @@ package com.jero.modules.problemKnowledgeBase.service;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempEO;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -57,5 +59,12 @@ public interface ICountryCardTempEOService extends IService<CountryCardTempEO> {
*
* @return
*/
List<CountryCardTempEO> queryList();
List<CountryCardTempEO> queryList(CountryCardTempEO countryCardTempEO, HttpServletRequest req);
/***
* 处理数据
* @param datas
* @param cut
*/
void disposeData(List<CountryCardTempEO> datas, String cut);
}
@@ -1,7 +1,10 @@
package com.jero.modules.problemKnowledgeBase.service;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempItemEO;
import com.baomidou.mybatisplus.extension.service.IService;
import javax.servlet.http.HttpServletRequest;
import java.util.List;
/**
@@ -57,5 +60,7 @@ public interface ICountryCardTempItemEOService extends IService<CountryCardTempI
*
* @return
*/
List<CountryCardTempItemEO> queryList();
List<CountryCardTempItemEO> queryList(CountryCardTempItemEO countryCardTempItemEO, HttpServletRequest req);
void batchInsert(List<CountryCardTempItemEO> countryCardTempItemEOList, String id,String cut);
}
@@ -0,0 +1,92 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseDetailEO;
import com.jero.modules.problemKnowledgeBase.mapper.CountryCardManageReleaseDetailEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseDetailEOService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 问题知识库-country_card-管理发布明细表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class CountryCardManageReleaseDetailEOServiceImpl extends ServiceImpl<CountryCardManageReleaseDetailEOMapper, CountryCardManageReleaseDetailEO> implements ICountryCardManageReleaseDetailEOService {
/**
* 保存
*
* @param countryCardManageReleaseDetailEO
* @return
*/
@Override
public void add(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
Date now = new Date();
countryCardManageReleaseDetailEO.setCreateTime(now);
countryCardManageReleaseDetailEO.setUpdateTime(now);
save(countryCardManageReleaseDetailEO);
}
/**
* 更新
*
* @param countryCardManageReleaseDetailEO
* @return
*/
@Override
public void editById(CountryCardManageReleaseDetailEO countryCardManageReleaseDetailEO) {
Date now = new Date();
countryCardManageReleaseDetailEO.setUpdateTime(now);
saveOrUpdate(countryCardManageReleaseDetailEO);
}
/**
* 通过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 CountryCardManageReleaseDetailEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<CountryCardManageReleaseDetailEO> queryList() {
return list();
}
}
@@ -0,0 +1,92 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardManageReleaseEO;
import com.jero.modules.problemKnowledgeBase.mapper.CountryCardManageReleaseEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardManageReleaseEOService;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 问题知识库-country_card-管理发布表
* @Author: jero-boot
* @Date: 2022-08-04
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class CountryCardManageReleaseEOServiceImpl extends ServiceImpl<CountryCardManageReleaseEOMapper, CountryCardManageReleaseEO> implements ICountryCardManageReleaseEOService {
/**
* 保存
*
* @param countryCardManageReleaseEO
* @return
*/
@Override
public void add(CountryCardManageReleaseEO countryCardManageReleaseEO) {
Date now = new Date();
countryCardManageReleaseEO.setCreateTime(now);
countryCardManageReleaseEO.setUpdateTime(now);
save(countryCardManageReleaseEO);
}
/**
* 更新
*
* @param countryCardManageReleaseEO
* @return
*/
@Override
public void editById(CountryCardManageReleaseEO countryCardManageReleaseEO) {
Date now = new Date();
countryCardManageReleaseEO.setUpdateTime(now);
saveOrUpdate(countryCardManageReleaseEO);
}
/**
* 通过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 CountryCardManageReleaseEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<CountryCardManageReleaseEO> queryList() {
return list();
}
}
@@ -1,12 +1,28 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempItemEO;
import com.jero.modules.problemKnowledgeBase.enums.LableTypeEnum;
import com.jero.modules.problemKnowledgeBase.mapper.CountryCardTempEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardTempEOService;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardTempItemEOService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
/**
* @Description: Country Card模板维护表
@@ -15,8 +31,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOMapper, CountryCardTempEO> implements ICountryCardTempEOService {
@Autowired
private ICountryCardTempItemEOService countryCardTempItemEOService;
/**
* 保存
*
@@ -29,6 +49,10 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
countryCardTempEO.setCreateTime(now);
countryCardTempEO.setUpdateTime(now);
save(countryCardTempEO);
//如果选择了下拉框
if(StringUtils.equals(countryCardTempEO.getLableType(), LableTypeEnum.PULL_SINGLE.getValue())){
this.countryCardTempItemEOService.batchInsert(countryCardTempEO.getCountryCardTempItemEOList(),countryCardTempEO.getId(),countryCardTempEO.getCut());
}
}
/**
@@ -42,6 +66,10 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
Date now = new Date();
countryCardTempEO.setUpdateTime(now);
saveOrUpdate(countryCardTempEO);
//如果选择了下拉框
if(StringUtils.equals(countryCardTempEO.getLableType(), LableTypeEnum.PULL_SINGLE.getValue())){
this.countryCardTempItemEOService.batchInsert(countryCardTempEO.getCountryCardTempItemEOList(),countryCardTempEO.getId(),countryCardTempEO.getCut());
}
}
/**
@@ -83,7 +111,35 @@ public class CountryCardTempEOServiceImpl extends ServiceImpl<CountryCardTempEOM
* @return
*/
@Override
public List<CountryCardTempEO> queryList() {
return list();
public List<CountryCardTempEO> queryList(CountryCardTempEO countryCardTempEO, HttpServletRequest req) {
QueryWrapper<CountryCardTempEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardTempEO, req.getParameterMap());
List<CountryCardTempEO> result = this.list(queryWrapper);
return result;
}
@Override
public void disposeData(List<CountryCardTempEO> datas, String cut) {
if (CollectionUtils.isNotEmpty(datas)) {
List<String> countroCardTempIdList = datas.stream().map(CountryCardTempEO::getId).distinct().collect(Collectors.toList());
QueryWrapper<CountryCardTempItemEO> tempItemEOQueryWrapper = new QueryWrapper<>();
tempItemEOQueryWrapper.lambda().in(CountryCardTempItemEO::getCountryCardTempId,countroCardTempIdList);
List<CountryCardTempItemEO> countryCardTempItemEOList = this.countryCardTempItemEOService.list(tempItemEOQueryWrapper);
datas.forEach(countryCardTemp -> {
//如果该条数据的标签类型是下拉选项
if(CollectionUtils.isNotEmpty(countryCardTempItemEOList) && StringUtils.equals(countryCardTemp.getLableType(),LableTypeEnum.PULL_SINGLE.getValue())){
//把这条模板的下拉选项设置进去
List<CountryCardTempItemEO> collect = countryCardTempItemEOList.stream().filter(countryCardTempItemEO -> {
boolean flag = false;
if (StringUtils.equals(countryCardTemp.getId(), countryCardTempItemEO.getCountryCardTempId())) {
flag = true;
}
return flag;
}).collect(Collectors.toList());
countryCardTemp.setCountryCardTempItemEOList(collect);
}
});
}
}
}
@@ -1,12 +1,26 @@
package com.jero.modules.problemKnowledgeBase.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.constant.CommonConstant;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempEO;
import com.jero.modules.problemKnowledgeBase.entity.CountryCardTempItemEO;
import com.jero.modules.problemKnowledgeBase.mapper.CountryCardTempItemEOMapper;
import com.jero.modules.problemKnowledgeBase.service.ICountryCardTempItemEOService;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import java.util.UUID;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletRequest;
/**
* @Description: Country Card模板维护-字典项表
@@ -15,6 +29,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class CountryCardTempItemEOServiceImpl extends ServiceImpl<CountryCardTempItemEOMapper, CountryCardTempItemEO> implements ICountryCardTempItemEOService {
/**
@@ -83,7 +98,34 @@ public class CountryCardTempItemEOServiceImpl extends ServiceImpl<CountryCardTem
* @return
*/
@Override
public List<CountryCardTempItemEO> queryList() {
return list();
public List<CountryCardTempItemEO> queryList(CountryCardTempItemEO countryCardTempItemEO, HttpServletRequest req) {
QueryWrapper<CountryCardTempItemEO> queryWrapper = QueryGenerator.initQueryWrapper(countryCardTempItemEO, req.getParameterMap());
List<CountryCardTempItemEO> countryCardTempItemEOList = this.list(queryWrapper);
return countryCardTempItemEOList;
}
@Override
public void batchInsert(List<CountryCardTempItemEO> countryCardTempItemEOList, String countryCardTempId,String cut) {
if(CollectionUtils.isEmpty(countryCardTempItemEOList)){
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
throw new JeroBootException("请维护下拉选项值!");
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
throw new JeroBootException("Please maintain the drop-down option values!");
}
}
countryCardTempItemEOList.forEach(countryCardTempItemEO -> {
if(StringUtils.isEmpty(countryCardTempItemEO.getItemValue())){
String itemValue = UUID.randomUUID().toString().replace("-", "");
countryCardTempItemEO.setItemValue(itemValue);
}
countryCardTempItemEO.setCountryCardTempId(countryCardTempId);
countryCardTempItemEO.setDelFlag(String.valueOf(CommonConstant.DEL_FLAG_0));
});
QueryWrapper<CountryCardTempItemEO> deleteWrapper = new QueryWrapper<>();
deleteWrapper.lambda().eq(CountryCardTempItemEO::getCountryCardTempId,countryCardTempId);
this.baseMapper.delete(deleteWrapper);
this.saveBatch(countryCardTempItemEOList);
}
}
@@ -7,6 +7,8 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 问题知识库浏览历史表
@@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseBrowsingHistoryEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseBrowsingHistoryEOMapper, ProblemKnowledgeBaseBrowsingHistoryEO> implements IProblemKnowledgeBaseBrowsingHistoryEOService {
/**
@@ -7,6 +7,8 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 问题知识库-分类表
@@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseClassifyEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseClassifyEOMapper, ProblemKnowledgeBaseClassifyEO> implements IProblemKnowledgeBaseClassifyEOService {
/**
@@ -7,6 +7,8 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 问题知识库收藏表
@@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseCollectEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseCollectEOMapper, ProblemKnowledgeBaseCollectEO> implements IProblemKnowledgeBaseCollectEOService {
/**
@@ -7,6 +7,8 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 问题知识库评论表
@@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseCommentEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseCommentEOMapper, ProblemKnowledgeBaseCommentEO> implements IProblemKnowledgeBaseCommentEOService {
/**
@@ -7,6 +7,8 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 问题知识库表
@@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseEOMapper, ProblemKnowledgeBaseEO> implements IProblemKnowledgeBaseEOService {
/**
@@ -7,6 +7,8 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 问题知识库点赞表
@@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBasePraiseEOServiceImpl extends ServiceImpl<ProblemKnowledgeBasePraiseEOMapper, ProblemKnowledgeBasePraiseEO> implements IProblemKnowledgeBasePraiseEOService {
/**
@@ -7,6 +7,8 @@ import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
/**
* @Description: 问题知识库展示权限表
@@ -15,6 +17,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
* @Version: V1.0
*/
@Service
@Transactional(value = "transactionManager", readOnly = false, propagation = Propagation.REQUIRED, rollbackFor = Throwable.class)
public class ProblemKnowledgeBaseUserEOServiceImpl extends ServiceImpl<ProblemKnowledgeBaseUserEOMapper, ProblemKnowledgeBaseUserEO> implements IProblemKnowledgeBaseUserEOService {
/**
@@ -116,6 +116,8 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
Date trueNow = cal1.getTime();
for (ProjectTaskPlanning projectTaskPlanning : list) {
List<TimeNodeVO> timeNodeVOS = new ArrayList<>();
// 清单确认
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getListConfirmation())) {
listConfirmationVO = new TimeNodeVO();
@@ -137,6 +139,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
timeNodeVOS.add(listConfirmationVO);
}
// 任务确认
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getLegalTaskConfirmation())) {
TimeNodeVO legalTaskConfirmationVO = new TimeNodeVO();
@@ -158,6 +161,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
timeNodeVOS.add(legalTaskConfirmationVO);
}
// 设计符合性
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getDesignDeadline())) {
TimeNodeVO designDeadlineVO = new TimeNodeVO();
@@ -179,6 +183,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
timeNodeVOS.add(designDeadlineVO);
}
// 摸底试验结束
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getPrehomoDeadline())) {
TimeNodeVO prehomoDeadlineVO = new TimeNodeVO();
@@ -200,6 +205,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
timeNodeVOS.add(prehomoDeadlineVO);
}
// 认证试验结束
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getAttestationStartTime())) {
TimeNodeVO attestationStartTimeVO = new TimeNodeVO();
@@ -220,6 +226,8 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
attestationStartTimeVO.setProjectId(projectTaskPlanning.getProjectId());
timeNodeVOS.add(attestationStartTimeVO);
}
// 认证批准
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getAttestationEndTime())) {
TimeNodeVO attestationEndTimeVO = new TimeNodeVO();
@@ -241,6 +249,7 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
timeNodeVOS.add(attestationEndTimeVO);
}
// 验证符合性
if(ObjectUtils.isNotEmpty(projectTaskPlanning.getVerifyDeadline())) {
TimeNodeVO verifyDeadlineVO = new TimeNodeVO();
@@ -261,8 +270,13 @@ public class ProjectTaskPlanningServiceImpl extends ServiceImpl<ProjectTaskPlann
verifyDeadlineVO.setProjectId(projectTaskPlanning.getProjectId());
timeNodeVOS.add(verifyDeadlineVO);
}
// 排序
Collections.sort(timeNodeVOS, listConfirmationVO);
// Collections.sort(timeNodeVOS, listConfirmationVO);
timeNodeVOS = timeNodeVOS.stream()
.sorted(Comparator.comparing(TimeNodeVO::getTime))
.collect(Collectors.toList());
//设置在已过时,和未发生之间的数据的状态为进行中
for(int i=0;i<timeNodeVOS.size();i++){
if(i == timeNodeVOS.size()-1){
@@ -100,7 +100,7 @@ public class LawsMonthlyReportTitleTemplateEOController extends JeroController<L
*/
@AutoLog(value = "月报标题模板-编辑")
@ApiOperation(value="月报标题模板-编辑", notes="月报标题模板-编辑")
@GetMapping(value = "/edit")
@PostMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody LawsMonthlyReportTitleTemplateEO lawsMonthlyReportTitleTemplateEO) {
lawsMonthlyReportTitleTemplateEOService.editById(lawsMonthlyReportTitleTemplateEO);
return Result.OK("编辑成功!");
@@ -103,6 +103,7 @@ public class LawsMonthlyReportManageEOServiceImpl extends ServiceImpl<LawsMonthl
query.in("create_by",sysUser.getUsername()).in("issue_status", InventoryStateEnum.TO_BE_RELEASED.getValue())
.or().in("issue_status",InventoryStateEnum.ISSUE.getValue());
});
queryWrapper.orderByDesc("create_time");
Page<LawsMonthlyReportManageEO> pageInfo = this.page(page, queryWrapper);
return pageInfo;
}
@@ -5,12 +5,15 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.report.entity.LawsMonthlyReportTitleTemplateEO;
import com.jero.modules.report.entity.LawsMonthlyReportWriteEO;
import com.jero.modules.report.mapper.LawsMonthlyReportTitleTemplateEOMapper;
import com.jero.modules.report.service.ILawsMonthlyReportTitleTemplateEOService;
import com.jero.modules.report.vo.LawsMonthlyReportTitleTemplateVO;
import com.jero.modules.system.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
@@ -30,6 +33,8 @@ import java.util.stream.Collectors;
@Service
public class LawsMonthlyReportTitleTemplateEOServiceImpl extends ServiceImpl<LawsMonthlyReportTitleTemplateEOMapper, LawsMonthlyReportTitleTemplateEO> implements ILawsMonthlyReportTitleTemplateEOService {
@Autowired
private LawsMonthlyReportWriteEOServiceImpl lawsMonthlyReportWriteEOService;
/**
* 保存
*
@@ -98,7 +103,22 @@ public class LawsMonthlyReportTitleTemplateEOServiceImpl extends ServiceImpl<Law
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
//标题下存在内容或子标题时不能删除
//1. 判断是否存在子标题
LambdaQueryWrapper<LawsMonthlyReportTitleTemplateEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsMonthlyReportTitleTemplateEO::getParentId,ids);
List<LawsMonthlyReportTitleTemplateEO> list = this.list(wrapper);
if(list.size() != 0){
throw new JeroBootException("该标题下存在子标题,不能删除");
}
//2. 判断是否存在内容 memories_chapter
LambdaQueryWrapper<LawsMonthlyReportWriteEO> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(LawsMonthlyReportWriteEO::getMemoriesChapter,ids);
List<LawsMonthlyReportWriteEO> lawsMonthlyReportWriteEOS = lawsMonthlyReportWriteEOService.list(lambdaQueryWrapper);
if(lawsMonthlyReportWriteEOS.size() != 0){
throw new JeroBootException("该标题下存在新增内容,不能删除");
}
removeByIds(ids);
}
/**
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.ModuleEnum;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.LoginUser;
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
import com.jero.modules.document.enums.FieldTypeEnum;
@@ -29,11 +30,14 @@ import com.jero.modules.report.service.INewStandardTemplateEOService;
import com.jero.modules.report.util.WordUtil;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.enums.ProjectRoleEnum;
import com.jero.modules.system.service.impl.SysBaseApiImpl;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
import com.jero.modules.system.util.StringUtils;
import org.apache.poi.xwpf.usermodel.ParagraphAlignment;
import org.apache.poi.xwpf.usermodel.XWPFDocument;
import org.apache.shiro.SecurityUtils;
import org.aspectj.util.FileUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@@ -81,6 +85,8 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
private BussDocumentLibraryEOMapper bussDocumentLibraryEOMapper;
@Autowired
private SysDictItemServiceImpl sysDictItemServiceImpl;
@Autowired
private SysBaseApiImpl sysBaseApi;
/**
* 保存
*
@@ -92,6 +98,7 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
Date now = new Date();
lawsMonthlyReportWriteEO.setCreateTime(now);
lawsMonthlyReportWriteEO.setUpdateTime(now);
lawsMonthlyReportWriteEO.setExportState(ExportStateEnum.NOT_EXPORT.getValue());
save(lawsMonthlyReportWriteEO);
if(ContentTemplateEnum.NEW_REQUEST_LIST_TEMPLATE.getValue().equals(lawsMonthlyReportWriteEO.getContentTemplate())){
@@ -261,6 +268,13 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
Integer pageSize,
HttpServletRequest req) {
QueryWrapper<LawsMonthlyReportWriteEO> queryWrapper = QueryGenerator.initQueryWrapper(lawsMonthlyReportWriteEOTemp, req.getParameterMap());
queryWrapper.orderByDesc("create_time");
//管理员查看全部数据,其余人只能查看自己的数据
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> rolesList = sysBaseApi.getRolesByUsername(currentUser.getUsername());
if(!rolesList.contains(ProjectRoleEnum.ADMIN.getCode())){
queryWrapper.in("create_by",currentUser.getUsername());
}
Page<LawsMonthlyReportWriteEO> page = new Page<LawsMonthlyReportWriteEO>(pageNo, pageSize);
Page<LawsMonthlyReportWriteEO> pageInfo = this.page(page, queryWrapper);
//法规月报id
@@ -522,6 +536,8 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
}else{
content = "Content";
}
//单独设置每页右侧的时间
WordUtil.exportWordMonth(document, lawsMonthlyReportWriteEOS.get(0).getMonth(), null, ParagraphAlignment.RIGHT, 0, 12, false, true, "微软雅黑");
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 12, false, true, "Microsoft YaHei UI");
WordUtil.exportWord(document, content, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Microsoft YaHei UI");
int oneCount = 1;
@@ -597,7 +613,9 @@ public class LawsMonthlyReportWriteEOServiceImpl extends ServiceImpl<LawsMonthly
content = "Content";
}
WordUtil.exportWord(document, titleCN, null, ParagraphAlignment.CENTER, 0, 12, false, true, "Microsoft YaHei UI");
WordUtil.exportWord(document, content, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Microsoft YaHei UI");
//单独设置每页右侧的时间
WordUtil.exportWordMonth(document, lawsMonthlyReportWriteEOS.get(0).getMonth(), null, ParagraphAlignment.RIGHT, 0, 12, false, true, "Microsoft YaHei UI");
// WordUtil.exportWord(document, content, null, ParagraphAlignment.LEFT, 0, 12, false, true, "Microsoft YaHei UI");
int oneCount = 1;
for (LawsMonthlyReportTitleTemplateEO lawsMonthlyReportTitleTemplateEO : reportTitleOneList) {
@@ -103,6 +103,100 @@ public class WordUtil {
}
}
/**
* 导出工具示例
*
* @param document POI文件类
* @param text 输出文本
* @param textColor 字体颜色
* @param align 字体位置默认居左
* @param spaceNum 预留空格数默认不留空格
* @param fontSize 字体大小默认11
* @param isNewline 是否换行换行后文本失效
* @param isBold 是否加粗默认不加粗
* @param fontFamily 字体默认宋体
*/
public static void exportWordMonth(XWPFDocument document,
String text,
String textColor,
ParagraphAlignment align,
Integer spaceNum,
Integer fontSize,
Boolean isNewline,
Boolean isBold,
String fontFamily) {
// CTSectPr sectPr = document.getDocument().getBody().addNewSectPr();
// XWPFHeaderFooterPolicy policy = new XWPFHeaderFooterPolicy(document, sectPr);
//
// //添加页眉
// CTP ctpHeader = CTP.Factory.newInstance();
// CTR ctrHeader = ctpHeader.addNewR();
// CTText ctHeader = ctrHeader.addNewT();
// String headerText = "Java POI create MS word file.";
// ctHeader.setStringValue(headerText);
// XWPFParagraph headerParagraph = new XWPFParagraph(ctpHeader, document);
// //设置为右对齐
// headerParagraph.setAlignment(ParagraphAlignment.RIGHT);
// XWPFParagraph[] parsHeader = new XWPFParagraph[1];
// parsHeader[0] = headerParagraph;
// try {
// policy.createHeader(XWPFHeaderFooterPolicy.DEFAULT, parsHeader);
// } catch (IOException e) {
// e.printStackTrace();
// }
//添加标题
XWPFParagraph titleParagraph = document.createParagraph();
//设置段落左对齐
if (align == null) {
titleParagraph.setAlignment(ParagraphAlignment.RIGHT);
} else {
titleParagraph.setAlignment(align);
}
XWPFRun titleParagraphRun = titleParagraph.createRun();
if (isNewline) {
titleParagraphRun.setText("\r");
} else {
//封装文字内容
StringBuilder newText = new StringBuilder();
for (int i = 0; i < spaceNum; i++) {
newText.append(" ");
}
newText.append(text);
titleParagraphRun.setText(newText.toString());
//设置颜色
if (StringUtils.isNotEmpty(textColor)) {
titleParagraphRun.setColor(textColor);
} else {
titleParagraphRun.setColor("000000");
}
//设置文字大小
if (ObjectUtil.isNotEmpty(fontSize)) {
titleParagraphRun.setFontSize(fontSize);
} else {
titleParagraphRun.setFontSize(11);
}
//设置加粗
if (ObjectUtil.isNotEmpty(isBold)) {
titleParagraphRun.setBold(isBold);
} else {
titleParagraphRun.setBold(false);
}
//设置字体样式
if (StringUtils.isNotEmpty(fontFamily)) {
titleParagraphRun.setFontFamily(fontFamily);
} else {
titleParagraphRun.setFontFamily("宋体");
}
}
}
public static void exportWordExcelDefault(XWPFDocument document,
LawsMonthlyReportWriteEO lawsMonthlyReportWriteEO,
@@ -413,15 +413,25 @@ Feishu:
# appId: cli_a16d47ca9f381013
# appSecret: DSfCrj70xku2VUjqwHBIuuY6HZnz7ppe
# wzj测试账号配置
appId: cli_a25c9fdae5bc100c
appSecret: zIS7BLzcWaFvlpdz7CqRJbwVml4g4ESy
# 事件订阅配置
eventSubscription:
# 加密密钥
encryptKey: EKdOsbNapPj0EFdFiBIINfn5FQrZ2QvQ
# 正式
# appId: cli_a2a1a6014679500d
# appSecret: AeHwisC82S0fhiREJg6bkdxhIZMevnZZ
# 事件订阅配置
#eventSubscription:
# 加密密钥 需要登录这个正式飞书账号,去事件订阅中获取
#encryptKey:
getTenantAccessTokenUrl: https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal
batchSendMessageUrl: https://open.feishu.cn/open-apis/message/v4/batch_send/
translateTextUrl: https://open.feishu.cn/open-apis/translation/v1/text/translate
local-tool:
uri: http://139.9.235.66:9022
opensso:
+166 -161
View File
@@ -40,7 +40,7 @@ module.exports = {
userName: 'User Name',
department: 'Department',
status: 'Status',
Operation: 'Operation',
operation: 'Operation',
aRcord: 'A Rcord',
OperationAllowedAccount: 'This Operation is not Allowed for administrator account, please select again!',
confirm: 'Confirm',
@@ -176,9 +176,9 @@ module.exports = {
MenuType: 'Menu Type',
menu: 'Menu',
ButtonsPermissions: 'Buttons / Permissions',
ConventionalExport:'Conventional Export',
CustomExport:'Custom Export',
CustomTemplateName:'Custom template name',
ConventionalExport: 'Conventional Export',
CustomExport: 'Custom Export',
CustomTemplateName: 'Custom template name',
assembly: 'Component',
route: 'Route',
AddSubmenu: 'Add Submenu',
@@ -388,8 +388,8 @@ module.exports = {
StandardDetails: 'Standard Details',
whole: 'Whole',
DocumentLibrary: 'Document Library',
GeneralExportInformation:'General export information',
CustomizeExportInformation:'Customize export information',
GeneralExportInformation: 'General export information',
CustomizeExportInformation: 'Customize export information',
DocumentComparisonLibrary: 'Document Comparison Library',
weekly: 'Weekly',
SyncLibrary: 'Sync To doc. Library',
@@ -714,7 +714,7 @@ module.exports = {
confirmationOfRegulationsList: 'Regulation List Confirmation',
regulatoryTaskConfirmation: 'Regulation Task Confirmation',
certificationStart: 'Homo Test Completion',
preHomoCompletion:'Pre-Homo Completion',
preHomoCompletion: 'Pre-Homo Completion',
certificationEnd: 'Type Approval',
directoryName: 'Catalogue Name',
batch: 'Batch',
@@ -735,7 +735,7 @@ module.exports = {
// 参数收集开始
MaintainConfigureInfo: 'Maintain Configuration Information',
ParameteItemCollectionList: 'Parameter item collection list',
ParameterViewPage:'Parameter View Page',
ParameterViewPage: 'Parameter View Page',
Areyousureparameteritems: 'Are you sure to submit the selected parameter items?',
Theselectedconfiguration: 'The configuration can only be added when the parameter items in the parameter list are to be collected or changed',
NoConfigurationNotStart: 'No configuration added, unable to start collection, please check',
@@ -802,10 +802,10 @@ module.exports = {
releaseVersion: 'Release Version',
parameterTemplate: 'Parameter Template',
contentDescription: 'Content Description',
WhetherMergeParameters:'Whether to merge parameters',
merge:'Merge',
nonjoinder:'Nonjoinder',
MergeSeparator:'Merge separator',
WhetherMergeParameters: 'Whether to merge parameters',
merge: 'Merge',
nonjoinder: 'Nonjoinder',
MergeSeparator: 'Merge separator',
parameterTemplateExportName: 'Parameter List',
parameterDataExport: 'Parameter Export Data',
// 参数收集结束
@@ -860,6 +860,7 @@ module.exports = {
experimentFailed: 'Test Failed',
toBeStarted: 'Not Start',
inProgress: 'In Progress',
Underway: 'Underway',
green: 'Green',
red: 'Red',
blue: 'Blue',
@@ -977,7 +978,7 @@ module.exports = {
disableInput: 'Disable Input',
taskConfirmationDeadline: 'Task Confirmation Deadline',
OnlyOrTaskconfirmationOut: 'Only when the list confirmation status or task confirmation status is to be confirmed can the reminder be carried out',
taskConfirmationResponsiblePerson:'Task confirmation of responsible person',
taskConfirmationResponsiblePerson: 'Task confirmation of responsible person',
or: 'or',
warningTime: 'Warning Time',
RegulationMonthlyManagement: 'Regulation Monthly Management',
@@ -1023,7 +1024,7 @@ module.exports = {
relevantSections: 'Relevant Sections',
questionsSuggestions: 'Questions Or Suggestions',
reason: 'Reason',
proposedTime:'Proposed Time',
proposedTime: 'Proposed Time',
feedbackPoint: 'Feedback Point',
link: 'Link',
planNoChinese: 'Plan No.',
@@ -1085,152 +1086,156 @@ module.exports = {
Templatenamelist: 'Template name - parameter item collection list',
newNiONumber: 'Number',
English: 'English',
requiredParametersEmpty:'Required parameters cannot be empty',
PleaseTaskConfirmationRejected:'Please select the data whose list confirmation status is accepted and task confirmation status is not initiated or rejected',
theProjectContactEmpty:'The project contact person of cannot be empty',
pleaseSelectinitiatedOrRejected:'Please select the data whose list confirmation status is not initiated or rejected',
TheEngineerAndCertification:'The regulatory engineer and Certification Engineer of cannot be empty',
theResponsiblePersonAndDeadlineClank:'The responsible person and deadline of cannot be blank',
bringInTheProjectInterface:'Bring in the project interface',
theCurrentListSaved:'The current list data has been submitted and cannot be temporarily saved',
defaultTemplate:'Default Template',
newRequestCommentListTemplate:'New request for comment list template',
NewReleasedStandardTemplate:'New released standard template',
pleaseSelectStandard:'Please select a standard',
theResponsiblePersonEmpty:'The responsible person of cannot be empty',
theDeadlineEmpty:'The deadline of cannot be empty',
theDeliveryTypeCannotBeEmpty:'The delivery type of cannot be empty',
For:'For',
markedRejection:'Marked Rejection',
RegulationListConfirmationTask:'Regulation List Confirmation Task',
RegulationListConfirmationNotification:'Regulation List Confirmation Notification',
RegulationTaskConfirmation:'Regulation Task Confirmation',
DesignComplianceTask:'Design Compliance Task',
PreHomoTask:'Pre-Homo Task',
ValidationTask:'Validation Task',
DesignComplianceNotification:'Design Compliance Notification',
PreHomoNotification:'Pre-Homo Notification',
ValidationComplianceNotification:'Validation Compliance Notification',
RegulationTaskConfirmationNotification:'Regulation Task Confirmation Notification',
evaluationMethod:'Evaluation method',
uploadRelevantMaterials:'Upload relevant materials',
processBackground:'Process background',
selectedStandard:'Selected standard',
standardDecompositionDocument:'Standard decomposition document',
pleaseSelectStandardFirst:'Please select a standard first',
RelevantMaterials:'RelevantMaterials',
evaluatorFeedback:'Evaluator feedback',
nameTechnicalDocument:'Name of technical document',
chapter:'chapter',
problemDescription:'Problem description',
filingExternalOpinions:'Filing of external opinions',
regulatoryTechnicalEvaluationResults:'Regulatory technical evaluation results',
initiateProcessForCurrentStandard:'Initiate process for current standard',
engineerFeedbackResults:'Engineer feedback results',
fileExport:'File export',
feedbackTime:'Feedback time',
regulatoryTechnologyAssessmentProcess:'Regulatory technology assessment process',
feedbackEvaluation:'Feedback evaluation',
clauseEvaluation:'Clause evaluation',
standardDocuments:'Standard documents',
pleaseCompleteTheEvaluationMethodorEvaluator:'Please complete the evaluation method or evaluator in the list',
reviewComments:'Review comments',
PleaseCompleteList:'Please complete the compliance results in the list',
sponsorFeedback:'Sponsor feedback',
processNumber:'Process number',
processName:'Process Name',
feedbackResults:'Feedback results',
theDoesNotSupportPreview:'The current file format does not support Preview',
releaseSituation:'Release situation',
comparisonResults:'Comparison results',
Published:'Published',
initiateComparison:'Initiate comparison',
translationLanguage:'Translation language',
translationResults:'Translation results',
conversionTime:'Conversion time',
category:'Category',
RegulatoryProcessEvaluationResults :'Regulatory Process Evaluation Results',
ViewConformanceResults:'View Conformance Results',
CommentsCollectionResultsForReference:'Comments Collection Results For Reference',
TechnicalEvaluationResultsForReference:'Technical Evaluation Results For Reference',
ComplianceConfirmationRecord:'Compliance Confirmation Record',
complianceConfirmation:'Compliance Confirmation',
noComparisonDocumentSelected:'No comparison document selected',
RemarkInfo:'Remarks Info',
initiateDocumentComparison:'Initiate Document Comparison',
comparativeComments:'Comparative Comments',
viewTheComparisonResults:'View The Comparison Results',
addFullTextComment:'Add Full Text Comment',
turnOffAutomaticMatching:'Turn Off Automatic Matching',
Deriveconformanceresults:'Derive Conformance Results',
Regulatorycompliancekanban:'Regulatory Compliance Kanban',
exportComparisonReport:'Export Comparison Report',
comparisonDifferenceComment:'Comparison Difference Comment',
fullTextComments:'Full text comments',
fileDeclaration:'file Declaration',
FileForDetails:'File For Details',
Converting:'Converting',
convertNetwork:'Convert Network',
convertFailed:'Convert Failed',
standardData:'Standard Data',
Theorganization:'The Organization',
Addingfolder:'Adding a folder',
Addingsubfolders:'Adding Subfolders',
Editfolder:'Edit Folder',
Deletefolders:'Delete Folders',
Foldername:'Folder Name',
Folderpermissions:'Folder Permissions',
Folderorder:'Folder Order',
Downloadprivileges:'Download Privileges',
Openpersonnel:'Open Personnel',
originalText:'Original Text',
translatedText:'Translated Text',
Administrativeprivileges:'Administrativ Pprivileges',
Checkthepermissions:'Check The Permissions',
onlyFilesUploaded:'Only.Docx,.Doc files can be uploaded',
requiredParametersEmpty: 'Required parameters cannot be empty',
PleaseTaskConfirmationRejected: 'Please select the data whose list confirmation status is accepted and task confirmation status is not initiated or rejected',
theProjectContactEmpty: 'The project contact person of cannot be empty',
pleaseSelectinitiatedOrRejected: 'Please select the data whose list confirmation status is not initiated or rejected',
TheEngineerAndCertification: 'The regulatory engineer and Certification Engineer of cannot be empty',
theResponsiblePersonAndDeadlineClank: 'The responsible person and deadline of cannot be blank',
bringInTheProjectInterface: 'Bring in the project interface',
theCurrentListSaved: 'The current list data has been submitted and cannot be temporarily saved',
defaultTemplate: 'Default Template',
newRequestCommentListTemplate: 'New request for comment list template',
NewReleasedStandardTemplate: 'New released standard template',
pleaseSelectStandard: 'Please select a standard',
theResponsiblePersonEmpty: 'The responsible person of cannot be empty',
theDeadlineEmpty: 'The deadline of cannot be empty',
theDeliveryTypeCannotBeEmpty: 'The delivery type of cannot be empty',
For: 'For',
markedRejection: 'Marked Rejection',
RegulationListConfirmationTask: 'Regulation List Confirmation Task',
RegulationListConfirmationNotification: 'Regulation List Confirmation Notification',
RegulationTaskConfirmation: 'Regulation Task Confirmation',
DesignComplianceTask: 'Design Compliance Task',
PreHomoTask: 'Pre-Homo Task',
ValidationTask: 'Validation Task',
DesignComplianceNotification: 'Design Compliance Notification',
PreHomoNotification: 'Pre-Homo Notification',
ValidationComplianceNotification: 'Validation Compliance Notification',
RegulationTaskConfirmationNotification: 'Regulation Task Confirmation Notification',
evaluationMethod: 'Evaluation method',
uploadRelevantMaterials: 'Upload relevant materials',
processBackground: 'Process background',
selectedStandard: 'Selected standard',
standardDecompositionDocument: 'Standard decomposition document',
pleaseSelectStandardFirst: 'Please select a standard first',
RelevantMaterials: 'RelevantMaterials',
evaluatorFeedback: 'Evaluator feedback',
nameTechnicalDocument: 'Name of technical document',
chapter: 'chapter',
problemDescription: 'Problem description',
filingExternalOpinions: 'Filing of external opinions',
regulatoryTechnicalEvaluationResults: 'Regulatory technical evaluation results',
initiateProcessForCurrentStandard: 'Initiate process for current standard',
engineerFeedbackResults: 'Engineer feedback results',
fileExport: 'File export',
feedbackTime: 'Feedback time',
regulatoryTechnologyAssessmentProcess: 'Regulatory technology assessment process',
feedbackEvaluation: 'Feedback evaluation',
clauseEvaluation: 'Clause evaluation',
standardDocuments: 'Standard documents',
pleaseCompleteTheEvaluationMethodorEvaluator: 'Please complete the evaluation method or evaluator in the list',
reviewComments: 'Review comments',
PleaseCompleteList: 'Please complete the compliance results in the list',
sponsorFeedback: 'Sponsor feedback',
processNumber: 'Process number',
processName: 'Process Name',
feedbackResults: 'Feedback results',
theDoesNotSupportPreview: 'The current file format does not support Preview',
releaseSituation: 'Release situation',
comparisonResults: 'Comparison results',
Published: 'Published',
initiateComparison: 'Initiate comparison',
translationLanguage: 'Translation language',
translationResults: 'Translation results',
conversionTime: 'Conversion time',
category: 'Category',
RegulatoryProcessEvaluationResults: 'Regulatory Process Evaluation Results',
ViewConformanceResults: 'View Conformance Results',
CommentsCollectionResultsForReference: 'Comments Collection Results For Reference',
TechnicalEvaluationResultsForReference: 'Technical Evaluation Results For Reference',
ComplianceConfirmationRecord: 'Compliance Confirmation Record',
complianceConfirmation: 'Compliance Confirmation',
noComparisonDocumentSelected: 'No comparison document selected',
RemarkInfo: 'Remarks Info',
initiateDocumentComparison: 'Initiate Document Comparison',
comparativeComments: 'Comparative Comments',
viewTheComparisonResults: 'View The Comparison Results',
addFullTextComment: 'Add Full Text Comment',
turnOffAutomaticMatching: 'Turn Off Automatic Matching',
Deriveconformanceresults: 'Derive Conformance Results',
Regulatorycompliancekanban: 'Regulatory Compliance Kanban',
exportComparisonReport: 'Export Comparison Report',
comparisonDifferenceComment: 'Comparison Difference Comment',
fullTextComments: 'Full text comments',
fileDeclaration: 'file Declaration',
FileForDetails: 'File For Details',
Converting: 'Converting',
convertNetwork: 'Convert Network',
convertFailed: 'Convert Failed',
standardData: 'Standard Data',
Theorganization: 'The Organization',
Addingfolder: 'Adding a folder',
Addingsubfolders: 'Adding Subfolders',
Editfolder: 'Edit Folder',
Deletefolders: 'Delete Folders',
Foldername: 'Folder Name',
Folderpermissions: 'Folder Permissions',
Folderorder: 'Folder Order',
Downloadprivileges: 'Download Privileges',
Openpersonnel: 'Open Personnel',
originalText: 'Original Text',
translatedText: 'Translated Text',
Administrativeprivileges: 'Administrativ Pprivileges',
Checkthepermissions: 'Check The Permissions',
onlyFilesUploaded: 'Only.Docx,.Doc files can be uploaded',
selectDirectorylocation: 'Please select the directory location to add the folder',
Fileuploaded:'File uploaded, please wait',
uploadedbyyourself:'You can only delete files and data uploaded by yourself',
Fileuploaded:'File uploading, please wait',
doNotHavePermissionDeleteData:'Do not have permission to delete this data,',
Parametercollection:'Parameter Collection',
Collectlist:'Colle Ctlist',
Statisticalmodels:'Statisti Calmodels',
Inthecollection:'In the collection',
Notatthe:'Not at the',
Thepercentage:'The Percentage',
problemKnowledgeBase:'Problem Knowledge Base',
recentHotSpots:'Recent Hot Spots',
disseminationMaterials:'Dissemination Materials',
informationSafety:'Information Safety',
blueBook:'Blue Book',
invoiceCollection:'Invoice Collection',
productHighlights:'Product Highlights',
financialReimbursement:'Financial Reimbursement',
classificationMaintenance:'Classification Maintenance',
managePublishing:'Manage Publishing',
displayPermission:'Display permission',
authorizedUser:'Authorized user',
problemClassification:'Problem classification',
market:'market',
documentNumber:'Document Number',
documentTitle:'Document Title',
bringInDocumentInformation:'Bring in document information',
thereWhichCannotDeleted:'There are sub headings under this title, which cannot be deleted',
sdt:'sdt',
dre:'dre',
applicableInstructionsMarketList:'Applicable instructions of market list',
pleaseSelectTheDataCompared:'Please select the data to be compared',
problemLabel:'Problem label',
personCharge:'Person in charge',
addLabel:'Add Label',
editLabel:'Edit Label',
applicableMarket:'Applicable market',
templateMaintenance:'Template maintenance',
associatedWebsite:'Associated website',
dropDownOptions:'Drop down options',
dropDownOptionMaintenance:'Drop down option maintenance',
displayInformation:'Display information',
addComparison:'Add comparison',
showOrNot:'Show or not',
Fileuploaded: 'File uploaded, please wait',
uploadedbyyourself: 'You can only delete files and data uploaded by yourself',
Fileuploaded: 'File uploading, please wait',
doNotHavePermissionDeleteData: 'Do not have permission to delete this data,',
Parametercollection: 'Parameter Collection',
Collectlist: 'Colle Ctlist',
Statisticalmodels: 'Statisti Calmodels',
Inthecollection: 'In the collection',
Notatthe: 'Not at the',
Thepercentage: 'The Percentage',
problemKnowledgeBase: 'Problem Knowledge Base',
recentHotSpots: 'Recent Hot Spots',
disseminationMaterials: 'Dissemination Materials',
informationSafety: 'Information Safety',
blueBook: 'Blue Book',
invoiceCollection: 'Invoice Collection',
productHighlights: 'Product Highlights',
financialReimbursement: 'Financial Reimbursement',
classificationMaintenance: 'Classification Maintenance',
managePublishing: 'Manage Publishing',
displayPermission: 'Display permission',
authorizedUser: 'Authorized user',
problemClassification: 'Problem classification',
market: 'market',
documentNumber: 'Document Number',
documentTitle: 'Document Title',
bringInDocumentInformation: 'Bring in document information',
thereWhichCannotDeleted: 'There are sub headings under this title, which cannot be deleted',
sdt: 'sdt',
dre: 'dre',
applicableInstructionsMarketList: 'Applicable instructions of market list',
pleaseSelectTheDataCompared: 'Please select the data to be compared',
problemLabel: 'Problem label',
personCharge: 'Person in charge',
addLabel: 'Add Label',
editLabel: 'Edit Label',
applicableMarket: 'Applicable market',
templateMaintenance: 'Template maintenance',
associatedWebsite: 'Associated website',
dropDownOptions: 'Drop down options',
dropDownOptionMaintenance: 'Drop down option maintenance',
displayInformation: 'Display information',
addComparison: 'Add comparison',
showOrNot: 'Show or not',
comparisonMarket: 'Comparison Market',
share: 'share',
simplifiedChinese:'Simplified Chinese',
uploadOnly:'Upload only',
}
+5
View File
@@ -874,6 +874,7 @@ module.exports = {
experimentFailed: '实验失败',
toBeStarted: '待开始',
inProgress: '进行中',
Underway:'进行中',
green: '绿',
red: '红',
blue: '蓝',
@@ -1336,4 +1337,8 @@ module.exports = {
displayInformation:'展示信息',
addComparison:'添加对比',
showOrNot:'是否展示',
comparisonMarket:'对比市场',
share:'分享',
simplifiedChinese:'简体中文',
uploadOnly:'只能上传',
}
@@ -240,7 +240,7 @@ export default {
let postDate = {
paramsInfoPublishEOList: this.selectedRowKeysDate,
paramsManifestId: this.paramsManifest.id,
projectId: this.$route.query.id
projectId: this.$route.query.projectId
}
postAction(`params/collectManifest/add`, postDate).then(res => {
if (res.success) {
@@ -15,6 +15,7 @@
<div class="box-title-text" v-if="isInput">
<a-input :class="{'box-input':!isClass}" :value="value"
readonly
:title="value"
@click.native="standardClick"
:placeholder="$t('PleaseSelect')+query.db_field_txt"/>
</div>
@@ -68,6 +68,7 @@
</div>
</div>
</a-modal>
<JLoading :loading="textLoading">{{this.$t('pleaseWaitWhileRunning')}}</JLoading>
</div>
</template>
@@ -91,6 +92,7 @@ export default {
editId: '',
visibleoperationFailed:false,
newVisible: false,
textLoading:false,
NotSelectedRowKeysValue:[],
labelCol: {
xs: { span: 24 },
@@ -220,6 +222,7 @@ export default {
// _this.$message.success(this.$t('OperationSuccessful'))
if(res.data.result.length == 0){
this.visibleoperationFailed = false
this.textLoading = false
_this.$message.success(this.$t('OperationSuccessful'))
this.$emit('areaVisibleTaskCutOffTimeflag', false)
this.$emit('GetgetTableList')
@@ -227,6 +230,7 @@ export default {
}else{
this.NotSelectedRowKeysValue = res.data.result
this.visibleoperationFailed = true
this.textLoading = false
}
// this.$emit('areaVisibleTaskCutOffTimeflag', false)
@@ -69,6 +69,7 @@
</div>
</div>
</a-modal>
<JLoading :loading="textLoading">{{this.$t('pleaseWaitWhileRunning')}}</JLoading>
</div>
</template>
@@ -223,10 +224,12 @@ export default {
_this.$message.success(this.$t('OperationSuccessful'))
this.$emit('areaVisibleTaskCutOffTimeAll', false)
this.$emit('GetgetTableList')
this.textLoading = false
}else{
this.NotSelectedRowKeysValue = res.data.result
this.visibleoperationFailed = true
this.textLoading = false
}
// this.$emit('areaVisibleTaskCutOffTime', false)
@@ -322,6 +322,8 @@
xs: { span: 24 },
sm: { span: 7 }
},
queryParamQuery:{},
queryParam:{},
querySdtList: [], // 工程接口人
Dateline: {},
getquerySdtId: '', // 当前工程接口人的id
@@ -331,11 +333,14 @@
},
mounted() {
this.getHeader()
eventBUs.$on('getTableList', search => {
this.queryParamQuery = search
this.getTableList()
})
},
watch: {
currentPersonRole: {
handler: function() {
console.log(123)
this.getTableList()
},
immediate: true
@@ -561,11 +566,14 @@
}
getAction('/params/userTypeLog/queryCurrentType', query).then((res) => {
if (res.success) {
this.queryParamQuery = {...this.queryParamQuery}
if (res.result && res.result.userType) {
if (!(result.some(val => val.value == res.result.userType))) {
res.result.userType = result[0] ? result[0].value : ''
}
this.getTableList(res.result.userType)
} else {
this.getTableList(result[0].value)
}
@@ -650,6 +658,7 @@
},
getTableListReset() {
this.formInline = {}
this.queryParamQuery = {}
let params = {
paramsManifestId: this.$route.query.id,
pageNo: this.pageNo,
@@ -717,6 +726,8 @@
this.selectedRowKeys = []
},
getTableList(currentPersonRole) {
console.log(currentPersonRole)
console.log(this.queryParamQuery)
// todo
let paramsManifestid
let url
@@ -735,7 +746,8 @@
userTypes: this.currentPersonRole || currentPersonRole,
paramsManifestId: paramsManifestid,
...this.formInline,
...currentPersonRole
...currentPersonRole,
...this.queryParamQuery
}
this.loading = true
getAction(url, params).then((res) => {
+4 -4
View File
@@ -34,7 +34,7 @@
export default {
name: 'file',
props: ['disableds', 'disabled', 'thisFileUploadUrl', 'readonly', 'thisFileType', 'isUploadFile', 'isMultiple', 'restrictUploads'],
props: ['disableds', 'disabled', 'thisFileUploadUrl', 'readonly', 'thisFileType', 'isUploadFile', 'isMultiple', 'restrictUploads', 'Uploadable'],
data() {
return {
visible: false,
@@ -68,7 +68,7 @@
if (this.isMultiple) {
this.multiple = false
}
this.accept = this.restrictUploads ? '.docx,.doc' : '*.*'
this.accept = this.restrictUploads ? this.Uploadable : '*.*'
// console.log(this.thisFileType,this.thisFileSize,this.thisFileUploadUrl);
},
methods: {
@@ -99,10 +99,10 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
if (fileSuffix == '.docx' || fileSuffix == '.doc') {
if (this.Uploadable.includes(fileSuffix)) {
} else {
this.$message.warning(this.$t('onlyFilesUploaded'))
this.$message.warning(this.$t('uploadOnly') + this.Uploadable + this.$t('file'))
return false
}
}
@@ -10,7 +10,7 @@
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div class="table-operator-right">
<div @click="handleExport" class="operator-text">
<div @click="handleExport" v-if="formInline.createBy == userInfoQuery.username" class="operator-text">
<a-icon type="export" :rotate="-90"/>
{{$t('export')}}
</div>
@@ -47,11 +47,11 @@
<span class="text">{{$t('filingExternalOpinions')}}:</span>
<div @click="clickButtonToUpload('opinionArchiveId')" style="color: #21c9cc"
v-if="formInline.createBy == this.userInfoQuery.username" class="operator-text">
<a-icon type="cloud-upload" />
<a-icon type="cloud-upload"/>
{{$t('clickUpload')}}
</div>
<div @click="seeFileClick(formInline.opinionArchiveId)" style="color: #21c9cc" class="operator-text">
<a-icon type="eye" />
<a-icon type="eye"/>
{{$t('viewFile')}}
</div>
</div>
@@ -86,7 +86,7 @@
pageNo: 1,
dataSource: [],
formInline: {},
userInfoQuery:{},
userInfoQuery: {},
columns: [
{
title: this.$t('relevantSections'),
@@ -135,7 +135,7 @@
}
},
mounted() {
this.userInfoQuery = this.userInfo()
this.userInfoQuery = this.userInfo()
},
methods: {
...mapGetters(['userInfo']),
@@ -178,8 +178,8 @@
//导出
handleExport() {
let query = {
pageSize:this.pageSize,
pageNo:this.pageNo,
pageSize: this.pageSize,
pageNo: this.pageNo,
lawsOpinionGatherId: this.lawsOpinionGatherId,
actiProcInstId: this.actiProcInstId
}
@@ -201,7 +201,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -210,8 +210,8 @@
let query = {
lawsOpinionGatherId: this.lawsOpinionGatherId,
actiProcInstId: this.actiProcInstId,
pageSize:this.pageSize,
pageNo:this.pageNo
pageSize: this.pageSize,
pageNo: this.pageNo
}
this.loading = true
getAction('/lawsOpinionGather/lawsOpinionAssessmentResultEO/page', query).then((res) => {
@@ -43,6 +43,7 @@
</div>
<a-form-model-item class="itemModel" prop="endTime">
<a-date-picker class="box-input"
:disabledDate="disabledDate"
:placeholder="$t('PleaseSelect')+$t('closingDate')"
@change="dateChange('endTime')"
:getCalendarContainer="(trigger) => trigger.parentNode"
@@ -141,7 +142,7 @@
addModelList: '/dummy/dummyInventoryInfoEO/queryPageDummy'
},
loading: false,
JLoading:false,
JLoading: false,
dataSource: [],
selectedRowKeys: [],
total: 0,
@@ -162,6 +163,13 @@
message: this.$t('Assessor') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
taskExplain: [
{
max: 300,
message: this.$t('taskDescription') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
]
},
searchParmes: {},
@@ -172,12 +180,14 @@
align: 'center',
dataIndex: 'serial_number',
width: 170,
ellipsis: true,
scopedSlots: { customRender: 'serial_number' }
},
{
title: this.$t('title'),
align: 'center',
dataIndex: 'title',
ellipsis: true,
width: 170,
scopedSlots: { customRender: 'titleName' }
},
@@ -228,11 +238,14 @@
},
methods: {
...mapGetters(['userInfo']),
disabledDate(current) {
return current && current < moment().subtract(1, 'day')
},
pageOnChange(page) {
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -261,7 +274,7 @@
if (this.selectedRowKeys.length > 1) {
this.selectedRowKeys.shift()
}
this.selectedRowKeysRecord = record.filter(res=>{
this.selectedRowKeysRecord = record.filter(res => {
return res.id == this.selectedRowKeys[0]
})
this.selectedRowKeysRecord = [...this.selectedRowKeysRecord]
@@ -297,14 +310,14 @@
dateChange(item) {
this.formInline[item] = this.formInline[item] ? moment(this.formInline[item]).format('YYYY-MM-DD') : ''
},
getUUID(){
var str=[];
var Chars='0123456789abcdefghijklmnopqrstuvwxyz';
for(var i=0;i<36;i++){
str[i]=Chars.substr(Math.floor(Math.random()*16),1)
getUUID() {
var str = []
var Chars = '0123456789abcdefghijklmnopqrstuvwxyz'
for (var i = 0; i < 36; i++) {
str[i] = Chars.substr(Math.floor(Math.random() * 16), 1)
}
str[0]=str[8]=str[13]=str[18]=str[23]='-';
return str.join("")
str[0] = str[8] = str[13] = str[18] = str[23] = '-'
return str.join('')
},
submit() {
this.$refs.ruleForm.validate(valid => {
@@ -338,7 +351,7 @@
postAction('/workFlow/startProcess', query).then((res) => {
if (res.success) {
this.completeTask(value, res.result)
}else{
} else {
this.JLoading = false
}
})
@@ -92,7 +92,10 @@
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:columns="columns"
>
<span slot="operation" slot-scope="text,record">
<span slot="serialNumber" :title="text" slot-scope="text,result">
<span>{{text}}</span>
</span>
<span slot="operation" slot-scope="text,record">
<a class="text-operation" @click="viewProcessClick(record)">{{$t('viewProcess')}}</a>
<a class="text-operation" v-if="record.gatherResult == 'Completed'"
@click="evaluationResultsClick(record)">{{$t('evaluationResults')}}</a>
@@ -129,7 +132,7 @@
//url传参严格按照当前命名
url: {
list: '/lawsOpinionGather/lawsOpinionGatherEO/page',
getSysCategoryTree: '/sys/category/getSysCategoryTree',
getSysCategoryTree: '/sys/category/getSysCategoryTree'
},
loading: false,
toggleSearchStatus: false,
@@ -138,17 +141,17 @@
total: 0,
pageSize: 10,
pageNo: 1,
CategoryTreeList:[],
serialNumber:'',
CategoryTreeList: [],
serialNumber: '',
queryParam: {},
gatherResultList:[
gatherResultList: [
{
value:'Underway',
name:this.$t('inProgress'),
value: 'Underway',
name: this.$t('Underway')
},
{
value:'Completed',
name:this.$t('Finished'),
value: 'Completed',
name: this.$t('Finished')
}
],
columns: [
@@ -156,12 +159,15 @@
title: this.$t('standard'),
align: 'center',
dataIndex: 'serialNumber',
width: 170
ellipsis: true,
width: 170,
scopedSlots: { customRender: 'serialNumber' }
},
{
title: this.$t('title'),
align: 'center',
dataIndex: 'title',
ellipsis: true,
width: 170
},
{
@@ -233,7 +239,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -248,7 +254,7 @@
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize,
serialNumber: this.$route.query.serialNumber?this.$route.query.serialNumber:'',
serialNumber: this.$route.query.serialNumber ? this.$route.query.serialNumber : '',
...queryParam
}
this.loading = true
@@ -292,8 +298,8 @@
}
</script>
<style>
.tree-select .ant-select-tree-dropdown{
height: 298px!important;
.tree-select .ant-select-tree-dropdown {
height: 298px !important;
}
</style>
<style scoped>
@@ -96,17 +96,20 @@
</div>
</div>
<countryCardReleaseModel ref="countryCardReleaseModelRef"/>
<countryCardReleaseAdd ref="countryCardReleaseAddRef"/>
</div>
</template>
<script>
import { getAction, postAction, deleteAction, downloadFile } from '@/api/manage'
import countryCardReleaseModel from './countryCardReleaseModel'
import countryCardReleaseAdd from './countryCardReleaseAdd'
export default {
name: 'countryCardRelease',
components: {
countryCardReleaseModel
countryCardReleaseModel,
countryCardReleaseAdd
},
data() {
return {
@@ -161,7 +164,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page,pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -193,7 +196,7 @@
this.selectedRowKeys = value
},
newlyAddedClick() {
this.$refs.countryCardReleaseAddRef.add()
},
templateMaintenanceClick() {
this.$refs.countryCardReleaseModelRef.getData()
@@ -221,7 +224,7 @@
}
},
edit() {
this.$refs.countryCardReleaseAddRef.edit()
},
subscribe() {
@@ -0,0 +1,230 @@
<template>
<div>
<a-drawer
:title="title"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<a-table
:columns="columns"
:scroll="{x: '100%',y:'calc(100vh - 300px)'}"
:data-source="dataList"
:pagination="false"
:loading="loading">
<span slot="content" slot-scope="text,record,index">
<a-input class="box-input"
v-if="false"
v-model="record.problemLabel"
:placeholder="$t('PleaseEnter')"/>
<a-select :placeholder="$t('PleaseSelect')"
style="width: 100%"
v-if="false"
v-model="record.projectNameId">
<a-select-option v-for="(item, key) in record.projectNameList"
:key="key"
:value="item.id">
<span style="display: inline-block;width: 100%" :title=" item.projectName ">
{{ item.projectName}}
</span>
</a-select-option>
</a-select>
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('verifyDeliverableTemplate',index)">
{{ (record.verifyDeliverableTemplate === 'null' || record.verifyDeliverableTemplate === '' ||
record.verifyDeliverableTemplate == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</span>
</a-table>
<div class="page" v-if="dataList.length > 0">
<a-pagination
:show-total="total => $t('total')+`${total}`+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="onChange"
@showSizeChange="SizeChange"
/>
</div>
</div>
<div class="drawer-bootom-button">
<a-button @click="handleCancel" type="danger" style="margin-right: 16px">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"/>
</div>
</template>
<script>
import { getAction, postAction, deleteAction } from '@/api/manage'
import uploadFile from '@/components/uploadFile/file'
export default {
name: 'countryCardReleaseAdd',
components: {
uploadFile
},
data() {
return {
url: {
list: '',
deleteOne: ''
},
title: '',
visible: false,
selectedRowKeys: [],
dataList: [{}],
loading: false,
pageNo: 1,
pageSize: 10,
total: 0,
confirmLoading: false,
index: '',
columns: [
{
title: this.$t('LabelName'),
dataIndex: 'LabelName',
align: 'center',
ellipsis: true
},
{
title: this.$t('describe'),
dataIndex: 'describe',
align: 'center',
ellipsis: true
},
{
title: this.$t('content'),
align: 'center',
fixed: 'right',
width: 180,
scopedSlots: { customRender: 'content' }
}
]
}
},
mounted() {
},
methods: {
add() {
this.visible = true
this.title = this.$t('newlyAdded')
},
edit() {
this.visible = true
this.title = this.$t('edit')
},
clickButtonToUpload(item, index) {
this.$refs.uploadFile.perentHandleFunc()
this.index = index
this.$refs.uploadFile.visible = true
this.uploadName = item
getAction('sys/common/getFileInfos', { id: this.dataList[this.index][this.uploadName] }).then((res) => {
if (res.success) {
this.$refs.uploadFile.perentHandleFunc(res.result)
} else {
this.$refs.uploadFile.perentHandleFunc()
}
})
},
/** 上传文件的回调 */
uploadSuccess(data) {
let attIdList = []
if (data && data.length > 0) {
data.map(item => {
attIdList.push(item.id || data.name)
})
}
/** 赋值给当前对应的表单文件 */
this.dataList[this.index][this.uploadName] = attIdList.join(',')
this.dataList = [...this.dataList]
},
handleCancel() {
this.visible = false
},
handleSubmit() {
},
onChange(page, pageSize) {
this.pageNo = page
this.replacePage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.replacePage()
},
replacePage() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize
}
this.loading = true
postAction(this.url.list, query).then((res) => {
if (res.success) {
this.dataList = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.dataList = []
this.total = 0
this.loading = false
}
})
}
}
}
</script>
<style scoped>
.page {
text-align: right;
margin-top: 20px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
z-index: 100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
.box-title {
width: 100%;
text-align: right;
margin-bottom: 20px;
}
.operator-text {
cursor: pointer;
margin-right: 13px;
font-size: 14px;
font-weight: 400;
color: #040B29;
display: inline-block;
}
.button-text {
height: 38px;
width: 100%;
line-height: 38px;
background: #fff;
border: 1px #00B3BE solid;
color: #00B3BE;
}
</style>
@@ -1,122 +1,130 @@
<template>
<a-modal
:title="title"
:width="700"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('LabelName')">{{$t('LabelName')}}</span>
<div>
<a-modal
:title="title"
:width="700"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('LabelName')">{{$t('LabelName')}}</span>
</div>
<a-form-model-item class="itemModel" prop="LabelName">
<a-input class="box-input"
:disabled="disabled"
v-model="formInline.LabelName"
:placeholder="$t('PleaseEnter')+$t('LabelName')"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="LabelName">
<a-input class="box-input"
:disabled="disabled"
v-model="formInline.LabelName"
:placeholder="$t('PleaseEnter')+$t('LabelName')"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('LabelType')">{{$t('LabelType')}}</span>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('LabelType')">{{$t('LabelType')}}</span>
</div>
<a-form-model-item class="itemModel" prop="LabelType">
<a-input class="box-input"
:disabled="disabled"
v-model="formInline.LabelType"
:placeholder="$t('PleaseEnter')+$t('LabelType')"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="LabelType">
<a-input class="box-input"
:disabled="disabled"
v-model="formInline.LabelType"
:placeholder="$t('PleaseEnter')+$t('LabelType')"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('dropDownOptions')">{{$t('dropDownOptions')}}</span>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('dropDownOptions')">{{$t('dropDownOptions')}}</span>
</div>
<a-form-model-item class="itemModel" prop="dropDownOptions">
<a-button class="submit" @click="dropDownOptionsClick" type="primary">
{{$t('dropDownOptionMaintenance')}}
</a-button>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="dropDownOptions">
<a-button class="submit" @click="dropDownOptionsClick" type="primary">
{{$t('dropDownOptionMaintenance')}}
</a-button>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('DisplayOrder')">{{$t('DisplayOrder')}}</span>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('DisplayOrder')">{{$t('DisplayOrder')}}</span>
</div>
<a-form-model-item class="itemModel" prop="DisplayOrder">
<a-input-number class="box-input"
:disabled="disabled"
v-model="formInline.DisplayOrder"
:placeholder="$t('PleaseEnter')+$t('DisplayOrder')"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="DisplayOrder">
<a-input-number class="box-input"
:disabled="disabled"
v-model="formInline.DisplayOrder"
:placeholder="$t('PleaseEnter')+$t('DisplayOrder')"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
</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('associatedWebsite')">{{$t('associatedWebsite')}}</span>
</div>
<a-form-model-item class="itemModel" prop="associatedWebsite">
<a-input class="box-input"
:disabled="disabled"
v-model="formInline.associatedWebsite"
:placeholder="$t('PleaseEnter')+$t('associatedWebsite')"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="associatedWebsite">
<a-input class="box-input"
:disabled="disabled"
v-model="formInline.associatedWebsite"
:placeholder="$t('PleaseEnter')+$t('associatedWebsite')"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
</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('describe')">{{$t('describe')}}</span>
</div>
<a-form-model-item class="itemModel" prop="describe">
<a-textarea
:placeholder="$t('PleaseEnter')+$t('describe')"
:disabled="disabled"
v-model="formInline.describe" :rows="4"/>
</a-form-model-item>
</div>
<a-form-model-item class="itemModel" prop="describe">
<a-textarea
:placeholder="$t('PleaseEnter')+$t('describe')"
:disabled="disabled"
v-model="formInline.describe" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</a-col>
</a-row>
</a-form-model>
</a-modal>
<optionMaintenance ref="optionMaintenanceRef"/>
</div>
</template>
<script>
import { getAction, postAction, downloadFile } from '@/api/manage'
import optionMaintenance from './optionMaintenance'
export default {
name: 'countryCardReleaseModelAdd',
components: {
optionMaintenance
},
data() {
return {
visible: false,
@@ -171,6 +179,9 @@
mounted() {
},
methods: {
dropDownOptionsClick() {
this.$refs.optionMaintenanceRef.getData()
},
add() {
this.visible = true
this.title = this.$t('addLabel')
@@ -21,48 +21,23 @@
{{$t('addComparison')}}
</div>
</div>
<div class="content-box">
<div class="content-box-left">
<div class="content-box-left-text">
hadhasdasdhadashdjk
</div>
<div class="content-box-left-text">
hadhasdasdhadashdjk
</div>
<div class="content-box-left-text">
hadhasdasdhadashdjk
</div>
<div class="content-box-left-text">
hadhasdasdhadashdjk
</div>
<div class="content-box-left-text">
hadhasdasdhadashdjk
</div>
<div class="content-box-left-text">
hadhasdasdhadashdjk
</div>
<div class="content-box-left-text">
hadhasdasdhadashdjk
</div>
<div class="content-box-left-text">
hadhasdasdhadashdjk
</div>
<div class="content-box-left-text">
hadhasdasdhadashdjk
</div>
</div>
<div class="content-box-right" v-for="item1 in 9">
<div class="content-box-box-top">
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
<span class="content-box-box-text">
<div style="overflow: auto;height: calc(100vh - 160px);">
<div class="content-box" :style="{'width':clientWidth}" v-if="isTrue">
<div style="width: 100%" v-for="(item1,index) in 14" class="content-box-top">
<div v-for="(item2,index2) in 16" style="width: 340px;display: inline-block" class="content-box-left">
<div class="content-box-box-top" v-if="index == 0">
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
<span class="content-box-box-text">
中国
</span>
</div>
<div class="content-box-box" v-for="item in 9">
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
<span class="content-box-box-text">
</div>
<div class="content-box-box" v-else>
<img src="../../../../assets/mobileHome.png" class="content-box-box-img" alt="">
<span class="content-box-box-text">
中国
</span>
</div>
</div>
</div>
</div>
</div>
@@ -70,28 +45,42 @@
</div>
</div>
<displayInformationModel ref="displayInformationModelRef"/>
<countryCardViewAdd ref="countryCardViewAddRef" @countryCardViewAddForm="countryCardViewAddForm"/>
</div>
</template>
<script>
import { getAction, postAction, downloadFile } from '@/api/manage'
import displayInformationModel from './displayInformationModel'
import countryCardViewAdd from './countryCardViewAdd'
export default {
name: 'countryCardView',
components: {
displayInformationModel
displayInformationModel,
countryCardViewAdd
},
data() {
return {}
return {
clientWidth: '',
isTrue: false
}
},
mounted() {
this.isTrue = false
this.$nextTick(() => {
this.clientWidth = 340 * 14 + 'px'
this.isTrue = true
})
},
methods: {
displayInformationClick() {
this.$refs.displayInformationModelRef.getData()
},
newlyAddedClick() {
this.$refs.countryCardViewAddRef.add()
},
countryCardViewAddForm() {
}
}
@@ -175,36 +164,8 @@
}
.content-box {
overflow: auto;
white-space: nowrap;
position: relative;
}
.content-box-left {
width: 200px;
background: #fff;
z-index: 111;
display: inline-block;
position: sticky;
left: 0;
border-top: 1px #d9d9d9 solid;
border-left: 1px #d9d9d9 solid;
border-bottom: 1px #d9d9d9 solid;
border-right: 1px #d9d9d9 solid;
}
.content-box-left-text {
font-size: 16px;
color: #040B29;
font-weight: 400;
text-align: center;
border-bottom: 1px #d9d9d9 solid;
height: 80px;
line-height: 80px;
}
.content-box-left-text:last-child {
border-bottom: none;
}
.content-box-box-top {
@@ -212,52 +173,69 @@
height: 160px;
display: inline-block;
cursor: pointer;
border-left: 1px #d9d9d9 solid;
background: #fff;
border-right: 1px #d9d9d9 solid;
border-top: 1px #d9d9d9 solid;
border-bottom: 1px #d9d9d9 solid;
.content-box-box-img {
width: 70%;
height: 100%;
}
.content-box-box-text {
display: inline-block;
width: 30%;
text-align: center;
font-size: 18px;
font-weight: 500;
color: #040B29;
}
}
.content-box-left:first-child .content-box-box-top {
border-left: 1px #d9d9d9 solid;
}
.content-box-box {
width: 340px;
display: inline-block;
height: 80px;
background: #fff;
border-right: 1px #d9d9d9 solid;
border-bottom: 1px #d9d9d9 solid;
cursor: pointer;
.content-box-box-img {
width: 70%;
height: 100%;
}
.content-box-box-text {
display: inline-block;
width: 30%;
text-align: center;
font-size: 18px;
font-weight: 500;
color: #040B29;
}
}
.content-box-left:first-child .content-box-box {
border-left: 1px #d9d9d9 solid;
}
.content-box-left:first-child {
position: sticky;
left: 0;
z-index: 110;
background: #fff;
}
.content-box-top:first-child {
position: sticky;
top: 0;
z-index: 111;
background: #fff;
}
.content-box-right {
width: 339px;
position: relative;
display: inline-block;
border-top: 1px #d9d9d9 solid;
border-right: 1px #d9d9d9 solid;
border-bottom: 1px #d9d9d9 solid;
}
.content-box-right:last-child {
border-right: 1px #d9d9d9 solid;
}
.content-box-box-img {
width: 70%;
height: 100%;
}
.content-box-box-text {
display: inline-block;
width: 30%;
text-align: center;
font-size: 18px;
font-weight: 500;
color: #040B29;
}
.content-box-box {
width: 100%;
height: 80px;
border-bottom: 1px #d9d9d9 solid;
cursor: pointer;
}
.content-box-box:last-child {
border-bottom: none;
}
</style>
@@ -0,0 +1,189 @@
<template>
<a-modal
:title="$t('addComparison')"
:width="700"
:height="500"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('applicableMarket')">{{$t('applicableMarket')}}</span>
</div>
<a-form-model-item class="itemModel" prop="applicableMarket">
<a-input class="box-input"
v-model="formInline.applicableMarket"
:placeholder="$t('PleaseEnter')+$t('applicableMarket')"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24" v-for="(item,index) in formInline.dataList">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text" :title="$t('comparisonMarket')+(index+1)">{{$t('comparisonMarket')+(index+1)}}</span>
</div>
<a-form-model-item class="itemModel" style="width: calc(100% - 220px)" prop="comparisonMarket">
<a-input class="box-input"
v-model="formInline.comparisonMarket"
:placeholder="$t('PleaseEnter')+$t('comparisonMarket')"/>
</a-form-model-item>
<a-icon class="icon-size"
style="margin-left: 8px"
@click="addData"
v-if="(formInline.dataList.length-1) == index"
type="plus-circle"/>
<a-icon class="icon-size"
@click="deleteData"
v-if="formInline.dataList.length > 1 && (formInline.dataList.length - 1) == index"
type="minus-circle"/>
</div>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</template>
<script>
import { getAction, postAction, downloadFile } from '@/api/manage'
export default {
name: 'countryCardViewAd',
data() {
return {
visible: false,
confirmLoading: false,
formInline: {},
rules: {
personChargeName: [
{
required: true,
message: this.$t('personCharge') + this.$t('cannotEmpty'),
trigger: 'change'
},
{
max: 100,
message: this.$t('personCharge') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
trigger: 'change'
}
],
problemLabel: [
{
required: true,
message: this.$t('problemLabel') + this.$t('cannotEmpty'),
trigger: 'blur'
},
{
max: 100,
message: this.$t('problemLabel') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
trigger: 'blur'
}
]
},
title: ''
}
},
mounted() {
},
methods: {
add() {
this.visible = true
this.$nextTick(() => {
this.formInline = {}
this.formInline.dataList = [{
relatedSection: ''
}]
this.formInline = { ...this.formInline }
this.$refs.ruleForm.clearValidate()
})
},
PersonnelSelectionChange(value, id) {
this.formInline[value] = id
this.formInline = { ...this.formInline }
},
handleOk() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
}
})
},
handleCancel() {
this.visible = false
},
addData() {
this.formInline.dataList.push({
relatedSection: ''
})
this.formInline = { ...this.formInline }
},
deleteData() {
this.formInline.dataList.pop()
this.formInline = { ...this.formInline }
}
}
}
</script>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
}
.title-text {
width: 84px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.Required {
color: red;
margin-right: 4px;
}
.icon-size {
font-size: 18px;
margin-top: 14px;
margin-right: 4px;
}
</style>
@@ -0,0 +1,203 @@
<template>
<div>
<a-drawer
:title="$t('dropDownOptionMaintenance')"
:maskClosable="false"
:width="1000"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<div style="margin-bottom: 60px">
<div class="box-title">
<div @click="addLabelClick" class="operator-text">
<a-icon type="plus"/>
{{$t('newlyAdded')}}
</div>
</div>
<a-table
:columns="columns"
:scroll="{x: '100%',y:'calc(100vh - 300px)'}"
:data-source="dataList"
:pagination="false"
:loading="loading">
<span slot="operation" slot-scope="text,record">
<a style="margin-right: 8px" @click="edit(record)">{{$t('edit')}}</a>
<a @click="deleteData">{{$t('delete')}}</a>
</span>
</a-table>
<div class="page" v-if="dataList.length > 0">
<a-pagination
:show-total="total => $t('total')+`${total}`+$t('strip')"
show-quick-jumper
show-size-changer
:page-size.sync="pageSize"
:total="total"
:current="pageNo"
@change="onChange"
@showSizeChange="SizeChange"
/>
</div>
</div>
<div class="drawer-bootom-button">
<a-button @click="handleCancel" type="danger">{{$t('cancel')}}</a-button>
</div>
</a-drawer>
<optionMaintenanceAdd ref="optionMaintenanceAddRef"
@classificationMaintenanceAddForm="optionMaintenanceAddForm"/>
</div>
</template>
<script>
import { getAction, postAction, deleteAction } from '@/api/manage'
import optionMaintenanceAdd from './optionMaintenanceAdd'
export default {
name: 'optionMaintenance',
components: {
optionMaintenanceAdd
},
data() {
return {
url: {
list: '',
deleteOne: ''
},
visible: false,
selectedRowKeys: [],
dataList: [{}],
loading: false,
pageNo: 1,
pageSize: 10,
total: 0,
columns: [
{
title: this.$t('name'),
dataIndex: 'name',
align: 'center',
ellipsis: true
},
{
title: this.$t('enName'),
dataIndex: 'enName',
align: 'center',
ellipsis: true
},
{
title: this.$t('describe'),
dataIndex: 'describe',
align: 'center',
ellipsis: true
},
{
title: this.$t('operation'),
align: 'center',
fixed: 'right',
width: 180,
scopedSlots: { customRender: 'operation' }
}
]
}
},
mounted() {
},
methods: {
getData() {
this.visible = true
},
handleCancel() {
this.visible = false
},
onChange(page, pageSize) {
this.pageNo = page
this.replacePage()
},
addLabelClick() {
this.$refs.optionMaintenanceAddRef.add()
},
edit(val) {
this.$refs.optionMaintenanceAddRef.edit(JSON.parse(JSON.stringify(val)))
},
deleteData(val) {
let _this = this
this.$confirm({
content: _this.$t('ConfirmDelete'),
onOk() {
deleteAction(_this.url.deleteOne, { id: val.id }).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.getList()
} else {
_this.$message.warning(_this.$t('operationFailed'))
}
})
}
})
},
optionMaintenanceAddForm() {
this.pageNo = 1
this.replacePage()
},
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.replacePage()
},
replacePage() {
let query = {
pageNo: this.pageNo,
pageSize: this.pageSize
}
this.loading = true
postAction(this.url.list, query).then((res) => {
if (res.success) {
this.dataList = res.result.records || []
this.total = res.result.total
this.loading = false
} else {
this.dataList = []
this.total = 0
this.loading = false
}
})
}
}
}
</script>
<style scoped>
.page {
text-align: right;
margin-top: 20px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
width: 100%;
z-index: 100;
border-top: 1px solid #e8e8e8;
padding: 10px 16px;
text-align: right;
left: 0;
background: #fff;
border-radius: 0 0 2px 2px;
}
.box-title {
width: 100%;
text-align: right;
margin-bottom: 20px;
}
.operator-text {
cursor: pointer;
margin-right: 13px;
font-size: 14px;
font-weight: 400;
color: #040B29;
display: inline-block;
}
</style>
@@ -0,0 +1,215 @@
<template>
<a-modal
:title="title"
:width="700"
:visible="visible"
:confirm-loading="confirmLoading"
:maskClosable="false"
@ok="handleOk"
@cancel="handleCancel"
>
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('name')">{{$t('name')}}</span>
</div>
<a-form-model-item class="itemModel" prop="name">
<a-input class="box-input"
v-model="formInline.name"
:placeholder="$t('PleaseEnter')+$t('name')"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('enName')">{{$t('enName')}}</span>
</div>
<a-form-model-item class="itemModel" prop="enName">
<a-input class="box-input"
v-model="formInline.enName"
:placeholder="$t('PleaseEnter')+$t('enName')"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :span="24">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('DisplayOrder')">{{$t('DisplayOrder')}}</span>
</div>
<a-form-model-item class="itemModel" prop="DisplayOrder">
<a-input-number class="box-input"
v-model="formInline.DisplayOrder"
:placeholder="$t('PleaseEnter')+$t('DisplayOrder')"/>
</a-form-model-item>
</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('describe')">{{$t('describe')}}</span>
</div>
<a-form-model-item class="itemModel" prop="describe">
<a-textarea
:placeholder="$t('PleaseEnter')+$t('describe')"
:disabled="disabled"
v-model="formInline.describe" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-modal>
</template>
<script>
import { getAction, postAction, downloadFile } from '@/api/manage'
export default {
name: 'optionMaintenanceAdd',
data() {
return {
visible: false,
confirmLoading: false,
formInline: {},
disabled: false,
rules: {
name: [
{
required: true,
message: this.$t('name') + this.$t('cannotEmpty'),
trigger: 'blur'
},
{
max: 100,
message: this.$t('name') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
trigger: 'blur'
}
],
enName: [
{
required: true,
message: this.$t('enName') + this.$t('cannotEmpty'),
trigger: 'blur'
},
{
max: 100,
message: this.$t('enName') + this.$t('cannotExceed') + 100 + this.$t('Characters'),
trigger: 'blur'
}
],
DisplayOrder: [
{
required: true,
message: this.$t('DisplayOrder') + this.$t('cannotEmpty'),
trigger: 'blur'
}
],
describe: [
{
max: 300,
message: this.$t('describe') + this.$t('cannotExceed') + 300 + this.$t('Characters'),
trigger: 'blur'
}
]
},
title: ''
}
},
mounted() {
},
methods: {
add() {
this.visible = true
this.title = this.$t('newlyAdded')
this.$nextTick(() => {
this.formInline = {}
this.$refs.ruleForm.clearValidate()
})
},
edit(data) {
this.visible = true
this.title = this.$t('edit')
this.$nextTick(() => {
this.formInline = data
this.$refs.ruleForm.clearValidate()
})
},
PersonnelSelectionChange(value, id) {
this.formInline[value] = id
this.formInline = { ...this.formInline }
},
handleOk() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
}
})
},
handleCancel() {
this.visible = false
}
}
}
</script>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
}
.title-text {
width: 84px;
text-align: right;
display: inline-block;
font-weight: 500;
font-size: 14px;
margin-right: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
height: 42px;
line-height: 42px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 130px);
display: inline-block;
margin-top: 2px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.Required {
color: red;
margin-right: 4px;
}
</style>
@@ -185,7 +185,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page,pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -44,7 +44,7 @@
:columns="columns"
>
<span slot="language" slot-scope="text,record">
<span>{{text == 1?$t('chinese'):$t('English')}}</span>
<span>{{text == 1?$t('simplifiedChinese'):$t('English')}}</span>
</span>
<span slot="RegulationMonthlyName" slot-scope="text,record">
<a @click="preview(record)">{{text}}</a>
@@ -151,7 +151,7 @@
title: this.$t('operation'),
align: 'center',
fixed: 'right',
width: 180,
width: 240,
scopedSlots: { customRender: 'operation' }
}
]
@@ -179,7 +179,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -220,9 +220,9 @@
let url = window._CONFIG['onlinePreviewDomainURL'] + '?url=' + Base64.encode(this.downLoadFileUrl + '/' + item.fileId + fileSuffix)
window.open(url, '_blank')
} else {
if (item.createBy == this.userInfo().username){
if (item.createBy == this.userInfo().username) {
downloadFile('/sys/common/downLoadFile', item.name, { id: item.fileId, userName: this.userInfo().username })
}else{
} else {
this.$message.warning(this.$t('theDoesNotSupportPreview'))
}
}
@@ -249,11 +249,11 @@
</div>
<a-form-model-item class="itemModel">
<PersonnelSelection
:query="{db_field_name:'lawsContactName',db_field_txt:$t('regulatoryContact')}"
:query="{db_field_name:'lawsContact',db_field_txt:$t('regulatoryContact')}"
:personneQuery="formInline"
:disabled="disabled"
@change="PersonnelSelectionChange"
v-model="formInline.lawsContact"/>
v-model="formInline.lawsContactName"/>
</a-form-model-item>
</div>
</a-col>
@@ -382,6 +382,12 @@
} else {
this.formInline.technologyTerritory = []
}
if (!this.formInline.useMethod) {
this.formInline.useMethod = undefined
}
if (!this.formInline.state) {
this.formInline.state = undefined
}
this.formInline = { ...this.formInline }
} else {
this.formInline = {}
@@ -443,6 +449,12 @@
formInline[res] = formInline[res].join(',')
}
})
if (!formInline.state || formInline.state == '' || formInline.state == 'null') {
formInline.state = ''
}
if (!formInline.useMethod || formInline.useMethod == '' || formInline.useMethod == 'null') {
formInline.useMethod = ''
}
callback && callback(formInline)
}
})
@@ -97,7 +97,7 @@
title: this.$t('operation'),
align: 'center',
fixed: 'right',
width: 180,
width: 280,
scopedSlots: { customRender: 'operation' }
}
]
@@ -51,6 +51,7 @@
class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
allowClear
:disabled="isParentId"
v-model="formInline.parentId">
<a-select-option v-for="(item, key) in ParentList"
:key="item.id"
@@ -110,7 +111,8 @@
url: {
add: '/report/lawsMonthlyReportTitleTemplateEO/add',
edit: '/report/lawsMonthlyReportTitleTemplateEO/edit'
}
},
isParentId: false
}
},
mounted() {
@@ -131,6 +133,7 @@
this.visible = true
this.getParent()
this.$nextTick(() => {
this.isParentId = false
this.formInline = {}
this.$refs.ruleForm.clearValidate()
})
@@ -139,8 +142,13 @@
this.title = this.$t('edit')
this.visible = true
this.getParent()
this.isParentId = false
this.$nextTick(() => {
this.formInline = row
if (!row.parentId) {
this.formInline.parentId = undefined
this.isParentId = true
}
this.$refs.ruleForm.clearValidate()
})
},
@@ -38,7 +38,6 @@
<a-form-model-item class="itemModel" prop="language">
<a-select :placeholder="$t('PleaseSelect')+$t('monthlyLanguage')"
:disabled="disabled"
class="box-input"
:getPopupContainer="triggerNode=> triggerNode.parentNode"
allowClear
v-model="formInline.language">
@@ -61,7 +60,8 @@
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
<uploadFile ref="uploadFile" :isMultiple="true" @uploadSuccess="uploadSuccess"></uploadFile>
<uploadFile ref="uploadFile" :restrictUploads="true" :isMultiple="true" :Uploadable="'.docx,.doc,.pdf'"
@uploadSuccess="uploadSuccess"></uploadFile>
</div>
</template>
@@ -95,7 +95,7 @@
visible: false,
languageList: [
{
text: this.$t('chinese'),
text: this.$t('simplifiedChinese'),
value: 1
},
{
@@ -275,7 +275,7 @@
.button-text {
height: 38px;
width: calc(100% - 100px);
width: 100%;
line-height: 38px;
background: #fff;
border: 1px #00B3BE solid;
@@ -250,12 +250,14 @@
align: 'center',
dataIndex: 'serial_number',
width: 170,
ellipsis: true,
scopedSlots: { customRender: 'serial_number' }
},
{
title: this.$t('title'),
align: 'center',
dataIndex: 'title',
ellipsis: true,
width: 170,
scopedSlots: { customRender: 'titleName' }
},
@@ -335,7 +337,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page, pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -101,7 +101,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page,pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -306,7 +306,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page,pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -18,7 +18,7 @@
</div>
<div @click="handleCompare" class="operator-text" v-has="'document:pullMessage'">
<a-icon type="rocket" :rotate="45"/>
{{$t('Push')}}
{{$t('share')}}
</div>
<div @click="handleModule" class="operator-text" v-has="'document:exportTemplate'">
<a-icon type="download"/>
@@ -210,7 +210,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page,pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -94,7 +94,7 @@
</a-row>
</a-form-model>
</a-modal>
<uploadFile ref="uploadFile" :restrictUploads="true" :isMultiple="true" @uploadSuccess="uploadSuccess"/>
<uploadFile ref="uploadFile" :restrictUploads="true" :Uploadable="'.docx,.doc,'" :isMultiple="true" @uploadSuccess="uploadSuccess"/>
<standardData ref="standardDataRef" @standardDataForm="standardDataForm"/>
</div>
</template>
@@ -249,7 +249,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page,pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()
@@ -166,6 +166,11 @@ export default {
},
mounted() {
this.getNameList()
if(this.formInline.combineFlag == '1'){
this.required = false
}else{
this.required = true
}
},
methods: {
uploadSuccess(data) {
@@ -62,7 +62,7 @@
<span>{{$t('sdt')}}</span>
</div>
<PersonnelSelection
:query="{db_field_name:'engineeringInterfacePerson',db_field_txt:$t('sdt')}"
:query="{db_field_name:'sdt',db_field_txt:$t('sdt')}"
:isInput="true"
class="box-input"
:personneQuery="formInline"
@@ -5,7 +5,7 @@
{{title}}
</div>
</div>
<div class="content-text">
<div class="content-text-text">
<a-form-model :model="formInline" class="formAdd" :rules="rules" ref="ruleForm">
<div v-for="(item,index) in formInline.dataList" :key="index">
<div class="feedbackPoint">
@@ -41,18 +41,15 @@
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('questionsSuggestions')">{{$t('questionsSuggestions')}}</span>
<span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span>
</div>
<a-form-model-item class="itemModel" :prop="'dataList.'+index+'.issueOrSuggest'"
:rules="[{ required: true, message: $t('questionsSuggestions') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('questionsSuggestions') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'
}]">
<a-input class="box-input"
:disabled="disabled"
v-model="item.issueOrSuggest"
:placeholder="$t('PleaseEnter')+$t('questionsSuggestions')"/>
<a-form-model-item class="itemModel" prop="accessoryFile">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('accessoryFile',index)">
{{ (item.accessoryFile === 'null' || item.accessoryFile === '' ||
item.accessoryFile == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
</a-form-model-item>
</div>
</a-col>
@@ -63,26 +60,30 @@
<div class="title-text">
<span class="title-text-text" :title="$t('reason')">{{$t('reason')}}</span>
</div>
<a-form-model-item class="itemModel">
<a-input class="box-input"
:disabled="disabled"
v-model="item.reason"
:placeholder="$t('PleaseEnter')+$t('reason')"/>
<a-form-model-item class="itemModel"
:prop="'dataList.'+index+'.reason'"
:rules="[{max: 300,message: $t('reason') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'
}]">
<a-textarea :placeholder="$t('PleaseEnter')+$t('reason')"
:disabled="disabled"
v-model="item.reason" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
<a-col :span="12">
<div class="box-title-text">
<div class="title-text">
<span class="title-text-text" :title="$t('enclosure')">{{$t('enclosure')}}</span>
<span class="Required">*</span>
<span class="title-text-text"
:title="$t('questionsSuggestions')">{{$t('questionsSuggestions')}}</span>
</div>
<a-form-model-item class="itemModel" prop="accessoryFile">
<a-button type="primary" class="button-text"
@click="clickButtonToUpload('accessoryFile',index)">
{{ (item.accessoryFile === 'null' || item.accessoryFile === '' ||
item.accessoryFile == null) ? $t('clickUpload') : $t('viewUploadedFiles')
}}
</a-button>
<a-form-model-item class="itemModel" :prop="'dataList.'+index+'.issueOrSuggest'"
:rules="[{ required: true, message: $t('questionsSuggestions') + $t('cannotEmpty'), trigger: 'blur'},
{max: 300,message: $t('questionsSuggestions') + $t('cannotExceed') + 300 + $t('Characters'),trigger: 'blur'
}]">
<a-textarea :placeholder="$t('PleaseEnter')+$t('questionsSuggestions')"
:disabled="disabled"
v-model="item.issueOrSuggest" :rows="4"/>
</a-form-model-item>
</div>
</a-col>
@@ -9,7 +9,8 @@
</div>
</div>
<div class="content-text">
<div class="text-field" v-for="(item,index) in standardContentList" :key="index">
<div class="text-field" :class="{'text-content-button-one':item.type == 4 ? true :false}"
v-for="(item,index) in standardContentList" :key="index">
<span class="text-field-left" :title="item.title">{{item.title}}</span>
<span class="text-field-right text-field-right-url"
:title="queryForm[item.value]"
@@ -21,7 +22,6 @@
@click="clickButtonToUpload(queryForm[item.value])"
v-if="item.type == 2 && queryForm[item.value]"
>{{ $t('viewFile') }}</span>
<span class="text-field-right"
:title="queryForm[item.value]" v-else
>{{queryForm[item.value]}}</span>
@@ -58,14 +58,14 @@
type: Object,
default: {}
},
title:{
type:String,
default:'',
},
isConfirmationDeadline:{
type:Boolean,
default:false,
title: {
type: String,
default: ''
},
isConfirmationDeadline: {
type: Boolean,
default: false
}
},
components: {
viewFileModel
@@ -77,6 +77,7 @@
},
mounted() {
this.queryForm = this.standardContentQuery
this.queryForm.taskExplain = 'sdf dsjf;l sdf;ldsf ;lsdfkj d;lsfkds;lfdksf第三方是德国搞定过分乐观看待给对方公开地方领导反馈给东丽的反馈给管库给的给'
},
methods: {
urlClick(val) {
@@ -147,5 +148,40 @@
cursor: pointer;
}
}
.text-content-button-one {
width: 100%;
.text-field-left {
width: 124px;
display: inline-block;
font-size: 14px;
font-weight: 400;
color: #6F7385;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
margin-right: 24px;
float: left;
margin-top: 3px;
}
.text-field-right {
width: calc(100% - 200px);
display: inline-block;
font-size: 16px;
text-overflow: ellipsis;
white-space: pre-wrap;
overflow: visible;
float: left;
color: #040B29;
font-weight: 400;
}
.text-field-right-url {
color: #00B3BE !important;
cursor: pointer;
}
}
}
</style>
@@ -88,7 +88,8 @@
{},
{
title: this.$t('taskDescription'),
value: 'taskExplain'
value: 'taskExplain',
type:4,
}
// {
// title: this.$t('remarks'),
@@ -64,6 +64,15 @@
v-model="formInline.dre"></j-input>
</div>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('sdt')">
<span>{{$t('sdt')}}</span>
</div>
<j-input class="box-input" :placeholder="$t('PleaseEnter')+$t('sdt')"
v-model="formInline.sdt"></j-input>
</div>
</a-col>
<!-- <a-col :md="6" :sm="8">-->
<!-- <div class="box-title-text">-->
<!-- <div class="title-text" :title="$t('status')">-->
@@ -424,6 +433,7 @@
<script>
import TableCollection from '@/components/tableCollection/index'
import { getAction, postAction } from '../../../api/manage'
import eventBUs from '../../../common/event'
import ParameterLibraryAdd from '@/components/ParameterLibraryAdd/index'
import globalAdvancedQuery from '@/components/globalAdvancedQuery/index'
import SynchronousSubmissionLibrary from '@/components/SynchronousSubmissionLibrary/index'
@@ -670,7 +680,7 @@
getAction('/params/collectManifest/bringSdtInto', query).then((res) => {
if (res.success) {
this.$message.success(this.$t('OperationSuccessful'))
this.$refs.CollectionTabel.getTableList()
this.$refs.CollectionTabel.getTableList(this.queryParamQuery)
} else {
this.$message.warning(this.$t('operationFailed'))
}
@@ -719,7 +729,7 @@
this.$refs.CollectionTabel.getLoginUserType()
},
GetgetTableList() {
this.$refs.CollectionTabel.getTableList()
this.$refs.CollectionTabel.getTableList(this.queryParamQuery)
},
// 错误数据的弹框
cancleoperationFailed() {
@@ -853,7 +863,8 @@
sqp['superQueryMatchType'] = matchType
}
this.queryParamQuery = sqp
this.$refs.CollectionTabel.getTableList(this.queryParamQuery)
// this.$refs.CollectionTabel.getTableList(this.queryParamQuery)
eventBUs.$emit('getTableList',this.queryParamQuery)
},
// 认证工程师 批量删除 权限
// 仅仅状态为 待发起收集 工程接口人退回 变更 可以批量删除
@@ -1101,7 +1112,7 @@
this.textLoading = false
_this.$message.success(this.$t('OperationSuccessful'))
this.areaVisibleFreeze = false
this.$refs.CollectionTabel.getTableList()
this.$refs.CollectionTabel.getTableList(this.queryParamQuery)
this.$refs.CollectionTabel.getHeader()
} else {
this.textLoading = false
@@ -1499,12 +1510,12 @@
areaVisibleTaskCutOffTimeflag(val) {
console.log(val)
this.areaVisibleTaskCutOffTime = val
this.$refs.CollectionTabel.getTableList()
this.$refs.CollectionTabel.getTableList(this.queryParamQuery)
},
areaVisibleTaskCutOffTimeAll(val){
console.log(val)
this.OneclickCollection = val
this.$refs.CollectionTabel.getTableList()
this.$refs.CollectionTabel.getTableList(this.queryParamQuery)
},
//引用参数
referenceparameter() {
@@ -1530,6 +1541,7 @@
},
searchReset() {
this.formInline = {}
this.queryParamQuery = {}
this.$refs.CollectionTabel.getTableListReset()
this.$refs.globalAdvancedQueryRef.handleReset()
// this.$refs.globalAdvancedQueryRef.emitCallback()
@@ -1546,45 +1558,27 @@
},
handleDel() {
let param = {
ids: this.selectedRowKeysArray
ids: this.selectedRowKeysArray,
paramsManifestId:this.$route.query.id
}
if (this.selectedRowKeys.length > 0) {
let _this = this
this.$confirm({
content: _this.$t('ConfirmBatchDeletion'),
content: this.$t('ConfirmBatchDeletion'),
onOk() {
_this.textLoading = true
axios({
url: '/jero-boot/params/collectManifest/deleteBatch',
method: 'post',
data: param,
transformRequest: [function(data) {
let ret = ''
for (let it in data) {
ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&'
}
return ret
}],
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-Access-Token': _this.token
postAction('/params/collectManifest/deleteBatch', param).then((res) => {
if (res.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = []
console.log(111)
_this.$refs.CollectionTabel.getTableList(_this.queryParamQuery)
_this.textLoading = false
} else {
_this.textLoading = false
_this.$message.warning(this.$t('operationFailed'))
}
})
.then((res) => {
if (res.data.success) {
_this.$message.success(_this.$t('OperationSuccessful'))
_this.selectedRowKeys = []
// _this.$refs.CollectionTabel.getData()
_this.$refs.CollectionTabel.getTableList()
_this.textLoading = false
} else {
_this.textLoading = false
_this.$message.warning(_this.$t('operationFailed'))
}
})
.catch((error) => {
_this.textLoading = false
})
}
})
} else {
@@ -298,7 +298,7 @@
this.pageNo = page
this.getList()
},
SizeChange(pageSize) {
SizeChange(page,pageSize) {
this.pageNo = 1
this.pageSize = pageSize
this.getList()