浏览代码

用户信息采集

15376779826 1 周之前
父节点
当前提交
2c6e15412e

+ 16 - 34
fs-doctor-app/src/main/java/com/fs/app/controller/PrescribeController.java

@@ -14,7 +14,9 @@ import com.fs.common.utils.StringUtils;
 import com.fs.core.utils.OrderCodeUtils;
 import com.fs.his.domain.*;
 import com.fs.his.dto.FsInquiryOrderPatientDTO;
+import com.fs.his.dto.FsUserInformationCollectionDTO;
 import com.fs.his.dto.PayloadDTO;
+import com.fs.his.mapper.FsUserInformationCollectionMapper;
 import com.fs.his.param.*;
 import com.fs.his.service.*;
 import com.fs.his.vo.FsDoctorPrescribeListDVO;
@@ -71,6 +73,8 @@ public class PrescribeController extends  AppBaseController {
     private IImService imService;
     @Autowired
     private OpenIMService openIMService;
+    @Autowired
+    private IFsUserInformationCollectionService fsUserInformationCollectionService;
     @Login
     @GetMapping("/getDoctorPrescribeList")
     public R getDoctorPrescribeList(FsDoctorPrescribeListDParam param)
@@ -374,44 +378,22 @@ public class PrescribeController extends  AppBaseController {
         //fsUserCouponService.updateFsUserCouponStatusByLimtType2();
 //        openIMService.checkAndImportFriendByDianBo(Long.parseLong(map.get("sendId")),map.get("userId"),qwExternalContact.getCorpId());
         //OpenImResponseDTO openImResponseDTO = openIMService.sendCourse(Long.parseLong(map.get("userId")), Long.parseLong(map.get("sendId")), "/pages/courseAnswer/index?link=1932017457275338752", "《五仙传医2.0》","https://cos.his.cdwjyyh.com/fs/20241108/a8ed49ae9a264c7483cec5bdcbcf6060.png");
-        log.info("请求地址{}",IMConfig.URL);
-//        log.info("前缀{}",IMConfig.PREFIX);
-        OpenImResponseDTO openImResponseDTO = openIMService.sendUserInformation(4050279479l,10086l,1l);
+//        log.info("请求地址{}",IMConfig.URL);
+////        log.info("前缀{}",IMConfig.PREFIX);
+//        OpenImResponseDTO openImResponseDTO = openIMService.sendUserInformation(4050279479l,10086l,1l);
+        CollectionInfoConfirmParam collectionInfoConfirmParam = new CollectionInfoConfirmParam();
+        collectionInfoConfirmParam.setId(1l);
+        collectionInfoConfirmParam.setUserId(4050279479l);
+        collectionInfoConfirmParam.setUserAdvice("wdgcvghfsmjgfjgdgfnbb mjkhkljhgk");
+        fsUserInformationCollectionService.userConfirm(collectionInfoConfirmParam);
         return R.ok().put("data",null);
     }
 
     @GetMapping("/getUserInformation")
     public R getUserInformation(@RequestParam("id") Long id) {
-        Map<String, Object> data = new HashMap<String, Object>() {{
-            put("id", 1);
-            put("questionId", 1);
-            put("userId", 4050279479L);
-            put("jsonInfo", Stream.generate(() -> Collections.singletonMap("flag", false))
-                    .limit(6)
-                    .collect(Collectors.toList()));
-            put("userConfirm", 0);
-            put("doctorConfirm", 0);
-            put("createTime", "2025-11-21 18:27:10");
-            put("updateTime", null);
-            put("doctorId", 318);
-            put("companyUserId", 1);
-            put("packageId", 1);
-            put("payType", null);
-            put("amount", null);
-            put("userAdvice", null);
-            put("doctorAdvice", null);
-            put("isPackage", 1);
-            put("userConfirm2", 0);
-            put("packageOrderCode", null);
-            put("status", 1);
-            put("doctorConfirmTime", null);
-            put("sex", null);
-            put("userName", null);
-            put("userPhoneFour", null);
-            put("allergy", null);
-            put("remark", null);
-        }};
-
-        return R.ok().put("data", data);
+        FsUserInformationCollectionDTO fsUserInformationCollection = fsUserInformationCollectionService.selectFsUserInformationCollectionDTOById(id);
+
+
+        return R.ok().put("data", fsUserInformationCollection);
     }
 }

+ 10 - 10
fs-service/src/main/java/com/fs/core/utils/OrderCodeUtils.java

@@ -44,16 +44,16 @@ public class OrderCodeUtils {
 
     }
     public static String getOrderSn(){
-        String url= FSConfig.getCommonApi()+ "/app/common/genOrderCode";
-//        String url= "42.194.245.189:8010/app/common/genOrderCode";
-        String json = HttpRequest.get(url)
-                .execute().body();
-        OrderCodeVO vo= JSONUtil.toBean(json, OrderCodeVO.class);
-        if(vo.getCode()==200){
-            return vo.getOrderCode();
-        }
-        else return null;
-        //return OrderCodeUtils.genOrderSn();
+//        String url= FSConfig.getCommonApi()+ "/app/common/genOrderCode";
+////        String url= "42.194.245.189:8010/app/common/genOrderCode";
+//        String json = HttpRequest.get(url)
+//                .execute().body();
+//        OrderCodeVO vo= JSONUtil.toBean(json, OrderCodeVO.class);
+//        if(vo.getCode()==200){
+//            return vo.getOrderCode();
+//        }
+//        else return null;
+        return OrderCodeUtils.genOrderSn();
 
     }
 

+ 95 - 0
fs-service/src/main/java/com/fs/his/dto/FsUserInformationCollectionDTO.java

@@ -0,0 +1,95 @@
+package com.fs.his.dto;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fs.common.annotation.Excel;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+@Data
+public class FsUserInformationCollectionDTO {
+    /** $column.columnComment */
+    private Long id;
+
+    /** 问答id */
+    @Excel(name = "问答id")
+    private Long questionId;
+
+    /** 用户id */
+    @Excel(name = "用户id")
+    private Long userId;
+
+    /** 信息采集json数据 */
+    @Excel(name = "信息采集json数据")
+    private String jsonInfo;
+
+    /** 用户确认状态 0-未确认 1-已确认 */
+    @Excel(name = "用户确认状态 0-未确认 1-已确认")
+    private Integer userConfirm;
+
+    /** 医生确认状态 0-未确认 2-已确认 */
+    @Excel(name = "医生确认状态 0-未确认 2-已确认")
+    private Integer doctorConfirm;
+
+    // 医生id
+    private Long doctorId;
+
+    //销售id
+    private Long companyUserId;
+
+    //套餐包id
+    private Long packageId;
+
+    //支付类型 0-全款 1-物流代收
+    private Integer payType;
+
+    //代收金额
+    private BigDecimal amount;
+
+    //用户补充说明
+    private String userAdvice;
+
+    //医生建议
+    private String doctorAdvice;
+
+    //是否关联套餐包 0-不关联 1-关联
+    private Integer isPackage;
+
+    //套餐包订单号
+    private String packageOrderCode;
+
+    //用户第二次确认状态
+    private Integer userConfirm2;
+
+    //确认状态 1第一次确认 2第二次确认
+    private Integer status;
+
+    //医生确认时间
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date doctorConfirmTime;
+
+    //用户性别 0女 1男
+    private Integer sex;
+    //用户姓名
+    private String userName;
+    //用户电话后四位
+    private String userPhoneFour;
+
+    //是否过敏
+    private String allergy;
+    //备注
+    private String remark;
+
+    private Long patientId;
+
+    private String patientName;
+
+    private String companyUserName;
+
+    private String doctorName;
+
+    private String packageName;
+
+    private String questionJson;
+}

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

@@ -2,6 +2,7 @@ package com.fs.his.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.fs.his.domain.FsUserInformationCollection;
+import com.fs.his.dto.FsUserInformationCollectionDTO;
 import com.fs.his.param.FsUserInformationCollectionListDParam;
 import com.fs.his.vo.FsUserInformationCollectionListDVO;
 import org.apache.ibatis.annotations.Param;
@@ -92,4 +93,6 @@ public interface FsUserInformationCollectionMapper extends BaseMapper<FsUserInfo
      */
     @Select("SELECT * FROM fs_user_information_collection WHERE is_package = 0 AND user_confirm = 1 AND doctor_confirm = 1 AND user_confirm2 = 0 AND doctor_confirm_time <= DATE_SUB(NOW(), INTERVAL 2 HOUR)")
     List<FsUserInformationCollection> selectAutoConfirm();
+
+    FsUserInformationCollectionDTO selectFsUserInformationCollectionDTOById(Long id);
 }

+ 1 - 0
fs-service/src/main/java/com/fs/his/param/FsInquiryOrderCreateParam.java

@@ -48,5 +48,6 @@ public class FsInquiryOrderCreateParam implements Serializable {
     private Long companyId;
     private Long companyUserId;
     private Integer source;//订单来源 1:小程序 2:app  3:H5
+    private Integer isUserInformation = 1;
 
 }

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

@@ -3,6 +3,7 @@ package com.fs.his.service;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fs.common.core.domain.R;
 import com.fs.his.domain.FsUserInformationCollection;
+import com.fs.his.dto.FsUserInformationCollectionDTO;
 import com.fs.his.param.CollectionInfoConfirmParam;
 import com.fs.his.param.FsUserInformationCollectionListDParam;
 import com.fs.his.param.FsUserInformationCollectionParam;
@@ -91,4 +92,6 @@ public interface IFsUserInformationCollectionService extends IService<FsUserInfo
     void autoRefund(FsUserInformationCollection collection);
 
     FsUserInformationCollectionVO getCollectionByUserId(Long userId);
+
+    FsUserInformationCollectionDTO selectFsUserInformationCollectionDTOById(Long id);
 }

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

@@ -1083,14 +1083,7 @@ public class FsInquiryOrderServiceImpl implements IFsInquiryOrderService
 
         return R.ok("抢单成功");
     }
-    //金牛发送用户信息采集数据
-    public void sendUserInformation(Long userId,Long doctorId){
-        //先查询当前用户待发送给当前医生的数据
-        //todo 待发送给当前医生的数据
-        //发送数据
-        openIMService.sendUserInformation(userId,doctorId,0l);
 
-    }
 
 
     @Override
@@ -1135,9 +1128,9 @@ public class FsInquiryOrderServiceImpl implements IFsInquiryOrderService
             }
         }
         //是用户信息采集的订单发送用户信息给医生
-        if (order.getIsUserInformation()==1){
-            sendUserInformation(order.getUserId(),order.getDoctorId());
-        }
+//        if (order.getIsUserInformation()==1){
+//            sendUserInformation(order.getUserId(),order.getDoctorId());
+//        }
         MsgDTO msgDTO=new MsgDTO();
         MsgCustomDTO customDTO=new MsgCustomDTO();
         customDTO.setType("startInquiry");

+ 54 - 28
fs-service/src/main/java/com/fs/his/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -21,9 +21,11 @@ import com.fs.core.config.WxPayProperties;
 import com.fs.core.utils.OrderCodeUtils;
 import com.fs.his.config.FsSysConfig;
 import com.fs.his.domain.*;
+import com.fs.his.dto.FsUserInformationCollectionDTO;
 import com.fs.his.enums.FsStoreOrderStatusEnum;
 import com.fs.his.mapper.*;
 import com.fs.his.param.CollectionInfoConfirmParam;
+import com.fs.his.param.FsInquiryOrderCreateParam;
 import com.fs.his.param.FsUserInformationCollectionListDParam;
 import com.fs.his.param.FsUserInformationCollectionParam;
 import com.fs.his.service.*;
@@ -33,6 +35,7 @@ import com.fs.huifuPay.domain.HuiFuRefundResult;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentDelaytransConfirmrefundRequest;
 import com.fs.huifuPay.sdk.opps.core.request.V2TradePaymentScanpayRefundRequest;
 import com.fs.huifuPay.service.HuiFuService;
+import com.fs.im.service.OpenIMService;
 import com.fs.system.domain.SysConfig;
 import com.fs.system.mapper.SysConfigMapper;
 import com.fs.system.oss.CloudStorageService;
@@ -145,6 +148,10 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
     private FsStoreOrderLogsMapper fsStoreOrderLogsMapper;
     @Autowired
     private DoctorMsgMapper doctorMsgMapper;
+    @Autowired
+    private IFsInquiryOrderService fsInquiryOrderService;
+    @Autowired
+    private OpenIMService openIMService;
     /**
      * 查询用户信息采集
      *
@@ -578,34 +585,47 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         map.setUserConfirm(1);
         map.setUserAdvice(param.getUserAdvice());
         if (collection.getStatus() == 1) {
-            //用户第一次确认添加医生消息
-            DoctorMsg msg = new DoctorMsg();
-            String name = collection.getUserName() != null ? collection.getUserName() : "-";
-            //没套餐包的添加医生信息采集建议消息
-            msg.setTitle("用户采集信息建议");
-            msg.setType(3);
-            msg.setContent("患者:" + name + "的信息采集,前往建议");
-            msg.setDoctorId(collection.getDoctorId());
-            msg.setCreateTime(DateUtils.getNowDate());
-            //插入医生消息
-            doctorMsgMapper.insertDoctorMsg(msg);
-            //第一次确认
-            map.setStatus(2);
-        } else if (collection.getStatus() == 2) {
-            //第二次确认
-            map.setUserConfirm2(1);
-            if (collection.getUserConfirm2() == 0 && collection.getIsPackage() == 1) {
-                FsStoreOrder fsStoreOrder = storeOrderService.selectFsStoreOrderByOrderCode(collection.getPackageOrderCode());
-                if (fsStoreOrder != null) {
-                    FsStoreOrder editOrder   = new FsStoreOrder();
-                    editOrder.setOrderId(fsStoreOrder.getOrderId());
-//                    editOrder.setIsConfirm(1); todo
-                    storeOrderService.updateFsStoreOrder(editOrder);
-                } else {
-                    return R.error("没有找到订单");
-                }
-            }
-        }
+
+            openIMService.sendUserInformation(collection.getUserId(),collection.getDoctorId(),collection.getId());
+            //用户确认后创建一个问诊订单,待医生接单
+//            FsInquiryOrderCreateParam fsInquiryOrderCreateParam = new FsInquiryOrderCreateParam();
+//            fsInquiryOrderCreateParam.setIsUserInformation(1);
+//            fsInquiryOrderCreateParam.setUserId(collection.getUserId());
+//            fsInquiryOrderCreateParam.setPatientId(collection.getPatientId());
+//            fsInquiryOrderCreateParam.setOrderType(1);
+//            fsInquiryOrderCreateParam.setInquiryType(1);
+//            fsInquiryOrderCreateParam.setIsVisit("1");
+//            fsInquiryOrderCreateParam.setInquirySubType(3);
+//            fsInquiryOrderService.createOrder(fsInquiryOrderCreateParam);
+//            //用户第一次确认添加医生消息
+//            DoctorMsg msg = new DoctorMsg();
+//            String name = collection.getUserName() != null ? collection.getUserName() : "-";
+//            //没套餐包的添加医生信息采集建议消息
+//            msg.setTitle("用户采集信息建议");
+//            msg.setType(3);
+//            msg.setContent("患者:" + name + "的信息采集,前往建议");
+//            msg.setDoctorId(collection.getDoctorId());
+//            msg.setCreateTime(DateUtils.getNowDate());
+//            //插入医生消息
+//            doctorMsgMapper.insertDoctorMsg(msg);
+//            //第一次确认
+//            map.setStatus(2);
+        }
+//        else if (collection.getStatus() == 2) {
+//            //第二次确认
+//            map.setUserConfirm2(1);
+//            if (collection.getUserConfirm2() == 0 && collection.getIsPackage() == 1) {
+//                FsStoreOrder fsStoreOrder = storeOrderService.selectFsStoreOrderByOrderCode(collection.getPackageOrderCode());
+//                if (fsStoreOrder != null) {
+//                    FsStoreOrder editOrder   = new FsStoreOrder();
+//                    editOrder.setOrderId(fsStoreOrder.getOrderId());
+////                    editOrder.setIsConfirm(1); todo
+//                    storeOrderService.updateFsStoreOrder(editOrder);
+//                } else {
+//                    return R.error("没有找到订单");
+//                }
+//            }
+//        }
         if (fsUserInformationCollectionMapper.updateFsUserInformationCollection(map) > 0) {
             //存入医生确认统计时间数据
             FsDoctorConfirm doctorConfirm = new FsDoctorConfirm();
@@ -829,6 +849,11 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         return vo;
     }
 
+    @Override
+    public FsUserInformationCollectionDTO selectFsUserInformationCollectionDTOById(Long id) {
+        return fsUserInformationCollectionMapper.selectFsUserInformationCollectionDTOById(id);
+    }
+
     private List<AnswerVO> getAnswerVOs(List<AnswerVO> target,List<AnswerVO> source) {
         target.addAll(source);
         return target.stream()
@@ -899,4 +924,5 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
 //        System.out.println(JSON.toJSONString(collect1));
         boolean contains = "是否有糖尿病相关疾病?".contains("糖尿病");
     }
+
 }

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

@@ -2,7 +2,7 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.fs.doctor.mapper.DoctorMsgMapper">
+<mapper namespace="com.fs.his.mapper.DoctorMsgMapper">
 
     <resultMap type="DoctorMsg" id="DoctorMsgResult">
         <result property="id"    column="id"    />

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

@@ -71,6 +71,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectFsUserInformationCollectionVo"/>
         where package_order_code = #{orderCode}
     </select>
+    <select id="selectFsUserInformationCollectionDTOById"
+            resultType="com.fs.his.dto.FsUserInformationCollectionDTO">
+        SELECT fui.*,fu.nick_name as userName,fp.patient_name,cu.nick_name as companyUserName,fd.doctor_name,fpkg.package_name,fqa.json_info as questionJson FROM fs_user_information_collection fui
+          LEFT JOIN fs_user fu ON fui.user_id = fu.user_id
+          LEFT JOIN fs_patient fp ON fui.patient_id = fp. patient_id
+          LEFT JOIN company_user cu ON fui.company_user_id = cu.user_id
+          LEFT JOIN fs_doctor fd ON fui.doctor_id = fd.doctor_id
+          LEFT JOIN fs_package fpkg ON fui.package_id = fpkg.package_id
+          LEFT JOIN fs_question_and_answer fqa ON fui.question_id = fqa.id
+        WHERE fui.id = #{id}
+    </select>
 
     <insert id="insertFsUserInformationCollection" parameterType="FsUserInformationCollection" useGeneratedKeys="true" keyProperty="id">
         insert into fs_user_information_collection