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);
|
}
|
|
}
|