package com.northglass.service.optpattern;
|
|
import java.io.BufferedReader;
|
import java.io.File;
|
import java.io.FileInputStream;
|
import java.io.FileReader;
|
import java.io.IOException;
|
import java.io.InputStreamReader;
|
import java.text.DecimalFormat;
|
import java.text.NumberFormat;
|
import java.util.ArrayList;
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Locale;
|
|
import org.apache.poi.xssf.usermodel.XSSFSheet;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
import org.springframework.transaction.annotation.Transactional;
|
|
import com.northglass.constants.GlassColor;
|
import com.northglass.constants.ShelfTaskFlag;
|
import com.northglass.constants.ShelfTaskType;
|
import com.northglass.constants.StateConstants.RawPackageTxtState;
|
import com.northglass.constants.StateConstants.ShelfHoistState;
|
import com.northglass.constants.StateConstants.ShelfRankState;
|
import com.northglass.constants.StateConstants.ShelfTaskState;
|
import com.northglass.entity.ManufactureBatch;
|
import com.northglass.entity.OptPattern;
|
import com.northglass.entity.OrderInfo;
|
import com.northglass.entity.RawPackage;
|
import com.northglass.entity.RawPackageTxt;
|
import com.northglass.entity.ShelfHoist;
|
import com.northglass.entity.ShelfRank;
|
import com.northglass.entity.ShelfTask;
|
import com.northglass.entity.SingalGlass;
|
import com.northglass.repository.OptPatternDao;
|
import com.northglass.repository.OrderGlassInfoDao;
|
import com.northglass.repository.RawPackageDao;
|
import com.northglass.repository.RawPackageTxtDao;
|
import com.northglass.repository.ShelfHoistDao;
|
import com.northglass.repository.ShelfRankDao;
|
import com.northglass.repository.ShelfTaskDao;
|
import com.northglass.repository.SingalGlassDao;
|
import com.northglass.util.ExcelUtil;
|
|
@Component
|
@Transactional
|
public class OptPatternService {
|
|
private static final Logger LOGGER = LoggerFactory.getLogger(OptPatternService.class);
|
|
@Autowired
|
private OptPatternDao patternDao;
|
|
@Autowired
|
private OptPatternDao optPatternDao;
|
|
@Autowired
|
private RawPackageTxtDao rawPackageTxtDao;
|
|
@Autowired
|
private RawPackageDao rawPackageDao;
|
|
@Autowired
|
private ShelfRankDao shelfRankDao;
|
|
@Autowired
|
private ShelfHoistDao shelfHoistDao;
|
|
@Autowired
|
private ShelfTaskDao shelfTaskDao;
|
|
@Autowired
|
private SingalGlassDao singalGlassDao;
|
|
@Autowired
|
private OrderGlassInfoDao orderGlassInfoDao;
|
|
private static final int DATA_START_ROW = 1;
|
// private static final int MANUFACTURER_COLUMN = 2;
|
private static final int CONTRCT_ID_COLUMN = 1;
|
private static final int CODE_COLUMN = 2;
|
private static final int PROCESSING_DRAWING_NO_COLUMN = 3;
|
private static final int CUSTOMER_NAME_COLUMN = 4;
|
private static final int WEIGHT_COLUMN = 5;
|
private static final int HEIGHT_COLUMN = 6;
|
private static final int THICKNESS_COLUMN = 7;
|
private static final int NUMBER_COLUMN = 8;
|
private static final int COLOR_MEMBRANE_SYSTEM_NUMBER = 9;
|
private static final int AREA_MEASURE_COLUMN = 10;
|
private static final int FINISHED_PRODUCT_NAME_COLUMN = 11;
|
private static final int ORDER_SEQUENCE_NUMBER_COLUMN = 12;
|
private static final int PROJECT_NAME_COLUMN = 13;
|
private static final int EDGE_GRINDING_COLUMN = 14;
|
private static final int CHANFER_NUMBER = 15;
|
private static final int FINISHING_COLUMN = 16;
|
private static final int REMARK_COLUMN = 17;
|
|
/**
|
* 解析OPT文件
|
*
|
* @param optFilePath
|
* @return
|
*/
|
public String processOptFile(String optFilePath, String s) {
|
try {
|
// 生成批次信息
|
// ManufactureBatch batch =
|
// manufactureBatchDao.findWaitingManufactureBatch();
|
// 解析OPT文件,获取关键数据,并保存到数据库中
|
parseOptFile(optFilePath, s);
|
return "success";
|
} catch (IOException e) {
|
e.printStackTrace();
|
return "failure";
|
}
|
}
|
|
/**
|
* 解析OPT文件,获取Pattern数据,并保存到数据库中
|
*
|
* @param optFilePath
|
* opt文件路径
|
* @throws IOException
|
*/
|
public void parseOptFile(String optFilePath, String baseFileName) throws IOException {
|
SingalGlass glass = null;
|
List<SingalGlass> glasses = new ArrayList<SingalGlass>();
|
// 创建任务
|
RawPackageTxt txt = new RawPackageTxt(baseFileName, "", RawPackageTxtState.WAIT_ASSIGNE, new Date());
|
rawPackageTxtDao.save(txt);
|
|
String fileName = optFilePath.substring(optFilePath.lastIndexOf(File.separator) + 1,
|
optFilePath.lastIndexOf("."));
|
String numberPrefix = fileName + "_";
|
// 这里出现了中文乱码,所以设置了一下,不知道为什么设置为“UTF—8”会乱码,“GBK”才正常
|
// BufferedReader bufReader = new BufferedReader(new
|
// FileReader(optFilePath));
|
InputStreamReader isr = new InputStreamReader(new FileInputStream(optFilePath), "GBK");
|
BufferedReader bufReader = new BufferedReader(isr);
|
|
DecimalFormat dFormat = new DecimalFormat("00");
|
OptPattern pattern = new OptPattern();
|
int index = 1;
|
// 将小片信息放到
|
double thickness = 0;
|
String line = "";
|
// List<Glass> glasses = new ArrayList<Glass>();
|
while (line != null) {
|
line = bufReader.readLine();
|
System.out.println(line);
|
if (line == null) {
|
break;
|
}
|
if (line.trim().length() == 0) {
|
continue;
|
}
|
// line.length() == 13 &&
|
if (line.equalsIgnoreCase("[OPT_Pattern]")) {
|
String optId = numberPrefix + dFormat.format(index);
|
pattern = new OptPattern();
|
pattern.setOptId(optId);
|
// 初始化
|
glass = null;
|
glasses = new ArrayList<SingalGlass>();
|
}
|
|
if (line.length() > 7 && line.startsWith("GlassID")) {
|
String glassId = line.substring(8);
|
pattern.setGlassId(glassId);
|
// 设置玻璃的颜色
|
boolean t = true;
|
String name = "";
|
for (int i = 0; i < glassId.length(); i++) {
|
if (Character.isDigit(glassId.charAt(i)) && t) {
|
|
} else {
|
t = false;
|
name += glassId.charAt(i);
|
}
|
}
|
// color = glassId.replaceAll("\\d+","");
|
pattern.setColor(name);
|
}
|
|
if (line.length() > 16 && line.startsWith("GlassDescription")) {
|
String glassDescription = line.substring(17);
|
pattern.setGlassDescription(glassDescription);
|
}
|
|
if (line.length() > 14 && line.startsWith("GlassThickness")) {
|
thickness = Double.parseDouble(line.substring(15));
|
pattern.setGlassThickness(thickness);
|
}
|
|
if (line.length() > 6 && line.startsWith("Pieces")) {
|
String pieces = line.substring(7);
|
pattern.setPieces(Integer.parseInt(pieces));
|
}
|
|
if (line.length() > 5 && line.startsWith("Width")) {
|
String width = line.substring(6);
|
pattern.setWidth(Double.parseDouble(width));
|
}
|
|
if (line.indexOf("Info=") > 0) {
|
// String infoValue = line.substring(line.indexOf("Info="));
|
String equalValue = line.substring(line.indexOf("Info=") + 5);
|
|
// 注释。带入的id可能出错
|
// if (previousInfoData.equals(infoValue)) {
|
// glass.setPieces(glass.getPieces() + 1);
|
// singalGlassDao.save(glass);
|
// } else {
|
// previousInfoData = infoValue;
|
// glass = new SingalGlass(0, pattern.getGlassThickness(), 1,
|
// equalValue);
|
// glass.setManufacture_batch(txt.getTxt_name());
|
// glass.setOptPattern(pattern);
|
// glass.setColor(pattern.getColor());
|
// singalGlassDao.save(glass);
|
// glasses.add(glass);
|
// }
|
if (glasses.size() > 0) {
|
for (int j = 0; j < glasses.size(); j++) {
|
SingalGlass glass2 = glasses.get(j);
|
if (glass2.getInfoId().equals(equalValue)) {
|
glass2.setPieces(glass2.getPieces() + 1);
|
singalGlassDao.save(glass2);
|
break;
|
}
|
if (j == glasses.size() - 1) {
|
glass = new SingalGlass(0, pattern.getGlassThickness(), 1, equalValue);
|
glass.setManufacture_batch(txt.getTxt_name());
|
glass.setOptPattern(pattern);
|
glass.setRemove("0");// 倒角
|
glass.setPolish("0");// 抛光
|
glass.setColor(pattern.getColor());
|
glass.setRawPackageTxt(txt);
|
singalGlassDao.save(glass);
|
glasses.add(glass);
|
break;
|
}
|
}
|
} else {
|
glass = new SingalGlass(0, pattern.getGlassThickness(), 1, equalValue);
|
glass.setManufacture_batch(txt.getTxt_name());
|
glass.setOptPattern(pattern);
|
glass.setRemove("0");
|
glass.setPolish("0");
|
glass.setColor(pattern.getColor());
|
glass.setRawPackageTxt(txt);
|
singalGlassDao.save(glass);
|
glasses.add(glass);
|
}
|
|
}
|
|
if (line.indexOf("[Info]") != -1) {
|
line = bufReader.readLine();
|
if (line.indexOf("Id=") != -1) {
|
String Id = line.substring(line.indexOf("=") + 1);
|
for (SingalGlass gla : glasses) {
|
if (gla.getInfoId().equals(Id)) {
|
line = bufReader.readLine();
|
while (!line.startsWith("PzNOTE20")) {
|
// 新的opt对接 START
|
if (line.length() > 7 && line.startsWith("PzNOTE")) {
|
String PzNOTE = line.substring(7);// 合同号
|
}
|
if (line.length() > 7 && line.startsWith("PzNOTE1")) {
|
String PzNOTE1 = line.substring(8);// 编号
|
}
|
if (line.length() > 7 && line.startsWith("PzNOTE2")) {
|
String PzNOTE2 = line.substring(8);// 加工图号
|
}
|
if (line.length() > 7 && line.startsWith("PzNOTE3")) {
|
String PzNOTE3 = line.substring(8);// 成品名称
|
gla.setProduction(PzNOTE3);
|
}
|
if (line.length() > 7 && line.startsWith("PzNOTE4")) {
|
String PzNOTE4 = line.substring(8);// 面积
|
}
|
if (line.length() > 7 && line.startsWith("PzNOTE5")) {
|
String PzNOTE5 = line.substring(8);// 项目名称
|
gla.setApplication(PzNOTE5);
|
}
|
if (line.length() > 7 && line.startsWith("PzNOTE6")) {
|
String PzNOTE6 = line.substring(8);// 明细备注
|
}
|
if (line.length() > 7 && line.startsWith("PzNOTE7")) {
|
String PzNOTE7 = line.substring(8);// 流程卡号
|
// gla.setApart_id(PzNOTE7);
|
}
|
if (line.length() > 7 && line.startsWith("PzNOTE8")) {
|
String PzNOTE8 = line.substring(8);// 玻璃编号
|
LOGGER.debug("PzNOTE8:" + PzNOTE8);
|
String string = PzNOTE8.substring(PzNOTE8.lastIndexOf("-") + 1);
|
// String name[] = PzNOTE8.split("-");
|
// String string= name[name.length-1];
|
LOGGER.debug("string:" + string.length());
|
gla.setSort(Integer.parseInt(string.trim()));
|
}
|
if (line.length() > 7 && line.startsWith("PzNOTE9")) {
|
String PzNOTE9 = line.substring(8);// 加工要求
|
gla.setPiece_sign(PzNOTE9);
|
}
|
if (line.length() > 8 && line.startsWith("PzNOTE10")) {
|
String PzNOTE10 = line.substring(9);// 倒角
|
}
|
if (line.length() > 8 && line.startsWith("PzNOTE11")) {
|
String PzNOTE11 = line.substring(9);// 精磨
|
if(!PzNOTE11.trim().equals("")){
|
gla.setPolish(PzNOTE11);
|
}else{
|
gla.setPolish("0");
|
}
|
}
|
if (line.length() > 8 && line.startsWith("PzNOTE12")) {
|
String PzNOTE12 = line.substring(9);// 楼层号
|
gla.setFloor_number(PzNOTE12);
|
}
|
if (line.length() > 8 && line.startsWith("PzNOTE13")) {
|
String PzNOTE13 = line.substring(9);// 条形码
|
gla.setRemark(PzNOTE13);
|
}
|
if (line.length() > 8 && line.startsWith("PzNOTE14")) {
|
String PzNOTE14 = line.substring(9);// 交互日期
|
}
|
if (line.length() > 10 && line.startsWith("SheetWidth")) {
|
String SheetWidth = line.substring(11);// 宽
|
gla.setStartwidth(Double.parseDouble(SheetWidth));
|
}
|
if (line.length() > 11 && line.startsWith("SheetHeight")) {
|
String SheetHeight = line.substring(12);// 高
|
gla.setStartlength(Double.parseDouble(SheetHeight));
|
}
|
if (line.length() > 10 && line.startsWith("RealDimXPz")) {
|
String RealDimXPz = line.substring(11);// 高
|
gla.setWidth(Double.parseDouble(RealDimXPz));
|
}
|
if (line.length() > 10 && line.startsWith("RealDimYPz")) {
|
String RealDimYPz = line.substring(11);// 高
|
gla.setLength(Double.parseDouble(RealDimYPz));
|
}
|
if (line.length() > 6 && line.startsWith("RackNo")) {
|
String RackNo = line.substring(7);// 落架
|
gla.setApart_id(RackNo);
|
}
|
if (line.length() > 8 && line.startsWith("Customer")) {
|
String Customer = line.substring(9);// 落架
|
gla.setCustomer(Customer);
|
}
|
// END
|
line = bufReader.readLine();
|
}
|
|
if (line.length() > 8 && line.startsWith("PzNOTE20")) {
|
gla.setOptPattern(pattern);
|
gla.setManufacture_batch(baseFileName);
|
singalGlassDao.save(gla);
|
}
|
}
|
}
|
}
|
}
|
if (line.length() > 6 && line.startsWith("Height")) {
|
String height = line.substring(7);
|
pattern.setHeight(Double.parseDouble(height));
|
|
// 关联Pattern和批次,初始完成数量为0
|
// RawPackageTxt rawPackageTxt =
|
// rawPackageTxtDao.findByTxtName(baseFileName);
|
pattern.setRawPackageTxt(txt);
|
pattern.setBatch(baseFileName);
|
pattern.setCompletedPieces(0);
|
patternDao.save(pattern);
|
index++;
|
}
|
}
|
|
bufReader.close();
|
|
// 分割文件,将Pattern详细信息存到数据库中
|
splitFile(optFilePath, numberPrefix);
|
|
}
|
|
/**
|
* 分割OPT文件方法,将OPT文件读到字符串中,再以[OPT_Pattern]分割,将分割后内容保存到数据库中
|
*
|
* @param filePath
|
* @throws IOException
|
*/
|
private void splitFile(String filePath, String numberPrefix) throws IOException {
|
File sourceFile = new File(filePath);
|
String splitStr = "\\[OPT_Pattern\\]";
|
|
StringBuffer fileStrBuffer = new StringBuffer();
|
BufferedReader reader = new BufferedReader(new FileReader(sourceFile));
|
int c = reader.read();
|
while (c != -1) {
|
fileStrBuffer.append((char) c);
|
c = reader.read();
|
}
|
|
reader.close();
|
|
String[] patterns = fileStrBuffer.toString().split(splitStr);
|
List<OptPattern> optPatterns = patternDao.findOptPatternByNumberPrefix(numberPrefix);
|
LOGGER.debug("patterns长度:" + patterns.length);
|
// 文件头不用处理
|
for (int i = 0; i < optPatterns.size(); i++) {
|
OptPattern pattern = optPatterns.get(i);
|
pattern.setContent("[OPT_Pattern]" + patterns[i + 1]);
|
patternDao.save(pattern);
|
}
|
}
|
|
/**
|
* 针对每个Pattern创建相应切割机任务
|
*
|
* @param batch
|
*/
|
private void createCutMachineTasks(OptPattern optPattern, ManufactureBatch batch) {
|
LOGGER.debug("> Start createCutMachineTasks");
|
|
LOGGER.debug("> End createCutMachineTasks");
|
}
|
|
public OptPattern getById(Long id) {
|
return patternDao.findOne(id);
|
}
|
|
public OptPattern save(OptPattern pattern) {
|
return patternDao.save(pattern);
|
}
|
|
public void changeState(Long patternId, String toState) {
|
LOGGER.debug("> Start changeState");
|
|
OptPattern pattern = getById(patternId);
|
LOGGER.debug("Change pattern " + pattern.getDescription() + " from [" + pattern.getState() + "] to [" + toState
|
+ "] ");
|
|
pattern.setState(toState);
|
save(pattern);
|
|
LOGGER.debug("> End changeState");
|
}
|
|
// 得到所有的原片信息
|
public List<OptPattern> findAll() {
|
return patternDao.findAll();
|
}
|
|
// 得到当前生产线的所有原片信息
|
public List<OptPattern> getOptPattern(String groups) {
|
List<OptPattern> patternes = optPatternDao.findOptPatternByGroups(groups);
|
return patternes;
|
}
|
|
// 当导入含有常用规格的原片时
|
public String general(String txt_name) {
|
List<OptPattern> nowlist = new ArrayList<OptPattern>();// 存放已经加的原片
|
|
// 得到当前任务的所有optPattern
|
List<OptPattern> OptPatterns = optPatternDao.findOptPatternByBatchNumber(txt_name);
|
|
List<OptPattern> cahcelist = new ArrayList<OptPattern>();
|
int s = 0;
|
cc: for (; s < OptPatterns.size();) {
|
OptPattern optPattern3 = OptPatterns.get(s);
|
double width3 = optPattern3.getWidth();
|
double height3 = optPattern3.getHeight();
|
double thickness3 = optPattern3.getGlassThickness();
|
String color3 = optPattern3.getColor();
|
OptPattern optPattern = new OptPattern(optPattern3.getGlassId(), optPattern3.getGlassDescription(),
|
thickness3, optPattern3.getPieces(), width3, height3, color3, "");
|
if (cahcelist.size() != 0) {
|
if (cahcelist.contains(optPattern3)) {
|
// 含有此对象,以下一个对象作为基准
|
s++;
|
continue cc;
|
}
|
}
|
|
// 拿下一个pattern对象
|
int m = s + 1;
|
dd: for (; m < OptPatterns.size();) {
|
OptPattern optPattern4 = OptPatterns.get(m);
|
double width4 = optPattern4.getWidth();
|
double height4 = optPattern4.getHeight();
|
double thickness4 = optPattern4.getGlassThickness();
|
String color4 = optPattern4.getColor();
|
|
if (width3 == width4 && height3 == height4 && thickness3 == thickness4 && color3.equals(color4)) {
|
optPattern.setPieces(optPattern.getPieces() + optPattern4.getPieces());
|
if (nowlist.contains(optPattern)) {
|
nowlist.remove(optPattern);
|
}
|
nowlist.add(optPattern);
|
cahcelist.add(optPattern4);
|
m++;
|
} else {
|
if (!nowlist.contains(optPattern)) {
|
nowlist.add(optPattern);
|
}
|
m++;
|
continue dd;
|
}
|
}
|
if (!nowlist.contains(optPattern)) {
|
nowlist.add(optPattern);
|
}
|
s++;
|
continue cc;
|
}
|
|
// 将所有的记录添加到gmms_raw_package表中
|
for (int h = 0; h < nowlist.size(); h++) {
|
RawPackage rawPackage = new RawPackage();
|
rawPackage.setGlassId(nowlist.get(h).getGlassId());
|
rawPackage.setWidth(nowlist.get(h).getWidth());
|
rawPackage.setHeight(nowlist.get(h).getHeight());
|
rawPackage.setThickness(nowlist.get(h).getGlassThickness());
|
rawPackage.setPieces(nowlist.get(h).getPieces());
|
rawPackage.setColor(nowlist.get(h).getGlassDescription());
|
if (nowlist.get(h).getGlassDescription().equals(GlassColor.WHITE_GLASS)) {
|
rawPackage.setComment(GlassColor.GENERAL_FLAG);
|
} else {
|
rawPackage.setComment(GlassColor.SPECIAL_FLAG);
|
}
|
rawPackage.setState(ShelfRankState.IN_WORK);
|
rawPackage.setCreateTime(new Date());
|
rawPackage.setManufacturer(txt_name);
|
rawPackageDao.save(rawPackage);
|
}
|
|
// 得到所有空闲中的料架
|
List<ShelfRank> freeRanks = shelfRankDao.findFreeRanks();
|
|
// 创建吊装任务
|
List<RawPackage> rawPackageList = rawPackageDao.findByManufacturer(txt_name);
|
|
ShelfHoist shelfHoist = shelfHoistDao.findAll().get(0);
|
shelfHoist.setState(ShelfHoistState.ON_WAITING);
|
// shelfHoist.setRawPackage(rawPackageList.get(0));
|
shelfHoistDao.save(shelfHoist);
|
|
if (rawPackageList.size() != 0 && freeRanks.size() >= rawPackageList.size()) {
|
for (int i = 0; i < rawPackageList.size(); i++) {
|
ShelfRank shelfRank = freeRanks.get(i);
|
shelfRank.setState(ShelfRankState.ON_WAITING);
|
shelfRank.setRawPackage(rawPackageList.get(i));
|
shelfRank.setColor(rawPackageList.get(i).getColor());
|
shelfRank.setGlassId(rawPackageList.get(i).getGlassId());
|
shelfRank.setLength(rawPackageList.get(i).getHeight());
|
shelfRank.setPieces(rawPackageList.get(i).getPieces());
|
shelfRank.setThickness(rawPackageList.get(i).getThickness());
|
shelfRank.setWidth(rawPackageList.get(i).getWidth());
|
shelfRank.setCreateTime(rawPackageList.get(i).getCreateTime());
|
shelfRankDao.save(shelfRank);
|
|
// 创建三个吊装任务
|
ShelfTask displayInfo = new ShelfTask(ShelfTaskState.WAITING, ShelfTaskType.DISPLAY_INFO, new Date(),
|
ShelfTaskFlag.SHELF_FLAG, shelfHoist, shelfRank);
|
ShelfTask fromEmptyRankToHoist = new ShelfTask(ShelfTaskState.WAITING,
|
ShelfTaskType.FROM_EMPTY_RANK_TO_HOIST, new Date(), ShelfTaskFlag.SHELF_FLAG, shelfHoist,
|
shelfRank);
|
ShelfTask fromHoistToRank = new ShelfTask(ShelfTaskState.WAITING, ShelfTaskType.FROM_HOIST_TO_RANK,
|
new Date(), ShelfTaskFlag.SHELF_FLAG, shelfHoist, shelfRank);
|
|
shelfTaskDao.save(displayInfo);
|
shelfTaskDao.save(fromEmptyRankToHoist);
|
shelfTaskDao.save(fromHoistToRank);
|
}
|
|
// 计算库存百分比
|
int total = shelfRankDao.findAll().size();
|
int complete = shelfRankDao.findAll().size() - shelfRankDao.findFreeRanks().size();
|
|
// String precent=(double)complete / (double)total * 100 +
|
// "%";//得到库存百分比
|
|
NumberFormat numberFormat = NumberFormat.getPercentInstance(Locale.CHINA);
|
numberFormat.setMaximumFractionDigits(2);
|
String precent = numberFormat.format((double) complete / (double) total);// 得到库存百分比
|
|
return precent;
|
}
|
|
return "fail";// 此时料架已满
|
}
|
|
/**
|
* 解析EXCEL文件,获取小片数据,并保存到数据库中
|
*
|
* @param optFilePath
|
* opt文件路径
|
* @throws IOException
|
*/
|
public String uploadExcelSuccess(String absolutePath, String substring) throws IOException{
|
LOGGER.debug("> Start parseGlassExcel");
|
ExcelUtil excel = new ExcelUtil(absolutePath);
|
XSSFSheet sheet = excel.getSheet(0);
|
orderGlassInfoDao.deleteAll();
|
for (int i = DATA_START_ROW; i <= sheet.getLastRowNum(); i++) {
|
String orderNumber = excel.getStringValueAt(sheet, i, 0);//序号
|
String contrct_id = excel.getStringValueAt(sheet, i, CONTRCT_ID_COLUMN);//合同号
|
String code = excel.getStringValueAt(sheet, i, CODE_COLUMN);//编号
|
String processingDrawingNo = excel.getStringValueAt(sheet, i, PROCESSING_DRAWING_NO_COLUMN);//加工图号
|
String customerName = excel.getStringValueAt(sheet, i, CUSTOMER_NAME_COLUMN);//客户名称
|
double weight = Double.parseDouble(excel.getStringValueAt(sheet, i, WEIGHT_COLUMN));//宽度
|
double height = Double.parseDouble(excel.getStringValueAt(sheet, i, HEIGHT_COLUMN));//高度
|
double thickness = Double.parseDouble(excel.getStringValueAt(sheet, i, THICKNESS_COLUMN));// 厚度
|
int number = Integer.parseInt(excel.getStringValueAt(sheet, i, NUMBER_COLUMN));//数量
|
String colorMembraneSystem = excel.getStringValueAt(sheet, i, COLOR_MEMBRANE_SYSTEM_NUMBER);//颜色膜系
|
double areaMeasure = Double.parseDouble(excel.getStringValueAt(sheet, i, AREA_MEASURE_COLUMN));// 面积
|
String finishedProductName = excel.getStringValueAt(sheet, i, FINISHED_PRODUCT_NAME_COLUMN);// 面积
|
String orderSequenceNumber = excel.getStringValueAt(sheet, i, ORDER_SEQUENCE_NUMBER_COLUMN);//订单序号
|
String projectName = excel.getStringValueAt(sheet, i, PROJECT_NAME_COLUMN);//项目名
|
double edgeGrinding = Double.parseDouble(excel.getStringValueAt(sheet, i, EDGE_GRINDING_COLUMN));//磨边量
|
double chamfer = Double.parseDouble(excel.getStringValueAt(sheet, i, CHANFER_NUMBER));//倒角
|
String finishing = excel.getStringValueAt(sheet, i, FINISHING_COLUMN);//精磨
|
String remark = excel.getStringValueAt(sheet, i, REMARK_COLUMN);//明细备注
|
|
// 添加任务
|
OrderInfo glassInfo = new OrderInfo(orderNumber,code,weight,height,number,contrct_id,processingDrawingNo,customerName,thickness,
|
colorMembraneSystem,areaMeasure,finishedProductName,orderSequenceNumber,projectName,edgeGrinding,chamfer,finishing,remark);
|
LOGGER.debug("orderNumber:"+glassInfo.getId());
|
orderGlassInfoDao.save(glassInfo);
|
}
|
LOGGER.debug("> End parseGlassExcel");
|
return "success";
|
|
}
|
|
}
|