소스 검색

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

吴树波 1 주 전
부모
커밋
e46b399048

+ 11 - 0
fs-admin/src/main/java/com/fs/course/controller/FsUserCoursePeriodController.java

@@ -151,6 +151,17 @@ public class FsUserCoursePeriodController extends BaseController {
         result.put("total", pageInfo.getTotal());
         return R.ok(result);
     }
+    @GetMapping("/getSortDays")
+    public R getSortDays(FsUserCoursePeriodDays fsUserCoursePeriodDays){
+        PageHelper.startPage(fsUserCoursePeriodDays.getPageNum(), fsUserCoursePeriodDays.getPageSize());
+        List<FsUserCoursePeriodDays> list = fsUserCoursePeriodDaysService.selectFsUserCoursePeriodDaysList(fsUserCoursePeriodDays);
+
+        PageInfo<FsUserCoursePeriodDays> pageInfo = new PageInfo<>(list);
+        Map<String, Object> result = new HashMap<>();
+        result.put("rows", pageInfo.getList());
+        result.put("total", pageInfo.getTotal());
+        return R.ok(result);
+    }
 
     @PreAuthorize("@ss.hasPermi('course:period:addCourse')")
     @PostMapping("/addCourse")

+ 6 - 6
fs-admin/src/main/java/com/fs/his/controller/FsCompanyController.java

@@ -71,7 +71,7 @@ public class FsCompanyController extends BaseController {
     @Autowired
     private ICompanyDivConfigService companyDivConfigService;
     /**
-     * 查询诊所管理列表
+     * 查询销售公司列表
      */
     @PreAuthorize("@ss.hasPermi('his:company:list')")
     @GetMapping("/list")
@@ -106,7 +106,7 @@ public class FsCompanyController extends BaseController {
      * 导出诊所管理列表
      */
     @PreAuthorize("@ss.hasPermi('his:company:export')")
-    @Log(title = "诊所管理", businessType = BusinessType.EXPORT)
+    @Log(title = "销售公司", businessType = BusinessType.EXPORT)
     @GetMapping("/export")
     public AjaxResult export(Company company)
     {
@@ -142,10 +142,10 @@ public class FsCompanyController extends BaseController {
     }
 
     /**
-     * 新增诊所管理
+     * 新增销售公司管理
      */
     @PreAuthorize("@ss.hasPermi('his:company:add')")
-    @Log(title = "诊所管理", businessType = BusinessType.INSERT)
+    @Log(title = "销售公司", businessType = BusinessType.INSERT)
     @PostMapping
     public R add(@RequestBody Company company)
     {
@@ -162,7 +162,7 @@ public class FsCompanyController extends BaseController {
      * 修改诊所管理
      */
     @PreAuthorize("@ss.hasPermi('his:company:edit')")
-    @Log(title = "诊所管理", businessType = BusinessType.UPDATE)
+    @Log(title = "销售公司", businessType = BusinessType.UPDATE)
     @PutMapping
     public AjaxResult edit(@RequestBody Company company)
     {
@@ -175,7 +175,7 @@ public class FsCompanyController extends BaseController {
      * 删除诊所管理
      */
     @PreAuthorize("@ss.hasPermi('his:company:remove')")
-    @Log(title = "诊所管理", businessType = BusinessType.DELETE)
+    @Log(title = "销售公司", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{companyIds}")
     public AjaxResult remove(@PathVariable Long[] companyIds)
     {

+ 21 - 1
fs-qw-task/src/main/java/com/fs/app/taskService/impl/SopLogsTaskServiceImpl.java

@@ -463,6 +463,13 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
                 return;
             }
 
+            // 获取模板中配置的最大天数,防止超出范围后循环发送
+            Integer maxDayNum = tempSettings.stream()
+                    .map(QwSopTempRules::getDayNum)
+                    .filter(Objects::nonNull)
+                    .max(Integer::compareTo)
+                    .orElse(0);
+            
             int intervalDay = (int) (daysBetween / tempGap);
             if (intervalDay < 0 || intervalDay >= tempSettings.size()) {
                 log.info("用户日志 {} 的 intervalDay {} 超出 TempSettings 范围,跳过处理。", logVo.getId(), intervalDay);
@@ -474,6 +481,13 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
             }else{
                 day++;
             }
+            
+            // 如果当前天数超过模板配置的最大天数,则跳过处理
+            if (day > maxDayNum) {
+                log.info("用户日志 {} 的 day {} 超出模板最大天数 {},营期已结束,跳过处理。", logVo.getId(), day, maxDayNum);
+                return;
+            }
+            
             List<QwSopTempSetting.Content> contents = getDay(tempSettings, day);
             if (contents == null || contents.isEmpty()) {
                 log.error("SOP ID {} 的 TempSetting 内容为空,跳过处理。天数 {}", logVo.getSopId(),day);
@@ -541,7 +555,13 @@ public class SopLogsTaskServiceImpl implements SopLogsTaskService {
 //                    return;
 //                }
 
-                // 重新拿新的 “天” 的 Setting
+                // 如果跨天后的天数超过模板配置的最大天数,则跳过处理
+                if (day > maxDayNum) {
+                    log.info("跨天后,用户日志 {} 的 day {} 超出模板最大天数 {},营期已结束,跳过处理。", logVo.getId(), day, maxDayNum);
+                    return;
+                }
+
+                // 重新拿新的 "天" 的 Setting
                 contents = getDay(tempSettings, day);
                 if (contents == null || contents.isEmpty()) {
                     log.error("跨天-SOP ID {} 的 TempSetting 内容为空,跳过处理。", logVo.getSopId());

+ 5 - 5
fs-service/src/main/java/com/fs/sop/service/impl/QwSopTempServiceImpl.java

@@ -462,17 +462,17 @@ public class QwSopTempServiceImpl implements IQwSopTempService
                 QwSopTempRules rules = new QwSopTempRules();
                 rules.setTempId(temp.getId());
                 rules.setName(day.getName());
-                if (temp.getOpenOfficial().equals("1")){
+                if (temp.getOpenOfficial() != null && temp.getOpenOfficial().equals("1")){
                     rules.setIsOfficial(sorts.get() == 0 ? "1" : "0");
                 }else {
                     rules.setIsOfficial("0");
                 }
-                if (temp.getOpenIsAtAll().equals("1")){
+                if (temp.getOpenIsAtAll() != null && temp.getOpenIsAtAll().equals("1")){
                     rules.setIsAtAll(1);
                 }else {
                     rules.setIsAtAll(0);
                 }
-                if (day.getDayNum()==1 && sorts.get() == 0 && temp.getOpenOfficial().equals("1")){
+                if (day.getDayNum()==1 && sorts.get() == 0 && temp.getOpenOfficial() != null && temp.getOpenOfficial().equals("1")){
                     rules.setTime("01:05");
                 }else {
                     rules.setTime(time);
@@ -493,7 +493,7 @@ public class QwSopTempServiceImpl implements IQwSopTempService
                 setting.setMiniprogramTitle(e.getTitle());
 
                 //用课节图片做封面
-                if("今正科技".equals(cloudHostProper.getCompanyName())){
+                if(cloudHostProper != null && cloudHostProper.getCompanyName() != null && "今正科技".equals(cloudHostProper.getCompanyName())){
                     setting.setMiniprogramPicUrl(!StringUtil.isNullOrEmpty(e.getThumbnail())?e.getThumbnail():fsUserCourse.getImgUrl());
                     setting.setLinkImageUrl(!StringUtil.isNullOrEmpty(e.getThumbnail())?e.getThumbnail():fsUserCourse.getImgUrl());
                 }else {
@@ -519,7 +519,7 @@ public class QwSopTempServiceImpl implements IQwSopTempService
                     content2.setContent(JSON.toJSONString(setting2));
                     qwSopTempContents.add(content2);
                 }
-                if (sorts.get() > 0){
+                if (sorts.get() > 0 && temp.getTimeDesc() != null && !temp.getTimeDesc().isEmpty() && sorts.get() <= temp.getTimeDesc().size()){
 
                     QwSopTempContent content3 = new QwSopTempContent();
                     content3.setTempId(temp.getId());