| 
					
				 | 
			
			
				@ -0,0 +1,1294 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				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.BaseDailyReportUploadDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.doctor.dao.BaseDoctorDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.doctor.dao.BaseDoctorRoleDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.doctor.BaseDoctorDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.doctor.BaseDoctorHospitalDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.base.doctor.BaseDoctorRoleDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				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.BaseDailyReportUploadDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.healthUpload.BaseDoctorMemberDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.consult.WlyyHospitalSysDictDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.entity.hospital.enterprise.WxEnterpriseUserDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.healthUpload.dao.BaseDoctorMemberDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.hospital.dict.WlyyHospitalSysDictDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.common.PwdUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.date.DateUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.idcard.IdCardUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.util.wechat.WeixinMessagePushUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.utils.StringUtil; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.dao.WxPushLogDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.dao.WxTemplateConfigDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.enterprise.EnterpriseService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.enterprise.dao.WxEnterpriseUserDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.wechat.service.WxAccessTokenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.collections.map.HashedMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.apache.commons.lang3.StringUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.BeanUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.Page; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.data.domain.PageRequest; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.jdbc.core.JdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.stereotype.Service; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.transaction.annotation.Transactional; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.OutputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * Created by Bing on 2022/7/25. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Service 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class DailyReportUploadService { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDailyReportUploadDao dailyReportUploadDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDailyReportDetailDao reportDetailDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorMemberDao doctorMemberDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorDao baseDoctorDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorRoleDao doctorRoleDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WlyyHospitalSysDictDao hospitalSysDictDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WxTemplateConfigDao wxTemplateConfigDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private BaseDoctorHospitalDao baseDoctorHospitalDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WxAccessTokenService wxAccessTokenService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WeixinMessagePushUtils weixinMessagePushUtils; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WxPushLogDao wxPushLogDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private JdbcTemplate jdbcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private WxEnterpriseUserDao wxEnterpriseUserDao; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Value("${wechat.id}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String wechatId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private EnterpriseService enterpriseService; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private static Logger logger = LoggerFactory.getLogger(DailyReportUploadService.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 新增医生成员关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param ids      逗号隔开 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<BaseDoctorMemberDO> saveAndCreateMember(String doctorId, String ids) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String str[] = ids.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorMemberDO> baseDoctorMemberDOList = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (int i = 0; i < str.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String memberId = str[i]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseDoctorMemberDO memberDO = doctorMemberDao.findByDoctorIdAndMemberIdAndDel(doctorId, memberId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (memberDO == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BaseDoctorMemberDO baseDoctorMemberDO = new BaseDoctorMemberDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorMemberDO.setDel(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorMemberDO.setDoctorId(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorMemberDO.setMemberId(memberId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorMemberDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorMemberDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorMemberDO = doctorMemberDao.save(baseDoctorMemberDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorMemberDOList.add(baseDoctorMemberDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return baseDoctorMemberDOList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 删除某个成员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param id 成员id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDoctorMemberDO delDoctorMember(String id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorMemberDO baseDoctorMemberDO = doctorMemberDao.findById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorMemberDO.setDel(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorMemberDO = doctorMemberDao.save(baseDoctorMemberDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return baseDoctorMemberDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询医生的成员列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<BaseDoctorMemberDO> selectByDoctorId(String doctorId) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorMemberDO> baseDoctorMemberDOList = doctorMemberDao.findByDoctorIdAndDel(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorMemberDO memberDO1 = doctorMemberDao.findByDoctorIdAndMemberIdAndDel(doctorId, doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //添加本人 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (memberDO1 == null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseDoctorMemberDO baseDoctorMemberDO = new BaseDoctorMemberDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorMemberDO.setDel(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorMemberDO.setDoctorId(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorMemberDO.setMemberId(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorMemberDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorMemberDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorMemberDO = doctorMemberDao.save(baseDoctorMemberDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (BaseDoctorMemberDO memberDO : baseDoctorMemberDOList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(memberDO.getMemberId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (baseDoctorDO != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                memberDO.setBaseDoctorDO(baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return baseDoctorMemberDOList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 新增加医生信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param photo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idcard 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param sex 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param mobile 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param deptName 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idCardType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDoctorDO saveDoctorInfo(String id, String photo, String name, String idcard, String sex, String mobile, String dept, String deptName, String idCardType, String idType, Integer mark) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO baseDoctorDO = new BaseDoctorDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(id)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO = baseDoctorDao.findById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setIdCardType(idCardType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setIdType(idType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setPhoto(photo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setName(name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setIdcard(idcard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setSex(Integer.parseInt(sex)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setMobile(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setMark(mark); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String deptCode = dept; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setChargeType("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO = baseDoctorDao.save(baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BaseDoctorHospitalDO> baseDoctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null != baseDoctorHospitalDOS && baseDoctorHospitalDOS.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDao.delete(baseDoctorHospitalDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BaseDoctorHospitalDO baseDoctorHospitalDO = new BaseDoctorHospitalDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setOrgCode("350211A1002"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setOrgName("马銮湾医院"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDeptCode(deptCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDeptName(deptName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDao.save(baseDoctorHospitalDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BaseDoctorHospitalDO baseDoctorHospitalDO = new BaseDoctorHospitalDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setOrgCode("350211A1002"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setOrgName("马銮湾医院"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDeptCode(deptCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDeptName(deptName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDao.save(baseDoctorHospitalDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setIdcard(idcard); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setBirthday(IdCardUtil.getBirthdayForIdcard(idcard)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setSex(Integer.parseInt(sex)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setLocked(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setEnabled(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setMark(mark); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String disableFlag = "0"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //互联网医院:1停用,0使用  转 i健康:1正常,0作废 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setDel("1".equals(disableFlag) ? "0" : "1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setMobile("0"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setName(name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setIsFamous(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setUpdateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setIdCardType(idCardType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setIdType(idType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setPhoto(photo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setMobile(mobile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO.setChargeType("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(mobile)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorDO.setSalt(PwdUtil.randomString(5)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    baseDoctorDO.setPassword(com.yihu.utils.security.MD5.md5Hex(baseDoctorDO.getMobile().substring(baseDoctorDO.getMobile().length() - 6) + "{" + baseDoctorDO.getSalt() + "}")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorDO.setPassword(com.yihu.utils.security.MD5.md5Hex("123456" + "{" + baseDoctorDO.getSalt() + "}")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 用医生和机构id、部门判断数据是否存在,若不存在则保存医生机构关联关系 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String deptCode = dept; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorDO = baseDoctorDao.save(baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BaseDoctorHospitalDO> baseDoctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null != baseDoctorHospitalDOS && baseDoctorHospitalDOS.size() > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDao.delete(baseDoctorHospitalDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BaseDoctorHospitalDO baseDoctorHospitalDO = new BaseDoctorHospitalDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setOrgCode("350211A1002"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setOrgName("马銮湾医院"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDeptCode(deptCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDeptName(deptName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDao.save(baseDoctorHospitalDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BaseDoctorHospitalDO baseDoctorHospitalDO = new BaseDoctorHospitalDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setOrgCode("350211A1002"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setOrgName("马銮湾医院"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDoctorCode(baseDoctorDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDeptCode(deptCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDeptName(deptName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setDel("1"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDO.setCreateTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                baseDoctorHospitalDao.save(baseDoctorHospitalDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return baseDoctorDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询医生的成员列表带有已上报次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<BaseDoctorMemberDO> selectCountByDoctorId(String doctorId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorMemberDO> baseDoctorMemberDOList = doctorMemberDao.findByDoctorIdAndDel(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (BaseDoctorMemberDO memberDO : baseDoctorMemberDOList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(memberDO.getMemberId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (baseDoctorDO != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                memberDO.setBaseDoctorDO(baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BaseDailyReportUploadDO> dailyReportUploadDOS = dailyReportUploadDao.findByDoctorId(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            memberDO.setCount(dailyReportUploadDOS.size()+""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return baseDoctorMemberDOList; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询某一个成员id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param id 成员id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDoctorMemberDO selectById(String id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorMemberDO baseDoctorMemberDO = doctorMemberDao.findById(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (baseDoctorMemberDO==null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO baseDoctorDO = baseDoctorDao.findById(baseDoctorMemberDO.getMemberId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (baseDoctorDO != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            baseDoctorMemberDO.setBaseDoctorDO(baseDoctorDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(baseDoctorMemberDO.getMemberId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        baseDoctorMemberDO.setDoctorHospitalDOS(doctorHospitalDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return baseDoctorMemberDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 提交每日上报信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param report_date 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param week_name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param detailDOList 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @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 { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorHospitalDO> doctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null==doctorDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("上报人不存在"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (1==leaveState){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNotBlank(leaveHour)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (Integer.parseInt(leaveHour)<8&&detailDOList.size()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    throw new Exception("上传失败,请假未满8小时需要提交完成内容"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtil.isBlank(report_date)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            report_date = DateUtil.getStringDateShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            week_name = DateUtil.getWeek(report_date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDailyReportUploadDO dailyReportUploadDO = dailyReportUploadDao.findByDoctorIdAndReportDate(doctorId,report_date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null==dailyReportUploadDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dailyReportUploadDO = new BaseDailyReportUploadDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dailyReportUploadDO.setState(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportDetailDao.deleteByReportIdAndState(dailyReportUploadDO.getId(),0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDO.setDoctorId(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDO.setDoctorName(doctorDO.getName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDO.setReportDate(report_date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDO.setWeekName(week_name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDO.setLeaveState(leaveState); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDO.setLeaveHour(leaveHour); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDO = dailyReportUploadDao.save(dailyReportUploadDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (BaseDailyReportDetailDO tmp :detailDOList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            tmp.setReportId(dailyReportUploadDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (detailDOList.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportDetailDao.save(detailDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDailyReportDetailDO> detailDOS = reportDetailDao.findByReportId(dailyReportUploadDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (reportDetailDao.findByReportIdAndState(dailyReportUploadDO.getId(),0).size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dailyReportUploadDO.setState(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String senderID="";//日报发送对象 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select dict_value from wlyy_hospital_sys_dict where dict_name='BOOS_ADMIN_SENDER'  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> boosSenderIds = jdbcTemplate.queryForList(sql,String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String boosID = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (boosSenderIds.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            boosID=boosSenderIds.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDoctorRoleDO> roleDOS = doctorRoleDao.findByDoctorCode(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (roleDOS.size()==0){//普通员工 需要查询对应上级人员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (doctorHospitalDOS != null && doctorHospitalDOS.size() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                BaseDoctorHospitalDO doctorHospitalDO = doctorHospitalDOS.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                sql = " select role.doctor_code from base_doctor_role role INNER JOIN base_doctor_hospital dh  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "on role.doctor_code = dh.doctor_code and dh.dept_code='"+doctorHospitalDO.getDeptCode()+"'  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        "where role.role_code='deptAdmin' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<String> deptAdmins = jdbcTemplate.queryForList(sql,String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (deptAdmins.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    senderID = deptAdmins.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    senderID=boosID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else {//部门管理员 发送对象为老板 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            senderID = boosID; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNotBlank(senderID)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            BaseDoctorDO remindDoctorDO = baseDoctorDao.findById(senderID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            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 = "您好,"+doctorDO.getName()+"已提交每日日报,请点击前往审核。"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String url = "https://ehr.yihu.com/hlwyy/zjxl/dailyReport/#/workSummary/commit?mode=verify&id="+dailyReportUploadDO.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String res = enterpriseService.sendTWMesByDoctor(wechatId,remindDoctorDO.getId(),title,des,url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDao.save(dailyReportUploadDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDO.setDetailDOList(detailDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return dailyReportUploadDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 核实审核信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDailyReportUploadDO verifiedItem(String doctorId,String reportId,List<BaseDailyReportDetailDO> detailDOList) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null==doctorDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw  new Exception("无权限审核"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDailyReportUploadDO dailyReportUploadDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        dailyReportUploadDO = dailyReportUploadDao.findOne(reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null==dailyReportUploadDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw  new Exception("核实记录未查询到"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(detailDOList.size()>0){//无完成事项内容 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            boolean doubt  =false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (BaseDailyReportDetailDO tmp:detailDOList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (1==tmp.getDoubt()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doubt = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                tmp.setVerificationTime(new Date()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportDetailDao.save(detailDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BaseDailyReportDetailDO> detailDOS = reportDetailDao.findByReportId(dailyReportUploadDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dailyReportUploadDO.setDetailDOList(detailDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (reportDetailDao.findByReportIdAndState(dailyReportUploadDO.getId(),0).size()==0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dailyReportUploadDO.setState(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dailyReportUploadDao.save(dailyReportUploadDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (doubt==true){//有疑惑,推送给总经办"0592181"和老板"0592008";//老板id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                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){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        BaseDoctorDO remindDoctorDO = baseDoctorDao.findById(senderUser); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        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 = "您好,"+doctorDO.getName()+"对"+dailyReportUploadDO.getDoctorName()+"已提交的每日日报有存疑,请点击前往审核。"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String url = "https://ehr.yihu.com/hlwyy/zjxl/dailyReport/#/workSummary/commit?mode=verify&id="+dailyReportUploadDO.getId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                    String res = enterpriseService.sendTWMesByDoctor(wechatId,remindDoctorDO.getId(),title,des,url); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    }catch (Exception e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dailyReportUploadDO.setState(1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dailyReportUploadDao.save(dailyReportUploadDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return dailyReportUploadDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *核实每日报表疑惑 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Transactional(rollbackFor = Exception.class) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public  BaseDailyReportUploadDO verifiedDoubtItem(String doctorId,List<BaseDailyReportDetailDO> detailDOList) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDoctorDO doctorDO = baseDoctorDao.findById(doctorId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null==doctorDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("无权限审核"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " select dict_value from wlyy_hospital_sys_dict where dict_name='MRRB_DOUBT_SENDER'  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> doubtSendUser = jdbcTemplate.queryForList(sql,String.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!doubtSendUser.contains(doctorId)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("无权限审核"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDailyReportUploadDO dailyReportUploadDO = new BaseDailyReportUploadDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if(detailDOList.size()>0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dailyReportUploadDO = dailyReportUploadDao.findOne(detailDOList.get(0).getReportId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null == dailyReportUploadDO) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                throw new Exception("核实记录未查询到"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportDetailDao.save(detailDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return dailyReportUploadDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取当天日报上传记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDailyReportUploadDO selectReportByDoctorId2(String doctor){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String nowDate = DateUtil.getStringDateShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDailyReportUploadDO dailyReportUploadDO = dailyReportUploadDao.findByDoctorIdAndReportDate(doctor,nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null==dailyReportUploadDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BaseDailyReportDetailDO> detailDOS = reportDetailDao.findByReportId(dailyReportUploadDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dailyReportUploadDO.setDetailDOList(detailDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return dailyReportUploadDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查询成员的日报上传记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param page 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param pageSize 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Page<BaseDailyReportUploadDO> selectReportByDoctorId(String doctorId,String startDate,String endDate,Integer page,Integer pageSize){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        PageRequest pageRequest = new PageRequest(page - 1, pageSize); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Page<BaseDailyReportUploadDO> list = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            list = dailyReportUploadDao.selectDailyReportByDoctorAndDateAndPage(doctorId, startDate, endDate, pageRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            list = dailyReportUploadDao.selectDailyReportByDoctor(doctorId, pageRequest); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        for (BaseDailyReportUploadDO tmp:list){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BaseDailyReportDetailDO> detailDOS = reportDetailDao.findByReportId(tmp.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            tmp.setDetailDOList(detailDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return list; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 根据id查看日报记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param reportId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws Exception 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDailyReportUploadDO selectReportById(String reportId) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDailyReportUploadDO reportUploadDO = dailyReportUploadDao.findOne(reportId); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null==reportUploadDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            throw new Exception("未找到日报记录"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<BaseDailyReportDetailDO> detailDOS = reportDetailDao.findByReportId(reportUploadDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportUploadDO.setDetailDOList(detailDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return reportUploadDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 医生首页 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorId 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject selectDailyReportByRole(String dept,Integer level,String doctorId){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject result = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String nowDate = DateUtil.getStringDateShort(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDailyReportUploadDO reportUploadDO = dailyReportUploadDao.findByDoctorIdAndReportDate(doctorId,nowDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (null==reportUploadDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            reportUploadDO = new BaseDailyReportUploadDO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //今日本人上报数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String benrenTotalSql = " select count(1) from base_doctor_daily_report_upload where doctor_id='"+doctorId+"' and report_date>='"+nowDate+"' and report_date<='"+nowDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //本人已上报数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String benrenshangbaoTotalSql = " select count(1) from base_doctor_daily_report_upload where doctor_id='"+doctorId+"'  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //本人上级未核实事项数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String benrenVerifiedSql = " select count(distinct up.id) from base_doctor_daily_report_upload up inner join base_daily_report_detail de on up.id = de.report_id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where up.doctor_id='"+doctorId+"' and  de.state=1 and report_date>='"+nowDate+"' and report_date<='"+nowDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //本人上级已核实事项数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String benrenNotVerifiedSql = " select count(distinct up.id) from base_doctor_daily_report_upload up inner join base_daily_report_detail de on up.id = de.report_id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " where up.doctor_id='"+doctorId+"' and  de.state=0 and report_date>='"+nowDate+"' and report_date<='"+nowDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //科室总人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String doctorTotalSql = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //科室总上报人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlTotalSql = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //科室已核实人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String verifiedSql = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //科室未核实人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String notVerifiedSql = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level == 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //总人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorTotalSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //今日上报人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlTotalSql = " select count(1) from base_doctor_daily_report_upload  where  report_date>='"+nowDate+"' and report_date<='"+nowDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //今日核实数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            verifiedSql = " select count(distinct up.id) from base_doctor_daily_report_upload up inner join base_daily_report_detail de on up.id = de.report_id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " where  de.state=1 and report_date>='"+nowDate+"' and report_date<='"+nowDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //今日未核实数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            notVerifiedSql = " select count(distinct up.id) from base_doctor_daily_report_upload up inner join base_daily_report_detail de on up.id = de.report_id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " where   de.state=0 and report_date>='"+nowDate+"' and report_date<='"+nowDate+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else if (level == 2) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //总人次 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorTotalSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 and id  " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 )"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //今日上报人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlTotalSql = " select count(1) from base_doctor_daily_report_upload  where  report_date>='"+nowDate+"' and report_date<='"+nowDate+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " and doctor_id in (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //今日核实数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            verifiedSql = " select count(distinct up.id) from base_doctor_daily_report_upload up inner join base_daily_report_detail de on up.id = de.report_id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " where  de.state=1 and report_date>='"+nowDate+"' and report_date<='"+nowDate+"'" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " and up.doctor_id in (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 )  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //今日未核实数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            notVerifiedSql = " select count(distinct up.id) from base_doctor_daily_report_upload up inner join base_daily_report_detail de on up.id = de.report_id" + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " where   de.state=0 and report_date>='"+nowDate+"' and report_date<='"+nowDate+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    " and up.doctor_id in (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer benrenTotal =  jdbcTemplate.queryForObject(benrenTotalSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer benrenshangbaoTotal = jdbcTemplate.queryForObject(benrenshangbaoTotalSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer benrenVerified = jdbcTemplate.queryForObject(benrenVerifiedSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer benrenNotVerified = jdbcTemplate.queryForObject(benrenNotVerifiedSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("benrenTotal", benrenTotal);//今日本人提交 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("benrenshangbaoTotal", benrenshangbaoTotal);//本人已上报数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("benrenVerified",benrenVerified);//本人上级未核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("benrenNotVerified",benrenNotVerified);//本人上级已核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer doctorTotal =  jdbcTemplate.queryForObject(doctorTotalSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer sqlTotal =  jdbcTemplate.queryForObject(sqlTotalSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer verified =  jdbcTemplate.queryForObject(verifiedSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer notVerified =  jdbcTemplate.queryForObject(notVerifiedSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("doctorTotal", doctorTotal);//科室总人次 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("sqlTotal", sqlTotal);//科室今日上报人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("notUploadTotal", doctorTotal - sqlTotal);//今日未上报人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("verified",verified);//科室未核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("notVerified",notVerified);//科室已核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        result.put("reportUploadDO",reportUploadDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 首页按照科室列表统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param state     核实状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<Map<String, Object>> selectHeaderList(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 = "";//医生过滤条件 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(idType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorSqlCondition += " and d.id_type = '" + idType + "' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorSqlCondition += " and d.name like '%" + name + "%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //填报人数、未填报人数、上级已核实、未核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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(dept)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            deptSql += " and hd.code = '" + dept + "' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 具体每一个统计时间列表 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param status 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray selectListByTotal(String dept, String idType, String status, String state, String startDate, String endDate, String name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date startTime = DateUtil.strToDateShort(startDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date endDateTime = DateUtil.strToDateShort(endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int i=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        do{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startTime = DateUtil.getPreDays(startTime, i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String str = DateUtil.dateToStrShort(startTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            list.add(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            i=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }while (startTime.before(endDateTime)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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 deptCondition = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(dept)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                deptCondition += " (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 )"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String idTypeCondition = " "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(idType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                idTypeCondition += "  (select d1.id from base_doctor d1 where 1=1 and d1.id_type = '" + idType + "')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(deptCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doctorSql += " and d.id IN " + deptCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(idTypeCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doctorSql += " and d.id IN " + idTypeCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(status)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (status.equalsIgnoreCase("1")) {//已上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorSql += " and d.id in(select d1.doctor_id from base_doctor_daily_report_upload d1 where 1=1 and d1.report_date >='" + date + "' and d1.report_date<='" + date + "' ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else if (status.equalsIgnoreCase("2")) {//未上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorSql += " and d.id not in(select d1.doctor_id from base_doctor_daily_report_upload d1 where 1=1 and d1.report_date >='" + date + "' and d1.report_date<='" + date + "' ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(state)) {//核实状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doctorSql +=" and d.id in(select d1.doctor_id from base_doctor_daily_report_upload d1 where 1=1 and d1.report_date >='" + date + "' and d1.report_date<='" + date +"' and d1.state='"+state+"' ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doctorSql += " and d.name LIKE  '%" + name + "%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Map<String, Object> map = jdbcTemplate.queryForMap(doctorSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            Integer total = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (map != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (map.get("total") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    total = Integer.parseInt(map.get("total").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            object.put("time", date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            object.put("total", total); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            array.add(object); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return array; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 获取列表的具体人员信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param status 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param name      total 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONArray selectListInfoByTotal(String dept, String idType, String status, String state, String startDate, String endDate, String name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<String> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date startTime = DateUtil.strToDateShort(startDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Date endDateTime = DateUtil.strToDateShort(endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        int i=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        do{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startTime = DateUtil.getPreDays(startTime, i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String str = DateUtil.dateToStrShort(startTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            list.add(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            i=1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }while (startTime.before(endDateTime)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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 deptCondition = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(dept)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                deptCondition += " (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 )"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String idTypeCondition = " "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(idType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                idTypeCondition += "  (select d1.id from base_doctor d1 where 1=1 and d1.id_type = '" + idType + "')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(deptCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doctorSql += " and d.id IN " + deptCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(idTypeCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doctorSql += " and d.id IN " + idTypeCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(status)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (status.equalsIgnoreCase("1")) {//已上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorSql += " and d.id in(select d1.doctor_id from base_doctor_daily_report_upload d1 where 1=1 and d1.report_date >='" + date + "' and d1.report_date<='" + date + "' ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else if (status.equalsIgnoreCase("2")) {//未上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    doctorSql += " and d.id not in(select d1.doctor_id from base_doctor_daily_report_upload d1 where 1=1 and d1.report_date >='" + date + "' and d1.report_date<='" + date + "' ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(state)) {//核实状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doctorSql += " and d.id in(select d1.doctor_id from base_doctor_daily_report_upload d1 where 1=1 and d1.report_date >='" + date + "' and d1.report_date<='" + date + "' and d1.state='" + state + "' ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (StringUtils.isNoneBlank(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                doctorSql += " and d.name LIKE  '%" + name + "%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            List<Map<String, Object>> mapList = jdbcTemplate.queryForList(doctorSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            for (Map<String, Object> map : mapList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String id = map.get("id").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<BaseDoctorHospitalDO> hospitalDOList = baseDoctorHospitalDao.findByDoctorCode(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                map.put("deptInfo", hospitalDOList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                String stateCondition = "";//核实状态 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (StringUtils.isNoneBlank(state)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    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 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<Map<String, Object>> mapList1 = jdbcTemplate.queryForList(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if (mapList1 != null && mapList1.size() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    for (Map<String, Object> map1 : mapList1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        String stateMap = map1.get("state").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        if("1".equals(stateMap)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            map1.put("verifiedState", "已核实"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                            map1.put("verifiedState", "未核实"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        map.put("uploadState", "已上报"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                        map.put("uploadId", map1.get("id").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    map.put("recordList", mapList1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    map.put("verifiedState", "未知"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    map.put("uploadState", "未上报"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    map.put("uploadId", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    map.put("report_date", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    map.put("recordList", mapList1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            object.put("time", date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            object.put("list", mapList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            array.add(object); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return array; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 报表导出 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public JSONArray pushListWriteDailyReport(OutputStream os, String startDate, String endDate, String dept) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        List<String> list = new ArrayList<>(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Date startTime = DateUtil.strToDateShort(startDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        Date endDateTime = DateUtil.strToDateShort(endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        int i=0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        do{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            startTime = DateUtil.getPreDays(startTime, i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String str = DateUtil.dateToStrShort(startTime); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            list.add(str); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            i++; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        }while (startTime.before(endDateTime)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        JSONArray array = new JSONArray(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        for (i = 0; i < list.size(); i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String date = list.get(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String doctorSql = " select id,name,job_title_name from base_doctor d where d.del=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if (StringUtils.isNoneBlank(dept)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                doctorSql += " and d.id in (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 )"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            List<Map<String, Object>> mapList = jdbcTemplate.queryForList(doctorSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            for (Map<String, Object> map : mapList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                String id = map.get("id").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                List<BaseDoctorHospitalDO> baseDoctorHospitalDOS = baseDoctorHospitalDao.findByDoctorCode(id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if (baseDoctorHospitalDOS != null && baseDoctorHospitalDOS.size() != 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    map.put("deptName", baseDoctorHospitalDOS.get(0).getDeptName()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            object.put("time", date); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            object.put("list", mapList); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            array.add(object); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        pushListWritePriceTotal(os, array, startDate, endDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        return array; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 查下上报最新一次记录 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctor 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public BaseDailyReportUploadDO selectRecordByDoctorIdAndConsumer(String doctor){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        List<BaseDailyReportUploadDO> dailyReportUploadDOs = dailyReportUploadDao.findByDoctorIdLastOne(doctor); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        BaseDailyReportUploadDO dailyReportUploadDO = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (dailyReportUploadDOs.size()>0){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            dailyReportUploadDO = dailyReportUploadDOs.get(0); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (null==dailyReportUploadDO){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                List<BaseDailyReportDetailDO> detailDOS = reportDetailDao.findByReportId(dailyReportUploadDO.getId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                dailyReportUploadDO.setDetailDOList(detailDOS); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return dailyReportUploadDO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param orgCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param doctorCode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param key 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param flag 是否核实1是0否 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public List<Map<String, Object>> findDoctorByHospitalAndDept(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 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                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 flag 1周2月 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param level  1院级管理员,2科室管理员 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject selectIndexTotalCircle(Integer flag,String dept, int level) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        JSONObject object = new JSONObject(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String startDate=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String endDate=""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (flag==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startDate = DateUtil.getMondayOfThisWeek(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            endDate = DateUtil.getSundayOfThisWeek(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }else if (flag==2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            startDate = DateUtil.getFristDayOfMonth(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            endDate = DateUtil.getLastDayOfMonth(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String day = DateUtil.getTwoDay(endDate, startDate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String doctorSql = " select COUNT(1) as 'total' from base_doctor d where d.del=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer total = 0;//总人次 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sqlCondition = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level==2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sqlCondition =" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String sql = " SELECT SUM(d1.total) as total from (select COUNT(DISTINCT d.doctor_id) as 'total',date_format(d.report_date ,'%Y-%m-%d' ) " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " from base_doctor_daily_report_upload d where 1=1 "+sqlCondition+"  and  d.report_date >='"+startDate+"' and d.report_date<='"+endDate+"' " + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                " GROUP BY date_format(d.report_date ,'%Y-%m-%d' ))d1  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level==2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorSql +=" and d.id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> map = jdbcTemplate.queryForMap(doctorSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String doctorTotal = ""; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (map != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorTotal = map.get("total").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(doctorTotal)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //总人次 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (!day.equalsIgnoreCase("0")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                total = Integer.parseInt(doctorTotal) * (Integer.parseInt(day)+1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                total = Integer.parseInt(doctorTotal); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer yishangbaoTotal = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer weishangbaoTotal = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer verifiedTotal = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer notVerifiedTotal = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //已上传 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> yishangchaungMap = jdbcTemplate.queryForMap(sql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (yishangchaungMap != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (yishangchaungMap.get("total") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                yishangbaoTotal = Integer.parseInt(yishangchaungMap.get("total").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //未上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        weishangbaoTotal = total - yishangbaoTotal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //上传总次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer shangchuanTotal = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String shangchuanTotalSql = "select COUNT(1) as 'total' from base_doctor_daily_report_upload d where 1=1  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            shangchuanTotalSql += " and d.report_date >='" + startDate + "' and d.report_date<='" + endDate + "' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level==2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            shangchuanTotalSql +=" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> shangchuanMap = jdbcTemplate.queryForMap(shangchuanTotalSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (shangchuanMap != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (shangchuanMap.get("total") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                shangchuanTotal = Integer.parseInt(shangchuanMap.get("total").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //已核实、未核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String verifiedTotalSql = "select COUNT(1) as 'total' from base_doctor_daily_report_upload d where  state=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            verifiedTotalSql += " and d.report_date >='" + startDate + "' and d.report_date<='" + endDate + "' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level==2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            verifiedTotalSql +=" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //已核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> zhengchangMap = jdbcTemplate.queryForMap(verifiedTotalSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (zhengchangMap != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (zhengchangMap.get("total") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                verifiedTotal = Integer.parseInt(zhengchangMap.get("total").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //未核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String notVerifiedTotalSql = "select COUNT(1) as 'total' from base_doctor_daily_report_upload d where  state=0  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            notVerifiedTotalSql += " and d.report_date >='" + startDate + "' and d.report_date<='" + endDate + "' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (level==2){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            notVerifiedTotalSql +=" and d.doctor_id IN (select dh.doctor_code from base_doctor_hospital dh where dh.dept_code = '" + dept + "' and dh.del=1 ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //正常 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Map<String, Object> yichangMap = jdbcTemplate.queryForMap(notVerifiedTotalSql); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (yichangMap != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if (yichangMap.get("total") != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                notVerifiedTotal = Integer.parseInt(yichangMap.get("total").toString()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("total", total);//总人次 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("yishangbaoTotal", yishangbaoTotal);//已上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("weishangbaoTotal", weishangbaoTotal);//未上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("verifiedTotal", verifiedTotal);//已核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("notVerifiedTotal", notVerifiedTotal);//未核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("shangchuanTotal", shangchuanTotal);//上传总次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 首页统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param dept 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param idType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param status 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param state 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param startDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @param endDate 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public JSONObject selectHeaderTotal(String dept, String idType, String status, String state, String startDate, String endDate, String name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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 )"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String idTypeCondition = " "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(idType)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            idTypeCondition += "  (select d1.id from base_doctor d1 where 1=1 and d1.id_type = '" + idType + "')"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(deptCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorSql += " and d.id IN " + deptCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(idTypeCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorSql += " and d.id IN " + idTypeCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            doctorSql += " and d.name like '%" + name + "%' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        if (StringUtils.isNoneBlank(status)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if (status.equalsIgnoreCase("1")) {//已上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                doctorSql += " and d.id in(select d1.doctor_id from base_doctor_daily_report_upload d1 where 1=1 and d1.report_date >='" + startDate + "' and d1.report_date<='" + endDate + "' ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } else if (status.equalsIgnoreCase("2")) {//未上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                doctorSql += " and d.id not in(select d1.doctor_id from base_doctor_daily_report_upload d1 where 1=1 and d1.report_date >='" + startDate + "' and d1.report_date<='" + endDate + "' ) "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer doctorTotal = jdbcTemplate.queryForObject(doctorSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (!day.equalsIgnoreCase("0")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            total = doctorTotal * (Integer.parseInt(day)+1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } else {//当天 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            total = doctorTotal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer yishangbaoTotal=0;//上传人数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer weishangbaoTotal=0;//未上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer notVerified=0;//未核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer verified=0;//已核实 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        Integer shangchuanTotal=0;//上传总次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and d.report_date >='" + startDate + "' and d.report_date<='" + endDate + "' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(state)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and d.state='"+state+"' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(deptCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and d.doctor_id IN " + deptCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(idTypeCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and d.doctor_id IN " + idTypeCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            sql += " and d.doctor_name like '%" + name + "%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        yishangbaoTotal = jdbcTemplate.queryForObject(sql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //未上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        weishangbaoTotal = total - yishangbaoTotal; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String shangchuanTotalSql = "select COUNT(1) as \"total\" from base_doctor_daily_report_upload d where 1=1  "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            shangchuanTotalSql += " and d.report_date >='" + startDate + "' and d.report_date<='" + endDate + "' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(deptCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            shangchuanTotalSql += " and d.doctor_id IN " + deptCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(idTypeCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            shangchuanTotalSql += " and d.doctor_id IN " + idTypeCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            shangchuanTotalSql += " and d.doctor_name like '%" + name + "%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //未核实数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String notVerifiedSql = "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 de.state=0 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //已核实数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        String verifiedSql = "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 de.state=1 "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(startDate)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            notVerifiedSql += " and d.report_date >='" + startDate + "' and d.report_date<='" + endDate + "' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            verifiedSql += " and d.report_date >='" + startDate + "' and d.report_date<='" + endDate + "' "; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(deptCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            notVerifiedSql += " and d.doctor_id IN " + deptCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            verifiedSql += " and d.doctor_id IN " + deptCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(idTypeCondition)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            notVerifiedSql += " and d.doctor_id IN " + idTypeCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            verifiedSql += " and d.doctor_id IN " + idTypeCondition; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        if (StringUtils.isNoneBlank(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            notVerifiedSql += " and d.doctor_name like '%" + name + "%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            verifiedSql += " and d.doctor_name like '%" + name + "%'"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        notVerified = jdbcTemplate.queryForObject(notVerifiedSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        verified = jdbcTemplate.queryForObject(verifiedSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        //上传总次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        shangchuanTotal = jdbcTemplate.queryForObject(shangchuanTotalSql,Integer.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("total", total);//总人次 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("yishangbaoTotal", yishangbaoTotal);//已上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("weishangbaoTotal", weishangbaoTotal);//未上报 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("notVerified", notVerified);//未核实数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("verified", verified);//已核实数量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        object.put("shangchuanTotal", shangchuanTotal);//上传总次数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return object; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |