Ver código fonte

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

# Conflicts:
#	common/common-entity/src/main/java/com/yihu/jw/entity/IntegerIdentityEntity.java
wangzhinan 2 anos atrás
pai
commit
3a5cc7eaa5

+ 19 - 0
business/base-service/src/main/java/com/yihu/jw/dailyReport/dao/BaseDailyReportLogDao.java

@ -0,0 +1,19 @@
package com.yihu.jw.dailyReport.dao;
import com.yihu.jw.entity.dailyReport.BaseDailyReportDetailDO;
import com.yihu.jw.entity.dailyReport.BaseDailyReportLogDO;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.PagingAndSortingRepository;
import java.util.List;
/**
 * Created by Bing on 2022/7/25.
 */
public interface BaseDailyReportLogDao extends PagingAndSortingRepository<BaseDailyReportLogDO,String>,
        JpaSpecificationExecutor<BaseDailyReportLogDO> {
    @Query("select b from BaseDailyReportLogDO b where b.reportId=?1 order by b.createTime desc")
    List<BaseDailyReportLogDO> findByReportId(String reportId);
}

+ 304 - 10
business/base-service/src/main/java/com/yihu/jw/dailyReport/service/DailyReportUploadService.java

@ -3,6 +3,7 @@ package com.yihu.jw.dailyReport.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.dailyReport.dao.BaseDailyReportDetailDao;
import com.yihu.jw.dailyReport.dao.BaseDailyReportLogDao;
import com.yihu.jw.dailyReport.dao.BaseDailyReportUploadDao;
import com.yihu.jw.doctor.dao.BaseDoctorDao;
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
@ -14,6 +15,7 @@ import com.yihu.jw.entity.base.wx.WxAccessTokenDO;
import com.yihu.jw.entity.base.wx.WxPushLogDO;
import com.yihu.jw.entity.base.wx.WxTemplateConfigDO;
import com.yihu.jw.entity.dailyReport.BaseDailyReportDetailDO;
import com.yihu.jw.entity.dailyReport.BaseDailyReportLogDO;
import com.yihu.jw.entity.dailyReport.BaseDailyReportUploadDO;
import com.yihu.jw.entity.healthUpload.BaseDoctorMemberDO;
import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO;
@ -55,6 +57,8 @@ public class DailyReportUploadService {
    @Autowired
    private BaseDailyReportUploadDao dailyReportUploadDao;
    @Autowired
    private BaseDailyReportLogDao dailyReportLogDao;
    @Autowired
    private BaseDailyReportDetailDao reportDetailDao;
    @Autowired
    private BaseDoctorMemberDao doctorMemberDao;
@ -317,7 +321,7 @@ public class DailyReportUploadService {
     * @throws Exception
     */
    @Transactional(rollbackFor = Exception.class)
    public BaseDailyReportUploadDO createDailyReport(String doctorId,String report_date,Integer leaveState,String leaveHour,String week_name, List<BaseDailyReportDetailDO> detailDOList) throws Exception {
    public BaseDailyReportUploadDO createDailyReport(String doctorId,String report_date,Integer leaveState,String leaveHour,String week_name,String totalHour, List<BaseDailyReportDetailDO> detailDOList) throws Exception {
        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctorId);
        List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(doctorId);
        if (null==doctorDO){
@ -348,6 +352,7 @@ public class DailyReportUploadService {
        dailyReportUploadDO.setWeekName(week_name);
        dailyReportUploadDO.setLeaveState(leaveState);
        dailyReportUploadDO.setLeaveHour(leaveHour);
        dailyReportUploadDO.setTotalHour(totalHour);
        dailyReportUploadDO = dailyReportUploadDao.save(dailyReportUploadDO);
        for (BaseDailyReportDetailDO tmp :detailDOList){
            tmp.setReportId(dailyReportUploadDO.getId());
@ -405,7 +410,15 @@ public class DailyReportUploadService {
        }
        dailyReportUploadDao.save(dailyReportUploadDO);
        dailyReportUploadDO.setDetailDOList(detailDOS);
        BaseDailyReportLogDO baseDailyReportLogDO = new BaseDailyReportLogDO();
        baseDailyReportLogDO.setCreateTime(new Date());
        baseDailyReportLogDO.setReportId(dailyReportUploadDO.getId());
        baseDailyReportLogDO.setContent("日报提交");
        baseDailyReportLogDO.setOperateUser(dailyReportUploadDO.getDoctorId());
        baseDailyReportLogDO.setOperateUserName(dailyReportUploadDO.getDoctorName());
        baseDailyReportLogDO.setType(1);
        baseDailyReportLogDO.setTypeName("日报提交");
        dailyReportLogDao.save(baseDailyReportLogDO);
        return dailyReportUploadDO;
    }
@ -439,7 +452,15 @@ public class DailyReportUploadService {
                dailyReportUploadDO.setState(1);
                dailyReportUploadDao.save(dailyReportUploadDO);
            }
            BaseDailyReportLogDO baseDailyReportLogDO = new BaseDailyReportLogDO();
            baseDailyReportLogDO.setCreateTime(new Date());
            baseDailyReportLogDO.setReportId(dailyReportUploadDO.getId());
            baseDailyReportLogDO.setOperateUser(doctorDO.getId());
            baseDailyReportLogDO.setOperateUserName(doctorDO.getName());
            if (doubt==true){//有疑惑,推送给总经办"0592181"和老板"0592008";//老板id
                baseDailyReportLogDO.setType(3);
                baseDailyReportLogDO.setTypeName("上级核实存疑");
                baseDailyReportLogDO.setContent("上级核实存疑");
                String sql = " select dict_value from wlyy_hospital_sys_dict where dict_name='MRRB_DOUBT_SENDER'  ";
                List<String> doubtSendUser = jdbcTemplate.queryForList(sql,String.class);
                for (String senderUser:doubtSendUser){
@ -464,7 +485,12 @@ public class DailyReportUploadService {
                        e.printStackTrace();
                    }
                }
            }else {
                baseDailyReportLogDO.setType(2);
                baseDailyReportLogDO.setTypeName("上级核实未存疑");
                baseDailyReportLogDO.setContent("上级核实未存疑");
            }
            dailyReportLogDao.save(baseDailyReportLogDO);
        }else {
            dailyReportUploadDO.setState(1);
@ -496,6 +522,36 @@ public class DailyReportUploadService {
            }
            reportDetailDao.save(detailDOList);
        }
        try {
            BaseDoctorDO remindDoctorDO = baseDoctorDao.findById(dailyReportUploadDO.getDoctorId());
            if (remindDoctorDO != null) {
                try {
                    WxEnterpriseUserDO enterpriseUserDO = wxEnterpriseUserDao.findByEnterpriseIdAndMobile(wechatId,remindDoctorDO.getMobile());
                    if(enterpriseUserDO==null){
                        logger.info("该用户"+doctorDO.getName()+"没有企业微信手机号,无法推送模版消息,用户ID:"+doctorDO.getId()+"wechatId:"+wechatId);
                    }else{
                        String title = "日报反馈";
                        String des = "您好,您上报的日报有新的反馈,请点击前往查看。";
                        String url = "https://ehr.yihu.com/hlwyy/zjxl/dailyReport/#/workSummary/commit?id="+dailyReportUploadDO.getId();
                        String res = enterpriseService.sendTWMesByDoctor(wechatId,remindDoctorDO.getId(),title,des,url);
                    }
                }catch (Exception e){
                    e.printStackTrace();
                }
            }
        }catch (Exception e){
            e.printStackTrace();
        }
        BaseDailyReportLogDO baseDailyReportLogDO = new BaseDailyReportLogDO();
        baseDailyReportLogDO.setCreateTime(new Date());
        baseDailyReportLogDO.setReportId(dailyReportUploadDO.getId());
        baseDailyReportLogDO.setOperateUser(doctorDO.getId());
        baseDailyReportLogDO.setOperateUserName(doctorDO.getName());
        baseDailyReportLogDO.setType(4);
        baseDailyReportLogDO.setTypeName("存疑核实");
        baseDailyReportLogDO.setContent("存疑核实");
        dailyReportLogDao.save(baseDailyReportLogDO);
        return dailyReportUploadDO;
    }
@ -512,6 +568,8 @@ public class DailyReportUploadService {
        }else{
            List<BaseDailyReportDetailDO> detailDOS = reportDetailDao.findByReportId(dailyReportUploadDO.getId());
            dailyReportUploadDO.setDetailDOList(detailDOS);
            List<BaseDailyReportLogDO> dailyReportLogDOList = dailyReportLogDao.findByReportId(dailyReportUploadDO.getId());
            dailyReportUploadDO.setDailyReportLogDOList(dailyReportLogDOList);
        }
        return dailyReportUploadDO;
    }
@ -536,6 +594,8 @@ public class DailyReportUploadService {
        for (BaseDailyReportUploadDO tmp:list){
            List<BaseDailyReportDetailDO> detailDOS = reportDetailDao.findByReportId(tmp.getId());
            tmp.setDetailDOList(detailDOS);
            List<BaseDailyReportLogDO> dailyReportLogDOList = dailyReportLogDao.findByReportId(tmp.getId());
            tmp.setDailyReportLogDOList(dailyReportLogDOList);
        }
        return list;
    }
@ -553,6 +613,8 @@ public class DailyReportUploadService {
        }else {
            List<BaseDailyReportDetailDO> detailDOS = reportDetailDao.findByReportId(reportUploadDO.getId());
            reportUploadDO.setDetailDOList(detailDOS);
            List<BaseDailyReportLogDO> dailyReportLogDOList = dailyReportLogDao.findByReportId(reportUploadDO.getId());
            reportUploadDO.setDailyReportLogDOList(dailyReportLogDOList);
        }
        return reportUploadDO;
    }
@ -661,7 +723,7 @@ public class DailyReportUploadService {
            reportCondition += " and up.state ='"+state+"' ";
        }
        String doctorSqlCondition = "";//医生过滤条件
        String doctorSqlCondition = "  and d.identity=0  ";//医生过滤条件
        if (StringUtils.isNoneBlank(idType)) {
            doctorSqlCondition += " and d.id_type = '" + idType + "' ";
        }
@ -737,6 +799,131 @@ public class DailyReportUploadService {
        return mapList;
    }
    /**
     * 首页按照科室列表统计核实
     *
     * @param dept
     * @param idType
     * @param state     核实状态
     * @param startDate
     * @param endDate
     * @return
     */
    public List<Map<String, Object>> selectHeaderListHeshi(String doctor,String dept, String idType, String state, String startDate, String endDate, String name) {
        String reportCondition = "";
        if (StringUtils.isNoneBlank(startDate)) {//上传过滤条件
            reportCondition += " and up.report_date >='" + startDate + "' and up.report_date<='" + endDate + "' ";
        }
        if (StringUtils.isNotBlank(state)){
            reportCondition += " and up.state ='"+state+"' ";
        }
        String doctorSqlCondition = " and d.identity=0 ";//医生过滤条件
        if (StringUtils.isNoneBlank(idType)) {
            doctorSqlCondition += " and d.id_type = '" + idType + "' ";
        }
        if (StringUtils.isNoneBlank(name)) {
            doctorSqlCondition += " and d.name like '%" + name + "%' ";
        }
        if (StringUtils.isNoneBlank(doctor)){
            WlyyHospitalSysDictDO hospitalSysDictDO = hospitalSysDictDao.findById("dailyHeshiConfig");
            String buffer = "";
            if (hospitalSysDictDO!=null){
                JSONArray array = JSONArray.parseArray(hospitalSysDictDO.getDictValue());
                for (int i=0;i<array.size();i++){
                    JSONObject object = array.getJSONObject(i);
                    String header = object.getString("header");
                    if (header.equalsIgnoreCase(doctor)){
                        JSONArray jsonArray = object.getJSONArray("data");
                        for (int j=0;j<jsonArray.size();j++){
                            String str = jsonArray.getString(j);
                            buffer +="'"+str+"',";
                        }
                        buffer =buffer.substring(0,buffer.length()-1);
                    }
                }
            }
            if (StringUtils.isNoneBlank(buffer)){
                doctorSqlCondition += " and d.id IN ("+buffer+")";
            }
        }
        //填报人数、未填报人数、上级已核实、未核实
        String deptSql = " select code,name,dh1.doctorTotal,dh2.yishangbaoTotal,dh3.verified,dh4.notVerified,dh5.shangchuanTotal  from dict_hospital_dept hd  " +
                "LEFT JOIN (select count(1) as 'doctorTotal',dh.dept_code from base_doctor d LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.id " +
                "WHERE d.del = 1 AND dh.del = 1 "+doctorSqlCondition+" GROUP BY dh.dept_code)dh1 ON hd.CODE = dh1.dept_code " +
                "LEFT JOIN(select dh.dept_code,count(up.id) 'yishangbaoTotal' from base_doctor_daily_report_upload up INNER JOIN base_doctor d on up.doctor_id = d.id " +
                "LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.id " +
                "where 1=1 "+doctorSqlCondition+reportCondition+")dh2 ON hd.CODE = dh2.dept_code " +
                "LEFT JOIN(select dh.dept_code,count(distinct up.id) 'verified' from base_doctor_daily_report_upload up LEFT JOIN base_daily_report_detail de on up.id = de.report_id " +
                "INNER JOIN base_doctor d on up.doctor_id = d.id LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.id " +
                "where 1=1 and de.state=1 "+doctorSqlCondition+reportCondition+" )dh3 ON hd.CODE = dh3.dept_code " +
                "LEFT JOIN(select dh.dept_code,count(distinct up.id) 'notVerified' from base_doctor_daily_report_upload up LEFT JOIN base_daily_report_detail de on up.id = de.report_id " +
                "INNER JOIN base_doctor d on up.doctor_id = d.id LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.id " +
                "where 1=1 and de.state=0 "+doctorSqlCondition+reportCondition+")dh4 ON hd.CODE = dh4.dept_code " +
                "LEFT JOIN(select dh.dept_code,count(up.id) 'shangchuanTotal' from base_doctor_daily_report_upload up INNER JOIN base_doctor d on up.doctor_id = d.id " +
                "LEFT JOIN base_doctor_hospital dh ON dh.doctor_code = d.id " +
                "where 1=1 "+reportCondition+")dh5 ON hd.CODE = dh2.dept_code  " +
                " WHERE hd.consult_dept_flag = 1 ";
        if (StringUtils.isNoneBlank(name)) {
            deptSql += " and hd.code IN(SELECT dha.dept_code FROM base_doctor_hospital dha LEFT JOIN base_doctor da ON da.id=dha.doctor_code where da.name LIKE '%" + name + "%') ";
        }
        if (!StringUtils.isNoneBlank(doctor)){
            if (StringUtils.isNoneBlank(dept)) {
                deptSql += " and hd.code = '" + dept + "' ";
            }
        }
        logger.info("deptSql=="+deptSql);
        List<Map<String, Object>> mapList = jdbcTemplate.queryForList(deptSql);
        for (Map<String,Object> deptMap:mapList){
            String day = DateUtil.getTwoDay(endDate, startDate);
            Integer doctorTotal = 0;
            Integer total=0;
            Integer yishangbaoTotal=0;
            Integer weishangbaoTotal=0;
            Integer notVerified=0;
            Integer verified=0;
            Integer shangchuanTotal=0;
            if (deptMap.get("doctorTotal")!=null){
                doctorTotal = Integer.parseInt(deptMap.get("doctorTotal").toString());
                //总人次
                if (!day.equalsIgnoreCase("0")) {
                    total = doctorTotal * (Integer.parseInt(day)+1);
                } else {
                    total = doctorTotal;
                }
            }
            if (deptMap.get("yishangbaoTotal")!=null) {
                yishangbaoTotal = Integer.parseInt(deptMap.get("yishangbaoTotal").toString());
            }
            weishangbaoTotal = total-yishangbaoTotal;
            if (deptMap.get("notVerified")!=null) {
                notVerified = Integer.parseInt(deptMap.get("notVerified").toString());
            }
            if (deptMap.get("verified")!=null) {
                verified = Integer.parseInt(deptMap.get("verified").toString());
            }
            if (deptMap.get("shangchuanTotal")!=null) {
                shangchuanTotal = Integer.parseInt(deptMap.get("shangchuanTotal").toString());
            }
            deptMap.put("total", total);//总人次
            deptMap.put("yishangbaoTotal", yishangbaoTotal);//已上报
            deptMap.put("weishangbaoTotal", weishangbaoTotal);//未上报
            deptMap.put("notVerified", notVerified);//未核实数量
            deptMap.put("verified", verified);//已核实数量
            deptMap.put("shangchuanTotal", shangchuanTotal);//上传总次数
        }
        return mapList;
    }
    /**
     * 具体每一个统计时间列表
     *
@ -762,7 +949,7 @@ public class DailyReportUploadService {
        JSONArray array = new JSONArray();
        for ( i = 0; i < list.size(); i++) {
            String date = list.get(i);
            String doctorSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 ";
            String doctorSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 and d.identity=0  ";
            String deptCondition = "";
            if (StringUtils.isNoneBlank(dept)) {
                deptCondition += " (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 )";
@ -831,7 +1018,7 @@ public class DailyReportUploadService {
        JSONArray array = new JSONArray();
        for (i = 0; i < list.size(); i++) {
            String date = list.get(i);
            String doctorSql = " select d.name,d.id,d.job_title_name as jobTitleName,d.photo from base_doctor d where d.del=1 ";
            String doctorSql = " select d.name,d.id,d.job_title_name as jobTitleName,d.photo from base_doctor d where d.del=1 and d.identity=0  ";
            String deptCondition = "";
            if (StringUtils.isNoneBlank(dept)) {
                deptCondition += " (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 )";
@ -869,7 +1056,7 @@ public class DailyReportUploadService {
                    stateCondition += " and d1.state='"+state+"' ";
                }
                String sql = " select d1.id,d1.state from base_doctor_daily_report_upload d1 where d1.doctor_id='"+id+"' and d1.report_date>='"+date+"' and d1.report_date<='"+date+"' ORDER BY report_date desc ";
                String sql = " select d1.id,d1.state,total_hour from base_doctor_daily_report_upload d1 where d1.doctor_id='"+id+"' and d1.report_date>='"+date+"' and d1.report_date<='"+date+"' ORDER BY report_date desc ";
                List<Map<String, Object>> mapList1 = jdbcTemplate.queryForList(sql);
                if (mapList1 != null && mapList1.size() != 0) {
                    for (Map<String, Object> map1 : mapList1) {
@ -881,6 +1068,8 @@ public class DailyReportUploadService {
                        }
                        map.put("uploadState", "已上报");
                        map.put("uploadId", map1.get("id").toString());
                        map.put("totalHour", map1.get("total_hour"));
                    }
                    map.put("recordList", mapList1);
                } else {
@ -996,10 +1185,113 @@ public class DailyReportUploadService {
                " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
                " left join base_org t on t.id = h.org_code" +
                " WHERE  " +
                " 1=1 and d.del=1 ";
                " 1=1 and d.del=1 and d.identity=0 ";
        if (StringUtils.isNotBlank(dept)) {
            sql += " AND h.dept_code = '" + dept + "'";
        }
        if (StringUtils.isNotBlank(orgCode)) {
            sql += " AND h.org_code = '" + orgCode + "'";
        }
        if (StringUtils.isNotBlank(key)) {
            sql += " AND (h.dept_name like '%" + key + "%' OR d.name like '%" + key + "%' OR d.expertise like '%" + key + "%') ";
        }
        List<Map<String, Object>> list = jdbcTemplate.queryForList(sql);
        for (Map<String,Object> map:list){
            String id = map.get("id").toString();
            List<BaseDailyReportUploadDO> dailyReportUploadDOS = dailyReportUploadDao.selectDailyReportByDoctorAndDate(id,DateUtil.getStringDateShort(),DateUtil.getStringDateShort());
            if (dailyReportUploadDOS!=null&&dailyReportUploadDOS.size()!=0){
                BaseDailyReportUploadDO dailyReportUploadDO = dailyReportUploadDOS.get(0);
                List<BaseDailyReportDetailDO> detailDOList = reportDetailDao.findByReportId(dailyReportUploadDO.getId());
                List<BaseDailyReportLogDO> reportLogDOS = dailyReportLogDao.findByReportId(dailyReportUploadDO.getId());
                dailyReportUploadDO.setDailyReportLogDOList(reportLogDOS);
                dailyReportUploadDO.setDetailDOList(detailDOList);
                String verifiedName = "";
                if ("1".equals(dailyReportUploadDO.getState())) {
                    verifiedName = "已核实";
                } else {
                    verifiedName = "未核实";
                }
                map.put("verifiedName",verifiedName);
                map.put("reportUploadDO",dailyReportUploadDO);
            }else {
                map.put("reportUploadDO",null);
            }
        }
        if (list != null && list.size() > 0 && StringUtils.isNotBlank(doctorCode)) {
            //排序
            for (int i = 0; i < list.size(); i++) {
                String id = (String) list.get(i).get("id");
                if (doctorCode.equals(id)) {
                    Collections.swap(list, 0, i);
                }
            }
        }
        return list;
    }
    /**
     *
     * @param orgCode
     * @param dept
     * @param doctorCode
     * @param key
     * @param flag 是否核实1是0否
     * @return
     */
    public List<Map<String, Object>> findDoctorByHospitalAndDeptHeshi(String doctor,String orgCode, String dept, String doctorCode,String key, Integer flag) {
        String sql = "SELECT " +
                " d.id AS \"id\", " +
                " d.photo AS \"photo\", " +
                " d.name AS \"name\", " +
                " d.expertise AS \"expertise\"," +
                " d.introduce AS \"introduce\"," +
                " d.job_title_code AS \"jobTitleCode\", " +
                " d.job_title_name AS \"jobTitleName\"," +
                " d.charge_type AS \"chargeType\"," +
                " d.outpatient_type AS \"outpatientType\"," +
                " d.consult_status AS \"consultStatus\"," +
                " h.dept_code AS \"deptCode\","+
                " h.dept_name AS \"deptName\","+
                " h.org_code AS \"orgCode\","+
                " h.org_name AS \"orgName\","+
                " t.photo AS \"hosptialphoto\","+
                " d.id_type AS \"idType\","+
                " d.id_card_type AS \"idCardType\" "+
                " FROM " +
                " base_doctor d " +
                " JOIN base_doctor_hospital h ON h.doctor_code = d.id " +
                " left join base_org t on t.id = h.org_code" +
                " WHERE  " +
                " 1=1 and d.del=1 and d.identity=0 ";
        if (StringUtils.isNotBlank(dept)) {
            sql += " AND h.dept_code = '" + dept + "'";
        }
        if (StringUtils.isNoneBlank(doctor)){
            WlyyHospitalSysDictDO hospitalSysDictDO = hospitalSysDictDao.findById("dailyHeshiConfig");
            String buffer = "";
            if (hospitalSysDictDO!=null){
                JSONArray array = JSONArray.parseArray(hospitalSysDictDO.getDictValue());
                for (int i=0;i<array.size();i++){
                    JSONObject object = array.getJSONObject(i);
                    String header = object.getString("header");
                    if (header.equalsIgnoreCase(doctor)){
                        JSONArray jsonArray = object.getJSONArray("data");
                        for (int j=0;j<jsonArray.size();j++){
                            String str = jsonArray.getString(j);
                            buffer +="'"+str+"',";
                        }
                        buffer =buffer.substring(0,buffer.length()-1);
                    }
                }
            }
            if (StringUtils.isNoneBlank(buffer)){
                sql += " and d.id IN ("+buffer+")";
            }
        }
        if (StringUtils.isNotBlank(orgCode)) {
            sql += " AND h.org_code = '" + orgCode + "'";
        }
@ -1014,6 +1306,8 @@ public class DailyReportUploadService {
            if (dailyReportUploadDOS!=null&&dailyReportUploadDOS.size()!=0){
                BaseDailyReportUploadDO dailyReportUploadDO = dailyReportUploadDOS.get(0);
                List<BaseDailyReportDetailDO> detailDOList = reportDetailDao.findByReportId(dailyReportUploadDO.getId());
                List<BaseDailyReportLogDO> reportLogDOS = dailyReportLogDao.findByReportId(dailyReportUploadDO.getId());
                dailyReportUploadDO.setDailyReportLogDOList(reportLogDOS);
                dailyReportUploadDO.setDetailDOList(detailDOList);
                String verifiedName = "";
                if ("1".equals(dailyReportUploadDO.getState())) {
@ -1060,7 +1354,7 @@ public class DailyReportUploadService {
            endDate = DateUtil.getLastDayOfMonth();
        }
        String day = DateUtil.getTwoDay(endDate, startDate);
        String doctorSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 ";
        String doctorSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 and d.identity=0  ";
        Integer total = 0;//总人次
        String sqlCondition = "";
        if (level==2){
@ -1174,7 +1468,7 @@ public class DailyReportUploadService {
        JSONObject object = new JSONObject();
        String day = DateUtil.getTwoDay(endDate, startDate);
        String doctorSql = " select COUNT(1) as \"total\" from base_doctor d where d.del=1 ";
        String doctorSql = " select COUNT(1) as \"total\" from base_doctor d where d.del=1 and d.identity=0 ";
        Integer total = 0;//总人次
        String sql = "select COUNT(DISTINCT d.id) as \"total\" from base_doctor_daily_report_upload d inner join base_daily_report_detail de " +
                " on d.id = de.report_id where 1=1 ";
@ -1184,7 +1478,7 @@ public class DailyReportUploadService {
        }
        String idTypeCondition = " ";
        if (StringUtils.isNoneBlank(idType)) {
            idTypeCondition += "  (select d1.id from base_doctor d1 where 1=1 and d1.id_type = '" + idType + "')";
            idTypeCondition += "  (select d1.id from base_doctor d1 where 1=1 and  d1.identity=0 and d1.id_type = '" + idType + "')";
        }
        if (StringUtils.isNoneBlank(deptCondition)) {
            doctorSql += " and d.id IN " + deptCondition;

+ 2 - 0
business/base-service/src/main/java/com/yihu/jw/order/BusinessOrderService.java

@ -2258,11 +2258,13 @@ public class BusinessOrderService extends BaseJpaService<BusinessOrderDO,Busines
                    WlyyOutpatientDO outpatientDO = outpatientDao.findById(relationCode);
                    map.put("doctorName",outpatientDO.getDoctorName());
                    map.put("consumerName",outpatientDO.getConsumerName());
                    map.put("patientName",outpatientDO.getPatientName());
                }else if (orderCategoryFlag.equalsIgnoreCase("4")){
                    WlyyPrescriptionDO prescriptionDO = prescriptionDao.findOne(relationCode);
                    WlyyOutpatientDO outpatientDO = outpatientDao.findById(prescriptionDO.getOutpatientId());
                    map.put("doctorName",outpatientDO.getDoctorName());
                    map.put("consumerName",outpatientDO.getConsumerName());
                    map.put("patientName",outpatientDO.getPatientName());
                }
            }
        }

+ 10 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/base/doctor/BaseDoctorDO.java

@ -308,6 +308,16 @@ public class BaseDoctorDO extends UuidIdentityEntityWithOperator {
    private String atddrNo;//国码
    private String identity;//身份1是总经理,0是员工
    public String getIdentity() {
        return identity;
    }
    public void setIdentity(String identity) {
        this.identity = identity;
    }
    public String getAtddrNo() {
        return atddrNo;
    }

+ 73 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/dailyReport/BaseDailyReportLogDO.java

@ -0,0 +1,73 @@
package com.yihu.jw.entity.dailyReport;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yihu.jw.entity.UuidIdentityEntityWithOperator;
import javax.persistence.Entity;
import javax.persistence.Table;
import java.util.Date;
/**
 * Created by Bing on 2022/7/25.
 * 日报操作日志
 */
@Entity
@Table(name="base_daily_report_log")
public class BaseDailyReportLogDO extends UuidIdentityEntityWithOperator {
    private String reportId;//每日日报id
    private String operateUser;//操作人
    private String operateUserName;//操作人名字
    private Integer type;//类型
    private String typeName;//1日报提交2上级核实未存疑3上级核实存疑4存疑核实
    private String content;//操作内容
    public String getReportId() {
        return reportId;
    }
    public void setReportId(String reportId) {
        this.reportId = reportId;
    }
    public String getOperateUser() {
        return operateUser;
    }
    public void setOperateUser(String operateUser) {
        this.operateUser = operateUser;
    }
    public String getOperateUserName() {
        return operateUserName;
    }
    public void setOperateUserName(String operateUserName) {
        this.operateUserName = operateUserName;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getTypeName() {
        return typeName;
    }
    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
}

+ 20 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/dailyReport/BaseDailyReportUploadDO.java

@ -22,9 +22,29 @@ public class BaseDailyReportUploadDO extends UuidIdentityEntityWithOperator {
    private Integer leaveState;//请假状态0未请假1请假
    private String leaveHour;//请假时长
    private String reportDate; //上报日期
    private String totalHour;//上报时长
    public String getTotalHour() {
        return totalHour;
    }
    public void setTotalHour(String totalHour) {
        this.totalHour = totalHour;
    }
    private List<BaseDailyReportDetailDO> detailDOList;
    private List<BaseDailyReportLogDO> dailyReportLogDOList;
    @Transient
    public List<BaseDailyReportLogDO> getDailyReportLogDOList() {
        return dailyReportLogDOList;
    }
    public void setDailyReportLogDOList(List<BaseDailyReportLogDO> dailyReportLogDOList) {
        this.dailyReportLogDOList = dailyReportLogDOList;
    }
    public String getDoctorId() {
        return doctorId;
    }

+ 47 - 1
svr/svr-internet-hospital/src/main/java/com/yihu/jw/hospital/endpoint/dailyReport/DailyReportUploadPoint.java

@ -114,6 +114,8 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
                                        @RequestParam(value = "leaveHour", required = false,defaultValue = "0") String leaveHour,
                                        @ApiParam(name = "week_name", value = "星期一...")
                                        @RequestParam(value = "week_name", required = true) String week_name,
                                        @ApiParam(name = "totalHour", value = "上报时长")
                                            @RequestParam(value = "totalHour", required = false) String totalHour,
                                        @ApiParam(name = "jsonData", value = "事项信息实体")
                                        @RequestParam(value = "jsonData", required = true) String jsonData) {
        try {
@ -121,7 +123,7 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
            if (StringUtils.isNoneBlank(jsonData)){
                healthUploadDOs = JSONArray.parseArray(jsonData,BaseDailyReportDetailDO.class);
            }
            BaseDailyReportUploadDO dailyReport = dailyReportUploadService.createDailyReport(doctorId,report_date,leaveState,leaveHour,week_name,healthUploadDOs);
            BaseDailyReportUploadDO dailyReport = dailyReportUploadService.createDailyReport(doctorId,report_date,leaveState,leaveHour,week_name,totalHour,healthUploadDOs);
            return success(dailyReport);
        } catch (Exception e) {
            return failedObjEnvelopException(e);
@ -287,6 +289,29 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "selectHeaderListHeshi")
    @ApiOperation(value = "首页按照科室统计")
    public ListEnvelop selectHeaderListHeshi(@ApiParam(name = "dept", value = "科室code")
                                        @RequestParam(value = "dept", required = false) String dept,
                                             @ApiParam(name = "doctor", value = "当前用户")
                                             @RequestParam(value = "doctor", required = false) String doctor,
                                        @ApiParam(name = "idType", value = "身份类别")
                                        @RequestParam(value = "idType", required = false) String idType,
                                        @ApiParam(name = "state", value = "核实状态0未核实1已核实")
                                        @RequestParam(value = "state", required = false) String state,
                                        @ApiParam(name = "startDate", value = "开始时间")
                                        @RequestParam(value = "startDate", required = false) String startDate,
                                        @ApiParam(name = "endDate", value = "结束时间")
                                        @RequestParam(value = "endDate", required = false) String endDate,
                                        @ApiParam(name = "name", value = "姓名")
                                        @RequestParam(value = "name", required = false) String name) {
        try {
            return success(dailyReportUploadService.selectHeaderListHeshi(doctor,dept,idType,state,startDate,endDate,name));
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "selectListByTotal")
    @ApiOperation(value = "获取列表的时间及数量")
    public ListEnvelop selectListByTotal(@ApiParam(name = "dept", value = "科室code")
@ -384,6 +409,27 @@ public class DailyReportUploadPoint extends EnvelopRestEndpoint {
        }
    }
    @GetMapping(value = "findDoctorByHospitalAndDeptHeshi")
    @ApiOperation(value = "查询部门下医生", notes = "查询部门下医生")
    public ListEnvelop findDoctorByHospitalAndDeptHeshi(@ApiParam(name = "orgCode", value = "机构code")
                                                   @RequestParam(value = "orgCode", required = false) String orgCode,
                                                        @ApiParam(name = "doctor", value = "当前账户")
                                                        @RequestParam(value = "doctor", required = false) String doctor,
                                                   @ApiParam(name = "dept", value = "部门code")
                                                   @RequestParam(value = "dept", required = false) String dept,
                                                   @ApiParam(name = "doctorCode", value = "需要置顶医生")
                                                   @RequestParam(value = "doctorCode", required = false) String doctorCode,
                                                   @ApiParam(name = "key", value = "关键字搜索,医生名字/科室名称/专长")
                                                   @RequestParam(value = "key", required = false) String key,
                                                   @ApiParam(name = "flag", value = "是否核实0未核实1已核实")
                                                   @RequestParam(value = "flag", required = false) Integer flag) {
        try {
            return success(dailyReportUploadService.findDoctorByHospitalAndDeptHeshi(doctor,orgCode, dept, doctorCode, key, flag));
        } catch (Exception e) {
            return failedListEnvelopException(e);
        }
    }
    @GetMapping(value = "selectIndexTotalCircle")
    @ApiOperation(value = "首页上报分析", notes = "首页上报分析")
    public Envelop selectIndexTotalCircle(@ApiParam(name = "flag", value = "1周2月")