瀏覽代碼

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

wsl 2 年之前
父節點
當前提交
ac636c2a4d

+ 115 - 52
business/base-service/src/main/java/com/yihu/jw/dailyReport/service/DailyReportUploadService.java

@ -3785,8 +3785,11 @@ public class DailyReportUploadService {
        List<Map<String,Object>> doctorTypeHourList = jdbcTemplate.queryForList(doctorTypeSql);
        result.put("doctorTypeHourList",doctorTypeHourList);//按人员统计总用时与参与人数
        JSONObject bugObj = selectBugTotal(memberId,startDate,endDate,dept);
        result.putAll(bugObj);
        //BUG数量统计
        if(StringUtils.isNoneBlank(memberId)||StringUtils.isNoneBlank(dept)){
            JSONObject bugObj = selectBugTotal(memberId,startDate,endDate,dept,false);
            result.putAll(bugObj);
        }
        return result;
    }
@ -3975,11 +3978,12 @@ public class DailyReportUploadService {
        //判断导出人权限
        String sql = " select * from base_doctor_role where doctor_code='"+user+"' ";
        List<Map<String,Object>> userRoles = jdbcTemplate.queryForList(sql);
        boolean adminFlag = false;
        if (userRoles.size()==0){
        }else {
            String role_code = userRoles.get(0).get("role_code").toString();
            if ("admin".equals(role_code)){
                adminFlag = true;
            } else if ("deptAdmin".equals(role_code)) {//查询出管理员所在部门
                if(StringUtils.isBlank(dept)){
                    sql = " select dh.dept_code from base_doctor doc INNER JOIN base_doctor_hospital dh on doc.id = dh.doctor_code " +
@ -4191,6 +4195,11 @@ public class DailyReportUploadService {
        List<Map<String,Object>> doctorTypeHourList = jdbcTemplate.queryForList(doctorTypeSql);
        result.put("doctorTypeHourList",doctorTypeHourList);//按人员统计总用时与参与人数
        //BUG数量统计
        if(StringUtils.isNoneBlank(memberId)||StringUtils.isNoneBlank(dept)||adminFlag){
            JSONObject bugObj = selectBugTotal(memberId,startDate,endDate,dept,adminFlag);
            result.putAll(bugObj);
        }
        return result;
    }
@ -5058,13 +5067,25 @@ public class DailyReportUploadService {
    }
    public JSONObject selectBugTotal(String doctorId, String startDate, String endDate, String dept) throws Exception {
    public JSONObject selectBugTotal(String doctorId, String startDate, String endDate, String dept,boolean adminFlag) throws Exception {
        String sqlCondition = "";
        JSONObject result = new JSONObject();
        result.put("bugtotal",0); //BUG总数
        result.put("resolveBugTotal",0); //已解决BUG数
        result.put("unresolvedBugTotal",0); //为解决BUG数
        result.put("taskTotal",0); //任务总数
        result.put("unresolvedTaskTotal",0); // 待完成任务数
        result.put("resolveTaskTotal",0); //已完成任务数
        if (adminFlag){
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d LEFT JOIN base_doctor_hospital dh ON d.id=dh.doctor_code where d.del=1 and dh.del=1 and d.zt_id is not null ";
        }
        if (StringUtils.isNoneBlank(dept)){
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d LEFT JOIN base_doctor_hospital dh ON d.id=dh.doctor_code where d.del=1 and dh.del=1 and dh.dept_code='"+dept+"' ";
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d LEFT JOIN base_doctor_hospital dh ON d.id=dh.doctor_code where d.del=1 and dh.del=1 and dh.dept_code='"+dept+"' and d.zt_id is not null ";
        }
        if (StringUtils.isNoneBlank(doctorId)){
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d where d.id = '"+doctorId+"' ";
            sqlCondition = " SELECT d.zt_id as ztId FROM base_doctor d where d.id = '"+doctorId+"' and d.zt_id is not null ";
        }
        List<Map<String,Object>> mapList = jdbcTemplate.queryForList(sqlCondition);
        String str = "";
@ -5073,56 +5094,98 @@ public class DailyReportUploadService {
                str += "'"+map.get("ztId")+"',";
            }
        }
        str = str.substring(0,str.length()-1);
        sqlCondition = " ";
        if (StringUtils.isNotBlank(startDate)){
            sqlCondition += " and lastEditedDate>='"+startDate+"' ";
        }
        if (StringUtils.isNotBlank(endDate)){
            sqlCondition += " and lastEditedDate<='"+endDate+"' ";
        }
        String sql = "  select * from ( " +
                " select count(distinct id) total,'resolve' `status` from zt_bug " +
                " where  (resolvedBy in ("+str+")) or  " +
                " (assignedTo in ("+str+") and `status` in ('closed')) or " +
                " (closedBy in ("+str+")and `status` in ('closed')) " +
                "  and deleted='0' " +sqlCondition+
                " union ALL " +
                " select count(distinct id) total,'unresolved' `status` from zt_bug " +
                " where assignedTo in ("+str+") and `status` in ('active','resolved') and deleted='0' " +sqlCondition+
                " )A ";
        String url = "http://172.19.103.134:10023/ykyy/jdbcSQLQuery";
        Map<String,Object> params = new HashedMap();
        params.put("sql",sql);
        HttpResponse response = HttpUtils.doGet(url,params);
        String content = response.getContent();
        logger.info("response:"+content);
        JSONObject rs = JSON.parseObject(content);
        Long total = 0l;//总bug数;
        Long resolveBugTotal=0l;//已解决BUG数
        Long unresolvedBugTotal=0l;//待解决BUG数
        Integer status = rs.getInteger("status");
        if(status!=null&&status == 200){
            JSONArray array = rs.getJSONArray("detailModelList");
            if (array!=null&&array.size()!=0){
                total = array.stream().mapToLong(t ->((JSONObject)t).get("total") == null ? 0 :Long.parseLong(((JSONObject)t).getString("total"))).sum();
                for (int i=0;i<array.size();i++){
                    JSONObject tmp = array.getJSONObject(i);
                    String bugStatus = tmp.getString("status");
                    Long statusTotal  =Long.parseLong(tmp.getString("total"));
                    if("resolve".equals(bugStatus)){
                        resolveBugTotal = statusTotal;
                    }else {
                        unresolvedBugTotal = statusTotal;
        if (StringUtils.isNoneBlank(str)){
            str = str.substring(0,str.length()-1);
            sqlCondition = " ";
            String  sqlCondition2 = " ";
            if (StringUtils.isNotBlank(startDate)){
                startDate = DateUtil.strToStrShort(startDate)+" 00:00:00";
                sqlCondition += " and lastEditedDate>='"+startDate+"' ";
                sqlCondition2 += " and assignedDate>='"+startDate+"' ";
            }
            if (StringUtils.isNotBlank(endDate)){
                endDate = DateUtil.strToStrShort(endDate)+" 23:59:59";
                sqlCondition += " and lastEditedDate<='"+endDate+"' ";
                sqlCondition2 += " and assignedDate<='"+endDate+"' ";
            }
            String sql = "  select * from ( " +
                    " select count(distinct id) total,'resolve' `status` from zt_bug " +
                    " where  ((resolvedBy in ("+str+")) or  " +
                    " (assignedTo in ("+str+") and `status` in ('closed')) or " +
                    " (closedBy in ("+str+")and `status` in ('closed'))) " +
                    "  and deleted='0' " +sqlCondition+
                    " union ALL " +
                    " select count(distinct id) total,'unresolved' `status` from zt_bug " +
                    " where assignedTo in ("+str+") " +
                    " and ( (`status` ='active' "+sqlCondition2+") or (`status` ='resolved' "+sqlCondition+" ) )  "+
                    " and deleted='0' "+
                    " )A ";
            String url = "http://172.19.103.134:10023/ykyy/jdbcSQLQuery";
            Map<String,Object> params = new HashedMap();
            params.put("sql",sql);
            HttpResponse response = HttpUtils.doGet(url,params);
            String content = response.getContent();
            logger.info("response:"+content);
            JSONObject rs = JSON.parseObject(content);
            Long total = 0l;//总bug数;
            Long resolveBugTotal=0l;//已解决BUG数
            Long unresolvedBugTotal=0l;//待解决BUG数
            Integer status = rs.getInteger("status");
            if(status!=null&&status == 200){
                JSONArray array = rs.getJSONArray("detailModelList");
                if (array!=null&&array.size()!=0){
                    total = array.stream().mapToLong(t ->((JSONObject)t).get("total") == null ? 0 :Long.parseLong(((JSONObject)t).getString("total"))).sum();
                    for (int i=0;i<array.size();i++){
                        JSONObject tmp = array.getJSONObject(i);
                        String bugStatus = tmp.getString("status");
                        Long statusTotal  =Long.parseLong(tmp.getString("total"));
                        if("resolve".equals(bugStatus)){
                            resolveBugTotal = statusTotal;
                        }else {
                            unresolvedBugTotal = statusTotal;
                        }
                    }
                }
            }
            result.put("bugtotal",total);
            result.put("resolveBugTotal",resolveBugTotal);
            result.put("unresolvedBugTotal",unresolvedBugTotal);
            sql = " select count(id) 'total','resolve' as 'status' from zt_task " +
                    " where deleted='0' and finishedBy in ('liubing')  " +sqlCondition+
                    " UNION ALL " +
                    " select count(id) 'total','unresolved' as 'status' from zt_task " +
                    " where deleted='0' and assignedTo in ('liubing') AND `status` in ('wait','doing','pause') "+sqlCondition2;
            params = new HashedMap();
            params.put("sql",sql);
            response = HttpUtils.doGet(url,params);
            content = response.getContent();
            logger.info("response:"+content);
            rs = JSON.parseObject(content);
            Long taskTotal = 0l;//任务总数;
            Long resolvetaskTotal=0l;//完成任务总数
            Long unresolvedTaskTotal=0l;//待任务总数
            status = rs.getInteger("status");
            if(status!=null&&status == 200){
                JSONArray array = rs.getJSONArray("detailModelList");
                if (array!=null&&array.size()!=0){
                    taskTotal = array.stream().mapToLong(t ->((JSONObject)t).get("total") == null ? 0 :Long.parseLong(((JSONObject)t).getString("total"))).sum();
                    for (int i=0;i<array.size();i++){
                        JSONObject tmp = array.getJSONObject(i);
                        String taskStatus = tmp.getString("status");
                        Long statusTotal  =Long.parseLong(tmp.getString("total"));
                        if("resolve".equals(taskStatus)){
                            resolvetaskTotal = statusTotal;
                        }else {
                            unresolvedTaskTotal = statusTotal;
                        }
                    }
                }
            }
            result.put("taskTotal",taskTotal); //任务总数
            result.put("unresolvedTaskTotal",unresolvedTaskTotal); // 待完成任务数
            result.put("resolveTaskTotal",resolvetaskTotal); //已完成任务数
        }
        JSONObject result = new JSONObject();
        result.put("bugtotal",total);
        result.put("resolveBugTotal",resolveBugTotal);
        result.put("unresolvedBugTotal",unresolvedBugTotal);
        return result;
    }
}

+ 48 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/common/CommonController.java

@ -1,9 +1,12 @@
package com.yihu.jw.care.endpoint.common;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.aop.ObserverRequired;
import com.yihu.jw.care.service.message.PatientMessageService;
import com.yihu.jw.care.util.MessageDigestUtil;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.care.util.WeatherUtil;
import com.yihu.jw.entity.base.wx.WxWechatDO;
import com.yihu.jw.entity.care.weather.BaseWeatherDayDO;
import com.yihu.jw.entity.care.weather.BaseWeatherWeekDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
@ -12,9 +15,13 @@ import com.yihu.jw.restmodel.web.Envelop;
import com.yihu.jw.restmodel.web.ListEnvelop;
import com.yihu.jw.restmodel.web.ObjEnvelop;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import com.yihu.jw.rm.patient.PatientRequestMapping;
import com.yihu.jw.util.date.DateUtil;
import com.yihu.jw.wechat.dao.WechatDao;
import com.yihu.jw.wechat.service.WechatInfoService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
@ -23,7 +30,10 @@ import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
 * Created by yeshijie on 2022/7/28.
@ -41,6 +51,44 @@ public class CommonController extends EnvelopRestEndpoint {
    private PatientMessageService patientMessageService;
    @Resource
    private WlyyHospitalSysDictDao wlyyHospitalSysDictDao;
    @Resource
    private WechatInfoService wechatInfoService;
    @Resource
    private WechatDao wechatDao;
    @PostMapping(value = "open/getSign")
    @ApiOperation(value = "获取微信签名", notes = "获取微信签名")
    @ObserverRequired
    public Envelop getSign(@ApiParam(name = "pageUrl", value = "授权页面")
                           @RequestParam(value = "pageUrl", required = true)String pageUrl,
                           @ApiParam(name = "wxId", value = "微信id")
                           @RequestParam(value = "wxId", required = true)String wxId){
        try{
            logger.info("pageUrl="+pageUrl);
            logger.info("wxId="+wxId);
            String ticket = wechatInfoService.getJsapi_ticketByToken(wxId);
            WxWechatDO wxWechatDO = wechatDao.findById(wxId);
            Map<Object, Object> map = new HashMap<Object, Object>();
            if (ticket != null) {
                String noncestr = UUID.randomUUID().toString();
                long timestamp = System.currentTimeMillis() / 1000;
                String url = pageUrl;
                logger.info("getSign.url="+url);
                String str = "jsapi_ticket=" + ticket + "&noncestr=" + noncestr + "&timestamp=" + timestamp + "&url=" + url;
                logger.info("getSign.str="+str);
                // sha1加密
                String signature = MessageDigestUtil.SHA1(str);
                map.put("noncestr", noncestr);
                map.put("timestamp", timestamp);
                map.put("signature", signature);
                map.put("appid", wxWechatDO.getAppId());
                return success(PatientRequestMapping.Wechat.api_success,map);
            }
            return failed(PatientRequestMapping.Wechat.api_error);
        }catch (Exception e){
            return failedException2(e);
        }
    }
    @GetMapping(value = "open/getCloudCareUrl")
    @ApiOperation(value = "获取云照护url")

+ 2 - 28
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/consult/PatientConsultEndpoint.java

@ -6,6 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.aop.ObserverRequired;
import com.yihu.jw.care.service.consult.ConsultService;
import com.yihu.jw.care.service.message.BaseServiceNewsService;
import com.yihu.jw.care.util.MessageDigestUtil;
import com.yihu.jw.care.util.MessageUtil;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorRoleDao;
@ -45,7 +46,6 @@ import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.web.bind.annotation.*;
import java.net.URLEncoder;
import java.security.MessageDigest;
import java.util.*;
/**
@ -516,7 +516,7 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
				String str = "jsapi_ticket=" + ticket + "&noncestr=" + noncestr + "&timestamp=" + timestamp + "&url=" + url;
				logger.info("getSign.str="+str);
				// sha1加密
				String signature = SHA1(str);
				String signature = MessageDigestUtil.SHA1(str);
				map.put("noncestr", noncestr);
				map.put("timestamp", timestamp);
				map.put("signature", signature);
@ -528,32 +528,6 @@ public class PatientConsultEndpoint extends EnvelopRestEndpoint {
			return failedException2(e);
		}
	}
	
	/**
	 * @description: SHA、SHA1加密 @parameter: str:待加密字符串 @return: 加密串
	 **/
	public String SHA1(String str) throws Exception {
		try {
			MessageDigest digest = MessageDigest.getInstance("SHA-1"); // 如果是SHA加密只需要将"SHA-1"改成"SHA"即可
			digest.update(str.getBytes());
			byte messageDigest[] = digest.digest();
			// Create Hex String
			StringBuffer hexStr = new StringBuffer();
			// 字节数组转换为 十六进制 数
			for (int i = 0; i < messageDigest.length; i++) {
				String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
				if (shaHex.length() < 2) {
					hexStr.append(0);
				}
				hexStr.append(shaHex);
			}
			return hexStr.toString();
			
		} catch (Exception e) {
			throw new Exception(e.getMessage());
		}
	}
	
	@PostMapping(value = BaseHospitalRequestMapping.PatientIM.updateConsultParticipant)
	@ApiOperation(value = "更新会话成员(新增或删除)", notes = "更新会话成员(新增或删除)")

+ 35 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/util/MessageDigestUtil.java

@ -0,0 +1,35 @@
package com.yihu.jw.care.util;
import java.security.MessageDigest;
/**
 * 加密工具类
 * Created by yeshijie on 2022/11/11.
 */
public class MessageDigestUtil {
    /**
     * @description: SHA、SHA1加密 @parameter: str:待加密字符串 @return: 加密串
     **/
    public static String SHA1(String str) throws Exception {
        try {
            MessageDigest digest = MessageDigest.getInstance("SHA-1"); // 如果是SHA加密只需要将"SHA-1"改成"SHA"即可
            digest.update(str.getBytes());
            byte messageDigest[] = digest.digest();
            // Create Hex String
            StringBuffer hexStr = new StringBuffer();
            // 字节数组转换为 十六进制 数
            for (int i = 0; i < messageDigest.length; i++) {
                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexStr.append(0);
                }
                hexStr.append(shaHex);
            }
            return hexStr.toString();
        } catch (Exception e) {
            throw new Exception(e.getMessage());
        }
    }
}