ct 1 неделя назад
Родитель
Сommit
8f8a9ce2f1

+ 6 - 2
fs-service/src/main/java/com/fs/his/domain/FsUserInformationCollection.java

@@ -38,8 +38,12 @@ public class FsUserInformationCollection extends BaseEntity{
     @Excel(name = "用户确认状态 0-未确认 1-已确认")
     private Integer userConfirm;
 
-    /** 医生确认状态 0-未确认 2-已确认 */
-    @Excel(name = "医生确认状态 0-未确认 2-已确认")
+    //医生确认时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date userConfirmTime;
+
+    /** 医生确认状态 0-未确认 1-已确认 -1拒绝*/
+    @Excel(name = "医生确认状态 0-未确认 1-已确认 -1拒绝")
     private Integer doctorConfirm;
 
     // 医生id

+ 17 - 7
fs-service/src/main/java/com/fs/his/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -158,8 +158,6 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
     private OpenIMService openIMService;
     @Autowired
     private CompanyUserUserMapper companyUserUserMapper;
-    @Autowired
-    private FsPackageMapper fsPackageMapper;
 
     /**
      * 查询用户信息采集
@@ -490,7 +488,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         FsUserInformationCollection map = new FsUserInformationCollection();
         map.setId(collection.getId());
         map.setDoctorAdvice(collection.getDoctorAdvice());
-        map.setDoctorConfirm(1);
+        map.setDoctorConfirm((collection.getDoctorConfirm()==null||collection.getDoctorConfirm()!=1)?-1:1);
         //医生确认时间
         map.setDoctorConfirmTime(DateUtils.getNowDate());
         //写入医生签名
@@ -501,7 +499,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             map.setJsonInfo(JSON.toJSONString(answerVOS));
         }
         if (fsUserInformationCollectionMapper.updateFsUserInformationCollection(map) > 0) {
-            openIMService.doctorSendMsgToUser(collection.getUserId(),collection.getDoctorId());
+            openIMService.doctorSendMsgToUser(collection.getUserId(),collection.getDoctorId(),1,collection.getDoctorConfirm());
             return R.ok();
         }
         return R.error("医生确认失败");
@@ -536,7 +534,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         }
         FsUserInformationCollection map = new FsUserInformationCollection();
         map.setId(collection.getId());
-        map.setDoctorType2Confirm(1);
+        map.setDoctorType2Confirm((collection.getDoctorType2Confirm()==null||collection.getDoctorType2Confirm()!=1)?-1:1);
         //医生确认时间
         map.setDoctorConfirmTime(DateUtils.getNowDate());
         //写入药师签名
@@ -550,7 +548,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             map.setJsonInfo(JSON.toJSONString(answerVOS));
         }
 //
-        openIMService.doctorSendMsgToUser(collection.getUserId(),collection.getDoctorType2Id());
+        openIMService.doctorSendMsgToUser(collection.getUserId(),collection.getDoctorType2Id(),2,collection.getDoctorType2Confirm());
         if (fsUserInformationCollectionMapper.updateFsUserInformationCollection(map) > 0) {
             FsPackageOrder fsPackageOrder = packageOrderMapper.selectFsPackageOrderByOrderSn(collection.getPackageOrderCode());
             if(fsPackageOrder.getStoreOrderId()==null||fsPackageOrder.getStoreOrderId()==0){
@@ -667,6 +665,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         FsUserInformationCollection map = new FsUserInformationCollection();
         map.setId(param.getId());
         map.setUserConfirm(1);
+        map.setUserConfirmTime(new Date());
         map.setUserAdvice(param.getUserAdvice());
         if (param.getPatientId() == null|| param.getPatientId() == 0) {
             return R.error("请提交就诊人信息");
@@ -957,6 +956,15 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
                         vo.setOrderStatus(FsPackageOrderStatusEnum.toType(status).getDesc()); //订单状态
                         vo.setPackageJson(order.getPackageJson());
                     }
+                } else {
+                    //查询套餐
+                    Long packageId = info.getPackageId();
+                    if (packageId != null){
+                        FsPackage fsPackage = packageMapper.selectFsPackageByPackageId(packageId);
+                        if (fsPackage != null){
+                            vo.setPackageJson(JSON.toJSONString(fsPackage));
+                        }
+                    }
                 }
                 vo.setIsPay(isPay);
             }
@@ -973,10 +981,12 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         list.forEach(informationCollection -> {
             if (informationCollection.getDoctorConfirm() == 0){
                 //医生确认
+                informationCollection.setDoctorConfirm(1);
                 doctorConfirm(informationCollection);
             }
             if (informationCollection.getDoctorType2Confirm() == 0){
                 //药师确认
+                informationCollection.setDoctorType2Confirm(1);
                 doctorType2Confirm(informationCollection);
             }
         });
@@ -1047,7 +1057,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
                 doctorId = iFsDoctorService.selectFsDoctorDoctorByPackage();
             } else if (doctorType == 2){
                 //随机获取药师id
-                FsPackage fsPackage = fsPackageMapper.selectFsPackageByPackageId(packageId);
+                FsPackage fsPackage = packageMapper.selectFsPackageByPackageId(packageId);
                 if (fsPackage != null){
                     doctor =doctorMapper.selectPackageFsDoctorType2Ids(fsPackage.getProductType());
                 }

+ 1 - 1
fs-service/src/main/java/com/fs/im/service/OpenIMService.java

@@ -87,6 +87,6 @@ public interface OpenIMService {
 
     OpenImResponseDTO sendUserInformation(Long userId,Long doctorId,Long userInformationId);
 
-    OpenImResponseDTO doctorSendMsgToUser(Long userId,Long doctorId);
+    OpenImResponseDTO doctorSendMsgToUser(Long userId,Long doctorId,Integer type,Integer status);
 
 }

+ 2 - 2
fs-service/src/main/java/com/fs/im/service/impl/OpenIMServiceImpl.java

@@ -1615,7 +1615,7 @@ public class OpenIMServiceImpl implements OpenIMService {
     }
 
     @Override
-    public OpenImResponseDTO doctorSendMsgToUser(Long userId, Long doctorId) {
+    public OpenImResponseDTO doctorSendMsgToUser(Long userId, Long doctorId,Integer type,Integer status) {
         OpenImMsgDTO openImMsgDTO = new OpenImMsgDTO();
         ObjectMapper objectMapper = new ObjectMapper();
         openImMsgDTO.setRecvID("U"+userId);
@@ -1624,7 +1624,7 @@ public class OpenIMServiceImpl implements OpenIMService {
         openImMsgDTO.setSenderPlatformID(5);
         openImMsgDTO.setSessionType(1);
         OpenImMsgDTO.Content content = new OpenImMsgDTO.Content();
-        content.setContent("您的用户信息已确认");
+        content.setContent((type == 1?"医生 ":"药师 ")+(status == 1?"已确认 ":"已拒绝 ")+"您的用户信息已");
         openImMsgDTO.setContent(content);
         return openIMSendMsg(openImMsgDTO);
     }

+ 55 - 12
fs-service/src/main/resources/mapper/his/FsUserInformationCollectionMapper.xml

@@ -10,6 +10,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="userId"    column="user_id"    />
         <result property="jsonInfo"    column="json_info"    />
         <result property="userConfirm"    column="user_confirm"    />
+        <result property="userConfirmTime"    column="user_confirm_time"    />
         <result property="doctorConfirm"    column="doctor_confirm"    />
         <result property="createTime"    column="create_time"    />
         <result property="updateTime"    column="update_time"    />
@@ -40,7 +41,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectFsUserInformationCollectionVo">
-        select id, question_id, user_id, json_info, user_confirm
+        select id, question_id, user_id, json_info, user_confirm,user_confirm_time
              , doctor_confirm, create_time, update_time,doctor_id,company_user_id
              ,package_id,pay_type,amount,is_package,user_confirm2,package_order_code,package_order_id
              ,status,user_advice,doctor_advice,doctor_sign,doctor_confirm_time,sex,user_name,user_phone_four
@@ -121,18 +122,57 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where package_order_code = #{orderCode}
     </select>
     <select id="selectListByIsPayAndConfirmStatus" resultType="com.fs.his.domain.FsUserInformationCollection">
-        select fuic.id, fuic.question_id, fuic.user_id, fuic.json_info, fuic.user_confirm
-             , fuic.doctor_confirm, fuic.create_time, fuic.update_time,fuic.doctor_id,fuic.company_user_id
-             ,fuic.package_id,fuic.pay_type,fuic.amount,fuic.is_package,fuic.user_confirm2,fuic.package_order_code,
-            fuic.package_order_id
-             ,fuic.status,fuic.user_advice,fuic.doctor_advice,fuic.doctor_sign,fuic.doctor_confirm_time,fuic.sex,
-            fuic.user_name,fuic.user_phone_four
-             ,fuic.allergy,fuic.remark,fuic.patient_id,fuic.doctor_type2_id,fuic.doctor_type2_confirm,fuic.doctor_type2_sign,
-            fuic.store_order_id
-        from fs_user_information_collection fuic
-                 LEFT JOIN fs_store_order fso ON fuic.store_order_id = fso.order_id
-        where fso.status > 1 AND (fuic.doctor_confirm = 0 OR fuic.doctor_type2_confirm = 0)
+        SELECT
+        fuic.id,
+        fuic.question_id,
+        fuic.user_id,
+        fuic.json_info,
+        fuic.user_confirm,
+        fuic.user_confirm_time,
+        fuic.doctor_confirm,
+        fuic.create_time,
+        fuic.update_time,
+        fuic.doctor_id,
+        fuic.company_user_id,
+        fuic.package_id,
+        fuic.pay_type,
+        fuic.amount,
+        fuic.is_package,
+        fuic.user_confirm2,
+        fuic.package_order_code,
+        fuic.package_order_id,
+        fuic.status,
+        fuic.user_advice,
+        fuic.doctor_advice,
+        fuic.doctor_sign,
+        fuic.doctor_confirm_time,
+        fuic.sex,
+        fuic.user_name,
+        fuic.user_phone_four,
+        fuic.allergy,
+        fuic.remark,
+        fuic.patient_id,
+        fuic.doctor_type2_id,
+        fuic.doctor_type2_confirm,
+        fuic.doctor_type2_sign,
+        fuic.store_order_id
+        FROM fs_user_information_collection fuic
+        LEFT JOIN fs_store_order fso ON fuic.store_order_id = fso.order_id
+        WHERE (
+        (
+        fso.status > 1
+        AND (fuic.doctor_confirm = 0 OR fuic.doctor_type2_confirm = 0)
         AND fso.pay_time &lt;= NOW() - INTERVAL 1 HOUR
+        )
+        OR
+        -- 条件2:用户已确认超过1小时
+        (
+        fuic.user_confirm = 1
+        AND fuic.user_confirm_time &lt;= NOW() - INTERVAL 1 HOUR
+        )
+        )
+        -- 确保没有重复记录(如果两个条件可能同时满足)
+        GROUP BY fuic.id
     </select>
 
     <insert id="insertFsUserInformationCollection" parameterType="FsUserInformationCollection" useGeneratedKeys="true" keyProperty="id">
@@ -142,6 +182,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="userId != null">user_id,</if>
             <if test="jsonInfo != null">json_info,</if>
             <if test="userConfirm != null">user_confirm,</if>
+            <if test="userConfirmTime != null">user_confirm_time,</if>
             <if test="doctorConfirm != null">doctor_confirm,</if>
             <if test="createTime != null">create_time,</if>
             <if test="updateTime != null">update_time,</if>
@@ -175,6 +216,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="userId != null">#{userId},</if>
             <if test="jsonInfo != null">#{jsonInfo},</if>
             <if test="userConfirm != null">#{userConfirm},</if>
+            <if test="userConfirmTime != null">#{userConfirmTime},</if>
             <if test="doctorConfirm != null">#{doctorConfirm},</if>
             <if test="createTime != null">#{createTime},</if>
             <if test="updateTime != null">#{updateTime},</if>
@@ -212,6 +254,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="userId != null">user_id = #{userId},</if>
             <if test="jsonInfo != null">json_info = #{jsonInfo},</if>
             <if test="userConfirm != null">user_confirm = #{userConfirm},</if>
+            <if test="userConfirmTime != null and userConfirmTime != ''">user_confirm_time = #{userConfirmTime},</if>
             <if test="doctorConfirm != null">doctor_confirm = #{doctorConfirm},</if>
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>