package com.shlanbao.tzsc.pms.md.eqp.service.impl; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Date; import java.util.List; import com.shlanbao.tzsc.base.model.*; import com.shlanbao.tzsc.utils.tools.*; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.shlanbao.tzsc.base.dao.AppendEqmipmentsDaoI; import com.shlanbao.tzsc.base.dao.EqmipmentsDaoI; import com.shlanbao.tzsc.base.dao.MdEqpTypeDaoI; import com.shlanbao.tzsc.base.mapping.MdAppendEquipment; import com.shlanbao.tzsc.base.mapping.MdEqpType; import com.shlanbao.tzsc.base.mapping.MdEquipment; import com.shlanbao.tzsc.base.service.BaseService; import com.shlanbao.tzsc.pms.md.eqp.beans.EquipmentsBean; import com.shlanbao.tzsc.pms.md.eqp.service.EquipmentsServiceI; import com.shlanbao.tzsc.pms.md.matparam.beans.MatParamBean; import com.shlanbao.tzsc.utils.excel.ExportExcel; import javax.servlet.http.HttpServletRequest; /** * 设备主数据实现类 * @author liuligong * @Time 2014/11/5 10:46 */ @Service public class EquipmentsServiceImpl extends BaseService implements EquipmentsServiceI{ @Autowired private EqmipmentsDaoI equipmentsDao; @Autowired private AppendEqmipmentsDaoI appendEqmipmentsDao; @Autowired private MdEqpTypeDaoI mdEqpTypeDaoI; @Autowired private HttpServletRequest request; @LogAnno(operateType = "设备主数据新增或修改") @Override public void addEqu(MdEquipment equBean) throws Exception { //MdEquipment equ = BeanConvertor.copyProperties(equBean, MdEquipment.class); MdEquipment equipment = null; SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); String createUserName = sessionInfo.getUser().getName(); String updateUserName = createUserName; if(StringUtil.notNull(equBean.getId())){ equipment = equipmentsDao.findById(MdEquipment.class, equBean.getId()); equipment.setUpdateUser(updateUserName); equipment.setUpdateTime(new Date()); } else { equipment = new MdEquipment(); equipment.setDel("0"); equipment.setCreateTime(new Date()); equipment.setCreateUserName(createUserName); equipment.setUpdateUser(updateUserName); equipment.setUpdateTime(new Date()); } if(StringUtil.notNull(equBean.getEnabled())){ equipment.setEnabled(equBean.getEnabled().trim()); } if(StringUtil.notNull(equBean.getEquipmentCode())){ equipment.setEquipmentCode(equBean.getEquipmentCode().trim()); } if(StringUtil.notNull(equBean.getEquipmentName())){ equipment.setEquipmentName(equBean.getEquipmentName().trim()); } if(StringUtil.notNull(equBean.getEquipmentDesc())){ equipment.setEquipmentDesc(equBean.getEquipmentDesc().trim()); } if(StringUtil.notNull(equBean.getWorkCenter())){ equipment.setWorkCenter(equBean.getWorkCenter().trim()); } if(StringUtil.notNull(equBean.getEquipmentPosition())){ equipment.setEquipmentPosition(equBean.getEquipmentPosition().trim()); } if(StringUtil.notNull(equBean.getFixedAssetNum())){ equipment.setFixedAssetNum(equBean.getFixedAssetNum().trim()); } if(StringUtil.notNull(equBean.getFixedAssetFlag())){ equipment.setFixedAssetFlag(equBean.getFixedAssetFlag().trim()); } if(StringUtil.notNull(equBean.getManufacturingNum())){ equipment.setManufacturingNum(equBean.getManufacturingNum().trim()); } if(StringUtil.notNull(equBean.getApprovalNum())){ equipment.setApprovalNum(equBean.getApprovalNum().trim()); } if(StringUtil.notNull(equBean.getNavicertNum())){ equipment.setNavicertNum(equBean.getNavicertNum().trim()); } if(StringUtil.notNull(equBean.getUsingDepartment())){ equipment.setUsingDepartment(equBean.getUsingDepartment().trim()); } if(equBean.getMdEqpType()!=null){ equipment.setMdEqpType(equBean.getMdEqpType()); } if(equBean.getMdWorkshop()!=null){ equipment.setMdWorkshop(equBean.getMdWorkshop()); } if(equBean.getRatedSpeed()!=null){ equipment.setRatedSpeed(equBean.getRatedSpeed()); } if(StringUtil.notNull(equBean.getRateSpeedUnit())){ equipment.setRateSpeedUnit(equBean.getRateSpeedUnit()); } if(equBean.getVouchProduction()!=null){ equipment.setVouchProduction(equBean.getVouchProduction()); } if(equBean.getYieId()!=null){ equipment.setYieId(equBean.getYieId()); } if(StringUtil.notNull(equBean.getYieldUnit())){ equipment.setYieldUnit(equBean.getYieldUnit()); } equipmentsDao.saveOrUpdate(equipment); } @Override public DataGrid queryEqu(EquipmentsBean equBean, PageParams pageParams) throws Exception { //hql 语句拼装 String hql = "from MdEquipment o where 1=1 and o.del=0 "; StringBuffer params = new StringBuffer(); if(StringUtil.notNull(equBean.getEquipmentCode())){ params.append(" and o.equipmentCode like '%"+ equBean.getEquipmentCode() +"%'"); } if(StringUtil.notNull(equBean.getEquipmentName())){ params.append(" and o.equipmentName like '%"+ equBean.getEquipmentName() +"%'"); } //加入两个条件 if(StringUtil.notNull(equBean.getWorkShopId())){ params.append(" and o.mdWorkshop.id='"+ equBean.getWorkShopId() +"'"); } if(StringUtil.notNull(equBean.getWorkShopName())){//1卷包车间2成型车间也是对象id params.append(" and o.mdWorkshop.id='"+equBean.getWorkShopName()+"'"); } if(StringUtil.notNull(equBean.getEqpTypeName())){//传进来Id根据对象比较 型号 params.append(" and o.mdEqpType.id='"+equBean.getEqpTypeName()+"'"); } if(StringUtil.notNull(equBean.getEqpCategory())){//传进来Id根据对象比较 类别 params.append(" and o.mdEqpType.mdEqpCategory.id='"+equBean.getEqpCategory()+"'"); } params.append(" order by o.equipmentCode "); String param = params.toString(); List rows = equipmentsDao.queryByPage(hql.concat(param), pageParams); List equBeans = new ArrayList(); for(MdEquipment me : rows){ String typeId = me.getMdEqpType().getId(); String typeName = me.getMdEqpType().getName(); EquipmentsBean eb = new EquipmentsBean(); BeanConvertor.copyProperties(me, eb); if(me.getEnabled()!=null&&me.getEnabled().equals("0")){ eb.setEnabled("禁用"); }else { eb.setEnabled("启用"); } if(me.getFixedAssetFlag()!=null&&me.getFixedAssetFlag().equals("0")){ eb.setFixedAssetFlag("已入固"); }else { eb.setFixedAssetFlag("未入固"); } eb.setEqpTypeId(typeId); eb.setEqpTypeName(typeName); if(me.getMdWorkshop() != null){ eb.setWorkShopId(me.getMdWorkshop().getId()); eb.setWorkShopName(me.getMdWorkshop().getName()); } eb.setCreateUserId(me.getCreateUserId()); eb.setCreateUserName(me.getCreateUserName()); eb.setCreateTime(DateUtil.datetoStr(me.getCreateTime(),"yyyy-MM-dd HH:mm:ss")); eb.setUpdateUser(me.getUpdateUser()); eb.setUpdateTime(DateUtil.datetoStr(me.getUpdateTime(),"yyyy-MM-dd HH:mm:ss")); equBeans.add(eb); } hql = "select count(*) from MdEquipment o where 1=1 and o.del=0 "; long total = equipmentsDao.queryTotal(hql.concat(param)); return new DataGrid(equBeans,total); } @Override public EquipmentsBean getEquById(String id) throws Exception { MdEquipment equipments = equipmentsDao.findById(MdEquipment.class, id); EquipmentsBean equBean = BeanConvertor.copyProperties(equipments, EquipmentsBean.class); String typeId = equipments.getMdEqpType().getId(); String typeName = equipments.getMdEqpType().getName(); equBean.setEqpTypeId(typeId); equBean.setEqpTypeName(typeName); if(equipments.getMdWorkshop() != null){ equBean.setWorkShopId(equipments.getMdWorkshop().getId()); equBean.setWorkShopName(equipments.getMdWorkshop().getName()); } if("0".equals(equBean.getFixedAssetFlag())) equBean.setFixedAssetFlag("已固入"); if("1".equals(equBean.getFixedAssetFlag())) equBean.setFixedAssetFlag("未固入"); return equBean; } @LogAnno(operateType = "删除设备主数据信息") @Override public void deleteEqu(String id) throws Exception { equipmentsDao.findById(MdEquipment.class, id).setDel("1"); } @Override public List getAllEqpType(String id) throws Exception { List mdEqpType = mdEqpTypeDaoI.query("from MdEqpType o where 1=1 and id<>? and o.del=0 and o.enable=1 order by o.id desc ", id); return BeanConvertor.copyList(mdEqpType,Combobox.class); } @Override public List queryAllEquipments() throws Exception { List equs = equipmentsDao.query("from MdEquipment o where o.del=0 and o.enabled=0 order by o.id desc"); return BeanConvertor.copyList(equs,EquipmentsBean.class); } @Override public List queryAllEqpsForComboBox() throws Exception { String hql = "from MdEquipment o where o.del=0 and o.enabled=1 order by cast(o.equipmentCode as int) "; List equipmentsBeans = new ArrayList(); List list=equipmentsDao.query(hql); for (MdEquipment equipment :list ) { EquipmentsBean e = new EquipmentsBean(); e.setId(equipment.getId()); BeanConvertor.copyProperties(equipment,e); e.setName(equipment.getEquipmentName()); e.setEqpTypeId(equipment.getMdEqpType().getName()); e.setEqpCategory(equipment.getMdEqpType().getMdEqpCategory().getCode()); equipmentsBeans.add(e); } return equipmentsBeans; } @Override public List queryAllPackersForComboBox(int eType) { try { if(eType==0){ eType=2; } String hql = "from MdEquipment o where o.del=0 and o.mdEqpType.mdEqpCategory.code='"+eType+"' order by cast(o.equipmentCode as java.lang.Integer) asc "; List list = equipmentsDao.query(hql); List equipmentsBeans = new ArrayList(); for (MdEquipment equipment :list) { EquipmentsBean e = new EquipmentsBean(); CopyUtils.copyProperties(equipment,e); e.setId(equipment.getId()); e.setName(equipment.getEquipmentName()); e.setEquipmentCode(equipment.getEquipmentCode()); e.setEqpTypeId(equipment.getMdEqpType().getCode()); equipmentsBeans.add(e); } return equipmentsBeans; } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } /** * 功能说明:初始化辅料 * * @author wanchanghuang * @time 2015年8月10日17:08:59 * * */ @Override public List getAllMdMatParamData() { String sql = "select mat,val from Md_Mat_Param "; List list = new ArrayList(); List ts=equipmentsDao.queryBySql(sql); for(Object o:ts){ Object[] temp=(Object[]) o; MatParamBean b = new MatParamBean(); try { b.setMat(temp[0].toString()); b.setVal(Double.parseDouble(temp[1].toString())); } catch (Exception e) { // TODO: handle exception } list.add(b); } return list; } /** * Excel导出 * 2015.9.9--张璐 */ @LogAnno(operateType = "Excel导出") @Override public HSSFWorkbook ExportExcelJBPP2(EquipmentsBean baoCJBean) throws Exception { Json json=new Json(); HSSFWorkbook wb =null; ExportExcel ee = new ExportExcel(); FileOutputStream fos; try { //th 当前开始行,当前结束行,一共多少列 int[] thTables={1,2,18}; List th=new ArrayList(); //第1行;第1列开始 ~ 第18列结束 一共 跨到第1行 th.add("1,1,18,1,设备主数据管理"); th.add("2,1,1,1,设备编号"); th.add("2,2,2,1,设备名称"); th.add("2,3,3,1,设备描述"); th.add("2,4,4,1,机型"); th.add("2,5,5,1,车间"); th.add("2,6,6,1,工序段"); th.add("2,7,7,1,设备位置"); th.add("2,8,8,1,额定车速"); th.add("2,9,9,1,额定车速单位"); th.add("2,10,10,1,台时产量"); th.add("2,11,11,1,台时产量单位"); th.add("2,12,12,1,是否启用"); th.add("2,13,13,1,固定资产编号"); th.add("2,14,14,1,出厂编号"); th.add("2,15,15,1,批准文号"); th.add("2,16,16,1,准运证编号"); th.add("2,17,17,1,已入固"); th.add("2,18,18,1,使用部门"); PageParams pageParams = new PageParams(); //获取List集合 DataGrid dg=this.queryEqu(baoCJBean,pageParams); //方法集合,同表头一致 String[] method=new String[]{"getEquipmentCode","getEquipmentName","getEquipmentDesc","getEqpTypeName","getWorkShopName","getWorkCenter","getEquipmentPosition","getRatedSpeed","getRateSpeedUnit","getYieId","getYieldUnit","getEnabled","getFixedAssetNum","getManufacturingNum","getApprovalNum","getNavicertNum","getFixedAssetFlag","getUsingDepartment"}; //开始行 int startLine=2; //WorkShopShiftBean.class List集合中对应的实体类 wb = ee.exportExcel(thTables, th, startLine, method,EquipmentsBean.class,dg.getRows()); } catch (Exception e) { e.printStackTrace(); } return wb; } @LogAnno(operateType = "批量导入设备主数据excel") @Override public void inputExeclAndReadWrite(List list) { for (int i = 0; i < list.size(); i++) { MdEquipment equBean=list.get(i); String sql="SELECT EQUIPMENT_CODE from MD_EQUIPMENT where del=0 and EQUIPMENT_CODE='"+equBean.getEquipmentCode()+"'"; List l=equipmentsDao.queryBySql(sql); if (l!=null&&l.size()>0) { continue; }else{ equBean.setDel("0"); equBean.setCreateTime(new java.util.Date()); SessionInfo sessionInfo = (SessionInfo) request.getSession().getAttribute("sessionInfo"); String createUserName = sessionInfo.getUser().getName(); String updateUserName = createUserName; equBean.setCreateUserName(createUserName); equBean.setUpdateUser(updateUserName); equBean.setUpdateTime(new Date()); equipmentsDao.saveOrUpdate(equBean); } } } @Override public MdEquipment getEqpByEqpCode(String eqpCode) { StringBuffer sql=new StringBuffer("select id from MD_EQUIPMENT where 1=1 "); if(StringUtil.notNull(eqpCode)){ sql.append(" and equipment_code='"+eqpCode+"'"); } List ls=equipmentsDao.queryBySql(sql.toString()); if(ls!=null && ls.size()>0){ return new MdEquipment((String) ls.get(0)); } return null; } @LogAnno(operateType = "批量删除设备主数据信息") @Override public void batchDeleteEqu(String ids) { String[] split = ids.split(","); try { for (int i = 0; i ls=equipmentsDao.queryBySql(sql.toString()); if(ls!=null && ls.size()>0){ return new MdEquipment((String) ls.get(0)); } return null; } @Override public void batchAddEqp(List eqps) { equipmentsDao.batchInsert(eqps, MdEquipment.class); } @Override public void saveOrUpdateEqp(MdEquipment eqps) { equipmentsDao.saveOrUpdate(eqps); } @Override public void saveOrUpdateAppendEqp(MdAppendEquipment eqps) { appendEqmipmentsDao.saveOrUpdate(eqps); } @Override public MdAppendEquipment getAppdependEqpByMESCodeOrWorkCenter(String mesCode) { StringBuffer sql=new StringBuffer("select id from MD_APPEND_EQUIPMENT where 1=1 "); if(StringUtil.notNull(mesCode)){ sql.append(" and MES_EQPCODE='"+mesCode+"'"); } List ls=equipmentsDao.queryBySql(sql.toString()); if(ls!=null && ls.size()>0){ return new MdAppendEquipment((String) ls.get(0)); } return null; } }