Bläddra i källkod

Merge branch 'dev' of http://192.168.1.220:10080/Amoy/patient-co-management into dev

trick9191 7 år sedan
förälder
incheckning
edb1c76cdb

+ 11 - 0
common/common-entity/src/main/java/com/yihu/es/entity/HealthEduArticleES.java

@ -9,6 +9,7 @@ import org.springframework.data.annotation.Transient;
import java.util.Date;
import java.util.List;
import java.util.Set;
/**
 * 推送记录表
@ -66,6 +67,8 @@ public class HealthEduArticleES {
    @Transient
    private Boolean newArricleFlag;//新版文章推送标志(不保存ES)
    @Transient
    private Set<String> openidSet;//本次发送文章的openid的总集合
    //说明:如医生推送文章给5个居民,则保存5条userType=1的记录和1条userType=2的记录(共6条)
    //业务需求:userType=1为居民被推送文章列表;userType=2医生推送的文章列表;
@ -396,4 +399,12 @@ public class HealthEduArticleES {
    public HealthEduArticleES() {
    }
    public Set<String> getOpenidSet() {
        return openidSet;
    }
    public void setOpenidSet(Set<String> openidSet) {
        this.openidSet = openidSet;
    }
}

+ 1 - 0
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/manager/healthbank/TaskRuleController.java

@ -72,6 +72,7 @@ public class TaskRuleController extends BaseController {
            @RequestParam(value = "page",required = false) Integer page,
            @RequestParam(value = "rows",required = false) Integer pageSize){
        try{
            taskRule = "{" + taskRule + "}";
            if(StringUtils.isNotBlank(name)){
                taskRule = taskRule.replace("}",",\"name\":"+name+"}");
            }

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/webapp/WEB-INF/views/healthbank/task_modify_js.jsp

@ -96,7 +96,7 @@
                            async:false,
                            dataType : "json",
                            // method: "post",
                            url: ctx + "/admin/taskRule/list?taskRule={\"status\":\"1\"}&page=1&rows=20",
                            url: ctx + '/admin/taskRule/list?taskRule="status":1&page=1&rows=20',
                            // data: {"taskRule":"{\"status\":\"1\"}","page":1,"rows":20},
                            processResults: function (data, page) {
                                if(data.status==200) {

+ 2 - 6
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/activemq/HealthArtListener.java

@ -153,7 +153,7 @@ public class HealthArtListener implements MessageListener {
                        json);
            }
            //发送代理人
            JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(patient.getCode(), patient.getOpenid());
            JSONArray jsonArray = weiXinOpenIdUtils.getAgentOpenId(patient.getCode(), one.getOpenidSet());
            if (jsonArray != null && jsonArray.length() > 0) {
                for (int i = 0; i < jsonArray.length(); i++) {
                    org.json.JSONObject j = jsonArray.getJSONObject(i);
@ -161,11 +161,7 @@ public class HealthArtListener implements MessageListener {
                    json.remove("toUser");
                    json.put("toUser", member.getCode());
                    json.remove("first");
                    try {
                        json.put("first", weiXinOpenIdUtils.getTitleMes(patient, j.isNull("relation") ? 1 : j.getInt("relation"), patient.getName()));
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    json.put("first", weiXinOpenIdUtils.getTitleMes(patient, j.isNull("relation") ? 1 : j.getInt("relation"), patient.getName()));
                    if (StringUtils.isNotBlank(member.getOpenid())) {
                        pushMsgTask.putWxMsg(weiXinAccessTokenUtils.getAccessToken(), 9, member.getOpenid(), patient.getName(), json);
                    }

+ 32 - 5
patient-co/patient-co-wlyy-job/src/main/java/com/yihu/wlyy/wechat/util/WeiXinOpenIdUtils.java

@ -11,10 +11,7 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.*;
/**
 * Created by Trick on 2017/4/20.
@ -132,8 +129,38 @@ public class WeiXinOpenIdUtils {
        return result;
    }
    /**
     * 查找代理人的openId
     * @param code
     * @return
     */
    public JSONArray getAgentOpenId(String code,Set<String> openidSet) {
        JSONArray result = new JSONArray();
        StringBuffer sql = new StringBuffer("SELECT * FROM wlyy_patient_family_member t WHERE t.patient = '" + code + "' and t.is_authorize =1 ");
        List<Map<String, Object>> members = jdbcTemplate.queryForList(sql.toString());
        if (members != null && members.size() > 0) {
            for (Map<String, Object> member : members) {
                String memberCode = (String) member.get("family_member");
                if (StringUtils.isNotBlank(memberCode)) {
                    Patient p = patientDao.findByCode(memberCode);
                    if (StringUtils.isNotBlank(p.getOpenid())&&!openidSet.contains(p.getOpenid())) {
                        openidSet.add(p.getOpenid());
                        JSONObject json = new JSONObject();
                        json.put("member", p);
                        json.put("relation", (int) member.get("family_relation"));
                        result.put(json);
                    }
                }
            }
        }
        return result;
    }
    public String getTitleMes(Patient p, int ralation, String dealerName) throws Exception {
        return "因您是" + relations.get(familyRelationTrans(p, ralation)) + p.getName() + "的代理人,故请将该消息传达给" + dealerName + ":";
//        return "因您是" + relations.get(familyRelationTrans(p, ralation)) + p.getName() + "的代理人,故请将该消息传达给" + dealerName + ":";
        return "因您是家人"  + p.getName() + "的代理人,故请将该消息传达给" + dealerName + ":";
    }
    /**

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 2 - 3
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/bank/CreditLogService.java


+ 9 - 5
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/app/health/bank/TaskService.java

@ -152,6 +152,7 @@ public class TaskService {
     */
    public JSONObject attendTask(JSONObject object) throws Exception {
        String response = null;
        logger.info(object.toJSONString());
        String patientId = object.getString("patientId");
        SignFamily signFamily = signFamilyDao.findByPatient(patientId);
        if (signFamily == null){
@ -161,13 +162,16 @@ public class TaskService {
        }
        Patient patient = patientDao.findByCode(patientId);
        String unionId = object.getString("unionId");
        if(StringUtils.isNoneBlank(patient.getUnionid())){
            throw new Exception("该居民已报名!");
        }else {
            Patient patient1 = patientDao.findByUnionid(unionId);
            if (patient1 != null){
        logger.info("前端unionId:"+unionId);
        String sql = "select * from wlyy.wlyy_patient p RIGHT JOIN wlyy_health_bank.wlyy_health_bank_task_patient_detail btpd ON p.code = btpd.patient_id where union_id = '"+patient.getUnionid()+
                "' and activity_id = '"+ object.getString("activityId")+"' and patient_idcard ='"+patient.getIdcard()+"'";
        List<Patient> patientList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(Patient.class));
        if (patientList != null && patientList.size()!=0){
            Patient patient1 = patientList.get(0);
            if(StringUtils.isNoneBlank(patient.getUnionid())&&patient1!=null){
                throw new Exception("该居民已报名!");
            }
        }else {
            patient.setUnionid(unionId);
            patientDao.save(patient);
        }

+ 15 - 2
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/jimeiJkEdu/JMJkEduArticleService.java

@ -370,8 +370,7 @@ public class JMJkEduArticleService extends BaseService {
                                                     String currentUserRoleCode,
                                                     String currentUserRoleLevel) throws Exception {
        Set<String> openidSet = getOpenid(patientSet);
        List<HealthEduArticleES> healthEduArticleESList = new ArrayList<>();
        Doctor doctor = doctorDao.findByCode(sendCode);
        AdminTeam adminTeam =null;
@ -473,6 +472,7 @@ public class JMJkEduArticleService extends BaseService {
//            healthEduArticleES.setSendSource();
            healthEduArticleES.setAllCount(patientSet.size());
            healthEduArticleES.setUserType(1);
            healthEduArticleES.setOpenidSet(openidSet);
            healthEduArticleESList.add(healthEduArticleES);
        }
@ -1490,4 +1490,17 @@ public class JMJkEduArticleService extends BaseService {
//        List<HealthEduArticleES> esList = elasticsearchUtil.excute(sql.toString(),HealthEduArticleES.class, esIndex, esType);
//        return esList;
//    }
    public Set<String> getOpenid(Set<String> patientSet){
        Set<String> openidSet = new HashSet<>(patientSet);
        Patient one = null;
        for (String patient : patientSet) {
            one = patientDao.findByCode(patient);
            if(one==null){
                continue;
            }
            openidSet.add(one.getOpenid());
        }
        return openidSet;
    }
}

+ 19 - 12
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/kit/KitService.java

@ -2,6 +2,7 @@ package com.yihu.wlyy.service.kit;
import com.yihu.device.entity.DeviceDetail;
import com.yihu.wlyy.entity.device.PatientDevice;
import com.yihu.wlyy.entity.device.PatientDeviceLog;
import com.yihu.wlyy.entity.kit.KitDrugDetail;
import com.yihu.wlyy.entity.kit.KitDrugUseRecord;
import com.yihu.wlyy.entity.kit.KitUseRemindRecord;
@ -12,6 +13,7 @@ import com.yihu.wlyy.repository.kit.KitDrugUseRecordDao;
import com.yihu.wlyy.repository.kit.KitUseRemindRecordDao;
import com.yihu.wlyy.repository.patient.PatientDao;
import com.yihu.wlyy.repository.patient.PatientDeviceDao;
import com.yihu.wlyy.repository.patient.PatientDeviceLogDao;
import com.yihu.wlyy.service.BaseService;
import com.yihu.wlyy.service.common.account.PatientService;
import com.yihu.wlyy.service.third.kit.JyKitService;
@ -57,6 +59,8 @@ public class KitService extends BaseService {
    private PatientDeviceDao patientDeviceDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private PatientDeviceLogDao patientDeviceLogDao;
    private String format = "yyyy-MM-dd HH:mm";
    private String format2 = "HH:mm" ;
@ -97,7 +101,7 @@ public class KitService extends BaseService {
            }
            deviceDetail = deviceDetailDao.save(deviceDetail);
            patientDevice = new PatientDevice();
            patientDevice.setDeviceId(deviceDetail.getId());
            patientDevice.setDeviceId(7L);//dm_device设备类型表的id
            patientDevice.setDeviceSn(deviceDetail.getDeviceCode());
            patientDevice.setDeviceName(deviceDetail.getDeviceName());
            patientDevice.setUser(patientCode);
@ -113,17 +117,7 @@ public class KitService extends BaseService {
                throw new Exception(" 数据库中没有该设备!");
            }
        }
        //添加绑定关系
//        PatientDevice patientDevice = new PatientDevice();
//        patientDevice.setDeviceId(deviceDetail.getId());
//        patientDevice.setDeviceSn(deviceDetail.getDeviceCode());
//        patientDevice.setDeviceName(deviceDetail.getDeviceName());
//        patientDevice.setUser(patientCode);
//        patientDevice.setCategoryCode("3");
//        patientDevice.setUserType("-1");
//        patientDevice.setUserIdcard(patient.getIdcard());
//        patientDevice.setCzrq(new Date());
        String typeTemp = type;
        if("1".equals(type)){
            type="0";
        }else if("2".equals(type)){
@ -131,6 +125,19 @@ public class KitService extends BaseService {
        }
        patientDevice.setDel(Integer.valueOf(type));
        patientDeviceDao.save(patientDevice);
        //由于PatientDevice绑定关系是物理删除,所以添加PatientDeviceLog绑定记录
        PatientDeviceLog patientDeviceLog = new PatientDeviceLog();
        patientDeviceLog.setDeviceId(7L);//dm_device设备类型表的id
        patientDeviceLog.setPatient(patientDevice.getUser());
        patientDeviceLog.setCategoryCode(patientDevice.getCategoryCode());
        patientDeviceLog.setDeviceName(patientDevice.getDeviceName());
        patientDeviceLog.setDeviceSn(patientDevice.getDeviceSn());
        patientDeviceLog.setRole(1);
        patientDeviceLog.setOperateCode(Integer.valueOf(typeTemp));
        patientDeviceLog.setAgreementPhoto(patientDevice.getAgreementPhoto());
        patientDeviceLog.setCreateTime(new Date());
        patientDeviceLog.setIsDel(1);
        patientDeviceLogDao.save(patientDeviceLog);
    }
    /**

+ 86 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/data/DataHandingService.java

@ -10,6 +10,7 @@ import com.yihu.wlyy.entity.device.PatientDeviceLog;
import com.yihu.wlyy.entity.doctor.profile.Doctor;
import com.yihu.wlyy.entity.manage.User;
import com.yihu.wlyy.entity.patient.Patient;
import com.yihu.wlyy.health.repository.DeviceDetailDao;
import com.yihu.wlyy.repository.doctor.DoctorDao;
import com.yihu.wlyy.repository.manage.UserDao;
import com.yihu.wlyy.repository.patient.PatientDao;
@ -64,6 +65,8 @@ public class DataHandingService {
    private JdbcTemplate jdbcTemplate;
    @Autowired
    private CreditLogService creditLogService;
    @Autowired
    private DeviceDetailDao deviceDetailDao;
    @Transactional
    public String producePatientAndDoctorPassword() {
@ -506,6 +509,89 @@ public class DataHandingService {
                logger.info("添加积分失败!");
            }
        }
    }
    /**
     * 导入药盒绑定设备的数据
     * @throws Exception
     */
    public List<String> importKitInfo(Integer batch)throws Exception{
        String sql = " select * from wlyy.kit_bind_info_temp where batch="+batch;
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sql);
        List<String> errorList = new ArrayList<>();
        for(Map<String,Object> one:mapList){
            String name = one.get("name").toString();//居民名称
            String idcard = one.get("idcard").toString();//居民身份证
            String kitSn = one.get("kit_sn").toString();//药盒sn码
            String deviceType = one.get("device_type").toString();//药盒设备型号
            Patient patient = patientDao.findByIdcard(idcard);
            if(patient==null){//身份证不匹配
                errorList.add(kitSn);
                continue;
            }
            DeviceDetail deviceDetail = deviceDetailDao.findBySn(kitSn);
            if(deviceDetail==null){
                //添加设备
                deviceDetail = new DeviceDetail();
            }
            deviceDetail.setDeviceModel(deviceType);//设备型号
            deviceDetail.setDeviceName("巨烨科技智能药盒");
            deviceDetail.setDeviceCode(kitSn);
            deviceDetail.setLinkman(patient.getName());
            //通过签约关系获取团队信息,有则添加。
            String sql2 = " select f.* from wlyy_sign_family f where f.idcard='"+idcard+"' and f.status=1 ";
            List<Map<String, Object>> signFamilys1 = jdbcTemplate.queryForList(sql2);
            if(signFamilys1.size()>0){
                deviceDetail.setOrgName(signFamilys1.get(0).get("hospital_name")+"");
                deviceDetail.setGrantAdminTeam(signFamilys1.get(0).get("admin_team_code")+"");
                deviceDetail.setGrantOrgCode(signFamilys1.get(0).get("hospital")+"");
            }
            deviceDetail.setTel(patient.getMobile());
            deviceDetail.setGrantTime(new Date());
            deviceDetail = deviceDetailDao.save(deviceDetail);
            //添加设备绑定关系
            List<PatientDevice> patientDeviceList = patientDeviceDao.findByPatientAndDeviceSn(patient.getCode(),kitSn);
            PatientDevice patientDevice = null;
            if(patientDeviceList.size()>0){
                patientDevice = patientDeviceList.get(0);
            }else{
                patientDevice = new PatientDevice();
            }
            patientDevice.setDeviceId(7L);
            patientDevice.setDeviceSn(deviceDetail.getDeviceCode());
            patientDevice.setDeviceName(deviceDetail.getDeviceName());
            patientDevice.setUser(patient.getCode());
            patientDevice.setCategoryCode("3");
            patientDevice.setUserType("-1");
            patientDevice.setUserIdcard(patient.getIdcard());
            patientDevice.setCzrq(new Date());
            patientDevice.setDel(0);
            patientDeviceDao.save(patientDevice);
            //由于PatientDevice绑定关系是物理删除,所以添加PatientDeviceLog绑定记录
            PatientDeviceLog patientDeviceLog = new PatientDeviceLog();
            patientDeviceLog.setDeviceId(7L);
            patientDeviceLog.setPatient(patientDevice.getUser());
            patientDeviceLog.setCategoryCode(patientDevice.getCategoryCode());
            patientDeviceLog.setDeviceName(patientDevice.getDeviceName());
            patientDeviceLog.setDeviceSn(patientDevice.getDeviceSn());
            patientDeviceLog.setRole(1);
            patientDeviceLog.setOperateCode(1);
            patientDeviceLog.setAgreementPhoto(patientDevice.getAgreementPhoto());
//            if (role==1){
//                patientDeviceLog.setOperatorName(patientDevice.getDoctorName());
//                patientDeviceLog.setOperator(patientDevice.getDoctor());
//            }else if (role==2){
//                patientDeviceLog.setOperatorName(patientDevice.getAgentName());
//                patientDeviceLog.setOperator(patientDevice.getAgent());
//            }
            patientDeviceLog.setCreateTime(new Date());
            patientDeviceLog.setIsDel(1);
            patientDeviceLogDao.save(patientDeviceLog);
            String sqlUpdate = " update wlyy.kit_bind_info_temp set import=1 where kit_sn='"+kitSn+"'";
            jdbcTemplate.execute(sqlUpdate);
        }
        return errorList;
    }
}

+ 23 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/data/DataHandlingController.java

@ -19,6 +19,8 @@ import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@ -338,4 +340,25 @@ public class DataHandlingController extends BaseController {
            return write(-1,"请洗数据失败!");
        }
    }
    @RequestMapping(value = "/importKitInfo",method = RequestMethod.POST)
    @ResponseBody
    @ApiOperation("导入药盒绑定设备的数据")
    public String importKitInfo(@ApiParam(name = "batch", value = "批次", required = true)
                                    @RequestParam(value = "batch") Integer batch){
        try{
            List<String> errorList = dataHandingService.importKitInfo(batch);
            if(errorList.size()>0){
                Map<String,Object> map = new HashMap<>();
                map.put("count",errorList.size());
                map.put("errorData",errorList);
                return write(200,"导入数据成功!","data",map);
            }else{
                return write(200,"导入数据成功!");
            }
        }catch (Exception e){
            e.printStackTrace();
            return write(-1,"导入数据失败!");
        }
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/kit/DoctorKitController.java

@ -88,7 +88,7 @@ public class DoctorKitController extends BaseController {
    }
    @RequestMapping(value = "/oneDayDrugUse", method = RequestMethod.GET)
    @ApiOperation("药盒统计分析--获取某个居民的所绑定的所有药盒设备信息")
    @ApiOperation("药盒统计分析--获取某个居民一天的用药提醒闹钟")
    public String oneDayDrugUse(
            @ApiParam(name = "patientCode", value = "居民code", required = true) @RequestParam(value = "patientCode", required = true) String patientCode,
            @ApiParam(name = "useDrugStatus", value = "居民用药记录情况(1、按时,2、超时,3、漏用)", required = false) @RequestParam(value = "useDrugStatus", required = false) Integer useDrugStatus,

+ 2 - 0
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/web/doctor/patient/DoctorPatientGroupController.java

@ -693,6 +693,8 @@ public class DoctorPatientGroupController extends BaseController {
                    jtJson.put("expensesTime", jtSign.getExpensesTime() == null ? "" : new SimpleDateFormat("yyyy-MM-dd HH:mm").format(jtSign.getExpensesTime()));
                    jtJson.put("jyDate", DateUtil.dateToStr(jtSign.getApplyUnsignDate(), DateUtil.YYYY_MM_DD));
                    jtJson.put("status", jtSign.getStatus());
                    jtJson.put("serverType", jtSign.getServerType());
                    jtJson.put("serverTypeName", jtSign.getServerTypeName());
                    Doctor d =  doctorInfoService.findDoctorByCode(jtSign.getDoctor());
                    jtJson.put("doctor",jtSign.getDoctor());