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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
package com.shlanbao.tzsc.pms.equ.eqpCheck.service.impl;
 
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
import com.shlanbao.tzsc.base.dao.EqmCheckPlanDaoI;
import com.shlanbao.tzsc.base.dao.EqmCheckPlanParamDaoI;
import com.shlanbao.tzsc.base.mapping.EqmCheckPlan;
import com.shlanbao.tzsc.base.mapping.EqmCheckPlanParam;
import com.shlanbao.tzsc.base.model.DataGrid;
import com.shlanbao.tzsc.base.model.PageParams;
import com.shlanbao.tzsc.pms.equ.eqpCheck.bean.EqmCheckPalnParamBean;
import com.shlanbao.tzsc.pms.equ.eqpCheck.bean.EqmCheckPlanBean;
import com.shlanbao.tzsc.pms.equ.eqpCheck.service.EqmCheckServiceI;
import com.shlanbao.tzsc.utils.params.SysEqpTypeBase;
import com.shlanbao.tzsc.utils.tools.StringUtil;
 
/**
 * 设备点检接口
 * 
 * @author shisihai
 *
 */
@Service
public class EqmCheckServiceImpl implements EqmCheckServiceI {
    @Autowired
    private EqmCheckPlanDaoI planDao;
    @Autowired
    private EqmCheckPlanParamDaoI paramDao;
 
    @Override
    public void batchAdd(EqmCheckPlanBean bean) throws Exception{
        String[] roel=SysEqpTypeBase.getArrayDJRoleAll();
        //生成一级点检计划 如果选择班次班组则是只为这些班次班组添加点检计划,不选择则是为所有班次班组添加点检计划。已工厂日历为准。
        //删除重复添加的计划  先删除二级
        StringBuffer sb=new StringBuffer();
        sb.append("DELETE EQM_CHECK_PLAN_PARAM where pid in ");
        sb.append("(SELECT id from EQM_CHECK_PLAN p ");
        sb.append(" where 1=1 ");
        if(StringUtil.notNull(bean.getShift())){
            sb.append(" and shift = "+ bean.getShift());
        }
        if(StringUtil.notNull(bean.getTeam())){
            sb.append(" and team= "+bean.getTeam()+")");
        }
        if(StringUtil.notNull(bean.getMdEqpCategory())){
            sb.append(" and EQP_TYPE='"+bean.getMdEqpCategory()+"'");
        }
        sb.append(" and to_char(p.datep,'yyyy-MM-dd') >='"+bean.getDate_plan1()+"' and to_char(p.datep,'yyyy-MM-dd') <= '"+bean.getDate_plan2()+"')");
        planDao.updateInfo(sb.toString(),null);
        sb.delete(0, sb.length());
        
        
        //删除一级数据
        
        sb.append("DELETE EQM_CHECK_PLAN where to_char(datep,'yyyy-MM-dd') >= '"+bean.getDate_plan1()+"'");
        sb.append(" and to_char(datep,'yyyy-MM-dd') <= '"+bean.getDate_plan2()+"'");
        if(StringUtil.notNull(bean.getShift())){
            sb.append(" and shift = "+ bean.getShift());
        }
        if(StringUtil.notNull(bean.getTeam())){
            sb.append(" and team= "+bean.getTeam());
        }
        if(StringUtil.notNull(bean.getMdEqpCategory())){
            sb.append(" and EQP_TYPE='"+bean.getMdEqpCategory()+"'");
        }
        planDao.updateInfo(sb.toString(),null);
        sb.delete(0, sb.length());
        
        
        
        //添加一级点检计划
        String shift="SHIFT";
        String team="TEAM";
        if(StringUtil.notNull(bean.getShift())){
            shift=bean.getShift();
        }
        if(StringUtil.notNull(bean.getTeam())){
            team=bean.getTeam();
        }
        sb.append("insert into EQM_CHECK_PLAN (id,SHIFT,TEAM,DATEP,EQP_TYPE,DEL,NAME,STATUS,dicid)  ");
        sb.append("select SYS_GUID(),"+shift+","+team+",DATE_,'"+bean.getMdEqpCategory()+"',0,'','0','"+bean.getDicID()+"'");
        sb.append(" from SCH_CALENDAR where 1=1 ");
        sb.append(" and to_char(DATE_,'yyyy-MM-dd') >= '"+bean.getDate_plan1()+"'");
        sb.append(" and to_char(DATE_,'yyyy-MM-dd') <= '"+bean.getDate_plan2()+"'");
        sb.append(" and DEL=0");
        if(StringUtil.notNull(bean.getWorkshop())){
            sb.append(" AND WORKSHOP = '"+bean.getWorkshop()+"'");
        }
        if(StringUtil.notNull(bean.getShift())){
            sb.append(" and shift= "+bean.getShift());
        }
        if(StringUtil.notNull(bean.getTeam())){
            sb.append(" and team= "+bean.getTeam());
        }
        planDao.updateInfo(sb.toString(),null);
        sb.delete(0, sb.length());
        //生成二级点检计划部分
        
        //具体的各机台
        sb.append("SELECT me.id from MD_EQUIPMENT me LEFT JOIN MD_EQP_TYPE mt ON mt.id=me.eqp_type_id LEFT JOIN MD_EQP_CATEGORY mec ON mt.cid=mec.id where mec.id='"+bean.getMdEqpCategory()+"'");    
        List<?> lt=planDao.queryBySql(sb.toString());
        sb.delete(0, sb.length());
        //获取点检详细
        sb.append("SELECT st.DES,st.DJ_TYPE,st.DJ_METHOD_ID,st.name,st.id from SYS_EQP_TYPE st LEFT JOIN SYS_EQP_CATEGORY sc ON st.cid=sc.id where sc.id='"+bean.getDicID()+"'");
        List<?> lt2=planDao.queryBySql(sb.toString());
        sb.delete(0, sb.length());
        //遍历机台
        for (int i = 0; i < lt.size(); i++) {
            String eqpid=lt.get(i).toString();
            //遍历点检项目有死数据 写死的
            for (int j = 0; j < lt2.size(); j++) {
                Object[] o=(Object[]) lt2.get(j);
                sb.append("insert into EQM_CHECK_PLAN_PARAM(id,pid,stime,enable,status,eqp_id,check_type,check_position,check_standard,check_method,dicid) ");
                sb.append(" select SYS_GUID(),id,sysdate,'0','0','"+eqpid+"'"+",'"+o[1].toString()+"','"+o[0].toString()+"','"+o[3].toString()+"','"+o[2].toString()+"','"+o[4].toString()+"'");
                sb.append(" from EQM_CHECK_PLAN where 1=1 ");
                sb.append(" and to_char(DATEP,'yyyy-MM-dd') >= '"+bean.getDate_plan1()+"'");
                sb.append(" and to_char(DATEP,'yyyy-MM-dd') <= '"+bean.getDate_plan2()+"'");
                sb.append(" and EQP_TYPE= '" +bean.getMdEqpCategory()+"'");
                planDao.updateInfo(sb.toString(), null);
                sb.delete(0, sb.length());
            }
        }
    }
    
    /**
     * 查询
     * 2015.9.16--张璐
     */
    @Override
    public DataGrid queryEqmCheckPlan(EqmCheckPlanBean checkBean,PageParams pageParams) throws Exception {
        StringBuilder hql=new StringBuilder();
        hql.append("from EqmCheckPlan o where 1=1 and o.del=0 "); 
        if(StringUtil.notNull(checkBean.getMdEqpCategory())){
            hql.append(" and o.mdEqpCategory.id = '"+ checkBean.getMdEqpCategory() +"'");
        }
        if(StringUtil.notNull(checkBean.getDate_plan1())){
            hql.append(" and to_char(o.dateP,'yyyy-MM-dd') >= '"+ checkBean.getDate_plan1() +"'");
        } 
        if(StringUtil.notNull(checkBean.getDate_plan2())){
            hql.append(" and to_char(o.dateP,'yyyy-MM-dd') <= '"+ checkBean.getDate_plan2() +"'");
        }
        List<EqmCheckPlan> listBean = planDao.queryByPage(hql.toString(), pageParams);    
        List<EqmCheckPlanBean> list = new ArrayList<EqmCheckPlanBean>();
        for(EqmCheckPlan check : listBean){
            EqmCheckPlanBean bean =new EqmCheckPlanBean();
            bean.setId(check.getId());
            bean.setDateP(new SimpleDateFormat("yyyy-MM-dd").format(check.getDateP()));
            bean.setMdEqpCategory(check.getMdEqpCategory().getName());
            bean.setShift(check.getShift().getName());
            bean.setStatus(check.getStatus());
            bean.setTeam(check.getTeam().getName());
            list.add(bean);
        }
        hql.insert(0,"select count(*) ");
        long total = planDao.queryTotal(hql.toString());
        return new DataGrid(list,total);
    }
    
    /**
     * 批量删除
     * 2015.9.16--张璐
     */
    @Override
    public void batchDeleteEqmCheckPlan(String ids) throws Exception {
        ids=ids.replaceAll(",", "','");
        StringBuffer sb=new StringBuffer("delete EQM_CHECK_PLAN where id in('");
        sb.append(ids);
        sb.append("')");
        planDao.updateInfo(sb.toString(),null);
        sb.delete(0, sb.length());
        sb.append("delete EQM_CHECK_PLAN_PARAM where pid in('");
        sb.append(ids);
        sb.append("')");
        paramDao.queryBySql(sb.toString());
    }
 
    @Override
    public DataGrid queryEqmCheckPlanParam(String pid) throws Exception {
//        String hql="from EqmCheckPlanParam e left join on  where e.pid.id= ?";
//        List<EqmCheckPlanParam> ls=paramDao.query(hql, pid);
        StringBuffer sb=new StringBuffer("SELECT p.status, p.check_type,p.check_position,p.check_standard,p.check_method,m.EQUIPMENT_NAME FROM EQM_CHECK_PLAN_PARAM p ");
        sb.append(" LEFT JOIN MD_EQUIPMENT m ON m.id =p.eqp_id where p.PID='"+pid+"'");
        List<Object[]> o=(List<Object[]>) paramDao.queryBySql(sb.toString());
        List<EqmCheckPalnParamBean> eqmsp=new ArrayList<EqmCheckPalnParamBean>();
        for (Object[] o2 : o) {
            EqmCheckPalnParamBean bean=new EqmCheckPalnParamBean();
            bean.setCheckMethod(o2[4].toString());
            bean.setCheckPosition(o2[2].toString());
            bean.setCheckStandard(o2[3].toString());
            bean.setCheckType(o2[1].toString());
            bean.setStatus(o2[0].toString());
            bean.setEqpName(o2[5].toString());
            eqmsp.add(bean);
        }
        //List<EqmCheckPalnParamBean> eqms=BeanConvertor.copyList(ls, EqmCheckPalnParamBean.class);
//        List<EqmCheckPalnParamBean> eqmsp=new ArrayList<EqmCheckPalnParamBean>();
//        for (EqmCheckPlanParam e : ls) {
//            EqmCheckPalnParamBean bean=new EqmCheckPalnParamBean();
//            bean.setCheckMethod(e.getCheckMethod());
//            bean.setCheckPosition(e.getCheckPosition());
//            bean.setCheckStandard(e.getCheckStandard());
//            bean.setCheckType(e.getCheckType());
//            bean.setStatus(e.getStatus());
//            bean.setEqpId(e.getEqpid());
//            bean.setDicid(e.getDicid());
//            eqmsp.add(bean);
//        }
        Long rows=(long) eqmsp.size();
        return new DataGrid(eqmsp,rows);
    }    
    
}