Просмотр исходного кода

新增微信小程序用户信息采集进度查询和终止逻辑

cgp 1 неделя назад
Родитель
Сommit
4e4566c0f7

+ 6 - 1
fs-service/src/main/java/com/fs/his/domain/FsUserInformationCollectionSchedule.java

@@ -2,7 +2,6 @@ package com.fs.his.domain;
 
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.fs.common.annotation.Excel;
 import lombok.Data;
 import com.fs.common.core.domain.BaseEntity;
@@ -67,5 +66,11 @@ public class FsUserInformationCollectionSchedule extends BaseEntity{
     /** 订单号 */
     private String orderCode;
 
+    /** 公司id */
+    private Long companyId;
+
+    /** 公司用户id */
+    private Long companyUserId;
+
 
 }

+ 3 - 1
fs-service/src/main/java/com/fs/hisStore/domain/FsUserInformationCollection.java

@@ -1,6 +1,5 @@
 package com.fs.hisStore.domain;
 
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fs.common.annotation.Excel;
 import lombok.Data;
@@ -49,6 +48,9 @@ public class FsUserInformationCollection extends BaseEntity{
     //销售id
     private Long companyUserId;
 
+    /** 公司id */
+    private Long companyId;
+
     //套餐包id
     private Long packageId;
 

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/param/FsUserInformationCollectionParam.java

@@ -44,4 +44,7 @@ public class FsUserInformationCollectionParam {
     private String allergy;
     //备注
     private String remark;
+
+    /** 公司id */
+    private Long companyId;
 }

+ 12 - 2
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -219,6 +219,8 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         //新增用户信息采集表的同时记录用户信息采集进度
         try {
             fsUserInformationCollection.setPackageId(param.getPackageId());
+            fsUserInformationCollection.setCompanyUserId(param.getCompanyUserId());
+            fsUserInformationCollection.setCompanyId(param.getCompanyId());
             FsUserInformationCollectionSchedule fsUserInformationCollectionSchedule = assembleCreateSchedule(fsUserInformationCollection);
             scheduleMapper.insertFsUserInformationCollectionSchedule(fsUserInformationCollectionSchedule);
             log.info("新增用户信息采集进度数据,信息采集数据id:{}",fsUserInformationCollectionSchedule.getCollectionId());
@@ -257,7 +259,10 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         }
         try {
             FsUserInformationCollection condition = getFsUserInformationCollection(param);
-            condition.setPackageId(param.getPackageId());
+            if (param.getIsPackage() != null&& param.getIsPackage() == 1){
+                condition.setPackageId(param.getPackageId());
+            }
+
             FsUserInformationCollectionSchedule fsUserInformationCollectionSchedule = assembleCreateSchedule(condition);
             scheduleMapper.insertFsUserInformationCollectionSchedule(fsUserInformationCollectionSchedule);
             log.info("编辑用户信息采集信息重新新增进度数据,信息采集数据id:{}",fsUserInformationCollectionSchedule.getCollectionId());
@@ -277,7 +282,10 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         fsUserInformationCollection.setSex(param.getSex());
         fsUserInformationCollection.setIsPackage(param.getIsPackage());
         fsUserInformationCollection.setUserName(param.getUserName());
-        fsUserInformationCollection.setPackageId(param.getPackageId());
+        if (param.getIsPackage() != null && param.getIsPackage() == 1){
+            fsUserInformationCollection.setPackageId(param.getPackageId());
+        }
+
         fsUserInformationCollection.setUserPhoneFour(param.getUserPhoneFour());
         fsUserInformationCollection.setAllergy(param.getAllergy());
         fsUserInformationCollection.setPayType(param.getPayType());
@@ -1034,6 +1042,8 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         shedule.setDoctorId(fsUserInformationCollection.getDoctorId());
         shedule.setPackageId(fsUserInformationCollection.getPackageId());
         shedule.setCreateTime(DateUtils.getNowDate());
+        shedule.setCompanyUserId(fsUserInformationCollection.getCompanyUserId());
+        shedule.setCompanyId(fsUserInformationCollection.getCompanyId());
         //任务状态:"进行中"
         shedule.setStatus(CollectionTaskStatusEnum.PROCESSING.getCode());
         //当前流程节点:"待用户第一次确认"

+ 20 - 4
fs-service/src/main/resources/mapper/qw/FsUserInformationCollectionScheduleMapper.xml

@@ -19,10 +19,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="terminatedBy"    column="terminated_by"    />
         <result property="remark"    column="remark"    />
         <result property="orderCode"    column="order_code"    />
+        <result property="companyId"    column="company_id"    />
+        <result property="companyUserId"    column="company_user_id"    />
     </resultMap>
 
     <sql id="selectFsUserInformationCollectionScheduleVo">
-        select id, collection_id, user_id, doctor_id, package_id, package_name, current_step, status, create_time, completed_time, terminated_time, terminated_by, remark,order_code from fs_user_information_collection_schedule
+        select id, collection_id, user_id, doctor_id, package_id, package_name, current_step, status, create_time, completed_time, terminated_time, terminated_by, remark,order_code,company_id, company_user_id from fs_user_information_collection_schedule
     </sql>
 
     <select id="selectFsUserInformationCollectionScheduleList" parameterType="FsUserInformationCollectionSchedule" resultMap="FsUserInformationCollectionScheduleResult">
@@ -42,7 +44,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         s.terminated_time,
         s.terminated_by,
         s.remark,
-        s.order_code
+        s.order_code,
+        s.company_id,
+        s.company_user_id
         FROM
         fs_user_information_collection_schedule s
         LEFT JOIN fs_user_information_collection c ON s.collection_id = c.id
@@ -61,6 +65,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedTime != null "> and s.terminated_time = #{terminatedTime}</if>
             <if test="terminatedBy != null  and terminatedBy != ''"> and s.terminated_by = #{terminatedBy}</if>
             <if test="orderCode != null and orderCode != ''"> AND s.order_code = #{orderCode}</if>
+            <if test="companyId != null and companyId != ''"> AND s.company_id = #{companyId}</if>
+            <if test="companyUserId != null and companyUserId != ''"> AND s.company_user_id = #{companyUserId}</if>
         </where>
     </select>
 
@@ -103,6 +109,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedTime != null"> AND s.terminated_time = #{terminatedTime}</if>
             <if test="terminatedBy != null and terminatedBy != ''"> AND s.terminated_by = #{terminatedBy}</if>
             <if test="orderCode != null and orderCode != ''"> AND s.order_code = #{orderCode}</if>
+            <if test="companyId != null and companyId != ''"> AND s.company_id = #{companyId}</if>
+            <if test="companyUserId != null and companyUserId != ''"> AND s.company_user_id = #{companyUserId}</if>
             AND s.id = (
             SELECT MAX(s2.id)
             FROM fs_user_information_collection_schedule s2
@@ -120,6 +128,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedTime != null"> AND s2.terminated_time = #{terminatedTime}</if>
             <if test="terminatedBy != null and terminatedBy != ''"> AND s2.terminated_by = #{terminatedBy}</if>
             <if test="orderCode != null and orderCode != ''"> AND s2.order_code = #{orderCode}</if>
+            <if test="companyId != null and companyId != ''"> AND s2.company_id = #{companyId}</if>
+            <if test="companyUserId != null and companyUserId != ''"> AND s2.company_user_id = #{companyUserId}</if>
             )
         </where>
         ORDER BY s.create_time desc
@@ -134,7 +144,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT
             id, collection_id, user_id, doctor_id,
             package_id, package_name, current_step, status, create_time,
-            completed_time, terminated_time, terminated_by, remark,order_code
+            completed_time, terminated_time, terminated_by, remark,order_code,company_id,company_user_id
         FROM fs_user_information_collection_schedule
         WHERE collection_id = #{collectionId}
         ORDER BY id DESC
@@ -149,7 +159,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT
             id, collection_id, user_id, doctor_id,
             package_id, package_name, current_step, status, create_time,
-            completed_time, terminated_time, terminated_by, remark,order_code
+            completed_time, terminated_time, terminated_by, remark,order_code,company_id,company_user_id
         FROM fs_user_information_collection_schedule
         WHERE collection_id = #{collectionId}
         AND status = 1
@@ -174,6 +184,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedBy != null">terminated_by,</if>
             <if test="remark != null">remark,</if>
             <if test="orderCode != null">order_code,</if>
+            <if test="companyId != null">company_id,</if>
+            <if test="companyUserId != null">company_user_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="collectionId != null">#{collectionId},</if>
@@ -189,6 +201,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedBy != null">#{terminatedBy},</if>
             <if test="remark != null">#{remark},</if>
             <if test="orderCode != null">#{orderCode},</if>
+            <if test="companyId != null">#{companyId},</if>
+            <if test="companyUserId != null">#{companyUserId},</if>
          </trim>
     </insert>
 
@@ -208,6 +222,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedBy != null">terminated_by = #{terminatedBy},</if>
             <if test="remark != null">remark = #{remark},</if>
             <if test="orderCode != null">order_code = #{orderCode},</if>
+            <if test="companyId != null">company_id = #{companyId},</if>
+            <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
         </trim>
         where id = #{id}
     </update>

+ 40 - 0
fs-user-app/src/main/java/com/fs/app/controller/UserInfoCollectionController.java

@@ -3,27 +3,39 @@ package com.fs.app.controller;
 import com.fs.common.annotation.Log;
 import com.fs.common.core.domain.AjaxResult;
 import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
 import com.fs.common.enums.BusinessType;
 import com.fs.course.param.CollectionInfoConfirmParam;
 import com.fs.course.vo.FsUserInfoCollectionUVO;
 import com.fs.framework.security.SecurityUtils;
+import com.fs.his.domain.FsUser;
+import com.fs.his.domain.FsUserInformationCollectionSchedule;
+import com.fs.his.service.IFsUserService;
 import com.fs.hisStore.domain.FsUserInformationCollection;
 import com.fs.hisStore.param.FsUserInformationCollectionParam;
 import com.fs.hisStore.service.IFsUserInformationCollectionService;
+import com.fs.qw.service.IFsUserInformationCollectionScheduleService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 @Api("用户信息采集接口")
 @RestController
 @RequestMapping(value="/app/collection")
 public class UserInfoCollectionController extends AppBaseController {
 
+    @Autowired
+    private IFsUserService userService;
+
     @Autowired
     private IFsUserInformationCollectionService userInformationCollectionService;
 
+    @Autowired
+    private IFsUserInformationCollectionScheduleService fsUserInformationCollectionScheduleService;
 
     @ApiOperation("用户信息采集详情")
     @GetMapping("/getInfo")
@@ -59,6 +71,9 @@ public class UserInfoCollectionController extends AppBaseController {
     @PostMapping("/add")
     public R add(@RequestBody FsUserInformationCollectionParam fsUserInformationCollection)
     {
+        FsUser user=userService.selectFsUserByUserId(Long.parseLong(getUserId()));
+        fsUserInformationCollection.setCompanyUserId(user.getCompanyUserId());
+        fsUserInformationCollection.setCompanyId(user.getCompanyId());
         Long l = userInformationCollectionService.insertFsUserInformationCollection(fsUserInformationCollection);
         if (l > 0) {
             return R.ok();
@@ -85,4 +100,29 @@ public class UserInfoCollectionController extends AppBaseController {
             return R.error();
         }
     }
+
+
+    /**
+     * 对于每条用户信息采集记录,只获取其最新的任务流程
+     */
+    @PreAuthorize("@ss.hasPermi('qw:collectionSchedule:list')")
+    @GetMapping("/schedule/list")
+    public TableDataInfo list(FsUserInformationCollectionSchedule fsUserInformationCollectionSchedule)
+    {
+        FsUser user=userService.selectFsUserByUserId(Long.parseLong(getUserId()));
+        fsUserInformationCollectionSchedule.setCompanyId(user.getCompanyId());
+        fsUserInformationCollectionSchedule.setCompanyUserId(user.getCompanyUserId());
+        startPage();
+        List<FsUserInformationCollectionSchedule> list = fsUserInformationCollectionScheduleService.getUserRecordLatestTaskProcess(fsUserInformationCollectionSchedule);
+        return getDataTable(list);
+    }
+
+    /**
+     * 停止用户信息采集任务
+     */
+    @PutMapping("/schedule/stop")
+    public R stop(@RequestBody FsUserInformationCollectionSchedule param){
+        FsUser user=userService.selectFsUserByUserId(Long.parseLong(getUserId()));
+        return userInformationCollectionService.stopCollection(param,user.getUserId());
+    }
 }