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
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
package com.shlanbao.tzsc.pms.equ.eqpMaintain.service.impl;
 
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
 
import javax.servlet.http.HttpSession;
 
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.EqmWheelCovelParamDaoI;
import com.shlanbao.tzsc.base.dao.EqmWheelCovelPlanDaoI;
import com.shlanbao.tzsc.base.interceptor.WorkOrderStatChangeInterceptor;
import com.shlanbao.tzsc.base.mapping.EqmWheelCovelParam;
import com.shlanbao.tzsc.base.mapping.EqmWheelCovelPlanInfo;
import com.shlanbao.tzsc.base.model.DataGrid;
import com.shlanbao.tzsc.base.model.Json;
import com.shlanbao.tzsc.base.model.PageParams;
import com.shlanbao.tzsc.base.model.SessionInfo;
import com.shlanbao.tzsc.pms.equ.eqpMaintain.service.EqpMaintainServiceI;
import com.shlanbao.tzsc.pms.sys.repairResquest.beans.RepairResquestBean;
import com.shlanbao.tzsc.pms.sys.user.beans.UserBean;
import com.shlanbao.tzsc.utils.tools.StringUtil;
 
@Service
public class EqpMaintainServiceImpl implements EqpMaintainServiceI {
    @Autowired
    private EqmWheelCovelPlanDaoI eqmWheelCovelPlanDao;
    @Autowired
    private EqmWheelCovelParamDaoI eqmWheelCovelParamDao;
 
    /**
     * 【功能说明】:PMS设备保养计划-查询
     * @author wanchanghuang
     * @time 2017年12月7日10:42:08
     */
    @Override
    public DataGrid queryEqmMaintainPlan(EqmWheelCovelPlanInfo wcpBean, PageParams pageParams) {
        StringBuilder hql=new StringBuilder();
        hql.append("from EqmWheelCovelPlanInfo o where  o.del=0 ");
        //维保类型过滤
        if(StringUtil.notNull(wcpBean.getType())){
            hql.append("and o.type='"+wcpBean.getType()+"'");
        }
        //时间查询
        if(StringUtil.notNull(wcpBean.getDate1())){
            hql.append(" and o.plan_date >= to_date('"+wcpBean.getDate1()+"','yyyy-MM-dd')");
        }
        if(StringUtil.notNull(wcpBean.getDate2())){
            hql.append(" and o.plan_date <= to_date('"+wcpBean.getDate2()+"','yyyy-MM-dd')");
        }
        if(StringUtil.notNull(wcpBean.getEqpType())){
            hql.append(" and o.eqp_name like '%"+wcpBean.getEqpType()+"%'");
        }
        if(StringUtil.notNull(wcpBean.getEqp_id())){
            hql.append(" and o.eqp_id like '%"+wcpBean.getEqp_id()+"%'");
        }
        if(StringUtil.notNull(wcpBean.getAttr1())){
            hql.append(" and o.attr1 =" + wcpBean.getAttr1());
        }
        if(StringUtil.notNull(wcpBean.getAttr2())){
            hql.append(" and o.shift_id =" + wcpBean.getAttr2());
        }
        if(wcpBean.getSh_status()!=null&&wcpBean.getSh_status()>=0){
            hql.append(" and o.sh_status =" + wcpBean.getSh_status());
        }
        List<EqmWheelCovelPlanInfo> list = eqmWheelCovelPlanDao.queryByPage(hql.toString(), pageParams);
        hql.insert(0,"select count(*) ");
        long total = eqmWheelCovelPlanDao.queryTotal(hql.toString());
        return new DataGrid(list,total);
    }
 
    /**
     * 查询维保计划详细
     */
    @Override
    public DataGrid queryplanDetail(EqmWheelCovelParam bean) {
 
        StringBuffer sb=new StringBuffer();
        sb.append("select t.*,nvl(d.COMPLETE_STATUS,0) as complete_status,d.des as paraDes,d.check_result,d.COMPLETEBY from (");
        if(bean!=null){
            if(bean.getTeamName().equals("1")){
                sb.append("selectb.ID,b.NUM,b.MAIN_MENU as mainMenu,b.MAIN_STANDARDS,(select name from SYS_ROLE where id = b.role_Id) as rolename," +
                     "c.id as planIdfrom SYS_EQP_CATEGORY a,EQM_WHEELCOVER b,EQM_WHEEL_COVEL_PLAN c ");
            }else if(bean.getTeamName().equals("2")){
                sb.append(" select b.ID,to_number(b.NUM) as num, b.LUB_METHOD,'',b.SPE_PERSON,c.id as planId "+
                " from SYS_EQP_CATEGORY a,EQM_LUBRICATION b,EQM_WHEEL_COVEL_PLAN c ");
            }else if (bean.getTeamName().equals("4")) {
                sb.append("select b.ID,to_number(b.NUM) as num,b.CLEAN_METHOD, b.CLEAN_STANDARDS,b.SPE_PERSON,c.id as planId "+
                        " from SYS_EQP_CATEGORY a,EQM_MAINTENANCE b,EQM_WHEEL_COVEL_PLAN c ");
            }else if(bean.getTeamName().equals("5")){
                sb.append("select b.ID, to_number(b.NUM) as num, b.CHECK_METHOD,b.JUDGEMENT_STANDARD,b.SPE_PERSON,c.id as planId "+
                 " from SYS_EQP_CATEGORY a,EQM_INSPECTION b,EQM_WHEEL_COVEL_PLAN c");
            }
        }
        sb.append(" where a.del=0 and b.enable=1 and a.enable=1 "
                +"and a.id=b.sys_ec "
                +" and c.attr1=a.cycle_type "
                 +"and c.attr2=a.cycle_num "
                +" and a.maintainace_type= ? "
                +"and a.eqp_type=(select eqp_type_id from MD_EQUIPMENT where del=0  and id=? and rownum=1)"
                +"and c.id=? "
            +") t LEFT JOIN EQM_WHEEL_COVEL_PARAM d  on t.planId=d.EWCP_ID and t.num=d.job_no order by t.num");
 
        List<EqmWheelCovelParam> list=new ArrayList<>();
        try {
                List<?> result=eqmWheelCovelPlanDao.queryBySql(sb.toString(),bean.getTeamName(),bean.getDes(),bean.getEwcpId());
                Object[] obj=null;
                EqmWheelCovelParam paramsBean=null;
                for (Object object : result) {
                    obj=(Object[]) object;
                    paramsBean=new EqmWheelCovelParam();
                    paramsBean.setId(StringUtil.convertObjToString(obj[0]));
                    paramsBean.setJobNo(StringUtil.convertObjToString(obj[1]));
                    paramsBean.setMaintMethod(StringUtil.convertObjToString(obj[2]));
                    paramsBean.setJobStandard(StringUtil.convertObjToString(obj[3]));
                    paramsBean.setReviewer(StringUtil.convertObjToString(obj[4]));
                    //paramsBean.setJob_standard(StringUtil.convertObjToString(obj[4]));
                    paramsBean.setCompleteStatus(StringUtil.convertObjToString(obj[6]));
                //    paramsBean.setStatus(StringUtil.convert2Integer(obj[6]));
                    paramsBean.setCheckResult(StringUtil.convertObjToString(obj[8]));
                    paramsBean.setCompleteby(StringUtil.convertObjToString(obj[9]));
                    list.add(paramsBean);
                }
                return new DataGrid(list, 0L);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new DataGrid(list , 0L);
    }
 
    /**
     * 反馈设备维保计划
     */
    @Override
    public int dasSendEquipmentWorkOrderResult(String type, String ids) {
        ids=ids.replaceAll(",", "','");//如: 1,2拼接成  1','2
        StringBuilder hql=new StringBuilder(1000);
        hql.append("from EqmWheelCovelPlanInfo o where 1=1 and o.del=0 and sh_status=1 and o.id in ('"+ids+"')");
        List<EqmWheelCovelPlanInfo> list = eqmWheelCovelPlanDao.query(hql.toString());
        //判断,如果没有完成不反馈
        if(list==null || list.size()<1){
            return 0;
        }
        hql.setLength(0);//清空
        hql.append("from EqmWheelCovelParam t where 1=1 and t.del=0 and t.eqm_wcp_id in ('"+ids+"') ");
        List<EqmWheelCovelParam> listParam = eqmWheelCovelParamDao.query(hql.toString());
        List<String> fackIds=new ArrayList<>();
        //调用封装XML方法
        fackIds=WorkOrderStatChangeInterceptor.getInstance().dasSendEquipmentWorkOrderResult(list,listParam,fackIds);
        EqmWheelCovelPlanInfo fackSuBean=null;
        for (String id : fackIds) {
            fackSuBean=eqmWheelCovelPlanDao.findById(EqmWheelCovelPlanInfo.class, id);
            fackSuBean.setSh_status(5);
        }
        if(fackIds.size()==0){
            return 0;
        }else{
            return 1;
        }
    }
 
    /**
     * 根据详细项id查询改对象
     */
    @Override
    public EqmWheelCovelParam queryDetailById(String id) {
        EqmWheelCovelParam bean=new EqmWheelCovelParam();
        bean.setId(id);
        try {
            DataGrid dataGrid=queryplanDetail(bean);
            bean=(EqmWheelCovelParam) dataGrid.getRows().get(0);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return bean;
 
    }
 
    /**
     * 修改设备维保详细项
     */
    @Override
    public void editParams(EqmWheelCovelParam bean,HttpSession session) throws Exception {
        SessionInfo sessionInfo=(SessionInfo) session.getAttribute("sessionInfo");
        UserBean user=sessionInfo.getUser();
        String uid=user.getId();
        String uname=user.getName();
    /*    bean.setDel(0);
        bean.setActual_user_id(uid);
        bean.setUpdate_time(new Date());
        bean.setActual_user_name(uname);
        bean.setLast_user_id(uid);
        bean.setLast_time(new Date());*/
        eqmWheelCovelParamDao.saveOrUpdate(bean);
    }
 
    /**
     * 完成维保计划
     */
    @LogAnno(operateType = "完成维保计划")
    @Override
    public void finishMainTainPlan(String id, HttpSession session) throws Exception{
        SessionInfo sessionInfo=(SessionInfo) session.getAttribute("sessionInfo");
        UserBean user=sessionInfo.getUser();
        String uid=user.getId();
        String uname=user.getName();
        EqmWheelCovelPlanInfo bean=eqmWheelCovelPlanDao.findById(EqmWheelCovelPlanInfo.class, id);
        bean.setSh_status(1);
        bean.setLast_etime(new Date());
        bean.setLast_stime(new Date());
        bean.setZx_user_id(uid);
        bean.setZx_user_name(uname);
        eqmWheelCovelPlanDao.save(bean);
    }
 
    /**
     * 选择维修工,用于维修呼叫
     */
    @Override
    public DataGrid callMaintenanceman() {
        RepairResquestBean bean=null;
        List<RepairResquestBean> beans=new ArrayList<>();
        StringBuffer sb=new StringBuffer();
        String queryFiled="USER_ID,USER_NAME,TYPE_ID,TYPE_NAME,PATH,EQP_TYPE,TEAM_ID,STATUS,SHIFT_ID";
        sb.append(" SELECT queryFiled from SYS_MAINTENANCE_STAFF ");
        List<?> ls=eqmWheelCovelPlanDao.queryBySql(sb.toString().replaceAll("queryFiled", "count(*)"));
        long total=StringUtil.converObj2Long(ls.get(0));
        if(total>0){
            ls=eqmWheelCovelPlanDao.queryBySql(sb.toString().replaceAll("queryFiled", queryFiled));
            Object[] obj=null;
            for (Object object : ls) {
                obj=(Object[]) object;
                bean=new RepairResquestBean();
                bean.setUserId(StringUtil.convertObjToString(obj[0]));
                bean.setUserName(StringUtil.convertObjToString(obj[1]));
                bean.setTypeId(StringUtil.convertObjToString(obj[2]));
                bean.setTypeName(StringUtil.convertObjToString(obj[3]));
                bean.setPath(StringUtil.convertObjToString(obj[4]));
                bean.setEqpType(StringUtil.convertObjToString(obj[5]));
                bean.setTeamId(StringUtil.convertObjToString(obj[6]));
                bean.setStatus(StringUtil.convertObjToString(obj[7]));
                bean.setShiftId(StringUtil.convertObjToString(obj[8]));
                beans.add(bean);
            }
        }
        return new DataGrid(beans, total);
    }
 
    /**
     * 添加维修呼叫记录
     */
    @Override
    public Json addCallInfo(String id, String rId,String rName,String rType,HttpSession session) {
        Json json=new Json();
        try {
            SessionInfo sessionInfo=(SessionInfo) session.getAttribute("sessionInfo");
            UserBean user=sessionInfo.getUser();
            String uid=user.getId();
            String uname=user.getName();
            StringBuffer sb=new StringBuffer();
            List<Object> params=new ArrayList<>();
            //根据维保计划id查询班次、班组、设备、工单等信息
            sb.append(" SELECT a.EQP_ID,a.eqp_name,a.SHIFT_ID,b.TEAM,b.id ");
            sb.append(" from ");
            sb.append(" EQM_WHEEL_COVEL_PLAN a LEFT JOIN SCH_WORKORDER b ON a.EQP_ID=b.EQP AND a.PLAN_STIME BETWEEN b.STIM AND b.ETIM where a.id='"+id+"'");
            List<?> ls=eqmWheelCovelPlanDao.queryBySql(sb.toString());
            if(ls!=null && ls.size()>0){
                Object[] obj=(Object[]) ls.get(0);
                //添加维修呼叫记录,
                sb.setLength(0);
                sb.append("INSERT INTO SYS_SERVICE_INFO (ID, SHIFT_ID, TEAM_ID, EQP_ID, EQP_NAME, CREATE_USER_TIME, CREATE_USER_NAME,CREATE_USER_ID,DESIGNATED_PERSON_ID,DESIGNATED_PERSON_NAME,TYPE_NAME,STATUS, WORKORDER_ID,DEL, MES_ID) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
                params.add(UUID.randomUUID().toString());
                params.add(StringUtil.convertObjToString(obj[2]));//shift
                params.add(StringUtil.convertObjToString(obj[3]));//team
                params.add(StringUtil.convertObjToString(obj[0]));//eqpId
                params.add(StringUtil.convertObjToString(obj[1]));//eqpName
                params.add(new Date());//创建时间
                params.add(uname);//创建人
                params.add(uid);//创建人id
                params.add(rId);//呼叫维修工id
                params.add(rName);//呼叫维修工名
                params.add(rType);//维修类型
                params.add("0");//状态
                params.add(StringUtil.convertObjToString(obj[4]));//工单id
                params.add(0);//del
                params.add(id);//MES维保工单id
                eqmWheelCovelPlanDao.updateBySql(sb.toString(), params);
                //修改维修工状态为忙碌
                sb.setLength(0);
                sb.append(" UPDATE SYS_MAINTENANCE_STAFF SET STATUS='"+1+"' where user_id='"+rId+"'");
                eqmWheelCovelPlanDao.updateBySql(sb.toString(),null);
                json.setSuccess(true);
                json.setMsg("维修呼叫成功!");
            }else{
                json.setMsg("没有查询到当前维保工单对应的工单等信息");
            }
        } catch (Exception e) {
            e.printStackTrace();
            json.setMsg("维修呼叫添加失败!");
        }
        return json;
    }
    @LogAnno(operateType = "删除维保计划")
    @Override
    public int delMainTainPlan(String id) {
        String[] ids = id.split(",");
        int rows=0;
        for(int i=0;i<ids.length;i++){
            rows= eqmWheelCovelPlanDao.deleteById(ids[i], EqmWheelCovelPlanInfo.class);
        }
        return rows;
    }
 
    @LogAnno(operateType = "完成/反馈维保项撤回")
    @Override
    public int recallParam(String id) {
        String[] ids = id.split(",");
        int rows=0;
        for(int i=0;i<ids.length;i++){
            rows += eqmWheelCovelParamDao.deleteById(ids[i], EqmWheelCovelParam.class);
        }
        return rows;
    }
 
    /**
     * [功能说明]:设备 保养工单详细
     * 1. 轮保 2 润滑 3 停产检修 4 周期性保养 5 点检
     * */
    @Override
    public DataGrid queryMaintainInfo(EqmWheelCovelParam bean) {
        StringBuffer sb=new StringBuffer();
        sb.append("select t.*,nvl(d.COMPLETE_STATUS,0) as complete_status,d.des as paraDes,d.check_result,d.COMPLETEBY,d.id as paramId from (");
        if(bean!=null){
            if(bean.getTeamName().equals("1")){
                sb.append("select b.ID,b.NUM,b.MAIN_MENU as mainMenu,b.MAIN_STANDARDS,(select name from SYS_ROLE where id = b.role_Id) as rolename," +
                     "c.id as planId from SYS_EQP_CATEGORY a,EQM_WHEELCOVER b,EQM_WHEEL_COVEL_PLAN c ");
            }else if(bean.getTeamName().equals("2")){
                sb.append(" select b.ID,to_number(b.NUM) as num, b.LUB_METHOD,b.LUB_POSITION,b.SPE_PERSON,c.id as planId "+
                " from SYS_EQP_CATEGORY a,EQM_LUBRICATION b,EQM_WHEEL_COVEL_PLAN c ");
            }else if (bean.getTeamName().equals("4")) {
                sb.append("select b.ID,to_number(b.NUM) as num,b.CLEAN_METHOD, b.CLEAN_STANDARDS,b.SPE_PERSON,c.id as planId "+
                        " from SYS_EQP_CATEGORY a,EQM_MAINTENANCE b,EQM_WHEEL_COVEL_PLAN c ");
            }else if(bean.getTeamName().equals("5")){
                sb.append("select b.ID, to_number(b.NUM) as num, b.CHECK_METHOD,b.JUDGEMENT_STANDARD,b.SPE_PERSON,c.id as planId "+
                 " from SYS_EQP_CATEGORY a,EQM_INSPECTION b,EQM_WHEEL_COVEL_PLAN c ");
            }
        }
        sb.append(" where a.del=0  and a.enable=1 " );
        if("1".equals(bean.getTeamName())){
            sb.append(" and b.del=0 " );
        }else{
            sb.append(" and b.enable=1 " );
        }
        sb.append(" and a.id=b.sys_ec "
                +" and c.attr1=a.cycle_type "
                 +" and c.attr2=a.cycle_num "
                + " and (c.shift_id = b.shift_id or b.shift_id is null or b.shift_id = 0) "
                +" and a.maintainace_type= ? "
                +" and a.eqp_type=(select eqp_type_id from MD_EQUIPMENT where del=0  and id=? and rownum=1) "
                +" and c.id=? "
            +") t LEFT JOIN EQM_WHEEL_COVEL_PARAM d  on t.planId=d.EWCP_ID and t.num=d.job_no order by t.num");
 
        List<EqmWheelCovelParam> list=new ArrayList<>();
        try {
                List<?> result=eqmWheelCovelPlanDao.queryBySql(sb.toString(),bean.getTeamName(),bean.getDes(),bean.getEwcpId());
                Object[] obj=null;
                EqmWheelCovelParam paramsBean=null;
                for (Object object : result) {
                    obj=(Object[]) object;
                    paramsBean=new EqmWheelCovelParam();
                    paramsBean.setId(StringUtil.convertObjToString(obj[10]));
                    paramsBean.setJobNo(StringUtil.convertObjToString(obj[1]));
                    paramsBean.setMaintMethod(StringUtil.convertObjToString(obj[2]));
                    paramsBean.setJobStandard(StringUtil.convertObjToString(obj[3]));
                    paramsBean.setReviewer(StringUtil.convertObjToString(obj[4]));
                    //paramsBean.setJob_standard(StringUtil.convertObjToString(obj[4]));
                    paramsBean.setCompleteStatus(StringUtil.convertObjToString(obj[6]));
                //    paramsBean.setStatus(StringUtil.convert2Integer(obj[6]));
                    paramsBean.setCheckResult(StringUtil.convertObjToString(obj[8]));
                    paramsBean.setCompleteby(StringUtil.convertObjToString(obj[9]));
                    list.add(paramsBean);
                }
                return new DataGrid(list, 0L);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new DataGrid(list , 0L);
    }
 
}