Explorar el Código

Merge branch 'dev' of liuwenbin/patient-co-management into dev

liuwenbin hace 6 años
padre
commit
fa1fc9a646

+ 18 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/synergy/doctor/DoctorSynergyManageController.java

@ -51,4 +51,22 @@ public class DoctorSynergyManageController extends BaseController {
            return error(-1, "请求失败");
        }
    }
    @RequestMapping(value = "reminder", method = RequestMethod.GET)
    @ApiOperation("医生端-催单")
    public String reminder(@ApiParam(name = "userCode", value = "医生code", required = false)
                           @RequestParam(value = "userCode", required = false)String userCode,
                           @ApiParam(name = "workorderServicerCode", value = "服务对象code", required = true)
                           @RequestParam(value = "workorderServicerCode", required = true)String workorderServicerCode){
        try {
            if(!StringUtils.isNotEmpty(userCode)){
                userCode = getUID();
            }
            synergyManageService.reminder(workorderServicerCode,userCode,1);
            return write(200, "请求成功");
        }catch (Exception e){
            error(e);
            return error(-1, "请求失败");
        }
    }
}

+ 197 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/synergy/ManageSynergyWorkordeReminderDO.java

@ -0,0 +1,197 @@
package com.yihu.wlyy.entity.synergy;
import com.yihu.wlyy.entity.IdEntity;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by 刘文彬 on 2018/10/8.
 * 催单记录表
 */
@Entity
@Table(name = "manage_synergy_workorder_reminder")
public class ManageSynergyWorkordeReminderDO extends IdEntity {
    private String code;
    private String workorderCode;//协同服务工单code
    private String servicePatientCode;//协同服务对象code
    private String createUser;//创建人code
    private String createUserName;//创建者姓名
    private Integer createUserType;//创建人类型(1、医生,2、客服,3、客服负责人)
    private String hospital;//创建人所属机构code
    private String hospitalName;//创建人所属机构的名称
    private Date createTime;//催单时间
    private String principalCode;//负责人code
    private String principalName;//负责人姓名
    private Integer workorderType;//服务类型(0、咨询,1、健康教育,2、预约,3、随访,4、问卷调查,5、疾病筛查)
    private String relationCode;//根据workorder_type关联业务code
    private String relationCodeName;//关联业务名称
    private Date serviceTime;//服务时间
    private String servicerKey;//服务对象其中五个人
    private String workorderRemark;//备注
    private Integer dealWith;//0、未处理,1、已处理
    @Column(name = "code")
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    @Column(name = "workorder_code")
    public String getWorkorderCode() {
        return workorderCode;
    }
    public void setWorkorderCode(String workorderCode) {
        this.workorderCode = workorderCode;
    }
    @Column(name = "service_patient_code")
    public String getServicePatientCode() {
        return servicePatientCode;
    }
    public void setServicePatientCode(String servicePatientCode) {
        this.servicePatientCode = servicePatientCode;
    }
    @Column(name = "create_user")
    public String getCreateUser() {
        return createUser;
    }
    public void setCreateUser(String createUser) {
        this.createUser = createUser;
    }
    @Column(name = "create_user_name")
    public String getCreateUserName() {
        return createUserName;
    }
    public void setCreateUserName(String createUserName) {
        this.createUserName = createUserName;
    }
    @Column(name = "create_user_type")
    public Integer getCreateUserType() {
        return createUserType;
    }
    public void setCreateUserType(Integer createUserType) {
        this.createUserType = createUserType;
    }
    @Column(name = "hospital")
    public String getHospital() {
        return hospital;
    }
    public void setHospital(String hospital) {
        this.hospital = hospital;
    }
    @Column(name = "hospital_name")
    public String getHospitalName() {
        return hospitalName;
    }
    public void setHospitalName(String hospitalName) {
        this.hospitalName = hospitalName;
    }
    @Column(name = "create_time")
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    @Column(name = "principal_code")
    public String getPrincipalCode() {
        return principalCode;
    }
    public void setPrincipalCode(String principalCode) {
        this.principalCode = principalCode;
    }
    @Column(name = "principal_name")
    public String getPrincipalName() {
        return principalName;
    }
    public void setPrincipalName(String principalName) {
        this.principalName = principalName;
    }
    @Column(name = "workorder_type")
    public Integer getWorkorderType() {
        return workorderType;
    }
    public void setWorkorderType(Integer workorderType) {
        this.workorderType = workorderType;
    }
    @Column(name = "relation_code")
    public String getRelationCode() {
        return relationCode;
    }
    public void setRelationCode(String relationCode) {
        this.relationCode = relationCode;
    }
    @Column(name = "relation_code_name")
    public String getRelationCodeName() {
        return relationCodeName;
    }
    public void setRelationCodeName(String relationCodeName) {
        this.relationCodeName = relationCodeName;
    }
    @Column(name = "service_time")
    public Date getServiceTime() {
        return serviceTime;
    }
    public void setServiceTime(Date serviceTime) {
        this.serviceTime = serviceTime;
    }
    @Column(name = "servicer_key")
    public String getServicerKey() {
        return servicerKey;
    }
    public void setServicerKey(String servicerKey) {
        this.servicerKey = servicerKey;
    }
    @Column(name = "workorder_remark")
    public String getWorkorderRemark() {
        return workorderRemark;
    }
    public void setWorkorderRemark(String workorderRemark) {
        this.workorderRemark = workorderRemark;
    }
    @Column(name = "deal_with")
    public Integer getDealWith() {
        return dealWith;
    }
    public void setDealWith(Integer dealWith) {
        this.dealWith = dealWith;
    }
}

+ 10 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/synergy/ManageSynergyWorkorderServicerDO.java

@ -33,6 +33,7 @@ public class ManageSynergyWorkorderServicerDO extends IdEntity {
    private String town;//区县编码
    private String townName;//区县名称
    private String relationCode;//工单类型所关联的业务code
    private String relationCodeName;//关联业务名称
    private String callCode;//通话记录code
    @Column(name = "code")
@ -214,4 +215,13 @@ public class ManageSynergyWorkorderServicerDO extends IdEntity {
    public void setWorkorderType(Integer workorderType) {
        this.workorderType = workorderType;
    }
    @Column(name = "relation_code_name")
    public String getRelationCodeName() {
        return relationCodeName;
    }
    public void setRelationCodeName(String relationCodeName) {
        this.relationCodeName = relationCodeName;
    }
}

+ 10 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/synergy/ManageSynergyWorkorderReminderDao.java

@ -0,0 +1,10 @@
package com.yihu.wlyy.repository.synergy;
import com.yihu.wlyy.entity.synergy.ManageSynergyWorkordeReminderDO;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by 刘文彬 on 2018/10/8.
 */
public interface ManageSynergyWorkorderReminderDao extends PagingAndSortingRepository<ManageSynergyWorkordeReminderDO, Long> {
}

+ 5 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/synergy/ManageSynergyWorkorderServicerDao.java

@ -18,4 +18,9 @@ public interface ManageSynergyWorkorderServicerDao extends PagingAndSortingRepos
    //根据工单code和居民code获取处理完成的服务对象信息
    @Query("select s from ManageSynergyWorkorderServicerDO s where s.workorderCode = ?1 and s.servicePatientCode = ?2 and s.status = 3")
    ManageSynergyWorkorderServicerDO findByWorkOrderCodeAndPatientCode(String workorderCode, String patient);
    @Query("select count(1) from ManageSynergyWorkorderServicerDO s where s.workorderCode=?1 and s.executorCode=?2 and s.status=?3")
    Integer countByWorkorderCodeAndExecutorCodeAndStatus(String workorderCode,String executorCode,Integer status);
    ManageSynergyWorkorderServicerDO findByCode(String code);
}

+ 12 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/synergy/ManageSynergyWorkorderServicerLogDao.java

@ -0,0 +1,12 @@
package com.yihu.wlyy.repository.synergy;
import com.yihu.wlyy.entity.synergy.ManageSynergyWorkorderServicerLogDO;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by 刘文彬 on 2018/9/30.
 */
public interface ManageSynergyWorkorderServicerLogDao extends PagingAndSortingRepository<ManageSynergyWorkorderServicerLogDO, Long> {
}

+ 81 - 12
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/synergy/SynergyManageService.java

@ -1,20 +1,12 @@
package com.yihu.wlyy.service.synergy;
import com.yihu.wlyy.entity.Patient;
import com.yihu.wlyy.entity.SignFamily;
import com.yihu.wlyy.entity.SignPatientLabelInfo;
import com.yihu.wlyy.entity.User;
import com.yihu.wlyy.entity.*;
import com.yihu.wlyy.entity.synergy.ManageSynergyWorkordeReminderDO;
import com.yihu.wlyy.entity.synergy.ManageSynergyWorkorderDO;
import com.yihu.wlyy.entity.synergy.ManageSynergyWorkorderExecutorDO;
import com.yihu.wlyy.entity.synergy.ManageSynergyWorkorderServicerDO;
import com.yihu.wlyy.repository.PatientDao;
import com.yihu.wlyy.repository.SignFamilyDao;
import com.yihu.wlyy.repository.SignPatientLabelInfoDao;
import com.yihu.wlyy.repository.UserDao;
import com.yihu.wlyy.repository.synergy.ManageSynergyWorkOrderDao;
import com.yihu.wlyy.repository.synergy.ManageSynergyWorkorderCustomerLogDao;
import com.yihu.wlyy.repository.synergy.ManageSynergyWorkorderExecutorDao;
import com.yihu.wlyy.repository.synergy.ManageSynergyWorkorderServicerDao;
import com.yihu.wlyy.repository.*;
import com.yihu.wlyy.repository.synergy.*;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.HttpClientUtil;
import com.yihu.wlyy.util.IdCardUtil;
@ -52,6 +44,8 @@ public class SynergyManageService extends BaseJpaService {
    @Autowired
    private UserDao userDao;
    @Autowired
    private ManageSynergyWorkorderCustomerLogDao manageSynergyWorkorderCustomerLogDao;
    @Autowired
    private PatientDao patientDao;
    @Autowired
    private SignFamilyDao signFamilyDao;
@ -59,6 +53,10 @@ public class SynergyManageService extends BaseJpaService {
    private SignPatientLabelInfoDao signPatientLabelInfoDao;
    @Autowired
    private ManageSynergyWorkorderCustomerLogDao customerLogDao;
    @Autowired
    private DoctorDao doctorDao;
    @Autowired
    private ManageSynergyWorkorderReminderDao manageSynergyWorkorderReminderDao;
    /**
     * 根据服务编码获取工单
@ -593,4 +591,75 @@ public class SynergyManageService extends BaseJpaService {
        resultMap.put("serveType", StringUtils.isNotEmpty(serveType)?serveType.substring(1) : "");//服务类型
        return resultMap;
    }
    /**
     * 任务进度
     * @param workorderCode
     * @param userCode
     */
    public void workorderRate(String workorderCode,String userCode){
        Map<String,Object> resultMap = new HashMap<>();
        //完成情况
        //1、有效
        Integer validCount = workorderServicerDao.findByWorkorderCodeCount(workorderCode,3);
        resultMap.put("validCount",validCount);
        //2、无效
        resultMap.put("invalidCount","");
        //3、总数
        ManageSynergyWorkorderDO manageSynergyWorkorder = workOrderDao.findByCode(workorderCode);
        resultMap.put("allCount",manageSynergyWorkorder.getServicerCount());
        //我已完成
        Integer myFinishedCount = workorderServicerDao.countByWorkorderCodeAndExecutorCodeAndStatus(workorderCode,userCode,3);
        resultMap.put("myFinishedCount",myFinishedCount);
        //待跟进
        resultMap.put("followCount","");
    }
    /**
     * 催单
     * @param workorderServicerCode
     * @param userCode
     * @param userType
     * @throws Exception
     */
    @Transactional
    public void reminder(String workorderServicerCode,String userCode,Integer userType) throws Exception{
        ManageSynergyWorkorderServicerDO manageSynergyWorkorderServicerDO = workorderServicerDao.findByCode(workorderServicerCode);
        if(manageSynergyWorkorderServicerDO==null){
            throw new Exception();
        }
        ManageSynergyWorkordeReminderDO workordeReminderDO = new ManageSynergyWorkordeReminderDO();
        workordeReminderDO.setCode(getCode());
        workordeReminderDO.setWorkorderCode(manageSynergyWorkorderServicerDO.getWorkorderCode());
        workordeReminderDO.setServicePatientCode(workorderServicerCode);
        workordeReminderDO.setCreateUser(userCode);
        //创建人类型(1、医生,2、客服,3、客服负责人)
        if(userType==1){
            Doctor doctor = doctorDao.findByCode(userCode);
            workordeReminderDO.setCreateUserName(doctor.getName());
        }else if(userType==2||userType==3){
            User user = userDao.findByCode(userCode);
            workordeReminderDO.setCreateUserName(user.getName());
        }
        workordeReminderDO.setCreateUserType(userType);
        workordeReminderDO.setHospital(manageSynergyWorkorderServicerDO.getHospital());
        workordeReminderDO.setHospitalName(manageSynergyWorkorderServicerDO.getHospitalName());
        workordeReminderDO.setCreateTime(new Date());
        List<ManageSynergyWorkorderExecutorDO> list = workorderExecutorDao.findByWorkorderCode(manageSynergyWorkorderServicerDO.getWorkorderCode(),1);
        if(list!=null&&list.size()>0){
            workordeReminderDO.setPrincipalCode(list.get(0).getExecutorCode());
            workordeReminderDO.setPrincipalName(list.get(0).getExecutorName());
        }
        workordeReminderDO.setWorkorderType(manageSynergyWorkorderServicerDO.getWorkorderType());
        workordeReminderDO.setRelationCode(manageSynergyWorkorderServicerDO.getRelationCode());
        workordeReminderDO.setRelationCodeName(manageSynergyWorkorderServicerDO.getRelationCodeName());
        ManageSynergyWorkorderDO manageSynergyWorkorderDO = workOrderDao.findByCode(manageSynergyWorkorderServicerDO.getWorkorderCode());
        workordeReminderDO.setServiceTime(manageSynergyWorkorderDO!=null?manageSynergyWorkorderDO.getServiceTime():null);
        workordeReminderDO.setServicerKey(manageSynergyWorkorderDO!=null?manageSynergyWorkorderDO.getServicerKey():null);
        workordeReminderDO.setWorkorderRemark(manageSynergyWorkorderDO!=null?manageSynergyWorkorderDO.getRemark():null);
        workordeReminderDO.setDealWith(0);
        manageSynergyWorkorderReminderDao.save(workordeReminderDO);
    }
}