浏览代码

update:信息采集一对多

ct 3 天之前
父节点
当前提交
cfedba016a

+ 1 - 0
fs-company/src/main/java/com/fs/company/controller/store/FsUserInformationCollectionController.java

@@ -93,6 +93,7 @@ public class FsUserInformationCollectionController extends BaseController
             return AjaxResult.error("用户未绑定该销售");
         }
         fsUserInformationCollection.setCompanyUserId(companyUserId);
+        fsUserInformationCollection.setIsTemplate(-1L);
         return AjaxResult.success(fsUserInformationCollectionService.insertFsUserInformationCollection(fsUserInformationCollection));
     }
 

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

@@ -115,4 +115,7 @@ public class FsUserInformationCollection extends BaseEntity{
     //药品订单id
     private Long storeOrderId;
 
+    private Long isTemplate; //是否是创建模板 0:否 1:是
+    private String userCommitment; //用户承诺
+
 }

+ 4 - 2
fs-service/src/main/java/com/fs/his/mapper/FsUserInformationCollectionMapper.java

@@ -5,7 +5,9 @@ import com.fs.his.domain.FsUserInformationCollection;
 import com.fs.his.dto.FsUserInformationCollectionDTO;
 import com.fs.his.param.FsUserInformationCollectionListDParam;
 import com.fs.his.param.UserInformationDoctorType2Param;
+import com.fs.his.vo.FsUserInformationCollectionAllVO;
 import com.fs.his.vo.FsUserInformationCollectionListDVO;
+import com.fs.his.vo.FsUserInformationCollectionVO;
 import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 
@@ -26,7 +28,8 @@ public interface FsUserInformationCollectionMapper extends BaseMapper<FsUserInfo
      */
     FsUserInformationCollection selectFsUserInformationCollectionById(Long id);
 
-    FsUserInformationCollection selectFsUserInformationCollectionByUserId(Long userId);
+    FsUserInformationCollectionAllVO selectFsUserInformationCollectionAllById(@Param("id") Long id);
+
 
     /**
      * 查询用户信息采集列表
@@ -70,7 +73,6 @@ public interface FsUserInformationCollectionMapper extends BaseMapper<FsUserInfo
      */
     int deleteFsUserInformationCollectionByIds(Long[] ids);
 
-    FsUserInformationCollection selectByUserId(Long userId);
     FsUserInformationCollection selectByOrderCode(String orderCode);
 
     @Select({"<script> " +

+ 4 - 0
fs-service/src/main/java/com/fs/his/param/FsUserInformationCollectionParam.java

@@ -53,4 +53,8 @@ public class FsUserInformationCollectionParam {
     private Long doctorType2Id;
 
     private String packageOrderCode;
+
+    private Long isTemplate; //是否是创建模板 0:否 -1:是 如果不是模板 则存模板id
+
+    private String userCommitment; //用户承诺
 }

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

@@ -107,7 +107,6 @@ public interface IFsUserInformationCollectionService extends IService<FsUserInfo
     //自动退款
     void autoRefund(FsUserInformationCollection collection);
 
-    FsUserInformationCollectionVO getCollectionByUserId(Long userId);
 
     FsUserInformationCollectionDTO selectFsUserInformationCollectionDTOById(Long id);
 

+ 13 - 15
fs-service/src/main/java/com/fs/his/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -557,6 +557,14 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             FsStoreOrder fsStoreOrder = storeOrderService.selectFsStoreOrderByOrderId(fsPackageOrder.getStoreOrderId());
             fsStoreOrder.setDoctorType2Confirm(1);
             storeOrderService.updateFsStoreOrder(fsStoreOrder);
+            if (collection.getDoctorType2Confirm() == -1){
+                //拒绝 取消订单
+                FsStoreOrderSalesParam afterSalesParam = new FsStoreOrderSalesParam();
+                afterSalesParam.setOrderId(fsStoreOrder.getOrderId());
+                afterSalesParam.setReasons("药师审核拒绝改信息采集订单");
+                afterSalesParam.setOperator(fsDoctor.getDoctorName());
+                storeOrderService.afterSales(afterSalesParam);
+            }
             return R.ok();
         }
         return R.error("药师确认失败");
@@ -909,19 +917,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
             throw new CustomException("退款请求失败" + refund.getResp_desc());
         }
     }
-    @Override
-    public FsUserInformationCollectionVO getCollectionByUserId(Long userId) {
-        FsUserInformationCollectionVO vo = new FsUserInformationCollectionVO();
-        FsUserInformationCollection collection = fsUserInformationCollectionMapper.selectFsUserInformationCollectionByUserId(userId);
-        if (collection != null) {
-            vo.setAnswers(JSON.parseArray(collection.getJsonInfo(), AnswerVO.class));
-            //医生建议
-            if (collection.getDoctorAdvice() != null){
-                vo.setDoctorAdvice(collection.getDoctorAdvice());
-            }
-        }
-        return vo;
-    }
+
 
     @Override
     public FsUserInformationCollectionDTO selectFsUserInformationCollectionDTOById(Long id) {
@@ -935,7 +931,7 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
 
     @Override
     public FsUserInformationCollectionAndPatientVO selectFsUserInformationCollectionVoById(Long id) {
-        FsUserInformationCollection info = baseMapper.selectFsUserInformationCollectionById(id);
+        FsUserInformationCollectionAllVO info = baseMapper.selectFsUserInformationCollectionAllById(id);
         FsUserInformationCollectionAndPatientVO vo = new FsUserInformationCollectionAndPatientVO();
         BeanUtils.copyProperties(info, vo);
         Long patientId = info.getPatientId();
@@ -1030,7 +1026,9 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         fsUserInformationCollection.setRemark(param.getRemark());
         fsUserInformationCollection.setPatientId(param.getPatientId());
         fsUserInformationCollection.setDoctorSign(param.getDoctorSign());
-        //获取医生信息
+        fsUserInformationCollection.setIsTemplate(param.getIsTemplate());
+        fsUserInformationCollection.setUserCommitment(param.getUserCommitment());
+        //获取销售信息
         CompanyUser companyUser = companyUserMapper.selectCompanyUserById(param.getCompanyUserId());
         if (companyUser == null) {
             throw new CustomException("销售不存在");

+ 19 - 0
fs-service/src/main/java/com/fs/his/vo/FsUserInformationCollectionAllVO.java

@@ -0,0 +1,19 @@
+package com.fs.his.vo;
+
+import com.fs.his.domain.FsUserInformationCollection;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class FsUserInformationCollectionAllVO extends FsUserInformationCollection {
+
+    private String doctorName;
+    private String doctorType2Name;
+    private String companyUserName;
+    private String packageName;
+    private String patientName;
+    private String patientIdCard;
+
+}

+ 1 - 1
fs-service/src/main/java/com/fs/his/vo/FsUserInformationCollectionAndPatientVO.java

@@ -11,7 +11,7 @@ import java.util.Date;
 import java.util.List;
 
 @Data
-public class FsUserInformationCollectionAndPatientVO extends FsUserInformationCollection {
+public class FsUserInformationCollectionAndPatientVO extends FsUserInformationCollectionAllVO {
     private FsPatient patientInfo; //病人信息
     private Integer isPay;
     private Long storeOrderId;

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

@@ -38,6 +38,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="doctorType2Confirm"    column="doctor_type2_confirm"    />
         <result property="doctorType2Sign"    column="doctor_type2_sign"    />
         <result property="storeOrderId"    column="store_order_id"    />
+        <result property="isTemplate"    column="is_template"    />
+        <result property="userCommitment"    column="user_commitment"    />
     </resultMap>
 
     <sql id="selectFsUserInformationCollectionVo">
@@ -45,12 +47,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
              , 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
-             ,allergy,remark,patient_id,doctor_type2_id,doctor_type2_confirm,doctor_type2_sign,store_order_id  from fs_user_information_collection
+             ,allergy,remark,patient_id,doctor_type2_id,doctor_type2_confirm,doctor_type2_sign,store_order_id,is_template,
+            user_commitment from fs_user_information_collection
     </sql>
 
     <select id="selectFsUserInformationCollectionList" parameterType="FsUserInformationCollection" resultMap="FsUserInformationCollectionResult">
         <include refid="selectFsUserInformationCollectionVo"/>
         <where>
+            <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
             <if test="questionId != null "> and question_id = #{questionId}</if>
             <if test="userId != null "> and user_id = #{userId}</if>
             <if test="jsonInfo != null  and jsonInfo != ''"> and json_info = #{jsonInfo}</if>
@@ -59,6 +63,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="packageOrderId != null "> and package_order_id = #{packageOrderId}</if>
             <if test="storeOrderId != null "> and store_order_id = #{storeOrderId}</if>
             <if test="packageOrderCode != null and packageOrderCode !=''"> and package_order_code = #{packageOrderCode}</if>
+            <if test="isTemplate != null "> and is_template = #{isTemplate}</if>
+            <if test="isTemplate == null "> and is_template != -1</if>
+            <if test="userCommitment != null and userCommitment != ''"> and user_commitment like concat('%', #{userCommitment},'%')</if>
         </where>
         order by id desc
     </select>
@@ -68,15 +75,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </select>
 
-    <select id="selectFsUserInformationCollectionByUserId" parameterType="Long" resultMap="FsUserInformationCollectionResult">
-        <include refid="selectFsUserInformationCollectionVo"/>
-        where user_id = #{userId}
-    </select>
-
-    <select id="selectByUserId" parameterType="Long" resultMap="FsUserInformationCollectionResult">
-        <include refid="selectFsUserInformationCollectionVo"/>
-        where user_id = #{userId}
-    </select>
 
     <select id="selectByOrderCode" parameterType="String" resultMap="FsUserInformationCollectionResult">
         <include refid="selectFsUserInformationCollectionVo"/>
@@ -102,17 +100,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 <if test="maps.doctorType2Confirm != null"> and fui.doctor_type2_confirm = #{maps.doctorType2Confirm}</if>
                 <if test="maps.packageOrderCode != null  and maps.packageOrderCode != ''"> and fui.package_order_code = #{maps.packageOrderCode}</if>
                 <if test="maps.patientName != null  and maps.patientName != ''"> and fp.patient_name like concat(#{maps.patientName},"%")</if>
+                <if test="maps.isTemplate != null "> and fui.is_template = #{maps.isTemplate}</if>
+                <if test="maps.isTemplate == null "> and is_template != -1</if>
         order by id desc
     </select>
     <select id="selectFsUserInformationCollectionByDoctorType1"
             resultType="com.fs.his.domain.FsUserInformationCollection">
         select fui.*,fp.patient_name as patientName from fs_user_information_collection fui left join fs_patient fp on fui.patient_id = fp.patient_id
-        <where>
-            <if test="maps.doctorId != null and maps.doctorId != ''"> and fui.doctor_id = #{maps.doctorId}</if>
+        where  fui.user_confirm = 1
+        <if test="maps.doctorId != null and maps.doctorId != ''"> and fui.doctor_id = #{maps.doctorId}</if>
             <if test="maps.doctorConfirm != null"> and fui.doctor_confirm = #{maps.doctorConfirm}</if>
             <if test="maps.packageOrderCode != null  and maps.packageOrderCode != ''"> and fui.package_order_code = #{maps.packageOrderCode}</if>
             <if test="maps.patientName != null  and maps.patientName != ''"> and fp.patient_name like concat(#{maps.patientName},"%")</if>
-        </where>
+            <if test="maps.isTemplate != null "> and fui.is_template = #{maps.isTemplate}</if>
+            <if test="maps.isTemplate == null "> and is_template != -1</if>
         order by id desc
     </select>
     <select id="selectFsUserInformationCollectionByOrderCode"
@@ -160,6 +161,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         WHERE fso.status > 1
         AND fuic.doctor_type2_confirm = 0
         AND fso.pay_time &lt;= NOW() - INTERVAL 1 HOUR
+        AND fuic.is_template != -1
         GROUP BY fuic.id
     </select>
     <select id="selectListByUserConfirmStatus" resultType="com.fs.his.domain.FsUserInformationCollection">
@@ -198,9 +200,27 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             fuic.doctor_type2_sign,
             fuic.store_order_id
         FROM fs_user_information_collection fuic
-        WHERE fuic.user_confirm = 1 AND fuic.doctor_confirm = 0 AND fuic.user_confirm_time &lt;= NOW() - INTERVAL 1 HOUR
+        WHERE fuic.user_confirm = 1 AND fuic.doctor_confirm = 0 AND fuic.user_confirm_time &lt;= NOW() - INTERVAL 1 HOUR AND fuic.is_template != -1
         GROUP BY fuic.id
     </select>
+    <select id="selectFsUserInformationCollectionAllById"
+            resultType="com.fs.his.vo.FsUserInformationCollectionAllVO">
+        select uic.id, uic.question_id, uic.user_id, uic.json_info, uic.user_confirm,uic.user_confirm_time
+             , uic.doctor_confirm, uic.create_time, uic.update_time,uic.doctor_id,uic.company_user_id
+             ,uic.package_id,uic.pay_type,uic.amount,uic.is_package,uic.user_confirm2,uic.package_order_code,uic.package_order_id
+             ,uic.status,uic.user_advice,uic.doctor_advice,uic.doctor_sign,uic.doctor_confirm_time,uic.sex,uic.user_name,uic.user_phone_four
+             ,uic.allergy,uic.remark,uic.patient_id,uic.doctor_type2_id,uic.doctor_type2_confirm,uic.doctor_type2_sign,
+              uic.store_order_id,uic.is_template,uic.user_commitment,
+              d1.doctor_name AS doctor_name ,d2.doctor_name AS doctor_type2_name,
+              cu.nick_name AS company_user_name,fp.package_name as package_name,fpa.patient_name AS patient_name,fpa.id_card AS patient_id_card
+        from fs_user_information_collection uic
+                 LEFT JOIN fs_doctor d1 ON uic.doctor_id = d1.doctor_id
+                 LEFT JOIN fs_doctor d2 ON uic.doctor_type2_id = d2.doctor_id
+                 LEFT JOIN company_user cu ON uic.company_user_id = cu.user_id
+                 LEFT JOIN fs_package fp ON uic.package_id = fp.package_id
+                 LEFT JOIN fs_patient fpa ON uic.patient_id = fpa.patient_id
+        where id = #{id}
+    </select>
 
     <insert id="insertFsUserInformationCollection" parameterType="FsUserInformationCollection" useGeneratedKeys="true" keyProperty="id">
         insert into fs_user_information_collection
@@ -237,6 +257,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="doctorType2Confirm != null">doctor_type2_confirm,</if>
             <if test="doctorType2Sign != null">doctor_type2_sign,</if>
             <if test="storeOrderId != null">store_order_id,</if>
+            <if test="isTemplate != null">is_template,</if>
+            <if test="userCommitment != null">user_commitment,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="questionId != null">#{questionId},</if>
@@ -271,6 +293,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="doctorType2Confirm != null">#{doctorType2Confirm},</if>
             <if test="doctorType2Sign != null">#{doctorType2Sign},</if>
             <if test="storeOrderId != null">#{storeOrderId},</if>
+            <if test="isTemplate != null">#{isTemplate},</if>
+            <if test="userCommitment != null">#{userCommitment},</if>
          </trim>
     </insert>
 
@@ -309,6 +333,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="doctorType2Confirm != null">doctor_type2_confirm = #{doctorType2Confirm},</if>
             <if test="doctorType2Sign != null">doctor_type2_sign = #{doctorType2Sign},</if>
             <if test="storeOrderId != null">store_order_id = #{storeOrderId},</if>
+            <if test="isTemplate != null">is_template = #{isTemplate},</if>
+            <if test="userCommitment != null and userCommitment != ''">user_commitment = #{userCommitment},</if>
         </trim>
         where id = #{id}
     </update>

+ 1 - 0
fs-user-app/src/main/java/com/fs/app/controller/CompanyUserController.java

@@ -450,6 +450,7 @@ public class CompanyUserController extends  AppBaseController {
 //        }
 
         fsUserInformationCollection.setCompanyUserId(companyUserId);
+        fsUserInformationCollection.setIsTemplate(-1L);
         Long id = fsUserInformationCollectionService.insertFsUserInformationCollection(fsUserInformationCollection);
         return id == null?R.error("新增失败"):R.ok().put("data",id);
     }

+ 14 - 22
fs-user-app/src/main/java/com/fs/app/controller/FsUserInformationCollectionController.java

@@ -58,18 +58,18 @@ public class FsUserInformationCollectionController extends AppBaseController
         String userId = getUserId();
 
         long nowUserId = Long.parseLong(userId);
-        if (vo.getUserId()!=null){
-            if (vo.getUserId() != nowUserId) {
-                //先查询之前的订单
-                FsUserInformationCollection param = new FsUserInformationCollection();
-                param.setUserId(nowUserId);
-                param.setPackageId(vo.getPackageId());
-                param.setDoctorType2Confirm(0);
-                List<FsUserInformationCollection> list = fsUserInformationCollectionService.selectFsUserInformationCollectionList(param);
-                param.setUserConfirm(0);
-                if (!list.isEmpty()){
-                    return R.error(300,"有信息采集订单暂未完成").put("data",list.get(0));
-                }
+        Long isTemplate = vo.getIsTemplate();
+        if (isTemplate == -1){
+            //模板
+            //查询该用户是否有这个模板生成的信息采集
+            //先查询之前的订单
+            FsUserInformationCollection queryParam = new FsUserInformationCollection();
+            queryParam.setUserId(nowUserId);
+            queryParam.setIsTemplate(vo.getId());
+            List<FsUserInformationCollection> list = fsUserInformationCollectionService.selectFsUserInformationCollectionList(queryParam);
+            if (!list.isEmpty()){
+                return R.ok().put("data", list.get(0));
+            } else {
                 //一对多 创建新的用户采集
                 FsUserInformationCollectionParam info = new FsUserInformationCollectionParam();
                 FsUser fsUser = fsUserService.selectFsUserById(nowUserId);
@@ -87,19 +87,14 @@ public class FsUserInformationCollectionController extends AppBaseController
                 info.setPackageOrderCode(null);
                 info.setSex(fsUser.getSex());
                 info.setUserName(nickName);
-                info.setAllergy(null);
                 info.setPatientId(null);
-                info.setRemark(null);
                 List<AnswerVO> answerVOS = JSON.parseArray(vo.getJsonInfo(), AnswerVO.class);
-                for (AnswerVO answerVO : answerVOS) {
-                    answerVO.setValue(new ArrayList<>());
-                }
                 info.setAnswers(answerVOS);
+                info.setIsTemplate(vo.getId());
+                info.setUserCommitment(null);
                 Long newId = fsUserInformationCollectionService.insertFsUserInformationCollection(info);
                 vo = fsUserInformationCollectionService.selectFsUserInformationCollectionVoById(newId);
-                // return R.error("未查询您的采集信息!");
             }
-
         }
         if (vo.getDoctorConfirm() == 0){
             vo.setPackageId(null);
@@ -129,9 +124,6 @@ public class FsUserInformationCollectionController extends AppBaseController
             if (info.getUserId() != nowUserId){
                 return R.error("您没有修改信息的权限");
             }
-            if (!info.getUserId().equals(fsUserInformationCollection.getUserId())){
-                return R.error("用户id不能修改");
-            }
         } else {
             FsUser fsUser = fsUserService.selectFsUserById(nowUserId);
             String nickname = fsUser.getNickname();