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 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 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 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 listParam = eqmWheelCovelParamDao.query(hql.toString()); List 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 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 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 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); } }