Browse Source

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

trick9191 7 years ago
parent
commit
bb4b7bf5d9
15 changed files with 1356 additions and 15 deletions
  1. 162 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/call/CallRecord.java
  2. 250 0
      common/common-entity/src/main/java/com/yihu/wlyy/entity/call/CallService.java
  3. 10 0
      patient-co-manage/wlyy-manage/pom.xml
  4. 125 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/common/account/CustomerController.java
  5. 4 2
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/Message.java
  6. 162 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/call/CallRecord.java
  7. 250 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/call/CallService.java
  8. 13 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/call/CallRecordDao.java
  9. 18 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/call/CallServiceDao.java
  10. 283 8
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/account/CustomerService.java
  11. 9 0
      patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/util/DateUtil.java
  12. 65 0
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/entity/prescription/Prescription.java
  13. 1 1
      patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/prescription/PrescriptionService.java
  14. 2 2
      patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java
  15. 2 2
      patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

+ 162 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/call/CallRecord.java

@ -14,6 +14,7 @@ import java.util.Date;
public class CallRecord extends IdEntity {
    private String  code; //业务关联标识
    private Integer type; //1.呼入,2.呼出
    private String  callerNumber; //主叫号码
    private String  recipientNumber;//被叫号码
    private Integer  answerStatus;//接听状态: 1.接通,2. 队列中放弃,3.接通
@ -32,6 +33,7 @@ public class CallRecord extends IdEntity {
    private String  ssc; //社保卡号
    private String  doctor; //签约医生code
    private String  doctorName; //签约医生姓名
    private String  adminTeamCode;
    public String getCode() {
        return code;
@ -40,4 +42,164 @@ public class CallRecord extends IdEntity {
    public void setCode(String code) {
        this.code = code;
    }
    public String getCallerNumber() {
        return callerNumber;
    }
    public void setCallerNumber(String callerNumber) {
        this.callerNumber = callerNumber;
    }
    public String getRecipientNumber() {
        return recipientNumber;
    }
    public void setRecipientNumber(String recipientNumber) {
        this.recipientNumber = recipientNumber;
    }
    public Integer getAnswerStatus() {
        return answerStatus;
    }
    public void setAnswerStatus(Integer answerStatus) {
        this.answerStatus = answerStatus;
    }
    public Integer getServiceType() {
        return serviceType;
    }
    public void setServiceType(Integer serviceType) {
        this.serviceType = serviceType;
    }
    public String getServiceContent() {
        return serviceContent;
    }
    public void setServiceContent(String serviceContent) {
        this.serviceContent = serviceContent;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public Date getCallTime() {
        return callTime;
    }
    public void setCallTime(Date callTime) {
        this.callTime = callTime;
    }
    public String getTalkTime() {
        return talkTime;
    }
    public void setTalkTime(String talkTime) {
        this.talkTime = talkTime;
    }
    public String getUserCode() {
        return userCode;
    }
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    public String getSsc() {
        return ssc;
    }
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getAdminTeamCode() {
        return adminTeamCode;
    }
    public void setAdminTeamCode(String adminTeamCode) {
        this.adminTeamCode = adminTeamCode;
    }
}

+ 250 - 0
common/common-entity/src/main/java/com/yihu/wlyy/entity/call/CallService.java

@ -34,6 +34,16 @@ public class CallService extends IdEntity {
    private Integer dealState; // 处理结果:1.完成,2.无法联系居民
    private String dealContent; // 处理内容
    private Integer dealReason; // 处理取消原因:0.没有号源、1.病人取消
    private String orderHospital; //预约医院code
    private String orderHospitalName; //预约医院
    private String orderDept; //预约科室code
    private String orderDeptName; //预约科室名称
    private String orderDoctor; //预约医生code
    private String orderDoctorName; //预约医生名称
    private String orderTime; //预约时间段
    private String user; //创建人
    private String userName; //创建人
    private String adminTeamCode; //团队id
    public String getCode() {
        return code;
@ -42,4 +52,244 @@ public class CallService extends IdEntity {
    public void setCode(String code) {
        this.code = code;
    }
    public String getCallCode() {
        return callCode;
    }
    public void setCallCode(String callCode) {
        this.callCode = callCode;
    }
    public Integer getServerType() {
        return serverType;
    }
    public void setServerType(Integer serverType) {
        this.serverType = serverType;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getSsc() {
        return ssc;
    }
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }
    public String getIdcard() {
        return Idcard;
    }
    public void setIdcard(String idcard) {
        Idcard = idcard;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public String getServerContent() {
        return serverContent;
    }
    public void setServerContent(String serverContent) {
        this.serverContent = serverContent;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public Integer getDealType() {
        return dealType;
    }
    public void setDealType(Integer dealType) {
        this.dealType = dealType;
    }
    public Date getDealTime() {
        return dealTime;
    }
    public void setDealTime(Date dealTime) {
        this.dealTime = dealTime;
    }
    public Integer getDealState() {
        return dealState;
    }
    public void setDealState(Integer dealState) {
        this.dealState = dealState;
    }
    public String getDealContent() {
        return dealContent;
    }
    public void setDealContent(String dealContent) {
        this.dealContent = dealContent;
    }
    public Integer getDealReason() {
        return dealReason;
    }
    public void setDealReason(Integer dealReason) {
        this.dealReason = dealReason;
    }
    public String getOrderHospital() {
        return orderHospital;
    }
    public void setOrderHospital(String orderHospital) {
        this.orderHospital = orderHospital;
    }
    public String getOrderHospitalName() {
        return orderHospitalName;
    }
    public void setOrderHospitalName(String orderHospitalName) {
        this.orderHospitalName = orderHospitalName;
    }
    public String getOrderDept() {
        return orderDept;
    }
    public void setOrderDept(String orderDept) {
        this.orderDept = orderDept;
    }
    public String getOrderDeptName() {
        return orderDeptName;
    }
    public void setOrderDeptName(String orderDeptName) {
        this.orderDeptName = orderDeptName;
    }
    public String getOrderDoctor() {
        return orderDoctor;
    }
    public void setOrderDoctor(String orderDoctor) {
        this.orderDoctor = orderDoctor;
    }
    public String getOrderDoctorName() {
        return orderDoctorName;
    }
    public void setOrderDoctorName(String orderDoctorName) {
        this.orderDoctorName = orderDoctorName;
    }
    public String getOrderTime() {
        return orderTime;
    }
    public void setOrderTime(String orderTime) {
        this.orderTime = orderTime;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    public String getAdminTeamCode() {
        return adminTeamCode;
    }
    public void setAdminTeamCode(String adminTeamCode) {
        this.adminTeamCode = adminTeamCode;
    }
}

+ 10 - 0
patient-co-manage/wlyy-manage/pom.xml

@ -102,6 +102,16 @@
            <artifactId>jackson-module-jaxb-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>net.sf.json-lib</groupId>
            <artifactId>json-lib</artifactId>
            <version>2.4</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>

+ 125 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/common/account/CustomerController.java

@ -5,12 +5,15 @@ import com.yihu.wlyy.entity.Doctor;
import com.yihu.wlyy.entity.Patient;
import com.yihu.wlyy.entity.User;
import com.yihu.wlyy.entity.WlyyCustomerLog;
import com.yihu.wlyy.entity.call.CallRecord;
import com.yihu.wlyy.repository.PatientDao;
import com.yihu.wlyy.service.manager.account.CustomerService;
import com.yihu.wlyy.service.manager.hos.HosDoctorService;
import com.yihu.wlyy.service.manager.patient.AdminPatientService;
import com.yihu.wlyy.service.manager.user.UserService;
import com.yihu.wlyy.service.manager.user.WlyyCustomerLogService;
import com.yihu.wlyy.util.DateUtil;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -195,4 +198,126 @@ public class CustomerController extends BaseController {
        return write(-1,"发送失败","data",resp);
    }
    @RequestMapping(value = "/addCallRecord", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "新增电话记录")
    public String addCallRecord(@ApiParam(name="type",value="1.呼入,2.呼出")@RequestParam(required = true)Integer type,
                                 @ApiParam(name="callerNumber",value="呼入号码")@RequestParam(required = true)String callerNumber,
                                 @ApiParam(name="recipientNumber",value="接收号码")@RequestParam(required = true)String recipientNumber,
                                 @ApiParam(name="status",value="接听状态: 1.接通,2. 队列中放弃,3.接通")@RequestParam(required = true)Integer status,
                                 @ApiParam(name="serviceType",value="服务类型")@RequestParam(required = true)Integer serviceType,
                                 @ApiParam(name="serviceContent",value="服务内容")@RequestParam(required = false)String serviceContent){
        try {
            return write(200,"保存成功","data",customerService.addCallRecord( getUID(), type, callerNumber, recipientNumber, status, serviceType, serviceContent));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
    @RequestMapping(value = "/updateCallRecord", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "更新电话记录")
    public String  updateCallRecord(@ApiParam(name="jsonString",value="保存实体json串")@RequestParam(required = true)String jsonString){
        try {
            return write(200,"保存成功","data",customerService.updateCallRecord(jsonString));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
    @RequestMapping(value = "/updateCallRecordEndTime", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "更新电话记录(更新结束时间)")
    public String  updateCallRecordEndTime(@ApiParam(name="jsonString",value="保存实体json串")@RequestParam(required = true)String jsonString){
        try {
            return write(200,"保存成功","data",customerService.updateCallRecordEndTime(jsonString));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
    @RequestMapping(value = "/getCallRecords", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "获取通讯记录列表")
    public String getCallRecords(@ApiParam(name="callerNumber",value="呼叫人电话")@RequestParam(required = true)String callerNumber,
                                 @ApiParam(name="answerStatus",value="接听状态: 1.接通,2. 队列中放弃,3.接通")@RequestParam(required = true)Integer answerStatus,
                                 @ApiParam(name="serviceType",value="服务类型:0.医生咨询,1.预约挂号")@RequestParam(required = true)Integer serviceType ,
                                 @ApiParam(name="startDate",value="开始时间")@RequestParam(required = true)String startDate,
                                 @ApiParam(name="endDate",value="结束时间")@RequestParam(required = true)String endDate,
                                 @ApiParam(name="page",value="第几页,从1开始")@RequestParam(required = true)Integer page,
                                 @ApiParam(name="size",value="页码大小")@RequestParam(required = true)Integer size){
        try {
            return write(200,"保存成功","data",customerService.getCallRecords(callerNumber,answerStatus,serviceType,startDate,endDate,page,size));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
    @RequestMapping(value = "/getCallRecordInfo", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "获取通讯记录详情")
    public String getCallRecordInfo(@ApiParam(name="code",value="通话记录code")@RequestParam(required = true)String code){
        try {
            return write(200,"保存成功","data",customerService.getCallRecordInfo(code));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
    @RequestMapping(value = "/getCallServiceCode", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "获取协同服务编号")
    public String getCallServiceCode(@ApiParam(name="type",value="协同服务类型编号,1为咨询 2为待预约")@RequestParam(required = true)String type){
        try {
            return write(200,"保存成功","data",customerService.getCallServiceCode(type));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
    @RequestMapping(value = "/saveCallService", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "保存协同服务")
    public String saveCallService(@ApiParam(name="type",value="协同服务json串")@RequestParam(required = true)String callServiceJson){
        try {
            return write(200,"保存成功","data",customerService.saveCallService( callServiceJson,getUID()));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
    @RequestMapping(value = "/getCallServices", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "协同服务查询")
    public String getCallServices(@ApiParam(name="keyword",value="姓名或身份证或医保卡号")@RequestParam(required = true)String keyword,
                                  @ApiParam(name="serverType",value="服务类型:0.医生咨询,1.预约挂号")@RequestParam(required = true)Integer serverType,
                                  @ApiParam(name="state",value="订单状态:0.草稿,1.待处理,2.完成")@RequestParam(required = true)Integer state,
                                  @ApiParam(name="patientName",value="患者姓名")@RequestParam(required = true)String patientName,
                                  @ApiParam(name="ssc",value="医保卡号")@RequestParam(required = true)String ssc,
                                  @ApiParam(name="idCard",value="身份证号")@RequestParam(required = true)String idCard,
                                  @ApiParam(name="doctorName",value="医生姓名")@RequestParam(required = true)String doctorName,
                                  @ApiParam(name="code",value="服务编号")@RequestParam(required = true)String code,
                                  @ApiParam(name="startDate",value="开始时间")@RequestParam(required = true)String startDate,
                                  @ApiParam(name="endDate",value="结束时间")@RequestParam(required = true)String endDate,
                                  @ApiParam(name="page",value="第几页,从1开始")@RequestParam(required = true)Integer page,
                                  @ApiParam(name="size",value="每页大小")@RequestParam(required = true)Integer size){
        try {
            return write(200,"保存成功","data",customerService.getCallServices(keyword, serverType,state,patientName,ssc,idCard,doctorName, code, startDate, endDate, page, size));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
    @RequestMapping(value = "/getCallServiceInfo", method = {RequestMethod.GET, RequestMethod.POST})
    @ApiOperation(value = "协同服务详情")
    public String getCallServiceInfo(@ApiParam(name="code",value="协同服务编号")@RequestParam(required = true)String code){
        try {
            return write(200,"保存成功","data",customerService.getCallServiceInfo(code));
        }catch (Exception e){
            error(e);
            return error(-1,"保存失败");
        }
    }
}

File diff suppressed because it is too large
+ 4 - 2
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/Message.java


+ 162 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/call/CallRecord.java

@ -14,6 +14,7 @@ import java.util.Date;
public class CallRecord extends IdEntity {
    private String  code; //业务关联标识
    private Integer type; //1.呼入,2.呼出
    private String  callerNumber; //主叫号码
    private String  recipientNumber;//被叫号码
    private Integer  answerStatus;//接听状态: 1.接通,2. 队列中放弃,3.接通
@ -32,6 +33,7 @@ public class CallRecord extends IdEntity {
    private String  ssc; //社保卡号
    private String  doctor; //签约医生code
    private String  doctorName; //签约医生姓名
    private String  adminTeamCode;
    public String getCode() {
        return code;
@ -40,4 +42,164 @@ public class CallRecord extends IdEntity {
    public void setCode(String code) {
        this.code = code;
    }
    public String getCallerNumber() {
        return callerNumber;
    }
    public void setCallerNumber(String callerNumber) {
        this.callerNumber = callerNumber;
    }
    public String getRecipientNumber() {
        return recipientNumber;
    }
    public void setRecipientNumber(String recipientNumber) {
        this.recipientNumber = recipientNumber;
    }
    public Integer getAnswerStatus() {
        return answerStatus;
    }
    public void setAnswerStatus(Integer answerStatus) {
        this.answerStatus = answerStatus;
    }
    public Integer getServiceType() {
        return serviceType;
    }
    public void setServiceType(Integer serviceType) {
        this.serviceType = serviceType;
    }
    public String getServiceContent() {
        return serviceContent;
    }
    public void setServiceContent(String serviceContent) {
        this.serviceContent = serviceContent;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getEndTime() {
        return endTime;
    }
    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public Date getCallTime() {
        return callTime;
    }
    public void setCallTime(Date callTime) {
        this.callTime = callTime;
    }
    public String getTalkTime() {
        return talkTime;
    }
    public void setTalkTime(String talkTime) {
        this.talkTime = talkTime;
    }
    public String getUserCode() {
        return userCode;
    }
    public void setUserCode(String userCode) {
        this.userCode = userCode;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getIdcard() {
        return idcard;
    }
    public void setIdcard(String idcard) {
        this.idcard = idcard;
    }
    public String getSsc() {
        return ssc;
    }
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getAdminTeamCode() {
        return adminTeamCode;
    }
    public void setAdminTeamCode(String adminTeamCode) {
        this.adminTeamCode = adminTeamCode;
    }
}

+ 250 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/call/CallService.java

@ -34,6 +34,16 @@ public class CallService extends IdEntity {
    private Integer dealState; // 处理结果:1.完成,2.无法联系居民
    private String dealContent; // 处理内容
    private Integer dealReason; // 处理取消原因:0.没有号源、1.病人取消
    private String orderHospital; //预约医院code
    private String orderHospitalName; //预约医院
    private String orderDept; //预约科室code
    private String orderDeptName; //预约科室名称
    private String orderDoctor; //预约医生code
    private String orderDoctorName; //预约医生名称
    private String orderTime; //预约时间段
    private String user; //创建人
    private String userName; //创建人
    private String adminTeamCode; //团队id
    public String getCode() {
        return code;
@ -42,4 +52,244 @@ public class CallService extends IdEntity {
    public void setCode(String code) {
        this.code = code;
    }
    public String getCallCode() {
        return callCode;
    }
    public void setCallCode(String callCode) {
        this.callCode = callCode;
    }
    public Integer getServerType() {
        return serverType;
    }
    public void setServerType(Integer serverType) {
        this.serverType = serverType;
    }
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getPatientName() {
        return patientName;
    }
    public void setPatientName(String patientName) {
        this.patientName = patientName;
    }
    public String getSsc() {
        return ssc;
    }
    public void setSsc(String ssc) {
        this.ssc = ssc;
    }
    public String getIdcard() {
        return Idcard;
    }
    public void setIdcard(String idcard) {
        Idcard = idcard;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
    public String getServerContent() {
        return serverContent;
    }
    public void setServerContent(String serverContent) {
        this.serverContent = serverContent;
    }
    public Integer getState() {
        return state;
    }
    public void setState(Integer state) {
        this.state = state;
    }
    public Date getCreateTime() {
        return createTime;
    }
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }
    public Date getUpdateTime() {
        return updateTime;
    }
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }
    public String getRemark() {
        return remark;
    }
    public void setRemark(String remark) {
        this.remark = remark;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public Integer getDealType() {
        return dealType;
    }
    public void setDealType(Integer dealType) {
        this.dealType = dealType;
    }
    public Date getDealTime() {
        return dealTime;
    }
    public void setDealTime(Date dealTime) {
        this.dealTime = dealTime;
    }
    public Integer getDealState() {
        return dealState;
    }
    public void setDealState(Integer dealState) {
        this.dealState = dealState;
    }
    public String getDealContent() {
        return dealContent;
    }
    public void setDealContent(String dealContent) {
        this.dealContent = dealContent;
    }
    public Integer getDealReason() {
        return dealReason;
    }
    public void setDealReason(Integer dealReason) {
        this.dealReason = dealReason;
    }
    public String getOrderHospital() {
        return orderHospital;
    }
    public void setOrderHospital(String orderHospital) {
        this.orderHospital = orderHospital;
    }
    public String getOrderHospitalName() {
        return orderHospitalName;
    }
    public void setOrderHospitalName(String orderHospitalName) {
        this.orderHospitalName = orderHospitalName;
    }
    public String getOrderDept() {
        return orderDept;
    }
    public void setOrderDept(String orderDept) {
        this.orderDept = orderDept;
    }
    public String getOrderDeptName() {
        return orderDeptName;
    }
    public void setOrderDeptName(String orderDeptName) {
        this.orderDeptName = orderDeptName;
    }
    public String getOrderDoctor() {
        return orderDoctor;
    }
    public void setOrderDoctor(String orderDoctor) {
        this.orderDoctor = orderDoctor;
    }
    public String getOrderDoctorName() {
        return orderDoctorName;
    }
    public void setOrderDoctorName(String orderDoctorName) {
        this.orderDoctorName = orderDoctorName;
    }
    public String getOrderTime() {
        return orderTime;
    }
    public void setOrderTime(String orderTime) {
        this.orderTime = orderTime;
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getUser() {
        return user;
    }
    public void setUser(String user) {
        this.user = user;
    }
    public String getAdminTeamCode() {
        return adminTeamCode;
    }
    public void setAdminTeamCode(String adminTeamCode) {
        this.adminTeamCode = adminTeamCode;
    }
}

+ 13 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/call/CallRecordDao.java

@ -0,0 +1,13 @@
package com.yihu.wlyy.repository.call;
import com.yihu.wlyy.entity.call.CallRecord;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/**
 * Created by Trick on 2017/11/9.
 */
public interface CallRecordDao extends PagingAndSortingRepository<CallRecord, Long>, JpaSpecificationExecutor<CallRecord> {
    CallRecord findByCode(String code);
}

+ 18 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/call/CallServiceDao.java

@ -0,0 +1,18 @@
package com.yihu.wlyy.repository.call;
import com.yihu.wlyy.entity.call.CallRecord;
import com.yihu.wlyy.entity.call.CallService;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Trick on 2017/11/9.
 */
public interface CallServiceDao extends PagingAndSortingRepository<CallService, Long>, JpaSpecificationExecutor<CallRecord> {
    List<CallService> findByCallCodeAndType(String callCode,Integer type);
    CallService findByCode(String code);
}

+ 283 - 8
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/service/manager/account/CustomerService.java

@ -1,12 +1,22 @@
package com.yihu.wlyy.service.manager.account;
import com.yihu.wlyy.entity.Doctor;
import com.yihu.wlyy.entity.Patient;
import com.yihu.wlyy.entity.SignFamily;
import com.yihu.wlyy.entity.*;
import com.yihu.wlyy.entity.call.CallRecord;
import com.yihu.wlyy.entity.call.CallService;
import com.yihu.wlyy.repository.MessageDao;
import com.yihu.wlyy.repository.PatientDao;
import com.yihu.wlyy.repository.UserDao;
import com.yihu.wlyy.repository.call.CallRecordDao;
import com.yihu.wlyy.repository.call.CallServiceDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.manager.family.FamilyMemberService;
import com.yihu.wlyy.service.manager.hos.HosDoctorService;
import com.yihu.wlyy.service.manager.sign.FamilyContractService;
import com.yihu.wlyy.service.manager.sign.SignFamilyService;
import com.yihu.wlyy.util.DateUtil;
import com.yihu.wlyy.util.HttpClientUtil;
import io.swagger.models.auth.In;
import org.apache.commons.collections.map.HashedMap;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.NameValuePair;
import org.apache.http.message.BasicNameValuePair;
@ -15,15 +25,13 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
@Service
public class CustomerService{
public class CustomerService extends BaseService{
	@Autowired
	private FamilyMemberService familyMemberService;
@ -31,6 +39,20 @@ public class CustomerService{
	private FamilyContractService contractService;
	@Autowired
	private HosDoctorService hosDoctorService;
	@Autowired
	private CallRecordDao callRecordDao;
	@Autowired
	private CallServiceDao callServiceDao;
	@Autowired
	private PatientDao patientDao;
	@Autowired
	private SignFamilyService familyService;
	@Autowired
	private UserDao userDao;
	@Autowired
	private JdbcTemplate jdbcTemplate;
	@Autowired
	private MessageDao messageDao;
	@Value(("${doctorAssistant.api}")+"/wlyygc/doctor/message")
	private String messageApi;
@ -160,4 +182,257 @@ public class CustomerService{
		}
		return resp;
	}
	public Map<String,Object> addCallRecord(String user,Integer type,String callerNumber,String recipientNumber,Integer status,Integer serviceType,String serviceContent){
		List<Patient> list =  patientDao.findByMobile(callerNumber);
		Map<String,Object> rs = new HashedMap();
		Patient p ;
		if(list!=null||list.size()==0){
			rs.put("state",-1);
			rs.put("mes","未找到患者信息");
			rs.put("callRecord",null);
			return rs;
		}else{
			p = list.get(0);
		}
		SignFamily sf = familyService.findByPatientCode(p.getCode());
		User u = userDao.findByCode(user);
		CallRecord callRecord = new CallRecord();
		callRecord.setType(type);
		callRecord.setCode(getCode());
		callRecord.setCallerNumber(callerNumber);
		callRecord.setRecipientNumber(recipientNumber);
		callRecord.setAnswerStatus(status);
		callRecord.setServiceType(serviceType);
		callRecord.setServiceContent(serviceContent);
		callRecord.setCreateTime(new Date());
		callRecord.setCallTime(new Date());
		callRecord.setUserCode(user);
		callRecord.setUserName(u.getName());
		callRecord.setPatient(p.getCode());
		callRecord.setPatientName(p.getName());
		callRecord.setIdcard(p.getIdcard());
		callRecord.setSsc(p.getSsc());
		callRecord.setDoctor(sf.getDoctor());
		callRecord.setDoctorName(sf.getDoctorName());
		CallRecord temp = callRecordDao.save(callRecord);
		rs.put("state",1);
		rs.put("mes","保存成功");
		rs.put("callRecord",temp);
		return rs;
	}
	public String  updateCallRecord(String jsonString){
		net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(jsonString);
		CallRecord callRecord =(CallRecord)net.sf.json.JSONObject.toBean(json,CallRecord.class);
		callRecordDao.save(callRecord);
		return "1";
	}
	public String  updateCallRecordEndTime(String jsonString){
		net.sf.json.JSONObject json = net.sf.json.JSONObject.fromObject(jsonString);
		CallRecord callRecord =(CallRecord)net.sf.json.JSONObject.toBean(json,CallRecord.class);
		callRecord.setEndTime(new Date());
		callRecord.setTalkTime(DateUtil.getTimeDifference(callRecord.getCreateTime(),callRecord.getEndTime()));
		callRecordDao.save(callRecord);
		return "1";
	}
	public List<Map<String,Object>> getCallRecords(String callerNumber,Integer answerStatus,Integer serviceType ,String startDate,String endDate,Integer page,Integer size){
		String sql = "SELECT " +
				" r.type, " +
				" r.caller_number AS callerNumber, " +
				" r.recipient_number AS recipientNumber, " +
				" r.call_time AS callTime, " +
				" r.talk_time AS talkTime, " +
				" r.answer_status AS answerStatus, " +
				" r.service_type AS serviceType, " +
				" r.user_name AS userName, " +
				" r.user_code AS userCode " +
				" FROM " +
				" manage_call_record r " +
				" WHERE " +
				" 1 = 1 ";
		if(StringUtils.isNotBlank(callerNumber)){
			sql +=" AND r.caller_number = '"+callerNumber+"'";
		}
		if(answerStatus!=null){
			sql += " AND r.answer_status = "+answerStatus ;
		}
		if(serviceType!=null){
			sql += " AND r.service_type = " +serviceType;
		}
		if(StringUtils.isNotBlank(startDate)){
			sql +=" AND r.call_time >='"+startDate+" 00:00:00'";
		}
		if(StringUtils.isNotBlank(endDate)){
			sql +=" AND r.call_time <='"+endDate+" 23:59:59'";
		}
		sql += " LIMIT "+(page-1)*size+","+size +" ORDER BY r.call_time DESC";
		List<Map<String,Object>> rs = jdbcTemplate.queryForList(sql);
		return rs;
	}
	public Map<String,Object> getCallRecordInfo(String code){
		CallRecord callRecord = callRecordDao.findByCode(code);
		List<CallService> consultService = callServiceDao.findByCallCodeAndType(code,0);
		List<CallService> orderService = callServiceDao.findByCallCodeAndType(code,1);
		Map<String,Object> rs = new HashedMap();
		rs.put("callRecord",callRecord);
		rs.put("consultService",consultService);
		rs.put("orderService",orderService);
		return rs;
	}
	public String getCallServiceCode(String type){
		/**
		 * 服务编号规则:协同服务类型编号+YYMMddhhmmss+编号
		 * 协同服务类型编号:01预约挂号,02咨询医生
		 * YYMMDDHHMMSS:创建时间,例子20170901010101
		 * 编号:4位,当天累计协同服务数,按顺序+1
		 */
		String head ;
		if("1".equals(type)){
			head = "01";
		}else{
			head = "02";
		}
		String time = DateUtil.getStringDate("YYYYMMDDHHmmss");
		String sql = "SElECT count(1) AS total FROM manage_call_service s WHERE s.create_time >='"+DateUtil.getStringDate("yyyy-MM-ss")+" 00:00:00'";
		List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
		String count ;
		if(list!=null&&list.size()>0){
			Map<String,Object> map = list.get(0);
			Long c = (Long) map.get("total");
			count =c.toString();
		}else{
			count = "0000";
		}
		if(count.length()==1){
			count = "000"+count;
		}else if(count.length()==2){
			count = "00"+count;
		}else if(count.length()==3){
			count = "0"+count;
		}else if(count.length()==4){
			count = count;
		}else{
			count = count.substring(0,3);
		}
		return head+time+count;
	}
	public String saveCallService(String callServiceJson,String user){
		net.sf.json.JSONObject jsonObject = net.sf.json.JSONObject.fromObject(callServiceJson);
		CallService callService =  (CallService)net.sf.json.JSONObject.toBean(jsonObject);
		callService.setUser(user);
		User u = userDao.findByCode(user);
		callService.setUserName(u.getName());
		callServiceDao.save(callService);
		//待处理发送消息给医生
		if(callService.getState()==1){
			Patient p = patientDao.findByCode(callService.getPatient());
			// 添加签约消息
			Message message = new Message();
			message.setCzrq(new Date());
			message.setCreateTime(new Date());
			message.setContent("您有一条新的协同服务消息!");
			message.setRead(1);//设置未读
			message.setReceiver(callService.getDoctor());//设置接受医生的code
			message.setSender(callService.getPatient());//设置发送的用户
			message.setSenderName(callService.getPatientName());
			message.setCode(getCode());
			message.setSenderPhoto(p.getPhoto());
			message.setTitle("协同服务消息");
			message.setType(11);//协同服务消息
			message.setReadonly(1);//是否只读消息
			message.setSex(p.getSex());
			message.setOver("1");//未处理
			messageDao.save(message);
		}
		return "1";
	}
	public List<Map<String,Object>> getCallServices(String keyword, Integer serverType,Integer state,String patientName,String ssc,String idCard,String doctorName,String code,String startDate,String endDate,Integer page,Integer size){
		String sql = "SELECT " +
				" s.`code`, " +
				" s.patient, " +
				" s.patient_name AS patientName, " +
				" s.doctor, " +
				" s.doctor_name AS doctorName, " +
				" s.server_type As serverType, " +
				" s.state, " +
				" s.server_content AS serverContent, " +
				" s.create_time AS createTime, " +
				" s.user, " +
				" s.user_name AS userName " +
				" FROM " +
				" manage_call_service s " +
				" WHERE " +
				" 1 = 1";
		if(StringUtils.isNotBlank(keyword)){
			sql +=" AND (s.patient_name = '"+keyword+"' OR s.ssc ='"+keyword+"' OR s.Idcard ='"+keyword+"')";
		}
		if(serverType!=null){
			sql += " AND s.server_type ='"+serverType+"' " ;
		}
		if(state != null){
			sql +=" AND s.state ='"+state+"'";
		}
		if(StringUtils.isNotBlank(patientName)){
			sql +=" AND s.patient_name ='"+patientName+"'" ;
		}
		if(StringUtils.isNotBlank(ssc)){
			sql +=" AND s.ssc ='"+ssc+"'" ;
		}
		if(StringUtils.isNotBlank(idCard)){
			sql +=" AND s.IdCard ='"+idCard+"'" ;
		}
		if(StringUtils.isNotBlank(doctorName)){
			sql +=" AND s.doctor_name ='"+doctorName+"'" ;
		}
		if(StringUtils.isNotBlank(code)){
			sql +=" AND s.code ='"+code+"'" ;
		}
		if(StringUtils.isNotBlank(startDate)){
			sql +=" AND s.create_time >='"+startDate+" 00:00:00'" ;
		}
		if(StringUtils.isNotBlank(endDate)){
			sql +=" AND s.create_time <='"+endDate+" 23:59:59'" ;
		}
		sql += " LIMIT "+(page-1)*size+","+size +" ORDER BY r.create_time DESC";
		List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
		return list;
	}
	public Map<String,Object> getCallServiceInfo(String code){
		CallService callService = callServiceDao.findByCode(code);
		CallRecord callRecord = callRecordDao.findByCode(callService.getCallCode());
		Map<String,Object> rs = new HashedMap();
		rs.put("callService",callService);
		rs.put("callRecord",callRecord);
		return rs;
	}
}

+ 9 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/util/DateUtil.java

@ -680,6 +680,15 @@ public class DateUtil {
		return localDate.getYear()+"年"+localDate.getMonth().getValue()+"月"+localDate.getDayOfMonth()+"日";
	}
	public static String  getTimeDifference(Date date1,Date date2){
		long l = date2.getTime() - date1.getTime();
		long day = l / (24 * 60 * 60 * 1000);
		long hour = (l / (60 * 60 * 1000) - day * 24);
		long min = ((l / (60 * 1000)) - day * 24 * 60 - hour * 60);
		long s = (l / 1000 - day * 24 * 60 * 60 - hour * 60 * 60 - min * 60);
		return hour + ":" + min +":" + s;
	}
//	public static void main(String[] args) {
//		String hour = "12:22:12";
//		System.out.println(Time.valueOf(hour));

+ 65 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/entity/prescription/Prescription.java

@ -89,6 +89,15 @@ public class Prescription extends IdEntity {
    private Integer jwPayStatus;//处方结算状态,0为未结算,1为结算成功,默认为0
    //1.4.0新增字段
    private Integer drugDeliveryFlag;   //是否异常出药0为正常 1为异常
    private String drugDeliveryReasonCode; //原因字典对应Code
    private String drugDeliveryReasonValue; //原因字典对应Name
    private String drugDeliveryReason; //详细原因
    private String drugDeliveryOperator; //操作人员code
    private String drugDeliveryOperatorName; //操作人员名字
    private Date drugDeliveryTime; //出药时间
    @Column(name = "code", unique = true, nullable = false)
    public String getCode() {
        return code;
@ -651,4 +660,60 @@ public class Prescription extends IdEntity {
    public void setJwPayStatus(Integer jwPayStatus) {
        this.jwPayStatus = jwPayStatus;
    }
    public Integer getDrugDeliveryFlag() {
        return drugDeliveryFlag;
    }
    public void setDrugDeliveryFlag(Integer drugDeliveryFlag) {
        this.drugDeliveryFlag = drugDeliveryFlag;
    }
    public String getDrugDeliveryReasonCode() {
        return drugDeliveryReasonCode;
    }
    public void setDrugDeliveryReasonCode(String drugDeliveryReasonCode) {
        this.drugDeliveryReasonCode = drugDeliveryReasonCode;
    }
    public String getDrugDeliveryReasonValue() {
        return drugDeliveryReasonValue;
    }
    public void setDrugDeliveryReasonValue(String drugDeliveryReasonValue) {
        this.drugDeliveryReasonValue = drugDeliveryReasonValue;
    }
    public String getDrugDeliveryReason() {
        return drugDeliveryReason;
    }
    public void setDrugDeliveryReason(String drugDeliveryReason) {
        this.drugDeliveryReason = drugDeliveryReason;
    }
    public String getDrugDeliveryOperator() {
        return drugDeliveryOperator;
    }
    public void setDrugDeliveryOperator(String drugDeliveryOperator) {
        this.drugDeliveryOperator = drugDeliveryOperator;
    }
    public String getDrugDeliveryOperatorName() {
        return drugDeliveryOperatorName;
    }
    public void setDrugDeliveryOperatorName(String drugDeliveryOperatorName) {
        this.drugDeliveryOperatorName = drugDeliveryOperatorName;
    }
    public Date getDrugDeliveryTime() {
        return drugDeliveryTime;
    }
    public void setDrugDeliveryTime(Date drugDeliveryTime) {
        this.drugDeliveryTime = drugDeliveryTime;
    }
}

+ 1 - 1
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/prescription/PrescriptionService.java

@ -340,7 +340,7 @@ public class PrescriptionService extends ZysoftBaseService{
                Prescription prescription = prescriptionDao.findByVisitNoAndRecipeNo(orderNo,recipeNo);
                if(prescription.getStatus().equals(PrescriptionLog.PrescriptionLogStatus.pay_success.getValue())){
                    prescription.setStatus(PrescriptionLog.PrescriptionLogStatus.wait_expressage.getValue());
                    prescription.setDrugDeliveryTime(new Date());
                    prescriptionDao.save(prescription);
                    //新增log表

+ 2 - 2
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -1302,8 +1302,8 @@ public class FamilyContractService extends BaseService {
            }
            // 更新签约日期
            sf.setBegin(DateUtil.stringToDate(DateUtil.getSignYear() + "-07-01 00:00:00", "yyyy-MM-dd HH:mmm:ss"));
            sf.setEnd(DateUtil.stringToDate(DateUtil.getSignYear() + 1 + "-07-01 00:00:00", "yyyy-MM-dd HH:mmm:ss"));
            sf.setBegin(new Date());
            sf.setEnd(DateUtil.stringToDate(DateUtil.getSignYear() + 1 + "-06-30 00:00:00", "yyyy-MM-dd HH:mmm:ss"));
            // 改为签约生效

+ 2 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/sign/FamilyContractService.java

@ -1089,7 +1089,7 @@ public class FamilyContractService extends BaseService {
//        }
        // 更新签约日期
        sf.setBegin(DateUtil.stringToDate(DateUtil.getSignYear() + "-07-01 00:00:00", "yyyy-MM-dd HH:mmm:ss"));
        sf.setBegin(new Date());
        sf.setEnd(DateUtil.stringToDate(DateUtil.getSignYear() + 1 + "-06-30 23:59:59", "yyyy-MM-dd HH:mmm:ss"));
        sf.setOpenid(patient.getOpenid());
@ -1380,7 +1380,7 @@ public class FamilyContractService extends BaseService {
            // 更新签约日期
            //sf.setBegin(DateUtil.stringToDate(DateUtil.getSignYear() + "-07-01 00:00:00", "yyyy-MM-dd HH:mmm:ss"));
            sf.setBegin(new Date());
            sf.setEnd(DateUtil.stringToDate(DateUtil.getSignYear() + 1 + "-07-01 00:00:00", "yyyy-MM-dd HH:mmm:ss"));
            sf.setEnd(DateUtil.stringToDate(DateUtil.getSignYear() + 1 + "-06-30 23:59:59", "yyyy-MM-dd HH:mmm:ss"));
            // 改为签约生效