package com.ese.service; import com.ese.model.dao.BarcodePrintingDAO; import com.ese.model.db.BarcodePrintingModel; import com.ese.model.db.StaffModel; import com.ese.model.view.BarcodePrintingView; import com.ese.model.view.report.BarcodeRegisterModelReport; import com.ese.utils.AttributeName; import com.ese.utils.FacesUtil; import com.ese.utils.Utils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @Component @Transactional public class BarcodePrintingService extends Service{ private static final long serialVersionUID = 4112577394029874840L; @Resource private BarcodePrintingDAO barcodePrintingDAO; @Resource private ReportService reportService; @Value("#{config['report.barcodeprinting']}") private String pathBarcodePrinting; public String getLastSeq(){ String result = ""; BarcodePrintingModel barcodePrintingModel; try { barcodePrintingModel = barcodePrintingDAO.findLastInsert(); result = barcodePrintingModel.getFinishBarcode(); } catch (Exception e) { // System.err.println(e); } return result; } public void save(int qty, String sbc, String fbc){ BarcodePrintingModel barcodePrintingModel = new BarcodePrintingModel(); int staffModel = (int) FacesUtil.getSession(false).getAttribute(AttributeName.STAFF.getName()); try { barcodePrintingModel.setCreateDate(Utils.currentDate()); barcodePrintingModel.setCreateBy(staffModel); barcodePrintingModel.setUpdateBy(staffModel); barcodePrintingModel.setUpdateDate(Utils.currentDate()); barcodePrintingModel.setStartBarcode(sbc); barcodePrintingModel.setFinishBarcode(fbc); barcodePrintingModel.setQty(qty); barcodePrintingDAO.persist(barcodePrintingModel); } catch (Exception e) { System.err.println(e); } } public void insert(){ BarcodePrintingModel barcodePrintingModel = new BarcodePrintingModel(); int staffModel = (int) FacesUtil.getSession(false).getAttribute(AttributeName.STAFF.getName()); try { barcodePrintingModel.setCreateDate(Utils.currentDate()); barcodePrintingModel.setCreateBy(staffModel); barcodePrintingModel.setUpdateBy(staffModel); barcodePrintingModel.setUpdateDate(Utils.currentDate()); barcodePrintingModel.setStartBarcode("TW00000101"); barcodePrintingModel.setFinishBarcode("TW00000109"); barcodePrintingModel.setQty(10); barcodePrintingDAO.persist(barcodePrintingModel); } catch (Exception e) { System.err.println(e); } } public void onPrintBarcode(String startBarcode, int qty){ String printBarcodeName = Utils.genReportName("_BarcodePrinting"); List<BarcodePrintingView> barcodePrintingViewList = new ArrayList<BarcodePrintingView>(); try { for (int i = 0; i < qty; i++) { BarcodePrintingView printingView = new BarcodePrintingView(); int barcode = Utils.parseInt(replaceFormat(startBarcode))+i; final String result = barcode > 99999999 ? "99999999" : String.format("%08d", barcode); StringBuilder barcodeString = new StringBuilder(); barcodeString.append("TW").append(result); printingView.setBarcode(barcodeString.toString()); barcodePrintingViewList.add(printingView); } log.debug("------- {}", barcodePrintingViewList.toString()); HashMap map = new HashMap<String, Object>(); // map.put("barcode", barcodePrintingViewList); // reportService.genBarcode128(printBarcodeName, startBarcode, qty); reportService.exportPDF(pathBarcodePrinting, map, printBarcodeName, barcodePrintingViewList); } catch (Exception e) { log.debug("Exception Report : ", e); } } private String replaceFormat(String startBarcode){ return startBarcode.replace("TW", ""); } }