瀏覽代碼

药师自动审核

ct 4 天之前
父節點
當前提交
445861bb18

+ 9 - 0
fs-admin/src/main/java/com/fs/his/task/Task.java

@@ -233,6 +233,8 @@ public class Task {
 
     @Autowired
     private AiHookService aiHookService;
+    @Autowired
+    private IFsUserInformationCollectionService fsUserInformationCollectionService;
 
 
     /**
@@ -1810,5 +1812,12 @@ public class Task {
         allFutures.join(); // 等待所有任务完成
     }
 
+    /**
+     * 金牛:信息采集超过一小时未确认
+     */
+    public void informationDoctorConfirm(){
+        fsUserInformationCollectionService.autoInformationDoctorConfirm();
+    }
+
 
 }

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

@@ -114,4 +114,7 @@ public interface IFsUserInformationCollectionService extends IService<FsUserInfo
     int updatePackageOrderCode(FsUserInformationCollection fsUserInformationCollection);
 
     FsUserInformationCollectionAndPatientVO selectFsUserInformationCollectionVoById(Long id);
+
+    void autoInformationDoctorConfirm();
+
 }

+ 16 - 42
fs-service/src/main/java/com/fs/his/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -500,49 +500,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         if (answerVOS != null && !answerVOS.isEmpty()) {
             map.setJsonInfo(JSON.toJSONString(answerVOS));
         }
-//        if (fsUserInformationCollection.getIsPackage() == 1) {
-//            //插入生成处方签定时任务数据
-//            if(fsUserInformationCollection.getPackageOrderCode() != null) {
-//                //套餐包订单
-//                FsPackageOrder fsPackageOrder = packageOrderMapper.selectByOderCode(fsUserInformationCollection.getPackageOrderCode());
-//                if (fsPackageOrder != null && fsPackageOrder.getIsPay() == 1) {
-//                    //套餐包信息
-//                    FsPackage fsPackage = JSON.parseObject(fsPackageOrder.getPackageJson(), FsPackage.class);
-//
-//                    //套餐包为药品生成处方信息
-//                    if(fsPackage != null && (fsPackage.getProductType() == 1 || fsPackage.getProductType() == 2 || fsPackage.getProductType() == 3)) {
-//                        FsStoreOrder fsStoreOrder = storeOrderService.selectFsStoreOrderByOrderCode(fsUserInformationCollection.getPackageOrderCode());
-//                        if (fsStoreOrder != null && fsStoreOrder.getIsPay() == 1 ) {
-//                            if (fsStoreOrder.getPrescribeId() != null) {
-////                                FsPrescribeParam fsPrescribeParam = new FsPrescribeParam();
-////                                fsPrescribeParam.setPrescribeId(fsStoreOrder.getPrescribeId());
-////                                prescribeService.confirmPrescribe(fsPrescribeParam);
-//                                prescribeService.collectionPrescribe(fsStoreOrder.getPrescribeId());
-//                            }
-//                        } else {
-//                            throw new CustomException("生成处方信息中......");
-//                        }
-//                    }
-//                }
-//            }
-//        } else {
-//            //没有关联套餐包医生确认清空所有状态
-//            map.setUserConfirm2(1);
-//        }
-
         if (fsUserInformationCollectionMapper.updateFsUserInformationCollection(map) > 0) {
-
-            //更新医生确认信息
-//            FsDoctorConfirm doctorConfirm = redisCache.getCacheObject("doctorConfirm:" + collection.getId());
-//            if(doctorConfirm == null) {
-//                return R.error("没有医生确认信息");
-//            }
-//            doctorConfirm.setDoctorEndTime(DateUtils.getNowDate());
-//            Long seconds = DateUtil.between(doctorConfirm.getStartTime(), doctorConfirm.getDoctorEndTime(), DateUnit.SECOND);
-//            doctorConfirm.setConfirmSecond(seconds);
-//            doctorConfirmService.updateFsDoctorConfirm(doctorConfirm);
-//            redisCache.deleteObject("doctorConfirm:" + collection.getId());
-
             openIMService.doctorSendMsgToUser(collection.getUserId(),collection.getDoctorId());
             return R.ok();
         }
@@ -1008,6 +966,22 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         return vo;
     }
 
+    @Override
+    public void autoInformationDoctorConfirm() {
+        //查询超过一个小时医生未处理订单
+        List<FsUserInformationCollection> list = fsUserInformationCollectionMapper.selectListByIsPayAndConfirmStatus();
+        list.forEach(informationCollection -> {
+            if (informationCollection.getDoctorConfirm() == 0){
+                //医生确认
+                doctorConfirm(informationCollection);
+            }
+            if (informationCollection.getDoctorType2Confirm() == 0){
+                //药师确认
+                doctorType2Confirm(informationCollection);
+            }
+        });
+    }
+
     private List<AnswerVO> getAnswerVOs(List<AnswerVO> target,List<AnswerVO> source) {
         target.addAll(source);
         return target.stream()

+ 14 - 0
fs-service/src/main/resources/mapper/his/FsUserInformationCollectionMapper.xml

@@ -120,6 +120,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectFsUserInformationCollectionVo"/>
         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)
+        AND fso.pay_time &lt;= NOW() - INTERVAL 1 HOUR
+    </select>
 
     <insert id="insertFsUserInformationCollection" parameterType="FsUserInformationCollection" useGeneratedKeys="true" keyProperty="id">
         insert into fs_user_information_collection