Bladeren bron

Merge remote-tracking branch 'origin/master'

ct 2 dagen geleden
bovenliggende
commit
6768a0cff9

+ 22 - 0
fs-company/src/main/java/com/fs/company/controller/company/CompanyUserController.java

@@ -18,6 +18,7 @@ import com.fs.common.utils.poi.ExcelUtil;
 import com.fs.company.domain.*;
 import com.fs.company.mapper.CompanyUserDelayTimeMapper;
 import com.fs.company.param.CompanyUserAreaParam;
+import com.fs.company.param.CompanyUserBindDoctorParam;
 import com.fs.company.param.CompanyUserCodeParam;
 import com.fs.company.param.CompanyUserQwParam;
 import com.fs.company.service.*;
@@ -517,4 +518,25 @@ public class CompanyUserController extends BaseController
         String url = companyUserService.uploadQrCode(file, userId);
         return R.ok().put("url", url);
     }
+
+
+    /**
+     * 销售解除绑定医生
+     */
+    @PreAuthorize("@ss.hasPermi('qw:companyUser:unBindDoctorId')")
+    @Log(title = "销售解除绑定医生", businessType = BusinessType.UPDATE)
+    @GetMapping("/unBindDoctorId/{userId}")
+    public R bindDoctorId(@PathVariable("userId") Long userId){
+        return companyUserService.unBindDoctor(userId);
+    }
+
+    /**
+     * 销售绑定医生
+     */
+    @PreAuthorize("@ss.hasPermi('qw:companyUser:bindDoctorId')")
+    @Log(title = "销售绑定医生", businessType = BusinessType.UPDATE)
+    @PostMapping("/bindDoctorId")
+    public R unBindDoctorId(@RequestBody CompanyUser companyUser){
+        return companyUserService.bindDoctor(companyUser);
+    }
 }

+ 26 - 4
fs-company/src/main/java/com/fs/company/controller/company/FsDoctorController.java

@@ -1,8 +1,11 @@
 package com.fs.company.controller.company;
 
+import com.fs.common.annotation.Log;
 import com.fs.common.core.controller.BaseController;
 import com.fs.common.core.domain.AjaxResult;
+import com.fs.common.core.domain.R;
 import com.fs.common.core.page.TableDataInfo;
+import com.fs.common.enums.BusinessType;
 import com.fs.his.param.FsDoctorParam;
 import com.fs.his.service.IFsDoctorService;
 import com.fs.his.utils.RedisCacheUtil;
@@ -11,14 +14,15 @@ import com.fs.his.vo.FsDoctorVO;
 import com.fs.his.vo.OptionsVO;
 import com.fs.his.vo.UserVo;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.Base64;
 import java.util.List;
 
+import static com.fs.his.utils.PhoneUtil.decryptAutoPhoneMk;
+import static com.fs.his.utils.PhoneUtil.encryptPhone;
+
 /**
  * 医生管理Controller
  *
@@ -121,6 +125,24 @@ public class FsDoctorController extends BaseController
     }
 
 
+    @GetMapping("/getDocVoList")
+    public TableDataInfo getDocVoList(FsDoctorParam param) {
+        startPage();
+        List<FsDoctorVO> list = fsDoctorService.selectDocVOByNameAndPhone(param);
+        if (list == null || list.isEmpty()) {
+            param.setMobile(encryptPhone(param.getMobile()));
+            list = fsDoctorService.selectDocVOByNameAndPhone(param);
+        }
+
+        if (list != null) {
+            list.forEach( item -> {
+                if (item.getMobile() != null)
+                    item.setMobile(decryptAutoPhoneMk(item.getMobile()));
+            });
+        }
+        return getDataTable(list);
+    }
+
 
 
 }

+ 3 - 0
fs-service/src/main/java/com/fs/company/domain/CompanyUser.java

@@ -87,6 +87,9 @@ public class CompanyUser extends BaseEntity
     private String qwUserId;
     private Integer qwStatus;
 
+    /** 医生id */
+    private Long doctorId;
+
     public String getIdCard() {
         return idCard;
     }

+ 3 - 0
fs-service/src/main/java/com/fs/company/mapper/CompanyUserMapper.java

@@ -312,4 +312,7 @@ public interface CompanyUserMapper
     int insertQwIpadTotal(List<QwIpadTotalVo> qwIpadTotalVos);
 
     void uploadQrCode(@Param("userId") String userId, @Param("url") String url);
+
+    @Update("update company_user set doctor_id = null where user_id = #{userId}")
+    public int unBindDoctorId(@Param("userId")Long userId);
 }

+ 5 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyUserService.java

@@ -3,6 +3,7 @@ package com.fs.company.service;
 import com.fs.common.core.domain.R;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.param.CompanyUserAreaParam;
+import com.fs.company.param.CompanyUserBindDoctorParam;
 import com.fs.company.param.CompanyUserCodeParam;
 import com.fs.company.param.CompanyUserQwParam;
 import com.fs.company.vo.*;
@@ -228,4 +229,8 @@ public interface ICompanyUserService {
     int insertQwIpadTotal(List<QwIpadTotalVo> qwIpadTotalVos);
 
     String uploadQrCode(MultipartFile file,String userId) throws IOException;
+
+    R bindDoctor(CompanyUser param);
+
+    R unBindDoctor(Long userId);
 }

+ 24 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyUserServiceImpl.java

@@ -16,6 +16,7 @@ import com.fs.common.utils.*;
 import com.fs.company.domain.*;
 import com.fs.company.mapper.*;
 import com.fs.company.param.CompanyUserAreaParam;
+import com.fs.company.param.CompanyUserBindDoctorParam;
 import com.fs.company.param.CompanyUserCodeParam;
 import com.fs.company.param.CompanyUserQwParam;
 import com.fs.company.service.ICompanyService;
@@ -787,4 +788,27 @@ public class CompanyUserServiceImpl implements ICompanyUserService
         companyUserMapper.uploadQrCode(userId,url);
         return url;
     }
+
+    @Override
+    public R bindDoctor(CompanyUser companyUser) {
+        CompanyUser map = new CompanyUser();
+        map.setUserId(companyUser.getUserId());
+        map.setDoctorId(companyUser.getDoctorId());
+        int i = companyUserMapper.updateCompanyUser(map);
+        if (i > 0) {
+            return R.ok();
+        } else {
+            return R.error();
+        }
+    }
+
+    @Override
+    public R unBindDoctor(Long userId) {
+        int i = companyUserMapper.unBindDoctorId(userId);
+        if (i > 0) {
+            return R.ok();
+        } else {
+            return R.error();
+        }
+    }
 }

+ 7 - 0
fs-service/src/main/java/com/fs/his/mapper/FsDoctorMapper.java

@@ -202,4 +202,11 @@ public interface FsDoctorMapper
     List<UserVo> selectUserDocVoListByCompany(Long companyId);
 
     String selectDoctorNameByIds(List<Long> doctorIds);
+    @Select({"<script> " +
+            "select doctor_id,doctor_name, mobile FROM fs_doctor where doctor_type = 1 "+
+            "  <if test=\"param.doctorName != null  and param.doctorName != ''\"> and doctor_name like concat( #{param.doctorName}, '%')</if>\n" +
+            "            <if test=\"param.mobile != null  and param.mobile != ''\"> and mobile =#{param.mobile}</if>\n" +
+            "order by doctor_id desc"+
+            "</script>"})
+    List<FsDoctorVO> selectDocVOByNameAndPhone(@Param("param") FsDoctorParam param);
 }

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

@@ -107,4 +107,6 @@ public interface IFsDoctorService
     List<UserVo> selectUserDocVoListByCompany(Long companyId);
 
     String selectDoctorByIds(String doctorId);
+
+    List<FsDoctorVO> selectDocVOByNameAndPhone(FsDoctorParam param);
 }

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

@@ -462,6 +462,11 @@ public class FsDoctorServiceImpl implements IFsDoctorService
         return fsDoctorMapper.selectDoctorNameByIds(doctorIds);
     }
 
+    @Override
+    public List<FsDoctorVO> selectDocVOByNameAndPhone(FsDoctorParam param) {
+        return fsDoctorMapper.selectDocVOByNameAndPhone(param);
+    }
+
     public static BufferedImage convertCircular(BufferedImage bi1) throws IOException {
         // 透明底的图片
         BufferedImage bi2 = new BufferedImage(bi1.getWidth(), bi1.getHeight(), BufferedImage.TYPE_4BYTE_ABGR);

+ 1 - 1
fs-service/src/main/java/com/fs/qw/mapper/QwUserMapper.java

@@ -142,7 +142,7 @@ public interface QwUserMapper extends BaseMapper<QwUser>
      *  查询企微用户绑定了的列表
      */
     @Select({"<script> " +
-            "select qu.*, cu.nick_name, cu.user_name, qd.dept_name as departmentName,fr.role_name AS fastGptRoleName from qw_user qu " +
+            "select qu.*, cu.nick_name, cu.user_name, qd.dept_name as departmentName,fr.role_name AS fastGptRoleName, cu.doctor_id from qw_user qu " +
             "LEFT JOIN company_user cu ON cu.user_id=qu.company_user_id " +
             "RIGHT JOIN qw_dept qd on qu.department=qd.dept_id and qd.corp_id=qu.corp_id " +
             "left join fastgpt_role fr on fr.role_id=qu.fastGpt_role_id " +

+ 1 - 0
fs-service/src/main/java/com/fs/qw/vo/QwUserVO.java

@@ -93,4 +93,5 @@ public class QwUserVO {
      */
     private String isAuto;
 
+    private Long doctorId;
 }

+ 2 - 0
fs-service/src/main/resources/mapper/company/CompanyUserMapper.xml

@@ -42,6 +42,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="isAudit"    column="is_audit"    />
         <result property="isNeedRegisterMember"    column="is_need_register_member"    />
         <result property="isAllowedAllRegister"    column="is_allowed_all_register"    />
+        <result property="doctorId"    column="doctor_id"    />
         <association property="dept"    column="dept_id" javaType="CompanyDept" resultMap="deptResult" />
         <collection  property="roles"   javaType="java.util.List"        resultMap="RoleResult" />
     </resultMap>
@@ -217,6 +218,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="addressId != null">address_id = #{addressId},</if>
             <if test="domain != null">domain = #{domain},</if>
             <if test="isAudit != null">`is_audit` = #{isAudit},</if>
+            <if test="doctorId != null">`doctor_id` = #{doctorId},</if>
         </trim>
         where user_id = #{userId}
     </update>

+ 15 - 14
fs-service/src/main/resources/mapper/his/FsUserMapper.xml

@@ -281,10 +281,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <if test="tabValue != null and tabValue !='' ">
             <choose>
                 <when test = "tabValue == 1">
-                    AND DAY(fs_user_company_user.create_time) = DAY(NOW())
+                    AND fs_user_company_user.create_time >= CURDATE() AND fs_user_company_user.create_time &lt; CURDATE() + INTERVAL 1 DAY
                 </when>
                 <when test = "tabValue == 2">
-                    AND DAY(fs_user_course_count.complete_watch_date) = DAY(NOW())
+                    AND fs_user_course_count.complete_watch_date >= CURDATE() AND fs_user_course_count.complete_watch_date &lt; CURDATE() + INTERVAL 1 DAY
                 </when>
                 <when test = "tabValue == 3">
                     AND (fs_user_course_count.status = 3 or fs_user_course_count.status is null)
@@ -315,19 +315,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             </choose>
         </if>
 
-        group by fs_user.user_id, fs_user_company_user.project_id
+        group by fs_user.user_id, fs_user_company_user.project_id, fs_user_company_user.create_time
 
-        <if test="continueMissCourseSort != null and continueMissCourseSort !='' ">
-            order by
-            <choose>
-                <when test = "continueMissCourseSort == 0">
-                    fs_user.create_time desc
-                </when>
-                <when test = "continueMissCourseSort == 1">
-                    fs_user.nick_name asc
-                </when>
-            </choose>
-        </if>
+        order by
+        <choose>
+            <when test = "continueMissCourseSort != null and continueMissCourseSort == 0">
+                fs_user_company_user.create_time desc,fs_user.user_id desc
+            </when>
+            <when test = "continueMissCourseSort != null and continueMissCourseSort == 1">
+                fs_user.nick_name asc,fs_user.user_id desc
+            </when>
+            <otherwise>
+                fs_user.user_id desc, fs_user_company_user.project_id
+            </otherwise>
+        </choose>
     </select>
 
     <select id="selectFsUserPageListNew" resultType="com.fs.store.vo.h5.FsUserPageListVO">