lmx пре 2 дана
родитељ
комит
b5ab3cae5f

+ 4 - 0
fs-service/src/main/java/com/fs/company/domain/CompanyVoiceRobotic.java

@@ -129,4 +129,8 @@ public class CompanyVoiceRobotic {
     //企微用户id
     //企微用户id
     @TableField(exist = false)
     @TableField(exist = false)
     private String qwUserId;
     private String qwUserId;
+    private Integer taskType;
+    private Integer sceneType;
+    private LocalTime availableStartTime;
+    private LocalTime availableEndTime;
 }
 }

+ 13 - 17
fs-service/src/main/java/com/fs/company/service/impl/CompanyVoiceRoboticServiceImpl.java

@@ -30,6 +30,7 @@ import com.fs.crm.param.SmsSendBatchParam;
 import com.fs.crm.service.impl.CrmCustomerServiceImpl;
 import com.fs.crm.service.impl.CrmCustomerServiceImpl;
 import com.fs.enums.ExecutionStatusEnum;
 import com.fs.enums.ExecutionStatusEnum;
 import com.fs.enums.NodeTypeEnum;
 import com.fs.enums.NodeTypeEnum;
+import com.fs.enums.TaskTypeEnum;
 import com.fs.qw.domain.QwUser;
 import com.fs.qw.domain.QwUser;
 import com.fs.qw.mapper.QwUserMapper;
 import com.fs.qw.mapper.QwUserMapper;
 import com.fs.qw.service.impl.QwExternalContactServiceImpl;
 import com.fs.qw.service.impl.QwExternalContactServiceImpl;
@@ -1035,29 +1036,24 @@ public class CompanyVoiceRoboticServiceImpl extends ServiceImpl<CompanyVoiceRobo
         if (robotic.getCompanyAiWorkflowId() == null) {
         if (robotic.getCompanyAiWorkflowId() == null) {
             throw new RuntimeException("任务未配置工作流: " + id);
             throw new RuntimeException("任务未配置工作流: " + id);
         }
         }
-
         robotic.setTaskStatus(1);
         robotic.setTaskStatus(1);
         updateById(robotic);
         updateById(robotic);
-
-        // 根据任务加微方式决定是否直接分配微信 平均时 直接分配用户
-        if (Integer.valueOf(0).equals(robotic.getAddType())) {
+        // 根据任务加微方式决定是否直接分配微信 平均时 直接分配用户 场景任务不做分配
+        if (Integer.valueOf(0).equals(robotic.getAddType()) && robotic.getTaskType().equals(TaskTypeEnum.ORDINARY.getValue())) {
             allocateWx(robotic);
             allocateWx(robotic);
         }
         }
-
         // 新增启动写入任务业务表数据
         // 新增启动写入任务业务表数据
-        buildTaskBussiness(robotic);
-
-        // 查询业务列表
-        List<CompanyVoiceRoboticBusiness> roboticBusinesseList = companyVoiceRoboticBusinessMapper
-                .selectList(new QueryWrapper<CompanyVoiceRoboticBusiness>().eq("robotic_id", id));
-
-        if (roboticBusinesseList.isEmpty()) {
-            log.warn("任务没有业务数据: {}", id);
-            return;
+        if(robotic.getTaskType().equals(TaskTypeEnum.ORDINARY.getValue())){
+            buildTaskBussiness(robotic);
+            // 查询业务列表
+            List<CompanyVoiceRoboticBusiness> roboticBusinesseList = companyVoiceRoboticBusinessMapper
+                    .selectList(new QueryWrapper<CompanyVoiceRoboticBusiness>().eq("robotic_id", id));
+            if (roboticBusinesseList.isEmpty()) {
+                log.warn("任务没有业务数据: {}", id);
+                return;
+            }
+            initAndExecuteWorkflows(robotic, roboticBusinesseList);
         }
         }
-
-        // 初始化并执行工作流
-        initAndExecuteWorkflows(robotic, roboticBusinesseList);
     }
     }
 
 
     /**
     /**

+ 6 - 3
fs-service/src/main/java/com/fs/company/service/impl/call/node/EndNode.java

@@ -9,6 +9,7 @@ import com.fs.company.param.ExecutionContext;
 import com.fs.company.vo.ExecutionResult;
 import com.fs.company.vo.ExecutionResult;
 import com.fs.enums.ExecutionStatusEnum;
 import com.fs.enums.ExecutionStatusEnum;
 import com.fs.enums.NodeTypeEnum;
 import com.fs.enums.NodeTypeEnum;
+import com.fs.enums.TaskTypeEnum;
 
 
 import java.util.Map;
 import java.util.Map;
 
 
@@ -51,9 +52,11 @@ public class EndNode extends AbstractWorkflowNode {
             Integer i = companyVoiceRoboticBusinessMapper.selectUnfinishedTaskCountByRoboticId(roboticBusiness.getRoboticId(), nodeKey);
             Integer i = companyVoiceRoboticBusinessMapper.selectUnfinishedTaskCountByRoboticId(roboticBusiness.getRoboticId(), nodeKey);
             if(Integer.valueOf(0).equals(i)){
             if(Integer.valueOf(0).equals(i)){
                 CompanyVoiceRobotic robotic = new CompanyVoiceRobotic();
                 CompanyVoiceRobotic robotic = new CompanyVoiceRobotic();
-                robotic.setId(roboticBusiness.getRoboticId());
-                robotic.setTaskStatus(3);
-                companyVoiceRoboticMapper.updateById(robotic);
+                if(robotic.getTaskType().equals(TaskTypeEnum.ORDINARY.getValue())){
+                    robotic.setId(roboticBusiness.getRoboticId());
+                    robotic.setTaskStatus(3);
+                    companyVoiceRoboticMapper.updateById(robotic);
+                }
             }
             }
         }
         }
     }
     }

+ 64 - 0
fs-service/src/main/java/com/fs/enums/TaskTypeEnum.java

@@ -0,0 +1,64 @@
+package com.fs.enums;
+
+/**
+ * @author MixLiu
+ * @date 2026/1/28 10:35
+ * @description
+ */
+public enum TaskTypeEnum {
+    /**
+     * 成功
+     */
+    ORDINARY("ORDINARY", "普通任务", 1),
+
+    /**
+     * 失败
+     */
+    SCENE("SCENE", "场景任务", 2);
+
+    private final String code;
+    private final String description;
+    private final int value;
+
+    TaskTypeEnum(String code, String description, int value) {
+        this.code = code;
+        this.description = description;
+        this.value = value;
+    }
+
+    public String getCode() {
+        return code;
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public int getValue() {
+        return value;
+    }
+
+    /**
+     * 根据状态码获取枚举值
+     */
+    public static TaskTypeEnum fromCode(String code) {
+        for (TaskTypeEnum status : values()) {
+            if (status.code.equals(code)) {
+                return status;
+            }
+        }
+        throw new IllegalArgumentException("Unknown ExecutionStatus code: " + code);
+    }
+
+    /**
+     * 根据int值获取枚举值
+     */
+    public static TaskTypeEnum fromValue(int value) {
+        for (TaskTypeEnum status : values()) {
+            if (status.value == value) {
+                return status;
+            }
+        }
+        throw new IllegalArgumentException("Unknown ExecutionStatus value: " + value);
+    }
+}

+ 3 - 1
fs-service/src/main/resources/mapper/company/CompanyVoiceRoboticMapper.xml

@@ -61,7 +61,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         inner join company_user u on a.create_user = u.user_id
         inner join company_user u on a.create_user = u.user_id
         inner join company_dept d on u.dept_id = d.dept_id
         inner join company_dept d on u.dept_id = d.dept_id
         <where>
         <where>
-            <if test="companyId != null"> and a.company_id = #{companyId}</if>
+            <if test="taskType != null "> and a.task_type = #{taskType} </if>
+            <if test="companyId != null"> and a.company_id = #{companyId} </if>
             <if test="name != null  and name != ''"> and a.name like concat('%', #{name}, '%')</if>
             <if test="name != null  and name != ''"> and a.name like concat('%', #{name}, '%')</if>
             <if test="taskName != null  and taskName != ''"> and a.task_name like concat('%', #{taskName}, '%')</if>
             <if test="taskName != null  and taskName != ''"> and a.task_name like concat('%', #{taskName}, '%')</if>
             <if test="taskId != null "> and a.task_id = #{taskId}</if>
             <if test="taskId != null "> and a.task_id = #{taskId}</if>
@@ -85,6 +86,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 ${params.dataScope}
                 ${params.dataScope}
             </if>
             </if>
         </where>
         </where>
+                   order by a.id desc
     </select>
     </select>
     
     
     <select id="selectCompanyVoiceRoboticById" parameterType="Long" resultMap="CompanyVoiceRoboticResult">
     <select id="selectCompanyVoiceRoboticById" parameterType="Long" resultMap="CompanyVoiceRoboticResult">