Quellcode durchsuchen

改版信息采集表

cgp vor 4 Tagen
Ursprung
Commit
9be1eca247

+ 9 - 8
fs-service/src/main/java/com/fs/enums/PostPayPrescStatusEnum.java

@@ -13,14 +13,15 @@ import java.util.Optional;
 @AllArgsConstructor
 public enum PostPayPrescStatusEnum {
 
-    INFO_COLLECTION(0, "创建个微信息采集"),
-    USER_BIND(1, "用户已绑定userId"),
-    FULLY_COLLECTED_DATA(2, "已完善采集信息"),
-    DOCTOR_PRESCRIBE(3, "医生开方"),
-    PHARMACIST_REVIEW(4, "药师审核并生成处方"),
-    PACKAGE_BIND(5, "销售选择绑定套餐包"),
-    ORDER_PAID(6, "用户付款生成订单"),
-    UNKNOWN(7, "未知状态");
+    INFO_COLLECTION(0, "待绑定用户"),
+    GENERATE_OPEN_DATA(1, "待生成开方数据"),
+    PENDING_DOCTOR(2, "待医生开方"),
+    PENDING_DRUG_DOCTOR(3, "待药师审核"),
+    PACKAGE_BIND(4, "待绑定套餐包"),
+    PENDING_SHARE(5, "待分享创建订单"),
+    ORDER_IS_CREATED(6, "待支付"),
+    PAID_BY_USER(7, "已完成"),
+    UNKNOWN(99, "未知状态");
 
     private final Integer code;
     private final String desc;

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

@@ -87,6 +87,9 @@ public interface IFsPrescribeService
 
     R audit(FsPrescribeAuditParam param);
 
+    /**
+     * 药师审核-(后付款版本)
+     * */
     R auditAfterPaymentList(FsPrescribeAuditParam param);
 
      String PrescribeImg(Long prescribeId);

+ 3 - 3
fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java

@@ -710,7 +710,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
                     logger.info("订单已创建!,采集信息collectionId:{},订单id:{}",collection.getId(),collection.getPackageOrderCode());
                     return R.ok();
                 }
-                if(collection.getStatus()!=null&& Objects.equals(collection.getPersonalCollectStatus(), PostPayPrescStatusEnum.ORDER_PAID.getCode()) &&collection.getQwTag()==1){
+                if(collection.getStatus()!=null&& Objects.equals(collection.getPersonalCollectStatus(), PostPayPrescStatusEnum.ORDER_IS_CREATED.getCode()) &&collection.getQwTag()==1){
                     //个微用户信息采集订单避免重复创建
                     TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
                     logger.info("订单已创建!,采集信息collectionId:{},订单id:{}",collection.getId(),collection.getPackageOrderCode());
@@ -874,8 +874,8 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
                     collectionUser.setId(collection.getId());
                     collectionUser.setPackageOrderCode(orderSn);
                     if (collection.getQwTag() == 1){
-                        //个微用户信息采集需要更新状态
-                        collectionUser.setPersonalCollectStatus(PostPayPrescStatusEnum.ORDER_PAID.getCode());
+                        //个微用户信息采集需要更新状态 用户
+                        collectionUser.setPersonalCollectStatus(PostPayPrescStatusEnum.ORDER_IS_CREATED.getCode());
                     }
                     userInformationCollectionMapper.updateFsUserInformationCollection(collectionUser);
 

+ 3 - 3
fs-service/src/main/java/com/fs/his/service/impl/FsPrescribeServiceImpl.java

@@ -1359,7 +1359,7 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
             fsExportTaskService.resetFsExportTaskByPrescribeIdAndSignFlag(param.getPrescribeId(),2);
             //修改采集表个微状态 销售可以根据处方给客户分享套餐包进行下单了
             FsUserInformationCollection informationCollection = collectionMapper.selectFsUserInformationCollectionById(param.getCollectionId());
-            informationCollection.setPersonalCollectStatus(PostPayPrescStatusEnum.PHARMACIST_REVIEW.getCode());
+            informationCollection.setPersonalCollectStatus(PostPayPrescStatusEnum.PENDING_SHARE.getCode());
             collectionMapper.updateFsUserInformationCollection(informationCollection);
         }
         if (param.getStatus() == 2) {
@@ -1373,7 +1373,7 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
             doctorMsgMapper.insertDoctorMsg(msg);
 
             FsUserInformationCollection informationCollection = collectionMapper.selectFsUserInformationCollectionById(param.getCollectionId());
-            informationCollection.setPersonalCollectStatus(PostPayPrescStatusEnum.DOCTOR_PRESCRIBE.getCode());
+            informationCollection.setPersonalCollectStatus(PostPayPrescStatusEnum.PENDING_DOCTOR.getCode());
             collectionMapper.updateFsUserInformationCollection(informationCollection);
         }
         if (this.updateFsPrescribe(map) > 0){
@@ -1613,7 +1613,7 @@ public class FsPrescribeServiceImpl implements IFsPrescribeService
             FsUserInformationCollection willUpdate = new FsUserInformationCollection();
             willUpdate.setId(collection.getId());
             willUpdate.setDoctorConfirm(1);//医生已确认
-            willUpdate.setPersonalCollectStatus(PostPayPrescStatusEnum.DOCTOR_PRESCRIBE.getCode());
+            willUpdate.setPersonalCollectStatus(PostPayPrescStatusEnum.PENDING_DRUG_DOCTOR.getCode());//待药师审核
             collectionMapper.updateFsUserInformationCollection(willUpdate);
             //确认完成后删除缓存(如果有缓存)
             redisCache.deleteObject("collectionPrescribeId:" + fsPrescribe.getPrescribeId());

+ 5 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -32,6 +32,7 @@ import com.fs.core.config.WxPayProperties;
 import com.fs.core.utils.OrderCodeUtils;
 import com.fs.doctor.domain.DoctorMsg;
 import com.fs.doctor.mapper.DoctorMsgMapper;
+import com.fs.enums.PostPayPrescStatusEnum;
 import com.fs.erp.domain.*;
 import com.fs.erp.dto.*;
 import com.fs.erp.dto.df.*;
@@ -1201,6 +1202,10 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
                     //处方绑定订单id
                     fsPrescribe.setStoreOrderId(order.getOrderId());
                     prescribeService.updateFsPrescribe(fsPrescribe);
+                    FsUserInformationCollection willUpdate = new FsUserInformationCollection();
+                    willUpdate.setId(collection.getId());
+                    willUpdate.setPersonalCollectStatus(PostPayPrescStatusEnum.PAID_BY_USER.getCode());//用户已付款状态
+                    userInformationCollectionMapper.updateFsUserInformationCollection(willUpdate);
                     //回调订单绑定处方id
                     order.setPrescribeId(fsPrescribe.getPrescribeId());
                 }

+ 24 - 0
fs-service/src/main/java/com/fs/his/vo/PostPayPrescStatusVo.java

@@ -0,0 +1,24 @@
+package com.fs.his.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 处方流程状态枚举信息DTO
+ */
+@Data
+@ApiModel(value = "PostPayPrescStatusVo", description = "后付款处方流程状态枚举信息")
+public class PostPayPrescStatusVo {
+    
+    @ApiModelProperty(value = "状态码", example = "0")
+    private Integer code;
+    
+    @ApiModelProperty(value = "状态描述", example = "待绑定用户")
+    private String desc;
+    
+    public PostPayPrescStatusVo(Integer code, String desc) {
+        this.code = code;
+        this.desc = desc;
+    }
+}

+ 55 - 14
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -348,20 +348,14 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
     }
 
 
-    //创建简化版采集信息(没有用户id)
+    //创建个微版采集信息(起始无绑定用户id)
     @Override
     @Transactional(rollbackFor = Exception.class)
     public FsUserInformationCollection createSimpleUserInfo(FsUserInformationCollectionParam param) {
+        //校验销售填写条件
         checkSalesFillCondition(param);
-        if (param.getIsPackage() != null && param.getIsPackage() == 1) {
-            FsPackage fsPackage = packageMapper.selectFsPackageByPackageId(param.getPackageId());
-            if (fsPackage != null && !(fsPackage.getProductType() == 1 || fsPackage.getProductType() == 2 || fsPackage.getProductType() == 3)) {
-                throw new CustomException("该套餐不支持用户信息采集");
-            }
-        }
-
         //构建用户信息采集对象
-        FsUserInformationCollection fsUserInformationCollection = buildUserInfoCollection(param);
+        FsUserInformationCollection fsUserInformationCollection = buildFastInfoCollection(param);
         //添加个微标识
         fsUserInformationCollection.setQwTag(1);
         fsUserInformationCollection.setPersonalCollectStatus(PostPayPrescStatusEnum.INFO_COLLECTION.getCode());//个微采集表初始状态
@@ -373,10 +367,9 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
                 fsUserInformationCollection.setCompleteStatus(0);
             }
             baseMapper.insertFsUserInformationCollection(fsUserInformationCollection);
-
         } catch (Exception e) {
-            logger.error("极速版-----用户信息采集进度创建失败", e);
-            throw new CustomException("信息采集进度创建失败");
+            logger.error("个微版-----用户信息采集进度创建失败", e);
+            throw new CustomException("个微信息采集创建失败");
         }
         return fsUserInformationCollection;
     }
@@ -395,7 +388,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             return R.error("用户信息不匹配,无法确认");
         }
 
-        collection.setPersonalCollectStatus(PostPayPrescStatusEnum.FULLY_COLLECTED_DATA.getCode());
+        collection.setPersonalCollectStatus(PostPayPrescStatusEnum.PENDING_DOCTOR.getCode());
         if (fsUserInformationCollectionMapper.updateFsUserInformationCollection(collection) > 0) {
             //新增fs_prescribe处方信息
             FsPrescribe fsPrescribe = transformCollectionParamToFsPrescribe(param, collection);
@@ -1557,7 +1550,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         map.setUserId(param.getUserId());
         map.setId(param.getCollectionId());
         map.setQwTag(1);
-        map.setPersonalCollectStatus(PostPayPrescStatusEnum.USER_BIND.getCode());//个微采集表完善采集表状态
+        map.setPersonalCollectStatus(PostPayPrescStatusEnum.GENERATE_OPEN_DATA.getCode());//个微信息采集完善状态
         if (fsUserInformationCollectionMapper.updateFsUserInformationCollection(map) > 0) {
             //更新信息采集进度表里面的用户id
             FsUserInformationCollectionSchedule schedule = scheduleMapper.selectCollectionScheduleRunningByCollectionId(param.getCollectionId());
@@ -1929,6 +1922,54 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         return shedule;
     }
 
+    /**
+     * 辅助方法:组装极速版信息采集对象
+     * */
+    private FsUserInformationCollection buildFastInfoCollection(FsUserInformationCollectionParam param) {
+        FsUserInformationCollection fsUserInformationCollection = new FsUserInformationCollection();
+
+        if (!CollectionUtils.isEmpty(param.getAnswers())) {
+            param.getAnswers().forEach(answer -> {
+                if (answer.getFlag() == null) {
+                    answer.setFlag(false);
+                }
+            });
+        }
+
+        fsUserInformationCollection.setFillFlag(param.getFillFlag());
+        fsUserInformationCollection.setJsonInfo(JSON.toJSONString(param.getAnswers()));
+        fsUserInformationCollection.setUserId(param.getUserId());
+        fsUserInformationCollection.setCompanyUserId(param.getCompanyUserId());
+        fsUserInformationCollection.setQuestionId(param.getQuestionId());
+        fsUserInformationCollection.setId(param.getId());
+        fsUserInformationCollection.setUserName(param.getUserName());
+        fsUserInformationCollection.setUserPhoneFour(param.getUserPhoneFour());
+        fsUserInformationCollection.setSex(param.getSex());
+        fsUserInformationCollection.setAllergy(param.getAllergy());
+        fsUserInformationCollection.setRemark(param.getRemark());
+        fsUserInformationCollection.setAge(param.getAge());
+        fsUserInformationCollection.setCompanyId(param.getCompanyId());
+        fsUserInformationCollection.setCreateTime(DateUtils.getNowDate());
+
+        // 根据销售人员获取医生信息
+        CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getCompanyUserId());
+        if (companyUser == null) {
+            throw new CustomException("销售不存在");
+        }
+        Long doctorId = null;
+        if (companyUser.getDoctorId() != null) {
+            FsDoctor doctor = doctorMapper.selectFsDoctorByDoctorId(companyUser.getDoctorId());
+            if (doctor != null) {
+                doctorId = doctor.getDoctorId();
+            }
+        } else {
+            doctorId = iFsDoctorService.selectFsDoctorDoctorByPackage();
+        }
+        fsUserInformationCollection.setDoctorId(doctorId);
+
+        return fsUserInformationCollection;
+    }
+
     public static void main(String[] args) {
 //        String str1 = "[{\"options\":[{\"flag\":false,\"name\":\"通天\",\"value\":0},{\"flag\":false,\"name\":\"哈哈\",\"value\":1}],\"title\":\"测试标题1\",\"value\":1},{\"options\":[{\"flag\":false,\"name\":\"呼呼\",\"value\":0},{\"flag\":false,\"name\":\"嘻嘻\",\"value\":1}],\"title\":\"测试标题2\",\"value\":1},{\"options\":[{\"flag\":false,\"name\":\"胸痛\",\"value\":0},{\"flag\":false,\"name\":\"胸闷\",\"value\":1},{\"flag\":false,\"name\":\"头晕\",\"value\":2},{\"flag\":false,\"name\":\"肢体麻木\",\"value\":3},{\"flag\":false,\"name\":\"无\",\"value\":4}],\"title\":\"您目前是否有心脑血管相关症状,如胸痛、胸闷、头晕、肢体麻木等?\",\"value\":1}]";
 //        String str2 = "[{\"options\":[{\"flag\":true,\"name\":\"胸痛\",\"value\":0},{\"flag\":true,\"name\":\"胸闷\",\"value\":1},{\"flag\":true,\"name\":\"头晕\",\"value\":2},{\"flag\":true,\"name\":\"肢体麻木\",\"value\":3},{\"flag\":true,\"name\":\"无\",\"value\":4}],\"title\":\"您目前是否有心脑血管相关症状,如胸痛、胸闷、头晕、肢体麻木等?\",\"value\":1},{\"options\":[{\"flag\":false,\"name\":\"胃疼\",\"value\":0},{\"flag\":false,\"name\":\"反酸\",\"value\":1},{\"flag\":false,\"name\":\"恶心\",\"value\":2},{\"flag\":false,\"name\":\"呕吐\",\"value\":3},{\"flag\":false,\"name\":\"黑便\",\"value\":4},{\"flag\":false,\"name\":\"无\",\"value\":5}],\"title\":\"您近期是否出现胃部不适症状,如胃痛、反酸、恶心、呕吐或黑便?\",\"value\":1}]";

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

@@ -12,12 +12,14 @@ import com.fs.course.param.CollectionBindUserParam;
 import com.fs.course.param.CollectionInfoConfirmParam;
 import com.fs.course.param.SubmitCollectionAnswerParam;
 import com.fs.course.vo.FsUserInfoCollectionUVO;
+import com.fs.enums.PostPayPrescStatusEnum;
 import com.fs.his.domain.FsUser;
 import com.fs.his.domain.FsUserInformationCollectionSchedule;
 import com.fs.his.enums.PrescriptionTaskStepEnum;
 import com.fs.his.service.IFsPackageService;
 import com.fs.his.service.IFsUserService;
 import com.fs.his.vo.OptionsVO;
+import com.fs.his.vo.PostPayPrescStatusVo;
 import com.fs.hisStore.domain.FsUserInformationCollection;
 import com.fs.hisStore.param.FsUserInformationCollectionParam;
 import com.fs.hisStore.service.IFsUserInformationCollectionService;
@@ -30,10 +32,7 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 @Slf4j
 @Api("用户信息采集接口")
@@ -87,6 +86,24 @@ public class UserInfoCollectionController extends AppBaseController {
         return userInformationCollectionService.bindUser(param);
     }
 
+    /**
+     * 获取所有处方流程状态枚举信息
+     * 返回格式适合前端使用,包含code和desc
+     */
+    @ApiOperation("获取所有处方流程状态枚举信息")
+    @GetMapping(value = "/all")
+    public R getAllStatus() {
+        List<PostPayPrescStatusVo> statusList = new ArrayList<>();
+
+        for (PostPayPrescStatusEnum status : PostPayPrescStatusEnum.values()) {
+            if (!status.equals(PostPayPrescStatusEnum.UNKNOWN)) {
+                statusList.add(new PostPayPrescStatusVo(status.getCode(), status.getDesc()));
+            }
+        }
+
+        return R.ok().put("data", statusList);
+    }
+
     /**
      * 获取用户信息采集详细信息
      */