Browse Source

【钜弘MES】条码拆分逻辑调整以及网页端条码打印方法调整

caosy 5 years ago
parent
commit
36456add2d

+ 47 - 4
WebContent/resource/zebraBrowserPrint/zebraPrint.js

@@ -49,14 +49,17 @@ function sendData(caller,printer,dpi,params) {
 				SetCookie("resolution", dpi);
 				SetCookie("resolution", dpi);
 			}
 			}
 			Ext.Ajax.request({
 			Ext.Ajax.request({
-	    		url : basePath +'api/pda/print/zplPrint.action',
+				url : basePath +'api/pda/print/vendorOrderPrint.action',
 				params: {
 				params: {
 					caller:caller,
 					caller:caller,
 					dpi:dpi,
 					dpi:dpi,
-					data: unescape(escape(Ext.JSON.encode(params)))
+					data: unescape(escape(Ext.JSON.encode(params))),
+					type:'barcode',
+					printer:printer,
+					fmid : 0
 				},
 				},
 				method : 'post',
 				method : 'post',
-				timeout: 3600,
+				timeout: 60000,
 				callback : function(options,success,response){
 				callback : function(options,success,response){
 					var res = new Ext.decode(response.responseText);
 					var res = new Ext.decode(response.responseText);
 					if(res.success){
 					if(res.success){
@@ -66,7 +69,7 @@ function sendData(caller,printer,dpi,params) {
 						showError(str);return;
 						showError(str);return;
 					}
 					}
 				}
 				}
-    	    });
+			});
 		} else {
 		} else {
 			printerError(text);
 			printerError(text);
 		}
 		}
@@ -115,6 +118,46 @@ function checkPrinterStatus(finishedFunction) {
 	}, printerError);
 	}, printerError);
 };
 };
 
 
+
+function sendDataOrder(caller,printer,dpi,params,fmid) {
+	for (var i = 0; i < available_printers.length; i++) {
+		if(available_printers[i].uid = printer){
+			selected_printer = available_printers[i];
+		}
+	}
+	checkPrinterStatus(function(text) {
+		if (text == "Ready to Print") {
+			if (dpi != resolutionCookie) {
+				SetCookie("resolution", dpi);
+			}
+			Ext.Ajax.request({
+				url : basePath +'api/pda/print/vendorOrderPrint.action',
+				params: {
+					caller:caller,
+					dpi:dpi,
+					data: unescape(escape(Ext.JSON.encode(params))),
+					type:'barcode',
+					printer:printer,
+					fmid : fmid
+				},
+				method : 'post',
+				timeout: 60000,
+				callback : function(options,success,response){
+					var res = new Ext.decode(response.responseText);
+					if(res.success){
+						selected_printer.send(res.data);
+					}else if(res.exceptionInfo){
+						var str = res.exceptionInfo;
+						showError(str);return;
+					}
+				}
+			});
+		} else {
+			printerError(text);
+		}
+	});
+};
+
 function onPrinterSelected() {
 function onPrinterSelected() {
 	selected_printer = available_printers[0];
 	selected_printer = available_printers[0];
 };
 };

+ 10 - 0
src/com/uas/mes/api/pda/PdaPrintController.java

@@ -95,5 +95,15 @@ public class PdaPrintController extends BaseApiController{
 		public  ModelMap zplPrint(String caller,String dpi,String data){
 		public  ModelMap zplPrint(String caller,String dpi,String data){
 			return success(pdaPrintService.zplPrint(caller,dpi,data));
 			return success(pdaPrintService.zplPrint(caller,dpi,data));
 		}
 		}
+
+	/**
+	 *ERP指令打印
+	 * @param
+	 * @return
+	 */
+	@RequestMapping(value="/vendorOrderPrint.action",method = RequestMethod.POST)
+	public  ModelMap vendorOrderPrint(String caller,String data,String type,String printer,Integer fmid){
+		return success(pdaPrintService.vendorOrderPrint(caller,data,type,printer,fmid));
+	}
 		
 		
 }
 }

+ 2 - 0
src/com/uas/mes/pda/service/PdaPrintService.java

@@ -12,4 +12,6 @@ public interface PdaPrintService {
 
 
 	String zplPrint(String caller, String dpi, String data);
 	String zplPrint(String caller, String dpi, String data);
 
 
+	Map<String, Object> vendorOrderPrint(String caller, String data,String type,String printer,Integer fmid);
+
 }
 }

+ 83 - 10
src/com/uas/mes/pda/service/impl/PdaPrintServiceImpl.java

@@ -1,23 +1,21 @@
 package com.uas.mes.pda.service.impl;
 package com.uas.mes.pda.service.impl;
 
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
 import com.uas.mes.common.data.BaseDao;
 import com.uas.mes.common.data.BaseDao;
 import com.uas.mes.common.util.BaseUtil;
 import com.uas.mes.common.util.BaseUtil;
 import com.uas.mes.core.data.SqlRowList;
 import com.uas.mes.core.data.SqlRowList;
 import com.uas.mes.core.exception.APIErrorException;
 import com.uas.mes.core.exception.APIErrorException;
-import com.uas.mes.core.exception.SystemException;
 import com.uas.mes.core.exception.APIErrorException.APIErrorCode;
 import com.uas.mes.core.exception.APIErrorException.APIErrorCode;
 import com.uas.mes.core.util.FlexJsonUtil;
 import com.uas.mes.core.util.FlexJsonUtil;
 import com.uas.mes.core.util.StringUtil;
 import com.uas.mes.core.util.StringUtil;
 import com.uas.mes.pda.dao.PdaPrintDao;
 import com.uas.mes.pda.dao.PdaPrintDao;
 import com.uas.mes.pda.service.PdaPrintService;
 import com.uas.mes.pda.service.PdaPrintService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 @Service("pdaPrintService")
 @Service("pdaPrintService")
 public class PdaPrintServiceImpl implements PdaPrintService {
 public class PdaPrintServiceImpl implements PdaPrintService {
@@ -143,5 +141,80 @@ public class PdaPrintServiceImpl implements PdaPrintService {
 		} else {
 		} else {
 			throw new APIErrorException(APIErrorCode.BUSINESS_FAILED,"未配置相应的打印模板");
 			throw new APIErrorException(APIErrorCode.BUSINESS_FAILED,"未配置相应的打印模板");
 		}
 		}
-	}	
+	}
+
+
+	@Override
+	public Map<String, Object> vendorOrderPrint(String caller, String data,String type,String printer,Integer fmid) {
+		SqlRowList rs1, rs2;
+		Map<Object,Object> map = BaseUtil.parseFormStoreToMap(data);
+		Object condition = map.get("condition");
+		int page = 0;
+		int pageSize = 0;
+		if(!StringUtil.hasText(map.get("condition"))){
+			BaseUtil.showError("请传递打印条件!");
+		}
+		if(map.get("page") != null && !("").equals(map.get("page"))){
+			page  = Integer.valueOf(map.get("page").toString());
+		}
+		if(map.get("pageSize") != null && !("").equals(map.get("pageSize"))){
+			pageSize =  Integer.valueOf(map.get("pageSize").toString());
+		}
+		int start = ((page - 1) * pageSize + 1);
+		int end = page * pageSize;
+		caller = "Barcode!Print";
+		SqlRowList rs0 = baseDao.queryForRowSet("select la_id,la_sql,la_width,la_height,la_type,la_name from label where la_formcaller=? ",caller);
+		if (rs0.next()) {
+			String va ="";
+			String regex = "\\{(?:[A-Za-z][A-Za-z0-9_]*)\\}";
+			va = rs0.getString("la_sql").replaceAll(regex,"where "+condition);
+			String logCaller = caller;
+//			if("NewBar!BaPrint".equals(caller)){
+//				caller = "Barcode!Print";
+//			}
+//			if ("BarcodeInPrint".equals(caller) ) {
+//				baseDao.execute("update barcodeio set bi_printstatus = 1,bi_lastprintdate=sysdate,bi_lastprintman='"+ SystemSession.getUser().getEm_name()+"',bi_printcount =nvl(bi_printcount,0)+1  where "+ condition);
+//				baseDao.execute("insert into barcodeprintlog(bl_id,bl_date,bl_man,bl_content,bl_caller,bl_barcode) select "
+//						+ " barcodeprintlog_seq.nextval,sysdate,'"+SystemSession.getUser().getEm_name()+"','入库单打印成功','"+logCaller+"', bi_barcode from "
+//						+ " barcodeio where "+condition);
+//			}else if ("Barcode!Print".equals(caller)){
+//				baseDao.execute("update barcode set bar_lastprintdate=sysdate,bar_printcount=nvl(bar_printcount,0)+1 ,bar_lastprintman = '"+SystemSession.getUser().getEm_name()+"' where "+condition);
+//				baseDao.execute("insert into barcodeprintlog(bl_id,bl_date,bl_man,bl_content,bl_caller,bl_barcode) select "
+//						+ " barcodeprintlog_seq.nextval,sysdate,'"+SystemSession.getUser().getEm_name()+"','"+("NewBar!BaPrint".equals(logCaller)?"新拆分条码":"库存条码")+"打印成功','"+logCaller+"', bar_code from "
+//						+ " barcode where "+condition);
+//			}else if(("VendBarcodeInPrint").equals(caller)){
+//				baseDao.execute("update baracceptnotify set ban_printstatus=-1 where "+condition);
+//			}
+//			if(page >0 && pageSize >0){
+//				SqlRowList lpname = baseDao.queryForRowSet(" SELECT wm_concat(lp_name) lp_name from  labelparameter where lp_laid = ?",rs0.getInt("la_id"));
+//				if(lpname.next() && lpname.getString("lp_name")!= null){
+//					va = "select "+lpname.getString("lp_name")+" from (select tt.*,rownum rn from ( "+va+" )tt  where rownum<="+end+" )where rn>="+start;
+//				}
+//			}
+			rs1 = baseDao.queryForRowSet(va);
+			rs2 = baseDao.queryForRowSet("select la_width,la_height,lp_id,lp_valuetype,lp_encode,lp_name,lp_leftrate,lp_toprate,lp_width,lp_ifshownote,lp_font,lp_size,lp_notealignjustify,lp_height from labelParameter left join label on la_id=lp_laid where la_id=?", rs0.getInt("la_id"));
+			List<Map<String,Object>> parameter = new ArrayList<Map<String, Object>>();
+			List<Map<String,Object>> barcode = new ArrayList<Map<String, Object>>();
+			Map<String,Object> re = new HashMap<>();
+			if(rs1.next()){
+				barcode = rs1.getResultList();
+			}
+			if(rs2.next()){
+				parameter = rs2.getResultList();
+			}
+			re.put("parameter",parameter);
+			re.put("barcode",barcode);
+			re.put("type", type);
+			re.put("label_type",rs0.getString("la_type"));
+			re.put("label_name", rs0.getString("la_name"));
+			if(printer !=null && !("").equals(printer)){
+				re.put("chooseprintername", printer);
+			}
+			return re;
+		} else {
+			throw new APIErrorException(APIErrorCode.BUSINESS_FAILED,"未配置相应的打印模板");
+		}
+	}
+
+
 }
 }

+ 28 - 25
src/com/uas/mes/scm/service/impl/GenerateBarcodeServiceImpl.java

@@ -1,22 +1,5 @@
 package com.uas.mes.scm.service.impl;
 package com.uas.mes.scm.service.impl;
 
 
-import java.math.BigDecimal;
-import java.sql.Timestamp;
-import java.text.DateFormat;
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Propagation;
-import org.springframework.transaction.annotation.Transactional;
-
 import com.uas.mes.common.dao.VerifyApplyDao;
 import com.uas.mes.common.dao.VerifyApplyDao;
 import com.uas.mes.common.data.BaseDao;
 import com.uas.mes.common.data.BaseDao;
 import com.uas.mes.common.data.SqlUtil;
 import com.uas.mes.common.data.SqlUtil;
@@ -26,12 +9,20 @@ import com.uas.mes.common.util.BaseUtil;
 import com.uas.mes.core.data.SqlRowList;
 import com.uas.mes.core.data.SqlRowList;
 import com.uas.mes.core.exception.APIErrorException;
 import com.uas.mes.core.exception.APIErrorException;
 import com.uas.mes.core.exception.APIErrorException.APIErrorCode;
 import com.uas.mes.core.exception.APIErrorException.APIErrorCode;
-import com.uas.mes.core.exception.SystemException;
-import com.uas.mes.core.util.CollectionUtil;
 import com.uas.mes.core.util.DateUtil;
 import com.uas.mes.core.util.DateUtil;
-import com.uas.mes.core.util.FlexJsonUtil;
 import com.uas.mes.core.util.NumberUtil;
 import com.uas.mes.core.util.NumberUtil;
 import com.uas.mes.scm.service.GenerateBarcodeService;
 import com.uas.mes.scm.service.GenerateBarcodeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Propagation;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.math.BigDecimal;
+import java.sql.Timestamp;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.*;
 
 
 @Service("generateBarcodeService")
 @Service("generateBarcodeService")
 public class GenerateBarcodeServiceImpl implements GenerateBarcodeService{ //生成条形码
 public class GenerateBarcodeServiceImpl implements GenerateBarcodeService{ //生成条形码
@@ -668,11 +659,12 @@ public class GenerateBarcodeServiceImpl implements GenerateBarcodeService{ //生
 			// 新增Barcode1分拆
 			// 新增Barcode1分拆
 			int bar_id = baseDao.getSeqId("BARCODE_SEQ");
 			int bar_id = baseDao.getSeqId("BARCODE_SEQ");
 			String bar_code;
 			String bar_code;
-			if (objs[0] != null) {
-				bar_code = verifyApplyDao.barcodeMethod(mp1.get("bar_prodcode").toString(), objs[0].toString(),0);// 生成条码
-			} else {
-				bar_code = verifyApplyDao.barcodeMethod(mp1.get("bar_prodcode").toString(), "",0);// 无供应商信息
-			}
+//			if (objs[0] != null) {
+//				bar_code = verifyApplyDao.barcodeMethod(mp1.get("bar_prodcode").toString(), objs[0].toString(),0);// 生成条码
+//			} else {
+//				bar_code = verifyApplyDao.barcodeMethod(mp1.get("bar_prodcode").toString(), "",0);// 无供应商信息
+//			}
+			bar_code = mp1.get("bar_code").toString()+bar_id;
 			if(combinAndBreak){
 			if(combinAndBreak){
 				mp1.put("BAR_LASTCODE", lastcode);
 				mp1.put("BAR_LASTCODE", lastcode);
 			}else{				
 			}else{				
@@ -685,6 +677,17 @@ public class GenerateBarcodeServiceImpl implements GenerateBarcodeService{ //生
 			}
 			}
 			mp1.put("BAR_LASTID", or_barid);
 			mp1.put("BAR_LASTID", or_barid);
 			mp1.put("BAR_ID", bar_id);
 			mp1.put("BAR_ID", bar_id);
+			mp1.put("BAR_VENDBARCODE",mp1.get("bar_vendbarcode"));
+			mp1.put("BAR_MADEDATE",mp1.get("bar_madedate"));
+			mp1.put("BAR_ORDERCODE",mp1.get("bar_ordercode"));
+			mp1.put("BAR_VENDNAME",mp1.get("bar_vendname"));
+			mp1.put("BAR_VENDCODE",mp1.get("bar_vendcode"));
+			mp1.put("BAR_REMARK",mp1.get("bar_remark"));
+			mp1.put("BAR_BATCHCODE",mp1.get("bar_batchcode"));
+			mp1.put("BAR_PRODCODE",mp1.get("bar_prodcode"));
+			mp1.put("BAR_INOUTNO",mp1.get("bar_inoutno"));
+			mp1.put("BAR_PIID",mp1.get("bar_piid"));
+			mp1.put("BAR_PDID",mp1.get("bar_pdid"));
 			mp1.put("BAR_KIND", "1");// 类型为分拆 :1,合并:2,原始:0
 			mp1.put("BAR_KIND", "1");// 类型为分拆 :1,合并:2,原始:0
 			mp1.put("BAR_CODE", bar_code);
 			mp1.put("BAR_CODE", bar_code);
 			mp1.put("BAR_REMAIN", bar_remain);
 			mp1.put("BAR_REMAIN", bar_remain);