| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776 |
- package cn.com.lzt.projarrangedetail.service.impl;
- import cn.com.lzt.arrangeduty.service.ArrangeDutyServiceI;
- import cn.com.lzt.arrangedutyoperate.dto.ArrangeDutyOperateDto;
- import cn.com.lzt.arrangedutyoperate.entity.ArrangeDutyOperateEntity;
- import cn.com.lzt.arrangedutyoperate.service.ArrangeDutyOperateServiceI;
- import cn.com.lzt.calendar.dto.CalendarAscDto;
- import cn.com.lzt.calendar.service.CalendarServiceI;
- import cn.com.lzt.projarrangedetail.dao.ProjArrangeDetailAndUserMiniDao;
- import cn.com.lzt.projarrangedetail.dao.UserAndShiftMiniDao;
- import cn.com.lzt.projarrangedetail.dao.UserArrangeCalendarMiniDao;
- import cn.com.lzt.projarrangedetail.dto.ProjArrangeDetailAndUserDto;
- import cn.com.lzt.projarrangedetail.dto.UserAndShiftDto;
- import cn.com.lzt.projarrangedetail.dto.UserArrangeCalendarDto;
- import cn.com.lzt.projarrangedetail.entity.ProjarrangeDetailEntity;
- import cn.com.lzt.projarrangedetail.projectarrangecommonmethod.ProjectArrangeCommonMethod;
- import cn.com.lzt.projarrangedetail.service.ProjarrangeDetailServiceI;
- import cn.com.lzt.projarrangegeneral.entity.ProjArrangeGeneralEntity;
- import cn.com.lzt.projarrangegeneral.service.ProjArrangeGeneralServiceI;
- import cn.com.lzt.userarrangedetail.dto.UserArrangeDetailDto;
- import cn.com.lzt.userarrangedetail.service.UserArrangeDetailServiceI;
- import org.jeecgframework.core.common.model.json.AjaxJson;
- 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.JeecgDataAutorUtils;
- import org.jeecgframework.core.util.MyClassLoader;
- import org.jeecgframework.core.util.StringUtil;
- import org.jeecgframework.minidao.annotation.Arguments;
- import org.jeecgframework.minidao.annotation.ResultType;
- import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
- import org.jeecgframework.web.system.service.SystemService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.transaction.annotation.Transactional;
- import javax.validation.Validator;
- import java.io.Serializable;
- import java.util.*;
- @Service("projarrangeDetailService")
- @Transactional
- public class ProjarrangeDetailServiceImpl extends CommonServiceImpl implements ProjarrangeDetailServiceI {
-
- @Autowired
- ProjArrangeDetailAndUserMiniDao projArrangeDetailAndUserMiniDao;
-
- @Autowired
- UserArrangeCalendarMiniDao userArrangeCalendarMiniDao;
-
- //日历表
- @Autowired
- private CalendarServiceI calendarService;
-
- //员工排班详情表
- @Autowired
- private UserArrangeDetailServiceI userArrangeDetailService;
-
- //班次表
- @Autowired
- private ArrangeDutyServiceI arrangeDutyService;
-
- //项目排班总览表
- @Autowired
- private ProjArrangeGeneralServiceI projArrangeGeneralService;
-
- //排班操作表
- @Autowired
- private ArrangeDutyOperateServiceI arrangeDutyOperateService;
-
- @Autowired
- private SystemService systemService;
- @Autowired
- private Validator validator;
-
- //项目排班自己总结公共方法;
- //ProjectArrangeCommonMethod commonMethod;
-
- // 验证轮流值班是否可行
- @Autowired
- UserAndShiftMiniDao userAndShiftMiniDao;
-
-
- public void delete(ProjarrangeDetailEntity entity) throws Exception{
- super.delete(entity);
- //执行删除操作增强业务
- this.doDelBus(entity);
- }
-
- public Serializable save(ProjarrangeDetailEntity entity) throws Exception{
- Serializable t = super.save(entity);
- //执行新增操作增强业务
- this.doAddBus(entity);
- return t;
- }
-
- public void saveOrUpdate(ProjarrangeDetailEntity entity) throws Exception{
- super.saveOrUpdate(entity);
- //执行更新操作增强业务
- this.doUpdateBus(entity);
- }
-
- /**
- * 新增操作增强业务
- * @param t
- * @return
- */
- private void doAddBus(ProjarrangeDetailEntity t) throws Exception{
- //-----------------sql增强 start----------------------------
- //-----------------sql增强 end------------------------------
-
- //-----------------java增强 start---------------------------
- //-----------------java增强 end-----------------------------
- }
- /**
- * 更新操作增强业务
- * @param t
- * @return
- */
- private void doUpdateBus(ProjarrangeDetailEntity t) throws Exception{
- //-----------------sql增强 start----------------------------
- //-----------------sql增强 end------------------------------
-
- //-----------------java增强 start---------------------------
- //-----------------java增强 end-----------------------------
- }
- /**
- * 删除操作增强业务
- * @param id
- * @return
- */
- private void doDelBus(ProjarrangeDetailEntity t) throws Exception{
- //-----------------sql增强 start----------------------------
- //-----------------sql增强 end------------------------------
-
- //-----------------java增强 start---------------------------
- //-----------------java增强 end-----------------------------
- }
-
- private Map<String,Object> populationMap(ProjarrangeDetailEntity t){
- Map<String,Object> map = new HashMap<String,Object>();
- map.put("id", t.getId());
- map.put("yearmonth", t.getYearmonth());
- map.put("projarrange_generalid", t.getProjarrangeGeneralid());
- map.put("pid", t.getPid());
- map.put("pjt_postid", t.getPjtPostId());
- map.put("userid", t.getUserid());
- map.put("working_days", t.getWorkingDays());
- map.put("timeout_overtime_hours", t.getTimeOutOvertimeHours());
- map.put("country_overtime_hours", t.getCountryOvertimeHours());
- map.put("onduty_days", t.getOndutyDays());
- map.put("remark", t.getRemark());
- 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());
- return map;
- }
-
- /**
- * 替换sql中的变量
- * @param sql
- * @param t
- * @return
- */
- public String replaceVal(String sql,ProjarrangeDetailEntity t){
- sql = sql.replace("#{id}",String.valueOf(t.getId()));
- sql = sql.replace("#{yearmonth}",String.valueOf(t.getYearmonth()));
- sql = sql.replace("#{pid}",String.valueOf(t.getPid()));
- sql = sql.replace("#{projarrange_generalid}",String.valueOf(t.getProjarrangeGeneralid()));
- sql = sql.replace("#{pjt_postid}",String.valueOf(t.getPjtPostId()));
- sql = sql.replace("#{userid}",String.valueOf(t.getUserid()));
- sql = sql.replace("#{working_days}",String.valueOf(t.getWorkingDays()));
- sql = sql.replace("#{timeout_overtime_hours}",String.valueOf(t.getTimeOutOvertimeHours()));
- sql = sql.replace("#{country_overtime_hours}",String.valueOf(t.getCountryOvertimeHours()));
- sql = sql.replace("#{onduty_days}",String.valueOf(t.getOndutyDays()));
- sql = sql.replace("#{remark}",String.valueOf(t.getRemark()));
- 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("#{UUID}",UUID.randomUUID().toString());
- return sql;
- }
-
- /**
- * 执行JAVA增强
- */
- private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> 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_projarrange_detail",data);
- }
- } catch (Exception e) {
- e.printStackTrace();
- throw new Exception("执行JAVA增强出现异常!");
- }
- }
- }
- @Override
- public List<ProjArrangeDetailAndUserDto> getProjArrangeDetailAndUserByPIdYearMonth(
- ProjArrangeDetailAndUserDto projArrangeDetailAndUserDto, String authSql) {
- return projArrangeDetailAndUserMiniDao.getProjArrangeDetailAndUserByPIdYearMonth(projArrangeDetailAndUserDto, authSql);
- }
- @Override
- public List<UserArrangeCalendarDto> getUserArrangeCalendar(
- UserArrangeCalendarDto userArrangeCalendarDto,String authSql) {
- // TODO Auto-generated method stub
- return userArrangeCalendarMiniDao.getUserArrangeCalendar(userArrangeCalendarDto, authSql);
- }
- @Override
- public List<ProjArrangeDetailAndUserDto> getProjArrangeDetailAndUserByUserIdListYearMonth(
- ProjArrangeDetailAndUserDto projArrangeDetailAndUserDto,
- String authSql) {
- // TODO Auto-generated method stub
- return projArrangeDetailAndUserMiniDao.getProjArrangeDetailAndUserByUserIdListYearMonth(projArrangeDetailAndUserDto, authSql);
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- @Override
- public List<ArrangeDutyOperateDto> getArrangeDutyOperateData(String ids) {
- List<String> arrangeDutyOperateIdList=new ArrayList<String>();
- if(ids!=null&&ids.length()!=0){
- for (int i = 0; i < ids.split(",").length; i++) {
- arrangeDutyOperateIdList.add(ids.split(",")[i]);
- }
- }
- ArrangeDutyOperateDto arrangeDutyOperateDto=new ArrangeDutyOperateDto();
- arrangeDutyOperateDto.setArrangeDutyOperateIdList(arrangeDutyOperateIdList);
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
- List<ArrangeDutyOperateDto> arrangeDutyOperateDtoList = arrangeDutyOperateService.getArrangeDutyOperateDtoByListId(arrangeDutyOperateDto, authSql);
-
- return arrangeDutyOperateDtoList;
-
- }
-
-
-
-
-
-
-
- @Override
- public List<UserArrangeDetailDto> getMonthWorkByUserIdList(ArrangeDutyOperateDto arrangeDutyOperateDto, String yearmonth) {
-
- //根据月度查出前一个月最后一天日期id==
- CalendarAscDto calendarAscDto=new CalendarAscDto();
- String preYearMonth="";
- int year=Integer.parseInt(yearmonth.split("-")[0]);
- int month=Integer.parseInt(yearmonth.split("-")[1]);
- if(!yearmonth.split("-")[1].equals("01")){
- month=month-1;
- calendarAscDto.setYear(year);
- calendarAscDto.setMonth(month);
- }else{
- year=year-1;
- month=12;
- calendarAscDto.setYear(year);
- calendarAscDto.setMonth(month);
- }
- String strYear=String.valueOf(year);
- String strMonth=String.valueOf(month).length()==1?"0"+String.valueOf(month):String.valueOf(month);
- preYearMonth=strYear+"-"+strMonth;
- List<CalendarAscDto> calendarAscDtoListPrevMonth=getCalendar(calendarAscDto);
- if(calendarAscDtoListPrevMonth.size()==0){
- return null;
- }
- //根据月度查出日期id==
-
- //得到前一个月最后两天日历id
- List<String> calendarIdList=new ArrayList<String>();
- calendarIdList.add(calendarAscDtoListPrevMonth.get(calendarAscDtoListPrevMonth.size()-1).getId());
-
- //得到需要排班的所有用户id
- List<String> userIdList=ProjectArrangeCommonMethod.extractIdListByComma(arrangeDutyOperateDto.getUserid());
- UserArrangeDetailDto userArrangeDetailDto=new UserArrangeDetailDto();
- userArrangeDetailDto.setUserIdList(userIdList);
- userArrangeDetailDto.setCalendarIdList(calendarIdList);
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
- //得到已选择用户上个月所有信息;
- List<UserArrangeDetailDto> userArrangeDetailDtoList=new ArrayList<UserArrangeDetailDto>();
- userArrangeDetailDtoList=userArrangeDetailService.getMonthWorkByUserId(userArrangeDetailDto, authSql);
- for (int i = 0; i < userArrangeDetailDtoList.size(); i++) {
- userArrangeDetailDtoList.get(i).setPreMonthLastShiftType(userArrangeDetailDtoList.get(i).getDutyType());
- }
-
- calendarIdList.clear();
- calendarIdList.add(calendarAscDtoListPrevMonth.get(calendarAscDtoListPrevMonth.size()-2).getId());
- userArrangeDetailDto.setCalendarIdList(calendarIdList);
- List<UserArrangeDetailDto> userArrangeDetailDtoList2=userArrangeDetailService.getMonthWorkByUserId(userArrangeDetailDto, authSql);
-
- for (int i = 0; i < userArrangeDetailDtoList.size(); i++) {
- for (int j = 0; j < userArrangeDetailDtoList2.size(); j++) {
- if(userArrangeDetailDtoList.get(i).getUserid().equals(userArrangeDetailDtoList2.get(j).getUserid())){
- userArrangeDetailDtoList.get(i).setPreMonthLastSecondShiftType(userArrangeDetailDtoList2.get(j).getDutyType());
- }
- }
- }
-
- if(userArrangeDetailDtoList.size()==0){
- return null;
- }
-
- //查找上个月的运转方式==========
- //根据月度查询项目排班操作表数据
- StringBuffer hql = new StringBuffer(" from ArrangeDutyOperateEntity t where t.yearmonth=? ");
- List<ArrangeDutyOperateEntity> arrangeDutyOperateList = this.findHql(hql.toString()
- , preYearMonth);
-
- for (int i = 0; i < userArrangeDetailDtoList.size(); i++) {
- for (int j = 0; j < arrangeDutyOperateList.size(); j++) {
- List<String> arrangeDutyOperateUserIdList=ProjectArrangeCommonMethod.extractIdListByComma(arrangeDutyOperateList.get(j).getUserid());
- if(arrangeDutyOperateUserIdList.contains(userArrangeDetailDtoList.get(i).getUserid())){
- userArrangeDetailDtoList.get(i).setPreMonthRunWay(arrangeDutyOperateList.get(j).getRunway());
- break;
- }
- }
- }
- //查找上个月的运转方式==========
- return userArrangeDetailDtoList;
- }
-
-
-
- @Override
- public List<CalendarAscDto> getCalendar(CalendarAscDto calendarAscDto) {
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
- List<CalendarAscDto> list=calendarService.getCalendarAsc(calendarAscDto, authSql);
- return list;
-
- }
- /*@Override
- public AjaxJson saveOndutyArrangeDutyOperate(String onDutyOperateId,
- String yearmonth, String pid, String arrangeDutyStatus) {
- AjaxJson j = new AjaxJson();
- Map<String, Object> failMap=new HashMap<String, Object>();
- //根据月度排班操作页面的添加和编辑操作值班排班--
- if(onDutyOperateId!=null&&onDutyOperateId.length()>0){
-
- //查询值班操作表所有数据,并获得需要值班排班的数据
- StringBuffer hql = new StringBuffer(" FROM OnDutyOperateEntity odoe where odoe.yearmonth=? ");
- List<OnDutyOperateEntity> onDutyOperateEntityList = findHql(hql.toString(),yearmonth);
- List<OnDutyOperateEntity> onDutyOperateEntityListNew=new ArrayList<OnDutyOperateEntity>();
- List<String> onDutyOperateIdList=ProjectArrangeCommonMethod.extractIdListByComma(onDutyOperateId);
- for (int i = 0; i < onDutyOperateEntityList.size(); i++) {
- for (int k = 0; k < onDutyOperateIdList.size(); k++) {
- if(onDutyOperateIdList.get(k).equals(onDutyOperateEntityList.get(i).getId())){
- onDutyOperateEntityListNew.add(onDutyOperateEntityList.get(i));
- break;
- }
- }
- }
-
- for (int i = 0; i < onDutyOperateEntityListNew.size(); i++) {
-
- //根据月度查出日期id==
- CalendarAscDto calendarAscDto=new CalendarAscDto();
- calendarAscDto.setYear(Integer.parseInt(yearmonth.split("-")[0]));
- calendarAscDto.setMonth(Integer.parseInt(yearmonth.split("-")[1]));
- List<CalendarAscDto> calendarAscDtoList=getCalendar(calendarAscDto);
- List<CalendarAscDto> calendarAscDtoListNew=new ArrayList<CalendarAscDto>();
- //根据所选时间段并去除周一至周五
- for (int r = 0; r < calendarAscDtoList.size(); r++) {
- if(calendarAscDtoList.get(r).getDay()>=Integer.parseInt(onDutyOperateEntityListNew.get(i).getArrangeStime().split("-")[2])&&
- calendarAscDtoList.get(r).getDay()<=Integer.parseInt(onDutyOperateEntityListNew.get(i).getArrangeEtime().split("-")[2])){
- if(String.valueOf(calendarAscDtoList.get(r).getWeek()).equals(Globals.week_6)||String.valueOf(calendarAscDtoList.get(r).getWeek()).equals(Globals.week_7)){
- if(!calendarAscDtoList.get(r).getDtype().equals(Globals.dtype_2)){
- calendarAscDtoListNew.add(calendarAscDtoList.get(r));
- }
- }
- }
- }
- //根据月度查出日期id==
-
- //用户id
- List<String> userIdList = ProjectArrangeCommonMethod.extractIdListByComma(onDutyOperateEntityListNew.get(i).getUserid());
- //查询项目排班详细表数据
- hql = new StringBuffer(" FROM ProjarrangeDetailEntity odoe where odoe.yearmonth=? ");
- List<ProjarrangeDetailEntity> projarrangeDetailEntityList = findHql(hql.toString(),yearmonth);
- List<ProjarrangeDetailEntity> projarrangeDetailEntityListNew=new ArrayList<ProjarrangeDetailEntity>();
-
- //匹配已经排班的用户
- for (int e = 0; e < projarrangeDetailEntityList.size(); e++) {
- for (int k = 0; k < userIdList.size(); k++) {
- if(userIdList.get(k).equals(projarrangeDetailEntityList.get(e).getUserid())){
- projarrangeDetailEntityListNew.add(projarrangeDetailEntityList.get(e));
- break;
- }
- }
- }
-
- //把班次id放入班次list中查询班次信息===================
- ArrangeDutyDto arrangeDutyDto=new ArrangeDutyDto();
- arrangeDutyDto.getArrangeDutyIdList().addAll(ProjectArrangeCommonMethod.extractIdListByComma(onDutyOperateEntityListNew.get(i).getShiftid()));
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
- List<ArrangeDutyDto> arrangeDutyDtoList = arrangeDutyService.getArrangeDutyByIdList(arrangeDutyDto, authSql);
- //轮流值班加班只有一个班次
- String shiftType=arrangeDutyDtoList.get(0).getDutyType();
- //把班次id放入班次list中查询班次信息====================
-
- //出勤时间
- String[] attendanceCycle=ProjectArrangeCommonMethod.getAttendanceCycleNumner(onDutyOperateEntityListNew.get(i).getAttendanceCycle()).split(",");
-
- int ondutyDays;//值班
- BigDecimal timeOutOvertimeHours;//超时加班
- //BigDecimal countryOvertimeHours;//国定加班
- int x;//记录每天,一天一班次
-
-
- //循环班次人员
- for (int m = 0; m < projarrangeDetailEntityListNew.size(); m++) {
-
- j=checkOndutyArrangeOperate(projarrangeDetailEntityListNew.get(m),calendarAscDtoListNew,failMap);
- if(j.getAttributes().size()!=0){
- continue;
- }
-
- //countryOvertimeHours=BigDecimal.ZERO;
- timeOutOvertimeHours=projarrangeDetailEntityListNew.get(m).getTimeOutOvertimeHours();
- ondutyDays=0;
- x=0;
- Map<String, Object> myMap=new HashMap<String, Object>();
- //循环班次
- for (int n = 0; n < arrangeDutyDtoList.size(); n++) {
- //循环日期
- for (int l = x; l < calendarAscDtoListNew.size(); l++) {
-
- //循环出勤时间
- for (int k = 0; k < attendanceCycle.length; k++) {
- if(!calendarAscDtoList.get(i).getDtype().equals(Globals.dtype_2)&&calendarAscDtoListNew.get(l).getWeek().equals(attendanceCycle[k])){
- myMap.put(calendarAscDtoListNew.get(l).getId(), arrangeDutyDtoList.get(n).getId());
- if(arrangeDutyDtoList.get(n).getTimeOutOvertimeHours()!=null){
- timeOutOvertimeHours=timeOutOvertimeHours.add(arrangeDutyDtoList.get(n).getTimeOutOvertimeHours());
- }
- ondutyDays++;
- break;
- }
- }
-
- //如果这一天没有匹配出勤时间则为休息8e31bf3fb6e6473e9f89dcdb958b145b
- if(!myMap.containsKey(calendarAscDtoListNew.get(l).getId())){
- myMap.put(calendarAscDtoListNew.get(l).getId(), Globals.DUTYTYPE_xiuxi_id);
- --n;
- }
-
- x=l+1;
- break;
- }
-
- if(x!=calendarAscDtoListNew.size()){
- if(n== arrangeDutyDtoList.size()-1){
- n=-1;
- }
- }else{
- break;
- }
- }
- System.out.println(myMap);
- if(shiftType.equals(Globals.DUTYTYPE_jiaban)){
- if(timeOutOvertimeHours!=null){
- projarrangeDetailEntityListNew.get(m).setTimeOutOvertimeHours(timeOutOvertimeHours);
- if(projarrangeDetailEntityListNew.get(m).getCountryOvertimeHours()==null){
- projarrangeDetailEntityListNew.get(m).setCountryOvertimeHours(new BigDecimal("0"));
- }
- }
- }else if(shiftType.equals(Globals.DUTYTYPE_zhiban)){
- projarrangeDetailEntityListNew.get(m).setOndutyDays(new BigDecimal(ondutyDays));
- if(projarrangeDetailEntityListNew.get(m).getCountryOvertimeHours()==null){
- projarrangeDetailEntityListNew.get(m).setCountryOvertimeHours(new BigDecimal("0"));
- }
- }
- //projarrangeDetailEntityListNew.get(m).setCountryOvertimeHours(projarrangeDetailEntityListNew.get(m).getTimeOutOvertimeHours().add(countryOvertimeHours));
- try {
- //更新项目排班详细表
- this.saveOrUpdate(projarrangeDetailEntityListNew.get(m));
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- UserArrangeDetailEntity userArrangeDetailEntity=new UserArrangeDetailEntity();
- for (Entry<String,Object> entryParam : myMap.entrySet()) {
- //System.out.println("key="+entryParam.getKey()+",value="+entryParam.getValue());
- hql = new StringBuffer(" FROM UserArrangeDetailEntity uad where uad.calendarid=? and uad.projarrangeDetailid=? ");
- List<UserArrangeDetailEntity> userArrangeDetailEntityList = findHql(hql.toString(),entryParam.getKey(),projarrangeDetailEntityListNew.get(m).getId());
-
- userArrangeDetailEntity.setId(userArrangeDetailEntityList.get(0).getId());
- userArrangeDetailEntity.setCalendarid(entryParam.getKey());
- userArrangeDetailEntity.setShiftid(entryParam.getValue().toString());
- userArrangeDetailEntity.setProjarrangeDetailid(projarrangeDetailEntityListNew.get(m).getId());
- //更新员工排班详情表
- j=saveUserArrangeDetail(userArrangeDetailEntity);
- }
-
-
- }
-
- }
- }
- if(failMap.size()!=0){
- j.setMsg(failMap.get("failData")+"在所选日期范围已有排班");
- }
- return j;
- }*/
-
-
-
-
-
- /**
- * 轮流值班加班排班方法
- * 多个人批量循环排班
- * @author zbw
- * 2017-11-22
- * @return
- */
-
-
-
-
-
- /**
- * 轮流值班/加班验证
- * 是否在该时间段排过班
- * @author zbw
- * 2017-11-22
- * @param projarrangeDetailEntity
- * @param calendarAscDtoListNew
- * @param failMap
- * @return
- */
- public AjaxJson checkOndutyArrangeOperate(String projarrangeDetailid,List<CalendarAscDto> calendarAscDtoList,Map<String, Object> failMap){
- AjaxJson j = new AjaxJson();
- UserAndShiftDto userAndShiftDto=new UserAndShiftDto();
- userAndShiftDto.setProjarrangeDetailid(projarrangeDetailid);
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
- List<UserAndShiftDto> userAndShiftDtoList=getUserAndShift(userAndShiftDto, authSql);
- List<UserAndShiftDto> userAndShiftDtoListNew=new ArrayList<UserAndShiftDto>();
- for (int i = 0; i < userAndShiftDtoList.size(); i++) {
- for (int k = 0; k < calendarAscDtoList.size(); k++) {
- if(calendarAscDtoList.get(k).getId().equals(userAndShiftDtoList.get(i).getCalendarid())){
- userAndShiftDtoListNew.add(userAndShiftDtoList.get(i));
- break;
- }
- }
- }
-
- boolean flag= true;
- String realname="";
- for (int i = 0; i < userAndShiftDtoListNew.size(); i++) {
- realname=userAndShiftDtoListNew.get(0).getRealname();
- if(userAndShiftDtoListNew.get(i).getShiftType().equals(Globals.DUTYTYPE_CHANGBAN8H)
- ||userAndShiftDtoListNew.get(i).getShiftType().equals(Globals.DUTYTYPE_riban11h)
- ||userAndShiftDtoListNew.get(i).getShiftType().equals(Globals.DUTYTYPE_yeban115)
- ||userAndShiftDtoListNew.get(i).getShiftType().equals(Globals.DUTYTYPE_zhiban)
- ||userAndShiftDtoListNew.get(i).getShiftType().equals(Globals.DUTYTYPE_jiaban)){
- flag= false;
- }
- }
-
- if(flag==false){
- if(failMap.size()==0){
- failMap.put("failData", realname);
- }else{
- failMap.put("failData", failMap.get("failData")+","+realname);
- }
- }
-
- j.setAttributes(failMap);
- return j;
- }
- @Override
- @Arguments({ "userAndShiftDto", "authSql" })
- @ResultType(UserAndShiftDto.class)
- public List<UserAndShiftDto> getUserAndShift(
- UserAndShiftDto userAndShiftDto, String authSql) {
- // TODO Auto-generated method stub
- return userAndShiftMiniDao.getUserAndShift(userAndShiftDto, authSql);
- }
- @Override
- public AjaxJson checkMonthArrangeDutyStatus(String pid, String yearmonth) {
- AjaxJson j = new AjaxJson();
- String message="";
- StringBuffer hql = new StringBuffer(" from ProjArrangeGeneralEntity t where 1=1 ");
- hql.append(" and t.yearmonth =? and t.belongUnitid=? ");
- List<ProjArrangeGeneralEntity> projArrangeGeneralEntityList = projArrangeGeneralService.findHql(hql.toString(),yearmonth,pid);
- if(projArrangeGeneralEntityList.size()>0){
- if(projArrangeGeneralEntityList.get(0).getArrangeDutyStatus().equals(Globals.ARRANGESTATUS_0)){//未上报
- message="0";
- }else if(projArrangeGeneralEntityList.get(0).getArrangeDutyStatus().equals(Globals.ARRANGESTATUS_1)){//未确认
- message="1";
- }else if(projArrangeGeneralEntityList.get(0).getArrangeDutyStatus().equals(Globals.ARRANGESTATUS_2)){//已确认
- message="2";
- }
- }
- j.setMsg(message);
- return j;
- }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- }
|