فهرست منبع

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

humingfen 6 سال پیش
والد
کامیت
a680604385

+ 25 - 3
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/controller/synergy/customer/CustomerSynergyManageController.java

@ -466,10 +466,32 @@ public class CustomerSynergyManageController extends BaseController {
    }
    @RequestMapping(value = "adminIndex",method = RequestMethod.GET)
    @ApiOperation(value = "管理员首页")
    public String adminIndex(@ApiParam(name="userCode",value="客服code")@RequestParam(value ="userCode")String userCode){
    @ApiOperation(value = "管理员首页.")
    public String adminIndex(){
        try{
            return write(200,"获取成功!","data",synergyManageService.customerIndex(userCode));
            return write(200,"获取成功!","data",synergyManageService.adminIndex());
        }catch (Exception e){
            e.printStackTrace();
            return write(-1,"获取失败!");
        }
    }
    @RequestMapping(value = "intervalOnLine",method = RequestMethod.GET)
    @ApiOperation(value = "管理员首页-今日在线服务趋势")
    public String intervalOnLine(){
        try{
            return write(200,"获取成功!","data",synergyManageService.intervalOnLine());
        }catch (Exception e){
            e.printStackTrace();
            return write(-1,"获取失败!");
        }
    }
    @RequestMapping(value = "TodayCustomerActivy",method = RequestMethod.GET)
    @ApiOperation(value = "管理员首页-客服今日活动.")
    public String TodayCustomerActivy(){
        try{
            return write(200,"获取成功!","data",synergyManageService.TodayCustomerActivy());
        }catch (Exception e){
            e.printStackTrace();
            return write(-1,"获取失败!");

+ 3 - 3
patient-co-manage/wlyy-manage/src/main/java/com/yihu/wlyy/entity/synergy/ManageCustomerOnlineRecordDO.java

@ -22,7 +22,7 @@ public class ManageCustomerOnlineRecordDO extends IdEntity {
    private String jobNo;//客服工号
    private String seat;//席位
    private String phone;//客服电话
    private String totalOnlineTime;//在线总时长
    private int totalOnlineTime;//在线总时长(单位:分钟)
    @Column(name = "code")
    public String getCode() {
@ -97,11 +97,11 @@ public class ManageCustomerOnlineRecordDO extends IdEntity {
    }
    @Column(name = "total_online_time")
    public String getTotalOnlineTime() {
    public int getTotalOnlineTime() {
        return totalOnlineTime;
    }
    public void setTotalOnlineTime(String totalOnlineTime) {
    public void setTotalOnlineTime(int totalOnlineTime) {
        this.totalOnlineTime = totalOnlineTime;
    }
}

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

@ -1220,9 +1220,11 @@ public class SynergyManageService extends BaseJpaService {
    }
    public Map<String,Object> customerIndex(String userCode){
        Map<String,Object> map = new HashMap<>();
        String today = DateUtil.dateToStrShort(new Date());
        String callSql ="SELECT * FROM manage_call_record WHERE user_code='"+userCode+"' and create_time>='"+today+" 00:00:00' and create_time<='"+today+" 23:59:59'";
        String startTime=today+" 00:00:00";
        String endTime = today+" 23:59:59";
        Map<String,Object> map = new HashMap<>();
        String callSql ="SELECT * FROM manage_call_record WHERE user_code='"+userCode+"' and create_time>='"+startTime+"' and create_time<='"+endTime+"'";
        //--------------今日外呼量-----------------//
        List<CallRecord> waihudList = jdbcTemplate.query(callSql+" and type=2",new BeanPropertyRowMapper<>(CallRecord.class));
        int customerNoCount = 0;
@ -1240,13 +1242,12 @@ public class SynergyManageService extends BaseJpaService {
        map.put("waihuCustomerNoCount",customerNoCount);
        //--------------今日在线时长-----------------//
        String startTime=today+" 00:00:00";
        String endTime = today+" 23:59:59";
        List<ManageCustomerOnlineRecordDO> manageCustomerOnlineRecordDOList = manageCustomerOnlineRecordDao.findByCustomerCodeToday(userCode,startTime,endTime);
        String onLineTime = manageCustomerOnlineRecordDOList.get(0).getTotalOnlineTime();
        for (ManageCustomerOnlineRecordDO customerOnlineRecordDO : manageCustomerOnlineRecordDOList){
        }
        List<ManageCustomerOnlineRecordDO> manageCustomerOnlineRecordDOList = manageCustomerOnlineRecordDao.findByCustomerCodeToday(userCode,startTime,endTime);
        //如果最新一条是离线则直接获取总在线时长就是在线时间,
        // 如果最新一条是在线,则用当前时间减去上一条登录时间加上之前的在线时长为总的在线时长
        Map<String,Object> lineMap = getOnlineAndNotOnlineAndNowOnline(manageCustomerOnlineRecordDOList);
        map.putAll(lineMap);
        //--------------今日接入量-----------------//
        List<CallRecord> jieruList = jdbcTemplate.query(callSql+" and type=1",new BeanPropertyRowMapper<>(CallRecord.class));
@ -1256,12 +1257,90 @@ public class SynergyManageService extends BaseJpaService {
        map.put("jieruAvgTalkTime",getAvgTime(jieruTotalSecond,jieruList.size()));
        map.put("jieruCount",jieruList.size());
        //--------------今日协同任务外呼数-----------------//
        //--------------今日协同任务完成数-----------------//
        String wanchenSql="SELECT" +
                " count(*) as wanchengCount" +
                " FROM" +
                " `manage_synergy_workorder_servicer`" +
                " WHERE" +
                " executor_code = '"+userCode+"'" +
                " AND executor_type = 2" +
                " AND `status`=3" +
                " AND complete_time >='"+startTime+"'" +
                " AND complete_time<='"+endTime+"'";
        Map<String,Object> wanchenMap = jdbcTemplate.queryForMap(wanchenSql);
        String weiwanchenSql ="SELECT" +
                " COUNT(*) AS weiwanchengCount" +
                " FROM" +
                " `manage_synergy_workorder_servicer`" +
                " WHERE" +
                " executor_code = '"+userCode+"'" +
                " AND executor_type = 2" +
                " AND `status`<3";
        Map<String,Object> weiwanchenMap = jdbcTemplate.queryForMap(wanchenSql);
        String fasongSql="SELECT" +
                " COUNT(*) AS fasongCount" +
                " FROM" +
                " manage_synergy_workorder" +
                " WHERE" +
                " create_user = '"+userCode+"'" +
                " AND create_user_type = 2" +
                " AND del = 1" +
                " AND create_time>='"+startTime+"'" +
                " AND create_time<='"+endTime+"'";
        Map<String,Object> fasongMap = jdbcTemplate.queryForMap(fasongSql);
        map.putAll(wanchenMap);
        map.putAll(weiwanchenMap);
        map.putAll(fasongMap);
        return map;
    }
    public Map<String,Object> getOnlineAndNotOnlineAndNowOnline(List<ManageCustomerOnlineRecordDO> list){
        Map<String,Object> map = new HashMap<>();
        //如果最新一条是离线则直接获取总在线时长就是在线时间,
        // 如果最新一条是在线,则用当前时间减去上一条登录时间加上之前的在线时长为总的在线时长
        int status = list.get(list.size()-1).getStatus();
        String firstOnlineTime  = DateUtil.dateToStr(list.get(0).getCreateTime(),DateUtil.YYYY_MM_DD_HH_MM_SS);
        int totalOnlineMinute=0;
        int totalNotOnlineMinute =0;
        int toMinute = 0;
        //离线status==2
        if (status==2){
            totalOnlineMinute =list.get(list.size()-1).getTotalOnlineTime();
            long allTime = list.get(list.size()-1).getCreateTime().getTime()-list.get(0).getCreateTime().getTime();
            totalNotOnlineMinute= Integer.valueOf(String.valueOf(allTime/1000/60))-totalOnlineMinute;
        }
        //在线status==1
        if (status==1){
            //只有一条在线的数据,用当前时间减去数据创建时间
            long onlineDate = 0L;
            long allDateTime = 0L;
            int lastOnlineTime =0;
            Date now = new Date();
            onlineDate = now.getTime()-list.get(list.size()-1).getCreateTime().getTime();
            allDateTime = now.getTime()-list.get(0).getCreateTime().getTime();
            toMinute = Integer.valueOf(String.valueOf(onlineDate/1000/60));
            //多条数据,要加上上一次记录的在线时长
            if(list.size()>1){
                int notOnlineCount=0;
                for (ManageCustomerOnlineRecordDO m : list){
                    if (m.getStatus()==2 && notOnlineCount<1){
                        notOnlineCount++;
                        lastOnlineTime = m.getTotalOnlineTime();
                    }
                }
            }
            totalOnlineMinute=toMinute+lastOnlineTime;
            totalNotOnlineMinute = Integer.valueOf(String.valueOf(allDateTime/1000/60))-totalOnlineMinute;
        }
        map.put("notOnline",totalNotOnlineMinute);
        map.put("online",totalOnlineMinute);
        map.put("nowOnline",toMinute);
        map.put("firstOnlineTime",firstOnlineTime);
        return map;
    }
    /**
     * 返回总的秒数
     * @param list
@ -1344,11 +1423,14 @@ public class SynergyManageService extends BaseJpaService {
    }
    public Map<String,Object> adminIndex(String userCode){
    public Map<String,Object> adminIndex(){
        List<User> userList = userDao.findByType(4);
        Map<String,Object> map = new HashMap<>();
        String today = DateUtil.dateToStrShort(new Date());
        String startTime=today+" 00:00:00";
        String endTime = today+" 23:59:59";
        String callSql ="SELECT" +
                " r.*" +
                " FROM" +
@ -1356,36 +1438,207 @@ public class SynergyManageService extends BaseJpaService {
                " LEFT JOIN wlyy_user u ON r.user_code = u.`code`" +
                " WHERE" +
                " u.type = 4" +
                " AND r.create_time >= '"+today+" 00:00:00'" +
                " AND r.create_time <= '"+today+" 23:59:59'";
        //--------------今日外呼量-----------------//
        List<CallRecord> waihudList = jdbcTemplate.query(callSql+" and r.type=2",new BeanPropertyRowMapper<>(CallRecord.class));
        //求总时长
        int seconds = totalTaklTime(waihudList);
        //求平均时长
        map.put("waihuAvgTalkTime",getAvgTime(seconds,waihudList.size()));
        map.put("waihuCount",waihudList.size());
                " AND r.create_time >= '"+startTime+"'" +
                " AND r.create_time <= '"+endTime+"'";
        //--------------今日在线时长-----------------//
        String startTime=today+" 00:00:00";
        String endTime = today+" 23:59:59";
        List<ManageCustomerOnlineRecordDO> manageCustomerOnlineRecordDOList = manageCustomerOnlineRecordDao.findByCustomerCodeToday(userCode,startTime,endTime);
        String onLineTime = manageCustomerOnlineRecordDOList.get(0).getTotalOnlineTime();
        for (ManageCustomerOnlineRecordDO customerOnlineRecordDO : manageCustomerOnlineRecordDOList){
        //正在咨询人数
        //当前客服人数
        map.put("onlineNowCount",userList.size());
        //今日会话总量  今日平均会话时长
        List<CallRecord> allCallRecordList = jdbcTemplate.query(callSql+" and r.answer_status=1",new BeanPropertyRowMapper<>(CallRecord.class));
        map.put("allCallCount",allCallRecordList.size());
        if (allCallRecordList.size()>0){
            int totalSeconds = totalTaklTime(allCallRecordList);
            map.put("allAvgTaklTime",getAvgTime(totalSeconds,allCallRecordList.size()));
        }else {
            map.put("allAvgTaklTime",0);
        }
        //--------------今日接入量-----------------//
        List<CallRecord> jieruList = jdbcTemplate.query(callSql+" and r.type=1",new BeanPropertyRowMapper<>(CallRecord.class));
        //求总时长
        int jieruTotalSecond = totalTaklTime(jieruList);
        //求平均时长
        map.put("jieruAvgTalkTime",getAvgTime(jieruTotalSecond,jieruList.size()));
        map.put("jieruCount",jieruList.size());
        //--------------今日协同任务外呼数-----------------//
        //今日外呼量 今日平均会话时长
        List<CallRecord> waihuCallRecordList = jdbcTemplate.query(callSql+" and r.answer_status=1 and r.type=2 ",new BeanPropertyRowMapper<>(CallRecord.class));
        map.put("waihuCallCount",waihuCallRecordList.size());
        if (waihuCallRecordList.size()>0){
            int waihuTotalSeconds = totalTaklTime(waihuCallRecordList);
            map.put("waihuAvgTaklTime",getAvgTime(waihuTotalSeconds,waihuCallRecordList.size()));
        }else {
            map.put("waihuAvgTaklTime",0);
        }
        //--------------今日协同任务外呼数-----------------//
        String wanchenSql="SELECT" +
                " count(*) AS wanchengCount" +
                " FROM" +
                " `manage_synergy_workorder_servicer` s" +
                " LEFT JOIN wlyy_user u ON s.executor_code = u.`code`" +
                " WHERE" +
                " s.executor_type = 2" +
                " AND s.`status` = 3" +
                " AND s.complete_time >= '"+startTime+"'" +
                " AND s.complete_time <= '"+endTime+"'";
        Map<String,Object> wanchenMap = jdbcTemplate.queryForMap(wanchenSql);
        String weiwanchenSql ="SELECT" +
                " COUNT(*) AS weiwanchengCount" +
                " FROM" +
                " `manage_synergy_workorder_servicer` s" +
                "LEFT JOIN wlyy_user u ON s.executor_code = u.`code`" +
                " WHERE" +
                " executor_type = 2" +
                " AND `status`<3";
        Map<String,Object> weiwanchenMap = jdbcTemplate.queryForMap(wanchenSql);
        String fasongSql="SELECT" +
                " COUNT(*) AS fasongCount" +
                " FROM" +
                " (" +
                "  SELECT" +
                "   s.*, w.create_user," +
                "   w.create_user_name" +
                "  FROM" +
                "   manage_synergy_workorder_servicer s" +
                "  LEFT JOIN manage_synergy_workorder w ON s.workorder_code = w.`code`" +
                "  WHERE" +
                "   w.create_user_type = 2" +
                "  AND w.del = 1" +
                "  AND w.create_time >= '"+startTime+"'" +
                "  AND w.create_time <= '"+endTime+"'" +
                " ) a" +
                " LEFT JOIN wlyy_user u ON a.create_user = u.`code`";
        Map<String,Object> fasongMap = jdbcTemplate.queryForMap(fasongSql);
        map.putAll(wanchenMap);
        map.putAll(weiwanchenMap);
        map.putAll(fasongMap);
        return map;
    }
    public Map<String,Object> intervalOnLine(){
        Map<String,Object> map = new HashMap<>();
        String today = DateUtil.dateToStrShort(new Date());
        String startTime=today+" 00:00:00";
        String endTime = today+" 23:59:59";
        String allSql="SELECT " +
                " HOUR (r.create_time) AS HOUR, " +
                " count(*) AS Count " +
                " FROM " +
                " manage_call_record r " +
                " LEFT JOIN wlyy_user u ON r.user_code = u.`code` " +
                " WHERE " +
                " r.create_time BETWEEN '"+startTime+"' " +
                " AND '"+endTime+"' " +
                " AND r.answer_status = 1 " +
                " GROUP BY " +
                " HOUR (r.create_time) " +
                " ORDER BY " +
                " HOUR (r.create_time)";
    List<Map<String,Object>> allList = jdbcTemplate.queryForList(allSql);
    String jieruSql ="SELECT " +
            " HOUR (r.create_time) AS HOUR, " +
            " count(*) AS Count " +
            " FROM " +
            " manage_call_record r " +
            " LEFT JOIN wlyy_user u ON r.user_code = u.`code` " +
            " WHERE " +
            " r.create_time BETWEEN '"+startTime+"' " +
            " AND '"+endTime+"' " +
            " AND r.answer_status = 1 " +
            " AND r.type = 1 " +
            " GROUP BY " +
            " HOUR (r.create_time) " +
            " ORDER BY " +
            " HOUR (r.create_time)";
        List<Map<String,Object>> jieruList = jdbcTemplate.queryForList(allSql);
        map.put("all",allList);
        map.put("jieru",jieruList);
        return  map;
    }
    public List<Map<String,Object>> TodayCustomerActivy(){
        List<Map<String,Object>> resultList =  new ArrayList<>();
        String today = DateUtil.dateToStrShort(new Date());
        String startTime=today+" 00:00:00";
        String endTime = today+" 23:59:59";
        startTime="2017-11-15 00:00:00";
        endTime="2017-11-22 23:59:59";
        String sql="SELECT" +
                " u.`code`,"+
                " u.`name`," +
                " u.`online`," +
                " r.type," +
                " COUNT(*) as num"+
                " FROM" +
                " wlyy_user u" +
                " LEFT JOIN manage_call_record r ON u.`code` = r.user_code" +
                " WHERE" +
                " u.type = 4" +
                " AND r.create_time>='"+startTime+"'" +
                " AND r.create_time<='"+endTime+"'" +
                " AND r.answer_status=1"+
                " GROUP BY" +
                " u.`code`," +
                " r.type";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        List<Map<String,Object>> toList =  new ArrayList<>();
        for (Map<String,Object> map : list){
            resultList.addAll(toList);
            toList.clear();
            String userCode = String.valueOf(map.get("code"));
            String type = String.valueOf(map.get("type"));
            if (resultList.size()==0){
                Map<String,Object> resultMap = new HashMap<>();
                resultMap.put("userCode",userCode);
                resultMap.put("userName",map.get("name"));
                resultMap.put("online",map.get("online"));
                if ("1".equals(type)){
                    resultMap.put("jieruCount",map.get("num"));
                    resultMap.put("waihuCount",0);
                }
                if ("2".equals(type)){
                    resultMap.put("jieruCount",0);
                    resultMap.put("waihuCount",map.get("num"));
                }
                toList.add(resultMap);
            }else {
                int count =0;
                for (Map<String,Object> map1 : resultList){
                    count++;
                    if(userCode.equals(String.valueOf(map1.get("userCode")))){
                        if ("1".equals(type)){
                            map1.put("jieruCount",map.get("num"));
                        }
                        if ("2".equals(type)){
                            map1.put("waihuCount",map.get("num"));
                        }
                    }
                    if (count==resultList.size() && !userCode.equals(String.valueOf(map1.get("userCode")))){
                        Map<String,Object> resultMap = new HashMap<>();
                        resultMap.put("userCode",userCode);
                        resultMap.put("userName",map.get("name"));
                        resultMap.put("online",map.get("online"));
                        if ("1".equals(type)){
                            resultMap.put("jieruCount",map.get("num"));
                            resultMap.put("waihuCount",0);
                        }
                        if ("2".equals(type)){
                            resultMap.put("jieruCount",0);
                            resultMap.put("waihuCount",map.get("num"));
                        }
                        toList.add(resultMap);
                    }
                }
            }
        }
        for (Map<String,Object> reMap : resultList){
            String userCode = String.valueOf(reMap.get("userCode"));
            List<ManageCustomerOnlineRecordDO> manageCustomerOnlineRecordDOList = manageCustomerOnlineRecordDao.findByCustomerCodeToday(userCode,startTime,endTime);
            //如果最新一条是离线则直接获取总在线时长就是在线时间,
            // 如果最新一条是在线,则用当前时间减去上一条登录时间加上之前的在线时长为总的在线时长
            Map<String,Object> lineMap = getOnlineAndNotOnlineAndNowOnline(manageCustomerOnlineRecordDOList);
            reMap.putAll(lineMap);
        }
        return resultList;
    }
}

+ 7 - 3
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/controller/JMController.java

@ -43,9 +43,13 @@ public class JMController {
	{
		try {
			
			String data = jmService.GetChildrenInfo(barCode);
			
			return Result.success("获取儿童信息成功!",data);
			String data = jmService.findChildren(barCode);
			JSONObject jsonObject = new JSONObject(data);
			if (jsonObject.getInt("msgCode")==800){
				return Result.success("获取儿童信息成功!",data);
			}else{
				return Result.error(jsonObject.getString("msg"));
			}
		} catch (Exception ex) {
			ex.printStackTrace();
			return Result.error(ex.getMessage());

+ 9 - 0
patient-co-service/wlyy_service/src/main/java/com/yihu/wlyy/service/service/JMService.java

@ -551,4 +551,13 @@ public class JMService {
        token = redisTemplate.opsForValue().get(redis_key).toString();
        return token;
    }
    public String findChildren(String credential)throws Exception  {
        Map<String,String> params = new HashMap<>();
        params.put("act", FIND_CHILDREN);
        params.put("accId", accId);
        params.put("token_ylz", getTokenCheck());
        params.put("etmykh", credential);
        return ylzImmGetSecond(FIND_CHILDREN,"计免预约-获取儿童信息成功",params);
    }
}

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/imm/ChildFamilyImmuneService.java

@ -136,7 +136,7 @@ public class ChildFamilyImmuneService extends BaseService {
		String sql = "select DISTINCT t.*,m.child_name,m.birthday,m.childCode from wlyy_child_immune_vaccin t " +
				" inner join ( " +
				" select a.*,b.name as family_name ,c.name as child_name,c.barcode as barcode ,c.birthday as birthday,c.`code` AS childCode from  wlyy_child_family_immune a " +
				" inner join (select patient,name from wlyy_sign_family where type in (1,2) and `status` = 1 and expenses_status = 1 and doctor = '"+doctorcode+"') b " +
				" inner join (select patient,name from wlyy_sign_family where type in (1,2) and `status` = 1 and expenses_status = 1 and doctor = '"+doctorcode+"' or doctor_health='"+doctorcode+"') b " +
				" on a.family_code = b.patient " +
				" left join wlyy_child_info c on c.`code` = a.child_code " +
				") m on m.barcode = t.barcode ";

+ 1 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/imm/ChildInfoService.java

@ -54,7 +54,7 @@ public class ChildInfoService extends BaseService {
				childInfo.setCreate_time(new Date());
				childInfo.setBarcode(barCode);
			}else{
				throw new Exception("获取新生儿信息失败!");
				throw new Exception(rejson.getString("msg"));
			}
		}
		

+ 0 - 1
patient-co/patient-co-wlyy/src/main/java/com/yihu/wlyy/service/third/guahao/ImmuneService.java

@ -50,7 +50,6 @@ public class ImmuneService {
		String url = jwUrl + "/third/jm/imm/GetChildrenInfo";
		List<NameValuePair> params = new ArrayList<>();
		params.add(new BasicNameValuePair("barCode", barcode));
		
		String response = httpClientUtil.post(url, params, "UTF-8");
		
		return response;