package com.shlanbao.tzsc.pms.equ.assessment.service.impl;
|
|
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
|
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.EqmWkshopAssessmentDaoI;
|
import com.shlanbao.tzsc.base.dao.SchFilterCountDaoI;
|
import com.shlanbao.tzsc.base.interceptor.WorkOrderStatChangeInterceptor;
|
import com.shlanbao.tzsc.base.mapping.EqmWkshopAssessment;
|
import com.shlanbao.tzsc.base.mapping.SchFilterCount;
|
import com.shlanbao.tzsc.base.model.DataGrid;
|
import com.shlanbao.tzsc.base.service.BaseService;
|
import com.shlanbao.tzsc.pms.equ.assessment.EqmAssessment;
|
import com.shlanbao.tzsc.pms.equ.assessment.EqmWkshopAssessmentBean;
|
import com.shlanbao.tzsc.pms.equ.assessment.service.WkshopAssessmentServiceI;
|
import com.shlanbao.tzsc.pms.md.FilterCount.SchFilterCountBean;
|
import com.shlanbao.tzsc.pms.md.FilterCount.service.FilterCountServiceI;
|
import com.shlanbao.tzsc.utils.tools.BeanConvertor;
|
import com.shlanbao.tzsc.utils.tools.StringUtil;
|
|
import javax.servlet.http.HttpServletRequest;
|
|
@Service
|
public class WkshopAssessmentServiceImpl extends BaseService implements
|
WkshopAssessmentServiceI {
|
@Autowired
|
private EqmWkshopAssessmentDaoI filterCountDaoI;
|
@Autowired
|
private HttpServletRequest request;
|
|
@Override
|
public DataGrid getAllFilterCount(EqmWkshopAssessmentBean filterCount) throws Exception {
|
String hql = "from EqmWkshopAssessment o where 1=1 ";
|
if (StringUtil.notEmpty(filterCount.getDate())) {
|
hql+="and to_char(o.date,'yyyy-mm')='"+filterCount.getDate()+"'";
|
}
|
if (StringUtil.notEmpty(filterCount.getWorkShop())) {
|
hql+="and o.workShop = '"+filterCount.getWorkShop()+"'";
|
}
|
List<EqmWkshopAssessment> query = filterCountDaoI.query(hql);
|
List<EqmWkshopAssessmentBean> rows = BeanConvertor.copyList(query, EqmWkshopAssessmentBean.class);
|
for(int i=0;i<query.size();i++){
|
FillUserInfoUtil.fillCreateAndUpdateUserInfo(query.get(i),rows.get(i));
|
}
|
return new DataGrid(rows, 0L);
|
}
|
@LogAnno(operateType = "新增车间")
|
@Override
|
public void addFilterCount(EqmWkshopAssessmentBean filterCount) throws Exception {
|
EqmWkshopAssessment o = BeanConvertor.copyProperties(filterCount, EqmWkshopAssessment.class);
|
FillUserInfoUtil.fillCreateUserInfo(o,request);
|
filterCountDaoI.save(o);
|
}
|
@LogAnno(operateType = "编辑车间")
|
@Override
|
public void editFilterCount(EqmWkshopAssessmentBean filterCount) throws Exception {
|
EqmWkshopAssessment o = BeanConvertor.copyProperties(filterCount, EqmWkshopAssessment.class);
|
EqmWkshopAssessment eqmWkshopAssessment = filterCountDaoI.findById(EqmWkshopAssessment.class, filterCount.getId());
|
BeanConvertor.copyProperties(o,eqmWkshopAssessment);
|
FillUserInfoUtil.fillUpdateUserInfo(eqmWkshopAssessment,request);
|
filterCountDaoI.update(eqmWkshopAssessment);
|
}
|
@LogAnno(operateType = "删除车间")
|
@Override
|
public void deleteFilterCount(String id) throws Exception {
|
filterCountDaoI.deleteById(id, EqmWkshopAssessment.class);
|
|
}
|
@Override
|
public EqmWkshopAssessmentBean getFilterCountById(String id) throws Exception {
|
return BeanConvertor.copyProperties(filterCountDaoI.findById(EqmWkshopAssessment.class, id),EqmWkshopAssessmentBean.class);
|
}
|
@LogAnno(operateType = "车间考核数据维护反馈MES")
|
@Override
|
public void orderResult(String ids,String user) {
|
String[] idst=ids.split(",");
|
String lsqlp = "select count(*)"+
|
" from SYS_EQP_CATEGORY a join EQM_LUBRICATION b"+
|
" on a.id = b.sys_ec and b.enable = 1 and a.del = 0 and a.enable = 1 and a.maintainace_type=2"+
|
" join EQM_WHEEL_COVEL_PLAN c on c.attr1=a.cycle_type and c.attr2=a.cycle_num and (c.shift_id = b.shift_id or b.shift_id = 0 or b.shift_id is null)"+
|
" join MD_EQUIPMENT d on c.eqp_id = d.id and a.eqp_type = d.eqp_type_id and d.work_shop = ? "+
|
" where to_char(c.plan_date,'yyyy-mm')=? and c.type =2 and d.id=?";
|
String lsqls = "select count(1) "+
|
" from SYS_EQP_CATEGORY a join EQM_LUBRICATION b"+
|
" on a.id = b.sys_ec and b.enable = 1 and a.del = 0 and a.enable = 1 and a.maintainace_type=2"+
|
" join EQM_WHEEL_COVEL_PLAN c on c.attr1=a.cycle_type and c.attr2=a.cycle_num and (c.shift_id = b.shift_id or b.shift_id = 0 or b.shift_id is null)"+
|
" join MD_EQUIPMENT d on c.eqp_id = d.id and a.eqp_type = d.eqp_type_id and d.work_shop = ?"+
|
" join EQM_WHEEL_COVEL_PARAM e on c.id = e.ewcp_id and b.num = e.job_no and e.sys_ec = b.id and e.complete_status = '已反馈MES'"+
|
" where to_char(c.plan_date,'yyyy-mm')=? and c.type =2 and d.id=?";
|
String isqlp = "select count(1) "+
|
"from SYS_EQP_CATEGORY a join EQM_INSPECTION b "+
|
"on a.id = b.sys_ec and b.enable = 1 and a.del = 0 and a.enable = 1 and a.maintainace_type=5 "+
|
"join EQM_WHEEL_COVEL_PLAN c on c.attr1=a.cycle_type and c.attr2=a.cycle_num and (c.shift_id = b.shift_id or b.shift_id = 0 or b.shift_id is null) "+
|
"join MD_EQUIPMENT d on c.eqp_id = d.id and a.eqp_type = d.eqp_type_id and d.work_shop = ? "+
|
"where to_char(c.plan_date,'yyyy-mm')=? and c.type =5 and d.id=? ";
|
String isqls = "select count(1) "+
|
"from SYS_EQP_CATEGORY a join EQM_INSPECTION b "+
|
"on a.id = b.sys_ec and b.enable = 1 and a.del = 0 and a.enable = 1 and a.maintainace_type=5 "+
|
"join EQM_WHEEL_COVEL_PLAN c on c.attr1=a.cycle_type and c.attr2=a.cycle_num and (c.shift_id = b.shift_id or b.shift_id = 0 or b.shift_id is null) "+
|
" join MD_EQUIPMENT d on c.eqp_id = d.id and a.eqp_type = d.eqp_type_id and d.work_shop = ? "+
|
"join EQM_WHEEL_COVEL_PARAM e on c.id = e.ewcp_id and b.num = e.job_no and e.complete_status = '已反馈MES' and b.id = e.sys_ec "+
|
"where to_char(c.plan_date,'yyyy-mm')=? and c.type =5 and d.id=? ";
|
for(int i=0;i<idst.length;i++){
|
EqmWkshopAssessment bean = filterCountDaoI.findById(EqmWkshopAssessment.class, idst[i]);
|
EqmWkshopAssessmentBean assessmentBean = null;
|
try {
|
assessmentBean = BeanConvertor.copyProperties(bean, EqmWkshopAssessmentBean.class);
|
} catch (Exception e) {
|
// TODO Auto-generated catch block
|
e.printStackTrace();
|
}
|
List<EqmAssessment> ealist = new ArrayList<>();
|
if ("2".equals(bean.getWorkShop())) {
|
|
EqmAssessment eqmAssessment = null;
|
List<?> list = filterCountDaoI.queryBySql("select a.id,a.EQUIPMENT_NAME from MD_EQUIPMENT a where WORK_SHOP = 1", null);
|
|
if (list!=null&&list.size()>0) {
|
for (Object object : list) {
|
eqmAssessment = new EqmAssessment();
|
Object[] o = (Object[]) object;
|
eqmAssessment.setSystem(o[1].toString());
|
List<?> plan = filterCountDaoI.queryBySql(lsqlp, 1,assessmentBean.getDate(),o[0].toString());
|
if (plan!=null&&plan.size() > 0&&Integer.valueOf(plan.get(0).toString())>0) {
|
eqmAssessment.setPlanCheckNum(Integer.valueOf(plan.get(0).toString()));
|
List<?> actual = filterCountDaoI.queryBySql(lsqls, 1,assessmentBean.getDate(),o[0].toString());
|
eqmAssessment.setCheckType("2");
|
if (actual!=null&&actual.size()>0) {
|
eqmAssessment.setActualCheckNum(Integer.valueOf(actual.get(0).toString()));
|
}else{
|
eqmAssessment.setActualCheckNum(0);
|
}
|
eqmAssessment.setClRate(Double.valueOf(eqmAssessment.getActualCheckNum())/eqmAssessment.getPlanCheckNum()*100);
|
eqmAssessment.setClRate(new BigDecimal(eqmAssessment.getClRate()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
ealist.add(eqmAssessment);
|
}
|
}
|
for (Object object : list) {
|
eqmAssessment = new EqmAssessment();
|
Object[] o = (Object[]) object;
|
eqmAssessment.setSystem(o[1].toString());
|
List<?> plan = filterCountDaoI.queryBySql(isqlp, 1,assessmentBean.getDate(),o[0].toString());
|
if (plan!=null&&plan.size() > 0&&Integer.valueOf(plan.get(0).toString())>0) {
|
eqmAssessment.setPlanCheckNum(Integer.valueOf(plan.get(0).toString()));
|
List<?> actual = filterCountDaoI.queryBySql(isqls, 1,assessmentBean.getDate(),o[0].toString());
|
eqmAssessment.setCheckType("5");
|
if (actual!=null&&actual.size()>0) {
|
eqmAssessment.setActualCheckNum(Integer.valueOf(actual.get(0).toString()));
|
}else{
|
eqmAssessment.setActualCheckNum(0);
|
}
|
eqmAssessment.setClRate(Double.valueOf(eqmAssessment.getActualCheckNum())/eqmAssessment.getPlanCheckNum()*100);
|
eqmAssessment.setClRate(new BigDecimal(eqmAssessment.getClRate()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
ealist.add(eqmAssessment);
|
}
|
}
|
}
|
}
|
if ("6".equals(bean.getWorkShop())) {
|
|
EqmAssessment eqmAssessment = null;
|
List<?> list = filterCountDaoI.queryBySql("select a.id,a.EQUIPMENT_NAME from MD_EQUIPMENT a where WORK_SHOP = 2", null);
|
|
if (list!=null&&list.size()>0) {
|
for (Object object : list) {
|
eqmAssessment = new EqmAssessment();
|
Object[] o = (Object[]) object;
|
eqmAssessment.setSystem(o[1].toString());
|
List<?> plan = filterCountDaoI.queryBySql(lsqlp, 2,assessmentBean.getDate(),o[0].toString());
|
if (plan!=null&&plan.size() > 0&&Integer.valueOf(plan.get(0).toString())>0) {
|
eqmAssessment.setPlanCheckNum(Integer.valueOf(plan.get(0).toString()));
|
List<?> actual = filterCountDaoI.queryBySql(lsqls, 2,assessmentBean.getDate(),o[0].toString());
|
eqmAssessment.setCheckType("2");
|
if (actual!=null&&actual.size()>0) {
|
eqmAssessment.setActualCheckNum(Integer.valueOf(actual.get(0).toString()));
|
}else{
|
eqmAssessment.setActualCheckNum(0);
|
}
|
|
eqmAssessment.setClRate(Double.valueOf(eqmAssessment.getActualCheckNum())/eqmAssessment.getPlanCheckNum()*100);
|
eqmAssessment.setClRate(new BigDecimal(eqmAssessment.getClRate()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
ealist.add(eqmAssessment);
|
}
|
}
|
for (Object object : list) {
|
eqmAssessment = new EqmAssessment();
|
Object[] o = (Object[]) object;
|
eqmAssessment.setSystem(o[1].toString());
|
List<?> plan = filterCountDaoI.queryBySql(isqlp, 2,assessmentBean.getDate(),o[0].toString());
|
if (plan!=null&&plan.size() > 0&&Integer.valueOf(plan.get(0).toString())>0) {
|
eqmAssessment.setPlanCheckNum(Integer.valueOf(plan.get(0).toString()));
|
List<?> actual = filterCountDaoI.queryBySql(isqls, 2,assessmentBean.getDate(),o[0].toString());
|
eqmAssessment.setCheckType("5");
|
if (actual!=null&&actual.size()>0) {
|
eqmAssessment.setActualCheckNum(Integer.valueOf(actual.get(0).toString()));
|
}else{
|
eqmAssessment.setActualCheckNum(0);
|
}
|
eqmAssessment.setClRate(Double.valueOf(eqmAssessment.getActualCheckNum())/eqmAssessment.getPlanCheckNum()*100);
|
eqmAssessment.setClRate(new BigDecimal(eqmAssessment.getClRate()).setScale(2, RoundingMode.HALF_UP).doubleValue());
|
ealist.add(eqmAssessment);
|
}
|
}
|
}
|
|
}
|
assessmentBean.setTotalAmount( Double.valueOf(filterCountDaoI.queryBySql("select sum(REPAIRAMOUNT) from EQM_WKSHOP_ASSESSMENT where WORKSHOP = ?", bean.getWorkShop()).get(0).toString()));
|
assessmentBean.setList(ealist);
|
WorkOrderStatChangeInterceptor.getInstance().DASSendWkshopAssessment(assessmentBean);
|
bean.setIsFeedback("1");
|
bean.setFeedbacker(user);
|
bean.setFeedbackTime(new Date());
|
FillUserInfoUtil.fillUpdateUserInfo(bean,request);
|
}
|
}
|
@LogAnno(operateType = "批量删除车间")
|
@Override
|
public void batchDeleteFilterCount(String ids) {
|
String[] split = ids.split(",");
|
try {
|
for (int i = 0; i <split.length; i++) {
|
filterCountDaoI.deleteById(split[i], EqmWkshopAssessment.class);
|
}
|
|
}catch (Exception e){
|
e.printStackTrace();
|
}
|
|
}
|
|
}
|