浏览代码

Merge remote-tracking branch 'origin/master_feat_ysy_20250929' into master_feat_ysy_20250929

xyx 1 周之前
父节点
当前提交
388164ef1a

+ 0 - 4
fs-doctor-app/src/main/java/com/fs/app/controller/FsPrescribeController.java

@@ -25,7 +25,6 @@ import com.fs.his.service.IFsPrescribeService;
 import com.fs.his.vo.FsPrescribeListVO;
 import com.fs.his.vo.FsPrescribeRecordRejectVo;
 import com.fs.his.vo.FsPrescribeVO;
-import com.fs.hisStore.service.IFsUserInformationCollectionService;
 import com.github.pagehelper.PageInfo;
 import io.jsonwebtoken.Claims;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -55,9 +54,6 @@ public class FsPrescribeController extends BaseController
     @Autowired
     private FsPatientMapper fsPatientMapper;
 
-    @Autowired
-    private IFsUserInformationCollectionService fsUserInformationCollectionService;
-
     @Autowired
     private IFsPrescribeRecordService prescribeRecordService;
 

+ 10 - 2
fs-service/src/main/java/com/fs/course/service/impl/FsUserCourseVideoServiceImpl.java

@@ -540,8 +540,16 @@ public class FsUserCourseVideoServiceImpl implements IFsUserCourseVideoService
 //            }
 //        }
         //一个都找不到
-        QwExternalContact UnionEXt = qwExternalContactMapper.selectQwExternalByUnionID(user.getUnionId());
-        if (UnionEXt!=null){
+        List<QwExternalContact> qwExternalContacts = qwExternalContactMapper.selectQwExternalByUnionID(user.getUnionId());
+
+        if (qwExternalContacts!=null&&qwExternalContacts.size()>0){
+            for (QwExternalContact qwExternalContact : qwExternalContacts) {
+                if (qwExternalContact.getFsUserId()==null || qwExternalContact.getFsUserId()!=0L ){
+                    qwExternalContact.setFsUserId(user.getUserId());
+                    qwExternalContactMapper.updateQwExternalContact(qwExternalContact);
+                }
+            }
+            QwExternalContact UnionEXt=qwExternalContacts.get(0);
             log.info("匹配到的第一个企微用户:"+UnionEXt.getUserId());
             log.info("企微id:"+UnionEXt.getId());
             log.info("用户:"+param.getVideoId());

+ 6 - 1
fs-service/src/main/java/com/fs/his/domain/FsUserInformationCollectionSchedule.java

@@ -2,7 +2,6 @@ package com.fs.his.domain;
 
 import java.util.Date;
 import com.fasterxml.jackson.annotation.JsonFormat;
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.fs.common.annotation.Excel;
 import lombok.Data;
 import com.fs.common.core.domain.BaseEntity;
@@ -67,5 +66,11 @@ public class FsUserInformationCollectionSchedule extends BaseEntity{
     /** 订单号 */
     private String orderCode;
 
+    /** 公司id */
+    private Long companyId;
+
+    /** 公司用户id */
+    private Long companyUserId;
+
 
 }

+ 6 - 1
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -14,6 +14,7 @@ import com.fs.common.exception.CustomException;
 import com.fs.common.exception.ServiceException;
 import com.fs.common.utils.*;
 import com.fs.common.utils.ip.IpUtils;
+import com.fs.company.cache.ICompanyUserCacheService;
 import com.fs.company.domain.Company;
 import com.fs.company.domain.CompanyDept;
 import com.fs.company.domain.CompanyMoneyLogs;
@@ -316,6 +317,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
     @Autowired
     private IFsOrderSopLogService fsOrderSopLogService;
 
+    @Autowired
+    private ICompanyUserCacheService companyUserCacheService;
+
     //ERP 类型到服务的映射
     private Map<Integer, IErpOrderService> erpServiceMap;
     @PostConstruct
@@ -935,7 +939,8 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
             String name = collection.getUserName() != null ? collection.getUserName() : "-";
             msg.setTitle("用户信息采集开方");
             msg.setType(1);
-            msg.setContent("患者:" + name + "的信息采集,前往开方");
+            String companyUserName = companyUserCacheService.selectCompanyUserNameUserById(collection.getCompanyUserId());
+            msg.setContent("患者:" + name + "的信息采集,前往开方,来源客服:"+companyUserName);
             msg.setDoctorId(collection.getDoctorId());
             msg.setCreateTime(DateUtils.getNowDate());
             doctorMsgMapper.insertDoctorMsg(msg);

+ 3 - 1
fs-service/src/main/java/com/fs/hisStore/domain/FsUserInformationCollection.java

@@ -1,6 +1,5 @@
 package com.fs.hisStore.domain;
 
-import com.baomidou.mybatisplus.annotation.TableId;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fs.common.annotation.Excel;
 import lombok.Data;
@@ -49,6 +48,9 @@ public class FsUserInformationCollection extends BaseEntity{
     //销售id
     private Long companyUserId;
 
+    /** 公司id */
+    private Long companyId;
+
     //套餐包id
     private Long packageId;
 

+ 3 - 0
fs-service/src/main/java/com/fs/hisStore/param/FsUserInformationCollectionParam.java

@@ -44,4 +44,7 @@ public class FsUserInformationCollectionParam {
     private String allergy;
     //备注
     private String remark;
+
+    /** 公司id */
+    private Long companyId;
 }

+ 45 - 14
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserInformationCollectionServiceImpl.java

@@ -22,6 +22,7 @@ import com.fs.common.exception.CustomException;
 import com.fs.common.utils.DateUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.common.utils.StringUtils;
+import com.fs.company.cache.ICompanyUserCacheService;
 import com.fs.company.domain.CompanyUser;
 import com.fs.company.mapper.CompanyUserMapper;
 import com.fs.company.service.ICompanyService;
@@ -176,6 +177,9 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
 
     @Autowired
     private FsUserInformationCollectionScheduleMapper scheduleMapper;
+
+    @Autowired
+    private ICompanyUserCacheService companyUserCacheService;
     /**
      * 查询用户信息采集
      *
@@ -215,6 +219,8 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         //新增用户信息采集表的同时记录用户信息采集进度
         try {
             fsUserInformationCollection.setPackageId(param.getPackageId());
+            fsUserInformationCollection.setCompanyUserId(param.getCompanyUserId());
+            fsUserInformationCollection.setCompanyId(param.getCompanyId());
             FsUserInformationCollectionSchedule fsUserInformationCollectionSchedule = assembleCreateSchedule(fsUserInformationCollection);
             scheduleMapper.insertFsUserInformationCollectionSchedule(fsUserInformationCollectionSchedule);
             log.info("新增用户信息采集进度数据,信息采集数据id:{}",fsUserInformationCollectionSchedule.getCollectionId());
@@ -253,7 +259,10 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         }
         try {
             FsUserInformationCollection condition = getFsUserInformationCollection(param);
-            condition.setPackageId(param.getPackageId());
+            if (param.getIsPackage() != null&& param.getIsPackage() == 1){
+                condition.setPackageId(param.getPackageId());
+            }
+
             FsUserInformationCollectionSchedule fsUserInformationCollectionSchedule = assembleCreateSchedule(condition);
             scheduleMapper.insertFsUserInformationCollectionSchedule(fsUserInformationCollectionSchedule);
             log.info("编辑用户信息采集信息重新新增进度数据,信息采集数据id:{}",fsUserInformationCollectionSchedule.getCollectionId());
@@ -269,6 +278,19 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         fsUserInformationCollection.setDoctorConfirm(0);
         fsUserInformationCollection.setStatus(1);
         fsUserInformationCollection.setUpdateTime(DateUtils.getNowDate());
+        fsUserInformationCollection.setRemark(param.getRemark());
+        fsUserInformationCollection.setSex(param.getSex());
+        fsUserInformationCollection.setIsPackage(param.getIsPackage());
+        fsUserInformationCollection.setUserName(param.getUserName());
+        if (param.getIsPackage() != null && param.getIsPackage() == 1){
+            fsUserInformationCollection.setPackageId(param.getPackageId());
+        }
+
+        fsUserInformationCollection.setUserPhoneFour(param.getUserPhoneFour());
+        fsUserInformationCollection.setAllergy(param.getAllergy());
+        fsUserInformationCollection.setPayType(param.getPayType());
+        fsUserInformationCollection.setQuestionId(param.getQuestionId());
+        fsUserInformationCollection.setAmount(param.getAmount());
         baseMapper.updateFsUserInformationCollection(fsUserInformationCollection);
         return fsUserInformationCollection.getId();
     }
@@ -630,9 +652,11 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
                 return R.error("用户已确认");
             }
         }
+        logger.info("采集信息id:{},采集信息用户id{},当前登录用户id{}",param.getId(),collection.getUserId(),param.getUserId());
         if (!Objects.equals(collection.getUserId(), param.getUserId())) {
             return R.error("用户信息不匹配,无法确认");
         }
+
         FsUserInformationCollection map = new FsUserInformationCollection();
         map.setId(param.getId());
         map.setUserConfirm(1);
@@ -640,23 +664,28 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         //用户信息采集表id
         Long collectionId = collection.getId();
         FsUserInformationCollectionSchedule schedule = scheduleMapper.selectCollectionScheduleByCollectionId(collectionId);
-        if (collection.getStatus() == 1 && collection.getIsPackage() == 0) {
-            //用户第一次确认添加医生消息
-            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);
+        if (collection.getStatus() == 1) {
+            if (collection.getIsPackage() == 0) {
+                //用户第一次确认添加医生消息
+                DoctorMsg msg = new DoctorMsg();
+                String name = collection.getUserName() != null ? collection.getUserName() : "-";
+                //没套餐包的添加医生信息采集建议消息
+                msg.setTitle("用户采集信息建议");
+                msg.setType(3);
+                String companyUserName = companyUserCacheService.selectCompanyUserNameUserById(collection.getCompanyUserId());
+                msg.setContent("患者:" + name + "的信息采集,前往建议,来源客服:"+companyUserName);
+                msg.setDoctorId(collection.getDoctorId());
+                msg.setCreateTime(DateUtils.getNowDate());
+                //插入医生消息
+                doctorMsgMapper.insertDoctorMsg(msg);
+            }
             //第一次确认
             map.setStatus(2);
             //设置用户信息采集进度节点
             if (schedule != null) {
-                if (schedule.getPackageId() != null) {
+                log.info("同步用户id:{}信息采集进度:{}",param.getUserId(),schedule);
+                log.info("当前采集表isPackage数值:{}",collection.getIsPackage());
+                if (collection.getIsPackage() == 1) {
                     //带套餐包的 "待开方"节点
                     schedule.setCurrentStep(PrescriptionTaskStepEnum.WAITING_PRESCRIBE.getCode());
                     log.info("同步用户信息采集进度节点为:{},信息采集表id:{}",PrescriptionTaskStepEnum.WAITING_PRESCRIBE.getDesc(),schedule.getCollectionId());
@@ -1013,6 +1042,8 @@ public class FsUserInformationCollectionServiceImpl extends ServiceImpl<FsUserIn
         shedule.setDoctorId(fsUserInformationCollection.getDoctorId());
         shedule.setPackageId(fsUserInformationCollection.getPackageId());
         shedule.setCreateTime(DateUtils.getNowDate());
+        shedule.setCompanyUserId(fsUserInformationCollection.getCompanyUserId());
+        shedule.setCompanyId(fsUserInformationCollection.getCompanyId());
         //任务状态:"进行中"
         shedule.setStatus(CollectionTaskStatusEnum.PROCESSING.getCode());
         //当前流程节点:"待用户第一次确认"

+ 2 - 2
fs-service/src/main/java/com/fs/qw/mapper/QwExternalContactMapper.java

@@ -530,8 +530,8 @@ public interface QwExternalContactMapper extends BaseMapper<QwExternalContact> {
     void updateQwExternalContactIsRePlyById(@Param("id")Long id);
 
 
-    @Select("select * from qw_external_contact where unionid = #{unionID} order by create_time asc limit 1 ")
-    QwExternalContact selectQwExternalByUnionID(@Param("unionID")String unionID);
+    @Select("select * from qw_external_contact where unionid = #{unionID} order by create_time asc  ")
+    List<QwExternalContact> selectQwExternalByUnionID(@Param("unionID")String unionID);
 
     @Select("SELECT max(id) FROM qw_external_contact where status <>'4' and unionid is NULL")
     Long selectSyncMaxId();

+ 5 - 0
fs-service/src/main/java/com/fs/qw/param/QwExternalContactParam.java

@@ -2,6 +2,7 @@ package com.fs.qw.param;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.fs.common.annotation.Excel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.util.Date;
@@ -131,4 +132,8 @@ public class QwExternalContactParam {
 
     private Long wayId;
 
+    @ApiModelProperty(value = "页码,默认为1")
+    private Integer pageNum =1;
+    @ApiModelProperty(value = "页大小,默认为10")
+    private Integer pageSize = 10;
 }

+ 20 - 4
fs-service/src/main/resources/mapper/qw/FsUserInformationCollectionScheduleMapper.xml

@@ -19,10 +19,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="terminatedBy"    column="terminated_by"    />
         <result property="remark"    column="remark"    />
         <result property="orderCode"    column="order_code"    />
+        <result property="companyId"    column="company_id"    />
+        <result property="companyUserId"    column="company_user_id"    />
     </resultMap>
 
     <sql id="selectFsUserInformationCollectionScheduleVo">
-        select id, collection_id, user_id, doctor_id, package_id, package_name, current_step, status, create_time, completed_time, terminated_time, terminated_by, remark,order_code from fs_user_information_collection_schedule
+        select id, collection_id, user_id, doctor_id, package_id, package_name, current_step, status, create_time, completed_time, terminated_time, terminated_by, remark,order_code,company_id, company_user_id from fs_user_information_collection_schedule
     </sql>
 
     <select id="selectFsUserInformationCollectionScheduleList" parameterType="FsUserInformationCollectionSchedule" resultMap="FsUserInformationCollectionScheduleResult">
@@ -42,7 +44,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         s.terminated_time,
         s.terminated_by,
         s.remark,
-        s.order_code
+        s.order_code,
+        s.company_id,
+        s.company_user_id
         FROM
         fs_user_information_collection_schedule s
         LEFT JOIN fs_user_information_collection c ON s.collection_id = c.id
@@ -61,6 +65,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedTime != null "> and s.terminated_time = #{terminatedTime}</if>
             <if test="terminatedBy != null  and terminatedBy != ''"> and s.terminated_by = #{terminatedBy}</if>
             <if test="orderCode != null and orderCode != ''"> AND s.order_code = #{orderCode}</if>
+            <if test="companyId != null and companyId != ''"> AND s.company_id = #{companyId}</if>
+            <if test="companyUserId != null and companyUserId != ''"> AND s.company_user_id = #{companyUserId}</if>
         </where>
     </select>
 
@@ -103,6 +109,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedTime != null"> AND s.terminated_time = #{terminatedTime}</if>
             <if test="terminatedBy != null and terminatedBy != ''"> AND s.terminated_by = #{terminatedBy}</if>
             <if test="orderCode != null and orderCode != ''"> AND s.order_code = #{orderCode}</if>
+            <if test="companyId != null and companyId != ''"> AND s.company_id = #{companyId}</if>
+            <if test="companyUserId != null and companyUserId != ''"> AND s.company_user_id = #{companyUserId}</if>
             AND s.id = (
             SELECT MAX(s2.id)
             FROM fs_user_information_collection_schedule s2
@@ -120,6 +128,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedTime != null"> AND s2.terminated_time = #{terminatedTime}</if>
             <if test="terminatedBy != null and terminatedBy != ''"> AND s2.terminated_by = #{terminatedBy}</if>
             <if test="orderCode != null and orderCode != ''"> AND s2.order_code = #{orderCode}</if>
+            <if test="companyId != null and companyId != ''"> AND s2.company_id = #{companyId}</if>
+            <if test="companyUserId != null and companyUserId != ''"> AND s2.company_user_id = #{companyUserId}</if>
             )
         </where>
         ORDER BY s.create_time desc
@@ -134,7 +144,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT
             id, collection_id, user_id, doctor_id,
             package_id, package_name, current_step, status, create_time,
-            completed_time, terminated_time, terminated_by, remark,order_code
+            completed_time, terminated_time, terminated_by, remark,order_code,company_id,company_user_id
         FROM fs_user_information_collection_schedule
         WHERE collection_id = #{collectionId}
         ORDER BY id DESC
@@ -149,7 +159,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         SELECT
             id, collection_id, user_id, doctor_id,
             package_id, package_name, current_step, status, create_time,
-            completed_time, terminated_time, terminated_by, remark,order_code
+            completed_time, terminated_time, terminated_by, remark,order_code,company_id,company_user_id
         FROM fs_user_information_collection_schedule
         WHERE collection_id = #{collectionId}
         AND status = 1
@@ -174,6 +184,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedBy != null">terminated_by,</if>
             <if test="remark != null">remark,</if>
             <if test="orderCode != null">order_code,</if>
+            <if test="companyId != null">company_id,</if>
+            <if test="companyUserId != null">company_user_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="collectionId != null">#{collectionId},</if>
@@ -189,6 +201,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedBy != null">#{terminatedBy},</if>
             <if test="remark != null">#{remark},</if>
             <if test="orderCode != null">#{orderCode},</if>
+            <if test="companyId != null">#{companyId},</if>
+            <if test="companyUserId != null">#{companyUserId},</if>
          </trim>
     </insert>
 
@@ -208,6 +222,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="terminatedBy != null">terminated_by = #{terminatedBy},</if>
             <if test="remark != null">remark = #{remark},</if>
             <if test="orderCode != null">order_code = #{orderCode},</if>
+            <if test="companyId != null">company_id = #{companyId},</if>
+            <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
         </trim>
         where id = #{id}
     </update>

+ 14 - 0
fs-user-app/src/main/java/com/fs/app/controller/QuestionAndAnswerController.java

@@ -4,6 +4,7 @@ import com.fs.app.annotation.Login;
 import com.fs.common.core.domain.R;
 import com.fs.his.service.IFsQuestionAndAnswerService;
 import com.fs.his.vo.FsQuestionAndAnswerVO;
+import com.fs.his.vo.OptionsVO;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -12,6 +13,8 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.util.List;
+
 @Api("问答")
 @RestController
 @RequestMapping(value="/app/answer")
@@ -27,4 +30,15 @@ public class QuestionAndAnswerController {
         FsQuestionAndAnswerVO vo = questionAndAnswerService.selectFsQuestionAndAnswerById(questionId);
         return R.ok().put("data", vo);
     }
+
+    /**
+     * 查询问答列表
+     */
+    @ApiOperation("问答列表")
+    @GetMapping("/allList")
+    public R answerList()
+    {
+        List<OptionsVO> list = questionAndAnswerService.selectAllQuestionOptions();
+        return R.ok().put("data",list);
+    }
 }

+ 93 - 0
fs-user-app/src/main/java/com/fs/app/controller/UserInfoCollectionController.java

@@ -1,22 +1,41 @@
 package com.fs.app.controller;
 
+import com.fs.common.annotation.Log;
+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.course.param.CollectionInfoConfirmParam;
 import com.fs.course.vo.FsUserInfoCollectionUVO;
+import com.fs.framework.security.SecurityUtils;
+import com.fs.his.domain.FsUser;
+import com.fs.his.domain.FsUserInformationCollectionSchedule;
+import com.fs.his.service.IFsUserService;
+import com.fs.hisStore.domain.FsUserInformationCollection;
+import com.fs.hisStore.param.FsUserInformationCollectionParam;
 import com.fs.hisStore.service.IFsUserInformationCollectionService;
+import com.fs.qw.service.IFsUserInformationCollectionScheduleService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 @Api("用户信息采集接口")
 @RestController
 @RequestMapping(value="/app/collection")
 public class UserInfoCollectionController extends AppBaseController {
 
+    @Autowired
+    private IFsUserService userService;
+
     @Autowired
     private IFsUserInformationCollectionService userInformationCollectionService;
 
+    @Autowired
+    private IFsUserInformationCollectionScheduleService fsUserInformationCollectionScheduleService;
 
     @ApiOperation("用户信息采集详情")
     @GetMapping("/getInfo")
@@ -32,4 +51,78 @@ public class UserInfoCollectionController extends AppBaseController {
         param.setUserId(Long.parseLong(getUserId()));
         return userInformationCollectionService.userConfirm(param);
     }
+
+
+    /**
+     * 获取用户信息采集详细信息
+     */
+    @ApiOperation("获取用户信息采集详细信息")
+    @GetMapping(value = "/detail")
+    public R detail(FsUserInformationCollection param)
+    {
+        return R.ok().put("data", userInformationCollectionService.getInfo(param));
+    }
+
+    /**
+     * 新增用户信息采集
+     */
+    @ApiOperation("新增用户信息采集")
+    @Log(title = "用户信息采集", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    public R add(@RequestBody FsUserInformationCollectionParam fsUserInformationCollection)
+    {
+        FsUser user=userService.selectFsUserByUserId(Long.parseLong(getUserId()));
+        fsUserInformationCollection.setCompanyUserId(user.getCompanyUserId());
+        fsUserInformationCollection.setCompanyId(user.getCompanyId());
+        Long l = userInformationCollectionService.insertFsUserInformationCollection(fsUserInformationCollection);
+        if (l > 0) {
+            return R.ok();
+
+        } else {
+            return R.error();
+        }
+    }
+
+    /**
+     * 修改用户信息采集
+     */
+    @ApiOperation("修改用户信息采集")
+    @Log(title = "用户信息采集", businessType = BusinessType.UPDATE)
+    @PutMapping("/edit")
+    public R edit(@RequestBody FsUserInformationCollectionParam fsUserInformationCollection)
+    {
+
+        Long l = userInformationCollectionService.updateFsUserInformationCollection(fsUserInformationCollection);
+        if (l > 0) {
+            return R.ok();
+
+        } else {
+            return R.error();
+        }
+    }
+
+
+    /**
+     * 对于每条用户信息采集记录,只获取其最新的任务流程
+     */
+    @PreAuthorize("@ss.hasPermi('qw:collectionSchedule:list')")
+    @GetMapping("/schedule/list")
+    public TableDataInfo list(FsUserInformationCollectionSchedule fsUserInformationCollectionSchedule)
+    {
+        FsUser user=userService.selectFsUserByUserId(Long.parseLong(getUserId()));
+        fsUserInformationCollectionSchedule.setCompanyId(user.getCompanyId());
+        fsUserInformationCollectionSchedule.setCompanyUserId(user.getCompanyUserId());
+        startPage();
+        List<FsUserInformationCollectionSchedule> list = fsUserInformationCollectionScheduleService.getUserRecordLatestTaskProcess(fsUserInformationCollectionSchedule);
+        return getDataTable(list);
+    }
+
+    /**
+     * 停止用户信息采集任务
+     */
+    @PutMapping("/schedule/stop")
+    public R stop(@RequestBody FsUserInformationCollectionSchedule param){
+        FsUser user=userService.selectFsUserByUserId(Long.parseLong(getUserId()));
+        return userInformationCollectionService.stopCollection(param,user.getUserId());
+    }
 }

+ 44 - 0
fs-user-app/src/main/java/com/fs/app/controller/qw/QwExternalContactController.java

@@ -0,0 +1,44 @@
+package com.fs.app.controller.qw;
+
+import com.fs.app.controller.AppBaseController;
+import com.fs.common.core.domain.R;
+import com.fs.common.core.page.TableDataInfo;
+import com.fs.qw.param.QwExternalContactParam;
+import com.fs.qw.service.IQwExternalContactService;
+import com.fs.qw.vo.QwExternalContactVO;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+@RestController
+@RequestMapping(value="/app/externalContact")
+public class QwExternalContactController extends AppBaseController {
+
+    @Autowired
+    private IQwExternalContactService qwExternalContactService;
+
+    @ApiOperation("我的企微客户")
+    @GetMapping("/myList")
+    public R myList(QwExternalContactParam qwExternalContact)
+    {
+        if(qwExternalContact.getQwUserId()==null && qwExternalContact.getCompanyId() == null){
+            return null;
+        }
+        //PageHelper.startPage(qwExternalContact.getPageNum(), qwExternalContact.getPageSize());
+        startPage();
+        List<QwExternalContactVO> list = qwExternalContactService.selectQwExternalContactListVO(qwExternalContact);
+        if (!CollectionUtils.isEmpty(list)) {
+            list = list.stream().filter(s -> s.getFsUserId() != null).collect(Collectors.toList());
+        }
+        PageInfo<QwExternalContactVO> pageInfo = new PageInfo<>(list);
+        return R.ok().put("data", pageInfo);
+    }
+}

+ 31 - 0
fs-user-app/src/main/java/com/fs/app/controller/qw/QwUserController.java

@@ -0,0 +1,31 @@
+package com.fs.app.controller.qw;
+
+import com.fs.app.controller.AppBaseController;
+import com.fs.common.core.domain.R;
+import com.fs.common.utils.ServletUtils;
+import com.fs.qw.service.IQwUserService;
+import com.fs.qw.vo.QwOptionsVO;
+import io.swagger.annotations.ApiOperation;
+import org.apache.ibatis.annotations.Param;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+@RestController
+@RequestMapping(value="/app/qwUser")
+public class QwUserController extends AppBaseController {
+
+    @Autowired
+    private IQwUserService qwUserService;
+
+    @ApiOperation("我的企业信息")
+    @GetMapping("/getMyQwUserList")
+    public R getMyQwUserList(@Param("companyUserId") Long companyUserId)
+    {
+        List<QwOptionsVO> list = qwUserService.selectQwUserListOptionsVOByCompanyUserId(companyUserId);
+        return  R.ok().put("data",list);
+    }
+}