package cn.com.lzt.holiday.service.impl; import java.io.Serializable; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.UUID; import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery; import org.jeecgframework.core.common.service.impl.CommonServiceImpl; import org.jeecgframework.core.util.ApplicationContextUtil; import org.jeecgframework.core.util.MyClassLoader; import org.jeecgframework.core.util.StringUtil; import org.jeecgframework.core.util.oConvertUtils; import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter; import org.jeecgframework.workflow.common.WorkFlowGlobals; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import cn.com.lzt.holiday.entity.HolidayEntity; import cn.com.lzt.holiday.service.HolidayServiceI; @Service("holidayService") @Transactional public class HolidayServiceImpl extends CommonServiceImpl implements HolidayServiceI { public void delete(HolidayEntity entity) throws Exception{ super.delete(entity); //执行删除操作增强业务 this.doDelBus(entity); } public Serializable save(HolidayEntity entity) throws Exception{ Serializable t = super.save(entity); //执行新增操作增强业务 this.doAddBus(entity); return t; } public void saveOrUpdate(HolidayEntity entity) throws Exception{ super.saveOrUpdate(entity); //执行更新操作增强业务 this.doUpdateBus(entity); } /** * 新增操作增强业务 * @param t * @return */ private void doAddBus(HolidayEntity t) throws Exception{ //-----------------sql增强 start---------------------------- //-----------------sql增强 end------------------------------ //-----------------java增强 start--------------------------- //-----------------java增强 end----------------------------- } /** * 更新操作增强业务 * @param t * @return */ private void doUpdateBus(HolidayEntity t) throws Exception{ //-----------------sql增强 start---------------------------- //-----------------sql增强 end------------------------------ //-----------------java增强 start--------------------------- //-----------------java增强 end----------------------------- } /** * 删除操作增强业务 * @param id * @return */ private void doDelBus(HolidayEntity t) throws Exception{ //-----------------sql增强 start---------------------------- //-----------------sql增强 end------------------------------ //-----------------java增强 start--------------------------- //-----------------java增强 end----------------------------- } private Map populationMap(HolidayEntity 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("sys_org_code", t.getSysOrgCode()); map.put("sys_company_code", t.getSysCompanyCode()); map.put("bpm_status", t.getBpmStatus()); map.put("userid", t.getUserid()); map.put("apply_date", t.getApplyDate()); map.put("holiday_type", t.getHolidayType()); map.put("belong_unitid", t.getBelongUnitid()); map.put("holiday_stime", t.getHolidayStime()); map.put("holiday_etime", t.getHolidayEtime()); map.put("applicant_id", t.getApplicantId()); map.put("holiday_reason", t.getHolidayReason()); map.put("delete_flag", t.getDeleteFlag()); return map; } /** * 替换sql中的变量 * @param sql * @param t * @return */ public String replaceVal(String sql,HolidayEntity 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("#{sys_org_code}",String.valueOf(t.getSysOrgCode())); sql = sql.replace("#{sys_company_code}",String.valueOf(t.getSysCompanyCode())); sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus())); sql = sql.replace("#{userid}",String.valueOf(t.getUserid())); sql = sql.replace("#{apply_date}",String.valueOf(t.getApplyDate())); sql = sql.replace("#{holiday_type}",String.valueOf(t.getHolidayType())); sql = sql.replace("#{belong_unitid}",String.valueOf(t.getBelongUnitid())); sql = sql.replace("#{holiday_stime}",String.valueOf(t.getHolidayStime())); sql = sql.replace("#{holiday_etime}",String.valueOf(t.getHolidayEtime())); sql = sql.replace("#{applicant_id}",String.valueOf(t.getApplicantId())); sql = sql.replace("#{holiday_reason}",String.valueOf(t.getHolidayReason())); sql = sql.replace("#{delete_flag}",String.valueOf(t.getDeleteFlag())); 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("t_bus_holiday",data); } } catch (Exception e) { e.printStackTrace(); throw new Exception("执行JAVA增强出现异常!"); } } } @Override public void logicDel(HolidayEntity entity) throws Exception { super.updateEntitie(entity); //执行更新操作增强业务 this.doUpdateBus(entity); } @Override public List getUserHolidayEntities(String userid, String yearmonth) throws Exception { List resulEntities = new ArrayList(); CriteriaQuery cq = new CriteriaQuery(HolidayEntity.class); cq.eq("bpmStatus", WorkFlowGlobals.BPM_BUS_STATUS_3); cq.add(); cq.eq("deleteFlag", "0"); cq.add(); if (oConvertUtils.isNotEmpty(userid)) { cq.eq("userid", userid); cq.add(); } if (oConvertUtils.isNotEmpty(yearmonth)) { Calendar cal = Calendar.getInstance();// 获取当前日期 cal.set(Integer.valueOf(yearmonth.split("-")[0]), Integer.valueOf(yearmonth.split("-")[1]) - 1, 1); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.add(Calendar.SECOND, -1); Date startdate = cal.getTime();// 上个月的一号 cal.add(Calendar.MONTH, 2); cal.set(Calendar.DAY_OF_MONTH, 1); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); Date enddate = cal.getTime();// 下个月的一号 cq.between("holidayStime", startdate, enddate); cq.add(); } resulEntities = getListByCriteriaQuery(cq, false); return resulEntities; } }