Forráskód Böngészése

用户信息采集

wjj 4 napja
szülő
commit
ea4aa0c40a
17 módosított fájl, 154 hozzáadás és 30 törlés
  1. 24 0
      fs-service/src/main/java/com/fs/course/vo/FsUserInfoCollectionUVO.java
  2. 2 0
      fs-service/src/main/java/com/fs/his/domain/FsStoreOrder.java
  3. 2 0
      fs-service/src/main/java/com/fs/his/mapper/FsPackageOrderMapper.java
  4. 1 1
      fs-service/src/main/java/com/fs/his/mapper/FsStoreOrderMapper.java
  5. 3 0
      fs-service/src/main/java/com/fs/his/service/impl/FsPackageOrderServiceImpl.java
  6. 3 1
      fs-service/src/main/java/com/fs/his/service/impl/FsQuestionAndAnswerServiceImpl.java
  7. 12 2
      fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java
  8. 6 5
      fs-service/src/main/java/com/fs/his/vo/AnswerVO.java
  9. 2 0
      fs-service/src/main/java/com/fs/hisStore/mapper/FsUserInformationCollectionMapper.java
  10. 1 1
      fs-service/src/main/java/com/fs/hisStore/service/IFsUserInformationCollectionService.java
  11. 82 18
      fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java
  12. 3 0
      fs-service/src/main/java/com/fs/hisStore/vo/FsUserInformationCollectionListDVO.java
  13. 1 0
      fs-service/src/main/java/com/fs/hisStore/vo/FsUserInformationCollectionVO.java
  14. 5 0
      fs-service/src/main/resources/mapper/his/FsPackageOrderMapper.xml
  15. 4 0
      fs-service/src/main/resources/mapper/his/FsStoreOrderMapper.xml
  16. 1 1
      fs-service/src/main/resources/mapper/hisStore/FsUserInformationCollectionMapper.xml
  17. 2 1
      fs-user-app/src/main/java/com/fs/app/controller/UserInfoCollectionController.java

+ 24 - 0
fs-service/src/main/java/com/fs/course/vo/FsUserInfoCollectionUVO.java

@@ -1,5 +1,6 @@
 package com.fs.course.vo;
 
+import com.fs.his.domain.FsPackage;
 import com.fs.his.vo.AnswerVO;
 import lombok.Data;
 
@@ -32,4 +33,27 @@ public class FsUserInfoCollectionUVO {
     private Integer userConfirm;
 
     private Integer userConfirm2;
+
+    private FsPackage fsPackage;
+
+    //销售id
+    private Long companyUserId;
+
+    //销售公司id
+    private Long companyId;
+
+    //套餐包订单号
+    private String packageOrderCode;
+
+    //订单状态 0-待支付 1-待发货 2-待收货 3-已完成 4-已取消
+    private Integer orderStatus;
+
+    private Long orderId;
+
+    private String userAdvice;
+
+    private String doctorAdvice;
+
+
+    private String patientJson;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/domain/FsStoreOrder.java

@@ -269,4 +269,6 @@ public class FsStoreOrder extends BaseEntity
     //0未合并 1已合并
     private Integer isMerge;
 
+    //用户信息采集是否确认 1-确认
+    private Integer isConfirm;
 }

+ 2 - 0
fs-service/src/main/java/com/fs/his/mapper/FsPackageOrderMapper.java

@@ -231,4 +231,6 @@ public interface FsPackageOrderMapper
     FsPackage selectFsPackageByOrderId(Long packageOrderId);
 
     List<PackageOrderDTO> getNewOrder();
+
+    FsPackageOrder selectByOderCode(String orderCode);
 }

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

@@ -652,7 +652,7 @@ public interface FsStoreOrderMapper
             "</if>" +
             "</script>"})
     Long selectFsStoreOrderTotalCount(@Param("type") int type, @Param("companyId") Long companyId);
-    @Select("select order_id from fs_store_order WHERE `status`= 2 and  extend_order_id is null ")
+    @Select("select order_id from fs_store_order WHERE `status`= 2 and  extend_order_id is null and is_confirm = 1 ")
     List<Long> selectFsStoreOrderNoCreateOms();
     @Select("select order_id from fs_store_order WHERE `status`= 2 and order_type=2 and store_id in(select store_id from fs_store where delivery_type=1) and  extend_order_id is null ")
     List<Long> selectFsStoreOrderNoTuiOrder();

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

@@ -803,6 +803,8 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
                     collectionUser.setId(collection.getId());
                     collectionUser.setPackageOrderCode(orderSn);
                     userInformationCollectionMapper.updateFsUserInformationCollection(collectionUser);
+                } else {
+                    return R.error("用户信息采集错误,创建失败");
                 }
             }
 
@@ -856,6 +858,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
 
         FsPackageOrderComputeParam computeParam=new FsPackageOrderComputeParam();
         BeanUtil.copyProperties(param,computeParam);
+        computeParam.setOrderCode(order.getOrderSn());
         if (order.getUserCouponId()!=null&&order.getUserCouponId()>0){
             computeParam.setUserCouponId(order.getUserCouponId());
         }

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

@@ -4,6 +4,8 @@ import java.util.Collections;
 import java.util.List;
 
 import cn.hutool.json.JSONUtil;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.fs.common.utils.DateUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -40,7 +42,7 @@ public class FsQuestionAndAnswerServiceImpl extends ServiceImpl<FsQuestionAndAns
         FsQuestionAndAnswer fsQuestionAndAnswer = baseMapper.selectFsQuestionAndAnswerById(id);
         FsQuestionAndAnswerVO vo = new FsQuestionAndAnswerVO();
         vo.setQuestionName(fsQuestionAndAnswer.getQuestionName());
-        List<AnswerVO> answerVOS = JSONObject.parseArray(fsQuestionAndAnswer.getJsonInfo(), AnswerVO.class);
+        List<AnswerVO> answerVOS = JSON.parseArray(fsQuestionAndAnswer.getJsonInfo(), AnswerVO.class);
         vo.setAnswers(answerVOS);
         vo.setId(fsQuestionAndAnswer.getId());
         return vo;

+ 12 - 2
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -47,8 +47,10 @@ import com.fs.his.utils.PhoneUtil;
 import com.fs.his.vo.*;
 import com.fs.hisStore.domain.FsStoreOrderScrm;
 import com.fs.hisStore.domain.FsStorePaymentScrm;
+import com.fs.hisStore.domain.FsUserInformationCollection;
 import com.fs.hisStore.mapper.FsStoreOrderScrmMapper;
 import com.fs.hisStore.mapper.FsStorePaymentScrmMapper;
+import com.fs.hisStore.mapper.FsUserInformationCollectionMapper;
 import com.fs.hisStore.service.IFsStoreOrderLogsScrmService;
 import com.fs.hisStore.service.IFsStoreOrderScrmService;
 import com.fs.hisStore.service.IFsStorePaymentScrmService;
@@ -293,6 +295,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
     @Autowired
     private com.fs.gtPush.service.uniPush2Service uniPush2Service;
 
+    @Autowired
+    private FsUserInformationCollectionMapper userInformationCollectionMapper;
+
     //ERP 类型到服务的映射
     private Map<Integer, IErpOrderService> erpServiceMap;
     @PostConstruct
@@ -843,7 +848,7 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         Integer productType = (Integer) packageJson.get("productType");
         FsStoreOrder order = new FsStoreOrder();
         Long prescribeId =null;
-        if (productType==1 || packageSubType==2){
+        if (productType==1 || productType==2){
             if (packageOrder.getDoctorId() == null) {
                 Long doctorID = iFsDoctorService.selectFsDoctorDoctorByPackage();
                 packageOrder.setDoctorId(doctorID);
@@ -861,7 +866,12 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         order.setOrderCode(packageOrder.getOrderSn());
         order.setUserId(packageOrder.getUserId());
         order.setStoreId(fsPackage.getStoreId());
-
+        FsUserInformationCollection collection = userInformationCollectionMapper.selectByOrderCode(packageOrder.getOrderSn());
+        logger.info("用户采集信息{}:=================>",collection);
+        if (collection != null) {
+            //是否确认(用户信息采集 为0的不推送到ERP)1推送
+            order.setIsConfirm(0);
+        }
         order.setStatus(2);
         order.setPayDelivery(packageOrder.getPayDelivery());
         order.setPayRemain(packageOrder.getPayRemain());

+ 6 - 5
fs-service/src/main/java/com/fs/his/vo/AnswerVO.java

@@ -4,14 +4,16 @@ import lombok.Data;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.io.Serializable;
 import java.util.List;
 
 @Data
-public class AnswerVO {
+public class AnswerVO implements Serializable {
+    private static final long serialVersionUID = 1L;
 
     private String title;
 
-    private List<options> options;
+    private List<Options> options;
 
     //已选择数据
     private Integer value;
@@ -19,9 +21,8 @@ public class AnswerVO {
     //是否医生已确认
     private Boolean flag;
 
-    @Getter
-    @Setter
-    public static class options{
+   @Data
+    public static class Options implements Serializable{
         private String name;
         private Integer value;
     }

+ 2 - 0
fs-service/src/main/java/com/fs/hisStore/mapper/FsUserInformationCollectionMapper.java

@@ -47,6 +47,8 @@ public interface FsUserInformationCollectionMapper extends BaseMapper<FsUserInfo
      */
     int updateFsUserInformationCollection(FsUserInformationCollection fsUserInformationCollection);
 
+    @Select("UPDATE fs_user_information_collection SET package_order_code = NULL WHERE id = #{id}")
+    void collectionOderCodeNULL(@Param("id") Long id);
     /**
      * 删除用户信息采集
      * 

+ 1 - 1
fs-service/src/main/java/com/fs/hisStore/service/IFsUserInformationCollectionService.java

@@ -82,7 +82,7 @@ public interface IFsUserInformationCollectionService extends IService<FsUserInfo
 
     R doctorConfirm(FsUserInformationCollection collection);
 
-    FsUserInfoCollectionUVO info(Long id);
+    FsUserInfoCollectionUVO info(Long id,Long userId);
 
     R userConfirm(CollectionInfoConfirmParam param);
 }

+ 82 - 18
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -1,9 +1,6 @@
 package com.fs.hisStore.service.impl;
 
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -24,13 +21,21 @@ import com.fs.common.utils.StringUtils;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.core.config.WxMaConfiguration;
+import com.fs.course.mapper.FsUserCompanyUserMapper;
 import com.fs.course.param.CollectionInfoConfirmParam;
 import com.fs.course.vo.FsUserInfoCollectionUVO;
 import com.fs.his.config.FsSysConfig;
 import com.fs.his.domain.FsDoctor;
+import com.fs.his.domain.FsPackage;
+import com.fs.his.domain.FsPackageOrder;
+import com.fs.his.domain.FsStoreOrder;
 import com.fs.his.mapper.FsDoctorMapper;
+import com.fs.his.mapper.FsPackageMapper;
+import com.fs.his.mapper.FsPackageOrderMapper;
 import com.fs.his.service.IFsDoctorService;
+import com.fs.his.service.IFsPackageOrderService;
 import com.fs.his.service.IFsQuestionAndAnswerService;
+import com.fs.his.service.IFsStoreOrderService;
 import com.fs.his.utils.ConfigUtil;
 import com.fs.his.vo.AnswerVO;
 import com.fs.his.vo.FsQuestionAndAnswerVO;
@@ -50,6 +55,7 @@ import org.springframework.stereotype.Service;
 import com.fs.hisStore.mapper.FsUserInformationCollectionMapper;
 import com.fs.hisStore.domain.FsUserInformationCollection;
 import com.fs.hisStore.service.IFsUserInformationCollectionService;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.util.CollectionUtils;
 
 /**
@@ -85,6 +91,15 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
     @Autowired
     RedisCache redisCache;
 
+    @Autowired
+    private FsPackageMapper packageMapper;
+
+    @Autowired
+    private IFsStoreOrderService storeOrderService;
+
+    @Autowired
+    private FsPackageOrderMapper packageOrderMapper;
+
     /**
      * 查询用户信息采集
      * 
@@ -268,6 +283,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
     }
 
     @Override
+    @Transactional
     public R doctorConfirm(FsUserInformationCollection collection) {
         FsUserInformationCollection fsUserInformationCollection = fsUserInformationCollectionMapper.selectFsUserInformationCollectionById(collection.getId());
         if (fsUserInformationCollection == null) {
@@ -288,12 +304,20 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             });
         }
         FsUserInformationCollection map = new FsUserInformationCollection();
+        map.setId(collection.getId());
         if (answerVOS != null && !answerVOS.isEmpty()) {
             map.setJsonInfo(JSON.toJSONString(answerVOS));
         }
-        map.setId(collection.getId());
-        map.setDoctorAdvice(collection.getDoctorAdvice());
-        map.setDoctorConfirm(1);
+        if (fsUserInformationCollection.getIsPackage() == 1) {
+            map.setDoctorAdvice(collection.getDoctorAdvice());
+            map.setDoctorConfirm(1);
+        } else {
+
+            //没有关联套餐包医生确认清空所有状态
+            map.setDoctorConfirm(0);
+            map.setUserConfirm(0);
+        }
+
         if (fsUserInformationCollectionMapper.updateFsUserInformationCollection(map) > 0) {
 
             //更新医生确认信息
@@ -312,25 +336,54 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
     }
 
     @Override
-    public FsUserInfoCollectionUVO info(Long id) {
+    public FsUserInfoCollectionUVO info(Long id,Long userId) {
         FsUserInfoCollectionUVO vo = new FsUserInfoCollectionUVO();
         FsUserInformationCollection collection = fsUserInformationCollectionMapper.selectFsUserInformationCollectionById(id);
+
         if (collection != null) {
+            //TODO 测试完放开
+            if (!Objects.equals(collection.getUserId(), userId)) {
+                return vo;
+            }
             if (collection.getIsPackage() == 1) {
                 vo.setPackageId(collection.getPackageId());
                 vo.setPayType(collection.getPayType());
                 vo.setAmount(collection.getAmount());
-
+                FsPackage fsPackage = new FsPackage();
+                FsPackage fsPackage1 = packageMapper.selectFsPackageByPackageId(collection.getPackageId());
+                if (fsPackage1 != null) {
+                    fsPackage = fsPackage1;
+                }
+                vo.setFsPackage(fsPackage);
+                CompanyUser companyUser = companyUserMapper.selectCompanyUserById(collection.getCompanyUserId());
+                if (companyUser == null) {
+                    throw new CustomException("销售不存在");
+                }
+                vo.setCompanyUserId(collection.getCompanyUserId());
+                vo.setCompanyId(companyUser.getCompanyId());
+                vo.setPackageOrderCode(collection.getPackageOrderCode());
+                FsPackageOrder fsPackageOrder = packageOrderMapper.selectByOderCode(collection.getPackageOrderCode());
+                if(fsPackageOrder!=null) {
+                    vo.setOrderStatus(fsPackageOrder.getIsPay());
+                    vo.setOrderId(fsPackageOrder.getOrderId());
+                    vo.setPatientJson(fsPackageOrder.getPatientJson());
+                }
             }
             vo.setIsPackage(collection.getIsPackage());
             vo.setId(collection.getId());
             vo.setAnswers(JSON.parseArray(collection.getJsonInfo(), AnswerVO.class));
             vo.setStatus(collection.getStatus());
+            vo.setUserConfirm(collection.getUserConfirm());
+            vo.setUserConfirm2(collection.getUserConfirm2());
+            vo.setDoctorConfirm(collection.getDoctorConfirm());
+            vo.setUserAdvice(collection.getUserAdvice());
+            vo.setDoctorAdvice(collection.getDoctorAdvice());
         }
         return vo;
     }
 
     @Override
+    @Transactional
     public R userConfirm(CollectionInfoConfirmParam param) {
         if (param.getId() == null) {
             return R.error("参数错误");
@@ -354,22 +407,33 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             //第一次确认
             if (collection.getStatus() == 1) {
                 map.setStatus(2);
-
-                //存入医生确认统计时间数据
-                FsDoctorConfirm doctorConfirm = new FsDoctorConfirm();
-                doctorConfirm.setCollectionId(collection.getId());
-                doctorConfirm.setDoctorId(collection.getDoctorId());
-                doctorConfirm.setStartTime(DateUtils.getNowDate());
-                doctorConfirmService.insertFsDoctorConfirm(doctorConfirm);
-                redisCache.setCacheObject("doctorConfirm:" + collection.getId(), doctorConfirm);
-
             } else if (collection.getStatus() == 2) {
+                //清空订单号
+                fsUserInformationCollectionMapper.collectionOderCodeNULL(collection.getId());
                 map.setStatus(1);
                 map.setDoctorConfirm(0);
                 map.setUserConfirm(0);
+                map.setUserConfirm2(0);
+                FsStoreOrder fsStoreOrder = storeOrderService.selectFsStoreOrderByOrderCode(collection.getPackageOrderCode());
+                if (fsStoreOrder != null) {
+                    FsStoreOrder editOrder   = new FsStoreOrder();
+                    editOrder.setOrderId(fsStoreOrder.getOrderId());
+                    editOrder.setIsConfirm(1);
+                    storeOrderService.updateFsStoreOrder(editOrder);
+                } else {
+                    return R.error("没有找到订单");
+                }
             }
         }
         if (fsUserInformationCollectionMapper.updateFsUserInformationCollection(map) > 0) {
+            //存入医生确认统计时间数据
+            FsDoctorConfirm doctorConfirm = new FsDoctorConfirm();
+            doctorConfirm.setCollectionId(collection.getId());
+            doctorConfirm.setDoctorId(collection.getDoctorId());
+            doctorConfirm.setStartTime(DateUtils.getNowDate());
+            doctorConfirmService.insertFsDoctorConfirm(doctorConfirm);
+            //医生确认时间存入缓存 医生确认后删除
+            redisCache.setCacheObject("doctorConfirm:" + collection.getId(), doctorConfirm);
             return R.ok();
         }
         return R.error("用户确认失败");

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsUserInformationCollectionListDVO.java

@@ -15,4 +15,7 @@ public class FsUserInformationCollectionListDVO {
 
 
     private Integer userConfirm;
+
+    //用户补充说明
+    private String userAdvice;
 }

+ 1 - 0
fs-service/src/main/java/com/fs/hisStore/vo/FsUserInformationCollectionVO.java

@@ -1,5 +1,6 @@
 package com.fs.hisStore.vo;
 
+import com.fs.his.domain.FsPatient;
 import com.fs.his.vo.AnswerVO;
 import lombok.Data;
 

+ 5 - 0
fs-service/src/main/resources/mapper/his/FsPackageOrderMapper.xml

@@ -90,6 +90,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where order_id = #{orderId}
     </select>
 
+    <select id="selectByOderCode" parameterType="java.lang.String" resultMap="FsPackageOrderResult">
+        <include refid="selectFsPackageOrderVo"/>
+        where order_sn = #{orderCode}
+    </select>
+
     <insert id="insertFsPackageOrder" parameterType="FsPackageOrder" useGeneratedKeys="true" keyProperty="orderId">
         insert into fs_package_order
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 4 - 0
fs-service/src/main/resources/mapper/his/FsStoreOrderMapper.xml

@@ -92,6 +92,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="erpPhone"    column="erp_phone"    />
         <result property="orderKey"    column="order_key"    />
         <result property="isMerge"    column="is_merge"    />
+        <result property="isConfirm"    column="is_confirm"    />
     </resultMap>
 
     <sql id="selectFsStoreOrderVo">
@@ -236,6 +237,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="erpPhone != null">erp_phone,</if>
             <if test="orderKey != null">order_key,</if>
             <if test="isMerge != null">is_merge,</if>
+            <if test="isConfirm != null">is_confirm,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="storeId != null">#{storeId},</if>
@@ -323,6 +325,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="erpPhone != null">#{erpPhone},</if>
             <if test="orderKey != null">#{orderKey},</if>
             <if test="isMerge != null">#{isMerge},</if>
+            <if test="isConfirm != null">#{isConfirm},</if>
          </trim>
     </insert>
 
@@ -415,6 +418,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="erpPhone != null and erpPhone != ''">erp_phone = #{erpPhone},</if>
             <if test="orderKey != null and orderKey != ''">order_key = #{orderKey},</if>
             <if test="isMerge != null and isMerge != ''">is_merge = #{isMerge},</if>
+            <if test="isConfirm != null and isConfirm != ''">is_confirm = #{isConfirm},</if>
         </trim>
         where order_id = #{orderId}
     </update>

+ 1 - 1
fs-service/src/main/resources/mapper/hisStore/FsUserInformationCollectionMapper.xml

@@ -49,7 +49,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where user_id = #{userId}
     </select>
 
-    <select id="selectByOrderCode" parameterType="Long" resultMap="FsUserInformationCollectionResult">
+    <select id="selectByOrderCode" parameterType="String" resultMap="FsUserInformationCollectionResult">
         <include refid="selectFsUserInformationCollectionVo"/>
         where package_order_code = #{orderCode}
     </select>

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

@@ -21,7 +21,8 @@ public class UserInfoCollectionController extends AppBaseController {
     @ApiOperation("用户信息采集详情")
     @GetMapping("/getInfo")
     public R getInfo(@RequestParam("id") Long id) {
-        FsUserInfoCollectionUVO info = userInformationCollectionService.info(id);
+        Long userId = Long.parseLong(getUserId());
+        FsUserInfoCollectionUVO info = userInformationCollectionService.info(id,userId);
         return R.ok().put("data",info);
     }