Merge branch 'fix_20230911_UAT' into 'master'

Fix 20230911 uat

See merge request laws-nio/laws-weilai!367
This commit is contained in:
高嵩
2024-01-22 01:33:58 +00:00
93 changed files with 8437 additions and 5930 deletions
@@ -687,3 +687,22 @@ ALTER TABLE `project_certification_inventory`
ADD COLUMN `platform_certification_inventory_id` varchar(36) NULL COMMENT '平台件-认证清单id' AFTER `remark`;
-- 参数模板管理 添加维护人 2024-01-05 未同步生产环境
ALTER TABLE `params_template`
ADD COLUMN `maintainer` varchar(3000) NULL COMMENT '维护人' AFTER `status`;
-- 参数模板管理订阅表 2024-01-12 未同步生产环境
CREATE TABLE `params_template_subscribe` (
`id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '创建人',
`create_time` datetime(0) NULL DEFAULT NULL COMMENT '创建日期',
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '更新人',
`update_time` datetime(0) NULL DEFAULT NULL COMMENT '更新日期',
`sys_org_code` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '所属部门',
`params_template_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '模板id',
`user_id` varchar(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '订阅人id',
PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
@@ -7,7 +7,9 @@ package com.jero.common.constant.enums;
*/
public enum YesOrNoEnum {
NO("","NO","0"),
YES("","YES","1");
YES("","YES","1"),
CANCEL("取消","",""),
;
String name;
@@ -9,6 +9,7 @@ public enum DicCodeEnum {
PROBLEM_TYPE("问题类型","1697066042058821634","wen4_ti2_lei4_xing2"),
PROBLEM_PRIORITY("问题优先级","1716030928484503553","wen4_ti2_you1_xian1_ji2"),
CERTIFICATION_PROGRESS("认证清单-认证进度","1524311122804346881","certification_progress"),
PROJECT_STATUS("项目状态","78bda155fe380b3b3f17551e88c284c6","project_status"),
;
String name;
@@ -167,4 +167,11 @@ public class AuthDummyInventoryInfoEO implements Serializable {
@ApiModelProperty(value = "责任部门")
@TableField(exist = false)
private String firstLevelDutyTerritory;
/**清单名称**/
@TableField(exist = false)
private String authDummyInventoryBaseName;
/**清单创建人**/
@TableField(exist = false)
private String creatUser;
}
@@ -14,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface AuthDummyInventoryInfoEOMapper extends BaseMapper<AuthDummyInventoryInfoEO> {
List<AuthDummyInventoryInfoEO> queryListByStandId(String id);
}
@@ -18,4 +18,18 @@
<result column="buss_document_library_id" property="bussDocumentLibraryId" />
<result column="auth_dummy_inventory_base_id" property="authDummyInventoryBaseId" />
</resultMap>
<select id="queryListByStandId" resultType="com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO">
SELECT
dib.`name` as authDummyInventoryBaseName,
dib.create_by as creatUser,
dii.*
FROM
auth_dummy_inventory_info dii
LEFT JOIN auth_dummy_inventory_base dib on dii.auth_dummy_inventory_base_id = dib.id
<where>
<if test="id != null and id != '' ">
dii.buss_document_library_id = #{id}
</if>
</where>
</select>
</mapper>
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.modules.dummy.entity.DummyInventoryInfoEO;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.system.entity.SysCategory;
import org.springframework.web.multipart.MultipartFile;
@@ -147,4 +148,6 @@ public interface IAuthDummyInventoryInfoEOService extends IService<AuthDummyInve
Result<?> acquireAdd(JSONObject json);
List<AuthDummyInventoryInfoEO> dataUniqueCheck(List<AuthDummyInventoryInfoEO> addList, String cut, List<String> result, String authDummyInventoryBaseId);
List<AuthDummyInventoryInfoEO> queryListByStandId(String id);
}
@@ -2250,4 +2250,11 @@ public class AuthDummyInventoryInfoEOServiceImpl extends ServiceImpl<AuthDummyIn
return adiiSaveList;
}
@Override
public List<AuthDummyInventoryInfoEO> queryListByStandId(String id) {
QueryWrapper<AuthDummyInventoryInfoEO> queryWrapper = new QueryWrapper<>();
List<AuthDummyInventoryInfoEO> dataList = this.getBaseMapper().queryListByStandId(id);
return dataList;
}
}
@@ -475,6 +475,21 @@ public class ParamsCollectManifestEOController extends JeroController<ParamsColl
return Result.OK(configLableList);
}
/**
* 参数项收集清单-引用参数(全清单)
*/
@AutoLog(value = "参数项收集清单-引用参数(全清单)")
@ApiOperation(value = "参数项收集清单-引用参数(全清单)", notes = "参数项收集清单-引用参数(全清单)")
@PostMapping(value = "/referParamsAll")
public Result<?> referParamsAll(String paramsManifestId, String sourceConfigId, String targetConfigId) {
boolean isSuccess = paramsCollectManifestEOService.referParamsAll(paramsManifestId, sourceConfigId, targetConfigId);
if (isSuccess) {
return Result.OK("引用参数成功!");
} else {
return Result.error("引用参数失败!");
}
}
/**
* 引用参数
*
@@ -729,4 +744,17 @@ public class ParamsCollectManifestEOController extends JeroController<ParamsColl
return Result.OK(sdtList);
}
@ApiOperation(value="催办", notes="催办")
@PostMapping(value = "/urge")
public Result<?> urge(@RequestBody Map<String,Object> map){
String ids = (String)map.get("ids");
String projectId = (String)map.get("projectId");
String title = (String)map.get("title");
String inventoryVersion = (String)map.get("inventoryVersion");
String projectVersion = (String)map.get("projectVersion");
String paramsManifestId = (String)map.get("paramsManifestId");
paramsCollectManifestEOService.urge(ids,projectId,title,inventoryVersion,projectVersion,paramsManifestId);
return Result.OK("催办成功");
}
}
@@ -164,8 +164,8 @@ public class ParamsManifestEOController extends JeroController<ParamsManifestEO,
}
@ApiOperation(value = "参数清单-更新模板", notes = "参数清单-更新模板更新参数")
@PostMapping(value = "/updateModel")
public Result<?> updateModel(String mid, String version,String cid) {
@GetMapping(value = "/updateModel")
public Result<?> updateModel(@RequestParam(name="mid",required=true) String mid, @RequestParam(name="version",required=true) String version,@RequestParam(name="cid",required=true) String cid) {
boolean isSuccess = paramsManifestEOService.updateModel(mid,version, cid);
if (isSuccess) {
return Result.OK("更新成功!");
@@ -169,7 +169,8 @@
pm.project_id as project_id,
pm.create_time as create_time,
pm.version as version,
concat(pni.project_name,'-',pyni.year_name,'-',plb.target_market,'-',pm.project_version) as project_name
concat(pni.project_name,'-',pyni.year_name,'-',plb.target_market,'-',pm.project_version) as project_name,
plb.project_status
from params_manifest pm
left join project_library_base as plb on plb.id = pm.project_id
left join project_name_info as pni on plb.project_name_id = pni.id
@@ -204,6 +205,7 @@
select tmp_tb.* from(
select
plb.id as project_id,
plb.project_version as project_version,
target_market as targetMarket,
concat(pni.project_name,'-',pyni.year_name) as project_name,
concat(pni.project_name,'-',pyni.year_name) as project_name_en
@@ -155,7 +155,8 @@ public interface IParamsCollectManifestEOService extends IService<ParamsCollectM
// 冻结配置
boolean lockConfigColumn(ParamsCollectManifestVO paramsCollectManifestVO);
// 引用参数(全清单)
boolean referParamsAll(String paramsManifestId, String sourceConfigId, String targetConfigId);
// 引用参数
boolean referParams(ParamsCollectManifestVO paramsCollectManifestVO);
@@ -207,4 +208,6 @@ public interface IParamsCollectManifestEOService extends IService<ParamsCollectM
Result<?> queryDutyTerritory(String id);
Result<?> queryDutyTerritoryHistory(String id);
void urge(String ids,String projectId,String title,String inventoryVersion,String projectVersion,String paramsManifestId);
}
@@ -1937,6 +1937,16 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
fieldList.addAll(onlCgformFieldList);
}
ParamsManifestEO paramsManifestEO = paramsManifestEOService.getById(paramsManifestId);
// List<ProjectLibraryBase> projectLibraryBaseList = projectLibraryBaseService.queryById(paramsManifestEO.getProjectId(), cut);
// if(ObjectUtils.isNotEmpty(projectLibraryBaseList)){
// if(StringUtils.isBlank(projectLibraryBaseList.get(0).getProjectVersion())){
// projectName = projectLibraryBaseList.get(0).getProjectName()+"-00";
// }else{
// projectName = projectLibraryBaseList.get(0).getProjectName()+"-"+projectLibraryBaseList.get(0).getProjectVersion();
// }
// }
List<ParamsConfigEO> paramsConfigEOList = paramsConfigEOService.queryList(paramsManifestId);
List<Map<String, Object>> listConfig = new LinkedList<>();
for (ParamsConfigEO paramsConfigEO : paramsConfigEOList) {
@@ -2006,7 +2016,8 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
String[] references = projectName.split("-");
// map.put("db_field_txt", references[0] + "-" + references[1] + "-" + paramsManifestEO.getReferencesColName() + " " + onlCgformField.getDbFieldTxt());//字段中文名
// map.put("db_field_txt", paramsManifestEO.getReferencesColName() + " " + onlCgformField.getDbFieldTxt());//字段中文名
map.put("db_field_txt", onlCgformField.getDbFieldTxt()+projectName+" "+paramsManifestEO.getReferencesColName());//字段中文名
map.put("db_field_txt", onlCgformField.getDbFieldTxt()+" "+paramsManifestEO.getReferencesColName());//字段中文名
// map.put("db_field_txt", onlCgformField.getDbFieldTxt()+projectName+" "+paramsManifestEO.getReferencesColName());//字段中文名
map.put("db_field_id", paramsManifestEO.getReferencesColId());
map.put("references_col", true);
} else {
@@ -3738,6 +3749,40 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
return paramsConfigEOService.updateBatchById(updateConfigEOList);
}
@Override
public boolean referParamsAll(String paramsManifestId, String sourceConfigId, String targetConfigId) {
LambdaQueryWrapper<ParamsCollectManifestEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ParamsCollectManifestEO::getParamsManifestId, paramsManifestId)
.notIn(ParamsCollectManifestEO::getControlType, ControlTypeEnum.Title.getValue())
.orderByDesc(ParamsCollectManifestEO::getUpdateTime); // 按修改时间降序
List<ParamsCollectManifestEO> paramsCollectManifestList = list(queryWrapper);
List<ParamsConfigDataEO> addConfigDataEOList = new ArrayList<>();
for (ParamsCollectManifestEO paramsCollectManifest : paramsCollectManifestList) {
List<ParamsConfigDataEO> sourceConfigDataEOList = this.paramsConfigDataEOService.queryListByConfigIdAndCollectManifestId(sourceConfigId, paramsCollectManifest.getId());
if (CollectionUtils.isNotEmpty(sourceConfigDataEOList)) {
for (ParamsConfigDataEO sourceConfigDataEO : sourceConfigDataEOList) {
if (ObjectUtil.isNotEmpty(sourceConfigDataEO)) {
// 根据配置id参数清单id将被引用参数列的数据删掉重新加
QueryWrapper<ParamsConfigDataEO> targetConfigDataRemoveWrap = new QueryWrapper<>();
targetConfigDataRemoveWrap.lambda().eq(ParamsConfigDataEO::getParamsConfigId, targetConfigId);
targetConfigDataRemoveWrap.lambda().eq(ParamsConfigDataEO::getParamsCollectManifestId, paramsCollectManifest.getId());
this.paramsConfigDataEOService.remove(targetConfigDataRemoveWrap);
ParamsConfigDataEO targetConfigDataEO = new ParamsConfigDataEO();
BeanUtils.copyProperties(sourceConfigDataEO, targetConfigDataEO);
targetConfigDataEO.setId(null);
targetConfigDataEO.setParamsConfigId(targetConfigId);
targetConfigDataEO.setParamsCollectManifestId(paramsCollectManifest.getId());
addConfigDataEOList.add(targetConfigDataEO);
}
}
}
}
paramsConfigDataEOService.saveBatch(addConfigDataEOList);
return true;
}
@Override
public boolean referParams(ParamsCollectManifestVO paramsCollectManifestVO) {
if (StringUtils.isEmpty(paramsCollectManifestVO.getIds())
@@ -4804,6 +4849,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
String paramsManifestId = paramsCollectManifestVO.getParamsManifestId();
String projectId = paramsCollectManifestVO.getProjectId();
String cut = paramsCollectManifestVO.getCut();
String sdt = paramsCollectManifestVO.getSdt();
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 查询参数清单
@@ -4826,23 +4872,27 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
ParamsCollectManifestEO updateEO = new ParamsCollectManifestEO();
updateEO.setId(paramsCollectManifestEO.getId());
updateEO.setDutyTerritory(dutyTerritory);
// 根据负责领域处理工程接口人零个一个多个 领域中仅有一个人时添加该字段
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsManifestEO.getProjectVersionId(), dutyTerritory);
if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) {
String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson();
if (org.apache.commons.lang.StringUtils.isNotBlank(sdtId) && !sdtId.contains(",")) { // 领域中仅有一个人时添加该字段
SysUser sysUser = sysUserService.getById(sdtId);
if (ObjectUtil.isNotEmpty(sysUser)) {
updateEO.setSdt(sysUser.getUsername()); // 设置工程接口人
if(StringUtils.isNotBlank(sdt)){
SysUser sysUser = sysUserService.getById(sdt);
updateEO.setSdt(sysUser.getUsername()); // 设置工程接口人
}else{
// 根据负责领域处理工程接口人零个一个多个 领域中仅有一个人时添加该字段
ProjectRelatedPersonnel projectRelatedPersonnel = projectRelatedPersonnelService.queryByProjectIdAndDutyTerritory(paramsManifestEO.getProjectVersionId(), dutyTerritory);
if (ObjectUtil.isNotEmpty(projectRelatedPersonnel)) {
String sdtId = projectRelatedPersonnel.getEngineeringInterfacePerson();
if (org.apache.commons.lang.StringUtils.isNotBlank(sdtId) && !sdtId.contains(",")) { // 领域中仅有一个人时添加该字段
SysUser sysUser = sysUserService.getById(sdtId);
if (ObjectUtil.isNotEmpty(sysUser)) {
updateEO.setSdt(sysUser.getUsername()); // 设置工程接口人
} else {
updateEO.setSdt(""); // 设置工程接口人
}
} else {
updateEO.setSdt(""); // 设置工程接口人
}
} else {
updateEO.setSdt(""); // 设置工程接口人
}
} else {
updateEO.setSdt(""); // 设置工程接口人
}
updateEOList.add(updateEO);
@@ -8091,4 +8141,123 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
}
return Result.OK(resList);
}
/**
*
* @param ids
* @param projectId
* @param title 清单标题
* @param inventoryVersion 清单版本
*/
@Override
public void urge(String ids, String projectId,String title, String inventoryVersion, String projectVersion,String paramsManifestId) {
ParamsManifestVO projectInfo = paramsManifestEOService.getProjectById(projectId, null, null);
//项目名称中英文
String projectNameCn = projectInfo.getProjectName();
String projectNameEn = projectInfo.getProjectNameEn();
//清单中英文 参数项收集清单(Rosa-G1.1-中国香港-00) ttt 1
String inventoryNameCn = "参数项收集清单("+projectInfo.getProjectName()+")"+" - " + title + " - " + inventoryVersion;
String inventoryNameEn = "Parameter Collection List("+projectInfo.getProjectName()+")"+" - " + title + " - " + inventoryVersion;
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<ParamsCollectManifestEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ParamsCollectManifestEO::getId,Arrays.asList(ids.split(",")));
List<ParamsCollectManifestEO> paramsCollectManifestEOList = this.list(wrapper);
if(ObjectUtils.isEmpty(paramsCollectManifestEOList)){
return;
}
//催办状态为待工程接口人处理给工程接口人发消息
List<ParamsCollectManifestEO> paramsCollectManifestEOSdtList = paramsCollectManifestEOList.stream()
.filter(e -> CollectManifestStateEnum.WAIT_SDT.getValue().equals(e.getState())).collect(Collectors.toList());
//催办状态为待填写的给填写人发消息
List<ParamsCollectManifestEO> paramsCollectManifestEOFillList = paramsCollectManifestEOList.stream()
.filter(e -> CollectManifestStateEnum.WAIT_FILL.getValue().equals(e.getState())).collect(Collectors.toList());
List<String> userNameList = new ArrayList<>();
//给工程接口人发消息
if(ObjectUtils.isNotEmpty(paramsCollectManifestEOSdtList)){
List<String> sdtList = paramsCollectManifestEOSdtList.stream()
.filter(e -> StringUtils.isNotBlank(e.getSdt())).map(ParamsCollectManifestEO::getSdt).distinct().collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(sdtList)){
userNameList.addAll(sdtList);
}
}
//给填写人发消息
if(ObjectUtils.isNotEmpty(paramsCollectManifestEOFillList)){
List<String> dreList = paramsCollectManifestEOFillList.stream()
.filter(e -> StringUtils.isNotBlank(e.getDre())).map(ParamsCollectManifestEO::getDre).distinct().collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(dreList)){
userNameList.addAll(dreList);
}
}
//最新的截止时间
List<Date> deadlineList = paramsCollectManifestEOList.stream()
.filter(e -> ObjectUtils.isNotEmpty(e.getDeadline())).map(ParamsCollectManifestEO::getDeadline).collect(Collectors.toList());
Date deadline = null;
if(ObjectUtils.isNotEmpty(deadlineList)){
Collections.sort(deadlineList, new Comparator<Date>() {
@Override
public int compare(Date o1, Date o2) {
return o2.compareTo(o1);
}
});
deadline = deadlineList.get(0);
}
if(ObjectUtils.isEmpty(userNameList)){
return;
}
LambdaQueryWrapper<SysUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.in(SysUser::getUsername,userNameList);
List<SysUser> sysUserList = sysUserService.list(queryWrapper);
try {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String contentInfoFeiCn = "您好,您参与填写的" + inventoryNameCn + ",请及时查看处理,谢谢!";
String contentInfoFeiEn = "Hello! Please fill in the " + inventoryNameEn + " in a timely manner. Thank you!";
String urlParamsStrCn = "title="+title
+"&id="+paramsManifestId
+"&version="+inventoryVersion
+"&projectName="+projectNameCn
+"&projectVersion="+projectVersion
+"&projectId="+projectId;
String urlParamsStrEn = "title="+title
+"&id="+paramsManifestId
+"&version="+inventoryVersion
+"&projectName="+projectNameEn
+"&projectVersion="
+projectVersion
+"&projectId="+projectId;
String encodeCn = UriEncoder.encode(urlParamsStrCn);
String encodeEn = UriEncoder.encode(urlParamsStrEn);
String hrefFeishuCn = backUrl + "/ParameterItemCollection?" + encodeCn;
String hrefFeishuEn = backUrl + "/ParameterItemCollection?" + encodeEn;
//飞书消息模板-20230410
Map<String,Object> params = new HashMap<>();
params.put("contentInfoFeiCn",contentInfoFeiCn);
params.put("contentInfoFeiEn",contentInfoFeiEn);
params.put("projectCn",projectNameCn);
params.put("projectEn",projectNameEn);
params.put("initiatorCn",currentUser.getUsername());
params.put("initiatorEn",currentUser.getUsername());
if(ObjectUtil.isNotEmpty(deadline)){
params.put("dueDate",sdf.format(deadline));
}
params.put("back_url_cn",hrefFeishuCn);
params.put("back_url_en",hrefFeishuEn);
params.put("back_url_phone",backUrlPhone + "/phoneTaskData?activeTab=parametercollection");
feishuService.sendMessageHomoParameterCollectionUrge(TemplateInfoEnum2.HOMO_PARAMETER_COLLECTION_RED.getValue(),params,null,sysUserList);
} catch (Exception e) {
log.error("飞书消息推送失败");
}
}
}
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.cert.collect.entity.ParamsConfigDataEO;
import com.jero.modules.cert.collect.mapper.ParamsConfigDataEOMapper;
import com.jero.modules.cert.collect.service.IParamsConfigDataEOService;
import com.jero.modules.system.util.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
@@ -109,7 +110,9 @@ public class ParamsConfigDataEOServiceImpl extends ServiceImpl<ParamsConfigDataE
public List<ParamsConfigDataEO> queryListByConfigIdAndCollectManifestId(String paramsConfigId, String paramsCollectManifestId) {
LambdaQueryWrapper<ParamsConfigDataEO> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ParamsConfigDataEO::getParamsConfigId, paramsConfigId);
queryWrapper.eq(ParamsConfigDataEO::getParamsCollectManifestId, paramsCollectManifestId);
if(StringUtils.isNotBlank(paramsCollectManifestId)){
queryWrapper.eq(ParamsConfigDataEO::getParamsCollectManifestId, paramsCollectManifestId);
}
queryWrapper.orderByAsc(ParamsConfigDataEO::getOrderNum);
return this.list(queryWrapper);
}
@@ -859,6 +859,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
for (ParamsCollectManifestHistoryEO oldCollectManifestEO : diffList) {
ParamsCollectManifestEO updateCollectManifestEO = new ParamsCollectManifestEO();
updateCollectManifestEO.setId(oldCollectManifestEO.getId());
updateCollectManifestEO.setNioNumber(oldCollectManifestEO.getNioNumber());
updateCollectManifestEO.setDre(oldCollectManifestEO.getDre());
updateCollectManifestEO.setSdt(oldCollectManifestEO.getSdt());
updateCollectManifestEO.setState(CollectManifestStateEnum.CHANGE.getValue());
updateCollectManifestEO.setChangeFlag(CollectManifestChangeFlagEnum.CHANGE_BEFORE.getValue()); // 标记为变更前参数项
updateCollectManifestEO.setDelFlag(CollectManifestChangeFlagEnum.DELETE_AFTER.getValue()); // 因新发布模板中没有该参数项,标记为变更时已删除参数项
@@ -1154,6 +1157,9 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
@Override
public ParamsManifestVO getProjectById(String projectId, String projectVersion, String cut) {
ParamsManifestVO paramsManifestVO = paramsManifestEOMapper.getProjectById(projectId);
if(StringUtils.isBlank(projectVersion)){
projectVersion = paramsManifestVO.getProjectVersion();
}
String targetMarket = paramsManifestVO.getTargetMarket();//目标市场
String targetMarketCn = "";//目标市场
String targetMarketEn = "";//目标市场
@@ -1167,7 +1173,7 @@ public class ParamsManifestEOServiceImpl extends ServiceImpl<ParamsManifestEOMap
return paramsManifestVO;
}
private String getTargetMarket(String cut, List<DictModel> regionList, String targetMarket) {
public String getTargetMarket(String cut, List<DictModel> regionList, String targetMarket) {
//适用地区
List<DictModel> dictModelList = new ArrayList<>();
String region = "";
@@ -6,10 +6,12 @@ import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.collect.service.IParamsConfigDataEOService;
import com.jero.modules.cert.collect.service.IParamsConfigDataHistoryEOService;
import com.jero.modules.cert.collect.service.impl.ParamsManifestEOServiceImpl;
import com.jero.modules.cert.report.entity.ParamsReportConfigEO;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.cert.report.entity.ParamsReportEO;
import com.jero.modules.cert.report.entity.ParamsReportExportHistoryEO;
import com.jero.modules.cert.report.service.IParamsReportConfigDataEOService;
@@ -19,11 +21,14 @@ import com.jero.modules.cert.report.service.IParamsReportExportHistoryEOService;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.util.StringUtils;
import com.jero.modules.todoCenter.enums.FlagEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -38,12 +43,12 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.*;
import java.util.stream.Collectors;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
@@ -80,6 +85,10 @@ public class ParamsReportEOController extends JeroController<ParamsReportEO, IPa
private IParamsConfigDataEOService paramsConfigDataEOService;
@Autowired
private IParamsConfigDataHistoryEOService paramsConfigDataHistoryEOService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private ParamsManifestEOServiceImpl paramsManifestEOService;
@@ -116,6 +125,11 @@ public class ParamsReportEOController extends JeroController<ParamsReportEO, IPa
// for (ParamsReportEO row : rows) {
// row.setPageName(row.getProjectName() + "-" + row.getTargetMarket() + "-" + row.getTitle());
// }
//是否为超级管理员
boolean administrator = sysUserService.isAdministrator();
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
//目标市场
List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
List<ParamsReportEO> paramsReportEOS = paramsReportEOService.listInfo(paramsReportEO);
@@ -137,6 +151,21 @@ public class ParamsReportEOController extends JeroController<ParamsReportEO, IPa
}else{
row.setProjectName(row.getProjectName()+"-00");
}
//项目的认证工程师和管理员有权限,其余的角色没有权限,如果认证工程师为空,处理管理员其他角色没有权限
if(administrator){
row.setAuthorityFlag(FlagEnum.ZERO.getValue());
}else{
if(StringUtils.isBlank(row.getCertificationEngineer())){
row.setAuthorityFlag(FlagEnum.ONE.getValue());
}else{
if(row.getCertificationEngineer().contains(currentUser.getId())){
row.setAuthorityFlag(FlagEnum.ZERO.getValue());
}else{
row.setAuthorityFlag(FlagEnum.ONE.getValue());
}
}
}
}
String orderBy = paramsReportEO.getOrderBy();
String orderByField = paramsReportEO.getOrderByField();
@@ -187,7 +216,24 @@ public class ParamsReportEOController extends JeroController<ParamsReportEO, IPa
IPage page = new Page(pageNo, pageSize);
IPage pageList = paramsReportEOService.pageInfo(page, paramsReportEO);
List<ParamsReportEO> rows = pageList.getRecords();
// List<DictModel> regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
for (ParamsReportEO row : rows) {
//
// String targetMarket = "";
// if(CutEnum.CN.getValue().equals(paramsReportEO.getCut())){
// targetMarket = paramsManifestEOService.getTargetMarket(CutEnum.CN.getValue(), regionList, row.getTargetMarket());
// }else{
// targetMarket = paramsManifestEOService.getTargetMarket(CutEnum.EN.getValue(), regionList, row.getTargetMarket());
// }
// row.setTargetMarketName(targetMarket);
String version = "";
if(StringUtils.isBlank(row.getProjectVersion())){
version = "00";
}else{
version = row.getProjectVersion();
}
row.setProjectNameAll(row.getProjectName() + "-" +row.getTargetMarket()+"-"+version);
// 项目名称-国家-清单名称
row.setPageName(row.getProjectName() + "-" + row.getTargetMarket() + "-" + row.getTitle());
// 设置配置
@@ -75,12 +75,18 @@ public class ParamsReportEO implements Serializable {
@ApiModelProperty(value = "项目名称")
private String projectName;
private String projectNameAll;
@ApiModelProperty(value = "清单标题")
private String title;
@ApiModelProperty(value = "目标市场")
private String targetMarket;
@ApiModelProperty(value = "目标市场中英文转换")
@TableField(exist = false)
private String targetMarketName;
@ApiModelProperty(value = "相关项目版本")
private String projectVersion;
@@ -102,4 +108,14 @@ public class ParamsReportEO implements Serializable {
@TableField(exist = false)
private List<HashMap<String, String>> configList;
@ApiModelProperty(value = "认证工程师")
@TableField(exist = false)
private String certificationEngineer;
@TableField(exist = false)
@ApiModelProperty(value = "权限标识-->有权限0,没有权限1")
private java.lang.String authorityFlag;
}
@@ -16,6 +16,7 @@
<result column="project_name" property="projectName" />
<result column="title" property="title" />
<result column="target_market" property="targetMarket" />
<result column="certification_engineer" property="certificationEngineer" />
</resultMap>
<sql id="BaseColumnList">
@@ -30,7 +31,8 @@
pr.update_time as update_time,
if (pm.title is not null, pm.title, pr.title) as title,
if (plb.target_market is not null, plb.target_market, pr.target_market) as target_market,
if (pni.project_name is not null, concat(pni.project_name,'-', pyni.year_name), pr.project_name) as project_name
if (pni.project_name is not null, concat(pni.project_name,'-', pyni.year_name), pr.project_name) as project_name,
plb.certification_engineer as certification_engineer
</sql>
<sql id="BaseQuerySql">
@@ -1,5 +1,7 @@
package com.jero.modules.cert.template.controller;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -7,17 +9,24 @@ import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.template.entity.ParamsTemplateEO;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.jero.modules.cert.template.service.IParamsTemplateEOService;
import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService;
import com.jero.modules.dummy.enums.DummyInventoryBaseFieldEnum;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.ocr.util.LineHumpUtil;
import com.jero.modules.dummy.enums.ReadFlagEnum;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.mapper.SysDictItemMapper;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.todoCenter.enums.FlagEnum;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.apache.shiro.SecurityUtils;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
@@ -34,6 +43,8 @@ import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.Collator;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
@@ -57,6 +68,10 @@ public class ParamsTemplateEOController extends JeroController<ParamsTemplateEO,
private IParamsTemplateEOService paramsTemplateEOService;
@Autowired
private SysDictItemMapper sysDictItemMapper;
@Autowired
private ISysUserService sysUserService;
@Autowired
private IParamsTemplateSubscribeEOService paramsTemplateSubscribeEOService;
/**
* 分页列表查询
@@ -95,14 +110,93 @@ public class ParamsTemplateEOController extends JeroController<ParamsTemplateEO,
}else{
queryWrapper.orderBy(StringUtils.isBlank(paramsTemplateEO.getOrderByField()), false, "update_time");
}
if(ObjectUtil.isNotEmpty(paramsTemplateEO.getUpdateTimeStart())){
queryWrapper.lambda().ge(ParamsTemplateEO::getUpdateTime,paramsTemplateEO.getUpdateTimeStart());
}
if(ObjectUtil.isNotEmpty(paramsTemplateEO.getUpdateTimeEnd())){
try {
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String format = sdf1.format(paramsTemplateEO.getUpdateTimeEnd())+" 23:59:59";
queryWrapper.lambda().le(ParamsTemplateEO::getUpdateTime,sdf2.parse(format));
} catch (ParseException e) {
e.printStackTrace();
}
}
Page<ParamsTemplateEO> page = new Page<ParamsTemplateEO>(pageNo, pageSize);
IPage<ParamsTemplateEO> pageList = paramsTemplateEOService.page(page, queryWrapper);
//适用地区排序(特殊处理)
pageList = regionSort(paramsTemplateEO, pageNo, pageSize, queryWrapper, pageList);
//维护人以及权限处理
maintainerAndauthority(pageList);
//订阅
subscribe(pageList);
return Result.OK(cut, pageList);
}
private void subscribe(IPage<ParamsTemplateEO> pageList) {
if(ObjectUtil.isNotEmpty(pageList)){
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<String> idList = pageList.getRecords().stream().map(ParamsTemplateEO::getId).collect(Collectors.toList());
LambdaQueryWrapper<ParamsTemplateSubscribeEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ParamsTemplateSubscribeEO::getParamsTemplateId,idList);
wrapper.eq(ParamsTemplateSubscribeEO::getUserId,currentUser.getId());
//当前登录人订阅的所有模板
List<ParamsTemplateSubscribeEO> paramsTemplateSubscribeEOList = paramsTemplateSubscribeEOService.list(wrapper);
if(ObjectUtil.isNotEmpty(paramsTemplateSubscribeEOList)){
for (ParamsTemplateEO record : pageList.getRecords()) {
List<ParamsTemplateSubscribeEO> collect = paramsTemplateSubscribeEOList
.stream().filter(e -> currentUser.getId().equals(e.getUserId())
&& record.getId().equals(e.getParamsTemplateId())).collect(Collectors.toList());
if(ObjectUtil.isNotEmpty(collect)){
record.setReadFlag(ReadFlagEnum.READ.getValue());
}else{
record.setReadFlag(ReadFlagEnum.CANCEL_READ.getValue());
}
}
}
}
}
private void maintainerAndauthority(IPage<ParamsTemplateEO> pageList) {
//是否为超级管理员
boolean administrator = sysUserService.isAdministrator();
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
List<ParamsTemplateEO> records = pageList.getRecords();
if(ObjectUtil.isNotEmpty(records)){
List<String> userIdList = records.stream()
.filter(e -> StringUtils.isNotBlank(e.getMaintainer()))
.map(ParamsTemplateEO::getMaintainer).distinct().collect(Collectors.toList());
if(ObjectUtil.isNotEmpty(userIdList)){
List<SysUser> sysUserList = sysUserService.querySysUserListByIdList(userIdList);
for (ParamsTemplateEO record : records) {
if(StringUtils.isNotBlank(record.getMaintainer())){
List<SysUser> userList = sysUserList.stream().filter(e -> record.getMaintainer().contains(e.getId())).collect(Collectors.toList());
if(ObjectUtil.isNotEmpty(userList)){
List<String> collect = userList.stream().map(SysUser::getRealname).collect(Collectors.toList());
record.setMaintainerName(StringUtils.join(collect,","));
}
}
//权限
if(administrator){
record.setAuthorityFlag(FlagEnum.ZERO.getValue());
}else{
if(currentUser.getUsername().equals(record.getCreateBy())
|| (StringUtils.isNotBlank(record.getMaintainer()) && record.getMaintainer().contains(currentUser.getId()))){
record.setAuthorityFlag(FlagEnum.ZERO.getValue());
}else{
record.setAuthorityFlag(FlagEnum.ONE.getValue());
}
}
}
}
}
}
private IPage<ParamsTemplateEO> regionSort(ParamsTemplateEO paramsTemplateEO, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, QueryWrapper<ParamsTemplateEO> queryWrapper, IPage<ParamsTemplateEO> pageList) {
if(StringUtils.isNotBlank(paramsTemplateEO.getOrderByField())
&& "region".equals(paramsTemplateEO.getOrderByField())){
@@ -0,0 +1,187 @@
package com.jero.modules.cert.template.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
* @Description: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
@Api(tags="参数模板订阅")
@RestController
@RequestMapping("template/paramsTemplateSubscribeEO")
@Slf4j
public class ParamsTemplateSubscribeEOController extends JeroController<ParamsTemplateSubscribeEO, IParamsTemplateSubscribeEOService> {
@Autowired
private IParamsTemplateSubscribeEOService paramsTemplateSubscribeEOService;
/**
* 分页列表查询
*
* @param paramsTemplateSubscribeEO
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@AutoLog(value = "参数模板订阅-分页列表查询")
@ApiOperation(value="参数模板订阅-分页列表查询", notes="参数模板订阅-分页列表查询")
@GetMapping(value = "/page")
public Result<?> queryPageList(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<ParamsTemplateSubscribeEO> queryWrapper = QueryGenerator.initQueryWrapper(paramsTemplateSubscribeEO, req.getParameterMap());
Page<ParamsTemplateSubscribeEO> page = new Page<ParamsTemplateSubscribeEO>(pageNo, pageSize);
IPage<ParamsTemplateSubscribeEO> pageList = paramsTemplateSubscribeEOService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @return
*/
@AutoLog(value = "参数模板订阅-列表查询")
@ApiOperation(value="参数模板订阅-列表查询", notes="参数模板订阅-列表查询")
@GetMapping(value = "/list")
public Result<List<ParamsTemplateSubscribeEO>> queryList() {
List<ParamsTemplateSubscribeEO> list = paramsTemplateSubscribeEOService.queryList();
return Result.OK(list);
}
/**
* 添加
*
* @param paramsTemplateSubscribeEO
* @return
*/
@AutoLog(value = "参数模板订阅-添加")
@ApiOperation(value="参数模板订阅-添加", notes="参数模板订阅-添加")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
paramsTemplateSubscribeEOService.add(paramsTemplateSubscribeEO);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param paramsTemplateSubscribeEO
* @return
*/
@AutoLog(value = "参数模板订阅-编辑")
@ApiOperation(value="参数模板订阅-编辑", notes="参数模板订阅-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
paramsTemplateSubscribeEOService.editById(paramsTemplateSubscribeEO);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@AutoLog(value = "去掉订阅")
@ApiOperation(value="去掉订阅", notes="去掉订阅")
@GetMapping(value = "/cancelSubscribe")
public Result<?> cancelSubscribe(@RequestParam(name="id",required=true) String id) {
paramsTemplateSubscribeEOService.deleteById(id);
return Result.OK("去掉订阅成功!");
}
@AutoLog(value = "参数模板订阅-通过id删除")
@ApiOperation(value="参数模板订阅-通过id删除", notes="参数模板订阅-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
paramsTemplateSubscribeEOService.deleteById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@AutoLog(value = "参数模板订阅-批量删除")
@ApiOperation(value="参数模板订阅-批量删除", notes="参数模板订阅-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.paramsTemplateSubscribeEOService.deleteByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@AutoLog(value = "参数模板订阅-通过id查询")
@ApiOperation(value="参数模板订阅-通过id查询", notes="参数模板订阅-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
ParamsTemplateSubscribeEO paramsTemplateSubscribeEO = paramsTemplateSubscribeEOService.queryById(id);
if(paramsTemplateSubscribeEO==null) {
return Result.error("未找到对应数据");
}
return Result.OK(paramsTemplateSubscribeEO);
}
/**
* 导出excel
*
* @param request
* @param paramsTemplateSubscribeEO
*/
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
return super.exportXls(request, paramsTemplateSubscribeEO, ParamsTemplateSubscribeEO.class, "参数模板订阅");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, ParamsTemplateSubscribeEO.class);
}
}
@@ -56,6 +56,18 @@ public class ParamsTemplateEO implements Serializable {
@ApiModelProperty(value = "最新变更时间")
private java.util.Date updateTime;
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "变更起始时间")
private java.util.Date updateTimeStart;
@TableField(exist = false)
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "变更结束时间")
private java.util.Date updateTimeEnd;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
@@ -100,4 +112,21 @@ public class ParamsTemplateEO implements Serializable {
@TableField(exist = false)
private String orderByField; // 字段
@ApiModelProperty(value = "维护人")
private java.lang.String maintainer;
@TableField(exist = false)
@ApiModelProperty(value = "维护人回显")
private java.lang.String maintainerName;
@TableField(exist = false)
@ApiModelProperty(value = "权限标识-->有权限0,没有权限1")
private java.lang.String authorityFlag;
@TableField(exist = false)
@ApiModelProperty(value = "订阅标识-->订阅0,取消订阅1")
private java.lang.String readFlag;
}
@@ -0,0 +1,74 @@
package com.jero.modules.cert.template.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: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
@Data
@TableName("params_template_subscribe")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="params_template_subscribe对象", description="参数模板订阅")
public class ParamsTemplateSubscribeEO implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建日期")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
/**所属部门*/
@ApiModelProperty(value = "所属部门")
private java.lang.String sysOrgCode;
/**模板id*/
@Excel(name = "模板id", width = 15)
@ApiModelProperty(value = "模板id")
private java.lang.String paramsTemplateId;
/**订阅人id*/
@Excel(name = "订阅人id", width = 15)
@ApiModelProperty(value = "订阅人id")
private java.lang.String userId;
}
@@ -0,0 +1,17 @@
package com.jero.modules.cert.template.mapper;
import java.util.List;
import org.apache.ibatis.annotations.Param;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @Description: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
public interface ParamsTemplateSubscribeEOMapper extends BaseMapper<ParamsTemplateSubscribeEO> {
}
@@ -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.cert.template.mapper.ParamsTemplateSubscribeEOMapper">
<resultMap id="ParamsTemplateSubscribeEOResultMap" type="com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO">
<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="params_template_id" property="paramsTemplateId" />
<result column="user_id" property="userId" />
</resultMap>
</mapper>
@@ -0,0 +1,61 @@
package com.jero.modules.cert.template.service;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @Description: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
public interface IParamsTemplateSubscribeEOService extends IService<ParamsTemplateSubscribeEO> {
/**
* 保存
*
* @param paramsTemplateSubscribeEO
* @return
*/
void add(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO);
/**
* 更新
*
* @param paramsTemplateSubscribeEO
* @return
*/
void editById(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO);
/**
* 通过id删除
*
* @param id
* @return
*/
void deleteById(String id);
/**
* 批量删除
*
* @param ids
* @return
*/
void deleteByIds(List<String> ids);
/**
* 通过id查询
*
* @param id
* @return
*/
ParamsTemplateSubscribeEO queryById(String id);
/**
* 列表查询
*
* @return
*/
List<ParamsTemplateSubscribeEO> queryList();
}
@@ -6,21 +6,38 @@ 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.vo.LoginUser;
import com.jero.modules.cert.template.entity.*;
import com.jero.modules.cert.template.entity.CertCategoryParamsInfoEO;
import com.jero.modules.cert.template.entity.CertCategoryParamsInfoPublishEO;
import com.jero.modules.cert.template.entity.ParamsInfoEO;
import com.jero.modules.cert.template.entity.ParamsInfoPublishEO;
import com.jero.modules.cert.template.entity.ParamsTemplateEO;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.jero.modules.cert.template.mapper.ParamsInfoPublishEOMapper;
import com.jero.modules.cert.template.service.*;
import com.jero.modules.cert.template.service.ICertCategoryParamsInfoEOService;
import com.jero.modules.cert.template.service.ICertCategoryParamsInfoPublishEOService;
import com.jero.modules.cert.template.service.IParamsInfoEOService;
import com.jero.modules.cert.template.service.IParamsInfoPublishEOService;
import com.jero.modules.cert.template.service.IParamsTemplateEOService;
import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.feishu.service.IFeishuService;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
/**
* @Description: 参数项基本信息表发布版
@@ -43,6 +60,15 @@ public class ParamsInfoPublishEOServiceImpl extends ServiceImpl<ParamsInfoPublis
private ICertCategoryParamsInfoEOService certCategoryParamsInfoEOService;
@Autowired
private ICertCategoryParamsInfoPublishEOService certCategoryParamsInfoPublishEOService;
@Autowired
private IParamsTemplateSubscribeEOService paramsTemplateSubscribeEOService;
@Resource
private IFeishuService iFeishuService;
@Value(value = "${jero.backUrl}")
private String backUrl;
@Value(value = "${jero.backUrlPhone}")
private String backUrlPhone;
/**
* 保存
@@ -189,6 +215,34 @@ public class ParamsInfoPublishEOServiceImpl extends ServiceImpl<ParamsInfoPublis
certCategoryParamsInfoPublishEOService.saveBatch(targetCertCategoryParamsInfoPublishEOList);
paramsTemplateEOService.updateById(updateSource);
//发布成功后给订阅人发消息
LambdaQueryWrapper<ParamsTemplateSubscribeEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ParamsTemplateSubscribeEO::getParamsTemplateId,paramsTemplateId);
List<ParamsTemplateSubscribeEO> paramsTemplateSubscribeEOList = paramsTemplateSubscribeEOService.list(wrapper);
if(ObjectUtils.isNotEmpty(paramsTemplateSubscribeEOList)){
List<String> userIdList = paramsTemplateSubscribeEOList
.stream().map(ParamsTemplateSubscribeEO::getUserId).distinct().collect(Collectors.toList());
//飞书消息
String url = backUrl + "/ParameterTemplateList?id=" + paramsTemplateId;
String contentInfoFeiShuCn = "参数模板" + source.getParamsTemplateName() + "已被修改,请及时查看确认修改影响。";
String contentInfoFeiShu = "Parameter template " + source.getParamsTemplateName() + " has been modified,has been modified, please check in time to confirm the impact of the modification.";
Map<String,Object> params = new HashMap<>();
params.put("contentInfoFeiCn",contentInfoFeiShuCn);
params.put("contentInfoFeiEn",contentInfoFeiShu);
params.put("userIdList",userIdList);
params.put("back_url",url);
params.put("back_url_phone",backUrlPhone + "ParameterTemplateList?id=" + paramsTemplateId);
params.put("titleCn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameCn());
params.put("titleEn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameEn());
iFeishuService.sendMessageSubscriptionNotification(TemplateInfoEnum2.SUBSCRIPTION_INFORM.getValue(),params);
}
return newVersion;
}
@@ -0,0 +1,97 @@
package com.jero.modules.cert.template.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.template.entity.ParamsTemplateSubscribeEO;
import com.jero.modules.cert.template.mapper.ParamsTemplateSubscribeEOMapper;
import com.jero.modules.cert.template.service.IParamsTemplateSubscribeEOService;
import org.apache.shiro.SecurityUtils;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
/**
* @Description: 参数模板订阅
* @Author: jero-boot
* @Date: 2024-01-12
* @Version: V1.0
*/
@Service
public class ParamsTemplateSubscribeEOServiceImpl extends ServiceImpl<ParamsTemplateSubscribeEOMapper, ParamsTemplateSubscribeEO> implements IParamsTemplateSubscribeEOService {
/**
* 保存
*
* @param paramsTemplateSubscribeEO
* @return
*/
@Override
public void add(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
Date now = new Date();
paramsTemplateSubscribeEO.setCreateTime(now);
paramsTemplateSubscribeEO.setUpdateTime(now);
save(paramsTemplateSubscribeEO);
}
/**
* 更新
*
* @param paramsTemplateSubscribeEO
* @return
*/
@Override
public void editById(ParamsTemplateSubscribeEO paramsTemplateSubscribeEO) {
Date now = new Date();
paramsTemplateSubscribeEO.setUpdateTime(now);
saveOrUpdate(paramsTemplateSubscribeEO);
}
/**
* 通过id删除
*
* @param id
* @return
*/
@Override
public void deleteById(String id) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
LambdaQueryWrapper<ParamsTemplateSubscribeEO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ParamsTemplateSubscribeEO::getParamsTemplateId,id);
wrapper.eq(ParamsTemplateSubscribeEO::getUserId,currentUser.getId());
this.remove(wrapper);
}
/**
* 批量删除
*
* @param ids
* @return
*/
@Override
public void deleteByIds(List<String> ids) {
removeByIds(ids);
}
/**
* 通过id查询
*
* @param id
* @return
*/
@Override
public ParamsTemplateSubscribeEO queryById(String id) {
return getById(id);
}
/**
* 列表查询
*
* @return
*/
@Override
public List<ParamsTemplateSubscribeEO> queryList() {
return list();
}
}
@@ -22,11 +22,14 @@ import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.es.JeroElasticsearchTemplate;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.query.QueryRuleEnum;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.common.util.oss.CosBootUtil;
import com.jero.generater.modules.online.cgform.entity.OnlCgformField;
import com.jero.generater.modules.online.cgform.service.impl.OnlCgformFieldServiceImpl;
import com.jero.modules.authDummy.entity.AuthDummyInventoryInfoEO;
import com.jero.modules.authDummy.service.IAuthDummyInventoryInfoEOService;
import com.jero.modules.collection.entity.OnlCgformCollection;
import com.jero.modules.collection.service.IOnlCgformCollectionService;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
@@ -45,6 +48,8 @@ import com.jero.modules.document.vo.QueryConditionVO;
import com.jero.modules.domain.entity.DomainUserRel;
import com.jero.modules.domain.service.DomainUserRelService;
import com.jero.modules.domain.service.impl.DomainManageServiceImpl;
import com.jero.modules.dummy.entity.DummyInventoryInfoEO;
import com.jero.modules.dummy.service.IDummyInventoryInfoEOService;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsgVo;
@@ -59,6 +64,15 @@ import com.jero.modules.oss.service.IOSSFileService;
import com.jero.modules.phone.entity.RecentBrowse;
import com.jero.modules.phone.enums.BrowseTypeEnum;
import com.jero.modules.phone.service.IRecentBrowseService;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.enums.CertificationInventoryFlowStatusEnum;
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.impl.ProjectLawsInventoryEOServiceImpl;
import com.jero.modules.searchcenter.enums.ModuleTypeFlagEnum;
import com.jero.modules.split.common.FileUnZip;
import com.jero.modules.split.entity.SarFileSplitInfoEO;
@@ -71,9 +85,11 @@ import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysCategoryTreeVO;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.mapper.SysUserMapper;
import com.jero.modules.system.service.ISysAnnouncementService;
import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
@@ -200,6 +216,22 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
private IPhasedImplementationDetailsEOService phasedImplementationDetailsEOService;
@Autowired
private IRecentBrowseService recentBrowseService;
@Autowired
private IProjectLawsInventoryEOService projectLawsInventoryEOService;
@Autowired
private IProjectCertificationInventoryEOService projectCertificationInventoryEOService;
@Autowired
private IProjectLibraryBaseService projectLibraryBaseService;
@Autowired
private ISysDictService sysDictService;
@Autowired
private IDummyInventoryInfoEOService dummyInventoryInfoEOService;
@Autowired
private IAuthDummyInventoryInfoEOService authDummyInventoryInfoEOService;
@Value(value = "${jero.path.upload}")
private String uploadpath;
@@ -867,21 +899,34 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
wrapper.in(SysUser::getUsername,userNameList);
userList = sysUserService.list(wrapper);
}
//编辑回显对应标准代替标准
if(ObjectUtils.isNotEmpty(dataList) && ObjectUtils.isNotEmpty(dataList.get(0).get("corresponding_standard"))){
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.getListBySerialNumber(String.valueOf(dataList.get(0).get("corresponding_standard")));
if(ObjectUtils.isNotEmpty(mapList)){
dataList.get(0).put("corresponding_standard_id",mapList.get(0).get("id"));
}
}
if(ObjectUtils.isNotEmpty(dataList) && ObjectUtils.isNotEmpty(dataList.get(0).get("replace_standard"))){
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.getListBySerialNumber(String.valueOf(dataList.get(0).get("replace_standard")));
if(ObjectUtils.isNotEmpty(mapList)){
dataList.get(0).put("replace_standard_id",mapList.get(0).get("id"));
}
}
//查询所有
List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(null);
// List<Map<String, Object>> mapList = bussDocumentLibraryEOMapper.selectMapsAll(id);
//处理被代替标准和对应标准
List<String> replacedStandardNameList = new ArrayList<>();//被代替标准
for (Map<String, Object> map : mapList) {
//被代替标准
String replaceStandard = (String) map.get("replace_standard");
if (StringUtils.isNotBlank(replaceStandard) && replaceStandard.contains((String) dataList.get(0).get("serial_number"))) {
String serialNumber = (String) map.get("serial_number");
replacedStandardNameList.add(serialNumber);
}
}
dataList.get(0).put("replaced_standard", StringUtils.join(replacedStandardNameList, ","));
// List<String> replacedStandardNameList = new ArrayList<>();//被代替标准
// for (Map<String, Object> map : mapList) {
// //被代替标准
// String replaceStandard = (String) map.get("replace_standard");
// if (StringUtils.isNotBlank(replaceStandard) && replaceStandard.contains((String) dataList.get(0).get("serial_number"))) {
// String serialNumber = (String) map.get("serial_number");
// replacedStandardNameList.add(serialNumber);
// }
// }
// dataList.get(0).put("replaced_standard", StringUtils.join(replacedStandardNameList, ","));
List<String> personKeyList = new ArrayList<>();
for (Map.Entry<String, Object> entry : dataList.get(0).entrySet()) {
if(treeList.contains(entry.getKey())){
@@ -2414,6 +2459,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
throw new JeroBootException("编号已存在不能重复添加");
}
}
//字段属性
List<OnlCgformField> fieldList = onlCgformFieldService.getFieldList(ModuleEnum.DOCUMENT_LIBRARY.getValue());
//普通数据字典
@@ -2582,12 +2628,13 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
valuesBuilder.append("'" + value + "'" + ",");
}
} else {
//编辑时replaced_standard被代替标准不存值,通过查询得到
if ("replaced_standard".equals(key)) {
valuesBuilder.append("'" + "" + "'" + ",");
} else {
valuesBuilder.append("'" + value + "'" + ",");
}
valuesBuilder.append("'" + value + "'" + ",");
// //编辑时replaced_standard被代替标准不存值,通过查询得到
// if ("replaced_standard".equals(key)) {
// valuesBuilder.append("'" + "" + "'" + ",");
// } else {
// valuesBuilder.append("'" + value + "'" + ",");
// }
}
}
fieldsBuilder.append(key + ",");
@@ -2804,6 +2851,7 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
(String) map.get("id")+fileId);
}
}
jsonObject.remove("update_time");
jeroElasticsearchTemplate.saveOrUpdate(SearchEnum.INDEX_NAME_DOCUMENT.getValue(), SearchEnum.TYPE_NAME_DOCUMENT.getValue(), (String) map.get("id"), jsonObject);
//添加全文
jeroElasticsearchTemplate.saveBatch(SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), SearchEnum.FULL_TEXT_SEARCH_CN.getValue(), arrayCn);
@@ -2811,6 +2859,217 @@ public class BussDocumentLibraryEOServiceImpl extends ServiceImpl<BussDocumentLi
} catch (Exception e) {
log.error("文档库编辑es失败");
}
//如果编辑了编号中英文标题则通知法规清单认证清单市场清单相关人
if(!StringUtils.valueOf(dataList.get(0).get("serial_number")).equals(serialNumber)
||!StringUtils.valueOf(dataList.get(0).get("title")).equals(title)
||!StringUtils.valueOf(dataList.get(0).get("title_en")).equals(titleEn)){
notifyUpdateMsg(id,StringUtils.valueOf(dataList.get(0).get("serial_number")));
}
}
private void addProjectByUser(Map<String, List<String>> user2ProjectMap, String userId, String projectId) {
if (user2ProjectMap.containsKey(userId)) {
List<String> proList = user2ProjectMap.get(userId);
if (!proList.contains(projectId)) {
proList.add(projectId);
}
} else {
List<String> proList = new ArrayList<>();
proList.add(projectId);
user2ProjectMap.put(userId, proList);
}
}
private void notifyUpdateMsg(String id ,String serialNumber) {
Map<String,List<String>> user2ProjectMap = new HashMap<>();
Set<String> projectIds = new HashSet<>();
//法规清单
List<ProjectLawsInventoryEO> pliList = projectLawsInventoryEOService.queryProjectLawsInventoryInfoByStandId(id);
for (ProjectLawsInventoryEO pli : pliList) {
if (!((pli.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| pli.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue()))
&& (pli.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| pli.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())))) {
if(StringUtils.isNotBlank(pli.getRegulationOwnerId())){
addProjectByUser(user2ProjectMap,pli.getRegulationOwnerId(),pli.getProjectLibraryId());
projectIds.add(pli.getProjectLibraryId());
}
if(StringUtils.isNotBlank(pli.getDesignDutyId())){
addProjectByUser(user2ProjectMap,pli.getDesignDutyId(),pli.getProjectLibraryId());
projectIds.add(pli.getProjectLibraryId());
}
if(StringUtils.isNotBlank(pli.getVerifyDutyId())){
addProjectByUser(user2ProjectMap,pli.getVerifyDutyId(),pli.getProjectLibraryId());
projectIds.add(pli.getProjectLibraryId());
}
}
}
//认证清单
List<ProjectCertificationInventoryEO> pciList = projectCertificationInventoryEOService.queryProjectCertificationInventoryByStandId(id);
for (ProjectCertificationInventoryEO pci : pciList) {
if ((!pci.getFlowStatus().equals(CertificationInventoryFlowStatusEnum.REVIEW_AND_PASS.getValue())
|| !pci.getFlowStatus().equals(CertificationInventoryFlowStatusEnum.UNINVOLVED.getValue()))) {
if(StringUtils.isNotBlank(pci.getDutyPerson())){
addProjectByUser(user2ProjectMap,pci.getDutyPerson(),pci.getProjectLibraryId());
projectIds.add(pci.getProjectLibraryId());
}
}
}
Map<String , String> projectNameMap = new HashMap<>();
List<DictModel> regionList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
List<ProjectLibraryBase> projectList = projectLibraryBaseService.getListByIds(new ArrayList<>(projectIds));
for (ProjectLibraryBase plb : projectList) {
String market = plb.getTargetMarket();
List<String> strlist = new LinkedList<>();
for (String s : market.split(",")) {
List<DictModel> collect = regionList.stream().filter(e -> e.getValue().equals(s)).collect(Collectors.toList());
if (!collect.isEmpty()) {
strlist.add(collect.get(0).getTextEn());
}
}
if (!strlist.isEmpty()) {
market = StringUtils.join(strlist, ",");
}
plb.setTargetMarket(market);
projectNameMap.put(plb.getId(),plb.getShowName());
}
for (String userId : user2ProjectMap.keySet()) {
List<String> userList = new ArrayList<>();
userList.add(userId);
StringBuilder proSb = new StringBuilder();
List<String> projectIdList = user2ProjectMap.get(userId);
for (int i = 0; i < projectIdList.size(); i++) {
if (i == projectIdList.size() - 1) {
proSb.append(projectNameMap.get(projectIdList.get(i)));
} else {
proSb.append(projectNameMap.get(projectIdList.get(i))).append(",");
}
}
String contentInfoFei = "The standard " + serialNumber + " in " + proSb.toString() +
" has been modified, please check in time to confirm the impact of the modification.";
String contentInfoFeiCn = proSb.toString() + " 中的标准 " + serialNumber + " 已被修改,请及时查看确认修改影响。";
try {
//跳转文档详情
String url = backUrl + "/projectLibrary";
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
feishuMsgVo.setTitle(MessageTypeEnum.READ.getNameCn()+"/"+MessageTypeEnum.READ.getName());
feishuMsgVo.setUrl(url);
feishuMsgVo.setContentEn(contentInfoFei);
feishuMsgVo.setContent(contentInfoFeiCn);
Map<String,Object> params = new HashMap<>();
params.put("contentInfoFeiCn",contentInfoFeiCn);
params.put("contentInfoFeiEn",contentInfoFei);
params.put("userIdList",userList);
params.put("back_url",url);
params.put("back_url_phone",backUrlPhone + "/phoneDocumentDetails?id=" + id);
params.put("titleCn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameCn());
params.put("titleEn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameEn());
iFeishuService.sendMessageSubscriptionNotification(TemplateInfoEnum2.SUBSCRIPTION_INFORM.getValue(),params);
} catch (Exception e) {
log.error("文档修改飞书消息推送失败");
}
}
//市场法规清单
Map<String ,List<DummyInventoryInfoEO>> user2DiiMap = new HashMap<>();
List<DummyInventoryInfoEO> diiList = dummyInventoryInfoEOService.queryListByStandId(id);
for (DummyInventoryInfoEO dii : diiList) {
if(user2DiiMap.containsKey(dii.getCreatUser())){
List<DummyInventoryInfoEO> diiEOList = user2DiiMap.get(dii.getCreatUser());
diiEOList.add(dii);
}else{
List<DummyInventoryInfoEO> diiEOList = new ArrayList<>();
diiEOList.add(dii);
user2DiiMap.put(dii.getCreatUser(),diiEOList);
}
}
for (String userId : user2DiiMap.keySet()) {
List<String> userList = new ArrayList<>();
SysUser user = sysUserService.getUserByName(userId);
userList.add(user.getId());
StringBuilder proSb = new StringBuilder();
List<DummyInventoryInfoEO> diiEoList = user2DiiMap.get(userId);
for (int i = 0; i < diiEoList.size(); i++) {
if (i == diiEoList.size() - 1) {
proSb.append(diiEoList.get(i).getDummyInventoryBaseName());
} else {
proSb.append(diiEoList.get(i).getDummyInventoryBaseName()).append(",");
}
}
String contentInfoFei = "The standard " + serialNumber + " in " + proSb.toString() +
" has been modified, please check in time to confirm the impact of the modification.";
String contentInfoFeiCn = proSb.toString() + " 中的标准 " + serialNumber + " 已被修改,请及时查看确认修改影响。";
try {
//跳转文档详情
String url = backUrl + "/virtualList";
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
feishuMsgVo.setTitle(MessageTypeEnum.READ.getNameCn()+"/"+MessageTypeEnum.READ.getName());
feishuMsgVo.setUrl(url);
feishuMsgVo.setContentEn(contentInfoFei);
feishuMsgVo.setContent(contentInfoFeiCn);
Map<String,Object> params = new HashMap<>();
params.put("contentInfoFeiCn",contentInfoFeiCn);
params.put("contentInfoFeiEn",contentInfoFei);
params.put("userIdList",userList);
params.put("back_url",url);
params.put("back_url_phone",backUrlPhone + "/phoneDocumentDetails?id=" + id);
params.put("titleCn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameCn());
params.put("titleEn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameEn());
iFeishuService.sendMessageSubscriptionNotification(TemplateInfoEnum2.SUBSCRIPTION_INFORM.getValue(),params);
} catch (Exception e) {
log.error("文档修改飞书消息推送失败");
}
}
//市场认证清单
Map<String ,List<AuthDummyInventoryInfoEO>> user2AdiiMap = new HashMap<>();
List<AuthDummyInventoryInfoEO> adiiList = authDummyInventoryInfoEOService.queryListByStandId(id);
for (AuthDummyInventoryInfoEO adii : adiiList) {
if(user2AdiiMap.containsKey(adii.getCreatUser())){
List<AuthDummyInventoryInfoEO> adiiEOList = user2AdiiMap.get(adii.getCreatUser());
adiiEOList.add(adii);
}else{
List<AuthDummyInventoryInfoEO> adiiEOList = new ArrayList<>();
adiiEOList.add(adii);
user2AdiiMap.put(adii.getCreatUser(),adiiEOList);
}
}
for (String userId : user2AdiiMap.keySet()) {
List<String> userList = new ArrayList<>();
SysUser user = sysUserService.getUserByName(userId);
userList.add(user.getId());
StringBuilder proSb = new StringBuilder();
List<AuthDummyInventoryInfoEO> diiEoList = user2AdiiMap.get(userId);
for (int i = 0; i < diiEoList.size(); i++) {
if (i == diiEoList.size() - 1) {
proSb.append(diiEoList.get(i).getAuthDummyInventoryBaseName());
} else {
proSb.append(diiEoList.get(i).getAuthDummyInventoryBaseName()).append(",");
}
}
String contentInfoFei = "The standard " + serialNumber + " in " + proSb.toString() +
" has been modified, please check in time to confirm the impact of the modification.";
String contentInfoFeiCn = proSb.toString() + " 中的标准 " + serialNumber + " 已被修改,请及时查看确认修改影响。";
try {
//跳转文档详情
String url = backUrl + "/virtualAuthenticationList";
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
feishuMsgVo.setTitle(MessageTypeEnum.READ.getNameCn()+"/"+MessageTypeEnum.READ.getName());
feishuMsgVo.setUrl(url);
feishuMsgVo.setContentEn(contentInfoFei);
feishuMsgVo.setContent(contentInfoFeiCn);
Map<String,Object> params = new HashMap<>();
params.put("contentInfoFeiCn",contentInfoFeiCn);
params.put("contentInfoFeiEn",contentInfoFei);
params.put("userIdList",userList);
params.put("back_url",url);
params.put("back_url_phone",backUrlPhone + "/phoneDocumentDetails?id=" + id);
params.put("titleCn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameCn());
params.put("titleEn",TemplateInfoEnum2.SUBSCRIPTION_INFORM.getNameEn());
iFeishuService.sendMessageSubscriptionNotification(TemplateInfoEnum2.SUBSCRIPTION_INFORM.getValue(),params);
} catch (Exception e) {
log.error("文档修改飞书消息推送失败");
}
}
}
private void homeDocumentDynamic(String cut,
@@ -339,6 +339,14 @@ public class DummyInventoryInfoEO implements Serializable {
@TableField(exist = false)
private String firstLevelDutyTerritory;
/**清单名称**/
@TableField(exist = false)
private String dummyInventoryBaseName;
/**清单创建人**/
@TableField(exist = false)
private String creatUser;
@@ -6,8 +6,8 @@ package com.jero.modules.dummy.enums;
* @auth zhn
*/
public enum ReadFlagEnum {
CANCEL_READ("取消订阅","0"),
READ("订阅","1");
CANCEL_READ("订阅","0"),
READ("取消订阅","1");
@@ -14,4 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
*/
public interface DummyInventoryInfoEOMapper extends BaseMapper<DummyInventoryInfoEO> {
List<DummyInventoryInfoEO> queryListByStandId(String id);
}
@@ -42,4 +42,18 @@
<result column="design_remark" property="designRemark" />
<result column="buss_document_library_id" property="bussDocumentLibraryId" />
</resultMap>
<select id="queryListByStandId" resultType="com.jero.modules.dummy.entity.DummyInventoryInfoEO">
SELECT
dib.`name` as dummyInventoryBaseName,
dib.create_by as creatUser,
dii.*
FROM
dummy_inventory_info dii
LEFT JOIN dummy_inventory_base dib on dii.dummy_inventory_base_id = dib.id
<where>
<if test="id != null and id != '' ">
dii.buss_document_library_id = #{id}
</if>
</where>
</select>
</mapper>
@@ -106,4 +106,6 @@ public interface IDummyInventoryInfoEOService extends IService<DummyInventoryInf
void exportData(HttpServletResponse response,
HttpServletRequest request,
DummyInventoryInfoEO dummyInventoryInfoEO);
List<DummyInventoryInfoEO> queryListByStandId(String id);
}
@@ -3276,4 +3276,10 @@ public class DummyInventoryInfoEOServiceImpl extends ServiceImpl<DummyInventoryI
}
}
@Override
public List<DummyInventoryInfoEO> queryListByStandId(String id) {
QueryWrapper<DummyInventoryInfoEO> queryWrapper = new QueryWrapper<>();
List<DummyInventoryInfoEO> dataList = this.getBaseMapper().queryListByStandId(id);
return dataList;
}
}
@@ -145,6 +145,9 @@ public enum TemplateInfoEnum2 {
// 订阅通知
SUBSCRIPTION_INFORM("订阅通知","ctp_AArYnQds54ia","Subscription Notification"), // 已同步飞书开放平台
//志江飞书测试
// SUBSCRIPTION_INFORM("订阅通知","ctp_AAfvdg0Cy90I","Subscription Notification"),
// 转发推送
TRANSPOND_PUSH("转发推送","","Share / Forward"),
@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject;
import com.jero.common.api.vo.Result;
import com.jero.modules.feishu.vo.FeishuMsg2Vo;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.system.entity.SysUser;
import java.io.IOException;
import java.util.List;
@@ -165,4 +166,11 @@ public interface IFeishuService {
*/
public void sendMessageOtaManager(String templeteId, Map<String, Object> params);
/**
* 飞书消息模板--认证参数收集-催办(主题颜色为红色)
* @param templeteId
* @param params
*/
void sendMessageHomoParameterCollectionUrge(String templeteId,Map<String,Object> params,String flag,List<SysUser> sysUserList);
}
@@ -1635,6 +1635,53 @@ public class FeishuServiceImpl implements IFeishuService {
}
}
}
/**
* 飞书消息模板--认证参数收集-催办(主题颜色为红色)
* @param templeteId
* @param params
*/
@Override
public void sendMessageHomoParameterCollectionUrge(String templeteId, Map<String, Object> params,String flag,List<SysUser> sysUserList) {
if (CollectionUtils.isNotEmpty(sysUserList)) {
String contentCn = (String) params.get("contentInfoFeiCn");
String contentEn = (String) params.get("contentInfoFeiEn");
String back_url_cn = (String) params.get("back_url_cn");
String back_url_en = (String) params.get("back_url_en");
String back_url_Phone = (String) params.get("back_url_phone");
String projectCn = (String) params.get("projectCn");
String projectEn = (String) params.get("projectEn");
String initiatorCn = (String) params.get("initiatorCn");
String initiatorEn = (String) params.get("initiatorEn");
String dueDate = (String) params.get("dueDate");
try {
for (SysUser sysUser : sysUserList) {
String thirdId = sysUser.getThirdId();
if(StringUtils.isNotEmpty(thirdId)){
// 根据结束时间进行排序获取最近的时间发消息时使用
JSONObject larkMesJson = new JSONObject();
larkMesJson.put("template_id", templeteId);
larkMesJson.put("userIds",thirdId);
Map<String,Object> templateVariableMap = new HashMap<>();
templateVariableMap.put("contentInfoFeiCn",contentCn);
templateVariableMap.put("contentInfoFeiEn",contentEn);
templateVariableMap.put("view_url_cn",back_url_cn);
templateVariableMap.put("view_url_en",back_url_en);
templateVariableMap.put("back_url_Phone",back_url_Phone);
templateVariableMap.put("projectCn"," " + projectCn);
templateVariableMap.put("projectEn"," " + projectEn);
templateVariableMap.put("initiatorCn"," " + initiatorCn);
templateVariableMap.put("initiatorEn"," " + initiatorEn);
templateVariableMap.put("dueDate"," " + dueDate);
larkMesJson.put("templateVariableMap",templateVariableMap);
batchSendLarkCardMsgByTemplate2(larkMesJson);
}
}
} catch (Exception e) {
log.error("飞书消息推送失败");
}
}
}
/**
* 飞书消息模板--OTA认证管理(主题颜色为红色或绿色)
@@ -104,16 +104,16 @@ public class MarketListVersionUpdateLogEOServiceImpl extends ServiceImpl<MarketL
public IPage<MarketListVersionUpdateLogEO> getPageInfo(QueryWrapper<MarketListVersionUpdateLogEO> queryWrapper,
Integer pageNo,
Integer pageSize) {
queryWrapper.lambda().orderByAsc(MarketListVersionUpdateLogEO::getCreateTime);
queryWrapper.lambda().orderByDesc(MarketListVersionUpdateLogEO::getCreateTime);
List<MarketListVersionUpdateLogEO> marketListVersionUpdateLogEOList = this.list(queryWrapper);
if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList)
&& marketListVersionUpdateLogEOList.size() == 1) {
return new Page<>();
}
if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList)
&& marketListVersionUpdateLogEOList.size() > 1) {
marketListVersionUpdateLogEOList.remove(marketListVersionUpdateLogEOList.size() - 1);
}
// if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList)
// && marketListVersionUpdateLogEOList.size() == 1) {
// return new Page<>();
// }
// if (ObjectUtils.isNotEmpty(marketListVersionUpdateLogEOList)
// && marketListVersionUpdateLogEOList.size() > 1) {
// marketListVersionUpdateLogEOList.remove(marketListVersionUpdateLogEOList.size() - 1);
// }
IPage<MarketListVersionUpdateLogEO> pageList = PageUtil.getPages(pageNo, pageSize, marketListVersionUpdateLogEOList);
if (ObjectUtils.isNotEmpty(pageList.getRecords())) {
List<String> idList = pageList.getRecords().stream().map(MarketListVersionUpdateLogEO::getListId).distinct().collect(Collectors.toList());
@@ -1,25 +1,34 @@
package com.jero.modules.ota.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.ota.entity.OtaManageReceiveNsdp;
import com.jero.modules.ota.service.IOtaManageReceiveNsdpService;
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.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
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 com.jero.common.system.query.QueryGenerator;
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
import com.jero.modules.ota.service.IOtaManageReceiveNsdpService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.jero.common.aspect.annotation.AutoLog;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.util.List;
/**
@@ -35,7 +44,7 @@ import com.jero.common.aspect.annotation.AutoLog;
public class OtaManageReceiveNsdpController extends JeroController<OtaManageReceiveNsdp, IOtaManageReceiveNsdpService> {
@Autowired
private IOtaManageReceiveNsdpService otaManageReceiveNsdpService;
/**
* 分页列表查询
*
@@ -167,4 +176,15 @@ public class OtaManageReceiveNsdpController extends JeroController<OtaManageRece
return super.importExcel(request, response, OtaManageReceiveNsdp.class);
}
@AutoLog(value = "软件发布时间")
@ApiOperation(value="软件发布时间", notes="软件发布时间")
@GetMapping(value = "/getReleaseDate")
public Result<String> getReleaseDate(String releaseName,String vehicle) {
String time = otaManageReceiveNsdpService.getReleaseDate(releaseName,vehicle);
return Result.OK(time);
}
}
@@ -63,4 +63,6 @@ public interface IOtaManageReceiveNsdpService extends IService<OtaManageReceiveN
List<OtaManageReceiveNsdp> getOtaManageReceiveNsdpSync();
List<OtaManageReceiveNsdp> getListByReleaseName(String releaseName);
String getReleaseDate(String releaseName,String vehicle);
}
@@ -901,7 +901,7 @@ public class OtaManageApplyEOServiceImpl extends ServiceImpl<OtaManageApplyEOMap
manageApplyEO.setProjectVersionText("NA");
}
}else{
manageApplyEO.setProjectVersionText(collect.get(0).getCar() + "-" + collect.get(0).getYearName() + "-" + collect.get(0).getMarket());
manageApplyEO.setProjectVersionText(collect.get(0).getCar() + "-" + collect.get(0).getYearName() + "-" + collect.get(0).getMarket()+"-"+collect.get(0).getVersionNumber() );
}
}
}else{
@@ -1,13 +1,21 @@
package com.jero.modules.ota.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.ota.entity.OtaManageReceiveNsdp;
import com.jero.modules.ota.mapper.OtaManageReceiveNsdpMapper;
import com.jero.modules.ota.service.IOtaManageReceiveNsdpService;
import com.jero.modules.system.util.StringUtils;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service;
import java.util.List;
import java.text.Collator;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import java.util.List;
import java.util.Locale;
import java.util.stream.Collectors;
/**
* @Description: OTA管理NSDP同步表
@@ -100,4 +108,49 @@ public class OtaManageReceiveNsdpServiceImpl extends ServiceImpl<OtaManageReceiv
queryWrapper.eq(OtaManageReceiveNsdp::getReleaseName, releaseName);
return this.list(queryWrapper);
}
/**
* 软件发布时间
* @param releaseName
* @param vehicle
* @return
*/
@Override
public String getReleaseDate(String releaseName, String vehicle) {
String releaseDate = "";
if(!"全部".equals(vehicle)){
//UAT清单修改为选择车型后查新车型的PLM时间
Collator comparator = Collator.getInstance(Locale.CHINESE);
LambdaQueryWrapper<OtaManageReceiveNsdp> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(OtaManageReceiveNsdp::getReleaseName, releaseName);
List<OtaManageReceiveNsdp> list = this.list(queryWrapper);
if(ObjectUtils.isEmpty(list)){
return releaseDate;
}
List<OtaManageReceiveNsdp> otaManageReceiveNsdpList = list.stream().filter(e -> "PLM".equals(e.getDateName())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(otaManageReceiveNsdpList)){
//根据适用车型过滤数据
List<OtaManageReceiveNsdp> otaManageReceiveNsdpListTemp = new ArrayList<>();
for (OtaManageReceiveNsdp otaManageReceiveNsdp : otaManageReceiveNsdpList) {
String vehicleTemp = otaManageReceiveNsdp.getVehicle();
if(StringUtils.isNotBlank(vehicleTemp)){
//Aries G1.1 CN适用车型按此类格式进行拆分
String[] splitArr = vehicleTemp.split(" ");
if(splitArr.length == 3 && vehicle.equals(splitArr[0]+" "+splitArr[2])){
otaManageReceiveNsdpListTemp.add(otaManageReceiveNsdp);
}
}
}
if(ObjectUtils.isNotEmpty(otaManageReceiveNsdpListTemp)){
Collections.sort(otaManageReceiveNsdpListTemp, (e1, e2) -> {
String e1ReleaseDate = StringUtils.isNotBlank(e1.getReleaseDate()) ? e1.getReleaseDate() : "";
String e2ReleaseDate = StringUtils.isNotBlank(e2.getReleaseDate()) ? e2.getReleaseDate() : "";
return comparator.compare(e1ReleaseDate, e2ReleaseDate);
});
releaseDate = otaManageReceiveNsdpListTemp.get(0).getReleaseDate();
}
}
}
return releaseDate;
}
}
@@ -92,7 +92,7 @@ public class PlatformProjectLawsInventoryEOController extends JeroController<Pro
@AutoLog(value = "项目库-法规清单表-列表查询")
@ApiOperation(value="项目库-法规清单表-列表查询", notes="项目库-法规清单表-列表查询")
@GetMapping(value = "/list")
@RequiresPermissions("projectLawsInventory:list")
// @RequiresPermissions("projectLawsInventory:list")
public Result<List<ProjectLawsInventoryEO>> queryList(ProjectLawsInventoryEO projectLawsInventoryEO,HttpServletRequest req) {
List<ProjectLawsInventoryEO> list = platformProjectLawsInventoryEOService.queryList(projectLawsInventoryEO,req);
return Result.OK(projectLawsInventoryEO.getCut(),list);
@@ -354,7 +354,7 @@ public class PlatformProjectLawsInventoryEOController extends JeroController<Pro
* @param projectLawsInventoryEO
*/
@RequestMapping(value = "/exportData")
@RequiresPermissions("projectLawsInventory:exportData")
// @RequiresPermissions("projectLawsInventory:exportData")
public void exportData(HttpServletResponse response,
HttpServletRequest request,
ProjectLawsInventoryEO projectLawsInventoryEO) {
@@ -84,7 +84,7 @@ public class PlatformProjectLibraryBaseController extends JeroController<Project
*/
@AutoLog(value = "项目库基础表-添加")
@ApiOperation(value="项目库基础表-添加", notes="项目库基础表-添加")
@RequiresPermissions("projectLibraryBase:add")
@RequiresPermissions("Platform:add")
@PostMapping(value = "/add")
public Result<?> add(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) throws ParseException {
platformIProjectLibraryBaseService.add(projectLibraryBase);
@@ -98,7 +98,7 @@ public class PlatformProjectLibraryBaseController extends JeroController<Project
*/
@AutoLog(value = "项目扩展(添加子项目)")
@ApiOperation(value="项目扩展(添加子项目)", notes="项目扩展(添加子项目)")
@RequiresPermissions("projectLibraryBase:add")
@RequiresPermissions("Platform:add")
@PostMapping(value = "/addChild")
public Result<?> addChild(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) throws ParseException {
platformIProjectLibraryBaseService.addChild(projectLibraryBase);
@@ -113,7 +113,7 @@ public class PlatformProjectLibraryBaseController extends JeroController<Project
*/
@AutoLog(value = "项目库基础表-编辑")
@ApiOperation(value="项目库基础表-编辑", notes="项目库基础表-编辑")
@RequiresPermissions("projectLibraryBase:edit")
// @RequiresPermissions("projectLibraryBase:edit")
@PutMapping(value = "/edit")
public Result<?> edit(@Validated @RequestBody ProjectLibraryBase projectLibraryBase) {
platformIProjectLibraryBaseService.editById(projectLibraryBase);
@@ -128,7 +128,7 @@ public class PlatformProjectLibraryBaseController extends JeroController<Project
*/
@AutoLog(value = "项目库基础表-通过id删除")
@ApiOperation(value="项目库基础表-通过id删除", notes="项目库基础表-通过id删除")
@RequiresPermissions("projectLibraryBase:delete")
@RequiresPermissions("Platform:delete")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id,
@RequestParam(name="cut",required=true) String cut) {
@@ -144,7 +144,7 @@ public class PlatformProjectLibraryBaseController extends JeroController<Project
*/
@AutoLog(value = "项目库基础表-批量删除")
@ApiOperation(value="项目库基础表-批量删除", notes="项目库基础表-批量删除")
@RequiresPermissions("projectLibraryBase:deleteBatch")
@RequiresPermissions("Platform:delete")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids,
@RequestParam(name="cut",required=true) String cut) {
@@ -160,7 +160,7 @@ public class PlatformProjectLibraryBaseController extends JeroController<Project
*/
@AutoLog(value = "项目库基础表-通过id查询")
@ApiOperation(value="项目库基础表-通过id查询", notes="项目库基础表-通过id查询")
@RequiresPermissions("projectLibraryBase:queryById")
// @RequiresPermissions("projectLibraryBase:queryById")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id,
@RequestParam(name="cut",required=true) String cut) {
@@ -9317,7 +9317,7 @@ public class PlatformProjectLawsInventoryEOServiceImpl extends ServiceImpl<Platf
userIdList.add(projectLawsInventoryEO.getRegulationOwnerId());
//如果都是不涉及就不发待办
if (!projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())
&& !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) {
|| !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) {
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId());
processInfoDetailEO.setUserId(projectLawsInventoryEO.getRegulationOwnerId());
@@ -2,12 +2,12 @@ package com.jero.modules.project.controller;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.PageUtil;
import com.jero.modules.project.entity.ProjectCertificationInventoryEO;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
import com.jero.modules.system.entity.SysRole;
@@ -73,24 +73,27 @@ public class ProjectCertificationInventoryEOController extends JeroController<Pr
projectCertificationInventoryEO.setFlowStatus(null);
}
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryEO, req.getParameterMap());
if (StringUtils.isNotEmpty(flowStatusStr)) {
String finalflowStatusStr = flowStatusStr.replaceAll("\\*","");
queryWrapper.and(query -> {
query.lambda().like(ProjectCertificationInventoryEO::getFlowStatus, finalflowStatusStr);
if(StringUtils.contains(finalflowStatusStr,",")){
String[] flowStatusArr = finalflowStatusStr.split(",");
for (String fs : flowStatusArr) {
query.or(q -> {
q.like("flow_status",fs);
});
}
}
});
}
// if (StringUtils.isNotEmpty(flowStatusStr)) {
// String finalflowStatusStr = flowStatusStr.replaceAll("\\*","");
// queryWrapper.and(query -> {
// query.lambda().like(ProjectCertificationInventoryEO::getFlowStatus, finalflowStatusStr);
// if(StringUtils.contains(finalflowStatusStr,",")){
// String[] flowStatusArr = finalflowStatusStr.split(",");
// for (String fs : flowStatusArr) {
// query.or(q -> {
// q.like("flow_status",fs);
// });
// }
// }
// });
// }
queryWrapper.orderByDesc("create_time");
Page<ProjectCertificationInventoryEO> page = new Page<ProjectCertificationInventoryEO>(pageNo, pageSize);
IPage<ProjectCertificationInventoryEO> pageList = this.projectCertificationInventoryEOService.queryPage(queryWrapper,page,projectCertificationInventoryEO,cut);
return Result.OK(cut,pageList);
List<ProjectCertificationInventoryEO> pageList =
this.projectCertificationInventoryEOService.getListInfo(queryWrapper,projectCertificationInventoryEO,cut,flowStatusStr);
Page pages = PageUtil.getPages(pageNo, pageSize, pageList);
return Result.OK(cut,pages);
}
/**
@@ -19,6 +19,7 @@ import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.vo.ProjectTaskUrgVo;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysUser;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
@@ -587,4 +588,12 @@ public class ProjectLawsInventoryEOController extends JeroController<ProjectLaws
List<ProjectLawsInventoryEO> list = projectLawsInventoryEOService.queryPlatformList(lawsInventoryId,flowFlag,cut);
return Result.OK(list);
}
@AutoLog(value = "法规意见收集-评估人")
@ApiOperation(value="法规意见收集-评估人", notes="法规意见收集-评估人")
@GetMapping(value = "/getEvaluatorList")
public Result<List<SysUser>> getEvaluatorList(String documentId) {
List<SysUser> userList = projectLawsInventoryEOService.getEvaluatorList(documentId);
return Result.OK(userList);
}
}
@@ -2,6 +2,8 @@ package com.jero.modules.project.job;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.DictModel;
import com.jero.common.util.DateUtils;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.feishu.service.IFeishuService;
@@ -12,6 +14,8 @@ import com.jero.modules.project.enums.CertificationInventoryFlowStatusEnum;
import com.jero.modules.project.service.IProjectCertificationInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -23,7 +27,14 @@ import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -43,10 +54,13 @@ public class CertificationInventoryJob implements Job {
private ISysUserService sysUserService;
@Autowired
private IFeishuService feishuService;
@Autowired
private ISysDictService sysDictService;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("认证清单,定时任务开启 =====================================================");
List<DictModel> projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode());
projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList());
List<String> flowStatusList = new ArrayList<>();
flowStatusList.add(CertificationInventoryFlowStatusEnum.LIST_TO_BE_CHECKED.getValue());
@@ -71,6 +85,11 @@ public class CertificationInventoryJob implements Job {
if(CollectionUtils.isNotEmpty(projectCertificationInventoryEOS)){
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
if(StringUtils.isNotEmpty(projectLibraryBase.getCertificationEngineer())){
// 消息提醒 认证工程师 认证清单数据
@@ -1,29 +1,24 @@
package com.jero.modules.project.job;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.constant.enums.MessageType2Enum;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.constant.enums.MsgColorEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.DictModel;
import com.jero.common.util.DateUtils;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsg2Vo;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.project.entity.*;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
import com.jero.modules.project.enums.InventoryAffirmStatusEnum;
import com.jero.modules.project.enums.JumpLinkEnum;
import com.jero.modules.project.enums.SendMsgFlagEnum;
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
import com.jero.modules.project.mapper.ProjectYearNameInfoEOMapper;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.enums.ProjectRoleEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -35,9 +30,14 @@ import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -75,6 +75,9 @@ public class InventoryAffirmJob implements Job {
private IProjectLibraryBaseService projectLibraryBaseService;
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Autowired
private ISysDictService sysDictService;
/**
* 清单任务到达截止时间后给用户发送消息
@@ -82,6 +85,8 @@ public class InventoryAffirmJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("清单确认流程,定时任务开启 =====================================================");
List<DictModel> projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode());
projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList());
// 获取法规清单 设计验证符合性流程状态为 清单待校核的数据
QueryWrapper<ProjectLawsInventoryEO> queryWrapperInventory = new QueryWrapper<>();
queryWrapperInventory.and(queryWrapper -> {
@@ -130,6 +135,11 @@ public class InventoryAffirmJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -162,6 +172,11 @@ public class InventoryAffirmJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -194,6 +209,11 @@ public class InventoryAffirmJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -1,22 +1,15 @@
package com.jero.modules.project.job;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.constant.enums.MessageType2Enum;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.constant.enums.MsgColorEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.DictModel;
import com.jero.common.util.DateUtils;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsg2Vo;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.entity.ProjectNameInfoEO;
import com.jero.modules.project.entity.ProjectYearNameInfoEO;
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
import com.jero.modules.project.enums.InventoryAffirmStatusEnum;
import com.jero.modules.project.enums.JumpLinkEnum;
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
@@ -24,6 +17,8 @@ import com.jero.modules.project.mapper.ProjectYearNameInfoEOMapper;
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.wkflow.enums.FlowTypeEnum;
import lombok.extern.slf4j.Slf4j;
@@ -36,9 +31,14 @@ import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
@@ -74,6 +74,8 @@ public class TaskAffirmJob implements Job {
private IProjectLibraryBaseService projectLibraryBaseService;
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Autowired
private ISysDictService sysDictService;
/**
@@ -84,6 +86,8 @@ public class TaskAffirmJob implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
log.info("任务确认流程,定时任务开启 =====================================================");
List<DictModel> projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode());
projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList());
QueryWrapper<ProjectLawsInventoryEO> queryWrapperInventory = new QueryWrapper<>();
// 获取出 任务待确认 的数据这个状态的数据任务在责任人上
@@ -137,6 +141,11 @@ public class TaskAffirmJob implements Job {
params.put("flowTypeEn","Design Compliance Process");
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -178,6 +187,11 @@ public class TaskAffirmJob implements Job {
params.put("flowTypeEn","Design Compliance Process");
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -219,6 +233,11 @@ public class TaskAffirmJob implements Job {
params.put("flowTypeEn","Design Compliance Process");
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -275,6 +294,11 @@ public class TaskAffirmJob implements Job {
params.put("flowTypeEn","Validation Compliance Process");
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -316,6 +340,11 @@ public class TaskAffirmJob implements Job {
params.put("flowTypeEn","Validation Compliance Process");
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -357,6 +386,11 @@ public class TaskAffirmJob implements Job {
params.put("flowTypeEn","Validation Compliance Process");
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -1,21 +1,15 @@
package com.jero.modules.project.job;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.constant.enums.MessageType2Enum;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.constant.enums.MsgColorEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.DictModel;
import com.jero.common.util.DateUtils;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsg2Vo;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.project.entity.*;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
import com.jero.modules.project.enums.DesignComplianceStatusEnum;
import com.jero.modules.project.enums.JumpLinkEnum;
import com.jero.modules.project.enums.SendMsgFlagEnum;
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
@@ -24,6 +18,8 @@ import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.IProjectTaskInventoryEOService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -35,9 +31,14 @@ import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -76,10 +77,14 @@ public class VerifyComplianceJob implements Job {
@Autowired
private IFeishuService feishuService;
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
@Autowired
private ISysDictService sysDictService;
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("验证符合性流程,定时任务开启 =====================================================");
List<DictModel> projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode());
projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList());
// 查询出 结果待提交的数据
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrap = new QueryWrapper<>();
@@ -126,6 +131,11 @@ public class VerifyComplianceJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -166,6 +176,11 @@ public class VerifyComplianceJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -206,6 +221,11 @@ public class VerifyComplianceJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -245,6 +265,11 @@ public class VerifyComplianceJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -1,21 +1,15 @@
package com.jero.modules.project.job;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.jero.common.constant.enums.MessageType2Enum;
import com.jero.common.constant.enums.MessageTypeEnum;
import com.jero.common.constant.enums.MsgColorEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.DictModel;
import com.jero.common.util.DateUtils;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
import com.jero.modules.feishu.enums.TemplateInfoEnum2;
import com.jero.modules.feishu.service.IFeishuService;
import com.jero.modules.feishu.vo.FeishuMsg2Vo;
import com.jero.modules.feishu.vo.FeishuMsgVo;
import com.jero.modules.project.entity.*;
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.enums.ComplianceFlowStatusEnum;
import com.jero.modules.project.enums.DesignComplianceStatusEnum;
import com.jero.modules.project.enums.JumpLinkEnum;
import com.jero.modules.project.enums.SendMsgFlagEnum;
import com.jero.modules.project.mapper.ProjectLawsInventoryEOMapper;
import com.jero.modules.project.mapper.ProjectLibraryBaseMapper;
import com.jero.modules.project.mapper.ProjectNameInfoEOMapper;
@@ -24,6 +18,8 @@ import com.jero.modules.project.service.IProjectLawsInventoryEOService;
import com.jero.modules.project.service.IProjectLibraryBaseService;
import com.jero.modules.project.service.IProjectTaskInventoryEOService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
@@ -35,9 +31,14 @@ import org.quartz.JobExecutionException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
@@ -72,6 +73,8 @@ public class designComplianceJob implements Job {
private ISysUserService sysUserService;
@Autowired
private IFeishuService feishuService;
@Autowired
private ISysDictService sysDictService;
@Autowired
private IProjectLibraryBaseService projectLibraryBaseService;
@@ -80,6 +83,8 @@ public class designComplianceJob implements Job {
@Override
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
log.info("设计符合性确认流程,定时任务开启 =====================================================");
List<DictModel> projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode());
projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList());
// 查询出 结果待提交的数据
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryEOQueryWrap = new QueryWrapper<>();
@@ -126,6 +131,11 @@ public class designComplianceJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -166,6 +176,11 @@ public class designComplianceJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -206,6 +221,11 @@ public class designComplianceJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -245,6 +265,11 @@ public class designComplianceJob implements Job {
params.put("serialNumbers",serialNumbers);
ProjectLibraryBase projectLibraryBase = this.projectLibraryBaseService.selectById(projectLibraryId);
if(ObjectUtils.isNotEmpty(projectLibraryBase) && StringUtils.isNotBlank(projectLibraryBase.getProjectStatus())
&& projectLibraryBase.getProjectStatus().equals(projectStatus.get(0).getValue())){
//项目状态为取消时不发提醒
projectLibraryBase = null;
}
if(ObjectUtils.isNotEmpty(projectLibraryBase)){
String PRN_EN = projectLibraryBase.getProjectNameEn();//项目名称 英文
String PRN_CN = projectLibraryBase.getProjectNameCn();//项目名称 中文
@@ -128,6 +128,11 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
ProjectCertificationInventoryEO projectCertificationInventoryEO,
String cut);
List<ProjectCertificationInventoryEO> getListInfo(QueryWrapper<ProjectCertificationInventoryEO> queryWrapper,
ProjectCertificationInventoryEO projectCertificationInventoryEO,
String cut,
String flowStatusStr);
void createQueryPermission(QueryWrapper<ProjectCertificationInventoryEO> queryWrapper, String roleCode);
/**
@@ -347,4 +352,6 @@ public interface IProjectCertificationInventoryEOService extends IService<Projec
String listPlatform(Map<String, Object> params);
List<ProjectCertificationInventoryEO> connectPlatform(String id,String cut);
List<ProjectCertificationInventoryEO> queryProjectCertificationInventoryByStandId(String id);
}
@@ -14,6 +14,7 @@ import com.jero.modules.project.vo.ProjectTaskUrgVo;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysRole;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import org.springframework.web.multipart.MultipartFile;
@@ -104,6 +105,7 @@ public interface IProjectLawsInventoryEOService extends IService<ProjectLawsInve
List<ProjectLawsInventoryEO> queryProjectLawsInventoryInfoById(Map<String, Object> params);
List<ProjectLawsInventoryEO> queryProjectLawsInventoryInfoByStandId(String standId);
void copyInfoByIds(String ids,String operateType);
@@ -352,4 +354,6 @@ public interface IProjectLawsInventoryEOService extends IService<ProjectLawsInve
int checkUserRole(String projectLibraryId, String currentUserId, String lawsInventoryId);
List<ProjectLawsInventoryEO> queryPlatformList(String lawsInventoryId,String flowFlag,String cut);
List<SysUser> getEvaluatorList(String documentId);
}
@@ -149,6 +149,7 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
prehomoName = "PreHomo confirmation";
verifyName = "Verification of compliance process";
}
List<DictModel> problemPriorityList = sysDictService.queryDictItemsByCode(DicCodeEnum.PROBLEM_PRIORITY.getCode());
List<SysDictItem> dictItemList = sysDictItemServiceImpl.selectItemsAll();
Set<String> userIdSet = new HashSet<>();
for (NcrTrackVO trackVO : infoList) {
@@ -381,7 +382,18 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
//条件查询
trackVOList = parameterQuery(ncrTrackVO, trackVOList);
//表头排序
heartSort(ncrTrackVO, trackVOList);
heartSort(ncrTrackVO, trackVOList,problemPriorityList,ncrTrackVO.getCut());
if(StringUtils.isBlank(ncrTrackVO.getOrderByField())){
Collections.sort(trackVOList, new Comparator<NcrTrackVO>() {
@Override
public int compare(NcrTrackVO o1, NcrTrackVO o2) {
if (o1.getUpdateTime() == null || o2.getUpdateTime() == null) {
return 0;
}
return o2.getUpdateTime().compareTo(o1.getUpdateTime());
}
});
}
for (NcrTrackVO trackVO : trackVOList) {
trackVO.setAdministrator(administrator ? "true" : "false");
}
@@ -393,8 +405,37 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
return problemManagement;
}
private void heartSort(NcrTrackVO ncrTrackVO, List<NcrTrackVO> trackVOList) {
private void heartSort(NcrTrackVO ncrTrackVO, List<NcrTrackVO> trackVOList,List<DictModel> problemPriorityList,String cut) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
if("problemPriority".equals(ncrTrackVO.getOrderByField())){
//优先级数据字典转换
for (NcrTrackVO trackVO : trackVOList) {
String problemPriority = trackVO.getProblemPriority();
if(StringUtils.isNotBlank(problemPriority)){
List<DictModel> collect = problemPriorityList.stream().filter(e -> problemPriority.equals(e.getValue())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect)){
if(CutEnum.CN.getValue().equals(cut)){
trackVO.setProblemPriorityName(collect.get(0).getText());
}else{
trackVO.setProblemPriorityName(collect.get(0).getTextEn());
}
}
}
}
if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) {
Collections.sort(trackVOList, (e1, e2) -> {
String e1Field = StringUtils.isNotBlank(e1.getProblemPriorityName()) ? e1.getProblemPriorityName() : "";
String e2Field = StringUtils.isNotBlank(e2.getProblemPriorityName()) ? e2.getProblemPriorityName() : "";
return comparator.compare(e1Field, e2Field);
});
} else if (OrderEnum.REVERSE.getValue().equals(ncrTrackVO.getOrderBy())) {
Collections.sort(trackVOList, (e1, e2) -> {
String e1Field = StringUtils.isNotBlank(e1.getProblemPriorityName()) ? e1.getProblemPriorityName() : "";
String e2Field = StringUtils.isNotBlank(e2.getProblemPriorityName()) ? e2.getProblemPriorityName() : "";
return comparator.compare(e2Field, e1Field);
});
}
}
if ("title".equals(ncrTrackVO.getOrderByField())) {
if (OrderEnum.POSITIVE.getValue().equals(ncrTrackVO.getOrderBy())) {
Collections.sort(trackVOList, (e1, e2) -> {
@@ -107,6 +107,8 @@ public class ProblemManagementEOServiceImpl extends ServiceImpl<ProblemManagemen
List<ProblemManagementVO> progressTrackingList = problemManagementEO.getProgressTrackingList();
List<String> collect = progressTrackingList.stream().map(ProblemManagementVO::getProgressTracking).collect(Collectors.toList());
problemManagementEO.setProgressTracking(StringUtils.join(collect,","));
}else{
problemManagementEO.setProgressTracking("");
}
if(!problemManagementEO.getApprovalEvidenceLinkList().isEmpty()){
List<ProblemManagementVO> approvalEvidenceLinkList = problemManagementEO.getApprovalEvidenceLinkList();
@@ -1960,6 +1960,72 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
pageList.setRecords(records);
return pageList;
}
@Override
public List<ProjectCertificationInventoryEO> getListInfo(QueryWrapper<ProjectCertificationInventoryEO> queryWrapper,
ProjectCertificationInventoryEO projectCertificationInventoryEO,
String cut,
String flowStatusStr) {
String roleCode = projectCertificationInventoryEO.getRoleCode();
// 创建查询权限
this.createQueryPermission(queryWrapper,roleCode);
// 根据一级责任领域统计节点查询该一级责任领域下所有子责任领域的法规清单数据
String dutyTerritoryStr = "";
if(StringUtils.isNotEmpty(projectCertificationInventoryEO.getFirstLevelDutyTerritory())){
List<SysDictItem> sysDictItems = this.sysDictItemServiceImpl.selectItemsAll();
List<SysDictItem> dutyTerritorys = new ArrayList<>();
Map<String, List<SysDictItem>> firstLevelDTMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(), sysDictItems);
String[] firstLevelDTArr = projectCertificationInventoryEO.getFirstLevelDutyTerritory().split(",");
for (String firstLevelDT : firstLevelDTArr){
if(CollectionUtils.isNotEmpty(firstLevelDTMap.get(firstLevelDT))){
dutyTerritorys.addAll(firstLevelDTMap.get(firstLevelDT));
}
}
if(CollectionUtils.isNotEmpty(dutyTerritorys)){
dutyTerritoryStr = dutyTerritorys.stream().map(SysDictItem::getItemValue).distinct().collect(Collectors.joining(","));
}
}
if (StringUtils.isNotEmpty(dutyTerritoryStr)) {
String finalDutyTerritoryStr = dutyTerritoryStr.replaceAll("\\*","");
queryWrapper.and(query -> {
query.lambda().like(ProjectCertificationInventoryEO::getDutyTerritory, finalDutyTerritoryStr);
if(StringUtils.contains(finalDutyTerritoryStr,",")){
String[] dutyTerritoryArr = finalDutyTerritoryStr.split(",");
for (String duty : dutyTerritoryArr) {
query.or(q -> {
q.like("duty_territory",duty);
});
}
}
});
}
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
int isProjectRole = Integer.parseInt(roleCode);
if (isProjectRole == Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.VIEWER.getValue())) {
//查当前用户Viewer对应责任领域
List<String> dutyTerritoryList = this.projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId());
if (ObjectUtils.isNotEmpty(dutyTerritoryList)) {
queryWrapper.and(query -> {
for (String duty : dutyTerritoryList) {
query.or(q -> {
q.like("duty_territory", duty);
});
}
});
}
}
List<ProjectCertificationInventoryEO> pageList = this.list(queryWrapper);
//平台件数据处理
platformDispose(cut,projectCertificationInventoryEO, pageList);
//流程状态搜索
if(StringUtils.isNotBlank(flowStatusStr)){
pageList = pageList.stream().filter(e->flowStatusStr.contains(e.getFlowStatus())).collect(Collectors.toList());
}
this.disposeData(pageList,cut);
List<ProjectCertificationInventoryEO> list = this.hearSort(projectCertificationInventoryEO, pageList);
return list;
}
private void platformDispose(String cut,ProjectCertificationInventoryEO projectCertificationInventoryEO, List<ProjectCertificationInventoryEO> result) {
List<LawsInventoryPlatformEO> lawsInventoryPlatformEOList = new ArrayList<>();
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOS = new ArrayList<>();
@@ -5516,6 +5582,11 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
*/
@Override
public void exportData(HttpServletResponse response, HttpServletRequest request, ProjectCertificationInventoryEO projectCertificationInventoryEO) {
String flowStatusStr = "";
if (StringUtils.isNotEmpty(projectCertificationInventoryEO.getFlowStatus())) {
flowStatusStr = projectCertificationInventoryEO.getFlowStatus();
projectCertificationInventoryEO.setFlowStatus(null);
}
List<ProjectCertificationInventoryEO> dataList = new ArrayList<>();
QueryWrapper<ProjectCertificationInventoryEO> queryWrapper = QueryGenerator.initQueryWrapper(projectCertificationInventoryEO,request.getParameterMap());
queryWrapper.in("project_library_id",projectCertificationInventoryEO.getProjectLibraryId());
@@ -5535,8 +5606,62 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
String roleCode = projectLibraryRoleRelEO.getRoleCode();
// 创建查询权限
this.createQueryPermission(queryWrapper,roleCode);
// 根据一级责任领域统计节点查询该一级责任领域下所有子责任领域的法规清单数据
String dutyTerritoryStr = "";
if(StringUtils.isNotEmpty(projectCertificationInventoryEO.getFirstLevelDutyTerritory())){
List<SysDictItem> sysDictItems = this.sysDictItemServiceImpl.selectItemsAll();
List<SysDictItem> dutyTerritorys = new ArrayList<>();
Map<String, List<SysDictItem>> firstLevelDTMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(), sysDictItems);
String[] firstLevelDTArr = projectCertificationInventoryEO.getFirstLevelDutyTerritory().split(",");
for (String firstLevelDT : firstLevelDTArr){
if(CollectionUtils.isNotEmpty(firstLevelDTMap.get(firstLevelDT))){
dutyTerritorys.addAll(firstLevelDTMap.get(firstLevelDT));
}
}
if(CollectionUtils.isNotEmpty(dutyTerritorys)){
dutyTerritoryStr = dutyTerritorys.stream().map(SysDictItem::getItemValue).distinct().collect(Collectors.joining(","));
}
}
if (StringUtils.isNotEmpty(dutyTerritoryStr)) {
String finalDutyTerritoryStr = dutyTerritoryStr.replaceAll("\\*","");
queryWrapper.and(query -> {
query.lambda().like(ProjectCertificationInventoryEO::getDutyTerritory, finalDutyTerritoryStr);
if(StringUtils.contains(finalDutyTerritoryStr,",")){
String[] dutyTerritoryArr = finalDutyTerritoryStr.split(",");
for (String duty : dutyTerritoryArr) {
query.or(q -> {
q.like("duty_territory",duty);
});
}
}
});
}
int isProjectRole = Integer.parseInt(roleCode);
if (isProjectRole == Integer.parseInt(com.jero.modules.project.enums.ProjectRoleEnum.VIEWER.getValue())) {
//查当前用户Viewer对应责任领域
List<String> dutyTerritoryList = this.projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId());
if (ObjectUtils.isNotEmpty(dutyTerritoryList)) {
queryWrapper.and(query -> {
for (String duty : dutyTerritoryList) {
query.or(q -> {
q.like("duty_territory", duty);
});
}
});
}
}
//导出的数据
dataList = this.list(queryWrapper);
//平台件数据处理
platformDispose(projectCertificationInventoryEO.getCut(),projectCertificationInventoryEO, dataList);
//流程状态搜索
if(StringUtils.isNotBlank(flowStatusStr)){
String finalFlowStatusStr = flowStatusStr;
dataList = dataList.stream().filter(e-> finalFlowStatusStr.contains(e.getFlowStatus())).collect(Collectors.toList());
}
//文件
List<OSSFile> fileInfos = getOssFiles(dataList);
//处理文件名称
@@ -7311,7 +7436,7 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
//平台件项目信息
List<ProjectLibraryBase> projectLibraryBaseList = new ArrayList<>();
if(!certificationInventoryEOList.isEmpty()){
if(!certificationInventoryEOList.isEmpty() && !certificationInventoryEOS.isEmpty()){
List<String> projectIdList = certificationInventoryEOS.stream().map(ProjectCertificationInventoryEO::getProjectLibraryId).distinct().collect(Collectors.toList());
LambdaQueryWrapper<ProjectLibraryBase> wrapper2 = new LambdaQueryWrapper<>();
wrapper2.in(ProjectLibraryBase::getId,projectIdList);
@@ -7515,25 +7640,12 @@ public class ProjectCertificationInventoryEOServiceImpl extends ServiceImpl<Proj
return projectCertificationInventoryEOList;
}
@Override
public List<ProjectCertificationInventoryEO> queryProjectCertificationInventoryByStandId(String id) {
QueryWrapper<ProjectCertificationInventoryEO> wra = new QueryWrapper<>();
wra.lambda().eq(ProjectCertificationInventoryEO::getBussDocumentLibraryId, id);
return this.list(wra);
}
// @Override
// public void listPlatform(Map<String,Object> params) {
@@ -37,6 +37,7 @@ import com.jero.common.system.query.QueryGenerator;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.common.util.PageUtil;
import com.jero.common.util.oss.CosBootUtil;
import com.jero.modules.document.entity.BussDocumentLibraryEO;
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
@@ -1560,10 +1561,11 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
List<BussDocumentLibraryEO> docList = bussDocumentLibraryEOService.listByIds(standIdList);
for (ProjectLawsInventoryEO projectLawsInventoryEO : list) {
//处理编号法规清单中若状态为符合时则编号标题不再随文档库变化
if ((!projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| !projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())
|| !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue()))
if (!((projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue()))
&&
(projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.CONFORMITY.getValue())
|| projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())))
&& StringUtils.isNotBlank(projectLawsInventoryEO.getStandId())) {
BussDocumentLibraryEO docObj = null;
for (BussDocumentLibraryEO obj : docList) {
@@ -2993,6 +2995,13 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
return new Result<>().success("调用成功!");
}
@Override
public List<ProjectLawsInventoryEO> queryProjectLawsInventoryInfoByStandId(String standId) {
QueryWrapper<ProjectLawsInventoryEO> wra = new QueryWrapper<>();
wra.lambda().eq(ProjectLawsInventoryEO::getStandId, standId);
return this.list(wra);
}
@Override
public List<ProjectLawsInventoryEO> queryProjectLawsInventoryInfoById(Map<String, Object> params) {
@@ -3966,8 +3975,59 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
@Override
public void exportData(HttpServletResponse response, HttpServletRequest request, ProjectLawsInventoryEO projectLawsInventoryEO) {
List<ProjectLawsInventoryEO> dataList = new ArrayList<>();
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
String dutyTerritoryStr = "";
if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDutyTerritory())) {
dutyTerritoryStr = projectLawsInventoryEO.getDutyTerritory();
projectLawsInventoryEO.setDutyTerritory(null);
}
String designFlowStatusStr = "";
if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignFlowStatus())) {
designFlowStatusStr = projectLawsInventoryEO.getDesignFlowStatus();
projectLawsInventoryEO.setDesignFlowStatus(null);
}
String verifyFlowStatusStr = "";
if (StringUtils.isNotEmpty(projectLawsInventoryEO.getVerifyFlowStatus())) {
verifyFlowStatusStr = projectLawsInventoryEO.getVerifyFlowStatus();
projectLawsInventoryEO.setVerifyFlowStatus(null);
}
// 根据一级责任领域统计节点查询该一级责任领域下所有子责任领域的法规清单数据
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getFirstLevelDutyTerritory())){
List<SysDictItem> sysDictItems = this.sysDictItemServiceImpl.selectItemsAll();
List<SysDictItem> dutyTerritorys = new ArrayList<>();
Map<String, List<SysDictItem>> firstLevelDTMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(), sysDictItems);
String[] firstLevelDTArr = projectLawsInventoryEO.getFirstLevelDutyTerritory().split(",");
for (String firstLevelDT : firstLevelDTArr){
if(CollectionUtils.isNotEmpty(firstLevelDTMap.get(firstLevelDT))){
dutyTerritorys.addAll(firstLevelDTMap.get(firstLevelDT));
}
}
if(CollectionUtils.isNotEmpty(dutyTerritorys)){
dutyTerritoryStr = dutyTerritorys.stream().map(SysDictItem::getItemValue).distinct().collect(Collectors.joining(","));
}
}
QueryWrapper<ProjectLawsInventoryEO> queryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO, request.getParameterMap());
if (StringUtils.isNotEmpty(dutyTerritoryStr)) {
String finalDutyTerritoryStr = dutyTerritoryStr.replaceAll("\\*","");
queryWrapper.and(query -> {
query.lambda().like(ProjectLawsInventoryEO::getDutyTerritory, finalDutyTerritoryStr);
if(StringUtils.contains(finalDutyTerritoryStr,",")){
String[] dutyTerritoryArr = finalDutyTerritoryStr.split(",");
for (String duty : dutyTerritoryArr) {
query.or(q -> {
q.like("duty_territory",duty);
});
}
}
});
}
List<ProjectLawsInventoryEO> dataList = new ArrayList<>();
queryWrapper.in("project_library_id", projectLawsInventoryEO.getProjectLibraryId());
if (StringUtils.isNotBlank(projectLawsInventoryEO.getIds())) {
queryWrapper.in("id", Arrays.asList(projectLawsInventoryEO.getIds().split(",")));
@@ -3977,15 +4037,32 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
int isProjectRole = Integer.parseInt(projectLawsInventoryEO.getRoleCode());
if (isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue())
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.MANAGER.getValue())
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.ADMIN.getValue())) {
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.ADMIN.getValue())
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())) {
queryWrapper.and(q -> {
q.eq("regulation_owner_id", currentUser.getId()).
or().eq("homologation_engineer_id", currentUser.getId());
});
}
if (isProjectRole == Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())) {
//查当前用户Viewer对应责任领域
List<String> dutyTerritoryList = projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId());
if (ObjectUtils.isNotEmpty(dutyTerritoryList)) {
queryWrapper.in("duty_territory", dutyTerritoryList);
}
}
//导出的数据
dataList = this.list(queryWrapper);
//关联平台件数据
platformDispose(projectLawsInventoryEO, dataList);
if(StringUtils.isNotBlank(designFlowStatusStr)){
String finalDesignFlowStatusStr = designFlowStatusStr;
dataList = dataList.stream().filter(e-> finalDesignFlowStatusStr.contains(e.getDesignFlowStatus())).collect(Collectors.toList());
}
if(StringUtils.isNotBlank(verifyFlowStatusStr)){
String finalVerifyFlowStatusStr = verifyFlowStatusStr;
dataList = dataList.stream().filter(e-> finalVerifyFlowStatusStr.contains(e.getVerifyFlowStatus())).collect(Collectors.toList());
}
//文件
List<OSSFile> fileInfos = getOssFiles(dataList);
@@ -4009,7 +4086,6 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
//数据转换(文件名称,对应标准)
dataTransition(dataList, fileInfos, sysUserList, projectLawsInventoryEO);
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
this.dataDispose(dataList, currentUser, Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue()), projectLawsInventoryEO.getCut());
OutputStream os = null;
try {
@@ -9419,7 +9495,7 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
userIdList.add(projectLawsInventoryEO.getRegulationOwnerId());
//如果都是不涉及就不发待办
if (!projectLawsInventoryEO.getDesignFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())
&& !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) {
|| !projectLawsInventoryEO.getVerifyFlowStatus().equals(ComplianceFlowStatusEnum.UNINVOLVED.getValue())) {
ProcessInfoDetailEO processInfoDetailEO = new ProcessInfoDetailEO();
processInfoDetailEO.setProjectLawsInventoryId(projectLawsInventoryEO.getId());
processInfoDetailEO.setUserId(projectLawsInventoryEO.getRegulationOwnerId());
@@ -12232,34 +12308,34 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
});
}
}
if (StringUtils.isNotEmpty(designFlowStatusStr)) {
String finalDesignFlowStatusStr = designFlowStatusStr.replaceAll("\\*","");
queryWrapper.and(query -> {
query.lambda().like(ProjectLawsInventoryEO::getDesignFlowStatus, finalDesignFlowStatusStr);
if(StringUtils.contains(finalDesignFlowStatusStr,",")){
String[] designFlowStatusArr = finalDesignFlowStatusStr.split(",");
for (String dsf : designFlowStatusArr) {
query.or(q -> {
q.like("design_flow_status",dsf);
});
}
}
});
}
if (StringUtils.isNotEmpty(verifyFlowStatusStr)) {
String finalVerifyFlowStatusStr = verifyFlowStatusStr.replaceAll("\\*","");
queryWrapper.and(query -> {
query.lambda().like(ProjectLawsInventoryEO::getVerifyFlowStatus, finalVerifyFlowStatusStr);
if(StringUtils.contains(finalVerifyFlowStatusStr,",")){
String[] verifyFlowStatusArr = finalVerifyFlowStatusStr.split(",");
for (String vsf : verifyFlowStatusArr) {
query.or(q -> {
q.like("verify_flow_status",vsf);
});
}
}
});
}
// if (StringUtils.isNotEmpty(designFlowStatusStr)) {
// String finalDesignFlowStatusStr = designFlowStatusStr.replaceAll("\\*","");
// queryWrapper.and(query -> {
// query.lambda().like(ProjectLawsInventoryEO::getDesignFlowStatus, finalDesignFlowStatusStr);
// if(StringUtils.contains(finalDesignFlowStatusStr,",")){
// String[] designFlowStatusArr = finalDesignFlowStatusStr.split(",");
// for (String dsf : designFlowStatusArr) {
// query.or(q -> {
// q.like("design_flow_status",dsf);
// });
// }
// }
// });
// }
// if (StringUtils.isNotEmpty(verifyFlowStatusStr)) {
// String finalVerifyFlowStatusStr = verifyFlowStatusStr.replaceAll("\\*","");
// queryWrapper.and(query -> {
// query.lambda().like(ProjectLawsInventoryEO::getVerifyFlowStatus, finalVerifyFlowStatusStr);
// if(StringUtils.contains(finalVerifyFlowStatusStr,",")){
// String[] verifyFlowStatusArr = finalVerifyFlowStatusStr.split(",");
// for (String vsf : verifyFlowStatusArr) {
// query.or(q -> {
// q.like("verify_flow_status",vsf);
// });
// }
// }
// });
// }
if(isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue())
&& isProjectRole != Integer.parseInt(ProjectRoleEnum.MANAGER.getValue())
@@ -12269,19 +12345,155 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
this.createQueryPermission(isProjectRole,currentUser,queryWrapper);
}
Page<ProjectLawsInventoryEO> page = new Page<ProjectLawsInventoryEO>(pageNo, pageSize);
IPage<ProjectLawsInventoryEO> pageList = this.page(page, queryWrapper);
List<ProjectLawsInventoryEO> result = pageList.getRecords();
List<ProjectLawsInventoryEO> list = this.list(queryWrapper);
//关联平台件数据
platformDispose(projectLawsInventoryEO, result);
platformDispose(projectLawsInventoryEO, list);
this.dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut());
this.dataDictDispose(result,projectLawsInventoryEO.getCut());
List<ProjectLawsInventoryEO> lawsInventoryEOList = new ArrayList<>();
if(StringUtils.isNotBlank(designFlowStatusStr)){
for (ProjectLawsInventoryEO lawsInventoryEO : list) {
if(designFlowStatusStr.contains(lawsInventoryEO.getDesignFlowStatus())){
lawsInventoryEOList.add(lawsInventoryEO);
}
}
}
if(StringUtils.isNotBlank(verifyFlowStatusStr)){
for (ProjectLawsInventoryEO lawsInventoryEO : list) {
if(verifyFlowStatusStr.contains(lawsInventoryEO.getVerifyFlowStatus())){
lawsInventoryEOList.add(lawsInventoryEO);
}
}
}
if(StringUtils.isBlank(designFlowStatusStr) && StringUtils.isBlank(verifyFlowStatusStr)){
lawsInventoryEOList = list;
}
this.dataDispose(lawsInventoryEOList,currentUser,isProjectRole,projectLawsInventoryEO.getCut());
this.dataDictDispose(lawsInventoryEOList,projectLawsInventoryEO.getCut());
//表头排序
result = this.hearSort(projectLawsInventoryEO, result);
lawsInventoryEOList = this.hearSort(projectLawsInventoryEO, lawsInventoryEOList);
Page pageList = PageUtil.getPages(pageNo, pageSize, lawsInventoryEOList);
return pageList;
}
// @Override
// public IPage<ProjectLawsInventoryEO> queryPage(ProjectLawsInventoryEO projectLawsInventoryEO, Integer pageNo, Integer pageSize, HttpServletRequest req) {
// String dutyTerritoryStr = "";
// if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDutyTerritory())) {
// dutyTerritoryStr = projectLawsInventoryEO.getDutyTerritory();
// projectLawsInventoryEO.setDutyTerritory(null);
// }
// String designFlowStatusStr = "";
// if (StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignFlowStatus())) {
// designFlowStatusStr = projectLawsInventoryEO.getDesignFlowStatus();
// projectLawsInventoryEO.setDesignFlowStatus(null);
// }
// String verifyFlowStatusStr = "";
// if (StringUtils.isNotEmpty(projectLawsInventoryEO.getVerifyFlowStatus())) {
// verifyFlowStatusStr = projectLawsInventoryEO.getVerifyFlowStatus();
// projectLawsInventoryEO.setVerifyFlowStatus(null);
// }
//
// // 根据一级责任领域统计节点查询该一级责任领域下所有子责任领域的法规清单数据
// if(StringUtils.isNotEmpty(projectLawsInventoryEO.getFirstLevelDutyTerritory())){
// List<SysDictItem> sysDictItems = this.sysDictItemServiceImpl.selectItemsAll();
// List<SysDictItem> dutyTerritorys = new ArrayList<>();
// Map<String, List<SysDictItem>> firstLevelDTMap = this.sysDictItemServiceImpl.getFirstLevelSysDictItemByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue(), sysDictItems);
// String[] firstLevelDTArr = projectLawsInventoryEO.getFirstLevelDutyTerritory().split(",");
// for (String firstLevelDT : firstLevelDTArr){
// if(CollectionUtils.isNotEmpty(firstLevelDTMap.get(firstLevelDT))){
// dutyTerritorys.addAll(firstLevelDTMap.get(firstLevelDT));
// }
// }
// if(CollectionUtils.isNotEmpty(dutyTerritorys)){
// dutyTerritoryStr = dutyTerritorys.stream().map(SysDictItem::getItemValue).distinct().collect(Collectors.joining(","));
// }
// }
//
// QueryWrapper<ProjectLawsInventoryEO> queryWrapper = QueryGenerator.initQueryWrapper(projectLawsInventoryEO, req.getParameterMap());
// queryWrapper.orderByDesc("create_time","serial_number");
//
// if (StringUtils.isNotEmpty(dutyTerritoryStr)) {
// String finalDutyTerritoryStr = dutyTerritoryStr.replaceAll("\\*","");
// queryWrapper.and(query -> {
// query.lambda().like(ProjectLawsInventoryEO::getDutyTerritory, finalDutyTerritoryStr);
// if(StringUtils.contains(finalDutyTerritoryStr,",")){
// String[] dutyTerritoryArr = finalDutyTerritoryStr.split(",");
// for (String duty : dutyTerritoryArr) {
// query.or(q -> {
// q.like("duty_territory",duty);
// });
// }
// }
// });
// }
//
// LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// int isProjectRole = Integer.parseInt(projectLawsInventoryEO.getRoleCode());
// if (isProjectRole == Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())) {
// //查当前用户Viewer对应责任领域
// List<String> dutyTerritoryList = this.projectUserDutyTerritoryService.queryDutyTerritoryByUserId(currentUser.getId());
// if (ObjectUtils.isNotEmpty(dutyTerritoryList)) {
// queryWrapper.and(query -> {
// for (String duty : dutyTerritoryList) {
// query.or(q -> {
// q.like("duty_territory", duty);
// });
// }
// });
// }
// }
// if (StringUtils.isNotEmpty(designFlowStatusStr)) {
// String finalDesignFlowStatusStr = designFlowStatusStr.replaceAll("\\*","");
// queryWrapper.and(query -> {
// query.lambda().like(ProjectLawsInventoryEO::getDesignFlowStatus, finalDesignFlowStatusStr);
// if(StringUtils.contains(finalDesignFlowStatusStr,",")){
// String[] designFlowStatusArr = finalDesignFlowStatusStr.split(",");
// for (String dsf : designFlowStatusArr) {
// query.or(q -> {
// q.like("design_flow_status",dsf);
// });
// }
// }
// });
// }
// if (StringUtils.isNotEmpty(verifyFlowStatusStr)) {
// String finalVerifyFlowStatusStr = verifyFlowStatusStr.replaceAll("\\*","");
// queryWrapper.and(query -> {
// query.lambda().like(ProjectLawsInventoryEO::getVerifyFlowStatus, finalVerifyFlowStatusStr);
// if(StringUtils.contains(finalVerifyFlowStatusStr,",")){
// String[] verifyFlowStatusArr = finalVerifyFlowStatusStr.split(",");
// for (String vsf : verifyFlowStatusArr) {
// query.or(q -> {
// q.like("verify_flow_status",vsf);
// });
// }
// }
// });
// }
//
// if(isProjectRole != Integer.parseInt(ProjectRoleEnum.STUDIO_ENGINEER.getValue())
// && isProjectRole != Integer.parseInt(ProjectRoleEnum.MANAGER.getValue())
// && isProjectRole != Integer.parseInt(ProjectRoleEnum.ADMIN.getValue())
// && isProjectRole != Integer.parseInt(ProjectRoleEnum.VIEWER.getValue())){
// // 创建查询权限
// this.createQueryPermission(isProjectRole,currentUser,queryWrapper);
// }
//
// Page<ProjectLawsInventoryEO> page = new Page<ProjectLawsInventoryEO>(pageNo, pageSize);
// IPage<ProjectLawsInventoryEO> pageList = this.page(page, queryWrapper);
// List<ProjectLawsInventoryEO> result = pageList.getRecords();
//
// //关联平台件数据
// platformDispose(projectLawsInventoryEO, result);
//
// this.dataDispose(result,currentUser,isProjectRole,projectLawsInventoryEO.getCut());
// this.dataDictDispose(result,projectLawsInventoryEO.getCut());
// //表头排序
// result = this.hearSort(projectLawsInventoryEO, result);
// return pageList;
// }
public void platformDispose(ProjectLawsInventoryEO projectLawsInventoryEO, List<ProjectLawsInventoryEO> result) {
List<String> valueList = FlowStateDesignEnum.getValueInfo();//修改为按高嵩提供的流程顺序
@@ -12927,5 +13139,70 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
return projectLawsInventoryEOList;
}
/**
*
* @param documentId 文档库id
* @return
*/
@Override
public List<SysUser> getEvaluatorList(String documentId) {
LambdaQueryWrapper<ProjectLawsInventoryEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(ProjectLawsInventoryEO::getStandId,documentId);
List<ProjectLawsInventoryEO> lawsInventoryEOList = this.list(wrapper);
//dutyTerritory
if(ObjectUtils.isEmpty(lawsInventoryEOList)){
return new ArrayList<>();
}
List<String> userIdList = new ArrayList<>();
for (ProjectLawsInventoryEO projectLawsInventoryEO : lawsInventoryEOList) {
String dutyTerritory = projectLawsInventoryEO.getDutyTerritory();
//每条下的相关责任名单
List<ProjectRelatedPersonnel> personnelList = projectRelatedPersonnelService.getPersonnelList(projectLawsInventoryEO.getProjectLibraryId(),null,null, null, null, null, null, null, null);
if(ObjectUtils.isNotEmpty(personnelList) && StringUtils.isNotBlank(dutyTerritory)){
//通过每条法规清单的责任领域去过滤相关人员名单
personnelList = personnelList.stream().filter(e->dutyTerritory.contains(e.getDutyTerritory())).collect(Collectors.toList());
//lawEngineer engineeringInterfacePerson engineerLawSet engineerAttSet
List<String> collect1 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getLawEngineer())).map(ProjectRelatedPersonnel::getLawEngineer).collect(Collectors.toList());
List<String> collect2 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getEngineeringInterfacePerson())).map(ProjectRelatedPersonnel::getEngineeringInterfacePerson).collect(Collectors.toList());
List<String> collect3 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getEngineerLawSet())).map(ProjectRelatedPersonnel::getEngineerLawSet).collect(Collectors.toList());
List<String> collect4 = personnelList.stream().filter(e -> StringUtils.isNotBlank(e.getEngineerAttSet())).map(ProjectRelatedPersonnel::getEngineerAttSet).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect1)){
for (String s : collect1) {
userIdList.addAll(Arrays.asList(s.split(",")));
}
}
if(ObjectUtils.isNotEmpty(collect2)){
for (String s : collect2) {
userIdList.addAll(Arrays.asList(s.split(",")));
}
}
if(ObjectUtils.isNotEmpty(collect3)){
for (String s : collect3) {
userIdList.addAll(Arrays.asList(s.split(",")));
}
}
if(ObjectUtils.isNotEmpty(collect4)){
for (String s : collect4) {
userIdList.addAll(Arrays.asList(s.split(",")));
}
}
}
}
List<SysUser> sysUserList = new ArrayList<>();
if(ObjectUtils.isNotEmpty(userIdList)) {
userIdList = userIdList.stream().distinct().collect(Collectors.toList());
sysUserList = sysUserService.querySysUserListByIdList(userIdList);
//排序
Collator comparator = Collator.getInstance(Locale.CHINESE);
Collections.sort(sysUserList, (e1, e2) -> {
String e1Username = StringUtils.isNotBlank(e1.getUsername()) ? e1.getUsername() : "";
String e2Username = StringUtils.isNotBlank(e2.getUsername()) ? e2.getUsername() : "";
return comparator.compare(e1Username, e2Username);
});
}
return sysUserList;
}
}
@@ -2719,13 +2719,17 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
return result;
}
private List<ProjectCertificationInventoryEO> getProjectCertificationInventoryEOS(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList) {
public List<ProjectCertificationInventoryEO> getProjectCertificationInventoryEOS(List<ProjectCertificationInventoryEO> projectCertificationInventoryEOList) {
//认证清单关联平台件实际是一个认证清单只关联一个平台件
List<String> projectCertificationInventoryIdList = projectCertificationInventoryEOList.stream().map(ProjectCertificationInventoryEO::getId).collect(Collectors.toList());
List<LawsInventoryPlatformEO> lawsInventoryPlatformEOList = new ArrayList<>();
if(ObjectUtils.isNotEmpty(projectCertificationInventoryIdList)){
LambdaQueryWrapper<LawsInventoryPlatformEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,projectCertificationInventoryIdList);
lawsInventoryPlatformEOList = lawsInventoryPlatformEOService.list(wrapper);
}
//认证清单关联的平台件
LambdaQueryWrapper<LawsInventoryPlatformEO> wrapper = new LambdaQueryWrapper<>();
wrapper.in(LawsInventoryPlatformEO::getLawsInventoryId,projectCertificationInventoryIdList);
List<LawsInventoryPlatformEO> lawsInventoryPlatformEOList = lawsInventoryPlatformEOService.list(wrapper);
List<ProjectCertificationInventoryEO> projectCertificationInventoryEOListTemp = new ArrayList<>();
List<ProjectCertificationInventoryEO> yesList = new ArrayList<>();
List<ProjectCertificationInventoryEO> noList = new ArrayList<>();
@@ -2762,7 +2766,10 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
}
@NotNull
private List<ProjectLawsInventoryEO> getProjectLawsInventoryEOS(List<ProjectLawsInventoryEO> projectLawsInventoryEOList) {
public List<ProjectLawsInventoryEO> getProjectLawsInventoryEOS(List<ProjectLawsInventoryEO> projectLawsInventoryEOList) {
if(ObjectUtils.isEmpty(projectLawsInventoryEOList)){
return projectLawsInventoryEOList;
}
List<String> projectLawsInventoryIdList = projectLawsInventoryEOList.stream()
.distinct().map(ProjectLawsInventoryEO::getId).collect(Collectors.toList());
//法规清单关联的所有平台件
@@ -2790,42 +2797,25 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
//关联的平台件数据
List<ProjectLawsInventoryEO> platformList = projectLawsInventoryPlatFormList.stream()
.filter(e -> platformLawsInventoryIdList.contains(e.getId())).collect(Collectors.toList());
for (ProjectLawsInventoryEO lawsInventoryEO : platformList) {
if(ObjectUtils.isNotEmpty(platformList)){
for (String value : valueInfo) {
if(value.equals(lawsInventoryEO.getDesignFlowStatus())){
List<ProjectLawsInventoryEO> collect1 = platformList.stream().filter(e -> value.equals(e.getDesignFlowStatus())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect1)){
projectLawsInventoryEO.setDesignFlowStatus(value);
break;
}
}
for (String value : valueInfo) {
if(value.equals(lawsInventoryEO.getVerifyFlowStatus())){
List<ProjectLawsInventoryEO> collect1 = platformList.stream().filter(e -> value.equals(e.getVerifyFlowStatus())).collect(Collectors.toList());
if(ObjectUtils.isNotEmpty(collect1)){
projectLawsInventoryEO.setVerifyFlowStatus(value);
break;
}
}
}
}
// if(ObjectUtils.isNotEmpty(collect)){
// yesList.add(projectLawsInventoryEO);
// }else{
// noList.add(projectLawsInventoryEO);
// }
}
}
// if(ObjectUtils.isNotEmpty(projectLawsInventoryEOList)
// && ObjectUtils.isNotEmpty(yesList)
// && yesList.size() != projectLawsInventoryEOList.size()
// ){
// //法规清单有数据且部分关联平台件数据
// projectLawsInventoryEOList = noList;
// projectLawsInventoryEOList.addAll(projectLawsInventoryPlatFormList);
// }else if(ObjectUtils.isNotEmpty(projectLawsInventoryEOList)
// && ObjectUtils.isNotEmpty(yesList)
// && yesList.size() == projectLawsInventoryEOList.size()){
// //法规清单有数据且全部关联了平台件
// projectLawsInventoryEOList = projectLawsInventoryPlatFormList;
// }
return projectLawsInventoryEOList;
}
@@ -371,6 +371,56 @@ public class ProjectRelatedPersonnelServiceImpl extends ServiceImpl<ProjectRelat
}
return result;
}
public List<ProjectRelatedPersonnel> getPersonnelList(String projectId,
String dutyTerritoryTemp,
String lawEngineer,
String engineeringInterfacePerson,
String engineerLawSet,String engineerAttSet,
String firstLevelDutyTerritory,
String orderBy,
String orderByField) {
//查询数据
List<ProjectRelatedPersonnel> result = projectRelatedPersonnelMapper.queryPageList(projectId,
DictCodeEnum.DUTY_TERRITORY.getValue(),
dutyTerritoryTemp,
lawEngineer,
engineeringInterfacePerson,
// certificationEngineer
engineerLawSet,
engineerAttSet);
//查询数据里的责任领域
List<String> dutyTerritory = result.stream().map(e -> e.getDutyTerritory()).collect(Collectors.toList());
//查标签内容里的责任领域数据
List<String> sysDictItemValueList = sysDictItemMapper.selectItemValueByDictCode(DictCodeEnum.DUTY_TERRITORY.getValue());
//没有数据->新增所有责任领域,查询
if(StringUtils.isBlank(dutyTerritoryTemp)
&& StringUtils.isBlank(lawEngineer)
&& StringUtils.isBlank(engineeringInterfacePerson)
// && StringUtils.isBlank(certificationEngineer)
&& StringUtils.isBlank(engineerLawSet)
&& StringUtils.isBlank(engineerLawSet)){
if(result.size() != sysDictItemValueList.size()){
//更新相关人员表里的责任领域数据
if (CollectionUtils.isNotEmpty(sysDictItemValueList)) {
for (String sysDictItemValue : sysDictItemValueList) {
if(!dutyTerritory.contains(sysDictItemValue)) {
setDutyTerritoryValue(sysDictItemValue, projectId);
}
}
}
//重新查询列表
result = projectRelatedPersonnelMapper.queryPageList(projectId,
DictCodeEnum.DUTY_TERRITORY.getValue(),
dutyTerritoryTemp,
lawEngineer,
engineeringInterfacePerson,
engineerLawSet,
engineerAttSet);
}
}
return result;
}
private void hearSort(String orderBy, String orderByField, List<ProjectRelatedPersonnel> result) {
Collator comparator = Collator.getInstance(Locale.CHINESE);
@@ -1032,6 +1032,8 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
}
//设计任务确认
List<ProjectLawsInventoryEO> pliEos = pliEoList.stream().filter(pliEo -> StringUtils.equals(pliEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList());
pliEos = projectLibraryBaseService.getProjectLawsInventoryEOS(pliEos);
Map<String,Object> fgRwqrMapDesign = this.projectLawsInventoryEOService.groupByFGRwqrStatusDesign(pliEos);
Map<String,Object> fgRwqrProjectScheduleExportMapDesign = (Map<String, Object>) fgRwqrMapDesign.get("projectScheduleExportMap");
double fgrqqrToBeReleasedDesign = (double) fgRwqrProjectScheduleExportMapDesign.get("toBeReleased");
@@ -1126,6 +1128,7 @@ public class ProjectStatusBoardServiceImpl implements IProjectStatusBoardService
//认证任务确认
List<ProjectCertificationInventoryEO> pciEos = pciEoList.stream().filter(pciEo -> StringUtils.equals(pciEo.getProjectLibraryId(), plbEo.getId())).collect(Collectors.toList());
pciEos = projectLibraryBaseService.getProjectCertificationInventoryEOS(pciEos);
Map<String,Object> rzRwqrMap = this.projectCertificationInventoryEOService.groupByFGRwqrStatus(pciEos);
Map<String,Object> rzRwqrProjectScheduleExportMap = (Map<String, Object>) rzRwqrMap.get("projectScheduleExportMap");
double rzRqqrToBeReleased = (double) rzRwqrProjectScheduleExportMap.get("toBeReleased");
@@ -97,6 +97,8 @@ public class NcrTrackVO implements Serializable {
@ApiModelProperty(value = "问题优先级")
private java.lang.String problemPriority;
private java.lang.String problemPriorityName;
private java.lang.String problemPriority_dictText;
/**描述和分析*/
@@ -47,4 +47,6 @@ public class ParamsManifestTodoCenterEO {
//用于区分跳转所带的状态
private String flag;
//项目状态
private String projectStatus;
}
@@ -1,11 +1,13 @@
package com.jero.modules.todoCenter.mapper;
import java.util.Map;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.modules.todoCenter.vo.ProcessInfoVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
/**
* @Description: 流程信息表
@@ -30,6 +32,9 @@ public interface ProcessInfoEOMapper extends BaseMapper<ProcessInfoEO> {
*/
IPage<ProcessInfoVO> queryProjectProcessTodoTaskListList(IPage page,Map<String, Object> params);
List<ProcessInfoVO> queryProjectProcessTodoTaskList(@Param("params") Map<String, Object> params);
/**
* 查询法规评估流程分页列表
* @param page
@@ -230,7 +230,8 @@
plb.studio_engineer,
plb.project_version,
plb.parent_id,
plb.platform
plb.platform,
plb.project_status
FROM
process_info pi
LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id
@@ -325,7 +326,214 @@
plb.studio_engineer,
plb.project_version,
plb.parent_id,
plb.platform
plb.platform,
plb.project_status
FROM
process_info pi
LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id
LEFT JOIN project_laws_inventory pli ON pi.project_laws_inventory_id = pli.id
WHERE
(
pi.id IN (
SELECT
pid.process_info_id
FROM
process_info_detail pid
where pid.user_id = #{params.currentUserId} and pid.status = #{params.taskStatus}
)
)
AND pi.flow_type IN
<foreach collection="params.qdqrFlowTypeValue" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
)temp
<include refid="BaseQuerySql"/>
order by
temp.end_time IS NULL,
temp.end_time,
temp.project_name IS NULL,
temp.project_name,
standard_info IS NULL,
standard_info,
flow_type_show_order_by
ASC
</select>
<select id="queryProjectProcessTodoTaskList" resultType="com.jero.modules.todoCenter.vo.ProcessInfoVO">
select
temp.*,
(case temp.flow_type when '10' THEN '1' when '21' THEN '2' when '2' THEN '3' when '4' THEN '4' END) as flow_type_show_order_by
from (
SELECT
pi.id,
pi.project_library_id,
pi.project_laws_inventory_id,
pi.buss_document_library_id,
pi.acti_proc_inst_id,
case
when
year_name_id is null
THEN
concat(
plb.power,
'-',
plb.producer,
'-',
(
SELECT
CASE
WHEN
GROUP_CONCAT( item_text SEPARATOR ',' ) IS NULL THEN
'' ELSE GROUP_CONCAT( item_text SEPARATOR ',' )
END AS item_text
FROM
sys_dict_item
WHERE
FIND_IN_SET( item_value, plb.target_market ) > 0
AND dict_id = ( SELECT id FROM sys_dict WHERE dict_code = 'region' )
)
)
when year_name_id is not null
THEN
concat(
pni.project_name, '-',
pyni.year_name, '-',
(
SELECT
<if test="params.cut == 'cn'">
CASE WHEN GROUP_CONCAT( item_text SEPARATOR ',' ) IS NULL THEN '' ELSE GROUP_CONCAT( item_text SEPARATOR ',' ) END AS item_text
</if>
<if test="params.cut == 'en'">
CASE WHEN GROUP_CONCAT( en_name SEPARATOR ',' ) IS NULL THEN '' ELSE GROUP_CONCAT( en_name SEPARATOR ',' ) END AS item_text
</if>
FROM
sys_dict_item
WHERE
FIND_IN_SET( item_value, plb.target_market ) > 0
AND dict_id = ( SELECT id FROM sys_dict WHERE dict_code = 'region' )
) , '-',
plb.project_version
) end AS project_name,
pyni.year_name,
pli.serial_number,
pli.title,
bdl.title_en,
<if test="params.cut == 'cn'">
concat(pli.serial_number,' ',pli.title) as standard_info,
</if>
<if test="params.cut == 'en'">
concat(pli.serial_number,' ',bdl.title_en) as standard_info,
</if>
(case pi.flow_type when '32' THEN '2' when '34' THEN '4' else pi.flow_type END) as flow_type,
pi.create_by,
pi.end_time,
pi.STATUS,
pi.prc_num,
pi.prc_name,
plb.project_name_id,
plb.target_market,
plb.studio_engineer,
plb.project_version,
plb.parent_id,
plb.platform,
plb.project_status
FROM
process_info pi
LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id
LEFT JOIN project_name_info pni ON pni.id = plb.project_name_id
LEFT JOIN project_year_name_info pyni ON pyni.id = plb.year_name_id
LEFT JOIN project_laws_inventory pli ON pi.project_laws_inventory_id = pli.id
LEFT JOIN buss_document_library bdl ON pi.buss_document_library_id = bdl.id
where
(
pi.id IN (
SELECT
pid.process_info_id
FROM
process_info_detail pid
where pid.user_id = #{params.currentUserId} and pid.status = #{params.taskStatus}
)
)
AND pi.flow_type IN
<foreach collection="params.flowTypeList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
union
SELECT
pi.id,
pi.project_library_id,
pi.project_laws_inventory_id,
pi.buss_document_library_id,
pi.acti_proc_inst_id,
case
when
year_name_id is null
THEN
concat(
plb.power,
'-',
plb.producer,
'-',
(
SELECT
CASE
WHEN
GROUP_CONCAT( item_text SEPARATOR ',' ) IS NULL THEN
'' ELSE GROUP_CONCAT( item_text SEPARATOR ',' )
END AS item_text
FROM
sys_dict_item
WHERE
FIND_IN_SET( item_value, plb.target_market ) > 0
AND dict_id = ( SELECT id FROM sys_dict WHERE dict_code = 'region' )
)
)
when year_name_id is not null
THEN
concat(
pni.project_name, '-',
pyni.year_name, '-',
(
SELECT
<if test="params.cut == 'cn'">
CASE WHEN GROUP_CONCAT( item_text SEPARATOR ',' ) IS NULL THEN '' ELSE GROUP_CONCAT( item_text SEPARATOR ',' ) END AS item_text
</if>
<if test="params.cut == 'en'">
CASE WHEN GROUP_CONCAT( en_name SEPARATOR ',' ) IS NULL THEN '' ELSE GROUP_CONCAT( en_name SEPARATOR ',' ) END AS item_text
</if>
FROM
sys_dict_item
WHERE
FIND_IN_SET( item_value, plb.target_market ) > 0
AND dict_id = ( SELECT id FROM sys_dict WHERE dict_code = 'region' )
) , '-',
plb.project_version
) end AS project_name,
pyni.year_name,
'--' as serial_number,
'--' as standard_info,
'' as title,
'' as title_en,
pi.flow_type,
pi.create_by,
(
select
pid.end_time
from
process_info_detail pid
where pid.process_info_id = pi.id and pid.STATUS = 'NotDone' and pid.end_time is not null and pid.user_id = #{params.currentUserId} order by pid.end_time asc limit 1
) as end_time,
pi.STATUS,
pi.prc_num,
pi.prc_name,
plb.project_name_id,
plb.target_market,
plb.studio_engineer,
plb.project_version,
plb.parent_id,
plb.platform,
plb.project_status
FROM
process_info pi
LEFT JOIN project_library_base plb ON plb.id = pi.project_library_id
@@ -4,6 +4,8 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.cert.collect.entity.ParamsCollectManifestEO;
import com.jero.modules.cert.collect.enums.CollectManifestStateEnum;
@@ -13,6 +15,8 @@ import com.jero.modules.cert.collect.mapper.ParamsManifestEOMapper;
import com.jero.modules.project.entity.ProjectLibraryBase;
import com.jero.modules.project.service.impl.ProjectLibraryBaseServiceImpl;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.todoCenter.entity.ParamsManifestTodoCenterEO;
import com.jero.modules.todoCenter.enums.FlagEnum;
@@ -45,6 +49,8 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC
private ProjectLibraryBaseServiceImpl projectLibraryBaseService;
@Autowired
private ISysUserService sysUserService;
@Autowired
private ISysDictService sysDictService;
@Override
public IPage queryPage(ParamsManifestTodoCenterEOPage pageVO) {
@@ -154,6 +160,17 @@ public class ParamsManifestTodoCenterServiceImpl implements IParamsManifestTodoC
.filter(e->ObjectUtil.isNotNull(e.getWaitCollectNum()) || ObjectUtil.isNotNull(e.getWaitSdtNum()) || ObjectUtil.isNotNull(e.getWaitFillNum()))
.sorted(Comparator.comparing(ParamsManifestTodoCenterEO::getCreateTime).reversed())
.collect(Collectors.toList());
List<DictModel> projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode());
projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList());
//过滤掉项目状态为取消的数据
if(ObjectUtil.isNotEmpty(paramsManifestEOList)){
List<DictModel> finalProjectStatus = projectStatus;
paramsManifestEOList = paramsManifestEOList.stream()
.filter(e->StringUtils.isNotBlank(e.getProjectStatus())
&& ObjectUtil.isNotEmpty(finalProjectStatus)
&& !e.getProjectStatus().equals(finalProjectStatus.get(0).getValue()))
.collect(Collectors.toList());
}
List<ParamsManifestTodoCenterEO> result = new ArrayList<>();
int subSize = pageVO.getPageSize(); // 每页记录数
@@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.constant.enums.CutEnum;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.DictModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.DateUtils;
import com.jero.common.util.PageUtil;
import com.jero.modules.dummy.enums.OrderEnum;
import com.jero.modules.lawsOpinionGather.entity.LawsOpinionGatherEO;
import com.jero.modules.lawsOpinionGather.service.ILawsOpinionGatherEOService;
@@ -40,6 +42,7 @@ import com.jero.modules.project.service.IProjectTaskInventoryFeedbackEOService;
import com.jero.modules.system.entity.SysCategory;
import com.jero.modules.system.entity.SysDictItem;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.enums.DicCodeEnum;
import com.jero.modules.system.service.ISysDictService;
import com.jero.modules.system.service.ISysUserService;
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
@@ -261,7 +264,21 @@ public class ProcessInfoEOServiceImpl extends ServiceImpl<ProcessInfoEOMapper, P
params.put("qdqrFlowTypeValue",qdqrFlowTypeValue);
IPage page = new Page(pageNo, pageSize);
IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessTodoTaskListList(page,params);
List<ProcessInfoVO> processInfoVOS = this.baseMapper.queryProjectProcessTodoTaskList(params);
if(ObjectUtils.isEmpty(processInfoVOS)){
return new Page();
}
List<DictModel> projectStatus = sysDictService.queryDictItemsByCode(DicCodeEnum.PROJECT_STATUS.getCode());
projectStatus = projectStatus.stream().filter(e-> YesOrNoEnum.CANCEL.getName().equals(e.getText())).collect(Collectors.toList());
//过滤掉项目状态为取消的
List<DictModel> finalProjectStatus = projectStatus;
processInfoVOS = processInfoVOS.stream()
.filter(e->StringUtils.isNotBlank(e.getProjectStatus())
&& ObjectUtils.isNotEmpty(finalProjectStatus) && !e.getProjectStatus().equals(finalProjectStatus.get(0).getValue()))
.collect(Collectors.toList());
IPage<ProcessInfoVO> result = PageUtil.getPages(pageNo, pageSize,processInfoVOS);
// IPage<ProcessInfoVO> result = this.baseMapper.queryProjectProcessTodoTaskListList(page,params);
this.disposeData(result.getRecords(),cut,TaskStatusEnum.NOT_DONE.getValue());
result = this.hearSort(params, result);
return result;
@@ -123,4 +123,7 @@ public class ProcessInfoVO implements Serializable {
//该字段有值时代表数据为平台件的数据
private String platform;
//项目状态
private String projectStatus;
}
+7
View File
@@ -2036,4 +2036,11 @@ module.exports = {
regulationEngineerInitiateProcess: 'Regulation Engineer Initiate Process',
parameterCollectionDescription:'In the extension parameter collection list, the data highlighted in red represents the deleted parameters after template update, the data highlighted in yellow represents the changed parameters after template update, and for the newly added parameters after template update, homo engineer should find in "More-Add" and add them to the parameter collection list.',
experienceReference:'Experience reference',
onlyTheDataFilledUrged:'Only the data whose status is to be filled in or To be processed by eng. interface can be urged',
onlyTheDataWhoseStatusUrged:'Only the data whose status is to be filled in can be urged',
maintainer:'Maintainer',
setupMaintainer:'Setup maintainer',
maximumOfBeSelected:'A maximum of 30 personnel can be selected',
syncToList:'Sync to list',
pleaseSelectPublishedData:'Please select published data',
}
+7
View File
@@ -3770,4 +3770,11 @@ module.exports = {
regulationEngineerInitiateProcess:'法规工程师发起流程',
parameterCollectionDescription:'变更扩展参数收集清单中标红数据为模板更新后被删除参数标黄数据为模板更新后变更参数模板更新新增参数请认证工程师在更多-添加中查阅并添加至参数收集清单中',
experienceReference:'经验参考',
onlyTheDataFilledUrged:'只能催办状态为待填写或待工程接口人处理的数据',
onlyTheDataWhoseStatusUrged:'只能催办状态为待填写的数据',
maintainer:'维护人',
setupMaintainer:'设置维护人',
maximumOfBeSelected:'最多只能选择30个人员',
syncToList:'同步至清单',
pleaseSelectPublishedData:'请选择已经发布的数据',
}
@@ -135,6 +135,9 @@
},
mounted() {
this.replacePage()
setTimeout(()=>{
this.arrayValue = !this.value ? [] : this.value.split(',')
},600)
},
methods: {
standardClick() {
+5 -5
View File
@@ -42,10 +42,10 @@
<!-- <a-icon type="logout"/>-->
<span>{{$t('userManual')}}</span>
</a-menu-item>
<a-menu-item key="6" @click="Jumpoperationguide">
<!-- <a-icon type="logout"/>-->
<span>{{$t('operationguide')}}</span>
</a-menu-item>
<!-- <a-menu-item key="6" @click="Jumpoperationguide">-->
<!-- &lt;!&ndash; <a-icon type="logout"/>&ndash;&gt;-->
<!-- <span>{{$t('operationguide')}}</span>-->
<!-- </a-menu-item>-->
</a-menu>
</a-dropdown>
<div class="action" @click="UserFeedback">
@@ -232,7 +232,7 @@ export default {
this.shows = false
},
Jumpflybook(){
window.open('https://eicgyqr5mc.feishu.cn/docx/doxcnY2GbQfMSMqLP0eIFzFlEcd', '_blank');
window.open('https://nio.feishu.cn/wiki/TTuIwVbqui7Fx8kIoPhcQUpXnVf', '_blank');
},
UserFeedback(){
window.open('https://nio.feishu.cn/share/base/form/shrcnPUyb8w32y0S5VDyiMnPK1f', '_blank');
@@ -118,6 +118,7 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
fileSuffix = fileSuffix.toLowerCase()
if (this.Uploadable.includes(fileSuffix)) {
} else {
@@ -76,6 +76,7 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
fileSuffix = fileSuffix.toLowerCase()
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
@@ -105,7 +106,7 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
val.fileSuffix = fileSuffix
val.fileSuffix = fileSuffix.toLowerCase()
})
this.loading = false
} else {
@@ -60,13 +60,28 @@
<span class="Required">*</span>
<span class="title-text-text" :title="$t('Assessor')">{{$t('Assessor')}}</span>
</div>
<a-form-model-item class="itemModel" prop="evaluatorIdsName">
<PersonnelSelection class="box-input"
:personneQuery="formInline"
:query="{db_field_name:'evaluatorIds',db_field_txt:$t('Assessor')}"
:isInput="true"
@change="PersonnelSelectionChange"
v-model="formInline.evaluatorIdsName"/>
<!-- <a-form-model-item class="itemModel" prop="evaluatorIdsName">-->
<!-- <PersonnelSelection class="box-input"-->
<!-- :personneQuery="formInline"-->
<!-- :query="{db_field_name:'evaluatorIds',db_field_txt:$t('Assessor')}"-->
<!-- :isInput="true"-->
<!-- @change="PersonnelSelectionChange"-->
<!-- v-model="formInline.evaluatorIdsName"/>-->
<!-- </a-form-model-item>-->
<a-form-model-item class="itemModel" prop="evaluatorIds">
<a-select
mode="multiple"
class="box-input"
optionFilterProp="children"
:filter-option="filterOption"
:value="evaluatorIds"
@change='evaluatorIdsChange'
:placeholder="$t('PleaseSelect')+$t('Assessor')"
>
<a-select-option v-for="i in evaluatorIdsNameOptions" :key="i.id">
{{ i.username }}
</a-select-option>
</a-select>
</a-form-model-item>
</div>
</a-col>
@@ -124,6 +139,7 @@
</div>
</div>
<JLoading :loading="JLoading">{{this.$t('pleaseWaitWhileRunning')}}</JLoading>
<JLoading :loading="searchJLoading">{{this.$t('loading')}}</JLoading>
<uploadFile ref="uploadFile" @uploadSuccess="uploadSuccess"/>
</div>
</template>
@@ -150,13 +166,25 @@
PersonnelSelection
},
mixins:[ResizeHeader, ResizeColumnProvide],
computed: {
evaluatorIds () {
if (this.formInline.evaluatorIds && this.formInline.evaluatorIds instanceof Array) {
return this.formInline.evaluatorIds
}
if (this.formInline.evaluatorIds && typeof(this.formInline.evaluatorIds)==='string') {
return this.formInline.evaluatorIds.split(',')
}
return []
}
},
data() {
return {
title: this.$t('regulationEngineerInitiateProcess'),
//url传参严格按照当前命名
url: {
seachList: 'document/bussDocumentLibraryEO/queryCondition', //搜索字段
addModelList: '/dummy/dummyInventoryInfoEO/queryPageDummy'
addModelList: '/dummy/dummyInventoryInfoEO/queryPageDummy',
getEvaluatorList: '/project/projectLawsInventoryEO/getEvaluatorList',
},
loading: false,
JLoading: false,
@@ -181,6 +209,13 @@
trigger: 'change'
}
],
evaluatorIds: [
{
required: true,
message: this.$t('Assessor') + this.$t('cannotEmpty'),
trigger: 'change'
}
],
brands: [
{
required: true,
@@ -243,7 +278,9 @@
width: 150,
dataIndex: 'corresponding_standard'
}
]
],
evaluatorIdsNameOptions: [],
searchJLoading:false,
}
},
mounted() {
@@ -262,6 +299,28 @@
},
methods: {
...mapGetters(['userInfo']),
evaluatorIdsChange (val) {
this.formInline.evaluatorIds = val
},
getEvaluatorList () {
this.$set(this.formInline, 'evaluatorIds', [])
if (this.selectedRowKeysRecord.length === 0) {
return this.evaluatorIdsNameOptions = []
}
const query = { documentId: this.selectedRowKeysRecord[0].id }
this.searchJLoading = true
getAction(this.url.getEvaluatorList, query).then((res) => {
if (res.success) {
this.evaluatorIdsNameOptions = res.result
}
this.searchJLoading = false
})
},
filterOption(input, option) {
return (
option.componentOptions.children[0].text.toLowerCase().indexOf(input.toLowerCase()) >= 0
);
},
disabledDate(current) {
return current && current < moment().subtract(1, 'day')
},
@@ -302,6 +361,7 @@
return res.id == this.selectedRowKeys[0]
})
this.selectedRowKeysRecord = [...this.selectedRowKeysRecord]
this.getEvaluatorList()
},
clickButtonToUpload(item) {
this.$refs.uploadFile.perentHandleFunc()
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,253 @@
<template>
<a-drawer
:title="title"
:maskClosable="false"
:width="500"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<a-form>
<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('maintainer')">{{$t('maintainer')}}</span>
</div>
<a-form-model-item class="itemModel" prop="maintainerName">
<PersonnelSelection :query="{db_field_name:'maintainer',db_field_txt:$t('maintainer')}"
:personneQuery="formInline"
v-if="visible"
class="maintainerClass"
@change="PersonnelSelectionChange"
v-model="formInline.maintainerName"/>
</a-form-model-item>
</div>
</a-col>
</a-row>
</a-form-model>
</a-form>
</a-spin>
<div class="drawer-bootom-button">
<a-button style="margin-right: 8px" @click="handleCancel">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
</template>
<script>
import PersonnelSelection from '@/components/PersonnelSelection/index'
import { getAction, postAction, downloadFile, putAction } from '@/api/manage'
export default {
name: 'setupMaintainerModel',
components: {
PersonnelSelection
},
props: ['url'],
data() {
return {
formInline: {},
confirmLoading: false,
visible: false,
rules: {
maintainerName: [
{ required: true, message: this.$t('PleaseSelect') + this.$t('maintainer'), trigger: 'change' }
]
},
disabled: false,
projectNameList: [],
title: ''
}
},
mounted() {
},
methods: {
editModel(value) {
this.visible = true
this.title = this.$t('setupMaintainer')
this.$nextTick(() => {
this.formInline = JSON.parse(JSON.stringify(value))
this.$refs['ruleForm'].clearValidate()
})
},
handleCancel() {
this.visible = false
},
handleSubmit() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
let query = JSON.parse(JSON.stringify(this.formInline))
let maintainerName = query.maintainerName.split(',')
if (maintainerName.length > 30) {
this.$message.warning(this.$t('maximumOfBeSelected'))
return
}
Object.keys(query).forEach(res => {
if (query[res] && query[res] instanceof Array) {
query[res] = query[res].join(',')
}
})
this.confirmLoading = true
putAction('params/template/edit', query).then((res) => {
if (res.success) {
this.confirmLoading = false
this.$message.success(this.$t('OperationSuccessful'))
this.visible = false
this.$emit('setupMaintainerModelForm')
} else {
this.$message.warning(this.$t('operationFailed'))
this.confirmLoading = false
}
})
}
})
},
handleInput(value) {
this.$nextTick(() => {
this.formInline = { ...this.formInline }
this.$refs.ruleForm.validateField([value])
})
},
PersonnelSelectionChange(value, id) {
this.formInline[value] = id
this.formInline = { ...this.formInline }
},
projectNameChange(value) {
console.log(value)
}
}
}
</script>
<style>
.formAdd .ant-form-item-label {
width: 130px;
}
.formAdd .ant-form-item-control-wrapper {
display: inline-block;
width: 100%;
}
/*.formAdd .ant-form-item {*/
/* margin-bottom: 20px;*/
/*}*/
.itemModel .ant-form-item-control-wrapper {
width: 100%;
}
.box-input .ant-select-selection--single {
height: 38px;
}
.box-input .ant-select-selection--multiple {
height: 38px;
}
.box-input .ant-select-selection__rendered {
line-height: 38px;
height: 38px;
}
.box-input .ant-select-selection--multiple .ant-select-selection__rendered > ul > li {
margin-top: 6px;
}
.box-input .ant-calendar-picker {
line-height: 38px;
height: 38px;
}
.box-input .ant-calendar-picker-input {
height: 38px;
}
.box-input .ant-input-number-input-wrap {
line-height: 38px;
height: 38px;
}
.ant-input-disabled {
color: rgba(0, 0, 0, 0.65) !important;
}
</style>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 74px;
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: 48px;
}
.box-input {
display: inline-block;
height: 38px;
width: 100%;
}
.itemModel {
width: calc(100% - 90px);
display: inline-block;
margin-top: 2px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.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;
}
/deep/ .add-input {
min-height: 135px !important;
}
::v-deep .maintainerClass .itemModelStand-input{
height: 120px;
}
::v-deep .maintainerClass .itemModelStand-input .ant-select-selection--multiple{
min-height: 120px;
}
</style>
@@ -0,0 +1,309 @@
<template>
<a-drawer
:title="$t('syncToList')"
:maskClosable="false"
:width="1200"
placement="right"
:closable="true"
@close="handleCancel"
:visible="visible"
style="height: 100%;overflow: auto;padding-bottom: 53px;">
<a-spin :spinning="confirmLoading">
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24" class='add-padding'>
<a-col :md="7" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('title')">
<span>{{$t('title')}}</span>
</div>
<a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('title')"
v-model="queryParam.title"></a-input>
</div>
</a-col>
<span style="float: right;overflow: hidden;margin-right: 11px" class="table-page-search-submitButtons">
<a-col :md="6" :sm="24">
<a-button class="box-button" @click="searchReset">{{$t('reset')}}</a-button>
<a-button class="box-button" style="margin-left: 8px" type="primary" @click="searchQuery">{{$t('query')}}</a-button>
</a-col>
</span>
</a-row>
</a-form>
</div>
<div style="width: 100%">
<a-table
class='table-area'
ref='table'
size='middle'
rowKey='id'
:components="drag(columns,'columns')"
:columns='columns'
:dataSource='dataSource'
:pagination='false'
:loading='loading'
:scroll="{x: '100%',y:'calc(100vh - 320px)'}"
:rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}'
@change='handleTableChange'>
<span slot="paramsManifestClick" slot-scope="text,record">
<a class="textName" :title="text" @click="paramsManifestClick(record)">
{{ text && text.length > 50 ? text.slice(0, 49) + '...' : text }}
</a>
</span>
<span slot="collectionCompletionTime" slot-scope="text,record">
<span class="textName" :title="record.finishTime">
{{record.finishTime ? record.finishTime : '-'}}
</span>
</span>
</a-table>
</div>
</a-spin>
<div class="drawer-bootom-button">
<a-button style="margin-right: 8px" @click="handleCancel">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" type="primary" :loading="confirmLoading">{{$t('submit')}}</a-button>
</div>
</a-drawer>
</template>
<script>
import { getAction, postAction } from '../../../../api/manage'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
export default {
name: 'syncToList',
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
confirmLoading: false,
visible: false,
queryParam: {},
dataSource: [],
loading: false,
dataQuery: {},
selectedRowKeys: [],
columns: [
{
title: this.$t('title'),
align: 'left',
dataIndex: 'title',
width: 280,
scopedSlots: { customRender: 'paramsManifestClick' }
},
{
title: this.$t('status'),
align: 'left',
width: 100,
ellipsis: true,
sorter: true,
dataIndex: 'state'
},
{
title: this.$t('parameterTemplateName'),
align: 'left',
width: 200,
ellipsis: true,
dataIndex: 'paramsTemplateName'
},
{
title: this.$t('relatedProjectVersion'),
align: 'left',
width: 150,
ellipsis: true,
sorter: true,
dataIndex: 'projectVersion'
},
{
title: this.$t('collectionCompletionTime'),
align: 'left',
dataIndex: 'finishTime',
width: 200,
ellipsis: true,
sorter: true,
scopedSlots: { customRender: 'collectionCompletionTime' }
},
{
title: this.$t('Version'),
align: 'left',
width: 100,
ellipsis: true,
sorter: true,
dataIndex: 'version'
},
{
title: this.$t('creator'),
align: 'left',
width: 110,
ellipsis: true,
dataIndex: 'createBy'
},
{
title: this.$t('created'),
align: 'left',
width: 200,
ellipsis: true,
sorter: true,
dataIndex: 'createTime'
}
]
}
},
methods: {
getData(val) {
this.dataQuery = JSON.parse(JSON.stringify(val))
this.visible = true
this.pageNo = 1
this.queryParam = {}
this.selectedRowKeys = []
this.getlist()
},
handleCancel() {
this.visible = false
},
handleSubmit() {
if (this.selectedRowKeys && this.selectedRowKeys.length > 0) {
if (this.selectedRowKeys.length == 1) {
let dataList = []
this.selectedRowKeys.forEach(res => {
this.dataSource.forEach(val => {
if (res == val.id) {
dataList.push(val)
}
})
})
let query = {
mid: this.dataQuery.id,
cid: dataList[0].id,
version:this.dataQuery.version,
}
this.confirmLoading = true
getAction('/params/manifest/updateModel', query).then((res) => {
if (res.success) {
this.$message.success(res.message)
this.visible = false
this.confirmLoading = false
this.$emit('syncToListForm')
} else {
this.confirmLoading = false
this.$message.warning(res.message)
}
})
} else {
this.$message.warning(this.$t('OnlyOneSelected'))
}
} else {
this.$message.warning(this.$t('PleaseSelectData'))
}
},
searchQuery() {
this.pageNo = 1
this.getlist()
},
searchReset() {
this.queryParam = {}
this.pageNo = 1
this.getlist()
},
handleTableChange(pagination, filters, sorter) {
this.orderBy = sorter.order == 'ascend' ? '1' : '2'
if (sorter.columnKey == 'projectVersion') {
this.orderByField = 'project_version'
} else if (sorter.columnKey == 'finishTime') {
this.orderByField = 'finish_time'
} else if (sorter.columnKey == 'createTime') {
this.orderByField = 'create_time'
} else {
this.orderByField = sorter.columnKey
}
this.getlist()
},
onSelectChange(val) {
this.selectedRowKeys = val
},
getlist() {
this.selectedRowKeys = []
let query = {
// pageSize: this.pageSize,
// pageNo: this.pageNo,
orderBy: this.orderBy,
orderByField: this.orderByField,
...this.queryParam
}
this.loading = true
getAction('params/manifest/page', query).then((res) => {
if (res.success) {
this.total = res.result.total
this.dataSource = res.result.records || []
this.loading = false
} else {
this.loading = false
}
})
}
}
}
</script>
<style scoped>
.box-title-text {
line-height: 1.4;
display: flex;
/*align-items: center;*/
}
.title-text {
width: 94px;
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% - 110px);
display: inline-block;
margin-top: 2px;
}
.Required {
color: red;
margin-right: 4px;
}
.title-text-text {
margin-top: 9px;
}
.formAdd {
margin-bottom: 40px;
}
.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;
}
/deep/ .add-input {
min-height: 135px !important;
}
</style>
File diff suppressed because it is too large Load Diff
@@ -44,13 +44,15 @@
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:columns="columns"
>
<!-- <span slot="projectName" slot-scope="text,record" :title="text">-->
<!-- {{ text && text.length > 20 ? text.slice(0, 19) + '...' : text }}-->
<!-- </span>-->
<!-- <span slot="projectName" slot-scope="text,record" :title="text">-->
<!-- {{ text && text.length > 20 ? text.slice(0, 19) + '...' : text }}-->
<!-- </span>-->
<span slot="operation" slot-scope="text,record">
<a class="text-operation" @click="handlecody(record)" v-has="'params:report:history'">{{$t('Exporthistory')}}</a>
<a class="text-operation" @click="deleteLib(record)" v-has="'report:detail:list'">{{$t('See')}}</a>
<a class="action-delete" @click="onDelete(record)" v-has="'params:report:delete'">{{$t('delete')}}</a>
<a class="action-delete" @click="onDelete(record)"
:disabled="record.authorityFlag == '1' ? true : false"
v-has="'params:report:delete'">{{$t('delete')}}</a>
</span>
</a-table>
</div>
@@ -68,7 +70,8 @@
</div>
<!-- 导出历史模板-->
<a-modal class="show-drawer" :title="titleTag" width="900px" v-model="drawerVisible" :footer="null">
<export-history v-if='drawerVisible' @areaVisible='drawerVisible = false' :paramsManifestId='paramsManifestId'></export-history>
<export-history v-if='drawerVisible' @areaVisible='drawerVisible = false'
:paramsManifestId='paramsManifestId'></export-history>
</a-modal>
<!-- 删除-->
<a-modal class="show-drawer" :title="titleDelete" width="500px" v-model="deleteVisible" :footer="null">
@@ -81,7 +84,8 @@
<span>{{$t('reportedDelete')}}&nbsp;<span style="font-weight: bold">{{ this.deleteformtltle }}</span>&nbsp;{{$t('reportDelete')}}</span>
</div>
<div class="title-text">
<span class="title-text-text">{{$t('pleaseEnter')}}&nbsp;<span style="color: #BD3B1E;background-color: #F9E5E1">{{ this.deleteformtltle }}</span>&nbsp;{{$t('toConfirmed')}}</span>
<span class="title-text-text">{{$t('pleaseEnter')}}&nbsp;<span
style="color: #BD3B1E;background-color: #F9E5E1">{{ this.deleteformtltle }}</span>&nbsp;{{$t('toConfirmed')}}</span>
</div>
<div class="box-title-text">
<a-form-model-item class="itemModel" prop="paramsTemplateName">
@@ -118,16 +122,16 @@
components: {
ExportHistory
},
mixins:[ResizeHeader, ResizeColumnProvide],
mixins: [ResizeHeader, ResizeColumnProvide],
data() {
return {
token: Vue.ls.get(ACCESS_TOKEN),
loading: false,
toggleSearchStatus: false,
deleteVisible:false,
titleDelete:this.$t('Deletetitle'),
deleteVisible: false,
titleDelete: this.$t('Deletetitle'),
selectedRowKeys: [],
paramsManifestId:'',
paramsManifestId: '',
selectedRowKeysArray: '',
formInline: {},
orderBy: '1',
@@ -138,16 +142,16 @@
]
},
rules1: {
paramsTemplateName:[
{ required: true, message: this.$t('PleaseEnter')+this.$t('title'), trigger: 'change' },
{ min:1, max: 200, message: this.$t('cantExeed')+'200'+this.$t('characters'), trigger: 'blur' },
],
paramsTemplateName: [
{ required: true, message: this.$t('PleaseEnter') + this.$t('title'), trigger: 'change' },
{ min: 1, max: 200, message: this.$t('cantExeed') + '200' + this.$t('characters'), trigger: 'blur' }
]
},
disabled: false,
projectNameList: [],
visible: false,
dataSource: [],
deleteformtltle:'',
deleteformtltle: '',
confirmLoading: false,
url: {
list: 'params/report/page'
@@ -162,14 +166,14 @@
align: 'left',
width: 300,
dataIndex: 'projectName',
sorter:true,
sorter: true,
scopedSlots: { customRender: 'projectName' }
},
{
title: this.$t('ListTitle'),
align: 'left',
width: 400,
dataIndex: 'title',
dataIndex: 'title'
},
{
title: this.$t('Version'),
@@ -186,7 +190,7 @@
}
],
queryParam: {},
deleteform:{},
deleteform: {},
areaVisible: false,
paramsTemplateName: '',
drawerVisible: false,
@@ -204,7 +208,7 @@
handleSubmit() {
this.$refs.ruleForm.validate(valid => {
if (valid) {
if(this.formInline.paramsTemplateName === this.deleteform.title){
if (this.formInline.paramsTemplateName === this.deleteform.title) {
getAction('/params/report/delete', {
id: this.deleteform.id
}).then((res) => {
@@ -216,7 +220,7 @@
this.$message.warning(res.message)
}
})
}else{
} else {
this.$message.warning(this.$t('confirmtitle'))
}
@@ -289,7 +293,7 @@
this.deleteformtltle = val.title
this.formInline = {}
this.deleteVisible = true
this.titleDelete = this.$t('Deletetitle') + "'" + val.title + "'" + '?'
this.titleDelete = this.$t('Deletetitle') + '\'' + val.title + '\'' + '?'
// let param = {
// id: val.id
// }
@@ -315,9 +319,9 @@
},
tableOnChange(pagination, filters, sorter) {
this.orderBy = sorter.order == 'ascend' ? '1' : '2'
if(sorter.columnKey == 'projectName') {
if (sorter.columnKey == 'projectName') {
this.orderByField = 'pageName'
} else{
} else {
this.orderByField = sorter.columnKey
}
this.getList()
@@ -375,20 +379,22 @@
overflow: hidden;
text-overflow: ellipsis;
}
.titletext{
width: 460px;
min-width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 16px;
/*margin-right: 16px;*/
/*margin-top: 3px;*/
/*text-align: right;*/
/*white-space: nowrap;*/
overflow: hidden;
text-overflow: ellipsis;
}
.titletext {
width: 460px;
min-width: 110px;
color: #000F16;
display: inline-block;
font-weight: 500;
font-size: 16px;
/*margin-right: 16px;*/
/*margin-top: 3px;*/
/*text-align: right;*/
/*white-space: nowrap;*/
overflow: hidden;
text-overflow: ellipsis;
}
.box-input {
display: inline-block;
width: 213%;
@@ -476,26 +482,29 @@
.add-text-text {
margin-top: -14px;
}
::v-deep .ant-table-row:first-child {
background: #fff!important;
background: #fff !important;
opacity: 0.9;
}
/deep/.ant-modal-title{
/deep/ .ant-modal-title {
font-weight: bold;
font-size: 18px;
letter-spacing: 1px;
}
::v-deep .ant-table-body {
background: transparent!important;
background: transparent !important;
}
::v-deep .ant-table-row-cell-break-word{
::v-deep .ant-table-row-cell-break-word {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
::v-deep .ant-table-placeholder{
::v-deep .ant-table-placeholder {
margin-top: 8px !important
}
</style>
@@ -43,34 +43,34 @@
</div>
</a-col>
<template v-if="toggleSearchStatus">
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('dre')">
<span>{{$t('dre')}}</span>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('dre')">
<span>{{$t('dre')}}</span>
</div>
<PersonnelSelection
:query="{db_field_name:'dre',db_field_txt:$t('dre')}"
:isInput="true"
class="box-input"
:personneQuery="formInline"
@change="PersonnelSelectionChange"
v-model="formInline.dreName"/>
</div>
<PersonnelSelection
:query="{db_field_name:'dre',db_field_txt:$t('dre')}"
:isInput="true"
class="box-input"
:personneQuery="formInline"
@change="PersonnelSelectionChange"
v-model="formInline.dreName"/>
</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>
</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>
<PersonnelSelection
:query="{db_field_name:'sdt',db_field_txt:$t('sdt')}"
:isInput="true"
class="box-input"
:personneQuery="formInline"
@change="PersonnelSelectionChange"
v-model="formInline.sdtName"/>
</div>
<PersonnelSelection
:query="{db_field_name:'sdt',db_field_txt:$t('sdt')}"
:isInput="true"
class="box-input"
:personneQuery="formInline"
@change="PersonnelSelectionChange"
v-model="formInline.sdtName"/>
</div>
</a-col>
</a-col>
<a-col :md="6" :sm="8">
<div class="box-title-text">
<div class="title-text" :title="$t('NareaOfResponsibility')">
@@ -87,13 +87,14 @@
<div class="title-text" :title="$t('Required')">
<span>{{$t('Required')}}</span>
</div>
<!-- <j-multi-select-tag class="box-input" v-model="formInline.isMust"-->
<!-- :placeholder="$t('PleaseSelect')+$t('Required')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
<!-- <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('Required')"-->
<!-- v-model="formInline.isMust"></a-input>-->
<a-select class="box-input" v-model="formInline.isMust" :placeholder="$t('PleaseSelect')+$t('Required')">
<!-- <j-multi-select-tag class="box-input" v-model="formInline.isMust"-->
<!-- :placeholder="$t('PleaseSelect')+$t('Required')"-->
<!-- :type="'select'"-->
<!-- :triggerChange="false" :dictCode="'duty_territory'"/>-->
<!-- <a-input class="box-input" :placeholder="$t('PleaseEnter')+$t('Required')"-->
<!-- v-model="formInline.isMust"></a-input>-->
<a-select class="box-input" v-model="formInline.isMust"
:placeholder="$t('PleaseSelect')+$t('Required')">
<a-select-option :value="'1'">
{{$t('yes')}}
</a-select-option>
@@ -120,7 +121,9 @@
</div>
<div class="table-operator">
<!-- 保存-->
<div @click="handlePreservation" class="operator-text" v-has="'report:detail:export:save'">
<div @click="handlePreservation" class="operator-text"
v-if="$route.query.authorityFlag == '0'"
v-has="'report:detail:export:save'">
<a-icon type="check-circle"/>
{{$t('preservation')}}
</div>
@@ -145,9 +148,9 @@
{{$t('CustomExport')}}
</div>
<!-- 列表设置-->
<!-- v-if="!this.$route.query.it"-->
<a-popconfirm :visible="customizevisible" overlayClassName="popconfirmClassName"
placement="bottomRight" >
<!-- v-if="!this.$route.query.it"-->
<a-popconfirm :visible="customizevisible" overlayClassName="managePopconfirmClassName"
placement="bottomRight">
<template slot="title" id="popconfirmmize">
<div style="max-height:360px;overflow:scroll;overflow-x: auto;width: 211px">
<a-checkbox
@@ -334,19 +337,19 @@
</template>
<script>
import { deleteAction, downloadFile, getAction, postAction } from '../../../api/manage'
import { deleteAction, downloadFile, getAction, postAction } from '../../../api/manage'
import axios from 'axios'
import TableCollection from '@/components/tableCollection/index1'
import conventionalModel from './commponts/conventionalmodle'
import customelModel from './commponts/customexportmodle'
import { ACCESS_TOKEN } from '@/store/mutation-types'
import PersonnelSelection from '@/components/PersonnelSelection/index'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
import Vue from 'vue'
export default {
name: 'managementdetails',
mixins:[ResizeHeader, ResizeColumnProvide],
mixins: [ResizeHeader, ResizeColumnProvide],
components: {
conventionalModel,
customelModel,
@@ -370,7 +373,7 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
title: this.$t('status'),
align: 'left',
dataIndex: 'stateText',
width: 120,
width: 120
},
{
title: this.$t('Exporttime'),
@@ -386,10 +389,10 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
scopedSlots: { customRender: 'operation' }
}
],
dataSourceexport:[],
dataSourceexport: [],
exportvisible: false,
confirmLoading:false,
ExportFailed:false,
confirmLoading: false,
ExportFailed: false,
dataExportFailed: false, // 数据失败的弹框
dataExportformInline: {},
dataExportrules: {
@@ -461,14 +464,14 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
NotSelectedRowKeysValue: [],
NoEngineer: 1, // 下发收集的权限,0为没有接口人 1为由接口人 默认有
NotSelectedNoEngineerValue: [],
statuList:[],
statuList: [],
paramsManifest: {},
customizevisible: false,
indeterminate: false,
checkAll: false,
selectedValue: [],
checkedList: ['nio_number', 'params_name', 'operation'],
customizeList:[],
customizeList: []
// customizeList: [
// {
// sort: '1',
@@ -579,15 +582,15 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
},
methods: {
// 导出列表
Derivedlist(){
Derivedlist() {
this.pageNohistory = 1
this.exportvisible = true
this.expoteList()
},
exportdata(item){
exportdata(item) {
downloadFile('/sys/common/downLoadFile', item.fileName, { id: item.fileId })
},
exportdelete(item){
exportdelete(item) {
this.$confirm({
title: this.$t('confirmDeletion'),
content: '',
@@ -636,10 +639,10 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
}
})
},
exportok(){
exportok() {
this.exportvisible = false
},
exportvisiblecancel(){
exportvisiblecancel() {
this.exportvisible = false
},
onCheckAllChange(e) {
@@ -648,7 +651,7 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
this.selectedValue = this.checkedList
this.indeterminate = false
},
getcustomizeList(item){
getcustomizeList(item) {
let params = {
paramsManifestId: this.$route.query.id,
flag: '8'
@@ -657,17 +660,17 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
if (res.success) {
let List = []
let sList = []
res.result.forEach((item,index) => {
if(!item.type){
if(item.headFieldCn == '操作'){
res.result.forEach((item, index) => {
if (!item.type) {
if (item.headFieldCn == '操作') {
item.field = 'operation'
item.disabled = true
}else if(item.headFieldCn == 'NIO编号' || item.headFieldCn == '参数名称'){
} else if (item.headFieldCn == 'NIO编号' || item.headFieldCn == '参数名称') {
item.disabled = true
}
List.push(item)
}
if(item.type) {
if (item.type) {
sList.push(item)
}
})
@@ -675,7 +678,7 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
this.statuList = sList
}
})
if(item){
if (item) {
console.log(item)
this.checkedList = item
}
@@ -824,7 +827,7 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
for (let i = 0; i < selectedRowKeysValue.length; i++) {
configDataList.push({
id: selectedRowKeysValue[i].id,
remarks:selectedRowKeysValue[i].remarks
remarks: selectedRowKeysValue[i].remarks
})
if (selectedRowKeysValue[i].configIds && selectedRowKeysValue[i].configIds.length > 0) {
for (let j = 0; j < selectedRowKeysValue[i].configIds.length; j++) {
@@ -947,10 +950,10 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
paramsManifestId: this.$route.query.id,
cut: this.cut,
// userTypes: this.currentPersonRole,
ids:this.selectedRowKeys.join(','),
ids: this.selectedRowKeys.join(','),
...this.formInline,
exportOption: this.dataExportformInline.exportOption,
exportName: this.$route.query.projectName + '(' + this.$route.query.title + ')' +'-'+ this.$route.query.version,
exportName: this.$route.query.projectName + '(' + this.$route.query.title + ')' + '-' + this.$route.query.version
}
// let name = this.$route.query.projectName + '(' + this.$route.query.title + ')' + '.zip'
// downloadFile('/report/detail/exportGeneral', name, query, this.selectClear)
@@ -965,10 +968,10 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
}
})
},
exportsubmit(){
exportsubmit() {
this.ExportFailed = false
},
exportcancel(){
exportcancel() {
this.ExportFailed = false
},
handleCancel() {
@@ -1137,6 +1140,7 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
text-align: right;
margin-top: 20px;
}
.customize-text {
/*height: 1533px;*/
display: flex;
@@ -1151,6 +1155,7 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
color: #040B29;
margin-bottom: 22px;
}
.drawer-bootom-button {
position: absolute;
bottom: 0;
@@ -1163,6 +1168,7 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
background: #fff;
border-radius: 0 0 2px 2px;
}
.ant-table-placeholder {
padding: 0;
border-top: none;
@@ -1171,9 +1177,11 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
.itemModelComment .ant-form-item-control-wrapper {
width: 100% !important;
}
.second {
padding: 0 !important;
}
.operator-text-left {
font-size: 14px;
margin-right: 20px;
@@ -1228,48 +1236,52 @@ import { ResizeHeader, ResizeColumnProvide } from '@/mixins/header'
}
</style>
<style lang="less" scoped>
/deep/.popconfirmClassName {
z-index: 999;
width: 264px
}
.popconfirmClassName .ant-popover-buttons {
display: none !important;
}
::v-deep .ant-table-fixed-header .ant-table-body-inner {
overflow: visible;
}
.popconfirmClassName .anticon-exclamation-circle {
display: none !important;
}
::v-deep .ant-table-fixed-header .ant-table-body-inner {
overflow: visible;
}
popconfirmmize {
z-index: 999;
}
.popconfirmmize {
z-index: 999;
}
::v-deep .popconfirmmize .ant-popover-buttons {
display: none !important;
}
::v-deep .popconfirmmize .ant-popover-buttons {
display: none !important;
}
.popconfirmmize .anticon-exclamation-circle {
display: none !important;
}
.popconfirmmize .anticon-exclamation-circle {
display: none !important;
}
.popconfirmmize .ant-popover-message {
padding: 4px 0 36px !important;
}
::v-deep .ant-popover-buttons {
display: none !important;
}
.popconfirmmize .ant-popover-message {
padding: 4px 0 36px !important;
}
.itemModel {
width: 100%;
display: inline-block;
margin-top: 2px;
}
::v-deep .ant-popover-buttons {
display: none !important;
}
.itemModel {
width: 100%;
display: inline-block;
margin-top: 2px;
}
</style>
<style lang='less'>
.popconfirmClassName .ant-popover-message-title {
margin-bottom: 50px;
}
.managePopconfirmClassName .ant-popover-message-title {
margin-bottom: 50px;
}
.managePopconfirmClassName {
z-index: 999;
width: 264px
}
.managePopconfirmClassName .ant-popover-buttons {
display: none !important;
}
.managePopconfirmClassName .anticon-exclamation-circle {
display: none !important;
}
</style>
@@ -41,8 +41,9 @@
</a-row>
</a-form>
</div>
<div class="table-operator" v-if="$route.query.titleNameDesgin == 'maintenance'">
<div @click="handleAdd" class="operator-text" v-has="'params:paramsInfo:add'">
<div class="table-operator" >
<div @click="handleAdd" v-if="$route.query.titleNameDesgin == 'maintenance'"
class="operator-text" v-has="'params:paramsInfo:add'">
<a-icon type="plus"/>
{{$t('newlyAdded')}}
</div>
@@ -50,18 +51,24 @@
<a-icon type="export" :rotate="-90"/>
{{$t('dataExport')}}
</div>
<div @click="handleModule" class="operator-text" v-has="'params:paramsInfo:template'">
<div @click="handleModule" class="operator-text"
v-if="$route.query.titleNameDesgin == 'maintenance'"
v-has="'params:paramsInfo:template'">
<a-icon type="download"/>
{{$t('templateDownload')}}
</div>
<div class="operator-text" v-has="'params:paramsInfo:import'">
<div class="operator-text"
v-if="$route.query.titleNameDesgin == 'maintenance'"
v-has="'params:paramsInfo:import'">
<ImportFileOnlyList :url="url" :isTrue="false" :accept="'.zip'" :paramsTemplateId='this.$route.query.id' @getList='getList'/>
</div>
<!-- <div @click="releaseVersion" class="operator-text" v-has="'params:paramsInfo:publish'">-->
<!-- <a-icon type="rocket"/>-->
<!-- {{$t('releaseVersion')}}-->
<!-- </div>-->
<div @click="handleDel" class="operator-text" v-has="'params:paramsInfo:deleteBatch'">
<div @click="handleDel"
v-if="$route.query.titleNameDesgin == 'maintenance'"
class="operator-text" v-has="'params:paramsInfo:deleteBatch'">
<a-icon type="delete"/>
{{$t('BatchDelete')}}
</div>
File diff suppressed because it is too large Load Diff
@@ -13,7 +13,8 @@
<!-- </div>-->
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
<template slot="title">
<span>{{ val.name }}</span>
<div>{{ val.name }}</div>
<span>{{ val.time.slice(0, 11) }}</span>
</template>
<img v-if="val.status == 1" src="../../../assets/heiTop.png" class="process-content-left"
alt="">
@@ -33,7 +34,8 @@
</div>
<a-tooltip placement="topLeft" overlayClassName="tooltipColor">
<template slot="title">
<span>{{ val.name }}</span>
<div>{{ val.name }}</div>
<span>{{ val.time.slice(0, 11) }}</span>
</template>
<img v-if="val.status == 1" src="../../../assets/huiBottom.png" class="process-content-left"
alt="">
@@ -438,7 +438,7 @@
<!-- </div>-->
</div>
<listAddModel :url="url" @addModelList="addModelList" ref="addModelRef"/>
<listEditModel :url="url" @editModelList="addModelList" ref="editModelRef"/>
<listEditModel :url="url" @editModelList="editModelList" ref="editModelRef"/>
<batSetting :url="url" @batSettingList="addModelList" ref="batSettingRef"/>
<transferList :url="url" @transferListForm="transferListForm" ref="transferListRef"/>
<associatedplat :url="url" @associatedplatForm="associatedplatForm" ref="associatedplatRef"/>
@@ -1407,13 +1407,13 @@
{
type: 'deliverables',
value: 'designDeliverableType',
text: this.$t('designaconformancedeliverabletype'),
text: this.$t('designaconformancedeliverabletype')
},
{
type: 'deliverables',
value: 'verifyDeliverableType',
text: this.$t('verifytheconformancedeliverabletype'),
},
text: this.$t('verifytheconformancedeliverabletype')
}
// {
// type: 'Personnel',
// value: 'designDutyId',
@@ -1955,8 +1955,17 @@
handleExport() {
let roleCodeIndex = this.roleSwitchingCode
let selectedRowKeys = JSON.parse(JSON.stringify(this.selectedRowKeys))
let queryParam = JSON.parse(JSON.stringify(this.queryParam))
Object.keys(queryParam).forEach(val => {
if (queryParam[val] instanceof Array) {
queryParam[val] = queryParam[val].join(',')
}
})
if (queryParam.dutyTerritory) {
queryParam.dutyTerritory = '*' + queryParam.dutyTerritory + '*'
}
let query = {
...this.queryParam,
...queryParam,
ids: selectedRowKeys.join(','),
...this.queryParamQuery,
roleCode: roleCodeIndex,
@@ -2675,6 +2684,10 @@
this.pageNo = 1
this.getList()
},
editModelList(){
this.selectedRowKeys = []
this.getList()
},
customizeListForm(val) {
this.getHeader()
},
@@ -3373,7 +3386,7 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
val.fileSuffix = fileSuffix
val.fileSuffix = fileSuffix.toLowerCase()
})
this.loading = false
} else {
@@ -3441,6 +3454,7 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
fileSuffix = fileSuffix.toLowerCase()
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id + '&userName=' + this.userInfo().username))
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
@@ -210,6 +210,7 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
fileSuffix = fileSuffix.toLowerCase()
if (fileSuffix === '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
} else if (fileSuffix === '.docx' || fileSuffix === '.doc') {
@@ -312,7 +312,7 @@
let postDate = {
paramsReportId: this.selectedRowKeys[0],
paramsReportConfigId: this.selectedRowKeysDate[0].configure,
paramsReportConfigName:this.paramsReportConfigName,
paramsReportConfigName:this.selectedRowKeysDate[0].projectNameAll + ' ' + this.paramsReportConfigName,
paramsManifestId:this.$route.query.id,
}
//新增
@@ -509,6 +509,7 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
fileSuffix = fileSuffix.toLowerCase()
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + fileQuery.id+'&userName='+this.userInfo().username))
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
@@ -529,6 +530,7 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
fileSuffix = fileSuffix.toLowerCase()
if (fileSuffix == '.pdf') {
window.open('/pdf/web/viewer.html?file=' + encodeURIComponent('/jero-boot/sys/common/pdf/viewFile?id=' + id+'&userName='+this.userInfo().username))
} else if (fileSuffix == '.docx' || fileSuffix == '.doc') {
@@ -571,7 +573,7 @@
let index1 = fileName.lastIndexOf('.')
let index2 = fileName.length
let fileSuffix = fileName.substring(index1, index2)
val.fileSuffix = fileSuffix
val.fileSuffix = fileSuffix.toLowerCase()
})
this.loading = false
} else {
@@ -301,6 +301,7 @@
align: 'left',
dataIndex: 'problemPriority_dictText',
width: 120,
sorter:true,
ellipsis: true,
},
{
@@ -432,7 +433,12 @@
},
tableOnChange(pagination, filters, sorter) {
this.orderBy = sorter.order == 'ascend' ? '1' : '2'
this.orderByField = sorter.columnKey
if (sorter.columnKey == 'problemPriority_dictText'){
this.orderByField = 'problemPriority'
}else{
this.orderByField = sorter.columnKey
}
this.getList()
},
getList() {
@@ -457,6 +457,7 @@
</a-row>
</a-form-model>
</a-spin>
<viewImg ref="viewImgRef"/>
<div class="drawer-bootom-button">
<a-button style="margin-right: 8px" @click="handleCancel">{{$t('cancel')}}</a-button>
<a-button @click="handleSubmit" v-if="!disabled" type="primary" :loading="confirmLoading">{{$t('submit')}}
@@ -619,9 +620,6 @@
]
},
formInline: {
fileLinkList: [{}],
progressTrackingList: [],
approvalEvidenceLinkList: [{}],
dutyTerritory: undefined,
projectId: undefined,
problemState: undefined
@@ -798,19 +796,21 @@
if (this.formInline.problemState == null) {
this.formInline.problemState = undefined
}
if (this.formInline.progressTrackingList == null) {
if (!this.formInline.progressTrackingList) {
this.formInline.progressTrackingList = []
} else {
this.formInline.progressTrackingList.forEach(val => {
val.isDescription = true
})
}
if (this.formInline.approvalEvidenceLinkList == null) {
if (!this.formInline.approvalEvidenceLinkList || (this.formInline.approvalEvidenceLinkList && this.formInline.approvalEvidenceLinkList.length == 0)) {
this.formInline.approvalEvidenceLinkList = [{}]
}
if (this.formInline.fileLinkList == null) {
if (!this.formInline.fileLinkList || (this.formInline.fileLinkList && this.formInline.fileLinkList.length == 0)) {
this.formInline.fileLinkList = [{}]
}
this.formInline = {...this.formInline}
console.log(this.formInline)
this.visible = true
this.disabled = false
this.templateDisabled = true
@@ -1057,14 +1057,14 @@
},
progressTrackingOpenClick(e) {
if (e.target.localName == 'img') {
ImagePreview(
{
images: [
e.target.currentSrc
],
closeable: true
})
// this.$refs.viewImgRef.getData(e.target.currentSrc)
// ImagePreview(
// {
// images: [
// e.target.currentSrc
// ],
// closeable: true
// })
this.$refs.viewImgRef.getData(e.target.currentSrc)
}
}
}
@@ -229,11 +229,12 @@
</a-row>
</a-form-model>
</a-spin>
<viewImg ref="viewImgRef"/>
<div class="drawer-bootom-button">
<a-button style="margin-right: 8px" @click="handleCancel">{{$t('close')}}</a-button>
</div>
</a-drawer>
<viewImg ref="viewImgRef"/>
</div>
</template>
@@ -427,14 +428,14 @@
},
progressTrackingOpenClick(e) {
if (e.target.localName == 'img') {
ImagePreview(
{
images: [
e.target.currentSrc
],
closeable: true
})
// this.$refs.viewImgRef.getData(e.target.currentSrc)
// ImagePreview(
// {
// images: [
// e.target.currentSrc
// ],
// closeable: true
// })
this.$refs.viewImgRef.getData(e.target.currentSrc)
}
},
openClick(item) {
@@ -1,17 +1,17 @@
<template>
<a-modal
:title="$t('view')"
:width="800"
:visible="visible"
:maskClosable="false"
:footer="null"
@cancel="Cancel"
>
<div class="viewImgBox">
<img class="viewImg" :src="srcUrl" alt="">
</div>
</a-modal>
<div v-if="visible"
@mousewheel="rollImg($event)"
@mousedown="moveBox"
@mouseup="upBox"
class="imgBox left">
<div class="imgBoxBox"></div>
<img ref="bigImage"
id="pic"
@mousedown="move"
class="viewImg" :src="srcUrl" alt="">
</div>
</template>
<script>
@@ -20,7 +20,16 @@
data() {
return {
visible: false,
srcUrl: ''
srcUrl: '',
zoomD: 1,
x: 0,
y: 0,
startx: '',
starty: '',
endx: 0,
endy: 0,
firstTime: '',
lastTime: ''
}
},
methods: {
@@ -28,8 +37,71 @@
this.visible = false
},
getData(val) {
this.zoomD = 1
this.srcUrl = val
this.visible = true
},
//
large() {
this.$nextTick(() => {
this.zoomD += 0.10
document.querySelector('.viewImg').style.transform = `matrix(${this.zoomD}, 0, 0,${this.zoomD}, 0, 0)`
})
},
//
Small() {
this.$nextTick(() => {
if (this.zoomD > 0.2) {
this.zoomD -= 0.10
}
document.querySelector('.viewImg').style.transform = `matrix(${this.zoomD}, 0, 0, ${this.zoomD}, 0, 0)`
})
},
rollImg(e) {
let direction = e.deltaY > 0 ? 'down' : 'up'
if (direction === 'up') {
// 滑轮向上滚动
this.large()
} else {
// 滑轮向下滚动
this.Small()
}
},
//移动demo
move(e) {
e.preventDefault()
// 获取元素
var personBox = document.querySelector('.left')
var img = document.querySelector('.viewImg')
var x = e.pageX - img.offsetLeft
var y = e.pageY - img.offsetTop
// 添加鼠标移动事件
personBox.addEventListener('mousemove', move)
function move(e) {
img.style.left = e.pageX - x + 'px'
img.style.top = e.pageY - y + 'px'
}
// 添加鼠标抬起事件鼠标抬起将事件移除
img.addEventListener('mouseup', function() {
personBox.removeEventListener('mousemove', move)
})
// 鼠标离开父级元素把事件移除
personBox.addEventListener('mouseout', function() {
personBox.removeEventListener('mousemove', move)
})
},
moveBox() {
this.firstTime = new Date().getTime()
},
upBox() {
this.lastTime = new Date().getTime()
if (this.lastTime - this.firstTime < 200) {
this.visible = false
}
}
}
}
@@ -42,6 +114,39 @@
}
.viewImg {
width: auto;
z-index: 1000;
position: absolute;
}
.imgBox {
width: 100%;
height: 100%;
display: flex;
align-items: center;
justify-content: center;
position: fixed;
top: 0;
left: 0;
z-index: 1000;
}
::v-deep .ant-modal-body {
padding: 0 !important;
}
::v-deep .ant-modal-close {
display: none;
}
.imgBoxBox {
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
background: #000;
opacity: 0.5;
z-index: 1000;
}
</style>