Quellcode durchsuchen

客服首页和管理员首页

zd_123 vor 6 Jahren
Ursprung
Commit
a980ed852f

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

@ -466,7 +466,7 @@ public class CustomerSynergyManageController extends BaseController {
    }
    @RequestMapping(value = "adminIndex",method = RequestMethod.GET)
    @ApiOperation(value = "管理员首页")
    @ApiOperation(value = "管理员首页.")
    public String adminIndex(@ApiParam(name="userCode",value="客服code")@RequestParam(value ="userCode")String userCode){
        try{
            return write(200,"获取成功!","data",synergyManageService.customerIndex(userCode));

+ 232 - 31
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,10 +1242,36 @@ 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();
        //如果最新一条是离线则直接获取总在线时长就是在线时间,
        // 如果最新一条是在线,则用当前时间减去上一条登录时间加上之前的在线时长为总的在线时长
        int status = manageCustomerOnlineRecordDOList.get(0).getStatus();
        String onLineTime = "";
        //离线status==2
        if (status==2){
            onLineTime=manageCustomerOnlineRecordDOList.get(0).getTotalOnlineTime();
        }
        //在线status==1
        if (status==1){
            //只有一条在线的数据,用当前时间减去数据创建时间
            long onlineDate = 0L;
            Date now = new Date();
            onlineDate = now.getTime()-manageCustomerOnlineRecordDOList.get(0).getCreateTime().getTime();
            //多条数据,要加上上一次记录的在线时长
            if(manageCustomerOnlineRecordDOList.size()>1){
                int notOnlineCount=0;
                String lastOnlineTime ="";
                for (ManageCustomerOnlineRecordDO m : manageCustomerOnlineRecordDOList){
                    if (m.getStatus()==2 && notOnlineCount<1){
                        notOnlineCount++;
                        lastOnlineTime = m.getTotalOnlineTime();
                    }
                }
            }
        }
        for (ManageCustomerOnlineRecordDO customerOnlineRecordDO : manageCustomerOnlineRecordDOList){
        }
@ -1256,8 +1284,41 @@ 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;
    }
@ -1344,11 +1405,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 +1420,173 @@ 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+"'";
        //--------------今日在线时长-----------------//
        //正在咨询人数
        //当前客服人数
        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());
        int totalSeconds = totalTaklTime(allCallRecordList);
        map.put("allAvgTaklTime",getAvgTime(totalSeconds,allCallRecordList.size()));
        //今日外呼量 今日平均会话时长
        List<CallRecord> waihuCallRecordList = jdbcTemplate.query(callSql+" and r.answer_status=1 and r.type=2 and ",new BeanPropertyRowMapper<>(CallRecord.class));
        map.put("waihuCallCount",waihuCallRecordList.size());
        int waihuTotalSeconds = totalTaklTime(waihuCallRecordList);
        map.put("waihuAvgTaklTime",getAvgTime(waihuTotalSeconds,waihuCallRecordList.size()));
        //--------------今日协同任务外呼数-----------------//
        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 void intervalOnLine(){
        String today = DateUtil.dateToStrShort(new Date());
        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){
        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);
        }
        //--------------今日接入量-----------------//
        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());
    }
        //--------------今日协同任务外呼数-----------------//
    public void 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";
        String sql="SELECT" +
                " u.`code`"+
                " u.`name`," +
                " u.`online`," +
                " r.type" +
                " 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";
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        Map<String,Object> toMap = new HashMap<>();
        Map<String,Object> jieruMap = new HashMap<>();
        Map<String,Object> waihuMap = new HashMap<>();
        for (Map<String,Object> map : list){
            Map<String,Object> allMap = new HashMap<>();
            String userCode = String.valueOf(map.get("code"));
            if (!toMap.containsKey(userCode)){
                map.put("jieruCount",0);
                map.put("waihuCount",0);
                toMap.put(userCode,map);
            }else {
            }
            //接入量
            if ("1".equals(String.valueOf(map.get("type")))){
                int jieruCount = Integer.valueOf(String.valueOf(allMap.get("jieruCount")));
                jieruCount++;
                jieruMap.put(userCode,jieruCount);
            }
            /*//接入量
            if ("1".equals(String.valueOf(map.get("type")))){
                if (jieruMap.containsKey(userCode)){
                    int jieruCount = Integer.valueOf(String.valueOf(jieruMap.get(userCode)));
                    jieruCount++;
                    jieruMap.put(userCode,jieruCount);
                }else {
                    jieruMap.put(userCode,1);
                }
            }
            //外呼量
            if ("2".equals(String.valueOf(map.get("type")))){
                if (waihuMap.containsKey(userCode)){
                    int waihuCount = Integer.valueOf(String.valueOf(waihuMap.get(userCode)));
                    waihuCount++;
                    waihuMap.put(userCode,waihuCount);
                }else {
                    waihuMap.put(userCode,1);
                }
            }*/
        }
        return map;
    }
}

+ 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;