Selaa lähdekoodia

协同bug解决

liuwenbin 6 vuotta sitten
vanhempi
commit
e2f04a273d

+ 1 - 1
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/repository/SignFamilyDao.java

@ -34,7 +34,7 @@ public interface SignFamilyDao extends PagingAndSortingRepository<SignFamily, Lo
    @Query("select a from SignFamily a where a.patient = ?1 and a.status >= 0")
    List<SignFamily> findAllSignByPatient(String patient);
    @Query("select a from SignFamily a where a.patient = ?1 and a.status =1 and a.expensesStatus='1'")
    @Query("select a from SignFamily a where a.patient = ?1 and a.status =1")
    SignFamily findSignByPatient(String patient);
    @Query("select a from SignFamily a where a.patient = ?1 and a.status > 0 and a.expensesStatus ='1' order by a.czrq desc")

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

@ -154,7 +154,7 @@ public class SynergyManageService extends BaseJpaService {
        //关键字查询
        servicerTable +=" left join wlyy.manage_synergy_workorder_servicer s on s.workorder_code=w.code ";
        if(StringUtils.isNotEmpty(keywords)){
            whereSql += " and w.servicer_count<=10  ";
//            whereSql += " and w.servicer_count<=10  ";
            whereSql += " and (w.create_user_name like '%"+keywords+"%' or s.service_patient_name like '%"+keywords+"%' " +
                    " or s.ssc like '%"+keywords+"%' or s.idcard like '%"+keywords+"%' ) ";
        }
@ -492,18 +492,29 @@ public class SynergyManageService extends BaseJpaService {
            whereSql+=" and s.status=1 ";
        }
        String sql =" select DISTINCT w.*,s.mobile,s.service_patient_name,s.service_patient_code,s.code as servicerCode,s.town_name,s.hospital_name, " +
                " w.create_user_name " +
                " from manage_synergy_workorder_servicer s " +
                " w.create_user_name " ;
        String sqlCenter = " from manage_synergy_workorder_servicer s " +
                " LEFT JOIN manage_synergy_workorder w on s.workorder_code=w.code " +
                " LEFT JOIN manage_synergy_workorder_executor e on e.workorder_code=w.code " + leftSql+
                " LEFT JOIN manage_synergy_workorder_customer_log l on l.workorder_service_code=s.service_patient_code " +
                " where s.workorder_code='"+workorderCode+"' " +
                " and w.del=1 and w.status=2 and e.del=1 "+
                whereSql+" order by "+orderBySql;
        List<Map<String,Object>> resultWorkorderList = jdbcTemplate.queryForList(sql);
                whereSql;
        String orderSql =" order by "+orderBySql;
        String sql1=" select count(1) as num ";
        String whereSql1=whereSql+" and l.id is not null ";
        List<Map<String,Object>> resultWorkorderListCount = jdbcTemplate.queryForList(sql1+sqlCenter+whereSql1);
        int count = resultWorkorderListCount.get(0).get("num")!=null?Integer.valueOf(resultWorkorderListCount.get(0).get("num")+""):0;
        List<Map<String,Object>> resultWorkorderList = jdbcTemplate.queryForList(sql+sqlCenter+orderSql);
        Map<String,Object> resultMap = new HashMap<>();
        if(resultWorkorderList.size()>0){
            Map<String,Object> workorderMap = resultWorkorderList.get(0);
            Integer ra = 0;
            if(count>0){
                ra = getRandom(0,count-1);
            }else{
                ra = getRandom(0,resultWorkorderList.size()-1);
            }
            Map<String,Object> workorderMap = resultWorkorderList.get(ra);
            //居民信息
            resultMap.put("mobile",workorderMap.get("mobile"));//电话号码
            resultMap.put("patientName",workorderMap.get("service_patient_name"));//居民姓名
@ -543,12 +554,17 @@ public class SynergyManageService extends BaseJpaService {
                healthType+=","+one.getLabelName();
            }
            resultMap.put("healthType",StringUtils.isNotEmpty(healthType)?healthType.substring(1):"");//健康情况
            List<SignPatientLabelInfo> labelServeType = signPatientLabelInfoDao.findByPatientAndLabelTypeAndStatus(workorderMap.get("service_patient_code")+"",  "2", 1);
            String serveType="";
            for(SignPatientLabelInfo one:labelServeType){
                serveType+=","+one.getLabelName();
//            List<SignPatientLabelInfo> labelServeType = signPatientLabelInfoDao.findByPatientAndLabelTypeAndStatus(workorderMap.get("service_patient_code")+"",  "2", 1);
//            for(SignPatientLabelInfo one:labelServeType){
//                serveType+=","+one.getLabelName();
//            }
            List<Map<String,Object>> signTypes = jdbcTemplate.queryForList("SELECT s.server_type_name,s.server_type FROM wlyy_sign_family_server s right join wlyy_sign_family f on s.sign_code=f.code WHERE f.patient='"+workorderMap.get("service_patient_code")+"' and f.status=1 and f.expenses_status='1' ");
            for(Map<String,Object> one:signTypes){
                serveType+=","+(one.get("server_type_name")!=null?one.get("server_type_name"):"");
            }
            resultMap.put("serveType",StringUtils.isNotEmpty(serveType)?serveType.substring(1):"");//服务类型
            resultMap.put("serveType",StringUtils.isNotEmpty(serveType)?serveType.substring(1):"");
//            resultMap.put("serveType",StringUtils.isNotEmpty(serveType)?serveType.substring(1):"");//服务类型
            resultMap.put("workorder",workorderMap.get("code"));//工单编号
            resultMap.put("patientCode",workorderMap.get("service_patient_code"));//居民code
            resultMap.put("doctorCode",workorderMap.get("create_user"));//创建人(医生)code
@ -567,11 +583,22 @@ public class SynergyManageService extends BaseJpaService {
                m.put("remark",log.getRemark());//备注
                m.put("returnVisit",log.getReturnVisit());//回访(1、有效回访,2、无效回访)
                resultMap.put("servicerLog",m);
                resultMap.put("haveNum",1);
            }
            return resultMap;
        }else{
            throw new Exception("没有任务");
            resultMap.put("haveNum",0);
        }
        return resultMap;
    }
    public int getRandom(int min, int max){
        if(max==0){
            return 0;
        }
        Random random = new Random();
        int s = random.nextInt(max) % (max - min + 1) + min;
        return s;
    }
    /**
@ -1206,21 +1233,28 @@ public class SynergyManageService extends BaseJpaService {
                    whereSql += " and e.executor_code ='"+code+"' ";
                }else if(isAcceptTask==2){//我派发
                    whereSql +=" and w.create_user_type=2 ";//创建人为客服
                    whereSql += " and e.create_user ='"+code+"' ";
                    whereSql += " and w.create_user ='"+code+"' ";
                }
            }else if(userType==3){//医生
            }else if(userType==1){//医生
                if(isAcceptTask==1){//我接收
                    whereSql +=" and w.create_user_type=2 ";//创建人为客服
                    whereSql += " and e.executor_code ='"+code+"' ";
                }else if(isAcceptTask==2){//我派发
                    whereSql +=" and w.create_user_type=2 ";//创建人为医生
                    whereSql += " and e.create_user ='"+code+"' ";
                    whereSql += " and w.create_user_type=1 ";//创建人为医生
                    whereSql += " and w.create_user ='"+code+"' ";
                    whereSql += " and w.create_user_role=1 ";
                }
            }else if(userType==4){//医生管理员
                if(isAcceptTask==2){
                    whereSql += " and w.create_user_type=1 ";//创建人为医生
                    whereSql += " and w.create_user ='"+code+"' ";
                    whereSql += " and w.create_user_role=2 ";
                }
            }
            //关键字查询
            servicerTable +=" left join wlyy.manage_synergy_workorder_servicer s on s.workorder_code=w.code ";
            if(StringUtils.isNotEmpty(keywords)){
                servicerTable +=" left join wlyy.manage_synergy_workorder_servicer s on s.workorder_code=w.code ";
                whereSql += " and w.servicer_count<=10  ";
                whereSql += " and (w.create_user_name like '%"+keywords+"%' or s.service_patient_name like '%"+keywords+"%' " +
                        " or s.ssc like '%"+keywords+"%' or s.idcard like '%"+keywords+"%' ) ";
@ -1243,7 +1277,11 @@ public class SynergyManageService extends BaseJpaService {
            }
            //是否超时
            if(timeout!=null){
                whereSql +=" and w.service_time >'"+DateUtil.dateToStrLong(new Date())+"' ";
                if(timeout==1){
                    whereSql +=" and w.service_time >'"+DateUtil.dateToStrLong(new Date())+"' ";
                }else if(timeout==2){
                    whereSql +=" and w.service_time <='"+DateUtil.dateToStrLong(new Date())+"' ";
                }
            }
            //服务编码
            if(StringUtils.isNotEmpty(workorderCode)){
@ -1262,21 +1300,20 @@ public class SynergyManageService extends BaseJpaService {
            }
            //服务对象
            if(StringUtils.isNotEmpty(patientName)){
                whereSql+=" s.service_patient_name like '%"+keywords+"%' ";
                whereSql+=" and s.service_patient_name like '%"+keywords+"%' ";
            }
            //社保卡号
            if(StringUtils.isNotEmpty(ssc)){
                whereSql+=" s.ssc like '%"+keywords+"%' ";
                whereSql+=" and s.ssc like '%"+keywords+"%' ";
            }
            //身份证号
            if(StringUtils.isNotEmpty(idcard)){
                whereSql+=" s.idcard like '%"+keywords+"%' ";
                whereSql+=" and s.idcard like '%"+keywords+"%' ";
            }
            //需求方
            if(StringUtils.isNotEmpty(userName)){
                whereSql+=" and w.create_user_name like '%"+userName+"%' ";
            }
            //所属机构
            if(StringUtils.isNotEmpty(hospitalName)){
                whereSql+=" and w.hospital_name like '%"+hospitalName+"%' ";
            }