Ver código fonte

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

dzx 1 semana atrás
pai
commit
3e0185b667

+ 1 - 1
src/main/java/com/xjrsoft/common/xss/XssHttpServletRequestWrapper.java

@@ -34,7 +34,7 @@ public class XssHttpServletRequestWrapper extends HttpServletRequestWrapper {
 
     private String method;
 
-    private final List<String> ignoreXssUrl = ListUtil.toList("/magic-api/**", "/magic/web/**","/workflow/execute/*");
+    private final List<String> ignoreXssUrl = ListUtil.toList("/magic-api/**", "/magic/web/**", "/workflow/execute/*", "/oa/wfMeetingApply/update_meetingSummary");
     //html过滤
     private final static HTMLFilter HTML_FILTER = new HTMLFilter();
 

+ 2 - 0
src/main/java/com/xjrsoft/module/oa/controller/WfMeetingApplyController.java

@@ -19,6 +19,7 @@ import com.xjrsoft.module.system.service.IFileService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
@@ -137,6 +138,7 @@ public class WfMeetingApplyController {
     @ApiOperation(value = "编辑会议纪要")
     @SaCheckPermission("wfmeetingapply:edit")
     @XjrLog(value = "编辑会议纪要")
+    @Transactional(rollbackFor = Exception.class)
     public RT<Boolean> updateMeetingSummary(@Valid @RequestBody UpdateMeetingSummaryDto dto){
         WfMeetingApply wfMeetingApply = new WfMeetingApply();
         wfMeetingApply.setId(dto.getId());

+ 23 - 0
src/main/java/com/xjrsoft/module/oa/service/impl/WfMeetingApplyServiceImpl.java

@@ -14,6 +14,7 @@ import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import com.xjrsoft.common.enums.MeetingTypeEnum;
 import com.xjrsoft.common.page.ConventPage;
 import com.xjrsoft.common.page.PageOutput;
+import com.xjrsoft.common.utils.LocalDateTimeUtil;
 import com.xjrsoft.common.utils.VoToColumnUtil;
 import com.xjrsoft.module.base.entity.BaseOfficeBuild;
 import com.xjrsoft.module.ledger.vo.WorkflowRecordVo;
@@ -29,6 +30,7 @@ import com.xjrsoft.module.organization.dto.WeChatSendMessageDto;
 import com.xjrsoft.module.organization.entity.User;
 import com.xjrsoft.module.organization.service.IUserService;
 import com.xjrsoft.module.organization.service.IWeChatService;
+import com.xjrsoft.module.schedule.vo.TodayScheduleVo;
 import com.xjrsoft.module.system.entity.DictionaryDetail;
 import com.xjrsoft.module.system.entity.File;
 import com.xjrsoft.module.system.mapper.FileMapper;
@@ -289,6 +291,26 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
         IPage<TodayMeetingMobilePageVo> page = this.selectJoinListPage(ConventPage.getPage(dto), TodayMeetingMobilePageVo.class, wfMeetingApplyPageVoMPJLambdaWrapper);
         List<TodayMeetingMobilePageVo> record = page.getRecords();
 
+        Map<String, LocalTime> startTimeMap = record.stream().collect(Collectors.toMap(TodayMeetingMobilePageVo::getId, TodayMeetingMobilePageVo::getMeetingApplyS));
+        Map<String, LocalTime> endTimeMap = record.stream().collect(Collectors.toMap(TodayMeetingMobilePageVo::getId, TodayMeetingMobilePageVo::getMeetingApplyE));
+        for (TodayMeetingMobilePageVo vo : record) {
+            Integer adjustType = 1;
+            LocalTime oneStartTime = vo.getMeetingApplyS();
+            LocalTime oneEndTime =  vo.getMeetingApplyE();
+            for (String id : startTimeMap.keySet()) {
+                if(vo.getId().equals(id)){
+                    continue;
+                }
+                LocalTime startTime = startTimeMap.get(id);
+                LocalTime endTime = endTimeMap.get(id);
+                if((oneStartTime.isAfter(startTime) && oneStartTime.isBefore(endTime))
+                        || (oneEndTime.isAfter(startTime) && oneEndTime.isBefore(endTime))){
+                    adjustType = 0;
+                }
+            }
+            vo.setConflictStatus(adjustType);
+        }
+
         // 分割并重组列表
         List<TodayMeetingMobilePageVo> futureVo = new ArrayList<>(); // 当前时间之后的事件
         List<TodayMeetingMobilePageVo> pastVo = new ArrayList<>();   // 当前时间之前的事件
@@ -316,6 +338,7 @@ public class WfMeetingApplyServiceImpl extends MPJBaseServiceImpl<WfMeetingApply
                 futureVo.add(vo); // 未来的事件
             }
         }
+
         List<TodayMeetingMobilePageVo> result = new ArrayList<>();
         result.addAll(futureVo);
         result.addAll(pastVo);

+ 6 - 0
src/main/java/com/xjrsoft/module/oa/vo/TodayMeetingMobilePageVo.java

@@ -70,4 +70,10 @@ public class TodayMeetingMobilePageVo {
      */
     @ApiModelProperty("签到状态(0:未签到,1:已签到)")
     private Integer checkInStatus;
+
+    /**
+     * 签到状态(0:未签到,1:已签到)
+     */
+    @ApiModelProperty("冲突状态(0:冲突,1:不冲突)")
+    private Integer conflictStatus;
 }