Просмотр исходного кода

Merge remote-tracking branch 'origin/企微聊天' into 企微聊天

yh 2 недель назад
Родитель
Сommit
a0800a22b8

+ 79 - 0
fs-company/src/main/java/com/fs/company/controller/qw/QwExternalContactController.java

@@ -923,4 +923,83 @@ public class QwExternalContactController extends BaseController
         return getDataTable(list);
     }
 
+    /**
+     * 重粉看课记录查询
+     */
+    @PostMapping("/exportRepeatExternalContact")
+    @PreAuthorize("@ss.hasPermi('qw:externalContact:exportRepeat')")
+    @Log(title = "导出重粉记录", businessType = BusinessType.EXPORT)
+    public AjaxResult exportRepeatExternalContact(@RequestBody QwExternalContactRepeatParam param){
+        List<Long> userIds = param.getUserIds();
+        if (userIds==null || userIds.isEmpty()){
+            List<QwExternalContactVO> list = null;
+            String type = param.getExportType();
+            switch (type){
+                case "index":
+                    list = getIndexList(param);
+                    break;
+                case "dept":
+                    list = getDeptList(param);
+                    break;
+                case "my":
+                    list = getMyList(param);
+                    break;
+                default:
+                    break;
+
+            }
+            if (list!=null && !list.isEmpty()){
+                userIds = list.stream().filter(item -> (item.getFsUserId() != null && item.getFsUserId() > 0)).map(QwExternalContactVO::getFsUserId).distinct().collect(Collectors.toList());
+            }
+        } else {
+            userIds = userIds.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());
+        }
+        List<UserWatchLogListVo> vos  = fsUserCompanyBindService.getWatchLogListByUserIds(userIds);
+        ExcelUtil<UserWatchLogListVo> util = new ExcelUtil<>(UserWatchLogListVo.class);
+        return util.exportExcel(vos, "企业微信重粉客户数据");
+    }
+
+    private List<QwExternalContactVO> getDeptList(QwExternalContactRepeatParam param) {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+        List<Long> combinedList = new ArrayList<>();
+        //本部门
+        Long deptId = loginUser.getUser().getDeptId();
+        if (deptId!=null){
+            combinedList.add(deptId);
+        }
+        //本部门的下级部门
+        List<Long> deptList = companyDeptService.selectCompanyDeptByParentId(deptId);
+        if (!deptList.isEmpty()){
+            combinedList.addAll(deptList);
+        }
+
+        param.setCuDeptIdList(combinedList);
+        param.setUserType(loginUser.getUser().getUserType());
+        param.setCompanyId(loginUser.getCompany().getCompanyId());
+
+        return qwExternalContactService.selectQwExternalContactListVO(param);
+    }
+
+    private List<QwExternalContactVO> getMyList(QwExternalContactRepeatParam param) {
+        if(param.getQwUserId()==null){
+            return null;
+        }
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+        param.setCompanyId(loginUser.getCompany().getCompanyId());
+        return qwExternalContactService.selectQwExternalContactListVO(param);
+    }
+
+    private List<QwExternalContactVO> getIndexList(QwExternalContactRepeatParam param) {
+        LoginUser loginUser = tokenService.getLoginUser(ServletUtils.getRequest());
+
+        param.setCompanyId(loginUser.getCompany().getCompanyId());
+        if(StringUtils.isNotEmpty(param.getStatuses())){
+            String[] split = param.getStatuses().split(",");
+            param.setStatusCondition(split);
+        }
+        return qwExternalContactService.selectQwExternalContactListVO(param);
+
+    }
+
 }

+ 2 - 0
fs-service/src/main/java/com/fs/course/mapper/FsUserCompanyBindMapper.java

@@ -64,4 +64,6 @@ public interface FsUserCompanyBindMapper extends BaseMapper<FsUserCompanyBind>{
     int deleteFsUserCompanyBindByIds(Long[] ids);
 
     List<UserWatchLogListVo> getWatchLogList(UserWatchLogParam param);
+
+    List<UserWatchLogListVo> getWatchLogListByUserIds(@Param("fsUserIds") List<Long> fsUserIds);
 }

+ 7 - 0
fs-service/src/main/java/com/fs/course/service/IFsUserCompanyBindService.java

@@ -81,4 +81,11 @@ public interface IFsUserCompanyBindService extends IService<FsUserCompanyBind>{
     void finish(Long fsUserId, Long qwUserId, Long companyUserId, FsCourseWatchLog watchLog);
 
     List<UserWatchLogListVo> getWatchLogList(UserWatchLogParam param);
+
+    /**
+     * 根据userId查询重粉数据
+     * @param userIds
+     * @return
+     */
+    List<UserWatchLogListVo> getWatchLogListByUserIds(List<Long> userIds);
 }

+ 9 - 0
fs-service/src/main/java/com/fs/course/service/impl/FsUserCompanyBindServiceImpl.java

@@ -244,4 +244,13 @@ public class FsUserCompanyBindServiceImpl extends ServiceImpl<FsUserCompanyBindM
         }
         return baseMapper.getWatchLogList(param);
     }
+
+    @Override
+    public List<UserWatchLogListVo> getWatchLogListByUserIds(List<Long> userIds) {
+        if (userIds!=null && !userIds.isEmpty()){
+            return baseMapper.getWatchLogListByUserIds(userIds);
+        } else {
+            return Collections.emptyList();
+        }
+    }
 }

+ 8 - 1
fs-service/src/main/java/com/fs/course/vo/UserWatchLogListVo.java

@@ -1,9 +1,11 @@
 package com.fs.course.vo;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fs.common.annotation.Excel;
 import lombok.Data;
 
 import java.time.LocalDateTime;
+import java.util.Date;
 
 /**
  * 课程对象 fs_user_course
@@ -22,14 +24,19 @@ public class UserWatchLogListVo {
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private LocalDateTime updateTime;
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
-    private LocalDateTime createTime;
+    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss",sort = 4)
+    private Date createTime;
     private String fsUserName;
+    @Excel(name = "所属项目",sort = 3)
     private String projectName;
+    @Excel(name = "所属课程",sort = 3)
     private String courseName;
     private String videoName;
     //所属企微
+    @Excel(name = "所属企微",sort = 2)
     private String qwUserName;
     //所属企微主体
+    @Excel(name = "所属企微主体",sort = 1)
     private String corpName;
 
 }

+ 8 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsInquiryOrderServiceImpl.java

@@ -1753,7 +1753,15 @@ public class FsInquiryOrderServiceImpl implements IFsInquiryOrderService
         FsPatient patient=JSONUtil.toBean(packageOrder.getPatientJson(),FsPatient.class);
 
         FsInquiryOrderPatientDTO dto=new FsInquiryOrderPatientDTO();
+        if (patient.getPatientId() == null){
+            Long userId = packageOrder.getUserId();
+            FsPatientVO fsPatientVO = fsPatientMapper.selectFsPatientByUserId(userId);
+            BeanUtils.copyProperties(fsPatientVO,patient);
+            dto.setBirthday(DateUtils.parseDateToStr("yyyy-MM-dd",fsPatientVO.getBirthday()));
+        }
         BeanUtils.copyProperties(patient,dto);
+
+
         dto.setAge(String.valueOf( DateUtil.ageOfNow(patient.getBirthday())));
         // 使用 SimpleDateFormat 格式化日期对象
         dto.setBirthday(new SimpleDateFormat("yyyy-MM-dd").format(patient.getBirthday()));

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

@@ -504,7 +504,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
         FsPatient patient=null;
         FsDoctor doctor=null;
         FsPackage fsPackage=fsPackageMapper.selectFsPackageByPackageId(param.getPackageId());
-        if(fsPackage.getProductType()!= null &&(fsPackage.getProductType()==1 || fsPackage.getProductType()==2)){
+        if(fsPackage.getProductType()!= null &&((fsPackage.getProductType()==1 || fsPackage.getProductType()==2)|| CloudHostUtils.hasCloudHostName("金牛明医"))){
             if(param.getPatientId()!=null){
                 patient=fsPatientMapper.selectFsPatientByPatientId(param.getPatientId());
                 if (patient==null){
@@ -514,7 +514,7 @@ public class FsPackageOrderServiceImpl implements IFsPackageOrderService
                 return R.error("请提交患者信息");
             }
             logger.info("是否是中药或者西药{},{}",fsPackage.getProductType(),fsPackage.getProductType() == 1 || fsPackage.getProductType() == 2);
-            if (fsPackage.getProductType() == 1 || fsPackage.getProductType() == 2) {
+            if (fsPackage.getProductType() == 1 || fsPackage.getProductType() == 2 || CloudHostUtils.hasCloudHostName("金牛明医")) {
                 if (StringUtils.isEmpty(patient.getIdCard())) {
                     return R.error("请完善患者身份证信息");
                 }

+ 13 - 0
fs-service/src/main/java/com/fs/qw/param/QwExternalContactRepeatParam.java

@@ -0,0 +1,13 @@
+package com.fs.qw.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class QwExternalContactRepeatParam extends QwExternalContactParam {
+    //所选记录用户id
+    private List<Long> userIds;
+    // 导出类型
+    private String exportType;
+}

+ 21 - 0
fs-service/src/main/resources/mapper/course/FsUserCompanyBindMapper.xml

@@ -161,4 +161,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </where>
         order by create_time desc
     </select>
+    <select id="getWatchLogListByUserIds" resultType="com.fs.course.vo.UserWatchLogListVo">
+        select
+        a.*,
+        b.nick_name fsUserName,
+        c.dict_label projectName,
+        e.course_name,
+        g.qw_user_name,
+        qc.corp_name
+        from
+        fs_user_company_bind a
+        left join fs_user b on a.fs_user_id = b.user_id
+        left join sys_dict_data c on c.dict_type = 'sys_course_project' and dict_value = a.project_id
+        left join fs_user_course e on a.course_id = e.course_id
+        left join qw_user g on g.id = a.qw_user_id
+        left join qw_company qc on qc.id = a.qw_company_id
+        where  a.fs_user_id in
+           <foreach collection="fsUserIds" separator="," item="fsUserId" open="(" close=")">
+               #{fsUserId}
+           </foreach>
+        order by create_time desc
+    </select>
 </mapper>