Merge remote-tracking branch 'origin/dev_2nd_period_test' into dev_2nd_period_test
This commit is contained in:
@@ -18,3 +18,7 @@ ALTER TABLE `laws_weilai`.`params_manifest`
|
||||
ADD COLUMN `project_version` varchar(255) NULL COMMENT '相关项目版本' AFTER `params_template_name`,
|
||||
ADD COLUMN `explanation` varchar(2000) NULL COMMENT '说明' AFTER `project_version`;
|
||||
|
||||
-- 项目库修改认证软件版本字段长度---------2022-11-01 未同步生产环境
|
||||
ALTER TABLE `laws_weilai`.`project_library_base`
|
||||
MODIFY COLUMN `software_version` varchar(500) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '软件版本' AFTER `explanation`;
|
||||
|
||||
|
||||
+2
@@ -161,6 +161,8 @@ public class ShiroConfig {
|
||||
filterChainDefinitionMap.put("/lark/larkCardMessageConfig", "anon"); //飞书调用接口,卡片消息配置。
|
||||
filterChainDefinitionMap.put("/sys/user/querySysUserListByIdList", "anon"); // 工作流根据用户idList获取用户信息接口
|
||||
filterChainDefinitionMap.put("/project/projectTaskInventoryConditionAssessmentEO/initConditionAssessment", "anon"); // 初始化项目当前状态数据接口
|
||||
filterChainDefinitionMap.put("/todoCenter/projectProcess/initHistoryData", "anon"); // 待办中心-初始化历史数据接口排除
|
||||
filterChainDefinitionMap.put("/project/projectTaskInventoryEO/disposeHistoryData", "anon"); // 项目库-任务清单 处理历史数据接口
|
||||
|
||||
// 添加自己的过滤器并且取名为jwt
|
||||
Map<String, Filter> filterMap = new HashMap<String, Filter>(1);
|
||||
|
||||
+3
-3
@@ -158,11 +158,11 @@ public class CommonController {
|
||||
// bizPath = "";
|
||||
// }
|
||||
}
|
||||
if(file.getOriginalFilename().length()>70){
|
||||
if(file.getOriginalFilename().length()>100){
|
||||
if(StringUtils.equals(cut,CutEnum.CN.getValue())){
|
||||
throw new JeroBootException("文件名长度不能超过70位,请检查!");
|
||||
throw new JeroBootException("文件名长度不能超过100位,请检查!");
|
||||
}else if(StringUtils.equals(cut,CutEnum.EN.getValue())){
|
||||
throw new JeroBootException("File name length cannot exceed 70 characters, please check!");
|
||||
throw new JeroBootException("File name length cannot exceed 100 characters, please check!");
|
||||
}
|
||||
}
|
||||
// OSSFile oSSFile = ossFileService.uploadLocal(file, bizPath,state,cut);
|
||||
|
||||
+2
@@ -4,6 +4,8 @@ public enum RoleEnum {
|
||||
ADMIN_ID("R&H Manager","R&H Manager","manager","1534020391015444481",2),
|
||||
MANAGER_ID("系统管理员","Administrator","admin","f6817f48af4fb3af11b9e8bf182f618b",3),
|
||||
COUNTRU_CARD_MANAGE("countryCard管理员","countryCardManage","countryCardManage","1564916346120916993",4),
|
||||
ENGINEERING_INTERFACE_PERSON("工程接口人","engineeringInterfacePerson","engineeringInterfacePerson","1534020084667674626",5),
|
||||
ENGINEER("工程师","engineer","engineer","1534020318437208065",6),
|
||||
;
|
||||
|
||||
String name;
|
||||
|
||||
+13
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.common.system.vo.SysUserCacheInfo;
|
||||
import com.jero.modules.system.entity.PPEmployee;
|
||||
import com.jero.modules.system.entity.SysRole;
|
||||
@@ -276,4 +277,16 @@ public interface ISysUserService extends IService<SysUser> {
|
||||
* @return
|
||||
*/
|
||||
boolean isAdministrator();
|
||||
|
||||
/**
|
||||
* 验证当前登录用户是否是工程接口人角色
|
||||
* @return
|
||||
*/
|
||||
boolean isEngineeringInterfacePerson(LoginUser currentUser);
|
||||
|
||||
/**
|
||||
* 验证当前登录用户是否是工程师角色
|
||||
* @return
|
||||
*/
|
||||
boolean isEngineer(LoginUser currentUser);
|
||||
}
|
||||
|
||||
+42
@@ -614,4 +614,46 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEngineeringInterfacePerson(LoginUser currentUser) {
|
||||
boolean result = false;
|
||||
RoleEnum engineeringInterfacePerson = RoleEnum.ENGINEERING_INTERFACE_PERSON;
|
||||
List<SysUserRole> userRoleList = this.sysUserRoleMapper.selectList(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, currentUser.getId()));
|
||||
if(CollectionUtils.isNotEmpty(userRoleList)){
|
||||
List<SysUserRole> userRoles = userRoleList.stream().filter(userRole -> {
|
||||
boolean flag = false;
|
||||
if(StringUtils.equals(userRole.getRoleId(),engineeringInterfacePerson.getId())){
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isNotEmpty(userRoles)){
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEngineer(LoginUser currentUser) {
|
||||
boolean result = false;
|
||||
RoleEnum engineer = RoleEnum.ENGINEER;
|
||||
List<SysUserRole> userRoleList = this.sysUserRoleMapper.selectList(new QueryWrapper<SysUserRole>().lambda().eq(SysUserRole::getUserId, currentUser.getId()));
|
||||
if(CollectionUtils.isNotEmpty(userRoleList)){
|
||||
List<SysUserRole> userRoles = userRoleList.stream().filter(userRole -> {
|
||||
boolean flag = false;
|
||||
if(StringUtils.equals(userRole.getRoleId(),engineer.getId())){
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isNotEmpty(userRoles)){
|
||||
result = true;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
+121
-49
@@ -2456,13 +2456,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
if (StringUtils.isNotEmpty(paramsCollectManifestVO.getExportName())) {
|
||||
fileOriName = paramsCollectManifestVO.getExportName();
|
||||
}
|
||||
//创建临时文件夹
|
||||
String fileNowPath = uploadpath + "/tempZip/" + UUID.randomUUID().toString().replace("-","") + File.separator + fileOriName;
|
||||
File nowFile = new File(fileNowPath);
|
||||
if (nowFile.exists()) {
|
||||
nowFile.delete();
|
||||
}
|
||||
nowFile.mkdirs();
|
||||
|
||||
try{
|
||||
String fileName = fileOriName + ".xlsx";
|
||||
// 设置表格相关属性
|
||||
@@ -2478,13 +2472,10 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
cellStyle.setWrapText(true);
|
||||
// cellStyle.setAlignment(XSSFCellStyle.ALIGN_CENTER);
|
||||
cellStyle.setVerticalAlignment(XSSFCellStyle.VERTICAL_CENTER);
|
||||
|
||||
XSSFCellStyle cellStyle1 =workbook.createCellStyle();
|
||||
cellStyle1.setAlignment(XSSFCellStyle.ALIGN_CENTER);
|
||||
XSSFCellStyle cellStyleLink =workbook.createCellStyle();
|
||||
XSSFFont font = workbook.createFont();
|
||||
font.setColor(HSSFColor.LIGHT_BLUE.index);
|
||||
cellStyleLink.setFont(font);
|
||||
cellStyleLink.setWrapText(true);
|
||||
|
||||
//合并单元格
|
||||
CellRangeAddress region1 =
|
||||
new CellRangeAddress(1, 1, 0, headers.length - 1); //参数1:起始行 参数2:终止行 参数3:起始列 参数4:终止列
|
||||
@@ -2495,7 +2486,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
List<String> fieldList = Arrays.asList(field.split(",")); // list形式
|
||||
|
||||
// 查询导出数据
|
||||
List<Map<String, Object>> allParamsInfoList = queryForExportDre(paramsCollectManifestVO); // id记得去掉
|
||||
List<Map<String, Object>> allParamsInfoList = queryForExportDre(paramsCollectManifestVO, request); // id记得去掉
|
||||
|
||||
// 在excel表中添加表头
|
||||
XSSFRow row = sheetItems.createRow(0);
|
||||
@@ -2540,7 +2531,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
XSSFCell cell3 = row3.createCell(i);
|
||||
XSSFRichTextString text = new XSSFRichTextString(exampleRow[i]);
|
||||
cell3.setCellValue(text);
|
||||
cell3.setCellStyle(cellStyle1);
|
||||
cell3.setCellStyle(cellStyle);
|
||||
sheetItems.setColumnWidth(i, 20 * 256); // 设置单元格宽度
|
||||
}
|
||||
|
||||
@@ -2562,24 +2553,12 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
}
|
||||
|
||||
String repFileName = fileName.replaceAll("/","_");
|
||||
excelOS = new FileOutputStream(fileNowPath + File.separator + repFileName);
|
||||
response.setHeader("Content-Disposition",
|
||||
"attachment; filename=\""+ ReadExcel.encodeFileName(fileOriName+".zip", request) +"\"");
|
||||
"attachment; filename=\""+ ReadExcel.encodeFileName(repFileName+".xlsx", request) +"\"");
|
||||
response.setContentType("application/force-download");
|
||||
response.flushBuffer();
|
||||
os = response.getOutputStream();
|
||||
workbook.write(excelOS);
|
||||
excelOS.flush();
|
||||
excelOS.close();
|
||||
ZipUtil.zip(fileNowPath,fileNowPath+".zip");
|
||||
FileInputStream fis = new FileInputStream(fileNowPath+".zip");
|
||||
int len = 0;
|
||||
while ((len = fis.read()) != -1) {
|
||||
os.write(len);
|
||||
}
|
||||
os.flush();
|
||||
os.close(); // 后开先关
|
||||
fis.close(); // 先开后关
|
||||
workbook.write(os);
|
||||
} catch (Exception e) {
|
||||
if (e instanceof JeroBootException){
|
||||
throw new JeroBootException(e.getMessage());
|
||||
@@ -2593,10 +2572,14 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
|
||||
}
|
||||
} finally {
|
||||
// IOUtils.closeQuietly(os);
|
||||
IOUtils.closeQuietly(excelOS);
|
||||
File tempZipFile = new File(uploadpath + "/tempZip");
|
||||
FileUtil.deleteContents(tempZipFile);
|
||||
IOUtils.closeQuietly(os);
|
||||
try {
|
||||
if (workbook != null) {
|
||||
workbook.close();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
log.error("发生异常,异常信息为:"+e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2986,7 +2969,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
dbFieldExampleList.add("是/否");
|
||||
|
||||
} else {
|
||||
dbFieldExampleList.add("下拉多选#文本");
|
||||
dbFieldExampleList.add("下拉多选+文本");
|
||||
}
|
||||
}else{
|
||||
dbFieldNameList.add(onlCgformField.getDbFieldEnName()); // 字段英文名
|
||||
@@ -3021,6 +3004,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
if (ConfigLockEnum.NO.getValue().equals(paramsConfigEO.getIsLock())) { // 只导出未冻结的配置列
|
||||
dbFieldListConfig.add(paramsConfigEO.getId());
|
||||
dbFieldNameListConfig.add(paramsConfigEO.getConfigName());
|
||||
dbFieldExampleList.add("XX!XX!XX#XXXXX");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3150,24 +3134,35 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
}
|
||||
|
||||
// 导出待填写数据,可以勾选导出
|
||||
private List<Map<String, Object>> queryForExportDre(ParamsCollectManifestVO paramsCollectManifestVO) {
|
||||
private List<Map<String, Object>> queryForExportDre(ParamsCollectManifestVO paramsCollectManifestVO, HttpServletRequest req) {
|
||||
String paramsManifestId = paramsCollectManifestVO.getParamsManifestId();
|
||||
// String paramsTemplateId = paramsCollectManifestVO.getParamsTemplateId();
|
||||
// Integer paramsTemplatePublishVersion = paramsCollectManifestVO.getParamsTemplatePublishVersion();
|
||||
String cut = paramsCollectManifestVO.getCut();
|
||||
String ids = paramsCollectManifestVO.getIds();
|
||||
List<String> idList = new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(paramsCollectManifestVO.getIds())) {
|
||||
idList = Arrays.asList(paramsCollectManifestVO.getIds().split(","));
|
||||
}
|
||||
List<String> stateList = new ArrayList<String>(){{
|
||||
add(CollectManifestStateEnum.WAIT_FILL.getValue());
|
||||
add(CollectManifestStateEnum.CERT_BACK.getValue());
|
||||
}};
|
||||
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
ParamsCollectManifestEO queryEO = new ParamsCollectManifestEO();
|
||||
queryEO.setParamsManifestId(paramsManifestId);
|
||||
ParamsCollectManifestEO paramsCollectManifestEO = new ParamsCollectManifestEO();
|
||||
BeanUtils.copyProperties(paramsCollectManifestVO, paramsCollectManifestEO);
|
||||
paramsCollectManifestEO.setParamsManifestId(null);
|
||||
QueryWrapper<ParamsCollectManifestEO> queryWrapper = QueryGenerator.initQueryWrapper(paramsCollectManifestEO, req.getParameterMap());
|
||||
queryWrapper.lambda().eq(ParamsCollectManifestEO::getParamsManifestId, paramsManifestId)
|
||||
.eq(ParamsCollectManifestEO::getDre, loginUser.getUsername())
|
||||
.in(ParamsCollectManifestEO::getState, stateList)
|
||||
.notIn(ParamsCollectManifestEO::getControlType, ControlTypeEnum.Title.getValue())
|
||||
.orderByDesc(ParamsCollectManifestEO::getDelFlag)
|
||||
.orderByDesc(ParamsCollectManifestEO::getAddFlag)
|
||||
.orderByDesc(ParamsCollectManifestEO::getChangeFlag)
|
||||
.orderByAsc(ParamsCollectManifestEO::getNioNumber)
|
||||
.in(CollectionUtil.isNotEmpty(idList), ParamsCollectManifestEO::getId, idList);
|
||||
|
||||
// String userTypes = paramsCollectManifestVO.getUserTypes();
|
||||
queryEO.setUserTypes(CollectManifestUserTypeEnum.DRE.getValue());
|
||||
queryEO.setDreForAuth(loginUser.getUsername());
|
||||
queryEO.setState(CollectManifestStateEnum.WAIT_FILL.getValue() + "," + CollectManifestStateEnum.CERT_BACK.getValue());
|
||||
|
||||
List<Map<String, Object>> dataList = paramsCollectManifestEOMapper.listInfoForExport(queryEO, ids); // 查询导出数据
|
||||
List<ParamsCollectManifestEO> dataList = list(queryWrapper); // 查询导出数据
|
||||
if (dataList == null || dataList.isEmpty()){
|
||||
// 没有查到数据,进行提示
|
||||
if (CutEnum.EN.getValue().equals(paramsCollectManifestVO.getCut())) {
|
||||
@@ -3181,7 +3176,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
Map<String,String> controlVerifyMap = ControlVerifyEnum.toMapForExport(cut);
|
||||
Map<String,String> controlTypeMap = ControlTypeEnum.toMapForExport(cut);
|
||||
// 插入配置列和认证类别列数据
|
||||
for (Map<String, Object> record1 : dataList) {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
for (ParamsCollectManifestEO collectManifestEO: dataList) {
|
||||
Map<String, Object> record1 = objectToMapDre(collectManifestEO);
|
||||
String controlType = (String) record1.get("control_type");
|
||||
String controlVerify = (String) record1.get("control_verify");
|
||||
String isMust = (String) record1.get("is_must");
|
||||
@@ -3190,8 +3187,9 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
record1.put("control_type", controlTypeMap.get(controlType));
|
||||
record1.put("control_verify", controlVerifyMap.get(controlVerify));
|
||||
|
||||
result.add(record1);
|
||||
}
|
||||
return dataList;
|
||||
return result;
|
||||
}
|
||||
|
||||
private void downLoadFileList(List<OSSFile> fileTemplateList,Map<String ,String> fileNowPathMap) {
|
||||
@@ -3309,6 +3307,80 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 将对象转Map
|
||||
* @param obj 待转对象
|
||||
* @return
|
||||
*/
|
||||
private Map<String, Object> objectToMapDre(Object obj) {
|
||||
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
// 获取f对象对应类中的所有属性域
|
||||
List<Field> list = findAllFieldsOfSelfAndSuperClass(obj.getClass());
|
||||
for (Field field : list) {
|
||||
|
||||
String varName = field.getName();
|
||||
try {
|
||||
// 获取原来的访问控制权限
|
||||
boolean accessFlag = field.isAccessible();
|
||||
// 修改访问控制权限
|
||||
field.setAccessible(true);
|
||||
// 获取在对象f中属性fields[i]对应的对象中的变量
|
||||
Object o = field.get(obj);
|
||||
if (o != null) {
|
||||
if (Date.class.equals(field.getType())) {
|
||||
Date date = (Date) o;
|
||||
String pattern = "";
|
||||
if ("deadline".equals(varName) || "reportTime".equals(varName)) {
|
||||
pattern = "yyyy-MM-dd";
|
||||
} else {
|
||||
pattern = "yyyy-MM-dd HH:mm:ss";
|
||||
}
|
||||
SimpleDateFormat formatter=new SimpleDateFormat(pattern);
|
||||
String time=formatter.format(date);
|
||||
map.put(toUnderlineCase(varName), time);
|
||||
} else {
|
||||
map.put(toUnderlineCase(varName), o);
|
||||
}
|
||||
}
|
||||
// 恢复访问控制权限
|
||||
field.setAccessible(accessFlag);
|
||||
} catch (IllegalArgumentException ex) {
|
||||
ex.printStackTrace();
|
||||
} catch (IllegalAccessException ex) {
|
||||
ex.printStackTrace();
|
||||
}
|
||||
}
|
||||
return map;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 驼峰转 转 下划线
|
||||
* userName ----> user_name
|
||||
* user_name ----> user_name
|
||||
*
|
||||
* @param camelCaseStr 驼峰字符串
|
||||
* @return 带下滑线的String
|
||||
*/
|
||||
private String toUnderlineCase(String camelCaseStr) {
|
||||
if (camelCaseStr == null) {
|
||||
return null;
|
||||
}
|
||||
// 将驼峰字符串转换成数组
|
||||
char[] charArray = camelCaseStr.toCharArray();
|
||||
StringBuffer buffer = new StringBuffer();
|
||||
//处理字符串
|
||||
for (int i = 0, l = charArray.length; i < l; i++) {
|
||||
if (charArray[i] >= 65 && charArray[i] <= 90) {
|
||||
buffer.append("_").append(charArray[i] += 32);
|
||||
} else {
|
||||
buffer.append(charArray[i]);
|
||||
}
|
||||
}
|
||||
return buffer.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过实体类获取 URL Params
|
||||
*
|
||||
@@ -3841,7 +3913,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
private Map<String, Object> validatePull(String configName, String controlValues, String value, String mustInput, Boolean isSingle, String cut) {
|
||||
String errorMsg = "";
|
||||
int countError= 0;
|
||||
List<String> controlValueList = Arrays.asList(controlValues.split(","));
|
||||
List<String> controlValueList = Arrays.asList(controlValues.replaceAll(",", ",").split(","));
|
||||
Map<String, Object> resultMap = new HashMap<>();
|
||||
// StringBuilder newValue = new StringBuilder();
|
||||
|
||||
@@ -3858,7 +3930,7 @@ public class ParamsCollectManifestEOServiceImpl extends ServiceImpl<ParamsCollec
|
||||
if (StringUtils.isNotEmpty(value)) {
|
||||
//判断是否是单选
|
||||
if (isSingle) {
|
||||
if (StringUtils.isNotBlank(value) && value.contains(",")) {
|
||||
if (StringUtils.isNotBlank(value) && (value.contains("!") ||value.contains("!"))) {
|
||||
if (CutEnum.CN.getValue().equals(cut)) {
|
||||
errorMsg += configName + "为单选项;";
|
||||
} else {
|
||||
|
||||
+21
-17
@@ -252,10 +252,14 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
@Override
|
||||
public IPage<DummyInventoryBaseEO> getPageInfo(Page<DummyInventoryBaseEO> page, QueryWrapper<DummyInventoryBaseEO> queryWrapper) {
|
||||
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
queryWrapper.and(query->{
|
||||
query.in("create_by",sysUser.getUsername()).in("state",InventoryStateEnum.DRAFT.getValue())
|
||||
.or().in("state",InventoryStateEnum.ISSUE.getValue());
|
||||
});
|
||||
//系统管理
|
||||
boolean administrator = sysUserService.isAdministrator();
|
||||
if(!administrator){
|
||||
queryWrapper.and(query->{
|
||||
query.in("create_by",sysUser.getUsername()).in("state",InventoryStateEnum.DRAFT.getValue())
|
||||
.or().in("state",InventoryStateEnum.ISSUE.getValue());
|
||||
});
|
||||
}
|
||||
// queryWrapper.or(query->{
|
||||
// query.in("state",InventoryStateEnum.ISSUE.getValue());
|
||||
// });
|
||||
@@ -321,19 +325,19 @@ public class DummyInventoryBaseEOServiceImpl extends ServiceImpl<DummyInventoryB
|
||||
|
||||
DummyInventoryBaseEO baseEO = queryById(dummyInventoryBaseEO.getId());
|
||||
List<String> createByNameList =new ArrayList<>();
|
||||
if (StringUtils.isNotBlank(baseEO.getCreateBy())) {
|
||||
createByNameList = Arrays.asList(baseEO.getCreateBy().split(","));
|
||||
|
||||
if (CollectionUtils.isNotEmpty(createByNameList)){
|
||||
if (!createByNameList.contains(loginUserName)) {
|
||||
if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) {
|
||||
throw new JeroBootException("当前用户非创建者,无法发布");
|
||||
} else {
|
||||
throw new JeroBootException("The current user is not the creator and cannot be issued.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// if (StringUtils.isNotBlank(baseEO.getCreateBy())) {
|
||||
// createByNameList = Arrays.asList(baseEO.getCreateBy().split(","));
|
||||
//
|
||||
// if (CollectionUtils.isNotEmpty(createByNameList)){
|
||||
// if (!createByNameList.contains(loginUserName)) {
|
||||
// if (CutEnum.CN.getValue().equals(dummyInventoryBaseEO.getCut())) {
|
||||
// throw new JeroBootException("当前用户非创建者,无法发布");
|
||||
// } else {
|
||||
// throw new JeroBootException("The current user is not the creator and cannot be issued.");
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
Date now = new Date();
|
||||
UpdateWrapper<DummyInventoryBaseEO> baseWrapper=new UpdateWrapper<>();
|
||||
baseWrapper.set("state",dummyInventoryBaseEO.getState());
|
||||
|
||||
+78
-8
@@ -1,29 +1,43 @@
|
||||
package com.jero.modules.problemKnowledgeBase.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.jero.common.constant.enums.MessageTypeEnum;
|
||||
import com.jero.common.system.query.QueryGenerator;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.document.service.impl.BussDocumentLibraryEOServiceImpl;
|
||||
import com.jero.modules.feishu.service.IFeishuService;
|
||||
import com.jero.modules.feishu.vo.FeishuMsgVo;
|
||||
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseCommentEO;
|
||||
import com.jero.modules.problemKnowledgeBase.entity.ProblemKnowledgeBaseEO;
|
||||
import com.jero.modules.problemKnowledgeBase.mapper.ProblemKnowledgeBaseCommentEOMapper;
|
||||
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseCommentEOService;
|
||||
import com.jero.modules.problemKnowledgeBase.service.IProblemKnowledgeBaseEOService;
|
||||
import com.jero.modules.problemKnowledgeBase.vo.ProblemKnowledgeBaseCommentVO;
|
||||
import com.jero.modules.project.entity.ProblemKnowledgeBaseReplyEO;
|
||||
import com.jero.modules.project.service.IProblemKnowledgeBaseReplyEOService;
|
||||
import com.jero.modules.system.entity.SysAnnouncement;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysAnnouncementService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
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 java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Date;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description: 问题知识库评论表
|
||||
@@ -37,6 +51,24 @@ public class ProblemKnowledgeBaseCommentEOServiceImpl extends ServiceImpl<Proble
|
||||
|
||||
@Autowired
|
||||
private IProblemKnowledgeBaseReplyEOService problemKnowledgeBaseReplyEOService;
|
||||
|
||||
@Autowired
|
||||
private BussDocumentLibraryEOServiceImpl bussDocumentLibraryEOService;
|
||||
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Resource
|
||||
private IFeishuService iFeishuService;
|
||||
|
||||
@Autowired
|
||||
private ISysAnnouncementService sysAnnouncementService;
|
||||
|
||||
@Autowired
|
||||
private IProblemKnowledgeBaseEOService problemKnowledgeBaseEOService;
|
||||
|
||||
@Value(value = "${jero.backUrl}")
|
||||
private String backUrl;
|
||||
/**
|
||||
* 保存
|
||||
*
|
||||
@@ -49,7 +81,45 @@ public class ProblemKnowledgeBaseCommentEOServiceImpl extends ServiceImpl<Proble
|
||||
problemKnowledgeBaseCommentEO.setCreateTime(now);
|
||||
problemKnowledgeBaseCommentEO.setUpdateTime(now);
|
||||
save(problemKnowledgeBaseCommentEO);
|
||||
}
|
||||
|
||||
ProblemKnowledgeBaseEO problemKnowledgeBaseEO = problemKnowledgeBaseEOService.getById(problemKnowledgeBaseCommentEO.getProblemKnowledgeBaseId());
|
||||
|
||||
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
String createBy = problemKnowledgeBaseEO.getCreateBy();
|
||||
//自己回复的时候不发消息
|
||||
// if(!loginUser.getUsername().equals(createBy)){
|
||||
SysUser sysUser = sysUserService.getUserByName(createBy);
|
||||
String contentCNNo = "您发布的问题知识库信息"+problemKnowledgeBaseEO.getTitle()+"有新评论,请注意查看.";
|
||||
String contentENNo = "In the Q&A knowledge "+problemKnowledgeBaseEO.getTitle()+" you created, a new comment has been added. Please be reminded to check it out.";
|
||||
|
||||
//发送消息(站内和飞书)
|
||||
//您发布的问题知识库信息XXXXXXXX有新评论,请注意查看。
|
||||
//In the Q&A knowledge xxxxxxxx you created, a new comment has been added. Please be reminded to check it out.
|
||||
SysAnnouncement sysAnnouncement = bussDocumentLibraryEOService.getSysAnnouncement(Arrays.asList(sysUser.getId().split(",")),
|
||||
"msgTitle",
|
||||
contentENNo,
|
||||
contentENNo,
|
||||
MessageTypeEnum.PUSH.getValue(),
|
||||
MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName(),
|
||||
contentCNNo,
|
||||
contentCNNo);
|
||||
this.sysAnnouncementService.saveAnnouncement(sysAnnouncement);
|
||||
bussDocumentLibraryEOService.sendWebsocket(com.jero.modules.system.util.StringUtils.join(sysUser.getThirdId(), ","), sysUser.getThirdId());
|
||||
|
||||
String href = backUrl +"/problemknowledgeBase";
|
||||
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
|
||||
feishuMsgVo.setTitle(MessageTypeEnum.PUSH.getNameCn()+"/"+MessageTypeEnum.PUSH.getName());
|
||||
feishuMsgVo.setUrl(href);
|
||||
feishuMsgVo.setContentEn(contentENNo);
|
||||
feishuMsgVo.setContent(contentCNNo);
|
||||
|
||||
try {
|
||||
this.iFeishuService.sendCardMsgTerritory(sysUser.getThirdId().split(","), feishuMsgVo);
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
// }
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
|
||||
+10
@@ -16,6 +16,7 @@ import com.jero.modules.dummy.entity.DummyInventoryBaseEO;
|
||||
import com.jero.modules.dummy.service.IDummyInventoryBaseEOService;
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
|
||||
import com.jero.modules.project.service.IProjectLawsInventoryEOService;
|
||||
import com.jero.modules.project.vo.ProjectTaskUrgVo;
|
||||
import com.jero.modules.system.entity.SysRole;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
@@ -456,4 +457,13 @@ public class ProjectLawsInventoryEOController extends JeroController<ProjectLaws
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@AutoLog(value = "任务清单催办")
|
||||
@ApiOperation(value="任务清单催办", notes="任务清单催办")
|
||||
@PostMapping(value = "/taskUrg")
|
||||
public Result<?> taskUrg(@RequestBody ProjectTaskUrgVo projectTaskUrgVo) {
|
||||
return this.projectLawsInventoryEOService.taskUrg(projectTaskUrgVo);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+14
-1
@@ -22,9 +22,10 @@ import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
/**
|
||||
* @Description: 项目库-任务清单表
|
||||
* @Author: jero-boot
|
||||
* @Date: 2022-04-29
|
||||
@@ -231,4 +232,16 @@ public class ProjectTaskInventoryEOController extends JeroController<ProjectTask
|
||||
List<String> msgList = projectTaskInventoryEOService.verifyRoleCode(projectTaskInventoryVO);
|
||||
return Result.OK(msgList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 处理历史数据
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
@AutoLog(value = "项目库-任务清单表-处理历史数据")
|
||||
@ApiOperation(value="项目库-任务清单表-处理历史数据", notes="项目库-任务清单表-处理历史数据")
|
||||
@GetMapping(value = "/disposeHistoryData")
|
||||
public Result<?> disposeHistoryData(@RequestParam Map<String,Object> params){
|
||||
return this.projectTaskInventoryEOService.disposeHistoryData(params);
|
||||
}
|
||||
}
|
||||
|
||||
+2
@@ -108,4 +108,6 @@ public class ProjectTaskInventoryFeedbackEO implements Serializable {
|
||||
@ApiModelProperty(value = "序号")
|
||||
private String serialNumber;
|
||||
|
||||
@TableField(exist = false)
|
||||
private String userId;
|
||||
}
|
||||
|
||||
+2
-6
@@ -155,13 +155,9 @@ public class TaskAffirmJob implements Job {
|
||||
}
|
||||
|
||||
//飞书跳转链接
|
||||
|
||||
String hrefFeishu = backUrl
|
||||
+ JumpLinkEnum.INVENTORY_AFFIRM_LINK.getLink()
|
||||
+ projectLibraryBase.getId()
|
||||
+ JumpLinkEnum.INVENTORY_AFFIRM_LINK.getType()
|
||||
+ "&projectName=" + projectNameInfoEO.getProjectName() + "-"
|
||||
+ projectYearNameInfoEO.getYearName()
|
||||
+ "&targetMarket=" + projectLibraryBase.getTargetMarket();
|
||||
+ JumpLinkEnum.TASK_AFFIRM_LINK.getLink();
|
||||
|
||||
//项目名称
|
||||
String projectVersion = (com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId()) && com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getProjectVersion())) ? "00" : projectLibraryBase.getProjectVersion();
|
||||
|
||||
+248
-82
@@ -1,7 +1,13 @@
|
||||
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.modules.document.entity.BussDocumentLibraryEO;
|
||||
import com.jero.modules.document.service.IBussDocumentLibraryEOService;
|
||||
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.enums.DesignComplianceStatusEnum;
|
||||
@@ -13,8 +19,11 @@ 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.IProjectTaskInventoryEOService;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.quartz.Job;
|
||||
import org.quartz.JobExecutionContext;
|
||||
@@ -22,6 +31,7 @@ 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.stream.Collectors;
|
||||
@@ -52,13 +62,20 @@ public class designComplianceJob implements Job {
|
||||
@Value(value = "${jero.backUrl}")
|
||||
private String backUrl;
|
||||
|
||||
@Autowired
|
||||
private IBussDocumentLibraryEOService bussDocumentLibraryEOService;
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
@Autowired
|
||||
private IFeishuService feishuService;
|
||||
|
||||
@Override
|
||||
public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
|
||||
log.info("设计符合性确认流程,定时任务开启 =====================================================");
|
||||
//查询出已经启动了设计符合性流程的数据。 并且流程没有结束。
|
||||
QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
|
||||
queryProjectTaskInventoryWrapper.isNotNull("design_p_id");
|
||||
queryProjectTaskInventoryWrapper.lambda().ne(ProjectTaskInventoryEO::getDesignStatus, DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue());
|
||||
queryProjectTaskInventoryWrapper.lambda().eq(ProjectTaskInventoryEO::getDesignStatus, DesignComplianceStatusEnum.TO_SUBMIT.getValue());
|
||||
List<ProjectTaskInventoryEO> projectTaskInventoryEOList = projectTaskInventoryEOService.getBaseMapper().selectList(queryProjectTaskInventoryWrapper);
|
||||
|
||||
if(CollectionUtils.isNotEmpty(projectTaskInventoryEOList)){
|
||||
@@ -79,15 +96,24 @@ public class designComplianceJob implements Job {
|
||||
|
||||
Date currentDate = new Date();
|
||||
|
||||
//获取后三天前的时间
|
||||
Calendar calendar=new GregorianCalendar();
|
||||
calendar.setTime(new Date());
|
||||
calendar.add(Calendar.DATE,3);
|
||||
Date threeDays = calendar.getTime();
|
||||
|
||||
String threeDaysStr = sdf.format(threeDays);
|
||||
//两周
|
||||
Calendar twoWeeksLaterCalendar=new GregorianCalendar();
|
||||
twoWeeksLaterCalendar.setTime(new Date());
|
||||
twoWeeksLaterCalendar.add(Calendar.DATE,14);
|
||||
Date twoWeeksLaterDays = twoWeeksLaterCalendar.getTime();
|
||||
String twoWeeksLaterDaysStr = sdf.format(twoWeeksLaterDays);
|
||||
//一周
|
||||
Calendar oneWeekLaterCalendar=new GregorianCalendar();
|
||||
oneWeekLaterCalendar.setTime(new Date());
|
||||
oneWeekLaterCalendar.add(Calendar.DATE,7);
|
||||
Date oneWeekLaterDays = oneWeekLaterCalendar.getTime();
|
||||
String oneWeekLaterDaysStr = sdf.format(oneWeekLaterDays);
|
||||
//当天
|
||||
String currentDateStr = sdf.format(currentDate);
|
||||
|
||||
|
||||
String msgTitle = MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getCn() + "/" + MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getEn();
|
||||
|
||||
for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseList) {
|
||||
QueryWrapper<ProjectNameInfoEO> projectNameInfoEOQueryWrapper = new QueryWrapper<>();
|
||||
projectNameInfoEOQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId());
|
||||
@@ -97,109 +123,249 @@ public class designComplianceJob implements Job {
|
||||
projectYearInfoEOQueryWrapper.lambda().eq(ProjectYearNameInfoEO::getId,projectLibraryBase.getYearNameId());
|
||||
ProjectYearNameInfoEO projectYearNameInfoEO = projectYearNameInfoEOMapper.selectOne(projectYearInfoEOQueryWrapper);
|
||||
|
||||
//项目名称
|
||||
String projectVersion = (com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId()) && com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getProjectVersion())) ? "00" : projectLibraryBase.getProjectVersion();
|
||||
String projectName = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + "-" + projectLibraryBase.getTargetMarket() + "-" + projectVersion;
|
||||
|
||||
|
||||
for (ProjectLawsInventoryEO projectLawsInventoryEO: projectLawsInventoryEOList) {
|
||||
List<String> threeDaysUserIdList = new ArrayList<>();
|
||||
|
||||
//法规中英文
|
||||
String LAW_CN = projectLawsInventoryEO.getSerialNumber() + " " + projectLawsInventoryEO.getTitle();//法规
|
||||
BussDocumentLibraryEO bussDocumentLibraryEO = bussDocumentLibraryEOService.queryById(projectLawsInventoryEO.getStandId());
|
||||
String LAW_EN = "";
|
||||
if (ObjectUtils.isEmpty(bussDocumentLibraryEO)) {
|
||||
LAW_EN = LAW_CN;
|
||||
} else {
|
||||
LAW_EN = projectLawsInventoryEO.getSerialNumber() + " " + bussDocumentLibraryEO.getTitleEn();//法规
|
||||
}
|
||||
|
||||
|
||||
List<String> twoWeeksLaterUserIdList = new ArrayList<>();
|
||||
List<String> oneWeeksLaterUserIdList = new ArrayList<>();
|
||||
List<String> currentDaysUserIdList = new ArrayList<>();
|
||||
List<String> dueUserIdList = new ArrayList<>();
|
||||
|
||||
for (ProjectTaskInventoryEO projectTaskInventoryEO : projectTaskInventoryEOList) {
|
||||
if(StringUtils.equals(projectTaskInventoryEO.getProjectLawsInventoryId(),projectLawsInventoryEO.getId())){
|
||||
//如果设计符合性 - 结束日期是当前日期
|
||||
if(projectLawsInventoryEO.getDesignDueDate() != null){
|
||||
if(StringUtils.equals(currentDateStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){
|
||||
if(StringUtils.isEmpty(projectTaskInventoryEO.getDesignSendMsgFlag())){
|
||||
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){
|
||||
currentDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId());
|
||||
}if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())){
|
||||
currentDaysUserIdList.add(projectLawsInventoryEO.getDesignInitiatorId());
|
||||
}
|
||||
projectTaskInventoryEO.setDesignSendMsgFlag(SendMsgFlagEnum.FALSE.getValue());
|
||||
projectTaskInventoryEOService.updateById(projectTaskInventoryEO);
|
||||
}
|
||||
if(StringUtils.equals(projectLawsInventoryEO.getProjectLibraryId(),projectLibraryBase.getId())){
|
||||
//如果设计符合性 - 结束日期是当前日期
|
||||
if(projectLawsInventoryEO.getDesignDueDate() != null){
|
||||
if(StringUtils.equals(currentDateStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){
|
||||
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){
|
||||
currentDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId());
|
||||
}
|
||||
}
|
||||
|
||||
//如果设计符合性 - 结束日期是三天后的日期
|
||||
if(StringUtils.equals(threeDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){
|
||||
if(StringUtils.isEmpty(projectTaskInventoryEO.getDesignSendMsgCurrentFlag())){
|
||||
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){
|
||||
threeDaysUserIdList.add(projectLawsInventoryEO.getDesignDutyId());
|
||||
}if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignInitiatorId())){
|
||||
threeDaysUserIdList.add(projectLawsInventoryEO.getDesignInitiatorId());
|
||||
}
|
||||
projectTaskInventoryEO.setDesignSendMsgCurrentFlag(SendMsgFlagEnum.FALSE.getValue());
|
||||
projectTaskInventoryEOService.updateById(projectTaskInventoryEO);
|
||||
}
|
||||
//如果设计符合性 - 结束日期是两周后的日期
|
||||
if(StringUtils.equals(twoWeeksLaterDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){
|
||||
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){
|
||||
twoWeeksLaterUserIdList.add(projectLawsInventoryEO.getDesignDutyId());
|
||||
}
|
||||
}
|
||||
|
||||
//如果设计符合性 - 结束日期是一周后的日期
|
||||
if(StringUtils.equals(oneWeekLaterDaysStr,sdf.format(projectLawsInventoryEO.getDesignDueDate()))){
|
||||
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){
|
||||
oneWeeksLaterUserIdList.add(projectLawsInventoryEO.getDesignDutyId());
|
||||
}
|
||||
}
|
||||
//逾期三天、七天、十四天
|
||||
Calendar due3Days = new GregorianCalendar();
|
||||
due3Days.setTime(projectLawsInventoryEO.getDesignDueDate());
|
||||
due3Days.add(Calendar.DATE, 3);
|
||||
Date overdue3Days = due3Days.getTime();
|
||||
|
||||
Calendar due7Days = new GregorianCalendar();
|
||||
due7Days.setTime(projectLawsInventoryEO.getDesignDueDate());
|
||||
due7Days.add(Calendar.DATE, 7);
|
||||
Date overdue7Days = due7Days.getTime();
|
||||
|
||||
Calendar due14Days = new GregorianCalendar();
|
||||
due14Days.setTime(projectLawsInventoryEO.getDesignDueDate());
|
||||
due14Days.add(Calendar.DATE, 14);
|
||||
Date overdue14Days = due14Days.getTime();
|
||||
if (StringUtils.equals(sdf.format(overdue3Days), currentDateStr)
|
||||
|| StringUtils.equals(sdf.format(overdue7Days), currentDateStr)
|
||||
|| StringUtils.equals(sdf.format(overdue14Days), currentDateStr)) {
|
||||
if(StringUtils.isNotEmpty(projectLawsInventoryEO.getDesignDutyId())){
|
||||
dueUserIdList.add(projectLawsInventoryEO.getDesignDutyId());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(threeDaysUserIdList)){
|
||||
threeDaysUserIdList = threeDaysUserIdList.stream().distinct().collect(Collectors.toList());
|
||||
|
||||
String hrefFeishu = backUrl
|
||||
+ JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink()
|
||||
+ projectLibraryBase.getId()
|
||||
+ JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||
+ "&projectName=" + projectNameInfoEO.getProjectName();
|
||||
|
||||
if (ObjectUtils.isNotEmpty(dueUserIdList)) {
|
||||
dueUserIdList = dueUserIdList.stream().distinct().collect(Collectors.toList());
|
||||
List<SysUser> sysUsers = sysUserService.listByIds(dueUserIdList);
|
||||
List<String> thirdIdList = new ArrayList<>();
|
||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
||||
}
|
||||
try {
|
||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||
feishuMsgVo.setTitle(msgTitle);
|
||||
feishuMsgVo.setCnContentUpper("您好,您的任务已逾期,请尽快处理");
|
||||
feishuMsgVo.setCnContentLower("项目: " + projectName +
|
||||
"\n法规: " + LAW_CN +
|
||||
"\n发起人: 系统通知"+
|
||||
"\n截止时间: "+ sdf.format(projectLawsInventoryEO.getDesignDueDate()));
|
||||
feishuMsgVo.setEnContentUpper("Hello! Your task is overdue. Please check and address it ASAP");
|
||||
feishuMsgVo.setEnContentLower("Project: " + projectName +
|
||||
"\nRegulation No: " + LAW_EN +
|
||||
"\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName()+
|
||||
"\nDue Date: "+ sdf.format(projectLawsInventoryEO.getDesignDueDate()));
|
||||
feishuMsgVo.setUrl(hrefFeishu);
|
||||
feishuMsgVo.setColor(MsgColorEnum.YELLOW.getValue()); // 颜色
|
||||
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
||||
} catch (IOException e) {
|
||||
log.error("飞书消息推送失败");
|
||||
}
|
||||
}
|
||||
|
||||
if (ObjectUtils.isNotEmpty(oneWeeksLaterUserIdList)) {
|
||||
oneWeeksLaterUserIdList = oneWeeksLaterUserIdList.stream().distinct().collect(Collectors.toList());
|
||||
List<SysUser> sysUsers = sysUserService.listByIds(oneWeeksLaterUserIdList);
|
||||
List<String> thirdIdList = new ArrayList<>();
|
||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
||||
}
|
||||
try {
|
||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||
feishuMsgVo.setTitle(msgTitle);
|
||||
feishuMsgVo.setCnContentUpper("您好,您的任务将于7天后结束,请及时查看处理");
|
||||
feishuMsgVo.setCnContentLower("项目: " + projectName +
|
||||
"\n法规: " + LAW_CN +
|
||||
"\n发起人: 系统通知");
|
||||
feishuMsgVo.setEnContentUpper("Hello! Your task will end in 7 days. Please check and address it in a timely manner");
|
||||
feishuMsgVo.setEnContentLower("Project: " + projectName +
|
||||
"\nRegulation No: " + LAW_EN +
|
||||
"\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
feishuMsgVo.setUrl(hrefFeishu);
|
||||
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
||||
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
||||
} catch (IOException e) {
|
||||
log.error("飞书消息推送失败");
|
||||
}
|
||||
}
|
||||
|
||||
if(CollectionUtils.isNotEmpty(twoWeeksLaterUserIdList)){
|
||||
twoWeeksLaterUserIdList = twoWeeksLaterUserIdList.stream().distinct().collect(Collectors.toList());
|
||||
List<SysUser> sysUsers = sysUserService.listByIds(twoWeeksLaterUserIdList);
|
||||
List<String> thirdIdList = new ArrayList<>();
|
||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
||||
}
|
||||
try {
|
||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||
feishuMsgVo.setTitle(msgTitle);
|
||||
feishuMsgVo.setCnContentUpper("您好,您的任务将于14天后结束,请及时查看处理");
|
||||
feishuMsgVo.setCnContentLower("项目: " + projectName +
|
||||
"\n法规: " + LAW_CN +
|
||||
"\n发起人: 系统通知");
|
||||
feishuMsgVo.setEnContentUpper("Hello! Your task will end in 14 days. Please check and address it in a timely manner");
|
||||
feishuMsgVo.setEnContentLower("Project: " + projectName +
|
||||
"\nRegulation No: " + LAW_EN +
|
||||
"\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
feishuMsgVo.setUrl(hrefFeishu);
|
||||
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
||||
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
||||
} catch (IOException e) {
|
||||
log.error("飞书消息推送失败");
|
||||
}
|
||||
//您XXX(项目名称)中GB 7258的设计符合性确认剩余处理时间还有3天,请及时查看处理
|
||||
String msgContentEN = "The remaining processing time for the design compliance confirmation for "
|
||||
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName()
|
||||
+ projectYearNameInfoEO.getYearName()+ " "
|
||||
+ projectLibraryBase.getTargetMarket()
|
||||
+ " are 3 days. Please check and address it in a timely manner.";
|
||||
String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a design compliance task to complete";
|
||||
//String msgContentEN = "The remaining processing time for the design compliance confirmation for "
|
||||
// + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName()
|
||||
// + projectYearNameInfoEO.getYearName()+ " "
|
||||
// + projectLibraryBase.getTargetMarket()
|
||||
// + " are 3 days. Please check and address it in a timely manner.";
|
||||
//String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket()
|
||||
// + ": You have a design compliance task to complete";
|
||||
|
||||
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
|
||||
feishuMsgVo.setContent("Hello! The remaining processing time for the task are 3 days. Please check and address it in a timely manner.");
|
||||
feishuMsgVo.setTaskType("Design Compliance Confirmation");
|
||||
feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket());
|
||||
feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber());
|
||||
//FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
|
||||
//feishuMsgVo.setContent("Hello! The remaining processing time for the task are 3 days. Please check and address it in a timely manner.");
|
||||
//feishuMsgVo.setTaskType("Design Compliance Confirmation");
|
||||
//feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket());
|
||||
//feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber());
|
||||
|
||||
//飞书跳转链接
|
||||
String hrefFeishu = backUrl + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType();
|
||||
//String hrefFeishu = backUrl + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType();
|
||||
//系统内部跳转链接
|
||||
String href = "<a href='"
|
||||
+ JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||
+ "'>" + " View details" + "</a>";
|
||||
String contentInfo = msgContentEN + " " + href;
|
||||
Map<String,Object> sendMessageMap = new HashMap<>();
|
||||
sendMessageMap.put("hrefFeishu",hrefFeishu);
|
||||
sendMessageMap.put("contentInfo",contentInfo);
|
||||
//String href = "<a href='"
|
||||
// + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||
// + "'>" + " View details" + "</a>";
|
||||
//String contentInfo = msgContentEN + " " + href;
|
||||
//Map<String,Object> sendMessageMap = new HashMap<>();
|
||||
//sendMessageMap.put("hrefFeishu",hrefFeishu);
|
||||
//sendMessageMap.put("contentInfo",contentInfo);
|
||||
|
||||
//发送消息
|
||||
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
//projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,threeDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
}
|
||||
|
||||
if(CollectionUtils.isNotEmpty(currentDaysUserIdList)){
|
||||
currentDaysUserIdList = currentDaysUserIdList.stream().distinct().collect(Collectors.toList());
|
||||
|
||||
List<SysUser> sysUsers = sysUserService.listByIds(currentDaysUserIdList);
|
||||
List<String> thirdIdList = new ArrayList<>();
|
||||
if(CollectionUtils.isNotEmpty(sysUsers)){
|
||||
thirdIdList = sysUsers.stream().map(SysUser::getThirdId).collect(Collectors.toList());
|
||||
}
|
||||
try {
|
||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||
feishuMsgVo.setTitle(msgTitle);
|
||||
feishuMsgVo.setCnContentUpper("您好,您的任务将于今天到期,请及时查看处理");
|
||||
feishuMsgVo.setCnContentLower("项目: " + projectName +
|
||||
"\n法规: " + LAW_CN +
|
||||
"\n发起人: 系统通知");
|
||||
feishuMsgVo.setEnContentUpper("Hello! Your task will expire today. Please check and address it ASAP");
|
||||
feishuMsgVo.setEnContentLower("Project: " + projectName +
|
||||
"\nRegulation No: " + LAW_EN +
|
||||
"\nInitiator: " + MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
feishuMsgVo.setUrl(hrefFeishu);
|
||||
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
||||
feishuService.sendCard(thirdIdList.toArray(new String[thirdIdList.size()]), feishuMsgVo);
|
||||
} catch (IOException e) {
|
||||
log.error("飞书消息推送失败");
|
||||
}
|
||||
//您XXX(项目名称)中GB 7258的设计符合性确认任务今天即将结束,请及时查看处理
|
||||
String msgContentEN = "The design compliance confirmation of "
|
||||
+ projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName()
|
||||
+ " will expire today. Please check and address it in time.";
|
||||
String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket()
|
||||
+ ": You have a design compliance task to complete";
|
||||
//String msgContentEN = "The design compliance confirmation of "
|
||||
// + projectLawsInventoryEO.getSerialNumber() + " in " + projectNameInfoEO.getProjectName()
|
||||
// + " will expire today. Please check and address it in time.";
|
||||
//String msgTitle = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName()+ " " + projectLibraryBase.getTargetMarket()
|
||||
// + ": You have a design compliance task to complete";
|
||||
|
||||
FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
|
||||
feishuMsgVo.setContent("Hello! The task will expire today. Please check and address it in a timely manner.");
|
||||
feishuMsgVo.setTaskType("Design Compliance Confirmation");
|
||||
feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket());
|
||||
feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber());
|
||||
//FeishuMsgVo feishuMsgVo = new FeishuMsgVo();
|
||||
//feishuMsgVo.setContent("Hello! The task will expire today. Please check and address it in a timely manner.");
|
||||
//feishuMsgVo.setTaskType("Design Compliance Confirmation");
|
||||
//feishuMsgVo.setProject(projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + " " + projectLibraryBase.getTargetMarket());
|
||||
//feishuMsgVo.setRegulationNo(projectLawsInventoryEO.getSerialNumber());
|
||||
|
||||
//飞书跳转链接
|
||||
String hrefFeishu = backUrl
|
||||
+ JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink()
|
||||
+ projectLibraryBase.getId()
|
||||
+ JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||
+ "&projectName=" + projectNameInfoEO.getProjectName();
|
||||
//String hrefFeishu = backUrl
|
||||
// + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink()
|
||||
// + projectLibraryBase.getId()
|
||||
// + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||
// + "&projectName=" + projectNameInfoEO.getProjectName();
|
||||
|
||||
|
||||
//系统内部跳转链接
|
||||
String href = "<a href='"
|
||||
+ JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||
+ "&projectName=" + projectNameInfoEO.getProjectName()
|
||||
+ "'>" + " View details" + "</a>";
|
||||
String contentInfo = msgContentEN + " " + href;
|
||||
Map<String,Object> sendMessageMap = new HashMap<>();
|
||||
sendMessageMap.put("hrefFeishu",hrefFeishu);
|
||||
sendMessageMap.put("contentInfo",contentInfo);
|
||||
//String href = "<a href='"
|
||||
// + JumpLinkEnum.DESIGN_AFFIRM_LINK.getLink() + projectLibraryBase.getId() + JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||
// + "&projectName=" + projectNameInfoEO.getProjectName()
|
||||
// + "'>" + " View details" + "</a>";
|
||||
//String contentInfo = msgContentEN + " " + href;
|
||||
//Map<String,Object> sendMessageMap = new HashMap<>();
|
||||
//sendMessageMap.put("hrefFeishu",hrefFeishu);
|
||||
//sendMessageMap.put("contentInfo",contentInfo);
|
||||
|
||||
//发送消息
|
||||
projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
//projectLawsInventoryEOService.sendMessage(msgTitle, msgContentEN,currentDaysUserIdList,projectLawsInventoryEO.getId(),sendMessageMap, feishuMsgVo, MessageTypeEnum.COMPLIANCE_CONFIRMATION,MessageTypeEnum.SYSTEMATIC_NOTIFICATION.getName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
@@ -17,6 +17,7 @@ import java.util.Map;
|
||||
public interface ProjectLibraryBaseMapper extends BaseMapper<ProjectLibraryBase> {
|
||||
/**分页列表*/
|
||||
List<ProjectLibraryBase> queryPageList(@Param("params") Map<String, Object> params);
|
||||
List<ProjectLibraryBase> queryMaimList();
|
||||
// IPage<ProjectLibraryBase> queryPageList(IPage page, Map<String, Object> params);
|
||||
|
||||
List<ProjectLibraryBase> getList(@Param("projectLibraryBase") ProjectLibraryBase projectLibraryBase);
|
||||
|
||||
+113
-15
@@ -15,13 +15,54 @@
|
||||
LEFT JOIN project_laws_inventory pli ON ( pli.stand_id = bdl.id )
|
||||
LEFT JOIN project_task_inventory pti ON ( pli.id = pti.project_laws_inventory_id )
|
||||
WHERE
|
||||
(
|
||||
bdl.id IN ( SELECT DISTINCT stand_id FROM laws_opinion_gather where gather_result = #{params.gatherResult})
|
||||
OR bdl.id IN ( SELECT DISTINCT stand_id FROM laws_technology_evaluation where flow_status = #{params.flowStatus})
|
||||
or pti.design_p_id IS NOT NULL
|
||||
OR pti.prehomo_p_id IS NOT NULL
|
||||
OR pti.verify_p_id IS NOT NULL
|
||||
)
|
||||
<if test="params.isEngineerOrEngineeringInterfacePerson != true">
|
||||
(
|
||||
bdl.id IN (
|
||||
SELECT
|
||||
DISTINCT stand_id
|
||||
FROM laws_opinion_gather
|
||||
where gather_result = #{params.gatherResult}
|
||||
)
|
||||
OR bdl.id IN (
|
||||
SELECT
|
||||
DISTINCT stand_id
|
||||
FROM laws_technology_evaluation
|
||||
where flow_status = #{params.flowStatus}
|
||||
)
|
||||
OR pti.design_p_id IS NOT NULL
|
||||
OR pti.prehomo_p_id IS NOT NULL
|
||||
OR pti.verify_p_id IS NOT NULL
|
||||
)
|
||||
</if>
|
||||
<!--2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。-->
|
||||
<if test="params.isEngineerOrEngineeringInterfacePerson == true">
|
||||
(
|
||||
bdl.id IN (
|
||||
SELECT
|
||||
DISTINCT stand_id
|
||||
FROM
|
||||
laws_opinion_gather
|
||||
where gather_result = #{params.gatherResult} and evaluator_ids like CONCAT(CONCAT('%',#{params.currentUserId}),'%')
|
||||
)
|
||||
OR bdl.id IN (
|
||||
SELECT
|
||||
DISTINCT stand_id
|
||||
FROM
|
||||
laws_technology_evaluation
|
||||
where flow_status = #{params.flowStatus}
|
||||
and id in (
|
||||
select
|
||||
laws_technology_evaluation_id
|
||||
from
|
||||
laws_technology_evaluation_flow_detail
|
||||
where evaluator_id = #{params.currentUserId}
|
||||
)
|
||||
)
|
||||
OR (pti.design_p_id IS NOT NULL and (pli.design_initiator_id = #{params.currentUserId} or pli.design_duty_id = #{params.currentUserId}))
|
||||
OR (pti.prehomo_p_id IS NOT NULL and (pli.prehomo_initiator_id = #{params.currentUserId} or pli.prehomo_duty_id = #{params.currentUserId}))
|
||||
OR (pti.verify_p_id IS NOT NULL and (pli.verify_initiator_id = #{params.currentUserId} or pli.verify_duty_id = #{params.currentUserId}))
|
||||
)
|
||||
</if>
|
||||
${params.condition}
|
||||
GROUP BY bdl.id
|
||||
order by bdl.create_time desc
|
||||
@@ -34,6 +75,12 @@
|
||||
pli.serial_number as "serialNumber",
|
||||
pli.title as "title",
|
||||
pli.project_library_id as "projectLibraryId",
|
||||
pli.design_initiator_id as "designInitiatorId",
|
||||
pli.design_duty_id as "designDutyId",
|
||||
pli.prehomo_initiator_id as "prehomoInitiatorId",
|
||||
pli.prehomo_duty_id as "prehomoDutyId",
|
||||
pli.verify_initiator_id as "verifyInitiatorId",
|
||||
pli.verify_duty_id as "verifyDutyId",
|
||||
pni.project_name as "projectName",
|
||||
pni.id as "projectNameId",
|
||||
pyni.year_name as "yearName",
|
||||
@@ -80,6 +127,16 @@
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="params.isEngineerOrEngineeringInterfacePerson == true">
|
||||
and(
|
||||
pli.design_initiator_id = #{params.currentUserId}
|
||||
or pli.design_duty_id = #{params.currentUserId}
|
||||
or pli.prehomo_initiator_id = #{params.currentUserId}
|
||||
or pli.prehomo_duty_id = #{params.currentUserId}
|
||||
or pli.verify_initiator_id = #{params.currentUserId}
|
||||
or pli.verify_duty_id = #{params.currentUserId}
|
||||
)
|
||||
</if>
|
||||
order by pli.create_time desc
|
||||
</select>
|
||||
|
||||
@@ -96,16 +153,57 @@
|
||||
LEFT JOIN project_laws_inventory pli ON ( pli.stand_id = bdl.id )
|
||||
LEFT JOIN project_task_inventory pti ON ( pli.id = pti.project_laws_inventory_id )
|
||||
WHERE
|
||||
<if test="params.isEngineerOrEngineeringInterfacePerson != true">
|
||||
(
|
||||
bdl.id IN ( SELECT DISTINCT stand_id FROM laws_opinion_gather)
|
||||
OR bdl.id IN ( SELECT DISTINCT stand_id FROM laws_technology_evaluation)
|
||||
or pti.design_p_id IS NOT NULL
|
||||
OR pti.prehomo_p_id IS NOT NULL
|
||||
OR pti.verify_p_id IS NOT NULL
|
||||
bdl.id IN (
|
||||
SELECT
|
||||
DISTINCT stand_id
|
||||
FROM laws_opinion_gather
|
||||
where gather_result = #{params.gatherResult}
|
||||
)
|
||||
<if test="params.condition != '' ">
|
||||
${params.condition}
|
||||
</if>
|
||||
OR bdl.id IN (
|
||||
SELECT
|
||||
DISTINCT stand_id
|
||||
FROM laws_technology_evaluation
|
||||
where flow_status = #{params.flowStatus}
|
||||
)
|
||||
OR pti.design_p_id IS NOT NULL
|
||||
OR pti.prehomo_p_id IS NOT NULL
|
||||
OR pti.verify_p_id IS NOT NULL
|
||||
)
|
||||
</if>
|
||||
<!--2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。-->
|
||||
<if test="params.isEngineerOrEngineeringInterfacePerson == true">
|
||||
(
|
||||
bdl.id IN (
|
||||
SELECT
|
||||
DISTINCT stand_id
|
||||
FROM
|
||||
laws_opinion_gather
|
||||
where gather_result = #{params.gatherResult} and evaluator_ids like CONCAT(CONCAT('%',#{params.currentUserId}),'%')
|
||||
)
|
||||
OR bdl.id IN (
|
||||
SELECT
|
||||
DISTINCT stand_id
|
||||
FROM
|
||||
laws_technology_evaluation
|
||||
where flow_status = #{params.flowStatus}
|
||||
and id in (
|
||||
select
|
||||
laws_technology_evaluation_id
|
||||
from
|
||||
laws_technology_evaluation_flow_detail
|
||||
where evaluator_id = #{params.currentUserId}
|
||||
)
|
||||
)
|
||||
OR (pti.design_p_id IS NOT NULL and (pli.design_initiator_id = #{params.currentUserId} or pli.design_duty_id = #{params.currentUserId}))
|
||||
OR (pti.prehomo_p_id IS NOT NULL and (pli.prehomo_initiator_id = #{params.currentUserId} or pli.prehomo_duty_id = #{params.currentUserId}))
|
||||
OR (pti.verify_p_id IS NOT NULL and (pli.verify_initiator_id = #{params.currentUserId} or pli.verify_duty_id = #{params.currentUserId}))
|
||||
)
|
||||
</if>
|
||||
<if test="params.condition != '' ">
|
||||
${params.condition}
|
||||
</if>
|
||||
GROUP BY bdl.id
|
||||
order by bdl.create_time desc
|
||||
</select>
|
||||
|
||||
+9
-6
@@ -80,12 +80,15 @@
|
||||
or prehomo_flow_task_status =#{ncrTrackVO.inconformity} or prehomo_flow_task_status =#{ncrTrackVO.track}
|
||||
or verify_flow_task_status =#{ncrTrackVO.inconformity} or verify_flow_task_status =#{ncrTrackVO.track}
|
||||
)
|
||||
<if test="ncrTrackVO.userId != null and ncrTrackVO.userId != ''">
|
||||
and (pli.regulation_owner_id =#{ncrTrackVO.userId}
|
||||
or pli.homologation_engineer_id =#{ncrTrackVO.userId}
|
||||
or pli.engineering_interface_person =#{ncrTrackVO.userId}
|
||||
or ptid.user_id =#{ncrTrackVO.userId}
|
||||
)
|
||||
<!--如果当前操作人不是系统管理员角色,查询跟自己相关的数据,如果是系统管理员,查询所有的-->
|
||||
<if test="ncrTrackVO.administrator == 'false'">
|
||||
<if test="ncrTrackVO.userId != null and ncrTrackVO.userId != ''">
|
||||
and (pli.regulation_owner_id =#{ncrTrackVO.userId}
|
||||
or pli.homologation_engineer_id =#{ncrTrackVO.userId}
|
||||
or pli.engineering_interface_person =#{ncrTrackVO.userId}
|
||||
or ptid.user_id =#{ncrTrackVO.userId}
|
||||
)
|
||||
</if>
|
||||
</if>
|
||||
order by pli.create_time desc
|
||||
|
||||
|
||||
+9
@@ -119,6 +119,15 @@
|
||||
</where>
|
||||
order by plb.sort desc, plb.create_time desc
|
||||
</select>
|
||||
<select id="queryMaimList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">
|
||||
|
||||
<include refid="select_item"/>
|
||||
|
||||
<where>
|
||||
parent_id = '' or parent_id is null
|
||||
</where>
|
||||
order by plb.sort desc, plb.create_time desc
|
||||
</select>
|
||||
<!-- <select id="queryPageList" resultType="com.jero.modules.project.entity.ProjectLibraryBase">-->
|
||||
|
||||
<!-- <include refid="select_item"/>-->
|
||||
|
||||
+4
@@ -8,6 +8,7 @@ import com.jero.common.constant.enums.MessageTypeEnum;
|
||||
import com.jero.common.system.vo.LoginUser;
|
||||
import com.jero.modules.feishu.vo.FeishuMsgVo;
|
||||
import com.jero.modules.project.entity.ProjectLawsInventoryEO;
|
||||
import com.jero.modules.project.vo.ProjectTaskUrgVo;
|
||||
import com.jero.modules.system.entity.SysRole;
|
||||
import com.jero.modules.todoCenter.entity.ProcessInfoDetailEO;
|
||||
import com.jero.modules.todoCenter.entity.ProcessInfoEO;
|
||||
@@ -156,4 +157,7 @@ public interface IProjectLawsInventoryEOService extends IService<ProjectLawsInve
|
||||
void addProcessInfo(ProcessInfoEO processInfoEO, String projectLibraryId, Date endTime);
|
||||
|
||||
void addProcessInfoDetail(String processInfoId, List<ProcessInfoDetailEO> processInfoDetailEOList, Date endTime);
|
||||
|
||||
Result<?> taskUrg(ProjectTaskUrgVo projectTaskUrgVo);
|
||||
|
||||
}
|
||||
|
||||
+8
@@ -9,6 +9,7 @@ import com.jero.modules.project.vo.ProjectTaskInventoryVO;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description: 项目库-任务清单表
|
||||
@@ -102,4 +103,11 @@ public interface IProjectTaskInventoryEOService extends IService<ProjectTaskInve
|
||||
List<String> verifyRoleCode(ProjectTaskInventoryVO projectTaskInventoryVO);
|
||||
|
||||
void exportXls(HttpServletResponse response, HttpServletRequest request, ProjectTaskInventoryEO projectTaskInventoryEO);
|
||||
|
||||
/**
|
||||
* 处理历史数据
|
||||
* @param params
|
||||
* @return
|
||||
*/
|
||||
Result<?> disposeHistoryData(Map<String, Object> params);
|
||||
}
|
||||
|
||||
+178
-42
@@ -25,6 +25,7 @@ import com.jero.modules.project.service.ILawsComplianceBoardService;
|
||||
import com.jero.modules.system.entity.SysCategory;
|
||||
import com.jero.modules.system.entity.SysDictItem;
|
||||
import com.jero.modules.system.service.ISysDictItemService;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.modules.system.service.impl.SysCategoryServiceImpl;
|
||||
import com.jero.modules.system.service.impl.SysDictItemServiceImpl;
|
||||
import com.jero.modules.system.util.StringUtils;
|
||||
@@ -68,6 +69,8 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
private ISysDictItemService sysDictItemService;
|
||||
@Autowired
|
||||
private ProjectTaskInventoryDetailEOMapper projectTaskInventoryDetailEOMapper;
|
||||
@Autowired
|
||||
private ISysUserService sysUserService;
|
||||
|
||||
@Override
|
||||
public IPage queryPageList(Map<String, Object> params) {
|
||||
@@ -81,6 +84,18 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
//只查询 法规技术评估流程状态、法规意见收集 收集结果 为已完成的数据
|
||||
params.put("flowStatus", GatherResultEnum.COMPLETED.getValue());
|
||||
params.put("gatherResult", GatherResultEnum.COMPLETED.getValue());
|
||||
|
||||
/**
|
||||
* 2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。
|
||||
*/
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
boolean isEngineer = this.sysUserService.isEngineer(currentUser);
|
||||
boolean isEngineeringInterfacePerson = this.sysUserService.isEngineeringInterfacePerson(currentUser);
|
||||
if(isEngineer || isEngineeringInterfacePerson){
|
||||
params.put("currentUserId",currentUser.getId());
|
||||
params.put("isEngineerOrEngineeringInterfacePerson",true);
|
||||
}
|
||||
|
||||
IPage page = new Page(pageNo, pageSize);
|
||||
IPage infoPage = this.lawsComplianceBoardMapper.queryPageList(page, params);
|
||||
List records = infoPage.getRecords();
|
||||
@@ -142,18 +157,28 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
|
||||
@Override
|
||||
public JSONObject queryComplianceResultList(Map<String, Object> params) {
|
||||
/**
|
||||
* 2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。
|
||||
*/
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
boolean isEngineer = this.sysUserService.isEngineer(currentUser);
|
||||
boolean isEngineeringInterfacePerson = this.sysUserService.isEngineeringInterfacePerson(currentUser);
|
||||
if(isEngineer || isEngineeringInterfacePerson){
|
||||
params.put("currentUserId",currentUser.getId());
|
||||
params.put("isEngineerOrEngineeringInterfacePerson",true);
|
||||
}
|
||||
|
||||
JSONObject result = new JSONObject();
|
||||
String id = (String) params.get("id");
|
||||
String cut = (String) params.get("cut");
|
||||
List<Map<String,Object>> complianceResultList = this.lawsComplianceBoardMapper.queryComplianceResultList(params);
|
||||
if(CollectionUtils.isNotEmpty(complianceResultList)){
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<String> projectLawsInventoryIdList = complianceResultList.stream().map(map-> (String) map.get("id")).collect(Collectors.toList());
|
||||
QueryWrapper<ProjectTaskInventoryDetailEO> taskDetailQueryWrapper = new QueryWrapper<>();
|
||||
taskDetailQueryWrapper.lambda().in(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,projectLawsInventoryIdList);
|
||||
List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOList = this.projectTaskInventoryDetailEOMapper.selectList(taskDetailQueryWrapper);
|
||||
this.createTaskInventoryEOList(complianceResultList,projectTaskInventoryDetailEOList,currentUser);
|
||||
this.disposeComplianceResult(complianceResultList,cut);
|
||||
this.createTaskInventoryEOList(complianceResultList,projectTaskInventoryDetailEOList,currentUser,isEngineer,isEngineeringInterfacePerson);
|
||||
this.disposeComplianceResult(complianceResultList,cut,isEngineer,isEngineeringInterfacePerson);
|
||||
}
|
||||
result.put("complianceResultList",complianceResultList);
|
||||
|
||||
@@ -161,6 +186,10 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
QueryWrapper<LawsOpinionGatherEO> opinionGatherEOQueryWrapper = new QueryWrapper<>();
|
||||
opinionGatherEOQueryWrapper.lambda().eq(LawsOpinionGatherEO::getStandId,id);
|
||||
opinionGatherEOQueryWrapper.lambda().eq(LawsOpinionGatherEO::getGatherResult,GatherResultEnum.COMPLETED.getValue());
|
||||
//如果当前登录用户是工程师或工程接口人,只查询自己为评估人的法规意见收集数据。
|
||||
if(isEngineer || isEngineeringInterfacePerson){
|
||||
opinionGatherEOQueryWrapper.lambda().like(LawsOpinionGatherEO::getEvaluatorIds,currentUser.getId());
|
||||
}
|
||||
int opinionGatherCount = this.lawsOpinionGatherEOService.count(opinionGatherEOQueryWrapper);
|
||||
result.put("opinionGather",opinionGatherCount);
|
||||
|
||||
@@ -168,6 +197,10 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
QueryWrapper<LawsTechnologyEvaluationEO> evaluationEOQueryWrapper = new QueryWrapper<>();
|
||||
evaluationEOQueryWrapper.lambda().eq(LawsTechnologyEvaluationEO::getStandId,id);
|
||||
evaluationEOQueryWrapper.lambda().eq(LawsTechnologyEvaluationEO::getFlowStatus,GatherResultEnum.COMPLETED.getValue());
|
||||
//如果当前登录用户是工程师或工程接口人,只查询自己为评估人的法规技术评估数据。
|
||||
if(isEngineer || isEngineeringInterfacePerson){
|
||||
this.lawsTechnologyEvaluationEOService.createQueryPermission(evaluationEOQueryWrapper,null,false);
|
||||
}
|
||||
int evaluationCount = this.lawsTechnologyEvaluationEOService.count(evaluationEOQueryWrapper);
|
||||
result.put("technologyEvaluation",evaluationCount);
|
||||
return result;
|
||||
@@ -178,8 +211,14 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
* @param complianceResultList
|
||||
* @param projectTaskInventoryDetailEOList
|
||||
* @param currentUser
|
||||
* @param isEngineer 是否是工程师角色
|
||||
* @param isEngineeringInterfacePerson 是否是工程接口人角色
|
||||
*/
|
||||
private void createTaskInventoryEOList(List<Map<String, Object>> complianceResultList, List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOList, LoginUser currentUser) {
|
||||
private void createTaskInventoryEOList(List<Map<String, Object>> complianceResultList,
|
||||
List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOList,
|
||||
LoginUser currentUser,
|
||||
boolean isEngineer,
|
||||
boolean isEngineeringInterfacePerson) {
|
||||
if(CollectionUtils.isNotEmpty(complianceResultList) && CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOList)){
|
||||
for (Map<String, Object> complianceResult : complianceResultList) {
|
||||
String designPid = "";
|
||||
@@ -199,44 +238,97 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
String verifyTaskStatus = "";
|
||||
String verifyTaskDefinitionKey = "";
|
||||
String verifyTaskDetailId = "";
|
||||
|
||||
for (ProjectTaskInventoryDetailEO projectTaskInventoryDetail : projectTaskInventoryDetailEOList) {
|
||||
if(StringUtils.equals(complianceResult.get("id").toString(),projectTaskInventoryDetail.getProjectTaskInventoryId())){
|
||||
/**
|
||||
* 查询数据权限,所有用户都是,自己的待办,可以跳转到处理任务详情页进行处理。
|
||||
* 不是自己的待办,只能跳转到处理任务的详情页。
|
||||
*/
|
||||
if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())){
|
||||
designPid = projectTaskInventoryDetail.getActiProcInstId();
|
||||
designTaskId = projectTaskInventoryDetail.getTaskId();
|
||||
designTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey();
|
||||
designTaskDetailId = projectTaskInventoryDetail.getId();
|
||||
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){
|
||||
designTaskStatus = projectTaskInventoryDetail.getStatus();
|
||||
}else {
|
||||
designTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
|
||||
//2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。
|
||||
if((isEngineer || isEngineeringInterfacePerson)){
|
||||
for (ProjectTaskInventoryDetailEO projectTaskInventoryDetail : projectTaskInventoryDetailEOList) {
|
||||
if(StringUtils.equals(complianceResult.get("id").toString(),projectTaskInventoryDetail.getProjectTaskInventoryId())){
|
||||
/**
|
||||
* 查询数据权限,所有用户都是,自己的待办,可以跳转到处理任务详情页进行处理。
|
||||
* 不是自己的待办,只能跳转到处理任务的详情页。
|
||||
*/
|
||||
if(StringUtils.equals(complianceResult.get("designInitiatorId").toString(),currentUser.getId())
|
||||
|| StringUtils.equals(complianceResult.get("designDutyId").toString(),currentUser.getId())){
|
||||
if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())){
|
||||
designPid = projectTaskInventoryDetail.getActiProcInstId();
|
||||
designTaskId = projectTaskInventoryDetail.getTaskId();
|
||||
designTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey();
|
||||
designTaskDetailId = projectTaskInventoryDetail.getId();
|
||||
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){
|
||||
designTaskStatus = projectTaskInventoryDetail.getStatus();
|
||||
}else {
|
||||
designTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
if(StringUtils.equals(complianceResult.get("prehomoInitiatorId").toString(),currentUser.getId())
|
||||
|| StringUtils.equals(complianceResult.get("prehomoDutyId").toString(),currentUser.getId())){
|
||||
if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){
|
||||
prehomoPid = projectTaskInventoryDetail.getActiProcInstId();
|
||||
prehomoTaskId = projectTaskInventoryDetail.getTaskId();
|
||||
prehomoTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey();
|
||||
prehomoTaskDetailId = projectTaskInventoryDetail.getId();
|
||||
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){
|
||||
prehomoTaskStatus = projectTaskInventoryDetail.getStatus();
|
||||
}else {
|
||||
prehomoTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
if(StringUtils.equals(complianceResult.get("verifyInitiatorId").toString(),currentUser.getId())
|
||||
|| StringUtils.equals(complianceResult.get("verifyDutyId").toString(),currentUser.getId())){
|
||||
if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){
|
||||
verifyPid = projectTaskInventoryDetail.getActiProcInstId();
|
||||
verifyTaskId = projectTaskInventoryDetail.getTaskId();
|
||||
verifyTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey();
|
||||
verifyTaskDetailId = projectTaskInventoryDetail.getId();
|
||||
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){
|
||||
verifyTaskStatus = projectTaskInventoryDetail.getStatus();
|
||||
}else {
|
||||
verifyTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){
|
||||
prehomoPid = projectTaskInventoryDetail.getActiProcInstId();
|
||||
prehomoTaskId = projectTaskInventoryDetail.getTaskId();
|
||||
prehomoTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey();
|
||||
prehomoTaskDetailId = projectTaskInventoryDetail.getId();
|
||||
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){
|
||||
prehomoTaskStatus = projectTaskInventoryDetail.getStatus();
|
||||
}else {
|
||||
prehomoTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
|
||||
}
|
||||
}else {
|
||||
for (ProjectTaskInventoryDetailEO projectTaskInventoryDetail : projectTaskInventoryDetailEOList) {
|
||||
if(StringUtils.equals(complianceResult.get("id").toString(),projectTaskInventoryDetail.getProjectTaskInventoryId())){
|
||||
/**
|
||||
* 查询数据权限,所有用户都是,自己的待办,可以跳转到处理任务详情页进行处理。
|
||||
* 不是自己的待办,只能跳转到处理任务的详情页。
|
||||
*/
|
||||
if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(), FlowTypeEnum.SJFHXSHLC.getValue())){
|
||||
designPid = projectTaskInventoryDetail.getActiProcInstId();
|
||||
designTaskId = projectTaskInventoryDetail.getTaskId();
|
||||
designTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey();
|
||||
designTaskDetailId = projectTaskInventoryDetail.getId();
|
||||
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){
|
||||
designTaskStatus = projectTaskInventoryDetail.getStatus();
|
||||
}else {
|
||||
designTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){
|
||||
verifyPid = projectTaskInventoryDetail.getActiProcInstId();
|
||||
verifyTaskId = projectTaskInventoryDetail.getTaskId();
|
||||
verifyTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey();
|
||||
verifyTaskDetailId = projectTaskInventoryDetail.getId();
|
||||
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){
|
||||
verifyTaskStatus = projectTaskInventoryDetail.getStatus();
|
||||
}else {
|
||||
verifyTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
|
||||
if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){
|
||||
prehomoPid = projectTaskInventoryDetail.getActiProcInstId();
|
||||
prehomoTaskId = projectTaskInventoryDetail.getTaskId();
|
||||
prehomoTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey();
|
||||
prehomoTaskDetailId = projectTaskInventoryDetail.getId();
|
||||
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){
|
||||
prehomoTaskStatus = projectTaskInventoryDetail.getStatus();
|
||||
}else {
|
||||
prehomoTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
|
||||
}
|
||||
}
|
||||
if(StringUtils.equals(projectTaskInventoryDetail.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){
|
||||
verifyPid = projectTaskInventoryDetail.getActiProcInstId();
|
||||
verifyTaskId = projectTaskInventoryDetail.getTaskId();
|
||||
verifyTaskDefinitionKey = projectTaskInventoryDetail.getTaskDefinitionKey();
|
||||
verifyTaskDetailId = projectTaskInventoryDetail.getId();
|
||||
if(StringUtils.equals(currentUser.getId(),projectTaskInventoryDetail.getUserId())){
|
||||
verifyTaskStatus = projectTaskInventoryDetail.getStatus();
|
||||
}else {
|
||||
verifyTaskStatus = TaskStatusEnum.SHOW_FLAG.getValue();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -267,10 +359,35 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
}
|
||||
}
|
||||
|
||||
public void disposeComplianceResult(List<Map<String,Object>> complianceResultList,String cut){
|
||||
public void disposeComplianceResult(List<Map<String,Object>> complianceResultList,String cut,boolean isEngineer,boolean isEngineeringInterfacePerson){
|
||||
if(CollectionUtils.isNotEmpty(complianceResultList)){
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
List<SysDictItem> dutyTerritoryDictItemList = sysDictItemService.selectItemsByDictCode("duty_territory");
|
||||
for (Map<String, Object> complianceResult : complianceResultList) {
|
||||
if(isEngineer || isEngineeringInterfacePerson){
|
||||
if(!StringUtils.equals(complianceResult.get("designInitiatorId").toString(),currentUser.getId())
|
||||
|| !StringUtils.equals(complianceResult.get("designDutyId").toString(),currentUser.getId())){
|
||||
complianceResult.put("designStatus","");
|
||||
complianceResult.put("designFlowTaskStatus","");
|
||||
complianceResult.put("designPId","");
|
||||
complianceResult.put("designPersonChargeFeedback","");
|
||||
}
|
||||
if(!StringUtils.equals(complianceResult.get("prehomoInitiatorId").toString(),currentUser.getId())
|
||||
&& !StringUtils.equals(complianceResult.get("prehomoDutyId").toString(),currentUser.getId())){
|
||||
complianceResult.put("prehomoStatus","");
|
||||
complianceResult.put("prehomoFlowTaskStatus","");
|
||||
complianceResult.put("prehomoPId","");
|
||||
complianceResult.put("prehomoPersonChargeFeedback","");
|
||||
}
|
||||
if(!StringUtils.equals(complianceResult.get("verifyInitiatorId").toString(),currentUser.getId())
|
||||
&& !StringUtils.equals(complianceResult.get("verifyDutyId").toString(),currentUser.getId())){
|
||||
complianceResult.put("verifyStatus","");
|
||||
complianceResult.put("verifyFlowTaskStatus","");
|
||||
complianceResult.put("verifyPId","");
|
||||
complianceResult.put("verifyPersonChargeFeedback","");
|
||||
}
|
||||
}
|
||||
|
||||
if (complianceResult.get("designStatus") != null) {
|
||||
String textByValue = DesignComplianceStatusEnum.getTextByValue(complianceResult.get("designStatus").toString(), cut);
|
||||
complianceResult.put("designStatus_dicText",textByValue);
|
||||
@@ -342,6 +459,15 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
String condition = this.getConditionStr(params);
|
||||
params.put("condition",StringUtils.isNotEmpty(condition) ? condition : "");
|
||||
List<Map<String,Object>> exportData = new ArrayList<>();
|
||||
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
boolean isEngineer = this.sysUserService.isEngineer(currentUser);
|
||||
boolean isEngineeringInterfacePerson = this.sysUserService.isEngineeringInterfacePerson(currentUser);
|
||||
if(isEngineer || isEngineeringInterfacePerson){
|
||||
params.put("currentUserId",currentUser.getId());
|
||||
params.put("isEngineerOrEngineeringInterfacePerson",true);
|
||||
}
|
||||
|
||||
if(StringUtils.equals(exportAll,"no")){
|
||||
IPage page = this.queryPageList(params);
|
||||
exportData = page.getRecords();
|
||||
@@ -358,7 +484,7 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
List<Map<String,Object>> complianceResultList = new ArrayList<>();
|
||||
if(CollectionUtils.isNotEmpty(idList)){
|
||||
complianceResultList = this.lawsComplianceBoardMapper.queryComplianceResultList(params);
|
||||
this.disposeComplianceResult(complianceResultList,cut);
|
||||
this.disposeComplianceResult(complianceResultList,cut,isEngineer,isEngineeringInterfacePerson);
|
||||
}
|
||||
|
||||
String title = "";
|
||||
@@ -468,8 +594,18 @@ public class LawsComplianceBoardServiceImpl implements ILawsComplianceBoardServi
|
||||
@Override
|
||||
public void exportComplianceResultDetail(HttpServletResponse response, HttpServletRequest request, Map<String, Object> params) {
|
||||
String cut = (String) params.get("cut");
|
||||
/**
|
||||
* 2022-11-01 增加数据权限:如果当前登录用户,是工程师、工程接口人角色,只能查看到跟自己相关的数据。其余角色保留之前的查询结果。
|
||||
*/
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
boolean isEngineer = this.sysUserService.isEngineer(currentUser);
|
||||
boolean isEngineeringInterfacePerson = this.sysUserService.isEngineeringInterfacePerson(currentUser);
|
||||
if(isEngineer || isEngineeringInterfacePerson){
|
||||
params.put("currentUserId",currentUser.getId());
|
||||
params.put("isEngineerOrEngineeringInterfacePerson",true);
|
||||
}
|
||||
List<Map<String,Object>> exportData = this.lawsComplianceBoardMapper.queryComplianceResultList(params);
|
||||
this.disposeComplianceResult(exportData,cut);
|
||||
this.disposeComplianceResult(exportData,cut,isEngineer,isEngineeringInterfacePerson);
|
||||
String title = "";
|
||||
String fileName = "";
|
||||
if(StringUtils.equals(cut, CutEnum.CN.getValue())){
|
||||
|
||||
+5
@@ -80,6 +80,11 @@ public class NcrTrackServiceImpl extends ServiceImpl<NcrTrackMapper, NcrTrackVO>
|
||||
|
||||
ncrTrackVO.setInconformity(ReviewResultEnum.INCONFORMITY.getValue());
|
||||
ncrTrackVO.setTrack(ReviewResultEnum.TO_TRACK.getValue());
|
||||
|
||||
//如果当前登录用户是系统管理员角色,可以查看所有的数据
|
||||
boolean administrator = this.sysUserService.isAdministrator();
|
||||
ncrTrackVO.setAdministrator(administrator ? "true":"false");
|
||||
|
||||
List<NcrTrackVO> infoList = ncrTrackMapper.getInfoList(ncrTrackVO);
|
||||
infoList = infoList.stream().distinct().collect(Collectors.toList());
|
||||
List<NcrTrackVO> trackVOList = new ArrayList<>();
|
||||
|
||||
+176
@@ -47,6 +47,7 @@ import com.jero.modules.project.enums.*;
|
||||
import com.jero.modules.project.mapper.*;
|
||||
import com.jero.modules.project.service.*;
|
||||
import com.jero.modules.project.util.WordUtil;
|
||||
import com.jero.modules.project.vo.ProjectTaskUrgVo;
|
||||
import com.jero.modules.split.common.FileUnZip;
|
||||
import com.jero.modules.system.entity.SysAnnouncement;
|
||||
import com.jero.modules.system.entity.SysCategory;
|
||||
@@ -9025,4 +9026,179 @@ public class ProjectLawsInventoryEOServiceImpl extends ServiceImpl<ProjectLawsIn
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 任务清单催办
|
||||
* @param projectTaskUrgVo
|
||||
* @return
|
||||
*/
|
||||
@Override
|
||||
public Result<?> taskUrg(ProjectTaskUrgVo projectTaskUrgVo) {
|
||||
if (ObjectUtils.isEmpty(projectTaskUrgVo.getProjectLawsInventoryIds())) {
|
||||
if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) {
|
||||
throw new JeroBootException("请选择至少一条数据");
|
||||
} else {
|
||||
throw new JeroBootException("Please select at least one piece of data");
|
||||
}
|
||||
|
||||
}
|
||||
if (ObjectUtils.isEmpty(projectTaskUrgVo.getType())) {
|
||||
if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) {
|
||||
throw new JeroBootException("请选择催办类型");
|
||||
} else {
|
||||
throw new JeroBootException("Please select the type of reminder");
|
||||
}
|
||||
}
|
||||
|
||||
String title = "";
|
||||
|
||||
if (FlowTypeEnum.SJFHXSHLC.getValue().equals(projectTaskUrgVo.getType())) {
|
||||
title = MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getCn() + "/" + MessageType2Enum.DESIGN_COMPLIANCE_CONFIRMATION.getEn();
|
||||
} else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(projectTaskUrgVo.getType())) {
|
||||
title = MessageType2Enum.PRE_HOMO_CONFIRMATION.getCn() + "/" + MessageType2Enum.PRE_HOMO_CONFIRMATION.getEn();
|
||||
} else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(projectTaskUrgVo.getType())) {
|
||||
title = MessageType2Enum.VALIDATION_COMPLIANCE_CONFIRMATION.getCn() + "/" + MessageType2Enum.VALIDATION_COMPLIANCE_CONFIRMATION.getEn();
|
||||
} else {
|
||||
if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) {
|
||||
throw new JeroBootException("请选择正确的催办类型");
|
||||
} else {
|
||||
throw new JeroBootException("Please select the correct type of reminder");
|
||||
}
|
||||
}
|
||||
String[] ProjectLawsInventoryIds = projectTaskUrgVo.getProjectLawsInventoryIds().split(",");
|
||||
ProjectLawsInventoryEO projectLawsInventoryEO = baseMapper.selectById(ProjectLawsInventoryIds[0]);
|
||||
if (ObjectUtils.isEmpty(projectLawsInventoryEO)) {
|
||||
if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) {
|
||||
throw new JeroBootException("程序异常,请刷新页面并重新操作");
|
||||
} else {
|
||||
throw new JeroBootException("The program is abnormal, please refresh the page and operate again");
|
||||
}
|
||||
}
|
||||
|
||||
ProjectLibraryBase projectLibraryBase = projectLibraryBaseMapper.selectOne(new QueryWrapper<ProjectLibraryBase>()
|
||||
.lambda().eq(ProjectLibraryBase::getId, projectLawsInventoryEO.getProjectLibraryId()));
|
||||
|
||||
QueryWrapper<ProjectNameInfoEO> projectNameInfoEOQueryWrapper = new QueryWrapper<>();
|
||||
projectNameInfoEOQueryWrapper.lambda().eq(ProjectNameInfoEO::getId,projectLibraryBase.getProjectNameId());
|
||||
ProjectNameInfoEO projectNameInfoEO = projectNameInfoEOMapper.selectOne(projectNameInfoEOQueryWrapper);
|
||||
|
||||
QueryWrapper<ProjectYearNameInfoEO> projectYearInfoEOQueryWrapper = new QueryWrapper<>();
|
||||
projectYearInfoEOQueryWrapper.lambda().eq(ProjectYearNameInfoEO::getId,projectLibraryBase.getYearNameId());
|
||||
ProjectYearNameInfoEO projectYearNameInfoEO = projectYearNameInfoEOMapper.selectOne(projectYearInfoEOQueryWrapper);
|
||||
|
||||
//项目名称
|
||||
String projectVersion = (com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getParentId()) && com.jero.modules.system.util.StringUtils.isBlank(projectLibraryBase.getProjectVersion())) ? "00" : projectLibraryBase.getProjectVersion();
|
||||
String projectName = projectNameInfoEO.getProjectName() + "-" + projectYearNameInfoEO.getYearName() + "-" + projectLibraryBase.getTargetMarket() + "-" + projectVersion;
|
||||
|
||||
LoginUser currentUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
|
||||
|
||||
//飞书跳转链接
|
||||
String hrefFeishu = backUrl
|
||||
+ JumpLinkEnum.INVENTORY_AFFIRM_LINK.getLink()
|
||||
+ projectLibraryBase.getId()
|
||||
+ JumpLinkEnum.DESIGN_AFFIRM_LINK.getType()
|
||||
+ "&projectName=" + projectNameInfoEO.getProjectName() + "-"
|
||||
+ projectYearNameInfoEO.getYearName()
|
||||
+ "&targetMarket=" + projectLibraryBase.getTargetMarket();
|
||||
|
||||
for (String projectLawsInventoryId : ProjectLawsInventoryIds) {
|
||||
ProjectLawsInventoryEO lawsInventoryEO = baseMapper.selectById(projectLawsInventoryId);
|
||||
if (ObjectUtils.isEmpty(lawsInventoryEO)) {
|
||||
if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) {
|
||||
throw new JeroBootException("程序异常,请刷新页面并重新操作");
|
||||
} else {
|
||||
throw new JeroBootException("The program is abnormal, please refresh the page and operate again");
|
||||
}
|
||||
}
|
||||
String LAW_CN = lawsInventoryEO.getSerialNumber() + " " + lawsInventoryEO.getTitle();//法规
|
||||
BussDocumentLibraryEO bussDocumentLibraryEO = bussDocumentLibraryEOService.queryById(lawsInventoryEO.getStandId());
|
||||
String LAW_EN = lawsInventoryEO.getSerialNumber() + " " + bussDocumentLibraryEO.getTitleEn();//法规
|
||||
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
String userId = "";
|
||||
String dueDate = null;
|
||||
|
||||
QueryWrapper<ProjectTaskInventoryEO> queryProjectTaskInventoryWrapper = new QueryWrapper<>();
|
||||
queryProjectTaskInventoryWrapper.isNotNull("design_p_id");
|
||||
queryProjectTaskInventoryWrapper.lambda().eq(ProjectTaskInventoryEO::getProjectLawsInventoryId, projectLawsInventoryId);
|
||||
List<ProjectTaskInventoryEO> list = projectTaskInventoryEOService.list(queryProjectTaskInventoryWrapper);
|
||||
|
||||
if (FlowTypeEnum.SJFHXSHLC.getValue().equals(projectTaskUrgVo.getType())) {
|
||||
dueDate = sdf.format(lawsInventoryEO.getDesignDueDate());
|
||||
if (DesignComplianceStatusEnum.TO_REVIEW.getValue().equals(list.get(0).getDesignStatus())
|
||||
||DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue().equals(list.get(0).getDesignStatus())) {
|
||||
if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) {
|
||||
throw new JeroBootException(LAW_CN + "已提交,无法催办");
|
||||
} else {
|
||||
throw new JeroBootException(LAW_EN + "is committed,can't be urged");
|
||||
}
|
||||
}
|
||||
if (ObjectUtils.isNotEmpty(lawsInventoryEO.getDesignDutyId())) {
|
||||
userId = lawsInventoryEO.getDesignDutyId();
|
||||
}
|
||||
} else if (FlowTypeEnum.PREHOMOQRLC.getValue().equals(projectTaskUrgVo.getType())) {
|
||||
dueDate = sdf.format(lawsInventoryEO.getPrehomoDueDate());
|
||||
if (DesignComplianceStatusEnum.TO_REVIEW.getValue().equals(list.get(0).getDesignStatus())
|
||||
||DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue().equals(list.get(0).getDesignStatus())) {
|
||||
if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) {
|
||||
throw new JeroBootException(LAW_CN + "已提交,无法催办");
|
||||
} else {
|
||||
throw new JeroBootException(LAW_EN + "is committed,can't be urged");
|
||||
}
|
||||
}
|
||||
if (ObjectUtils.isNotEmpty(lawsInventoryEO.getPrehomoDutyId())) {
|
||||
userId = lawsInventoryEO.getPrehomoDutyId();
|
||||
}
|
||||
} else if (FlowTypeEnum.YZFHXSCLC.getValue().equals(projectTaskUrgVo.getType())) {
|
||||
dueDate = sdf.format(lawsInventoryEO.getVerifyDueDate());
|
||||
if (DesignComplianceStatusEnum.TO_REVIEW.getValue().equals(list.get(0).getDesignStatus())
|
||||
||DesignComplianceStatusEnum.REVIEW_COMPLETED.getValue().equals(list.get(0).getDesignStatus())) {
|
||||
if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) {
|
||||
throw new JeroBootException(LAW_CN + "已提交,无法催办");
|
||||
} else {
|
||||
throw new JeroBootException(LAW_EN + "is committed,can't be urged");
|
||||
}
|
||||
}
|
||||
if (ObjectUtils.isNotEmpty(lawsInventoryEO.getVerifyDutyId())) {
|
||||
userId = lawsInventoryEO.getVerifyDutyId();
|
||||
}
|
||||
}
|
||||
|
||||
String[] thirdId = new String[1];
|
||||
if (ObjectUtils.isNotEmpty(userId)) {
|
||||
SysUser user = sysUserMapper.selectById(userId);
|
||||
if (ObjectUtils.isNotEmpty(user)) {
|
||||
thirdId[0] = user.getThirdId();
|
||||
}
|
||||
}
|
||||
try {
|
||||
FeishuMsg2Vo feishuMsgVo = new FeishuMsg2Vo();
|
||||
feishuMsgVo.setTitle(title);
|
||||
feishuMsgVo.setCnContentUpper("您好,请尽快查看处理此项任务,谢谢!");
|
||||
feishuMsgVo.setCnContentLower("项目: " + projectName +
|
||||
"\n法规: " + LAW_CN +
|
||||
"\n发起人: " + currentUser.getUsername() +
|
||||
"\n截止时间: " + dueDate);
|
||||
feishuMsgVo.setEnContentUpper("Hello! Please check and address the task ASAP. Thank you!");
|
||||
feishuMsgVo.setEnContentLower("Project: " + projectName +
|
||||
"\nRegulation No: " + LAW_EN +
|
||||
"\nInitiator: " + currentUser.getUsername() +
|
||||
"\nDue Date: " + dueDate);
|
||||
feishuMsgVo.setUrl(hrefFeishu);
|
||||
feishuMsgVo.setColor(MsgColorEnum.GREEN.getValue()); // 颜色
|
||||
feishuService.sendCard(thirdId, feishuMsgVo);
|
||||
} catch (IOException e) {
|
||||
log.error("飞书消息推送失败");
|
||||
}
|
||||
}
|
||||
if (CutEnum.CN.getValue().equals(projectTaskUrgVo.getCut())) {
|
||||
return new Result<>().success("催办成功!");
|
||||
} else {
|
||||
return new Result<>().success("Success of the urging!");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
+162
-9
@@ -50,6 +50,7 @@ import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
||||
import org.apache.poi.ss.usermodel.Cell;
|
||||
import org.apache.poi.ss.usermodel.Row;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
@@ -491,19 +492,45 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
+ "-" + projectVersion);
|
||||
}
|
||||
}
|
||||
//所有主项目
|
||||
List<ProjectLibraryBase> projectLibraryBaseListParent = projectLibraryBaseMapper.queryMaimList();
|
||||
disposeData(projectLibraryBaseListParent,"",false);
|
||||
for(ProjectLibraryBase projectLibraryBase: projectLibraryBaseListParent){
|
||||
//目标市场
|
||||
String targetMarket = getMarket(params, targetMarketList, projectLibraryBase);
|
||||
//主项目的版本号
|
||||
String projectVersion = "";
|
||||
if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||
projectVersion = "00";
|
||||
}else{
|
||||
projectVersion = projectLibraryBase.getProjectVersion();
|
||||
}
|
||||
if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){
|
||||
projectLibraryBase.setProjectName(projectLibraryBase.getProjectName()
|
||||
+ "-" + projectLibraryBase.getYearName()
|
||||
+ "-" + targetMarket
|
||||
+ "-" + projectVersion);
|
||||
}
|
||||
}
|
||||
|
||||
//项目名称模糊查询特殊处理(因为项目名称是多字段拼接的)
|
||||
if(ObjectUtils.isNotEmpty(params.get("projectName"))){
|
||||
result = result.stream().filter(e->e.getProjectName().toLowerCase().contains(String.valueOf(params.get("projectName")).toLowerCase())).collect(Collectors.toList());
|
||||
}
|
||||
//数据组装
|
||||
List<ProjectLibraryBase> resultTemp = new LinkedList<>();
|
||||
for (ProjectLibraryBase projectLibraryBase : result) {
|
||||
if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||
resultTemp.add(projectLibraryBase);
|
||||
}
|
||||
}
|
||||
|
||||
for (ProjectLibraryBase projectLibraryBase : resultTemp) {
|
||||
//处理搜索版本号,(因为列表展示数据是以主项目为主并绑定子项目, 所以搜索的时候只有子项目这种情况需要特殊处理)
|
||||
List<ProjectLibraryBase> resultNew = getProjectLibraryBases(result, projectLibraryBaseListParent);
|
||||
|
||||
|
||||
//数据组装
|
||||
// List<ProjectLibraryBase> resultTemp = new LinkedList<>();
|
||||
// for (ProjectLibraryBase projectLibraryBase : result) {
|
||||
// if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||
// resultTemp.add(projectLibraryBase);
|
||||
// }
|
||||
// }
|
||||
|
||||
for (ProjectLibraryBase projectLibraryBase : resultNew) {
|
||||
//子项目
|
||||
List<ProjectLibraryBase> children = result.stream()
|
||||
.filter(e -> StringUtils.isNotBlank(e.getParentId()) && projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList());
|
||||
@@ -527,9 +554,135 @@ public class ProjectLibraryBaseServiceImpl extends ServiceImpl<ProjectLibraryBas
|
||||
}
|
||||
}
|
||||
}
|
||||
return resultTemp;
|
||||
return resultNew;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
private List<ProjectLibraryBase> getProjectLibraryBases(List<ProjectLibraryBase> result, List<ProjectLibraryBase> projectLibraryBaseListParent) {
|
||||
//result中的主项目以及子项目对应的主项目
|
||||
List<ProjectLibraryBase> resultParent = new LinkedList<>();
|
||||
for (ProjectLibraryBase projectLibraryBase : result) {
|
||||
if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||
resultParent.add(projectLibraryBase);
|
||||
}else{
|
||||
//子项目
|
||||
List<ProjectLibraryBase> collect = result.stream()
|
||||
.filter(e -> projectLibraryBase.getId().equals(e.getParentId()))
|
||||
.collect(Collectors.toList());
|
||||
if(ObjectUtils.isNotEmpty(collect)){
|
||||
resultParent.addAll(collect);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//搜索结果中子项目的子项目
|
||||
List<ProjectLibraryBase> resultChild = new ArrayList<>();
|
||||
//所有子项目
|
||||
List<ProjectLibraryBase> childrenListTemp = result.stream().filter(e -> StringUtils.isNotBlank(e.getParentId())).collect(Collectors.toList());
|
||||
List<String> childrenIdListTemp = childrenListTemp.stream().map(ProjectLibraryBase::getId).collect(Collectors.toList());
|
||||
|
||||
//子项目的子项目
|
||||
List<ProjectLibraryBase> collect3 = result.stream().filter(e -> StringUtils.isNotBlank(e.getParentId()) && childrenIdListTemp.contains(e.getParentId())).collect(Collectors.toList());
|
||||
|
||||
if(ObjectUtils.isNotEmpty(collect3)){
|
||||
//子项目的子项目的父id
|
||||
List<String> childList = collect3.stream().map(ProjectLibraryBase::getParentId).collect(Collectors.toList());
|
||||
//子项目
|
||||
resultChild = childrenListTemp.stream().filter(e -> childList.contains(e.getId())).collect(Collectors.toList());
|
||||
}
|
||||
|
||||
|
||||
//所有的主项目与通过筛选条件查询来的主项目进行过滤
|
||||
List<ProjectLibraryBase> resultNew = new LinkedList<>();
|
||||
//主项目
|
||||
List<ProjectLibraryBase> collect1 = result.stream().filter(e -> StringUtils.isBlank(e.getParentId())).collect(Collectors.toList());
|
||||
resultNew.addAll(collect1);
|
||||
for (ProjectLibraryBase projectLibraryBase : projectLibraryBaseListParent) {
|
||||
//子项目
|
||||
List<ProjectLibraryBase> collect = result.stream().filter(e -> projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList());
|
||||
if(ObjectUtils.isNotEmpty(collect)){
|
||||
resultNew.add(projectLibraryBase);
|
||||
}
|
||||
//子项目的子项目
|
||||
if(ObjectUtils.isNotEmpty(resultChild)){
|
||||
List<ProjectLibraryBase> collect2 = resultChild.stream().filter(e -> e.getParentId().equals(projectLibraryBase.getId())).collect(Collectors.toList());
|
||||
if(ObjectUtils.isNotEmpty(collect2)){
|
||||
resultNew.add(projectLibraryBase);
|
||||
}
|
||||
}
|
||||
}
|
||||
resultNew = resultNew.stream().distinct().collect(Collectors.toList());
|
||||
return resultNew;
|
||||
}
|
||||
// /**
|
||||
// * 分页列表查询
|
||||
// *
|
||||
// * @return
|
||||
// */
|
||||
// @Override
|
||||
// public List<ProjectLibraryBase> queryPageList(Map<String,Object> params) {
|
||||
// List<ProjectLibraryBase> result = projectLibraryBaseMapper.queryPageList(params);
|
||||
// disposeData(result,"",false);
|
||||
// //目标市场
|
||||
// List<DictModel> targetMarketList = sysDictService.queryDictItemsByCode(DicCodeEnum.REGION.getCode());
|
||||
//
|
||||
// for(ProjectLibraryBase projectLibraryBase: result){
|
||||
// //目标市场
|
||||
// String targetMarket = getMarket(params, targetMarketList, projectLibraryBase);
|
||||
// //主项目的版本号
|
||||
// String projectVersion = "";
|
||||
// if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||
// projectVersion = "00";
|
||||
// }else{
|
||||
// projectVersion = projectLibraryBase.getProjectVersion();
|
||||
// }
|
||||
// if(StringUtils.isNotBlank(projectLibraryBase.getYearName())){
|
||||
// projectLibraryBase.setProjectName(projectLibraryBase.getProjectName()
|
||||
// + "-" + projectLibraryBase.getYearName()
|
||||
// + "-" + targetMarket
|
||||
// + "-" + projectVersion);
|
||||
// }
|
||||
// }
|
||||
// //项目名称模糊查询特殊处理(因为项目名称是多字段拼接的)
|
||||
// if(ObjectUtils.isNotEmpty(params.get("projectName"))){
|
||||
// result = result.stream().filter(e->e.getProjectName().toLowerCase().contains(String.valueOf(params.get("projectName")).toLowerCase())).collect(Collectors.toList());
|
||||
// }
|
||||
// //数据组装
|
||||
// List<ProjectLibraryBase> resultTemp = new LinkedList<>();
|
||||
// for (ProjectLibraryBase projectLibraryBase : result) {
|
||||
// if(StringUtils.isBlank(projectLibraryBase.getParentId())){
|
||||
// resultTemp.add(projectLibraryBase);
|
||||
// }
|
||||
// }
|
||||
//
|
||||
// for (ProjectLibraryBase projectLibraryBase : resultTemp) {
|
||||
// //子项目
|
||||
// List<ProjectLibraryBase> children = result.stream()
|
||||
// .filter(e -> StringUtils.isNotBlank(e.getParentId()) && projectLibraryBase.getId().equals(e.getParentId())).collect(Collectors.toList());
|
||||
// if(children.size() != 0){
|
||||
// //子项目的基础上添加的子项目
|
||||
// List<String> childrenIdList = children.stream().map(ProjectLibraryBase::getId).distinct().collect(Collectors.toList());
|
||||
// List<ProjectLibraryBase> childrenList = result.stream()
|
||||
// .filter(e -> StringUtils.isNotBlank(e.getParentId()) && childrenIdList.contains(e.getParentId())).collect(Collectors.toList());
|
||||
// children.addAll(childrenList);
|
||||
//
|
||||
// //按版本排序
|
||||
// Collections.sort(children);
|
||||
// projectLibraryBase.setChildren(children);
|
||||
// //最后一个版本号(主项目和主项目都需要设置)
|
||||
// String versionLast = children.get(children.size() - 1).getProjectVersion();
|
||||
// //主版本设置最后一个版本号(用于项目扩展中的版本号)
|
||||
// projectLibraryBase.setVersionLast(versionLast);
|
||||
// for (ProjectLibraryBase child : children) {
|
||||
// //每个子版本版本设置最后一个版本号(用于项目扩展中的版本号)
|
||||
// child.setVersionLast(versionLast);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// return resultTemp;
|
||||
// }
|
||||
|
||||
private String getMarket(Map<String, Object> params, List<DictModel> targetMarketList, ProjectLibraryBase projectLibraryBase) {
|
||||
List<DictModel> dictModelList = new ArrayList<>();
|
||||
for (String s : projectLibraryBase.getTargetMarket().split(",")) {
|
||||
|
||||
+67
@@ -1392,6 +1392,73 @@ public class ProjectTaskInventoryEOServiceImpl extends ServiceImpl<ProjectTaskIn
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Result<?> disposeHistoryData(Map<String, Object> params) {
|
||||
List<ProjectTaskInventoryEO> projectTaskInventoryEOList = this.projectTaskInventoryEOService.list();
|
||||
|
||||
//获取没有任务清单数据的法规清单数据
|
||||
List<String> projectLawsInventoryIdList = projectTaskInventoryEOList.stream().map(ProjectTaskInventoryEO::getProjectLawsInventoryId).distinct().collect(Collectors.toList());
|
||||
QueryWrapper<ProjectLawsInventoryEO> lawsInventoryQueryWrap = new QueryWrapper<>();
|
||||
lawsInventoryQueryWrap.lambda().notIn(ProjectLawsInventoryEO::getId,projectLawsInventoryIdList);
|
||||
List<ProjectLawsInventoryEO> projectLawsInventoryEOList = this.projectLawsInventoryEOService.list(lawsInventoryQueryWrap);
|
||||
|
||||
//如果有(没有任务清单数据的法规清单数据),进行历史数据处理
|
||||
if(CollectionUtils.isNotEmpty(projectLawsInventoryEOList)){
|
||||
|
||||
List<String> projectLawsInventoryIds = projectLawsInventoryEOList.stream().map(ProjectLawsInventoryEO::getId).distinct().collect(Collectors.toList());
|
||||
|
||||
QueryWrapper<ProjectTaskInventoryDetailEO> taskInventoryDetailQueryWrap = new QueryWrapper<>();
|
||||
taskInventoryDetailQueryWrap.lambda().in(ProjectTaskInventoryDetailEO::getProjectTaskInventoryId,projectLawsInventoryIds);
|
||||
List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOS = this.projectTaskInventoryDetailEOMapper.selectList(taskInventoryDetailQueryWrap);
|
||||
|
||||
List<ProjectTaskInventoryEO> projectTaskInventoryEOAddList = new ArrayList<>();
|
||||
projectLawsInventoryEOList.forEach(lawsInventoryEO -> {
|
||||
ProjectTaskInventoryEO projectTaskInventoryEO = new ProjectTaskInventoryEO();
|
||||
String projectTaskInventoryId = UUID.randomUUID().toString().replace("-", "");
|
||||
projectTaskInventoryEO.setId(projectTaskInventoryId);
|
||||
projectTaskInventoryEO.setProjectLawsInventoryId(lawsInventoryEO.getId());
|
||||
projectTaskInventoryEO.setStandId(lawsInventoryEO.getStandId());
|
||||
projectTaskInventoryEO.setCreateBy("admin");
|
||||
projectTaskInventoryEO.setSysOrgCode("A01");
|
||||
|
||||
if(CollectionUtils.isNotEmpty(projectTaskInventoryDetailEOS)){
|
||||
//获取当前法规清单数据 启动的符合性流程数据
|
||||
List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailListTemp = projectTaskInventoryDetailEOS.stream().filter(taskInventoryDetail -> {
|
||||
boolean flag = false;
|
||||
if (StringUtils.equals(taskInventoryDetail.getProjectTaskInventoryId(), projectTaskInventoryEO.getProjectLawsInventoryId())) {
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isNotEmpty(projectTaskInventoryDetailListTemp)){
|
||||
for (ProjectTaskInventoryDetailEO projectTaskInventoryDetailEO : projectTaskInventoryDetailListTemp) {
|
||||
//流程实例id
|
||||
String actiProcInstId = projectTaskInventoryDetailEO.getActiProcInstId();
|
||||
if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.SJFHXSHLC.getValue())){
|
||||
projectTaskInventoryEO.setDesignPId(actiProcInstId);
|
||||
projectTaskInventoryEO.setDesignFlowTaskStatus(ReviewResultEnum.TO_BE_CONFIRMED.getValue());
|
||||
projectTaskInventoryEO.setDesignStatus(DesignComplianceStatusEnum.TO_SUBMIT.getValue());
|
||||
}else if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.PREHOMOQRLC.getValue())){
|
||||
projectTaskInventoryEO.setPrehomoPId(actiProcInstId);
|
||||
projectTaskInventoryEO.setPrehomoFlowTaskStatus(ReviewResultEnum.TO_BE_CONFIRMED.getValue());
|
||||
projectTaskInventoryEO.setPrehomoStatus(DesignComplianceStatusEnum.TO_SUBMIT.getValue());
|
||||
}else if(StringUtils.equals(projectTaskInventoryDetailEO.getFlowType(),FlowTypeEnum.YZFHXSCLC.getValue())){
|
||||
projectTaskInventoryEO.setVerifyPId(actiProcInstId);
|
||||
projectTaskInventoryEO.setVerifyFlowTaskStatus(ReviewResultEnum.TO_BE_CONFIRMED.getValue());
|
||||
projectTaskInventoryEO.setVerifyStatus(DesignComplianceStatusEnum.TO_SUBMIT.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
projectTaskInventoryEOAddList.add(projectTaskInventoryEO);
|
||||
});
|
||||
this.projectTaskInventoryEOService.saveBatch(projectTaskInventoryEOAddList);
|
||||
}
|
||||
return new Result<>().success("处理任务清单历史数据成功!");
|
||||
}
|
||||
|
||||
public void setSheetStyle(HSSFSheet sheet){
|
||||
for (int i = 0; i <= 19; i++){
|
||||
sheet.setColumnWidth(i,4000);
|
||||
|
||||
+15
@@ -370,6 +370,9 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
|
||||
List<ProjectTaskInventoryFeedbackEO> projectTaskInventoryFeedbackEOS = this.baseMapper.selectList(queryWrapper);
|
||||
if(CollectionUtils.isNotEmpty(projectTaskInventoryFeedbackEOS)){
|
||||
List<String> idList = projectTaskInventoryFeedbackEOS.stream().distinct().map(ProjectTaskInventoryFeedbackEO::getProjectTaskInventoryId).collect(Collectors.toList());
|
||||
List<String> userNameList = projectTaskInventoryFeedbackEOS.stream().distinct().map(ProjectTaskInventoryFeedbackEO::getCreateBy).collect(Collectors.toList());
|
||||
List<SysUser> userList = this.sysUserService.queryUserIdListByNameList(userNameList);
|
||||
|
||||
QueryWrapper<ProjectTaskInventoryDetailEO> inventoryDetailEOQueryWrapper = new QueryWrapper<>();
|
||||
inventoryDetailEOQueryWrapper.lambda().in(ProjectTaskInventoryDetailEO::getId,idList);
|
||||
List<ProjectTaskInventoryDetailEO> projectTaskInventoryDetailEOList = projectTaskInventoryDetailEOMapper.selectList(inventoryDetailEOQueryWrapper);
|
||||
@@ -386,6 +389,18 @@ public class ProjectTaskInventoryFeedbackEOServiceImpl extends ServiceImpl<Proje
|
||||
if(CollectionUtils.isNotEmpty(projectTaskInventoryDetailList)){
|
||||
projectTaskInventoryFeedbackEO.setStatus(projectTaskInventoryDetailList.get(0).getStatus());
|
||||
}
|
||||
if(CollectionUtils.isNotEmpty(userList)){
|
||||
List<SysUser> userListTemp = userList.stream().filter(user -> {
|
||||
boolean flag = false;
|
||||
if(StringUtils.equals(projectTaskInventoryFeedbackEO.getCreateBy(),user.getUsername())){
|
||||
flag = true;
|
||||
}
|
||||
return flag;
|
||||
}).collect(Collectors.toList());
|
||||
if(CollectionUtils.isNotEmpty(userListTemp)){
|
||||
projectTaskInventoryFeedbackEO.setUserId(userListTemp.get(0).getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return projectTaskInventoryFeedbackEOS;
|
||||
|
||||
+2
-2
@@ -137,8 +137,8 @@ public class NcrTrackVO implements Serializable {
|
||||
private String projectTaskInventoryDetailId;
|
||||
//任务节点定义key
|
||||
private String taskDefinitionKey;
|
||||
|
||||
|
||||
//是否是系统管理员角色
|
||||
private String administrator;
|
||||
|
||||
|
||||
|
||||
|
||||
+15
@@ -0,0 +1,15 @@
|
||||
package com.jero.modules.project.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class ProjectTaskUrgVo {
|
||||
|
||||
private String cut;
|
||||
|
||||
private String projectLawsInventoryIds;
|
||||
|
||||
private String type;
|
||||
|
||||
}
|
||||
@@ -35,6 +35,7 @@ public class BusMes {
|
||||
private String handlingTime; // 待办流程-批量办理专用
|
||||
private String projectLawsInventoryIds; // 待办流程-批量办理专用
|
||||
private String taskDefinitionKey; // 待办流程-批量办理专用
|
||||
private String cut;//中英文切换标识
|
||||
|
||||
|
||||
public String getUserId() {
|
||||
@@ -193,4 +194,12 @@ public class BusMes {
|
||||
public void setTaskDefinitionKey(String taskDefinitionKey) {
|
||||
this.taskDefinitionKey = taskDefinitionKey;
|
||||
}
|
||||
|
||||
public String getCut() {
|
||||
return cut;
|
||||
}
|
||||
|
||||
public void setCut(String cut) {
|
||||
this.cut = cut;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user