Kaynağa Gözat

优化sop定时分发任务逻辑

cgp 2 hafta önce
ebeveyn
işleme
ed067af0f5

+ 8 - 6
fs-admin/src/main/java/com/fs/his/task/Task.java

@@ -2317,16 +2317,16 @@ public class Task {
                 switch (log.getOrderSendType()) {
                     case 1:
                         //分发给销售sop数据
-                        obtainSopCompanyUserTaskData(fsUserId, companyUserId, doctorId, type);
+                        obtainSopCompanyUserTaskData(fsUserId, companyUserId, doctorId, type,contact.getId());
                         break;
                     case 2:
                         //分发给医生sop数据
-                        obtainSopDoctorTaskData(fsUserId, companyUserId, doctorId, type);
+                        obtainSopDoctorTaskData(fsUserId, companyUserId, doctorId, type,contact.getId());
                         break;
                     case 3:
                         //分发给销售和医生sop数据
-                        obtainSopCompanyUserTaskData(fsUserId, companyUserId, doctorId, type);
-                        obtainSopDoctorTaskData(fsUserId, companyUserId, doctorId, type);
+                        obtainSopCompanyUserTaskData(fsUserId, companyUserId, doctorId, type,contact.getId());
+                        obtainSopDoctorTaskData(fsUserId, companyUserId, doctorId, type,contact.getId());
                         break;
                     default:
                         logger.error("未知的type: {}", type);
@@ -2350,7 +2350,7 @@ public class Task {
      *  @param doctorId  医生id
      *  @param type  1:未升单未购 2:未升单已购 3:升单未购 4:升单已购
      * */
-    public int obtainSopDoctorTaskData(Long fsUserId, Long companyUserId,Long doctorId, Integer type) {
+    public int obtainSopDoctorTaskData(Long fsUserId, Long companyUserId,Long doctorId, Integer type,Long qwExternalContactId) {
         if (doctorId==null){
             logger.info("销售人员companyUserId:{},未绑定医生不触发医生sop数据",companyUserId);
             return 1;
@@ -2360,6 +2360,7 @@ public class Task {
         fsSopDoctorTask.setCompanyUserId(companyUserId);
         fsSopDoctorTask.setDoctorId(doctorId);
         fsSopDoctorTask.setType(type);
+        fsSopDoctorTask.setQwExternalContactId(qwExternalContactId);
         fsSopDoctorTask.setStatus(0);//默认未处理状态
         fsSopDoctorTask.setCreateTime(DateUtils.getNowDate());
         return sopDoctorTaskMapper.insertFsSopDoctorTask(fsSopDoctorTask);
@@ -2371,12 +2372,13 @@ public class Task {
      *  @param doctorId  医生id
      *  @param type  1:未升单未购 2:未升单已购 3:升单未购 4:升单已购
      * */
-    public int obtainSopCompanyUserTaskData(Long fsUserId, Long companyUserId,Long doctorId, Integer type) {
+    public int obtainSopCompanyUserTaskData(Long fsUserId, Long companyUserId,Long doctorId, Integer type,Long qwExternalContactId) {
         FsSopCompanyUserTask fsSopCompanyUserTask = new FsSopCompanyUserTask();
         fsSopCompanyUserTask.setUserId(fsUserId);
         fsSopCompanyUserTask.setCompanyUserId(companyUserId);
         fsSopCompanyUserTask.setDoctorId(doctorId);
         fsSopCompanyUserTask.setType(type);
+        fsSopCompanyUserTask.setQwExternalContactId(qwExternalContactId);
         fsSopCompanyUserTask.setStatus(0);//默认未处理状态
         fsSopCompanyUserTask.setCreateTime(DateUtils.getNowDate());
         return sopCompanyUserTaskMapper.insertFsSopCompanyUserTask(fsSopCompanyUserTask);

+ 3 - 0
fs-service/src/main/java/com/fs/his/domain/FsSopDoctorTask.java

@@ -46,4 +46,7 @@ public class FsSopDoctorTask extends BaseEntity{
 
     /** 1:未升单未购 2:未升单已购 3:升单未购 4:升单已购 */
     private Integer type;
+
+    /** qw_external_contact表主键 */
+    private Long qwExternalContactId;
 }

+ 3 - 0
fs-service/src/main/java/com/fs/his/vo/SopDoctorTaskVo.java

@@ -60,4 +60,7 @@ public class SopDoctorTaskVo {
 
     /** 1:未升单未购 2:未升单已购 3:升单未购 4:升单已购 */
     private Integer type;
+
+    /** qw_external_contact表主键 */
+    private Long qwExternalContactId;
 }

+ 3 - 0
fs-service/src/main/java/com/fs/qw/domain/FsSopCompanyUserTask.java

@@ -42,4 +42,7 @@ public class FsSopCompanyUserTask extends BaseEntity{
     /** 1:未升单未购 2:未升单已购 3:升单未购 4:升单已购 */
     private Integer type;
 
+    /** qw_external_contact表主键 */
+    private Long qwExternalContactId;
+
 }

+ 3 - 0
fs-service/src/main/java/com/fs/qw/vo/SopCompanyUserTaskVo.java

@@ -61,4 +61,7 @@ public class SopCompanyUserTaskVo {
 
     /** 1:未升单未购 2:未升单已购 3:升单未购 4:升单已购 */
     private Integer type;
+
+    /** qw_external_contact表主键 */
+    private Long qwExternalContactId;
 }

+ 12 - 9
fs-service/src/main/resources/mapper/his/FsSopDoctorTaskMapper.xml

@@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="packageId"    column="package_id"    />
         <result property="orderCode"    column="order_code"    />
         <result property="type"    column="type"    />
+        <result property="qwExternalContactId"    column="qw_external_contact_id"    />
     </resultMap>
 
     <resultMap type="com.fs.his.vo.SopDoctorTaskVo" id="SopDoctorTaskVoResult">
@@ -31,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="remark"       column="remark" />
         <result property="createTime"   column="create_time" />
         <result property="updateTime"   column="update_time" />
+        <result property="qwExternalContactId"    column="qw_external_contact_id"    />
 
         <!-- 关联表字段 -->
         <result property="name"     column="name" />          <!-- qwec.name -->
@@ -41,7 +43,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectFsSopDoctorTaskVo">
-        select id, company_user_id,doctor_id, user_id, status, create_time, update_time, remark, package_id, order_code, type from fs_sop_doctor_task
+        select id, company_user_id,doctor_id, user_id, status, create_time, update_time, remark, package_id, order_code, type,qw_external_contact_id from fs_sop_doctor_task
     </sql>
 
     <select id="selectFsSopDoctorTaskVoList" parameterType="com.fs.his.vo.SopDoctorTaskVo" resultMap="SopDoctorTaskVoResult">
@@ -51,7 +53,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         qwec.name,
         qwec.avatar,
         fu.phone,
-        fp.package_name,
         cp.nick_name as company_user_name,
         cp.user_id as company_user_id,
         sdt.status,
@@ -59,13 +60,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         sdt.create_time,
         sdt.update_time,
         sdt.remark,
-        sdt.type
+        sdt.type,
+        sdt.qw_external_contact_id
         FROM
         fs_sop_doctor_task sdt
         LEFT JOIN company_user cp ON sdt.company_user_id = cp.user_id
-        LEFT JOIN qw_external_contact qwec ON sdt.user_id = qwec.id
+        LEFT JOIN qw_external_contact qwec ON sdt.qw_external_contact_id = qwec.id
         LEFT JOIN fs_user fu ON qwec.fs_user_id = fu.user_id
-        LEFT JOIN fs_package fp ON fp.package_id=sdt.package_id
         <where>
             <if test="id != null "> and sdt.id = #{id}</if>
             <if test="doctorId != null "> and sdt.doctor_id = #{doctorId}</if>
@@ -95,7 +96,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             qwec.name,
             qwec.avatar,
             fu.phone,
-            fp.package_name,
             cp.nick_name as company_user_name,
             cp.user_id as company_user_id,
             sdt.status,
@@ -103,13 +103,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             sdt.create_time,
             sdt.update_time,
             sdt.remark,
-            sdt.type
+            sdt.type,
+            sdt.qw_external_contact_id
         FROM
             fs_sop_doctor_task sdt
                 LEFT JOIN company_user cp ON sdt.company_user_id = cp.user_id
-                LEFT JOIN qw_external_contact qwec ON sdt.user_id = qwec.id
+                LEFT JOIN qw_external_contact qwec ON sdt.qw_external_contact_id = qwec.id
                 LEFT JOIN fs_user fu ON qwec.fs_user_id = fu.user_id
-                LEFT JOIN fs_package fp ON fp.package_id=sdt.package_id
         where sdt.id = #{id}
     </select>
         
@@ -126,6 +126,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="packageId != null">package_id,</if>
             <if test="orderCode != null">order_code,</if>
             <if test="type != null">type,</if>
+            <if test="qwExternalContactId != null">qw_external_contact_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="companyUserId != null">#{companyUserId},</if>
@@ -138,6 +139,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="packageId != null">#{packageId},</if>
             <if test="orderCode != null">#{orderCode},</if>
             <if test="type != null">#{type},</if>
+            <if test="qwExternalContactId != null">#{qwExternalContactId},</if>
          </trim>
     </insert>
 
@@ -154,6 +156,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="packageId != null">package_id = #{packageId},</if>
             <if test="orderCode != null">order_code = #{orderCode},</if>
             <if test="type != null">type = #{type},</if>
+            <if test="qwExternalContactId != null">qw_external_contact_id=#{qwExternalContactId},</if>
         </trim>
         where id = #{id}
     </update>

+ 13 - 10
fs-service/src/main/resources/mapper/qw/FsSopCompanyUserTaskMapper.xml

@@ -16,6 +16,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime"    column="update_time"    />
         <result property="remark"    column="remark"    />
         <result property="type"    column="type"    />
+        <result property="qwExternalContactId"    column="qw_external_contact_id"    />
     </resultMap>
 
     <resultMap type="com.fs.qw.vo.SopCompanyUserTaskVo" id="SopCompanyUserTaskVoResult">
@@ -32,6 +33,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"   column="create_time" />
         <result property="updateTime"   column="update_time" />
         <result property="type"    column="type"    />
+        <result property="qwExternalContactId"    column="qw_external_contact_id"    />
 
         <!-- 关联表字段 -->
         <result property="name"     column="name" />          <!-- qwec.name -->
@@ -42,7 +44,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectFsSopCompanyUserTaskVo">
-        select id, package_id,order_code,company_user_id, doctor_id, user_id, status, create_time, update_time, remark,type from fs_sop_company_user_task
+        select id, package_id,order_code,company_user_id, doctor_id, user_id, status, create_time, update_time, remark,type,qw_external_contact_id from fs_sop_company_user_task
     </sql>
 
     <select id="selectFsSopCompanyUserTaskVoList" parameterType="com.fs.qw.dto.SopCompanyUserTaskDto" resultMap="SopCompanyUserTaskVoResult">
@@ -55,20 +57,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         qwec.name,
         qwec.avatar,
         fu.phone,
-        fp.package_name,
         sct.doctor_id,
         fd.doctor_name,
         sct.STATUS,
         sct.create_time,
         sct.update_time,
         sct.remark,
-        sct.type
+        sct.type,
+        sct.qw_external_contact_id
         FROM
         fs_sop_company_user_task sct
         LEFT JOIN fs_doctor fd ON sct.doctor_id = fd.doctor_id
-        LEFT JOIN qw_external_contact qwec ON sct.user_id = qwec.id
+        LEFT JOIN qw_external_contact qwec ON sct.qw_external_contact_id = qwec.id
         LEFT JOIN fs_user fu ON qwec.fs_user_id = fu.user_id
-        LEFT JOIN fs_package fp ON fp.package_id=sct.package_id
         <where>
             <if test="id != null "> and sct.id = #{id}</if>
             <if test="doctorId != null "> and sct.doctor_id = #{doctorId}</if>
@@ -88,7 +89,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 and sct.create_time &lt;= str_to_date(#{endTime}, '%Y-%m-%d %H:%i:%s')
             </if>
         </where>
-        ORDER BY id DESC
+        ORDER BY sct.id DESC
     </select>
     
     <select id="selectFsSopCompanyUserTaskVoById" parameterType="Long" resultMap="SopCompanyUserTaskVoResult">
@@ -101,20 +102,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             qwec.name,
             qwec.avatar,
             fu.phone,
-            fp.package_name,
             sct.doctor_id,
             fd.doctor_name,
             sct.STATUS,
             sct.create_time,
             sct.update_time,
             sct.remark,
-            sct.type
+            sct.type,
+            sct.qw_external_contact_id
         FROM
             fs_sop_company_user_task sct
                 LEFT JOIN fs_doctor fd ON sct.doctor_id = fd.doctor_id
-                LEFT JOIN qw_external_contact qwec ON sct.user_id = qwec.id
+                LEFT JOIN qw_external_contact qwec ON sct.qw_external_contact_id = qwec.id
                 LEFT JOIN fs_user fu ON qwec.fs_user_id = fu.user_id
-                LEFT JOIN fs_package fp ON fp.package_id=sct.package_id
         where sct.id = #{id}
     </select>
 
@@ -176,6 +176,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateTime != null">update_time,</if>
             <if test="remark != null">remark,</if>
             <if test="type != null">type,</if>
+            <if test="qwExternalContactId != null">qw_external_contact_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="packageId != null">#{packageId},</if>
@@ -188,6 +189,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateTime != null">#{updateTime},</if>
             <if test="remark != null">#{remark},</if>
             <if test="type != null">#{type},</if>
+            <if test="qwExternalContactId != null">#{qwExternalContactId},</if>
          </trim>
     </insert>
 
@@ -204,6 +206,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="remark != null">remark = #{remark},</if>
             <if test="type != null">type = #{type},</if>
+            <if test="qwExternalContactId != null">qw_external_contact_id=#{qwExternalContactId},</if>
         </trim>
         where id = #{id}
     </update>