Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package data.services; import data.dao.CarDao; import data.dao.CarPropertyDao; import data.dao.PropertyNameDao; import data.entity.Car; import data.entity.CarProperty; import data.entity.PropertyName; import data.services.parent.PrimService; import java.io.File; import java.io.FileInputStream; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import org.apache.log4j.Logger; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.context.annotation.ScopedProxyMode; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import support.StringAdapter; /** * * @author bezdatiuzer */ @Service @Transactional @Scope(value = "request", proxyMode = ScopedProxyMode.TARGET_CLASS) public class PropertyNameService extends PrimService { @Autowired private PropertyNameDao propertyNameDao; @Autowired private CarDao carDao; @Autowired private CarPropertyDao carPropertyDao; public void create(PropertyName pn) throws Exception { /*PropertyName suppn = new PropertyName(); suppn.setCar(pn.getCar()); suppn.setCarProperty(pn.getCarProperty()); if (propertyNameDao.find(suppn).isEmpty()) {*/ if (validate(pn)) { propertyNameDao.save(pn); } //} } /*public void update(Long pnId, Object paramName, Object paramValue) throws Exception { if (pnId != null){ Long newPramId = Long.valueOf(StringAdapter.getString(paramId)); BaseParam bp = baseParamDao.find(newPramId); if (bp != null) { switch (StringAdapter.getString(paramName)) { case "uid": bp.setUid(StringAdapter.getString(paramValue)); break; case "name": bp.setName(StringAdapter.getString(paramValue)); break; case "paramType": bp.setParamType(ParamType.getParamTypeFromString(StringAdapter.getString(paramValue))); break; case "staticType": bp.setStaticType(StaticType.getStaticTypeFromString(StringAdapter.getString(paramValue))); break; case "radical": bp.setRadical(StringAdapter.getString(paramValue)); break; case "perception": bp.setPerception(StringAdapter.getString(paramValue)); break; case "audial": bp.setAudial(StringAdapter.getString(paramValue)); break; case "visual": bp.setVisual(StringAdapter.getString(paramValue)); break; case "kinestet": bp.setKinestet(StringAdapter.getString(paramValue)); break; } if (validate(bp)) { baseParamDao.update(bp); } } else { addError(" ."); } } }*/ /*public void delete(Long baseParamId) { BaseParam bp = baseParamDao.find(baseParamId); if (bp != null) { List<PercentParam> percparlist = bp.getPercentParams(); if (!percparlist.isEmpty()) { for (PercentParam pp : percparlist) { percentParamService.delete(pp.getId()); } } baseParamDao.delete(bp); } }*/ public List<PropertyName> getProperties(Long carId) { Car car = carDao.find(carId); return car.getPropertyNames(); //return propertyNameDao.getPropertiesByCar(carId); } public List<Long> getUniqueCarIds() { return propertyNameDao.getUniqueCarIds(); } public List<Car> getCars() { List<Long> carIds = getUniqueCarIds(); List<Car> carList = new ArrayList(); for (Long id : carIds) { Car car = carDao.find(id); carList.add(car); } return carList; } /*public List<String> getUniquePropertyNames(Long propId){ return propertyNameDao.getUniquePropertyNames(propId); } */ public List<PropertyName> getUniquePropertyNames(Long propId) throws Exception { List<PropertyName> res = propertyNameDao.getUniquePropertyNames(propId); Collections.sort(res, UIDComparator); return res; } private static Comparator<PropertyName> UIDComparator = new Comparator<PropertyName>() { @Override public int compare(PropertyName o1, PropertyName o2) { return o1.getCarProperty().getTitle().compareTo(o2.getCarProperty().getTitle()); } }; public void updateByNameAndPropertyId(String name, Long propId, Long percentValue, Double paramValue, Long a, Long v, Long k, String rad) throws Exception { //throw new Exception(name+"-"+propId+"-"+percentValue+"-"+a+"-"+rad); PropertyName pn = new PropertyName(); pn.setPropertyNameValue(name); pn.setCarProperty(carPropertyDao.find(propId)); for (PropertyName upn : propertyNameDao.find(pn)) { upn.setAudial(a); upn.setVisual(v); upn.setKinestet(k); upn.setPercentValue(percentValue); upn.setParamValue(paramValue); upn.setRadical(rad); propertyNameDao.update(upn); } } public HSSFWorkbook getXls(Long propId) { Logger log = Logger.getLogger(this.getClass()); try { HSSFWorkbook workbook = new HSSFWorkbook(); HSSFSheet sheet = workbook.createSheet("FirstSheet"); HSSFRow rowhead = sheet.createRow((short) 0); rowhead.createCell(0).setCellValue("ID"); rowhead.createCell(1).setCellValue("UID"); rowhead.createCell(2).setCellValue("??"); rowhead.createCell(3).setCellValue("???"); rowhead.createCell(4).setCellValue(""); rowhead.createCell(5).setCellValue(""); rowhead.createCell(6).setCellValue(""); rowhead.createCell(7).setCellValue("?"); rowhead.createCell(8).setCellValue(""); rowhead.createCell(9).setCellValue("?"); List<PropertyName> plist = getUniquePropertyNames(propId); int n = 1; if (!plist.isEmpty()) { for (PropertyName ob : plist) { HSSFRow rowbody = sheet.createRow((short) n); rowbody.createCell(0).setCellValue(StringAdapter.getString(ob.getCarProperty().getId())); rowbody.createCell(1).setCellValue(StringAdapter.getString(ob.getCarProperty().getUid())); rowbody.createCell(2).setCellValue(StringAdapter.getString(ob.getCarProperty().getTitle())); rowbody.createCell(3).setCellValue(StringAdapter.getString(ob.getPropertyNameValue())); rowbody.createCell(4).setCellValue(StringAdapter.getString(ob.getRadical())); rowbody.createCell(5).setCellValue(StringAdapter.getString(ob.getPercentValue())); rowbody.createCell(6) .setCellValue(StringAdapter.getString(ob.getParamValue()).replace(".", ",")); rowbody.createCell(7).setCellValue(StringAdapter.getString(ob.getAudial())); rowbody.createCell(8).setCellValue(StringAdapter.getString(ob.getVisual())); rowbody.createCell(9).setCellValue(StringAdapter.getString(ob.getKinestet())); n++; } ; } return workbook; } catch (Exception e) { log.warn("HSSFWorkbook.getXls()", e); } return null; } public void updateFromXml(File fl) throws Exception { try { FileInputStream fi = new FileInputStream(fl); int i = 0; int m = 0; try { HSSFWorkbook workbook = new HSSFWorkbook(fi); HSSFSheet sheet = workbook.getSheetAt(0); Iterator<Row> it = sheet.iterator(); it.next(); while (it.hasNext()) { Row row = it.next(); Long cpid = StringAdapter.toLong(StringAdapter.HSSFSellValue(row.getCell(0))); Cell pnValc = row.getCell(3); String pnVal = ""; if (pnValc != null) { pnVal = StringAdapter.HSSFSellValue(pnValc).trim(); } Cell radc = row.getCell(4); String rad = ""; if (radc != null) { rad = StringAdapter.HSSFSellValue(radc); if (rad.contains(".")) { int point = rad.indexOf("."); rad = rad.substring(0, point); } if (rad.trim().equals("0")) { rad = ""; } else { rad = rad.replace(" ", ""); } } Cell percc = row.getCell(5); Long perc = (long) 0; if (percc != null) { String percstr = StringAdapter.HSSFSellValue(percc); if (percstr.contains(".")) { int point = percstr.indexOf("."); percstr = percstr.substring(0, point); } if (!percstr.equals("")) { perc = StringAdapter.toLong(percstr); } } Cell valc = row.getCell(6); Double val = (double) 0; if (valc != null) { String valstr = StringAdapter.HSSFSellValue(valc).replace(",", ".").trim(); val = StringAdapter.toDouble(valstr); } Cell audc = row.getCell(7); Long a = (long) 0; if (audc != null) { String supstr = StringAdapter.HSSFSellValue(audc); if (supstr.contains(".")) { int point = supstr.indexOf("."); supstr = supstr.substring(0, point); } a = Long.valueOf(supstr); } Cell visc = row.getCell(8); Long v = (long) 0; if (visc != null) { String supstr = StringAdapter.HSSFSellValue(visc); if (supstr.contains(".")) { int point = supstr.indexOf("."); supstr = supstr.substring(0, point); } v = Long.valueOf(supstr); } Cell kinc = row.getCell(9); Long k = (long) 0; if (kinc != null) { String supstr = StringAdapter.HSSFSellValue(kinc); if (supstr.contains(".")) { int point = supstr.indexOf("."); supstr = supstr.substring(0, point); } k = Long.valueOf(supstr); } /*Cell aCell = row.getCell(7); Long a=(long)0; if(aCell!=null){ if(aCell.getCellType()==Cell.CELL_TYPE_NUMERIC){ a=StringAdapter.toLong(StringAdapter.getString(aCell.getNumericCellValue())); }else if(aCell.getCellType()==Cell.CELL_TYPE_STRING){ a=StringAdapter.toLong(aCell.getStringCellValue().trim()); } } Cell vCell = row.getCell(8); Long v=(long)0; if(vCell!=null){ if(vCell.getCellType()==Cell.CELL_TYPE_NUMERIC){ v=StringAdapter.toLong(StringAdapter.getString(vCell.getNumericCellValue())); }else if(vCell.getCellType()==Cell.CELL_TYPE_STRING){ v=StringAdapter.toLong(vCell.getStringCellValue().trim()); } } Cell kCell = row.getCell(9); Long k=(long)0; if(kCell!=null){ if(kCell.getCellType()==Cell.CELL_TYPE_NUMERIC){ k=StringAdapter.toLong(StringAdapter.getString(kCell.getNumericCellValue())); }else if(kCell.getCellType()==Cell.CELL_TYPE_STRING){ k=StringAdapter.toLong(kCell.getStringCellValue().trim()); } }*/ CarProperty cp = carPropertyDao.find(cpid); PropertyName suppn = new PropertyName(); suppn.setPropertyNameValue(pnVal); suppn.setCarProperty(cp); List<PropertyName> pnlist = propertyNameDao.findByPropertyAndPnValue(suppn); if (!pnlist.isEmpty()) { for (PropertyName pn : pnlist) { if (!(pn.getPercentValue().equals(perc) && pn.getParamValue().equals(val) && pn.getRadical().equals(rad) && pn.getAudial().equals(a) && pn.getVisual().equals(v) && pn.getKinestet().equals(k))) { pn.setPercentValue(perc); pn.setParamValue(val); pn.setRadical(rad); pn.setVisual(v); pn.setAudial(a); pn.setKinestet(k); if (validate(pn)) { propertyNameDao.update(pn); } i++; } m++; } } //} } workbook.close(); addError(" " + i + " ?; ? ?: " + m + "; "); } catch (Exception e) { //addError(StringAdapter.getStackTraceException(e) + "str:"+i+"; "); throw new Exception(StringAdapter.getStackTraceException(e) + "str:" + i + "; "); } fi.close(); } catch (Exception e) { //addError(" xml"); //addError(e.getMessage()); throw new Exception(StringAdapter.getStackTraceException(e)); } } }