lmx 1 ماه پیش
والد
کامیت
bfa934fe53

+ 2 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyVoiceRoboticCalleesMapper.java

@@ -75,4 +75,6 @@ public interface CompanyVoiceRoboticCalleesMapper extends BaseMapper<CompanyVoic
     CompanyVoiceRoboticCallees getCalleesByUserIdAndTaskId(@Param("userId") Long userId,@Param("taskId") Long taskId);
 
     List<CompanyVoiceRoboticCallees> selectCalleesListByRoboticIdsAndUserIds(@Param("userIds") Set<Long> userIds, @Param("taskIds") Set<Long> taskIds);
+
+    Integer getRoboticIsDoneByRoboticIdAndTaskFlow(@Param("roboticId") Long roboticId,@Param("taskFlow") String taskFlow);
 }

+ 18 - 11
fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceRoboticServiceImpl.java

@@ -266,13 +266,16 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
             callees.setTaskId(result.getTaskID());
             callees.setTaskName(result.getTaskName());
             companyVoiceRoboticCalleesMapper.updateById(callees);
-
-            if(StringUtils.isNotBlank(robotic.getRunTaskFlow())){
-                robotic.setRunTaskFlow(robotic.getRunTaskFlow() + "," + Constants.CELL_PHONE);
-            }else{
-                robotic.setRunTaskFlow(Constants.CELL_PHONE);
+            Integer unfulfilledTaskCount = companyVoiceRoboticCalleesMapper.getRoboticIsDoneByRoboticIdAndTaskFlow(roboticId, Constants.SEND_MSG);
+            //全部完成才更新任务状态
+            if(unfulfilledTaskCount.compareTo(0) == 0){
+                if(StringUtils.isNotBlank(robotic.getRunTaskFlow())){
+                    robotic.setRunTaskFlow(robotic.getRunTaskFlow() + "," + Constants.CELL_PHONE);
+                }else{
+                    robotic.setRunTaskFlow(Constants.CELL_PHONE);
+                }
+                companyVoiceRoboticMapper.updateById(robotic);
             }
-            companyVoiceRoboticMapper.updateById(robotic);
 
             return result;
 
@@ -343,12 +346,16 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
                     callees.setRunTaskFlow(Constants.SEND_MSG);
                 }
                 companyVoiceRoboticCalleesMapper.updateById(callees);
-                if(StringUtils.isNotBlank(robotic.getRunTaskFlow())){
-                    robotic.setRunTaskFlow(robotic.getRunTaskFlow() + "," + Constants.SEND_MSG);
-                }else{
-                    robotic.setRunTaskFlow(Constants.SEND_MSG);
+                Integer unfulfilledTaskCount = companyVoiceRoboticCalleesMapper.getRoboticIsDoneByRoboticIdAndTaskFlow(roboticId, Constants.SEND_MSG);
+                //全部完成才更新任务状态
+                if(unfulfilledTaskCount.compareTo(0) == 0){
+                    if(StringUtils.isNotBlank(robotic.getRunTaskFlow())){
+                        robotic.setRunTaskFlow(robotic.getRunTaskFlow() + "," + Constants.SEND_MSG);
+                    }else{
+                        robotic.setRunTaskFlow(Constants.SEND_MSG);
+                    }
+                    companyVoiceRoboticMapper.updateById(robotic);
                 }
-                companyVoiceRoboticMapper.updateById(robotic);
             } else{
                log.error("模板未审核:task:{},smsTemp:{}",roboticId,temp);
                throw new RuntimeException("模板未审核");

+ 3 - 0
fs-service/src/main/resources/mapper/company/CompanyVoiceRoboticCalleesMapper.xml

@@ -112,4 +112,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             #{id}
         </foreach>
     </select>
+    <select id="getRoboticIsDoneByRoboticIdAndTaskFlow" resultType="java.lang.Integer">
+        SELECT count(*) FROM company_voice_robotic_callees where robotic_id = #{roboticId} and (FIND_IN_SET(#{taskFlow},run_task_flow) =0 or FIND_IN_SET(#{taskFlow},run_task_flow) is null)
+    </select>
 </mapper>

+ 1 - 0
fs-wx-task/src/main/java/com/fs/app/service/WxTaskService.java

@@ -427,6 +427,7 @@ public class WxTaskService {
             }
         } catch (Exception ex){
             log.error("执行任务异常,roboticId:{},callerId:{},nextTask:{}",roboticId,callerId,nextTask,ex);
+            nextTaskOptimized = "exception";
         }
 
         if(StringUtils.isNotBlank(nextTaskOptimized)){