소스 검색

修复个微采集表提交信息逻辑

cgp 3 일 전
부모
커밋
91d1498412

+ 1 - 1
fs-admin/src/main/java/com/fs/his/controller/FsSignArticleReadDetailController.java

@@ -17,7 +17,7 @@ import com.fs.his.service.IFsSignArticleReadDetailService;
  * 用户阅读文章明细Controller
  *
  * @author fs
- * @date 2024-01-01
+ * @date 2026-04-22
  */
 @RestController
 @RequestMapping("/his/readDetail")

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

@@ -10,7 +10,7 @@ import java.util.Date;
  * 用户阅读文章明细对象 fs_sign_article_read_detail
  * 
  * @author fs
- * @date 2024-01-01
+ * @date 2026-04-22
  */
 @Data
 public class FsSignArticleReadDetail implements Serializable

+ 1 - 1
fs-service/src/main/java/com/fs/his/mapper/FsSignArticleReadDetailMapper.java

@@ -11,7 +11,7 @@ import java.util.List;
  * 用户阅读文章明细Mapper接口
  * 
  * @author fs
- * @date 2024-01-01
+ * @date 2026-04-22
  */
 public interface FsSignArticleReadDetailMapper
 {

+ 1 - 1
fs-service/src/main/java/com/fs/his/service/IFsSignArticleReadDetailService.java

@@ -11,7 +11,7 @@ import java.util.List;
  * 用户阅读文章明细Service接口
  * 
  * @author fs
- * @date 2024-01-01
+ * @date 2026-04-22
  */
 public interface IFsSignArticleReadDetailService
 {

+ 1 - 1
fs-service/src/main/java/com/fs/his/service/impl/FsSignArticleReadDetailServiceImpl.java

@@ -43,7 +43,7 @@ import java.util.List;
  * 用户阅读文章明细Service业务层处理
  *
  * @author fs
- * @date 2024-01-01
+ * @date 2026-04-22
  */
 @Slf4j
 @Service

+ 89 - 0
fs-service/src/main/java/com/fs/hisStore/domain/FsUserInformationCollectionPersonalLog.java

@@ -0,0 +1,89 @@
+package com.fs.hisStore.domain;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 个微-用户信息采集订单流程记录对象 fs_user_information_collection_personal_log
+ * 
+ * @author fs
+ * @date 2026-04-22
+ */
+@Data
+public class FsUserInformationCollectionPersonalLog implements Serializable
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 主键id */
+    private Long id;
+
+    /** 信息采集表主键id */
+    @Excel(name = "信息采集表主键id")
+    private Long collectionId;
+
+    /** 处方表主键id */
+    @Excel(name = "处方表主键id")
+    private Long prescribeId;
+
+    /** 问答模板id */
+    @Excel(name = "问答模板id")
+    private Long questionId;
+
+    /** 用户id */
+    @Excel(name = "用户id")
+    private Long userId;
+
+    /** 医生id */
+    @Excel(name = "医生id")
+    private Long doctorId;
+
+    /** 销售id */
+    @Excel(name = "销售id")
+    private Long companyUserId;
+
+    /** 套餐包id */
+    @Excel(name = "套餐包id")
+    private Long packageId;
+
+    /** 套餐包名称 */
+    @Excel(name = "套餐包名称")
+    private String packageName;
+
+    /** 付款方式 1-全款 2-货到付款 */
+    @Excel(name = "付款方式", readConverterExp = "1=全款,2=货到付款")
+    private Integer payType;
+
+    /** 物流代收金额 */
+    @Excel(name = "物流代收金额")
+    private BigDecimal amount;
+
+    /** 套餐包订单号 */
+    @Excel(name = "套餐包订单号")
+    private String packageOrderCode;
+
+    /** 医生确认时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "医生确认时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date doctorConfirmTime;
+
+    /** 个微信息采集状态 */
+    @Excel(name = "个微信息采集状态", readConverterExp = "0=待绑定用户,1=待用户确认,2=待医生开方,3=待药师审核,4=待绑定套餐包,5=待用户购买,6=待支付,7=已完成")
+    private Integer personalCollectStatus;
+
+    /** 记录类型 */
+    @Excel(name = "记录类型")
+    private Integer logType;
+
+    /** 创建时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+
+    /** 备注 */
+    @Excel(name = "备注")
+    private String remark;
+}

+ 85 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsUserInformationCollectionPersonalLogMapper.java

@@ -0,0 +1,85 @@
+package com.fs.hisStore.mapper;
+
+import com.fs.hisStore.domain.FsUserInformationCollectionPersonalLog;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * 个微-用户信息采集订单流程记录Mapper接口
+ * 
+ * @author fs
+ * @date 2026-04-22
+ */
+public interface FsUserInformationCollectionPersonalLogMapper
+{
+    /**
+     * 查询个微-用户信息采集订单流程记录
+     * 
+     * @param id 个微-用户信息采集订单流程记录主键
+     * @return 个微-用户信息采集订单流程记录
+     */
+    public FsUserInformationCollectionPersonalLog selectFsUserInformationCollectionPersonalLogById(Long id);
+
+    /**
+     * 查询个微-用户信息采集订单流程记录列表
+     * 
+     * @param fsUserInformationCollectionPersonalLog 个微-用户信息采集订单流程记录
+     * @return 个微-用户信息采集订单流程记录集合
+     */
+    public List<FsUserInformationCollectionPersonalLog> selectFsUserInformationCollectionPersonalLogList(FsUserInformationCollectionPersonalLog fsUserInformationCollectionPersonalLog);
+
+    /**
+     * 统计指定采集下、指定处方的记录数(用于校验是否已绑定套餐包)
+     * 命中唯一索引 uk_collection_prescribe(collection_id, prescribe_id)
+     *
+     * @param collectionId 信息采集表ID
+     * @param prescribeId  处方表ID
+     * @return 记录数量(0 或 1)
+     */
+    int countByCollectionIdAndPrescribeId(@Param("collectionId") Long collectionId,
+                                          @Param("prescribeId") Long prescribeId);
+
+    /**
+     * 根据采集ID和处方ID查询记录详情(绑定信息)
+     * 命中唯一索引 uk_collection_prescribe(collection_id, prescribe_id)
+     *
+     * @param collectionId 信息采集表ID
+     * @param prescribeId  处方表ID
+     * @return 绑定记录对象
+     */
+    FsUserInformationCollectionPersonalLog selectByCollectionIdAndPrescribeId(@Param("collectionId") Long collectionId,
+                                                                              @Param("prescribeId") Long prescribeId);
+
+    /**
+     * 新增个微-用户信息采集订单流程记录
+     * 
+     * @param fsUserInformationCollectionPersonalLog 个微-用户信息采集订单流程记录
+     * @return 结果
+     */
+    public int insertFsUserInformationCollectionPersonalLog(FsUserInformationCollectionPersonalLog fsUserInformationCollectionPersonalLog);
+
+    /**
+     * 修改个微-用户信息采集订单流程记录
+     * 
+     * @param fsUserInformationCollectionPersonalLog 个微-用户信息采集订单流程记录
+     * @return 结果
+     */
+    public int updateFsUserInformationCollectionPersonalLog(FsUserInformationCollectionPersonalLog fsUserInformationCollectionPersonalLog);
+
+    /**
+     * 删除个微-用户信息采集订单流程记录
+     * 
+     * @param id 个微-用户信息采集订单流程记录主键
+     * @return 结果
+     */
+    public int deleteFsUserInformationCollectionPersonalLogById(Long id);
+
+    /**
+     * 批量删除个微-用户信息采集订单流程记录
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteFsUserInformationCollectionPersonalLogByIds(Long[] ids);
+}

+ 61 - 0
fs-service/src/main/java/com/fs/hisStore/service/IFsUserInformationCollectionPersonalLogService.java

@@ -0,0 +1,61 @@
+package com.fs.hisStore.service;
+
+import com.fs.hisStore.domain.FsUserInformationCollectionPersonalLog;
+import java.util.List;
+
+/**
+ * 个微-用户信息采集订单流程记录Service接口
+ * 
+ * @author fs
+ * @date 2026-04-22
+ */
+public interface IFsUserInformationCollectionPersonalLogService
+{
+    /**
+     * 查询个微-用户信息采集订单流程记录
+     * 
+     * @param id 个微-用户信息采集订单流程记录主键
+     * @return 个微-用户信息采集订单流程记录
+     */
+    public FsUserInformationCollectionPersonalLog selectFsUserInformationCollectionPersonalLogById(Long id);
+
+    /**
+     * 查询个微-用户信息采集订单流程记录列表
+     * 
+     * @param fsUserInformationCollectionPersonalLog 个微-用户信息采集订单流程记录
+     * @return 个微-用户信息采集订单流程记录集合
+     */
+    public List<FsUserInformationCollectionPersonalLog> selectFsUserInformationCollectionPersonalLogList(FsUserInformationCollectionPersonalLog fsUserInformationCollectionPersonalLog);
+
+    /**
+     * 新增个微-用户信息采集订单流程记录
+     * 
+     * @param fsUserInformationCollectionPersonalLog 个微-用户信息采集订单流程记录
+     * @return 结果
+     */
+    public int insertFsUserInformationCollectionPersonalLog(FsUserInformationCollectionPersonalLog fsUserInformationCollectionPersonalLog);
+
+    /**
+     * 修改个微-用户信息采集订单流程记录
+     * 
+     * @param fsUserInformationCollectionPersonalLog 个微-用户信息采集订单流程记录
+     * @return 结果
+     */
+    public int updateFsUserInformationCollectionPersonalLog(FsUserInformationCollectionPersonalLog fsUserInformationCollectionPersonalLog);
+
+    /**
+     * 批量删除个微-用户信息采集订单流程记录
+     * 
+     * @param ids 需要删除的个微-用户信息采集订单流程记录主键集合
+     * @return 结果
+     */
+    public int deleteFsUserInformationCollectionPersonalLogByIds(Long[] ids);
+
+    /**
+     * 删除个微-用户信息采集订单流程记录信息
+     * 
+     * @param id 个微-用户信息采集订单流程记录主键
+     * @return 结果
+     */
+    public int deleteFsUserInformationCollectionPersonalLogById(Long id);
+}

+ 95 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionPersonalLogServiceImpl.java

@@ -0,0 +1,95 @@
+package com.fs.hisStore.service.impl;
+
+import com.fs.hisStore.domain.FsUserInformationCollectionPersonalLog;
+import com.fs.hisStore.mapper.FsUserInformationCollectionPersonalLogMapper;
+import com.fs.hisStore.service.IFsUserInformationCollectionPersonalLogService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 个微-用户信息采集订单流程记录Service业务层处理
+ * 
+ * @author fs
+ * @date 2026-04-22
+ */
+@Service
+public class FsUserInformationCollectionPersonalLogServiceImpl implements IFsUserInformationCollectionPersonalLogService
+{
+    @Autowired
+    private FsUserInformationCollectionPersonalLogMapper fsUserInformationCollectionPersonalLogMapper;
+
+    /**
+     * 查询个微-用户信息采集订单流程记录
+     * 
+     * @param id 个微-用户信息采集订单流程记录主键
+     * @return 个微-用户信息采集订单流程记录
+     */
+    @Override
+    public FsUserInformationCollectionPersonalLog selectFsUserInformationCollectionPersonalLogById(Long id)
+    {
+        return fsUserInformationCollectionPersonalLogMapper.selectFsUserInformationCollectionPersonalLogById(id);
+    }
+
+    /**
+     * 查询个微-用户信息采集订单流程记录列表
+     * 
+     * @param fsUserInformationCollectionPersonalLog 个微-用户信息采集订单流程记录
+     * @return 个微-用户信息采集订单流程记录
+     */
+    @Override
+    public List<FsUserInformationCollectionPersonalLog> selectFsUserInformationCollectionPersonalLogList(FsUserInformationCollectionPersonalLog fsUserInformationCollectionPersonalLog)
+    {
+        return fsUserInformationCollectionPersonalLogMapper.selectFsUserInformationCollectionPersonalLogList(fsUserInformationCollectionPersonalLog);
+    }
+
+    /**
+     * 新增个微-用户信息采集订单流程记录
+     * 
+     * @param fsUserInformationCollectionPersonalLog 个微-用户信息采集订单流程记录
+     * @return 结果
+     */
+    @Override
+    public int insertFsUserInformationCollectionPersonalLog(FsUserInformationCollectionPersonalLog fsUserInformationCollectionPersonalLog)
+    {
+        fsUserInformationCollectionPersonalLog.setCreateTime(new Date());
+        return fsUserInformationCollectionPersonalLogMapper.insertFsUserInformationCollectionPersonalLog(fsUserInformationCollectionPersonalLog);
+    }
+
+    /**
+     * 修改个微-用户信息采集订单流程记录
+     * 
+     * @param fsUserInformationCollectionPersonalLog 个微-用户信息采集订单流程记录
+     * @return 结果
+     */
+    @Override
+    public int updateFsUserInformationCollectionPersonalLog(FsUserInformationCollectionPersonalLog fsUserInformationCollectionPersonalLog)
+    {
+        return fsUserInformationCollectionPersonalLogMapper.updateFsUserInformationCollectionPersonalLog(fsUserInformationCollectionPersonalLog);
+    }
+
+    /**
+     * 批量删除个微-用户信息采集订单流程记录
+     * 
+     * @param ids 需要删除的个微-用户信息采集订单流程记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteFsUserInformationCollectionPersonalLogByIds(Long[] ids)
+    {
+        return fsUserInformationCollectionPersonalLogMapper.deleteFsUserInformationCollectionPersonalLogByIds(ids);
+    }
+
+    /**
+     * 删除个微-用户信息采集订单流程记录信息
+     * 
+     * @param id 个微-用户信息采集订单流程记录主键
+     * @return 结果
+     */
+    @Override
+    public int deleteFsUserInformationCollectionPersonalLogById(Long id)
+    {
+        return fsUserInformationCollectionPersonalLogMapper.deleteFsUserInformationCollectionPersonalLogById(id);
+    }
+}

+ 29 - 4
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -48,8 +48,10 @@ import com.fs.his.service.*;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.his.vo.AnswerVO;
 import com.fs.his.vo.FsQuestionAndAnswerVO;
+import com.fs.hisStore.domain.FsUserInformationCollectionPersonalLog;
 import com.fs.hisStore.dto.FsUserInformationCollectionOverviewDTO;
 import com.fs.hisStore.dto.PendingSalesInfoQueryDTO;
+import com.fs.hisStore.mapper.FsUserInformationCollectionPersonalLogMapper;
 import com.fs.hisStore.param.FsUserInformationCollectionListDParam;
 import com.fs.hisStore.param.FsUserInformationCollectionParam;
 import com.fs.hisStore.param.bindCollectionPackageParam;
@@ -205,6 +207,9 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
     @Autowired
     private FsUserMapper fsUserMapper;
 
+    @Autowired
+    private FsUserInformationCollectionPersonalLogMapper infoCollectionPersonalLogMapper;
+
 
 
     /**
@@ -391,11 +396,16 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
 
         collection.setPersonalCollectStatus(PostPayPrescStatusEnum.PENDING_DOCTOR.getCode());
         if (fsUserInformationCollectionMapper.updateFsUserInformationCollection(collection) > 0) {
-            //新增fs_prescribe处方信息
+            //组装处方信息
             FsPrescribe fsPrescribe = transformCollectionParamToFsPrescribe(param, collection);
-
+            //新增fs_prescribe处方信息
             int addPrescribeResult = fsPrescribeMapper.insertFsPrescribe(fsPrescribe);
-
+            FsUserInformationCollectionPersonalLog informationCollectionPersonalLog=new FsUserInformationCollectionPersonalLog();
+            BeanUtils.copyProperties(collection, informationCollectionPersonalLog);
+            informationCollectionPersonalLog.setCollectionId(collection.getId());
+            informationCollectionPersonalLog.setPrescribeId(fsPrescribe.getPrescribeId());
+            //新增 个微用户信息采集记录
+            infoCollectionPersonalLogMapper.insertFsUserInformationCollectionPersonalLog(informationCollectionPersonalLog);
             //存入医生确认统计时间数据
             Date currentTime = DateUtils.getNowDate();
             FsDoctorConfirm doctorConfirm = new FsDoctorConfirm();
@@ -1695,13 +1705,28 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
 
     @Override
     public Long bindCollectionPackage(bindCollectionPackageParam param) {
-        //TODO 是否已有订单号
         //校验参数
         FsUserInformationCollection informationCollection = fsUserInformationCollectionMapper.selectFsUserInformationCollectionById(param.getId());
         if (informationCollection == null || informationCollection.getQwTag() == 0 || informationCollection.getCompleteStatus() == 0) {
             log.error("用户信息采集id:{},条件不符", param.getId());
             throw new CustomException("信息采集绑定条件不符合");
         }
+        if(informationCollection.getPackageOrderCode()!=null){
+            log.error("用户信息采集已有订单,信息采集id:{}", param.getId());
+            throw new CustomException("用户已有订单,请清除后再购买");
+        }
+        //根据信息采集id查询最新处方
+        FsPrescribe fsPrescribe = prescribeService.selectNewestAuditedPrescribeByCollectionId(param.getId());
+        if (fsPrescribe == null) {
+            log.error("用户信息采集id:{},未查询到处方信息", param.getId());
+            throw new CustomException("未查询到处方信息");
+        }
+        //如果查询到了处方信息,则判断该处方是否已被信息采集使用过
+        int count = infoCollectionPersonalLogMapper.countByCollectionIdAndPrescribeId(param.getId(), fsPrescribe.getPrescribeId());
+        if (count == 0) {
+            log.error("当前信息采集未找到匹配处方记录,信息采集id:{},处方id:{}", param.getId(), fsPrescribe.getPrescribeId());
+            throw new CustomException("流程异常,需要医生开具最新处方才能绑定套餐包!");
+        }
         CompanyUser companyUser = companyUserMapper.selectCompanyUserById(informationCollection.getCompanyUserId());
         if (companyUser == null) {
             throw new CustomException("未查询到绑定销售人员");

+ 59 - 1
fs-service/src/main/resources/mapper/his/FsPrescribeMapper.xml

@@ -318,6 +318,7 @@
         fse.store_name,
         main_infoc.id as collectionId,
         main_infoc.complete_status as completeStatus,
+        main_infoc.qw_tag as qwTag,
         CASE
         WHEN uics.order_code IS NOT NULL THEN 1         <!--  处方来源"信息采集进度表"-->
         WHEN so.third_party_user_id IS NOT NULL AND infoc.info_source = 2 THEN 2        <!--  处方来源"超拼网"-->
@@ -335,7 +336,9 @@
         <where>
             so.doctor_confirm != -1                <!--  被医生拒方的处方不展示 不包括药师审核不通过的-->
             AND (fso.order_id IS NULL OR (fso.status != -3 AND fso.status != -2))   <!--  已取消与已退款的订单处方不展示-->
-            AND (main_infoc.id IS NULL OR main_infoc.qw_tag = 0)  <!--  如果用户在信息采集表中,则添加企微筛选条件-->
+            <if test="status == null or status != 2"><!-- status=2(药师审核不通过)时跳过企微标签过滤 -->
+                AND (main_infoc.id IS NULL OR main_infoc.qw_tag = 0)
+            </if>
             <if test="companyId != null ">and fso.company_id = #{companyId}</if>
             <if test="companyUserId != null ">and fso.company_user_id = #{companyUserId}</if>
             <if test="prescribeType != null ">and so.prescribe_type = #{prescribeType}</if>
@@ -365,6 +368,61 @@
         CASE WHEN so.doctor_confirm = 0 THEN 0 ELSE 1 END,
         so.prescribe_id desc
     </select>
+
+<!--    <select id="pharmacistReviewFailedList" resultType="com.fs.his.vo.FsPrescribeListVO">-->
+<!--        select so.*,CAST(operate_second AS CHAR) operateTime,us.nick_name,dc.doctor_name,-->
+<!--        dp.doctor_name doctor_drug_name,-->
+<!--        fso.order_code,fso.`status` order_status,-->
+<!--        fse.store_name,-->
+<!--        main_infoc.id as collectionId,-->
+<!--        main_infoc.complete_status as completeStatus,-->
+<!--        main_infoc.qw_tag as qwTag,-->
+<!--        CASE-->
+<!--        WHEN uics.order_code IS NOT NULL THEN 1         &lt;!&ndash;  处方来源"信息采集进度表"&ndash;&gt;-->
+<!--        WHEN so.third_party_user_id IS NOT NULL AND infoc.info_source = 2 THEN 2        &lt;!&ndash;  处方来源"超拼网"&ndash;&gt;-->
+<!--        ELSE NULL                                       &lt;!&ndash;  处方来源"其他"&ndash;&gt;-->
+<!--        END as prescribeSource-->
+<!--        FROM fs_prescribe so-->
+<!--        LEFT JOIN fs_user us ON us.user_id=so.user_id-->
+<!--        LEFT JOIN fs_doctor dc ON dc.doctor_id = so.doctor_id-->
+<!--        LEFT JOIN fs_doctor dp ON dp.doctor_id =so.drug_doctor_id-->
+<!--        LEFT JOIN fs_store_order fso ON fso.order_id = so.store_order_id-->
+<!--        LEFT JOIN fs_store fse ON fse.store_id = so.store_id-->
+<!--        LEFT JOIN fs_user_information_collection_schedule uics ON uics.order_code = fso.order_code-->
+<!--        LEFT JOIN fs_user_information_collection infoc ON infoc.third_party_user_id = so.third_party_user_id-->
+<!--        LEFT JOIN fs_user_information_collection main_infoc ON main_infoc.id = so.collection_id-->
+<!--        <where>-->
+<!--            so.doctor_confirm != -1                &lt;!&ndash;  被医生拒方的处方不展示 不包括药师审核不通过的&ndash;&gt;-->
+<!--            AND (fso.order_id IS NULL OR (fso.status != -3 AND fso.status != -2))   &lt;!&ndash;  已取消与已退款的订单处方不展示&ndash;&gt;-->
+<!--            AND so.status =2  &lt;!&ndash;  药师审核不通过的条件&ndash;&gt;-->
+<!--            <if test="companyId != null ">and fso.company_id = #{companyId}</if>-->
+<!--            <if test="companyUserId != null ">and fso.company_user_id = #{companyUserId}</if>-->
+<!--            <if test="prescribeType != null ">and so.prescribe_type = #{prescribeType}</if>-->
+<!--            <if test="inquiryOrderId != null ">and so.inquiry_order_id = #{inquiryOrderId}</if>-->
+<!--            <if test="storeOrderId != null ">and so.store_order_id = #{storeOrderId}</if>-->
+<!--            <if test="userId != null ">and so.user_id = #{userId}</if>-->
+<!--            <if test="prescribeCode != null  and prescribeCode != ''">and so.prescribe_code = #{prescribeCode}</if>-->
+<!--            <if test="patientName != null  and patientName != ''">and so.patient_name like concat('%', #{patientName},-->
+<!--                '%')-->
+<!--            </if>-->
+<!--            <if test="doctorName != null  and doctorName != ''">and dc.doctor_name like concat('%', #{doctorName},-->
+<!--                '%')-->
+<!--            </if>-->
+<!--            <if test="patientTel != null  and patientTel != ''">and so.patient_tel = #{patientTel}</if>-->
+<!--            <if test="doctorId != null  and doctorId != ''">and so.doctor_id = #{doctorId}</if>-->
+<!--            <if test="sTime != null ">and DATE(so.create_time) &gt;= DATE(#{sTime})</if>-->
+<!--            <if test="eTime != null ">and DATE(so.create_time) &lt;= DATE(#{eTime})</if>-->
+<!--            <if test="auditSTime != null ">and DATE(so.audit_time) &gt;= DATE(#{auditSTime})</if>-->
+<!--            <if test="auditETime != null ">and DATE(so.audit_time) &lt;= DATE(#{auditETime})</if>-->
+<!--            <if test="auditTime != null ">and so.audit_time = #{auditTime}</if>-->
+<!--            <if test="orderCode != null  and orderCode != ''">and fso.order_code = #{orderCode}</if>-->
+<!--            <if test="orderStatus != null ">and fso.`status` = #{orderStatus}</if>-->
+<!--            <if test="storeId != null ">and so.store_id = #{storeId}</if>-->
+<!--        </where>-->
+<!--        order by-->
+<!--        CASE WHEN so.doctor_confirm = 0 THEN 0 ELSE 1 END,-->
+<!--        so.prescribe_id desc-->
+<!--    </select>-->
     <select id="selectDoctorOperateStatList" resultType="com.fs.his.vo.DoctorOperateStatVO">
         SELECT
         fp.doctor_id,

+ 151 - 0
fs-service/src/main/resources/mapper/hisStore/FsUserInformationCollectionPersonalLogMapper.xml

@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fs.hisStore.mapper.FsUserInformationCollectionPersonalLogMapper">
+
+    <resultMap type="FsUserInformationCollectionPersonalLog" id="FsUserInformationCollectionPersonalLogResult">
+        <result property="id"                    column="id"                     />
+        <result property="collectionId"          column="collection_id"          />
+        <result property="prescribeId"           column="prescribe_id"           />
+        <result property="questionId"            column="question_id"            />
+        <result property="userId"                column="user_id"                />
+        <result property="doctorId"              column="doctor_id"              />
+        <result property="companyUserId"         column="company_user_id"        />
+        <result property="packageId"             column="package_id"             />
+        <result property="packageName"           column="package_name"           />
+        <result property="payType"               column="pay_type"               />
+        <result property="amount"                column="amount"                 />
+        <result property="packageOrderCode"      column="package_order_code"     />
+        <result property="doctorConfirmTime"     column="doctor_confirm_time"    />
+        <result property="personalCollectStatus" column="personal_collect_status"/>
+        <result property="logType"               column="log_type"               />
+        <result property="createTime"            column="create_time"            />
+        <result property="remark"                column="remark"                 />
+    </resultMap>
+
+    <sql id="selectFsUserInformationCollectionPersonalLogVo">
+        select id, collection_id, prescribe_id, question_id, user_id, doctor_id,
+               company_user_id, package_id, package_name, pay_type, amount,
+               package_order_code, doctor_confirm_time, personal_collect_status,
+               log_type, create_time, remark
+        from fs_user_information_collection_personal_log
+    </sql>
+
+    <select id="selectFsUserInformationCollectionPersonalLogList" parameterType="FsUserInformationCollectionPersonalLog" resultMap="FsUserInformationCollectionPersonalLogResult">
+        <include refid="selectFsUserInformationCollectionPersonalLogVo"/>
+        <where>
+            <if test="collectionId != null"> and collection_id = #{collectionId}</if>
+            <if test="prescribeId != null"> and prescribe_id = #{prescribeId}</if>
+            <if test="questionId != null"> and question_id = #{questionId}</if>
+            <if test="userId != null"> and user_id = #{userId}</if>
+            <if test="doctorId != null"> and doctor_id = #{doctorId}</if>
+            <if test="companyUserId != null"> and company_user_id = #{companyUserId}</if>
+            <if test="packageId != null"> and package_id = #{packageId}</if>
+            <if test="packageName != null and packageName != ''"> and package_name like concat('%', #{packageName}, '%')</if>
+            <if test="payType != null"> and pay_type = #{payType}</if>
+            <if test="packageOrderCode != null and packageOrderCode != ''"> and package_order_code = #{packageOrderCode}</if>
+            <if test="personalCollectStatus != null"> and personal_collect_status = #{personalCollectStatus}</if>
+            <if test="logType != null"> and log_type = #{logType}</if>
+            <if test="remark != null and remark != ''"> and remark like concat('%', #{remark}, '%')</if>
+            <if test="doctorConfirmTime != null"> and doctor_confirm_time >= #{doctorConfirmTime}</if>
+            <!-- 如果需要时间段查询,可自行扩展 -->
+        </where>
+        order by create_time desc
+    </select>
+
+    <!-- 统计记录数(用于绑定前校验)命中联合唯一索引 -->
+    <select id="countByCollectionIdAndPrescribeId" resultType="int">
+        SELECT COUNT(1)
+        FROM fs_user_information_collection_personal_log
+        WHERE collection_id = #{collectionId}
+          AND prescribe_id = #{prescribeId}
+    </select>
+
+    <!-- 查询绑定详情(获取套餐包等信息)命中联合唯一索引 -->
+    <select id="selectByCollectionIdAndPrescribeId" resultMap="FsUserInformationCollectionPersonalLogResult">
+        <include refid="selectFsUserInformationCollectionPersonalLogVo"/>
+        WHERE collection_id = #{collectionId}
+        AND prescribe_id = #{prescribeId}
+    </select>
+
+    <select id="selectFsUserInformationCollectionPersonalLogById" parameterType="Long" resultMap="FsUserInformationCollectionPersonalLogResult">
+        <include refid="selectFsUserInformationCollectionPersonalLogVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertFsUserInformationCollectionPersonalLog" parameterType="FsUserInformationCollectionPersonalLog" useGeneratedKeys="true" keyProperty="id">
+        insert into fs_user_information_collection_personal_log
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="collectionId != null">collection_id,</if>
+            <if test="prescribeId != null">prescribe_id,</if>
+            <if test="questionId != null">question_id,</if>
+            <if test="userId != null">user_id,</if>
+            <if test="doctorId != null">doctor_id,</if>
+            <if test="companyUserId != null">company_user_id,</if>
+            <if test="packageId != null">package_id,</if>
+            <if test="packageName != null">package_name,</if>
+            <if test="payType != null">pay_type,</if>
+            <if test="amount != null">amount,</if>
+            <if test="packageOrderCode != null">package_order_code,</if>
+            <if test="doctorConfirmTime != null">doctor_confirm_time,</if>
+            <if test="personalCollectStatus != null">personal_collect_status,</if>
+            <if test="logType != null">log_type,</if>
+            <if test="createTime != null">create_time,</if>
+            <if test="remark != null">remark,</if>
+        </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="collectionId != null">#{collectionId},</if>
+            <if test="prescribeId != null">#{prescribeId},</if>
+            <if test="questionId != null">#{questionId},</if>
+            <if test="userId != null">#{userId},</if>
+            <if test="doctorId != null">#{doctorId},</if>
+            <if test="companyUserId != null">#{companyUserId},</if>
+            <if test="packageId != null">#{packageId},</if>
+            <if test="packageName != null">#{packageName},</if>
+            <if test="payType != null">#{payType},</if>
+            <if test="amount != null">#{amount},</if>
+            <if test="packageOrderCode != null">#{packageOrderCode},</if>
+            <if test="doctorConfirmTime != null">#{doctorConfirmTime},</if>
+            <if test="personalCollectStatus != null">#{personalCollectStatus},</if>
+            <if test="logType != null">#{logType},</if>
+            <if test="createTime != null">#{createTime},</if>
+            <if test="remark != null">#{remark},</if>
+        </trim>
+    </insert>
+
+    <update id="updateFsUserInformationCollectionPersonalLog" parameterType="FsUserInformationCollectionPersonalLog">
+        update fs_user_information_collection_personal_log
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="collectionId != null">collection_id = #{collectionId},</if>
+            <if test="prescribeId != null">prescribe_id = #{prescribeId},</if>
+            <if test="questionId != null">question_id = #{questionId},</if>
+            <if test="userId != null">user_id = #{userId},</if>
+            <if test="doctorId != null">doctor_id = #{doctorId},</if>
+            <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
+            <if test="packageId != null">package_id = #{packageId},</if>
+            <if test="packageName != null">package_name = #{packageName},</if>
+            <if test="payType != null">pay_type = #{payType},</if>
+            <if test="amount != null">amount = #{amount},</if>
+            <if test="packageOrderCode != null">package_order_code = #{packageOrderCode},</if>
+            <if test="doctorConfirmTime != null">doctor_confirm_time = #{doctorConfirmTime},</if>
+            <if test="personalCollectStatus != null">personal_collect_status = #{personalCollectStatus},</if>
+            <if test="logType != null">log_type = #{logType},</if>
+            <if test="createTime != null">create_time = #{createTime},</if>
+            <if test="remark != null">remark = #{remark},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteFsUserInformationCollectionPersonalLogById" parameterType="Long">
+        delete from fs_user_information_collection_personal_log where id = #{id}
+    </delete>
+
+    <delete id="deleteFsUserInformationCollectionPersonalLogByIds" parameterType="String">
+        delete from fs_user_information_collection_personal_log where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

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

@@ -135,8 +135,8 @@ public class UserInfoCollectionController extends AppBaseController {
     /**
      * 提交用户填写采集信息问题(只有用户自主填写完采集信息时才调用)
      * */
+    @Login
     @ApiOperation("提交用户填写采集信息问题")
-    @Log(title = "提交用户填写采集信息问题", businessType = BusinessType.UPDATE)
     @PostMapping("/submitCollectionAnswerParam")
     public R submitCollectionAnswerParam(@RequestBody SubmitCollectionAnswerParam param)
     {