package com.xcgl.weeklyschedule.service.impl; import java.io.Serializable; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.UUID; import org.apache.log4j.Logger; import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; import org.jeecgframework.core.common.service.impl.CommonServiceImpl; import org.jeecgframework.core.constant.Globals; import org.jeecgframework.core.util.ApplicationContextUtil; import org.jeecgframework.core.util.DateUtils; import org.jeecgframework.core.util.MyClassLoader; import org.jeecgframework.core.util.ResourceUtil; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.p3.core.utils.common.StringUtils; import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.xcgl.projecttask.entity.ProjecttaskEntity; import com.xcgl.projecttask.service.ProjecttaskServiceI; import com.xcgl.utils.OrderNumTools; import com.xcgl.utils.XcglConstant; import com.xcgl.utils.XcglDateUtils; import com.xcgl.weeklyschedule.dao.WeeklyScheduleMiniDao; import com.xcgl.weeklyschedule.entity.WeeklyScheduleDayDto; import com.xcgl.weeklyschedule.entity.WeeklySchedulePartiEntity; import com.xcgl.weeklyschedule.entity.WeeklyScheduleUtils; import com.xcgl.weeklyschedule.entity.WeeklyscheduleEntity; import com.xcgl.weeklyschedule.service.WeeklyScheduleServiceI; import com.xcgl.weixin.dao.WXDao; import com.xcgl.weixin.service.WXServiceI; import cn.com.lzt.message.send.util.MessageSendUtil; import net.sf.json.JSONObject; @Service("WeeklyScheduleService") public class WeeklyScheduleServiceImpl extends CommonServiceImpl implements WeeklyScheduleServiceI { @Autowired WXServiceI wxservice ; @Autowired WXDao wxdao; @Autowired ProjecttaskServiceI workService; @Autowired WeeklyScheduleMiniDao weeklyminidao; private static final Logger logger = Logger.getLogger(WeeklyScheduleServiceImpl.class); public void sendWXMsgForWeeklySchedule() { Calendar cal = Calendar.getInstance(); cal.setTime(new Date()); // int dayWeek = cal.get(Calendar.DAY_OF_WEEK);//获得当前日期是一个星期的第几天 // //如果不是周五,则返回 // if(dayWeek != 6) // return; List> users = wxdao.getUsersByRoleCode(XcglConstant.ROLE_ZHOUBAO); if( users.size() == 0) return; List> listParams = new ArrayList>(); List weekday = XcglDateUtils.getWeekMonAndSun(XcglDateUtils.addDateDay( DateUtils.formatDate(new Date(),"yyyy-MM-dd"),7, new SimpleDateFormat("yyyy-MM-dd"))); int hour = cal.get(Calendar.HOUR_OF_DAY); if(hour <= 12) { //上午提醒所有人 for(Map user :users) { if(user.get("openid")==null || StringUtils.isEmpty(user.get("openid").toString())) continue; Map oneMsg = new HashMap(); Map userMsgParms = new HashMap(); userMsgParms.put("first", "你好,您有一条新的工作需要关注"); userMsgParms.put("keyword1","截止本周五24点前"); userMsgParms.put("keyword2", "请在今日提交下周("+ weekday.get(0)+"至"+weekday.get(1)+")工作计划"); userMsgParms.put("remark", "请登录美都环卫慧管理系统填写周工作计划,如已填报完成,请忽略此条通知"); if(ResourceUtil.getConfigByName(Globals.SERVER_TYPE).equals(Globals.SERVER_TYPE_LINE)) { oneMsg.put("openid", user.get("openid"));//"oQ2vj04CDPxjrvp9WlyJkXEfg4S8" }else { oneMsg.put("openid", ResourceUtil.getConfigByName(Globals.SERVER_TEST_OPENID)); } // oneMsg.put("openid", user.get("openid")); oneMsg.put("userid", user.get("id")); oneMsg.put("tplParams", userMsgParms); // oneMsg.put("url", "http://test.shenqin.work:8080/hgl/dsdemoController.do?showNoOrderWarehouse"+"&openid="+user.get("openid")+"&schedule="+weekday.get(0)+","+weekday.get(1)); listParams.add(oneMsg); } }else { //下午提醒未提交人员 HashMap tipUserMap = new HashMap(); HashMap tipUserNameMap = new HashMap(); for(Map user :users) { tipUserNameMap.put(user.get("id").toString(), user.get("realname").toString()); if(user.get("openid")==null || StringUtils.isEmpty(user.get("openid").toString())) continue; tipUserMap.put(user.get("id").toString(), user.get("openid").toString()); } List weeklys = findHql(" from WeeklyscheduleEntity where mondate = ?", weekday.get(0)); if(weeklys != null) { for(WeeklyscheduleEntity we : weeklys) { //有提交内容的,则认为有已完成,不提醒 if(StringUtils.isNotEmpty(WeeklyScheduleUtils.getPersonalWhat(we))) { tipUserMap.remove(we.getUserid()); tipUserNameMap.remove(we.getUserid()); } } } if(tipUserMap.size() > 0) { for(Entry entry: tipUserMap.entrySet()) { //openid空,则不发消息 if(StringUtils.isEmpty(entry.getValue())) continue; Map oneMsg = new HashMap(); Map userMsgParms = new HashMap(); userMsgParms.put("first", "你好,下周工作计划尚未提交,请尽快填写"); userMsgParms.put("keyword1","截止本周五24点前"); userMsgParms.put("keyword2", "请在今日提交下周("+ weekday.get(0)+"至"+weekday.get(1)+")工作计划"); userMsgParms.put("remark", "请登录美都环卫慧管理系统填写周工作计划"); if(ResourceUtil.getConfigByName(Globals.SERVER_TYPE).equals(Globals.SERVER_TYPE_LINE)) { oneMsg.put("openid", entry.getValue());//"oQ2vj04CDPxjrvp9WlyJkXEfg4S8" }else { oneMsg.put("openid", ResourceUtil.getConfigByName(Globals.SERVER_TEST_OPENID)); } // oneMsg.put("openid", entry.getValue()); oneMsg.put("userid", entry.getKey()); oneMsg.put("tplParams", userMsgParms); // oneMsg.put("url", "http://test.shenqin.work:8080/hgl/dsdemoController.do?showNoOrderWarehouse"+"&openid="+user.get("openid")+"&schedule="+weekday.get(0)+","+weekday.get(1)); listParams.add(oneMsg); } } cal.setTime(new Date()); //下午4点给总经办主任发送未提交周报人员明细 if(cal.get(Calendar.HOUR_OF_DAY) >= 16) { List> zjb = wxdao.getUsersByRoleCode(XcglConstant.ROLE_ZONGJINGBAN); if( users.size() == 0) return; StringBuffer tipMsgNamesBuf = new StringBuffer(); if(tipUserNameMap.size() > 0) { for( String name :tipUserNameMap.values()) { tipMsgNamesBuf.append(name).append("\r\n"); } } // for(Map user :users) { // if(tipUserMap.containsKey(user.get("id").toString())) { // tipMsgNamesBuf.append(user.get("realname").toString()).append("\r\n"); // } // } if(tipMsgNamesBuf.toString().length() > 0) { Map oneMsg = new HashMap(); Map userMsgParms = new HashMap(); userMsgParms.put("first", "你好,请提醒相关人员提交下周工作计划"); userMsgParms.put("keyword1","周计划截止本周五24点前"); userMsgParms.put("keyword2", "未提交周计划人员列表:\r\n"+tipMsgNamesBuf.toString()); userMsgParms.put("remark", "可以登录美都环卫慧管理系统查看周计划详情"); if(ResourceUtil.getConfigByName(Globals.SERVER_TYPE).equals(Globals.SERVER_TYPE_LINE)) { oneMsg.put("openid", zjb.get(0).get("openid"));//"oQ2vj04CDPxjrvp9WlyJkXEfg4S8" }else { oneMsg.put("openid", ResourceUtil.getConfigByName(Globals.SERVER_TEST_OPENID)); } // oneMsg.put("openid", zjb.get(0).get("openid")); oneMsg.put("userid", zjb.get(0).get("id")); oneMsg.put("tplParams", userMsgParms); // oneMsg.put("url", "http://test.shenqin.work:8080/hgl/dsdemoController.do?showNoOrderWarehouse"+"&openid="+user.get("openid")+"&schedule="+weekday.get(0)+","+weekday.get(1)); listParams.add(oneMsg); } } } try { wxservice.sendMsgToWXForTodayWork(listParams); }catch (Exception e) { logger.error(e.getMessage()); } } public void sendWXMsgForWeeklySchedule4ZJL() { List> user = findForJdbc("select openid,id from t_s_user where id in (select id from t_s_base_user where username = '0001') and openid is not null"); if (user.size() == 0) return; List> listParams = new ArrayList>(); Map oneMsg = new HashMap(); Map userMsgParms = new HashMap(); JSONObject keyword1 = new JSONObject(); String dayStr = XcglDateUtils.addDateDay( DateUtils.formatDate(new Date(),"yyyy-MM-dd"),-1, DateUtils.date_sdf); keyword1.put("value",dayStr); keyword1.put("color","#cc1010"); userMsgParms.put("first", "("+XcglDateUtils.getWeekOfDate(dayStr)+")昨日工作完成情况"); userMsgParms.put("keyword1", keyword1); userMsgParms.put("keyword2", "请点击本消息查看详情"); userMsgParms.put("remark", "美都环卫物业:勤思、勤学、勤劳、勤勉"); if(ResourceUtil.getConfigByName(Globals.SERVER_TYPE).equals(Globals.SERVER_TYPE_LINE)) { oneMsg.put("openid", user.get(0).get("openid"));//"oQ2vj04CDPxjrvp9WlyJkXEfg4S8" }else { oneMsg.put("openid", ResourceUtil.getConfigByName(Globals.SERVER_TEST_OPENID)); } // oneMsg.put("openid", user.get(0).get("openid")); oneMsg.put("userid", user.get(0).get("id")); oneMsg.put("tplParams", userMsgParms); oneMsg.put("url", ResourceUtil.getConfigByName(Globals.SERVER_WXMSG)+"/weeklyscheduleController.do?yesterdayWorkList&date="+DateUtils.date_sdf.format(new Date())); listParams.add(oneMsg); Map oneMsg2 = new HashMap(); Map userMsgParms2 = new HashMap(); userMsgParms2.put("first", "("+XcglDateUtils.getWeekOfDate(DateUtils.date_sdf.format(new Date()))+")今日工作安排"); JSONObject keyword1_2 = new JSONObject(); keyword1_2.put("value",DateUtils.date_sdf.format(new Date())); keyword1_2.put("color","#cc1010"); userMsgParms2.put("keyword1", keyword1_2); userMsgParms2.put("keyword2", "请点击本消息查看详情"); userMsgParms2.put("remark", "美都环卫物业:勤思、勤学、勤劳、勤勉"); if(ResourceUtil.getConfigByName(Globals.SERVER_TYPE).equals(Globals.SERVER_TYPE_LINE)) { oneMsg2.put("openid", user.get(0).get("openid"));//"oQ2vj04CDPxjrvp9WlyJkXEfg4S8" }else { oneMsg2.put("openid", ResourceUtil.getConfigByName(Globals.SERVER_TEST_OPENID)); } oneMsg2.put("userid", user.get(0).get("id")); oneMsg2.put("tplParams", userMsgParms2); oneMsg2.put("url", ResourceUtil.getConfigByName(Globals.SERVER_WXMSG)+"/weeklyscheduleController.do?todayScheduledList&date="+DateUtils.date_sdf.format(new Date())); listParams.add(oneMsg2); try { wxservice.sendMsgToWXForTodayWork(listParams); }catch (Exception e) { logger.error(e.getMessage()); } } /*** * 根据周计划,生成任务到任务平台 * modify by dgq ,每天晚上生成下一天的任务 * */ @Override public void genWorkFromWeeklySchedule() { //取下周所有日期从周一到周日 // List weekday = XcglDateUtils.getWeekdays(XcglDateUtils.addDateDay( // DateUtils.formatDate(new Date(),"yyyy-MM-dd"),7, new SimpleDateFormat("yyyy-MM-dd"))); List taskList = weeklyminidao.getTaskListFromSchedule(XcglDateUtils.addDateDay( DateUtils.formatDate(new Date(),"yyyy-MM-dd"),1, new SimpleDateFormat("yyyy-MM-dd"))); String lastCode = getMaxLocalCode(); for(ProjecttaskEntity newTask: taskList) { lastCode = OrderNumTools.generateNextBillCode(lastCode, "WK", 4); newTask.setCode(lastCode); } if(taskList.size() > 0) { workService.batchSave(taskList); } } private String getMaxLocalCode(){ StringBuilder sb = new StringBuilder(); sb.append("SELECT code FROM p_projecttask where left(create_date,10) = ?"); sb.append(" ORDER BY code DESC"); List> objMapList = workService.findForJdbc(sb.toString(), DateUtils.date_sdf.format(new Date())); String returnCode = null; if(objMapList!=null && objMapList.size()>0){ returnCode = (String)objMapList.get(0).get("code"); } return returnCode; } public void delete(WeeklyscheduleEntity entity) throws Exception{ super.delete(entity); //执行删除操作增强业务 this.doDelBus(entity); } public Serializable save(WeeklyscheduleEntity entity) throws Exception{ //参与人员信息列表 List partiList = entity.getPartiList(); Serializable t = super.save(entity); for(WeeklySchedulePartiEntity partiEntity : partiList) { partiEntity.setScheduleid(entity.getId()); } //保存参与人员信息列表 super.batchSave(partiList); //执行新增操作增强业务 this.doAddBus(entity); return t; } public void saveOrUpdate(WeeklyscheduleEntity entity) throws Exception{ super.saveOrUpdate(entity); //执行更新操作增强业务 this.doUpdateBus(entity); } /** * 新增操作增强业务 * @param t * @return */ private void doAddBus(WeeklyscheduleEntity t) throws Exception{ //-----------------sql增强 start---------------------------- //-----------------sql增强 end------------------------------ //-----------------java增强 start--------------------------- //-----------------java增强 end----------------------------- } /** * 更新操作增强业务 * @param t * @return */ private void doUpdateBus(WeeklyscheduleEntity t) throws Exception{ //-----------------sql增强 start---------------------------- //-----------------sql增强 end------------------------------ //-----------------java增强 start--------------------------- //-----------------java增强 end----------------------------- } /** * 删除操作增强业务 * @param id * @return */ private void doDelBus(WeeklyscheduleEntity t) throws Exception{ //-----------------sql增强 start---------------------------- //-----------------sql增强 end------------------------------ //-----------------java增强 start--------------------------- //-----------------java增强 end----------------------------- } private Map populationMap(WeeklyscheduleEntity t){ Map map = new HashMap(); map.put("id", t.getId()); map.put("create_name", t.getCreateName()); map.put("create_by", t.getCreateBy()); map.put("create_date", t.getCreateDate()); map.put("update_name", t.getUpdateName()); map.put("update_by", t.getUpdateBy()); map.put("update_date", t.getUpdateDate()); map.put("userid", t.getUserid()); map.put("mondate", t.getMondate()); map.put("whatmonam", t.getWhatmonam()); map.put("wheremonam", t.getWheremonam()); map.put("whomonam", t.getWhomonams()); map.put("remarkmonam", t.getRemarkmonam()); map.put("whatmonpm", t.getWhatmonpm()); map.put("wheremonpm", t.getWheremonpm()); map.put("whomonpm", t.getWhomonpms()); map.put("remarkmonpm", t.getRemarkmonpm()); map.put("tuesdate", t.getTuesdate()); map.put("whattuesam", t.getWhattuesam()); map.put("wheretuesam", t.getWheretuesam()); map.put("whotuesam", t.getWhotuesams()); map.put("remarktuesam", t.getRemarktuesam()); map.put("whattuespm", t.getWhattuespm()); map.put("wheretuespm", t.getWheretuespm()); map.put("whotuespm", t.getWhotuespms()); map.put("remarktuespm", t.getRemarktuespm()); map.put("weddate", t.getWeddate()); map.put("whatwedam", t.getWhatwedam()); map.put("wherewedam", t.getWherewedam()); map.put("whowedam", t.getWhowedams()); map.put("remarkwedam", t.getRemarkwedam()); map.put("whatwedpm", t.getWhatwedpm()); map.put("wherewedpm", t.getWherewedpm()); map.put("whowedpm", t.getWhowedpms()); map.put("remarkwedpm", t.getRemarkwedpm()); map.put("thurdate", t.getThurdate()); map.put("whatthuram", t.getWhatthuram()); map.put("wherethuram", t.getWherethuram()); map.put("whothuram", t.getWhothurams()); map.put("remarkthuram", t.getRemarkthuram()); map.put("whatthurpm", t.getWhatthurpm()); map.put("wherethurpm", t.getWherethurpm()); map.put("whothurpm", t.getWhothurpms()); map.put("remarkthurpm", t.getRemarkthurpm()); map.put("fridate", t.getFridate()); map.put("whatfriam", t.getWhatfriam()); map.put("wherefriam", t.getWherefriam()); map.put("whofriam", t.getWhofriams()); map.put("remarkfriam", t.getRemarkfriam()); map.put("whatfripm", t.getWhatfripm()); map.put("wherefripm", t.getWherefripm()); map.put("whofripm", t.getWhofripms()); map.put("remarkfripm", t.getRemarkfripm()); map.put("satdate", t.getSatdate()); map.put("whatsatam", t.getWhatsatam()); map.put("wheresatam", t.getWheresatam()); map.put("whosatam", t.getWhosatams()); map.put("remarksatam", t.getRemarksatam()); map.put("whatsatpm", t.getWhatsatpm()); map.put("wheresatpm", t.getWheresatpm()); map.put("whosatpm", t.getWhosatpms()); map.put("remarksatpm", t.getRemarksatpm()); map.put("sundate", t.getSundate()); map.put("whatsunam", t.getWhatsunam()); map.put("wheresunam", t.getWheresunam()); map.put("whosunam", t.getWhosunams()); map.put("remarksunam", t.getRemarksunam()); map.put("whatsunpm", t.getWhatsunpm()); map.put("wheresunpm", t.getWheresunpm()); map.put("whosunpm", t.getWhosunpms()); map.put("remarksunpm", t.getRemarksunpm()); return map; } /** * 替换sql中的变量 * @param sql * @param t * @return */ public String replaceVal(String sql,WeeklyscheduleEntity t){ sql = sql.replace("#{id}",String.valueOf(t.getId())); sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName())); sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy())); sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate())); sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName())); sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy())); sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate())); sql = sql.replace("#{userid}",String.valueOf(t.getUserid())); sql = sql.replace("#{mondate}",String.valueOf(t.getMondate())); sql = sql.replace("#{whatmonam}",String.valueOf(t.getWhatmonam())); sql = sql.replace("#{wheremonam}",String.valueOf(t.getWheremonam())); sql = sql.replace("#{whomonam}",String.valueOf(t.getWhomonams())); sql = sql.replace("#{remarkmonam}",String.valueOf(t.getRemarkmonam())); sql = sql.replace("#{whatmonpm}",String.valueOf(t.getWhatmonpm())); sql = sql.replace("#{wheremonpm}",String.valueOf(t.getWheremonpm())); sql = sql.replace("#{whomonpm}",String.valueOf(t.getWhomonpms())); sql = sql.replace("#{remarkmonpm}",String.valueOf(t.getRemarkmonpm())); sql = sql.replace("#{tuesdate}",String.valueOf(t.getTuesdate())); sql = sql.replace("#{whattuesam}",String.valueOf(t.getWhattuesam())); sql = sql.replace("#{wheretuesam}",String.valueOf(t.getWheretuesam())); sql = sql.replace("#{whotuesam}",String.valueOf(t.getWhotuesams())); sql = sql.replace("#{remarktuesam}",String.valueOf(t.getRemarktuesam())); sql = sql.replace("#{whattuespm}",String.valueOf(t.getWhattuespm())); sql = sql.replace("#{wheretuespm}",String.valueOf(t.getWheretuespm())); sql = sql.replace("#{whotuespm}",String.valueOf(t.getWhotuespms())); sql = sql.replace("#{remarktuespm}",String.valueOf(t.getRemarktuespm())); sql = sql.replace("#{weddate}",String.valueOf(t.getWeddate())); sql = sql.replace("#{whatwedam}",String.valueOf(t.getWhatwedam())); sql = sql.replace("#{wherewedam}",String.valueOf(t.getWherewedam())); sql = sql.replace("#{whowedam}",String.valueOf(t.getWhowedams())); sql = sql.replace("#{remarkwedam}",String.valueOf(t.getRemarkwedam())); sql = sql.replace("#{whatwedpm}",String.valueOf(t.getWhatwedpm())); sql = sql.replace("#{wherewedpm}",String.valueOf(t.getWherewedpm())); sql = sql.replace("#{whowedpm}",String.valueOf(t.getWhowedpms())); sql = sql.replace("#{remarkwedpm}",String.valueOf(t.getRemarkwedpm())); sql = sql.replace("#{thurdate}",String.valueOf(t.getThurdate())); sql = sql.replace("#{whatthuram}",String.valueOf(t.getWhatthuram())); sql = sql.replace("#{wherethuram}",String.valueOf(t.getWherethuram())); sql = sql.replace("#{whothuram}",String.valueOf(t.getWhothurams())); sql = sql.replace("#{remarkthuram}",String.valueOf(t.getRemarkthuram())); sql = sql.replace("#{whatthurpm}",String.valueOf(t.getWhatthurpm())); sql = sql.replace("#{wherethurpm}",String.valueOf(t.getWherethurpm())); sql = sql.replace("#{whothurpm}",String.valueOf(t.getWhothurpms())); sql = sql.replace("#{remarkthurpm}",String.valueOf(t.getRemarkthurpm())); sql = sql.replace("#{fridate}",String.valueOf(t.getFridate())); sql = sql.replace("#{whatfriam}",String.valueOf(t.getWhatfriam())); sql = sql.replace("#{wherefriam}",String.valueOf(t.getWherefriam())); sql = sql.replace("#{whofriam}",String.valueOf(t.getWhofriams())); sql = sql.replace("#{remarkfriam}",String.valueOf(t.getRemarkfriam())); sql = sql.replace("#{whatfripm}",String.valueOf(t.getWhatfripm())); sql = sql.replace("#{wherefripm}",String.valueOf(t.getWherefripm())); sql = sql.replace("#{whofripm}",String.valueOf(t.getWhofripms())); sql = sql.replace("#{remarkfripm}",String.valueOf(t.getRemarkfripm())); sql = sql.replace("#{satdate}",String.valueOf(t.getSatdate())); sql = sql.replace("#{whatsatam}",String.valueOf(t.getWhatsatam())); sql = sql.replace("#{wheresatam}",String.valueOf(t.getWheresatam())); sql = sql.replace("#{whosatam}",String.valueOf(t.getWhosatams())); sql = sql.replace("#{remarksatam}",String.valueOf(t.getRemarksatam())); sql = sql.replace("#{whatsatpm}",String.valueOf(t.getWhatsatpm())); sql = sql.replace("#{wheresatpm}",String.valueOf(t.getWheresatpm())); sql = sql.replace("#{whosatpm}",String.valueOf(t.getWhosatpms())); sql = sql.replace("#{remarksatpm}",String.valueOf(t.getRemarksatpm())); sql = sql.replace("#{sundate}",String.valueOf(t.getSundate())); sql = sql.replace("#{whatsunam}",String.valueOf(t.getWhatsunam())); sql = sql.replace("#{wheresunam}",String.valueOf(t.getWheresunam())); sql = sql.replace("#{whosunam}",String.valueOf(t.getWhosunams())); sql = sql.replace("#{remarksunam}",String.valueOf(t.getRemarksunam())); sql = sql.replace("#{whatsunpm}",String.valueOf(t.getWhatsunpm())); sql = sql.replace("#{wheresunpm}",String.valueOf(t.getWheresunpm())); sql = sql.replace("#{whosunpm}",String.valueOf(t.getWhosunpms())); sql = sql.replace("#{remarksunpm}",String.valueOf(t.getRemarksunpm())); sql = sql.replace("#{UUID}",UUID.randomUUID().toString()); return sql; } /** * 执行JAVA增强 */ private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map data) throws Exception { if(StringUtil.isNotEmpty(cgJavaValue)){ Object obj = null; try { if("class".equals(cgJavaType)){ //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断 obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance(); }else if("spring".equals(cgJavaType)){ obj = ApplicationContextUtil.getContext().getBean(cgJavaValue); } if(obj instanceof CgformEnhanceJavaInter){ CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj; javaInter.execute("p_weeklyschedule",data); } } catch (Exception e) { e.printStackTrace(); throw new Exception("执行JAVA增强出现异常!"); } } } /* (non-Javadoc) * @see com.xcgl.weeklyschedule.service.WeeklyScheduleServiceI#getWeeklyScheduleDtosBySomeDate(java.util.Date) */ @Override public List getWeeklyScheduleDtosBySomeDate(Date date) throws Exception { List weekdaylist = XcglDateUtils.getWeekdays(DateUtils.formatDate(date,"yyyy-MM-dd")); String mondate = weekdaylist.get(0); CriteriaQuery cq = new CriteriaQuery(WeeklyscheduleEntity.class); cq.eq("mondate", mondate); cq.add(); List entitys = getListByCriteriaQuery(cq, false); List dtos = getWeeklyScheduleDtos(date, entitys); return dtos; } // // /** // * @param date // * @return // */ // private Date getMonday(Date date) { // Calendar cal = Calendar.getInstance(); // cal.setTime(date); // for(int i=0 ; i<7 ; i++) { // if(cal.get(Calendar.DAY_OF_WEEK) == 2) { // return cal.getTime(); // } // cal.add(Calendar.DATE, -1); // } // return null; // } // @Test // public void test1() { // Date date = new Date(); // Calendar cal = Calendar.getInstance(); // cal.setTime(date); // for(int i=0 ; i<20 ; i++) { // System.out.println(getMonday(cal.getTime())); // cal.add(Calendar.DATE, 1); // } // } /** * @param date * @param entitys * @return */ private List getWeeklyScheduleDtos(Date date, List entitys) { List dtos = new ArrayList(); if(entitys != null && entitys.size()>0) { for(WeeklyscheduleEntity entity : entitys) { List> nameTimeList = weeklyminidao.getParticipantName(entity.getId()); entity = setRealNames(entity, nameTimeList); List dtoParts = getSomeDaySchedule(date, entity); if(dtoParts != null) { dtos.addAll(dtoParts); } } Collections.sort(dtos); } return dtos; } /** * @param date * @param entity * @return */ private List getSomeDaySchedule(Date date, WeeklyscheduleEntity entity) { List dtos = new ArrayList(); if(entity != null) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String datestr = sdf.format(date); if(datestr.equals(entity.getMondate())) { WeeklyScheduleDayDto dto = new WeeklyScheduleDayDto(); dto.setId(entity.getId()); dto.setDate(date); dto.setUserid(entity.getUserid()); dto.setWhatAmZjl(entity.getWhatmonamzjl()); dto.setWhatAm(entity.getWhatmonam()); dto.setWhatPm(entity.getWhatmonpm()); dto.setWhatPmZjl(entity.getWhatmonpmzjl()); dto.setWhereAm(entity.getWheremonam()); dto.setWhoIdsAm(entity.getWhomonams()); dto.setWhoNamesAm(entity.getWhomonamnames()); dto.setWherePm(entity.getWheremonpm()); dto.setWhoIdsPm(entity.getWhomonpms()); dto.setWhoNamesPm(entity.getWhomonpmnames()); dtos.add(dto); } if(datestr.equals(entity.getTuesdate())) { WeeklyScheduleDayDto dto = new WeeklyScheduleDayDto(); dto.setId(entity.getId()); dto.setDate(date); dto.setUserid(entity.getUserid()); dto.setWhatAmZjl(entity.getWhattuesamzjl()); dto.setWhatAm(entity.getWhattuesam()); dto.setWhatPm(entity.getWhattuespm()); dto.setWhatPmZjl(entity.getWhattuespmzjl()); dto.setWhereAm(entity.getWheretuesam()); dto.setWhoIdsAm(entity.getWhotuesams()); dto.setWhoNamesAm(entity.getWhotuesamnames()); dto.setWherePm(entity.getWheretuespm()); dto.setWhoIdsPm(entity.getWhotuespms()); dto.setWhoNamesPm(entity.getWhotuespmnames()); dtos.add(dto); } if(datestr.equals(entity.getWeddate())) { WeeklyScheduleDayDto dto = new WeeklyScheduleDayDto(); dto.setId(entity.getId()); dto.setDate(date); dto.setUserid(entity.getUserid()); dto.setWhatAmZjl(entity.getWhatwedamzjl()); dto.setWhatAm(entity.getWhatwedam()); dto.setWhatPm(entity.getWhatwedpm()); dto.setWhatPmZjl(entity.getWhatwedpmzjl()); dto.setWhereAm(entity.getWherewedam()); dto.setWhoIdsAm(entity.getWhowedams()); dto.setWhoNamesAm(entity.getWhowedamnames()); dto.setWherePm(entity.getWherewedpm()); dto.setWhoIdsPm(entity.getWhowedpms()); dto.setWhoNamesPm(entity.getWhowedpmnames()); dtos.add(dto); } if(datestr.equals(entity.getThurdate())) { WeeklyScheduleDayDto dto = new WeeklyScheduleDayDto(); dto.setId(entity.getId()); dto.setDate(date); dto.setUserid(entity.getUserid()); dto.setWhatAmZjl(entity.getWhatthuramzjl()); dto.setWhatAm(entity.getWhatthuram()); dto.setWhatPm(entity.getWhatthurpm()); dto.setWhatPmZjl(entity.getWhatthurpmzjl()); dto.setWhereAm(entity.getWherethuram()); dto.setWhoIdsAm(entity.getWhothurams()); dto.setWhoNamesAm(entity.getWhothuramnames()); dto.setWherePm(entity.getWherethurpm()); dto.setWhoIdsPm(entity.getWhothurpms()); dto.setWhoNamesPm(entity.getWhothurpmnames()); dtos.add(dto); } if(datestr.equals(entity.getFridate())) { WeeklyScheduleDayDto dto = new WeeklyScheduleDayDto(); dto.setId(entity.getId()); dto.setDate(date); dto.setUserid(entity.getUserid()); dto.setWhatAmZjl(entity.getWhatfriamzjl()); dto.setWhatAm(entity.getWhatfriam()); dto.setWhatPm(entity.getWhatfripm()); dto.setWhatPmZjl(entity.getWhatfripmzjl()); dto.setWhereAm(entity.getWherefriam()); dto.setWhoIdsAm(entity.getWhofriams()); dto.setWhoNamesAm(entity.getWhofriamnames()); dto.setWherePm(entity.getWherefripm()); dto.setWhoIdsPm(entity.getWhofripms()); dto.setWhoNamesPm(entity.getWhofripmnames()); dtos.add(dto); } if(datestr.equals(entity.getSatdate())) { WeeklyScheduleDayDto dto = new WeeklyScheduleDayDto(); dto.setId(entity.getId()); dto.setDate(date); dto.setUserid(entity.getUserid()); dto.setWhatAmZjl(entity.getWhatsatamzjl()); dto.setWhatAm(entity.getWhatsatam()); dto.setWhatPm(entity.getWhatsatpm()); dto.setWhatPmZjl(entity.getWhatsatpmzjl()); dto.setWhereAm(entity.getWheresatam()); dto.setWhoIdsAm(entity.getWhosatams()); dto.setWhoNamesAm(entity.getWhosatamnames()); dto.setWherePm(entity.getWheresatpm()); dto.setWhoIdsPm(entity.getWhosatpms()); dto.setWhoNamesPm(entity.getWhosatpmnames()); dtos.add(dto); } if(datestr.equals(entity.getSundate())) { WeeklyScheduleDayDto dto = new WeeklyScheduleDayDto(); dto.setId(entity.getId()); dto.setDate(date); dto.setUserid(entity.getUserid()); dto.setWhatAmZjl(entity.getWhatsunamzjl()); dto.setWhatAm(entity.getWhatsunam()); dto.setWhatPm(entity.getWhatsunpm()); dto.setWhatPmZjl(entity.getWhatsunpmzjl()); dto.setWhereAm(entity.getWheresunam()); dto.setWhoIdsAm(entity.getWhosunams()); dto.setWhoNamesAm(entity.getWhosunamnames()); dto.setWherePm(entity.getWheresunpm()); dto.setWhoIdsPm(entity.getWhosunpms()); dto.setWhoNamesPm(entity.getWhosunpmnames()); dtos.add(dto); } } return dtos; } @Override public List getWeeklyScheduleBySomeDate(Date date) throws Exception { List weekdaylist = XcglDateUtils.getWeekdays(DateUtils.formatDate(date,"yyyy-MM-dd")); String mondate = weekdaylist.get(0); CriteriaQuery cq = new CriteriaQuery(WeeklyscheduleEntity.class); cq.eq("mondate", mondate); cq.add(); List entitys = getListByCriteriaQuery(cq, false); return entitys; } private WeeklyscheduleEntity setRealNames(WeeklyscheduleEntity weeklyschedule, List> nameTimeList) { for(Map nameTime : nameTimeList) { String date = nameTime.get("datetime").toString(); String realNames = nameTime.get("realNames").toString(); //周一 if(weeklyschedule.getMondate().equals(date.substring(0,10)) && date.substring(10).equals("am")) { weeklyschedule.setWhomonamnames(realNames); }else if (weeklyschedule.getMondate().equals(date.substring(0,10)) && date.substring(10).equals("pm")) { weeklyschedule.setWhomonpmnames(realNames); } //周二 else if(weeklyschedule.getTuesdate().equals(date.substring(0,10)) && date.substring(10).equals("am")) { weeklyschedule.setWhotuesamnames(realNames); }else if (weeklyschedule.getTuesdate().equals(date.substring(0,10)) && date.substring(10).equals("pm")) { weeklyschedule.setWhotuespmnames(realNames); } //周三 else if(weeklyschedule.getWeddate().equals(date.substring(0,10)) && date.substring(10).equals("am")) { weeklyschedule.setWhowedamnames(realNames); }else if (weeklyschedule.getWeddate().equals(date.substring(0,10)) && date.substring(10).equals("pm")) { weeklyschedule.setWhowedpmnames(realNames); } //周四 else if(weeklyschedule.getThurdate().equals(date.substring(0,10)) && date.substring(10).equals("am")) { weeklyschedule.setWhothuramnames(realNames); }else if (weeklyschedule.getThurdate().equals(date.substring(0,10)) && date.substring(10).equals("pm")) { weeklyschedule.setWhothurpmnames(realNames); } //周五 else if(weeklyschedule.getFridate().equals(date.substring(0,10)) && date.substring(10).equals("am")) { weeklyschedule.setWhofriamnames(realNames); }else if (weeklyschedule.getFridate().equals(date.substring(0,10)) && date.substring(10).equals("pm")) { weeklyschedule.setWhofripmnames(realNames); } //周六 else if(weeklyschedule.getSatdate().equals(date.substring(0,10)) && date.substring(10).equals("am")) { weeklyschedule.setWhosatamnames(realNames); }else if (weeklyschedule.getSatdate().equals(date.substring(0,10)) && date.substring(10).equals("pm")) { weeklyschedule.setWhosatpmnames(realNames); } //周日 else if(weeklyschedule.getSundate().equals(date.substring(0,10)) && date.substring(10).equals("am")) { weeklyschedule.setWhosunamnames(realNames); }else if (weeklyschedule.getSundate().equals(date.substring(0,10)) && date.substring(10).equals("pm")) { weeklyschedule.setWhosunpmnames(realNames); } } return weeklyschedule; } public void sendWXMsgForActivityTaskOvertime4ZJL() { List> user = findForJdbc("select openid,id from t_s_user where id in (select id from t_s_base_user where username = '0001') and openid is not null"); if (user.size() == 0) return; List> listParams = new ArrayList>(); Map oneMsg = new HashMap(); Map userMsgParms = new HashMap(); JSONObject keyword1 = new JSONObject(); keyword1.put("value",DateUtils.formatDate(new Date(),"yyyy年MM月dd日")); keyword1.put("color","#cc1010"); userMsgParms.put("first", "截止今日("+DateUtils.formatDate(new Date(),"yyyy年MM月dd日")+")签报逾期情况"); userMsgParms.put("keyword1", keyword1); userMsgParms.put("keyword2", "请点击本消息查看详情"); userMsgParms.put("remark", "美都环卫物业:勤思、勤学、勤劳、勤勉"); if(ResourceUtil.getConfigByName(Globals.SERVER_TYPE).equals(Globals.SERVER_TYPE_LINE)) { oneMsg.put("openid", user.get(0).get("openid"));//"oQ2vj04CDPxjrvp9WlyJkXEfg4S8" }else { oneMsg.put("openid", ResourceUtil.getConfigByName(Globals.SERVER_TEST_OPENID)); } oneMsg.put("userid", user.get(0).get("id")); oneMsg.put("tplParams", userMsgParms); oneMsg.put("url", ResourceUtil.getConfigByName(Globals.SERVER_WXMSG)+"/weeklyscheduleController.do?activitiOvertimeRpt"); listParams.add(oneMsg); try { wxservice.sendMsgToWXForTodayWork(listParams); }catch (Exception e) { logger.error(e.getMessage()); } } }