Explorar el Código

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

dzx hace 1 año
padre
commit
a17eb8cf6b

+ 58 - 52
src/main/java/com/xjrsoft/module/form/service/impl/FormExecuteServiceImpl.java

@@ -261,7 +261,11 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
             }
             if (StrUtil.isNotBlank(field)) {
                 Order order = new Order();
-                order.setDirection(StrUtil.equalsIgnoreCase(orderStr, "descend") ? Direction.DESC : Direction.ASC);
+                order.setDirection(Direction.ASC);
+                if (orderStr.equals("descend") || orderStr.equals("desc")) {
+                    order.setDirection(Direction.DESC);
+                }
+//                order.setDirection(StrUtil.equalsIgnoreCase(orderStr, "descend") ? Direction.DESC : Direction.ASC);
                 order.setField(field);
                 page.setOrder(order);
             }
@@ -838,7 +842,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
             TableConfig tableConfig = mainTable.get();
             String tableName = tableConfig.getTableName();
 
-            Optional<TableStructureConfig> mainConfig = formDesignConfig.getTableStructureConfigs().stream().filter(x->x.getTableName().equals(tableName)).findFirst();
+            Optional<TableStructureConfig> mainConfig = formDesignConfig.getTableStructureConfigs().stream().filter(x -> x.getTableName().equals(tableName)).findFirst();
 
             if (!mainConfig.isPresent()) {
                 throw new MyException("主表不存在");
@@ -891,7 +895,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
             }
 
             //构建子表单数据
-            wrapperChildEntity(datasource, tableConfigList, childMaps, formData, formDesignConfig,keyValue, autoCodeList);
+            wrapperChildEntity(datasource, tableConfigList, childMaps, formData, formDesignConfig, keyValue, autoCodeList);
 
 
             //此时的formData 已经是剔除了子表单数据了
@@ -969,7 +973,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
             Entity where = Entity.create(tableName).set(pk.getName(), keyValue2);
 
             //构建子表单数据
-            wrapperChildEntity(datasource, tableConfigList, childMaps, formData, formDesignConfig,keyValue2, null);
+            wrapperChildEntity(datasource, tableConfigList, childMaps, formData, formDesignConfig, keyValue2, null);
 
             // 处理字段值
             formData = handleFormDataForSave(formData, formDesignConfig, tableName, null);
@@ -1132,7 +1136,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
             //构建子表单数据
             //深拷贝一份表单数据 避免修改原表单数据
             Map<String, Object> newFormData = ObjectUtil.cloneIfPossible(formData);
-            Map<String, List<Map<String, Object>>> childFormData = wrapperChildEntity(datasource, tableConfigList, childMaps, newFormData, formDesignConfig,keyValue, null);
+            Map<String, List<Map<String, Object>>> childFormData = wrapperChildEntity(datasource, tableConfigList, childMaps, newFormData, formDesignConfig, keyValue, null);
 
             // 处理字段值
             newFormData = handleFormDataForSave(newFormData, formDesignConfig, tableName, null);
@@ -1147,9 +1151,9 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
             Session session = Session.create(datasource);
             session.beginTransaction();
 
-            if (pk.getTypeName().equals("varchar")){ //常用主键为String类型,默认为Long类型
+            if (pk.getTypeName().equals("varchar")) { //常用主键为String类型,默认为Long类型
                 where = where.set(pk.getName(), keyValue.toString());
-            }else {
+            } else {
                 where = where.set(pk.getName(), keyValue);
             }
             // 更新主表数据
@@ -1219,7 +1223,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
             Long keyValue = MapUtil.get(formData, pk.getName(), Long.class);
 
             //如果不为空就是更新
-            if(ObjectUtil.isNotNull(keyValue)){
+            if (ObjectUtil.isNotNull(keyValue)) {
                 //where 拼接 id
                 Entity where = Entity.create(tableName).set(pk.getName(), keyValue);
 
@@ -1227,7 +1231,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
                 //构建子表单数据
                 //深拷贝一份表单数据 避免修改原表单数据
                 Map<String, Object> newFormData = ObjectUtil.cloneIfPossible(formData);
-                Map<String, List<Map<String, Object>>> childFormData = wrapperChildEntity(datasource, tableConfigList, childMaps, newFormData, formDesignConfig,keyValue, null);
+                Map<String, List<Map<String, Object>>> childFormData = wrapperChildEntity(datasource, tableConfigList, childMaps, newFormData, formDesignConfig, keyValue, null);
 
                 // 处理字段值
                 Map<String, Object> toSaveFormData = handleFormDataForSave(newFormData, formDesignConfig, tableName, null);
@@ -1275,17 +1279,17 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
                 //深拷贝一份表单数据 避免修改原表单数据
                 Map<String, Object> newFormData = ObjectUtil.cloneIfPossible(formData);
 
-                if(ObjectUtil.isNull(newFormData)){
+                if (ObjectUtil.isNull(newFormData)) {
                     newFormData = new HashMap<>();
                 }
                 // 自动编码code
                 List<String> autoCodeList = new ArrayList<>();
-                Map<String, List<Map<String, Object>>> childFormData = wrapperChildEntity(datasource, tableConfigList, childMaps, newFormData, formDesignConfig,keyValue, autoCodeList);
+                Map<String, List<Map<String, Object>>> childFormData = wrapperChildEntity(datasource, tableConfigList, childMaps, newFormData, formDesignConfig, keyValue, autoCodeList);
 
                 // 处理字段值
                 Map<String, Object> toSaveFormData = handleFormDataForSave(newFormData, formDesignConfig, tableName, autoCodeList);
                 toSaveFormData.put(pk.getName(), keyValue);
-                formData.put(pk.getName(),keyValue);
+                formData.put(pk.getName(), keyValue);
                 //此时的formData 已经是剔除了子表单数据了
                 where.putAll(toSaveFormData);
 
@@ -1369,8 +1373,8 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
             //如果是日期类型 默认设置查询参数为两个
             if (queryConfig.getIsDate()) {
                 //根据查询配置的字段名 从参数里面找到对应的值  如果是时间类型 需要查询start 和 end
-                String startTime = MapUtil.get(params,queryConfig.getFieldName() + GlobalConstant.START_TIME_SUFFIX,String.class);
-                String endTime = MapUtil.get(params,queryConfig.getFieldName() + GlobalConstant.END_TIME_SUFFIX,String.class);
+                String startTime = MapUtil.get(params, queryConfig.getFieldName() + GlobalConstant.START_TIME_SUFFIX, String.class);
+                String endTime = MapUtil.get(params, queryConfig.getFieldName() + GlobalConstant.END_TIME_SUFFIX, String.class);
 
                 //如果全都没有数据 则跳过
                 if (startTime == null && endTime == null) {
@@ -1405,7 +1409,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
 
             } else {
 
-                Object value = MapUtil.get(params,queryConfig.getFieldName(),Object.class);
+                Object value = MapUtil.get(params, queryConfig.getFieldName(), Object.class);
                 //如果没有数据 则跳过
                 if (value == null || StrUtil.isEmpty(String.valueOf(value))) {
                     continue;
@@ -1450,8 +1454,8 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
 
                 if (TIME_CLASS_NAME.contains(className)) {
                     //根据查询配置的字段名 从参数里面找到对应的值  如果是时间类型 需要查询start 和 end
-                    String startTime = MapUtil.get(params,queryConfig.getFieldName() + GlobalConstant.START_TIME_SUFFIX,String.class);
-                    String endTime = MapUtil.get(params,queryConfig.getFieldName() + GlobalConstant.END_TIME_SUFFIX,String.class);
+                    String startTime = MapUtil.get(params, queryConfig.getFieldName() + GlobalConstant.START_TIME_SUFFIX, String.class);
+                    String endTime = MapUtil.get(params, queryConfig.getFieldName() + GlobalConstant.END_TIME_SUFFIX, String.class);
 
                     if (startTime != null) {
                         GreaterThanEquals geq = new GreaterThanEquals(); // ">="
@@ -1501,10 +1505,9 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
         Expression dataAuthExpression = AuthorityUtil.getDataAuthExpressionByTableName(tableName, null);
 
         if (ObjectUtil.isNotNull(dataAuthExpression)) {
-            if(queryExpression == null){
+            if (queryExpression == null) {
                 queryExpression = dataAuthExpression;
-            }
-            else {
+            } else {
                 queryExpression = new AndExpression(queryExpression, dataAuthExpression);
             }
         }
@@ -1520,7 +1523,6 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
     }
 
 
-
     /**
      * 根据配置信息获取不分页列表数据
      *
@@ -1667,8 +1669,8 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
             //如果是日期类型 默认设置查询参数为两个
             if (queryConfig.getIsDate()) {
                 //根据查询配置的字段名 从参数里面找到对应的值  如果是时间类型 需要查询start 和 end
-                String startTime = MapUtil.get(params, fieldName + GlobalConstant.START_TIME_SUFFIX,String.class);
-                String endTime = MapUtil.get(params, fieldName + GlobalConstant.END_TIME_SUFFIX,String.class);
+                String startTime = MapUtil.get(params, fieldName + GlobalConstant.START_TIME_SUFFIX, String.class);
+                String endTime = MapUtil.get(params, fieldName + GlobalConstant.END_TIME_SUFFIX, String.class);
 
                 //如果全都没有数据 则跳过
                 if (startTime == null && endTime == null) {
@@ -1682,12 +1684,16 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
                     if (StrUtil.isNotEmpty(startTime)) startRightExp = new StringValue(startTime);
                     if (StrUtil.isNotEmpty(endTime)) endRightExp = new StringValue(endTime);
                 } else if (type == JdbcType.DATE || type == JdbcType.TIMESTAMP) {
-                    if (StrUtil.isNotEmpty(startTime)) startRightExp = new TimestampValue().withValue(Timestamp.valueOf(LocalDateTimeUtil.parseDateByLength(startTime)));
-                    if (StrUtil.isNotEmpty(endTime)) endRightExp = new TimestampValue().withValue(Timestamp.valueOf(LocalDateTimeUtil.parseDateByLength(endTime)));
+                    if (StrUtil.isNotEmpty(startTime))
+                        startRightExp = new TimestampValue().withValue(Timestamp.valueOf(LocalDateTimeUtil.parseDateByLength(startTime)));
+                    if (StrUtil.isNotEmpty(endTime))
+                        endRightExp = new TimestampValue().withValue(Timestamp.valueOf(LocalDateTimeUtil.parseDateByLength(endTime)));
                 } else if (StrUtil.equalsIgnoreCase(queryColumn.getTypeName(), OracleFieldsType.TIME.getType())) {
                     // oracle时间字段处理
-                    if (StrUtil.isNotEmpty(startTime)) startRightExp = new StringValue(StringPool.ZERO + StringPool.SPACE + startTime);
-                    if (StrUtil.isNotEmpty(endTime))endRightExp = new StringValue(StringPool.ZERO + StringPool.SPACE + endTime);
+                    if (StrUtil.isNotEmpty(startTime))
+                        startRightExp = new StringValue(StringPool.ZERO + StringPool.SPACE + startTime);
+                    if (StrUtil.isNotEmpty(endTime))
+                        endRightExp = new StringValue(StringPool.ZERO + StringPool.SPACE + endTime);
                 }
                 if (startTime != null) {
                     GreaterThanEquals geq = new GreaterThanEquals(); // ">="
@@ -1717,7 +1723,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
 
             } else {
 
-                Object value = MapUtil.get(params, fieldName,Object.class);
+                Object value = MapUtil.get(params, fieldName, Object.class);
                 //如果没有数据 则跳过
                 if (value == null || StrUtil.isEmpty(String.valueOf(value))) {
                     continue;
@@ -1762,8 +1768,8 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
 
                 if (TIME_CLASS_NAME.contains(className)) {
                     //根据查询配置的字段名 从参数里面找到对应的值  如果是时间类型 需要查询start 和 end
-                    String startTime = MapUtil.get(params, fieldName + GlobalConstant.START_TIME_SUFFIX,String.class);
-                    String endTime = MapUtil.get(params, fieldName + GlobalConstant.END_TIME_SUFFIX,String.class);
+                    String startTime = MapUtil.get(params, fieldName + GlobalConstant.START_TIME_SUFFIX, String.class);
+                    String endTime = MapUtil.get(params, fieldName + GlobalConstant.END_TIME_SUFFIX, String.class);
 
                     if (startTime != null) {
                         GreaterThanEquals geq = new GreaterThanEquals(); // ">="
@@ -1813,10 +1819,9 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
         Expression dataAuthExpression = AuthorityUtil.getDataAuthExpressionByTableName(tableName, null);
 
         if (ObjectUtil.isNotNull(dataAuthExpression)) {
-            if(queryExpression == null){
+            if (queryExpression == null) {
                 queryExpression = dataAuthExpression;
-            }
-            else {
+            } else {
                 queryExpression = new AndExpression(queryExpression, dataAuthExpression);
             }
         }
@@ -2188,6 +2193,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
 
     /**
      * 处理保存的表单数据
+     *
      * @param formData
      * @param formDesignConfig
      */
@@ -2223,7 +2229,7 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
                 if (timeObj instanceof String) {
                     resultData.put(bindField, LocalDateTimeUtil.parseDbTime(String.valueOf(timeObj), dbType));
                 } else if (timeObj instanceof LocalTime) {
-                    resultData.put(bindField,timeObj);
+                    resultData.put(bindField, timeObj);
                 } else {
                     resultData.put(bindField, null);
                 }
@@ -2231,46 +2237,46 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
                 Object start = MapUtils.getObject(formData, bindStartTimeField);
                 Object end = MapUtils.getObject(formData, bindEndTimeField);
                 if (ObjectUtil.isNotEmpty(start)) {
-                    if (start instanceof String){
+                    if (start instanceof String) {
                         resultData.put(bindStartTimeField, LocalDateTimeUtil.parseDbTime(String.valueOf(start), dbType));
                     } else {
-                        resultData.put(bindStartTimeField,start);
+                        resultData.put(bindStartTimeField, start);
                     }
-                }
-                else {
-                    resultData.put(bindStartTimeField,null);
+                } else {
+                    resultData.put(bindStartTimeField, null);
                 }
                 if (ObjectUtil.isNotEmpty(end)) {
-                    if (end instanceof String){
+                    if (end instanceof String) {
                         resultData.put(bindEndTimeField, LocalDateTimeUtil.parseDbTime(String.valueOf(end), dbType));
                     } else {
-                        resultData.put(bindEndTimeField,end);
+                        resultData.put(bindEndTimeField, end);
                     }
-                }else {
-                    resultData.put(bindEndTimeField,null);
+                } else {
+                    resultData.put(bindEndTimeField, null);
                 }
             } else if (StrUtil.equalsIgnoreCase(type, ComponentTypeConstant.DATE)) {
                 Object valueStr = MapUtils.getObject(formData, bindField);
                 if (ObjectUtil.isNotEmpty(valueStr)) {
                     resultData.put(bindField, valueStr instanceof LocalDateTime ? valueStr : DateTimeUtil.parseDate(LocalDateTimeUtil.parseDate(String.valueOf(valueStr), format).toString()));
-                }else {
-                    resultData.put(bindField,null);
+                } else {
+                    resultData.put(bindField, null);
                 }
             } else if (StrUtil.equalsIgnoreCase(type, ComponentTypeConstant.DATE_RANGE)) {
                 Object start = MapUtils.getObject(formData, bindStartTimeField);
                 Object end = MapUtils.getObject(formData, bindEndTimeField);
                 if (ObjectUtil.isNotEmpty(start)) {
                     resultData.put(bindStartTimeField, start instanceof LocalDateTime ? start : DateTimeUtil.parseDate(LocalDateTimeUtil.parseDate(String.valueOf(start), format).toString()));
-                }else {
-                    resultData.put(bindStartTimeField,null);
+                } else {
+                    resultData.put(bindStartTimeField, null);
                 }
                 if (ObjectUtil.isNotEmpty(end)) {
                     resultData.put(bindEndTimeField, end instanceof LocalDateTime ? end : DateTimeUtil.parseDate(LocalDateTimeUtil.parseDate(String.valueOf(end), format).toString()));
-                }else {
-                    resultData.put(bindEndTimeField,null);
+                } else {
+                    resultData.put(bindEndTimeField, null);
                 }
             } else if (StrUtil.equalsIgnoreCase(type, ComponentTypeConstant.AUTO_CODE)) {
-                if (autoCodeList != null) autoCodeList.add(MapUtils.getString(options, ComponentTypeConstant.AUTO_CODE_RULE));
+                if (autoCodeList != null)
+                    autoCodeList.add(MapUtils.getString(options, ComponentTypeConstant.AUTO_CODE_RULE));
             }
         }
         return resultData;
@@ -2368,8 +2374,8 @@ public class FormExecuteServiceImpl implements IFormExecuteService {
                 myColumnInfos.add(myColumnInfo);
 
                 DeskColumnsVo myColumnInfo1 = new DeskColumnsVo();
-                if (!column.getName().equals(pk.get().getName())){
-                    myColumnInfo1.setLabel(column.getComment()+ StringPool.UNDERSCORE + "接口");
+                if (!column.getName().equals(pk.get().getName())) {
+                    myColumnInfo1.setLabel(column.getComment() + StringPool.UNDERSCORE + "接口");
                     myColumnInfo1.setProp(column.getName() + StringPool.UNDERSCORE + "api");
                     myColumnInfos.add(myColumnInfo1);
                 }

+ 1 - 1
src/main/java/com/xjrsoft/module/oa/entity/NewsRelation.java

@@ -28,7 +28,7 @@ public class NewsRelation implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @ApiModelProperty("主键")
-    private Long id;
+    private String id;
 
     @ApiModelProperty("新闻主键")
     private Long newsId;

+ 50 - 34
src/main/java/com/xjrsoft/module/oa/service/impl/NewsServiceImpl.java

@@ -161,7 +161,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
 
         //如果状态是2,表示立即发布的公告,需要将阅读人添加进阅读关系表
         if(addProclamationDto.getStatus() == 2){
-            addRelation(news);
+            addRelation(news, addProclamationDto, 2);
         }
 
         //公告需要添加阅读关系,关系类型 1=部门 2=人员 3=班级
@@ -251,7 +251,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
                 .eq(News::getTypeId, 2)
                 .like(dto.getFullHead() != null, News::getFullHead, dto.getFullHead())
                 .like(dto.getKeyword() != null, News::getNewsContent, dto.getKeyword())
-                .orderByDesc(News::getReleaseTime)
+                .orderByDesc(News::getId)
                 .disableSubLogicDel();
         IPage<ProclamationPageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), ProclamationPageVo.class, queryNews);
         return page;
@@ -272,7 +272,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
                 .eq(NewsRelation::getUserId, StpUtil.getLoginIdAsLong())
                 .or()
                 .eq(News::getSendRange, 2)
-                .orderByDesc(News::getReleaseTime)
+                .orderByDesc(News::getId)
                 .disableSubLogicDel();
         ;
         IPage<ProclamationPageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), ProclamationPageVo.class, queryNews);
@@ -304,7 +304,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
             xjrNews.setModifyUserId(StpUtil.getLoginIdAsLong());
             xjrNews.setModifyDate(LocalDateTime.now());
 
-            addRelation(xjrNews);
+            addRelation(xjrNews, null, 1);
         }
 
         if (xjrNews.getStatus() == 3) {
@@ -399,40 +399,56 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
      * @param xjrNews
      * @return
      */
-    private Boolean addRelation(News xjrNews){
+    private Boolean addRelation(News xjrNews ,AddProclamationDto addProclamationDto, int flag){
         if (xjrNews.getSendRange() == 3) {
-            //查出当前公告的关系配置
-            //部门
-            LambdaQueryWrapper<NewsRelationConfig> queryDeptList = new LambdaQueryWrapper<>();
-            queryDeptList
-                    .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
-                    .eq(NewsRelationConfig::getRelationType, 1);
-            List<NewsRelationConfig> deptList = newsRelationConfigMapper.selectList(queryDeptList);
             List<Long> deptIdList = new ArrayList<>();
-            for (NewsRelationConfig newsRelationConfig : deptList) {
-                deptIdList.add(newsRelationConfig.getRelationId());
-            }
-
-            //人员
-            LambdaQueryWrapper<NewsRelationConfig> queryPersonalList = new LambdaQueryWrapper<>();
-            queryPersonalList
-                    .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
-                    .eq(NewsRelationConfig::getRelationType, 2);
-            List<NewsRelationConfig> personalList = newsRelationConfigMapper.selectList(queryPersonalList);
             List<Long> personalIdList = new ArrayList<>();
-            for (NewsRelationConfig newsRelationConfig : personalList) {
-                personalIdList.add(newsRelationConfig.getRelationId());
+            List<Long> classIdList = new ArrayList<>();
+            if(flag == 1) {
+                //查出当前公告的关系配置
+                //部门
+                LambdaQueryWrapper<NewsRelationConfig> queryDeptList = new LambdaQueryWrapper<>();
+                queryDeptList
+                        .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
+                        .eq(NewsRelationConfig::getRelationType, 1);
+                List<NewsRelationConfig> deptList = newsRelationConfigMapper.selectList(queryDeptList);
+                for (NewsRelationConfig newsRelationConfig : deptList) {
+                    deptIdList.add(newsRelationConfig.getRelationId());
+                }
+
+                //人员
+                LambdaQueryWrapper<NewsRelationConfig> queryPersonalList = new LambdaQueryWrapper<>();
+                queryPersonalList
+                        .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
+                        .eq(NewsRelationConfig::getRelationType, 2);
+                List<NewsRelationConfig> personalList = newsRelationConfigMapper.selectList(queryPersonalList);
+                for (NewsRelationConfig newsRelationConfig : personalList) {
+                    personalIdList.add(newsRelationConfig.getRelationId());
+                }
+
+                //班级
+                LambdaQueryWrapper<NewsRelationConfig> queryClassList = new LambdaQueryWrapper<>();
+                queryClassList
+                        .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
+                        .eq(NewsRelationConfig::getRelationType, 3);
+                List<NewsRelationConfig> classList = newsRelationConfigMapper.selectList(queryClassList);
+                for (NewsRelationConfig newsRelationConfig : classList) {
+                    classIdList.add(newsRelationConfig.getRelationId());
+                }
             }
 
-            //班级
-            LambdaQueryWrapper<NewsRelationConfig> queryClassList = new LambdaQueryWrapper<>();
-            queryClassList
-                    .eq(NewsRelationConfig::getNewsId, xjrNews.getId())
-                    .eq(NewsRelationConfig::getRelationType, 3);
-            List<NewsRelationConfig> classList = newsRelationConfigMapper.selectList(queryClassList);
-            List<Long> classIdList = new ArrayList<>();
-            for (NewsRelationConfig newsRelationConfig : classList) {
-                classIdList.add(newsRelationConfig.getRelationId());
+            if(flag == 2){
+                for (AddNewsRelationDto addNewsRelationDto : addProclamationDto.getRelationList()) {
+                    if(addNewsRelationDto.getRelationType() == 1){
+                        deptIdList.add(addNewsRelationDto.getRelationId());
+                    }
+                    if(addNewsRelationDto.getRelationType() == 2){
+                        personalIdList.add(addNewsRelationDto.getRelationId());
+                    }
+                    if(addNewsRelationDto.getRelationType() == 3){
+                        classIdList.add(addNewsRelationDto.getRelationId());
+                    }
+                }
             }
 
             //对人员进行筛选,避免重复添加
@@ -452,7 +468,6 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
                     }
                 }
             }
-
             //添加部门人员
             if (deptIdList != null) {
                 newsRelationMapper.insertDeptUser(xjrNews.getId(), deptIdList);
@@ -467,6 +482,7 @@ public class NewsServiceImpl extends MPJBaseServiceImpl<NewsMapper, News> implem
             if (userIdList != null) {
                 newsRelationMapper.insertPersonl(xjrNews.getId(), userIdList);
             }
+
         }
 
         //遍历所有关系配置

+ 1 - 1
src/main/java/com/xjrsoft/module/oa/vo/NewsRelationVo.java

@@ -8,7 +8,7 @@ import java.time.LocalDateTime;
 @Data
 public class NewsRelationVo {
     @ApiModelProperty("主键")
-    private Long id;
+    private String id;
 
     @ApiModelProperty("新闻主键")
     private Long newsId;

+ 4 - 4
src/main/resources/mapper/oa/NewsRelationMapper.xml

@@ -6,7 +6,7 @@
     <insert id="insertAllTeaStaff" parameterType="java.lang.Long">
         insert into xjr_oa_news_relation (id, news_id, user_id, create_date, read_mark)
             (select
-                     UNIX_TIMESTAMP()*(FLOOR(RAND() * (1000 - 1 + 1)) + 1)*(FLOOR(RAND() * (1000 - 1 + 1)) + 1),
+                 UUID(),
                      #{newsId},
                      t.id,
                      NOW(),
@@ -20,7 +20,7 @@
     <insert id="insertDeptUser">
         insert into xjr_oa_news_relation (id, news_id, user_id, create_date, read_mark)
         (select
-        UNIX_TIMESTAMP()*(FLOOR(RAND() * (1000 - 1 + 1)) + 1)*(FLOOR(RAND() * (1000 - 1 + 1)) + 1),
+        UUID(),
         #{newsId},
         t.id,
         NOW(),
@@ -43,7 +43,7 @@
     <insert id="insertClassUser">
         insert into xjr_oa_news_relation (id, news_id, user_id, create_date, read_mark)
         (select
-        UNIX_TIMESTAMP()*(FLOOR(RAND() * (1000 - 1 + 1)) + 1)*(FLOOR(RAND() * (1000 - 1 + 1)) + 1),
+        UUID(),
         #{newsId},
         t.id,
         NOW(),
@@ -64,7 +64,7 @@
     <insert id="insertPersonl">
         insert into xjr_oa_news_relation (id, news_id, user_id, create_date, read_mark)
         (select
-        UNIX_TIMESTAMP()*(FLOOR(RAND() * (1000 - 1 + 1)) + 1)*(FLOOR(RAND() * (1000 - 1 + 1)) + 1),
+        UUID(),
         #{newsId},
         t.id,
         NOW(),

+ 13 - 1
src/main/resources/sqlScript/20240109_sql.sql

@@ -49,4 +49,16 @@ CREATE TABLE `wf_head_teacher_leave` (
      `remark` varchar(1000) DEFAULT NULL COMMENT '备注',
      `status` int NOT NULL DEFAULT '0' COMMENT '状态(1:结束 0:未结束)',
      PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='班主任事项请假';
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='班主任事项请假';
+
+DROP TABLE IF EXISTS `xjr_oa_news_relation`;
+CREATE TABLE `xjr_oa_news_relation` (
+    `id` varchar(64) NOT NULL,
+    `news_id` bigint DEFAULT NULL,
+    `user_id` bigint DEFAULT NULL,
+    `create_date` datetime DEFAULT NULL,
+    `read_mark` int DEFAULT NULL COMMENT '阅读标记  0=未读 2=已读',
+    `read_date` datetime DEFAULT NULL COMMENT '阅读时间',
+    `reply_content` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '回复内容',
+    PRIMARY KEY (`id`) USING BTREE
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;