zhuguifei
2026-03-10 58402bd5e762361363a0f7d7907153c77dbb819f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package com.shlanbao.tzsc.pms.sch.calendar.service.impl;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
 
import com.shlanbao.tzsc.utils.tools.DateUtil;
import com.shlanbao.tzsc.utils.tools.FillUserInfoUtil;
import com.shlanbao.tzsc.utils.tools.LogAnno;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.shlanbao.tzsc.base.dao.SchCalendarDaoI;
import com.shlanbao.tzsc.base.mapping.MdShift;
import com.shlanbao.tzsc.base.mapping.MdTeam;
import com.shlanbao.tzsc.base.mapping.SchCalendar;
import com.shlanbao.tzsc.base.service.BaseService;
import com.shlanbao.tzsc.pms.sch.calendar.beans.CalendarBean;
import com.shlanbao.tzsc.pms.sch.calendar.service.CalendarServiceI;
import com.shlanbao.tzsc.utils.tools.BeanConvertor;
 
import freemarker.template.utility.StringUtil;
 
import javax.servlet.http.HttpServletRequest;
 
@Service
public class CalendarServiceImpl extends BaseService implements CalendarServiceI{
    @Autowired
    private SchCalendarDaoI schCalendarDao;
    @Autowired
    private HttpServletRequest request;
    @Override
    public List<CalendarBean> getCurMonthCalendars(String date, String workshop)
            throws Exception {
                /* String hql = "from SchCalendar o left join fetch o.mdTeam t left join fetch o.mdShift s where 1=1 and  to_char(o.date,'yyyy-mm')='"+date.substring(0, 7)+"' and o.mdWorkshop.code='"+workshop+"' order by o.mdShift.code asc";
                List<SchCalendar> list=schCalendarDao.query(hql);*/
                StringBuffer sb=new StringBuffer("select ms.name as shiftName,mt.name as teamName, ");
                sb.append("sc.id,to_char(sc.date_,'yyyy-mm-dd') ,to_char(sc.stim,'yyyy-mm-dd hh24:mi:ss') ,to_char(sc.etim,'yyyy-mm-dd hh24:mi:ss'),sc.workshop ");
                sb.append("from sch_calendar sc ");
                sb.append("left join md_shift ms on ms.id=sc.shift ");
                sb.append("left join md_team mt on mt.id=sc.team ");
                sb.append("where to_char(sc.date_,'yyyy-mm')='"+date.substring(0, 7)+"' ");
                sb.append("and sc.workshop='"+workshop+"' ");
                sb.append("order by ms.code asc");
                List<?> ls=schCalendarDao.queryBySql(sb.toString());
                List<CalendarBean> calendarBeans=new ArrayList<CalendarBean>();
                CalendarBean calendarBean = null;
                Object[] str=null;
                if(ls!=null && ls.size()>0){
                    for (Object obj : ls) {
                        calendarBean=new CalendarBean();
                        str=(Object[]) obj;
                        calendarBean.setShift(StringUtil.tryToString(str[0]));
                        calendarBean.setTeam(StringUtil.tryToString(str[1]));
                        calendarBean.setId(StringUtil.tryToString(str[2]));
                        calendarBean.setDate(StringUtil.tryToString(str[3]));
                        calendarBean.setStim(StringUtil.tryToString(str[4]));
                        calendarBean.setEtim(StringUtil.tryToString(str[5]));
                        calendarBean.setWorkshop(StringUtil.tryToString(str[6]));
                        calendarBeans.add(calendarBean);
                        calendarBean = null;
                    }
                }
                return calendarBeans;
    }
 
    @LogAnno(operateType = "更新选择日期的排班")
    @Override
    public void updateSelectDate(Map<String, String> param) {
        for(int i = 0 ; i< 3 ;i++){
            if(param.containsKey("id"+i)){
                SchCalendar calendar = schCalendarDao.findById(SchCalendar.class, param.get("id" + i));
                Date sdate = DateUtil.formatStringToDate(param.get("stime" + i), "yyyy-MM-dd HH:mm:ss");
                Date edate = DateUtil.formatStringToDate(param.get("etime" + i), "yyyy-MM-dd HH:mm:ss");
                calendar.setStim(sdate);
                calendar.setEtim(edate);
                FillUserInfoUtil.fillUpdateUserInfo(calendar,request);
                schCalendarDao.update(calendar);
            }
 
 
        }
 
    }
 
    @Override
    public List<SchCalendar> getNowCalendars() {
         return  schCalendarDao.query("from SchCalendar o where sysdate between o.stim and o.etim");
    }
}