wzh пре 1 година
родитељ
комит
3346dffd9d

+ 5 - 0
pom.xml

@@ -32,6 +32,11 @@
 			<artifactId>javax.servlet-api</artifactId>
 			<version>3.1.0</version>
 			<scope>provided</scope>
+		</dependency>
+			<dependency>
+			<groupId>com.oracle.database.jdbc</groupId>
+			<artifactId>ojdbc8</artifactId>
+			<version>21.5.0.0</version>
 		</dependency>
 		  	<dependency>
 			<groupId>com.qiniu</groupId>

+ 39 - 0
src/main/java/com/qlm/controller/jinzai/ItemController.java

@@ -0,0 +1,39 @@
+package com.qlm.controller.jinzai;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+import com.jfinal.aop.Clear;
+import com.jfinal.kit.JsonKit;
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Record;
+import com.qlm.annotation.RequestUrl;
+import com.qlm.controller.common.CommonController;
+import com.qlm.tools.WxUtil;
+
+
+@RequestUrl("/itemOrder")
+public class ItemController  extends CommonController{
+	/**
+	 * 查询盒码,箱码 ,垛码
+	 */
+	@Override
+	protected String getTableName(String key) {
+		// TODO Auto-generated method stub
+		return "t_jz_item";
+	}
+
+	@Override
+	protected String getPath(String key) {
+		// TODO Auto-generated method stub
+		return "/page/jinzai/item.jsp";
+	}
+	
+	public void setData(){
+		List<Record> types = Db.find("select id,product_name from t_jz_product ");
+		
+		Map<Integer, String> collect = types.stream().collect(Collectors.toMap(r->WxUtil.getInt("id", r), r->r.getStr("product_name")));
+		setAttr("products", JsonKit.toJson(collect));
+	}
+}

+ 19 - 0
src/main/java/com/qlm/controller/jinzai/JxsController.java

@@ -0,0 +1,19 @@
+package com.qlm.controller.jinzai;
+
+import com.qlm.annotation.RequestUrl;
+import com.qlm.controller.common.CommonController;
+
+@RequestUrl("/jxsList")
+public class JxsController  extends CommonController{
+	@Override
+	protected String getTableName(String key) {
+		// TODO Auto-generated method stub
+		return "jinzai_jxs_area";
+	}
+
+	@Override
+	protected String getPath(String key) {
+		// TODO Auto-generated method stub
+		return "/page/jinzai/jxs.jsp";
+	}
+}

+ 244 - 0
src/main/java/com/qlm/controller/jinzai/ProduceOrderController.java

@@ -0,0 +1,244 @@
+package com.qlm.controller.jinzai;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import com.jfinal.aop.Clear;
+import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Record;
+import com.qlm.annotation.RequestUrl;
+import com.qlm.controller.common.CommonController;
+import com.qlm.tools.WxUtil;
+
+@RequestUrl("/jinzaiOrder")
+public class ProduceOrderController extends CommonController{
+
+	
+	/**
+	 * 查询盒码,箱码 ,垛码
+	 */
+	public void code(){
+		render("/page/jinzai/search.jsp");
+	}
+	
+	public void codeQuery(){
+		Record result = new Record();
+		boolean status = false;
+		String msg = "";
+		String type = getPara("type");
+		String code = getPara("code");
+		List<Record> list = new ArrayList<Record>();
+		Map<String,Record> map = new HashMap<String,Record>();
+		StringBuilder masterCodes =  new StringBuilder();
+		if("1".equals(type)){//盒码
+			Record childInfo = Db.findFirst("select * from jinzai_upload_child where child_code = ?",code);
+			if(childInfo != null){
+				String master_code = childInfo.getStr("master_code");
+				Record masterInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",master_code);
+				if(masterCodes.length()>0){
+					masterCodes.append(",");
+				}
+				masterCodes.append("'"+master_code+"'");
+				map.put(master_code, masterInfo);
+				list.add(masterInfo);
+			}
+		}else if("2".equals(type)){
+			Record masterInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",code);
+			if(masterCodes.length()>0){
+				masterCodes.append(",");
+			}
+			list.add(masterInfo);
+			masterCodes.append("'"+code+"'");
+			map.put(code, masterInfo);
+		}else if("3".equals(type)){
+			List<Record> find = Db.find("select * from jinzai_upload_master where duo_code = ?",code);
+			for (Record record : find) {
+				String masterCode = record.getStr("id");
+				if(masterCodes.length()>0){
+					masterCodes.append(",");
+				}
+				masterCodes.append("'"+masterCode+"'");
+				map.put(masterCode, record);
+				list.add(record);
+			}
+			
+		}
+		if(masterCodes.length()>0){
+			List<Record> find = Db.find("select * from deliveryorders where CaseCode in("+masterCodes+")");
+			
+			for (Record record : find) {
+				String CaseCode = record.getStr("CaseCode");
+				Record masterInfO = map.get(CaseCode);
+				masterInfO.set("fahuoInfo", record);
+			}
+		}
+		result.set("status", status).set("msg", msg).set("data", list);
+		renderJson(result);
+	}
+	
+	//按日期查询发货订单
+	public void order(){
+		render("/page/jinzai/order.jsp");
+	}
+
+	/**
+	 * 
+	 */
+	@Clear
+	public void orderQuery(){
+		int pageSize = getParaToInt("pageSize",10);
+		int page = getParaToInt("pageNumber",1);
+		int pageStart = pageSize*(page-1);
+		String whereSql = " where 1 = 1 ";
+		
+		String OrderNo = getPara("OrderNo");
+		
+		String LicensePlate = getPara("LicensePlate");
+		String startdate = getPara("startdate");
+		
+		String endDate = getPara("enddate");
+		
+		if(!WxUtil.isNull(OrderNo)){
+			whereSql += " and OrderNo = '"+OrderNo+"' ";
+		}
+		
+		if(!WxUtil.isNull(LicensePlate)){
+			whereSql += " and LicensePlate = '"+LicensePlate+"' ";
+		}
+		
+		if(!WxUtil.isNull(endDate)){
+			whereSql += " and DeliveryTime <= '"+endDate+"' ";
+		}
+		
+		if(!WxUtil.isNull(startdate)){
+			whereSql += " and DeliveryTime >= '"+startdate+"' ";
+		}
+		
+		Long total =  Db.queryLong("select count(*) from deliveryorders");
+		
+		List<Record> find = Db.find("select * from deliveryorders "+whereSql+" order by DeliveryTime desc  limit "+pageStart+","+pageSize);
+		
+		Record r = new Record();
+		r.set("rows", find);
+		r.set("total", total);
+		renderJson(r);
+	}
+	
+	@Clear
+	public void cuanRecord(){
+		render("/page/jinzai/cuan.jsp");
+	}
+
+	@Clear
+	public void cuanRecordQuery(){
+		int pageSize = getParaToInt("pageSize",10);
+		int page = getParaToInt("pageNumber",1);
+		int pageStart = pageSize*(page-1);
+		String whereSql = " where 1 = 1 ";
+		
+		String kehu = getPara("kehu");
+		
+		String childcode = getPara("childcode");
+		String startdate = getPara("startdate");
+		
+		String endDate = getPara("enddate");
+		
+		String status = getPara("status");
+		
+		if(!"-1".equals(status)){
+			whereSql += " and status = '"+status+"' ";
+		}
+		
+		if(!WxUtil.isNull(kehu)){
+			whereSql += " and kehu like '%"+kehu+"%' ";
+		}
+		
+		if(!WxUtil.isNull(childcode)){
+			whereSql += " and child_code = '"+childcode+"' ";
+		}
+		
+		if(!WxUtil.isNull(endDate)){
+			whereSql += " and create_time <= '"+endDate+"' ";
+		}
+		
+		if(!WxUtil.isNull(startdate)){
+			whereSql += " and create_time >= '"+startdate+"' ";
+		}
+		
+		Long total =  Db.queryLong("select count(*) from t_jz_searchrecord");
+		
+		List<Record> find = Db.find("select * from t_jz_searchrecord "+whereSql+" order by create_time desc  limit "+pageStart+","+pageSize);
+		
+		Record r = new Record();
+		r.set("rows", find);
+		r.set("total", total);
+		renderJson(r);
+	}
+	
+	//同步订单到我们自己的库
+	public void update(){
+		String udfSqlString = "select * from WMS_PROD.V_TMSO_RETURN_H WHERE ROWNUM = 1";
+//		String sql = "select * from WMS_PROD.V_SERIAL_INFO WHERE ROWNUM = 1";
+		List<Record> find = Db.use("oracle").find(udfSqlString);
+		
+		List<Record> list = new ArrayList<Record>();
+		for (Record record : find) {
+			String orderNo = record.getStr("ORDERNO");//发货单号
+			
+			String OUTWAREHOUSE = record.getStr("OUTWAREHOUSE");//工厂名称
+			
+			
+			String WAREHOUSEID = record.getStr("WAREHOUSEID");//工厂ID
+			
+			
+			Date Deliverytime = record.getDate("DELIVERYTIME");//出库时间
+			
+			String caseCode = record.getStr("CASECODE");//箱码
+			
+			String palletCode = record.getStr("PALLETCODE");//垛码
+			
+			
+			String PRODUCTNAME = record.getStr("PRODUCTNAME");//产品名称
+			
+			
+			
+			String CUSTOMERNAME = record.getStr("CUSTOMERNAME");//客户姓名
+		
+			String SKUNAME = record.getStr("SKUNAME");//SKU名称
+			
+			String LICENSEPLATE = record.getStr("LICENSEPLATE");//车牌号
+			
+			String OUTWAREHOUSENO = record.getStr("OUTWAREHOUSENO");//工厂编号
+			
+			String SKUNO = record.getStr("SKUNO");//sku编号
+			
+			String OPERATEUSER = record.getStr("OPERATEUSER");//操作人
+			
+			String PRODUCTNO = record.getStr("PRODUCTNO");//产品编号
+			
+			String CUSTOMERNO = record.getStr("CUSTOMERNO");//客户编号
+			
+			Record info = new Record();
+			
+			info.set("OrderNo", orderNo).set("OutWarehouse", OUTWAREHOUSE).set("WarehouseID", WAREHOUSEID)
+			
+			.set("DeliveryTime", Deliverytime).set("CaseCode", caseCode).set("PalletCode", palletCode)
+			
+			.set("ProductName", PRODUCTNAME).set("CustomerName", CUSTOMERNAME).set("SKUName", SKUNAME)
+			
+			
+			.set("LicensePlate", LICENSEPLATE).set("OutWarehouseNo", OUTWAREHOUSENO).set("SKUNo", SKUNO)
+			
+			.set("OperateUser", OPERATEUSER).set("ProductNo", PRODUCTNO).set("CustomerNo", CUSTOMERNO);
+			
+			
+			list.add(info);
+			
+		}
+		WxUtil.batchSaveIgnore("deliveryorders", list, "");
+	}
+	
+}

+ 11 - 1
src/main/java/com/qlm/controller/jinzai/ProductController.java

@@ -1,13 +1,17 @@
 package com.qlm.controller.jinzai;
 
 import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
 
 import com.alibaba.fastjson.JSONObject;
 import com.jfinal.aop.Clear;
+import com.jfinal.kit.JsonKit;
 import com.jfinal.plugin.activerecord.Db;
 import com.jfinal.plugin.activerecord.Record;
 import com.qlm.annotation.RequestUrl;
 import com.qlm.controller.common.CommonController;
+import com.qlm.tools.WxUtil;
 
 @RequestUrl("/jinzaiProduct")
 public class ProductController extends CommonController{
@@ -24,7 +28,13 @@ public class ProductController extends CommonController{
 		// TODO Auto-generated method stub
 		return "/page/jinzai/t_jz_product.jsp";
 	}
-	
+	public void setData(){
+		List<Record> types = Db.find("select * from t_jz_product_type ");
+		
+		Map<Integer, String> collect = types.stream().collect(Collectors.toMap(r->WxUtil.getInt("id", r), r->r.getStr("type_name")));
+		setAttr("types", JsonKit.toJson(collect));
+	}
+
 	@Clear
 	public void getProduceData(){
 		JSONObject obj = new JSONObject();

+ 2 - 0
src/main/java/com/qlm/controller/jinzai/ProductTypeController.java

@@ -1,5 +1,6 @@
 package com.qlm.controller.jinzai;
 
+import com.jfinal.plugin.activerecord.Db;
 import com.qlm.annotation.RequestUrl;
 import com.qlm.controller.common.CommonController;
 
@@ -12,6 +13,7 @@ public class ProductTypeController extends CommonController{
 		// TODO Auto-generated method stub
 		return "t_jz_product_type";
 	}
+	
 
 	@Override
 	protected String getPath(String key) {

+ 20 - 1
src/main/java/com/qlm/jfinal/JfinalConfig.java

@@ -14,6 +14,8 @@ import com.jfinal.ext.handler.ContextPathHandler;
 import com.jfinal.ext.plugin.quartz.QuartzPlugin;
 import com.jfinal.kit.PropKit;
 import com.jfinal.plugin.activerecord.ActiveRecordPlugin;
+import com.jfinal.plugin.activerecord.CaseInsensitiveContainerFactory;
+import com.jfinal.plugin.activerecord.dialect.OracleDialect;
 import com.jfinal.plugin.druid.DruidPlugin;
 //import com.jfinal.plugin.ehcache.EhCachePlugin;
 import com.jfinal.render.ViewType;
@@ -38,7 +40,7 @@ public class JfinalConfig extends JFinalConfig {
 	
 	@Override
 	public void configConstant(Constants me) {
-		me.setDevMode(false);
+		me.setDevMode(true);
 		me.setViewType(ViewType.JSP);
 		me.setLogFactory(new LogerFactory());
 		PropKit.use("config.properties");
@@ -69,6 +71,23 @@ public class JfinalConfig extends JFinalConfig {
      // 配置ActiveRecord插件
         ActiveRecordPlugin arp = new ActiveRecordPlugin(dbPlugin);
         me.add(arp);
+        
+        
+        DruidPlugin oraclePlugin = new DruidPlugin(PropKit.get("oracleUrl"), 
+        		PropKit.get("oracleUser"), 
+        		PropKit.get("oraclePass"));
+        
+        oraclePlugin.setDriverClass("oracle.jdbc.OracleDriver");
+        oraclePlugin.setValidationQuery("select 1 from dual");
+        me.add(oraclePlugin);
+        
+        ActiveRecordPlugin oracleArp = new ActiveRecordPlugin("oracle", oraclePlugin);
+        oracleArp.setDialect(new OracleDialect());
+        oracleArp.setContainerFactory(new CaseInsensitiveContainerFactory());
+        me.add(oracleArp);
+        
+        oracleArp.setShowSql(true);
+		oracleArp.setDevMode(true);
 		
 		/** 定时任务插件**/
 		QuartzPlugin quartzPlugin =  new QuartzPlugin("job.properties");

+ 51 - 22
src/main/java/com/qlm/service/WmesService.java

@@ -1,12 +1,16 @@
 package com.qlm.service;
 
+import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.jfinal.kit.HttpKit;
 import com.jfinal.plugin.activerecord.Db;
+import com.jfinal.plugin.activerecord.Record;
+import com.qlm.log.Log;
 
 public class WmesService {
 
@@ -16,6 +20,9 @@ public class WmesService {
 	
 	public static void uploadData(){
 		
+		
+		List<Record> find = Db.find("select * from jinzai_upload_master where upload_time  is null");
+		
 		JSONObject bigData = new JSONObject();
 		JSONObject data = new JSONObject();
 		
@@ -24,31 +31,53 @@ public class WmesService {
 		
 		JSONArray header = new JSONArray();
 		
-		JSONObject obj1 = new JSONObject();
-		
 		data.put("header", header);
-		
-		
-		obj1.put("warehouseid", "JZPJ");
-		obj1.put("asnno", "2406271531351220000");
-		
-		obj1.put("serialno", "406271531421010101684000");
-		
-		obj1.put("sku", "1001A81000000031AK8R");
-		
-		
-		obj1.put("traceId", "406271531401010101549000");
-		
-		obj1.put("addtime", "2024-06-25 15:59:16");
-		obj1.put("udf06", "tm");
-		
-		header.add(obj1);
+		StringBuilder sb = new StringBuilder();
+		for (Record record : find) {
+			
+			String task_no = record.getStr("task_no");
+			String id = record.getStr("id");
+			if(sb.length()>0){
+				sb.append(",");
+			}
+			sb.append(id);
+			
+			String duo_code = record.getStr("duo_code");
+			
+			
+			String pinxiang = record.getStr("pinxiang");
+			
+			Date guo_time = record.getDate("guo_time");
+			
+			JSONObject obj1 = new JSONObject();
+			
+			obj1.put("warehouseid", "JZPJ");
+			obj1.put("asnno", task_no);//工单号
+			
+			obj1.put("serialno", id);//箱码
+			
+			obj1.put("sku", pinxiang);//物料编码
+			
+			
+			obj1.put("traceId", duo_code);//托盘码
+			
+			obj1.put("addtime", guo_time);//关联时间
+			obj1.put("udf06", "tm");
+			header.add(obj1);
+		}
 		
 	      Map<String,String> headers = new HashMap<>();
           headers.put("Content-Type","application/json");
-		System.out.println(bigData);
-		String post = HttpKit.post("http://192.168.0.184:18080/datahubjson/WMS_EM/?method=QRCODE&apptoken=BAB75C8B843F1C92AC3FFE3BD2A06A5F&timestamp=2024-06-25%2015:59:16&sign=1&format=JSON", bigData.toString(),headers);
-		
-		System.out.println(post);
+          try{
+              String post = HttpKit.post("http://192.168.0.184:18080/datahubjson/WMS_EM/?method=QRCODE&apptoken=BAB75C8B843F1C92AC3FFE3BD2A06A5F&timestamp=2024-06-25%2015:59:16&sign=1&format=JSON", bigData.toString(),headers);
+              Log.info(post);
+              if(sb.length()>0){
+            	  Db.update("update jinzai_upload_master set upload_time = ? where id in ("+sb+")",new Date());
+              }
+          }catch(Exception e){
+        	  e.printStackTrace();
+          }
+          
+          
 	}
 }

+ 3 - 0
src/main/resources/config.properties

@@ -11,3 +11,6 @@ password =Qyy#2023.Wzh!
 url=https://d.dnzc.vip
 dbname=jinzai
 
+oracleUrl = jdbc:oracle:thin:@192.168.0.183:61521/orcl
+oracleUser = pxl
+oraclePass = xuwei417

+ 22 - 8
src/main/webapp/page/common/edit.js

@@ -1,7 +1,7 @@
+
 function getRenderHtml(attr,data){
 	var dataType = attr.dataType || "string";
 	var dict = attr.dict;
-	
 	var value = data[attr.field];
 	if(value == null){
 		value = "";
@@ -12,6 +12,9 @@ function getRenderHtml(attr,data){
 	if(dataType == "img"){
 		dataType = "file";
 	}
+	if(attr.render){
+		return attr.render(attr,data)
+	}
 	return htmlRender[dataType](attr,value,dict);
 }
 
@@ -22,13 +25,13 @@ var  valueValidate = {
 var imgLocation = ctx+"/upload/";
 var htmlRender = {
 		string : function(data,value){
-			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><input value="'+value+'" class="form-control" type="text"  name="'+data.field+'"></input></div></div>';
+			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><input id="'+data.field+'" value="'+value+'" class="form-control" type="text"  name="'+data.field+'"></input></div></div>';
 		},
 		bigstring:function(data,value){
-			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><textarea style="resize:none;width:100%;height:100px;"  value="'+value+'" class="form-control" type="text"  name="'+data.field+'">'+value+'</textarea></div></div>';
+			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><textarea id="'+data.field+'" style="resize:none;width:100%;height:100px;"  value="'+value+'" class="form-control" type="text"  name="'+data.field+'">'+value+'</textarea></div></div>';
 		},
 		int:function(data,value){
-			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><input value="'+value+'" class="form-control" type="number"  name="'+data.field+'"></input></div></div>';
+			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><input id="'+data.field+'" value="'+value+'" class="form-control" type="number"  name="'+data.field+'"></input></div></div>';
 		},
 		img:function(data,value){
 			var imgStr ='<div><button onclick="return chooseFile(this)" >上传</button></div>';
@@ -45,7 +48,7 @@ var htmlRender = {
 			}
 			
 			
-			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><input style="border:none" type="hidden" value="'+value+'" class="form-control" name="'+data.field+'" ></input>\
+			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><input  style="border:none" type="hidden" value="'+value+'" class="form-control" name="'+data.field+'" ></input>\
 			'+imgStr+imgDom+'\
 			</div></div>';
 		},
@@ -59,7 +62,7 @@ var htmlRender = {
 					str+='<option value="'+key+'">'+dict[key]+'</option>';
 				}
 			}
-			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><select class="form-control" type="text"  name="'+data.field+'">'+str+'</select></div></div>';
+			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><select id="'+data.field+'" onchange="selectChange(this,\''+data.field+'\')" class="form-control" type="text"  name="'+data.field+'">'+str+'</select></div></div>';
 		},
 		file:function(data,value){
 			var imgStr ='<div><button onclick="return chooseFile(this)" >上传</button></div>';
@@ -88,7 +91,7 @@ var htmlRender = {
 		datetime:function(data,value){
 			let randon = Math.random(); 
 			let timeid ="timer_"+randon;
-			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><input value="'+value+'" class="form-control datepicker" type="text" id="'+timeid+'"   name="'+data.field+'"></input></div></div>';
+			return '<div class="form-group"><label class="col-sm-4 control-label">'+data.title+':</label><div class="col-sm-5"><input id="'+data.field+'" value="'+value+'" class="form-control datepicker" type="text" id="'+timeid+'"   name="'+data.field+'"></input></div></div>';
 		}
 		
 }
@@ -99,6 +102,16 @@ function removeImg(obj){
 	handerImgValue(parent);
 }
 
+function selectChange(obj,field){
+	for(let i =0;i<dataFormat.length;i++){
+		let dataObj = dataFormat[i];
+		if(dataObj.field == field){
+			dataObj['change']()
+			break;
+		}
+	}
+}
+
 function handelerResult(res){
 	var parn = $(trigerObj).parent().parent();
 	var img = res.path;
@@ -139,4 +152,5 @@ function chooseFile(obj){
 	trigerObj = obj;
 	$("#uploadFile").click();
 	return false;
-}
+}
+

+ 22 - 3
src/main/webapp/page/common/table.jsp

@@ -41,10 +41,17 @@
 <body class="gray-bg">
     <div class="wrapper wrapper-content animated fadeInRight">
         <div class="ibox float-e-margins">
+        					<div class="ibox-title">
+						<div class="row">
+							<div class="col-sm-10">
+                                <h3>${title }</h3>
+                           </div>
+						</div>
+					</div>	
             <div class="ibox-content">
                 <div class="row row-lg">
                     <div class="col-sm-11">
-                        <h4 class="example-title">${title }</h4>
+<%--                         <h4 class="example-title">${title }</h4> --%>
                     </div>
                      <div class="col-sm-1">
                                 <button type="button" id="table_add_btn" class="btn btn-success" onclick="add();return false;">新增</button>
@@ -216,7 +223,7 @@ function parseTableCol(){
 			tableCol.push(attr);
 		}
 		if(attr.dataType == "dict"){
-			var dict = attr.dict;
+			let dict = attr.dict;
 			if(!attr.formatter){
 				n += 1
 				attr.formatter = function(value,data){
@@ -329,7 +336,8 @@ function initTable(flag){
 		serverDataUrl = window["dataUrl"];
 	}
 	table = $('#table').bootstrapTable({
-		onLoadSuccess:function(){
+
+Success:function(){
 			if(config["afterInit"]){
 				config["afterInit"]();
 			}
@@ -477,6 +485,16 @@ function add(){
 	 }, 500);
 }
 
+function trigerSelectChange(){
+	for(let i =0;i<dataFormat.length;i++){
+		let dataObj = dataFormat[i];
+		if(dataObj.change){
+			dataObj['change']()
+			break;
+		}
+	}
+}
+
 function doCheck(array){
 	var len = array.length;
 	for(var i =0 ;i<len;i++){
@@ -566,6 +584,7 @@ function edit(id,index){
 		          },
 		      });
 			  bindDateEvent();
+			  trigerSelectChange();
 		}
 	});
 	

+ 278 - 0
src/main/webapp/page/jinzai/cuan.jsp

@@ -0,0 +1,278 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+	pageEncoding="UTF-8"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<c:set value="<%=request.getContextPath()%>" var="ctx"></c:set>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>表单</title>
+<meta name="keywords" content="关键字台">
+<meta name="description" content="描述">
+<link href="${ctx}/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+<link href="${ctx}/css/font-awesome.css?v=4.4.0" rel="stylesheet">
+<link href="${ctx}/css/bootstrap-select.min.css" rel="stylesheet">
+<link href="${ctx}/css/plugins/bootstrap-table/bootstrap-table.min.css"	rel="stylesheet">
+<link href="${ctx}/css/animate.css" rel="stylesheet">
+<link href="${ctx}/css/style.css?v=4.1.0" rel="stylesheet">
+</head>
+
+<body class="gray-bg">
+	<div class="wrapper wrapper-content animated fadeInRight">
+		<div class="row">
+			<div class="col-sm-12">
+				<div class="ibox">
+					<div class="ibox-title">
+						<div class="row">
+							<div class="col-sm-10">
+                                <h3>窜货查询</h3>
+                           </div>
+                           <div class="col-sm-2">
+                                <div class="ibox-tools">
+<!--                                     <button class="btn btn-success"  onclick="addUser();"> -->
+<!-- 						    			<i class="glyphicon glyphicon-plus"></i> 添加用户 -->
+<!-- 						  			</button> -->
+                                </div>
+                            </div>
+						</div>
+					</div>	
+						  
+					<div class="ibox-content">
+					
+					                  <div class="row row-lg">
+                     <form class="form-horizontal m-t" >
+               				<div id="condition">
+               						<div class="row">
+               									<div class="col-sm-4">
+               					<label class="col-sm-4 control-label"><span class="text-danger"></span>数码:</label>
+		                                <div class="col-sm-6">
+		                                   	<input id="childcode" class="form-control" placeholder="数码"/>
+		                              
+                						 </div>
+               				</div>
+               					<div class="col-sm-4">
+               					<label class="col-sm-4 control-label"><span class="text-danger"></span>扫码日期:</label>
+		                                <div class="col-sm-4">
+		                                   	<input id="startdate" class="form-control form_datetime" placeholder="请输入开始日期"/>
+                						 </div>
+                						 
+                						     <div class="col-sm-4">
+		                                   	<input id="enddate" class="form-control form_datetime" placeholder="请输入结束日期"/>
+		                              
+                						 </div>
+               				</div>
+               				
+               				
+               								<div class="col-sm-3">
+               								<label class="col-sm-4 control-label"><span class="text-danger"></span>出库经销商:</label>
+		                                <div class="col-sm-6">
+		                                   	<input id="kehu" class="form-control " placeholder="出库经销商"/>
+		                              
+                						 </div>
+               						</div>
+               						</div>
+               						<div class="row" style="margin-top:10px">
+               											<div class="col-sm-4">
+               								<label class="col-sm-4 control-label"><span class="text-danger"></span>是否窜货:</label>
+		                                <div class="col-sm-6">
+		                                   	<select id="status" class="form-control ">
+		                                   	<option value="-1">全部</option>
+		                                   	<option value="0">正常</option>
+		                                   		<option value="1">窜货</option>
+		                                   	</select> 
+		                              
+                						 </div>
+                						 
+                						 <div class="col-sm-2">
+               								  <button style="" type="button" id="searchBtn" class="btn btn-success" onclick="search();return false;">搜索</button>
+                						 </div>
+               						</div>
+               						</div>
+               				</div>
+               				
+                          
+
+                  </form>
+                </div>
+				  <div class="row row-lg">
+                 <div class="col-sm-12">
+                  <table id="table" data-toggle="table"  data-mobile-responsive="true">
+                            </table>
+                </div>
+                 </div>
+						
+						
+					</div>
+					
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<!-- 全局js -->
+	<script src="${ctx}/js/jquery.min.js?v=2.1.4"></script>
+	<script src="${ctx}/js/bootstrap.min.js?v=3.3.6"></script>
+	<script src="${ctx}/js/bootstrap-select.min.js"></script>
+	<!-- 自定义js -->
+	<script src="${ctx}/js/content.js?v=1.0.0"></script>
+	<!-- jQuery Validation plugin javascript-->
+	<script src="${ctx}/js/plugins/validate/jquery.validate.min.js"></script>
+	<script src="${ctx}/js/plugins/validate/messages_zh.min.js"></script>
+	<script src="${ctx}/js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
+	<script	src="${ctx}/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
+	<script	src="${ctx}/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
+	<script src="${ctx}/js/common.js"></script>
+	<script src="${ctx}/js/plugins/layer/layer.min.js"></script>
+	<script src="${ctx}/js/Math.uuid.js"></script>
+	 <script src="${ctx}/js/laydate/laydate.js"></script>
+</body>
+<script>
+var table = null;
+$(document).ready(function(){
+	
+	var doms = $(".form_datetime");
+	for(let i =0;i<doms.length;i++){
+		let dom = doms[i];
+		let id = dom.id;
+		console.log(id);
+		let end = {
+				elem : '#'+id,
+				format : 'YYYY-MM-DD',
+				istime : false,
+				istoday : true,
+			};
+			laydate(end);
+	}
+// 	$.ajax({
+// 		url : "${ctx}/jinzaiOrder/orderQuery",
+// 		success : function(list){
+ 			table = $('#table').bootstrapTable("destroy");//通过AJAX必须先destroy不知道为啥
+			initTable();
+// 		}
+// 	});
+});
+function queryParams(param){
+	let startdate = $("#startdate").val();
+	let enddate = $("#enddate").val();
+	let status = $("#status").val();
+	let childcode = $("#childcode").val();
+	let kehu = $("#kehu").val();
+	
+	if(startdate){
+		param['startdate'] = startdate;
+	}
+	if(enddate){
+		param['enddate'] = enddate;
+	}
+	if(status){
+		param['status'] = status;
+	}
+	if(kehu){
+		param['kehu'] = kehu;
+	}
+	if(childcode){
+		param['childcode'] = childcode;
+	}
+	return param;
+}
+function search(){
+	table = $('#table').bootstrapTable("destroy");
+	initTable();
+}
+function initTable(){
+	var index = 1;
+	table = $('#table').bootstrapTable({
+        method: 'get',
+        sortable : true,
+        toolbar: '#toolbar',    //工具按钮用哪个容器
+        striped: true,      //是否显示行间隔色
+        cache: false,      //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+        pagination: true,     //是否显示分页(*)
+        pageNumber:1,      //初始化加载第一页,默认第一页
+        pageSize: 10,      //每页的记录行数(*)
+        pageList: [10, 25, 50, 100],  //可供选择的每页的行数(*)
+        url: "${ctx}/jinzaiOrder/cuanRecordQuery",//这个接口需要处理bootstrap table传递的固定参数
+        queryParamsType:'', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort
+                            // 设置为 ''  在这种情况下传给服务器的参数为:pageSize,pageNumber
+
+        queryParams: queryParams,//前端调用服务时,会默认传递上边提到的参数,如果需要添加自定义参数,可以自定义一个函数返回请求参数
+        sidePagination: "server",   //分页方式:client客户端分页,server服务端分页(*)
+        search: true,      //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
+        strictSearch: false,
+        //showColumns: true,     //是否显示所有的列
+//         showRefresh: true,     //是否显示刷新按钮
+        minimumCountColumns: 2,    //最少允许的列数
+        clickToSelect: true,    //是否启用点击选中行
+        searchOnEnterKey: true,
+        idField : "OrderNo",
+        columns: [{
+        	title: '盒码',
+            align: 'center',
+            field: 'child_code',
+            width:"3%"
+        },{
+        	field: 'product_name',
+          	title: '产品名称',
+          	align: 'center',
+          	width:"5%"
+        },{
+        	field: 'kehu',
+          	title: '所属客户',
+          	align: 'center',
+          	width:"5%"
+        },{
+        	field: 'ip_addr',
+            title: '查询城市',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'location',
+            title: '地址',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'search_type',
+            title: '查询类型',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'create_time',
+            title: '查询时间',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'count',
+            title: '查询次数',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'status',
+            title: '状态',
+            align: 'center',
+            width:"5%",
+            formatter:function(value){
+            	if(value == 1){
+            		return "窜货";
+            	}else{
+            		return "正常";
+            	}
+            }
+        }
+        
+        ],
+    });
+}
+</script>
+<script type="text/javascript">
+
+	function isEmpty(obj){
+		if(obj == undefined || obj == null || obj == ''){
+			return true;
+		}else{
+			return false;
+		}
+	}
+	
+</script>
+</html>

+ 81 - 0
src/main/webapp/page/jinzai/item.jsp

@@ -0,0 +1,81 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+	pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<c:set var="title" value="品项列表"></c:set>
+<script>
+var products = ${products};
+var dataFormat = [
+                  {
+                      field:"id",
+                      title:"ID",
+                      dataType:"string",/*string;datetime,date*/
+                      pk:true,
+                      edit:false
+                   },
+                   {
+                       field:"item_name",
+                       title:"名称",
+                       dataType:"string",/*string;datetime,date*/
+                       edit:true,
+                       isNull:false
+                    },
+                    {
+                        field:"product_id",
+                        title:"产品名称",
+                        dataType:"dict",/*string;datetime,date*/
+                        dict:products,
+                        edit:true,
+                        isNull:false
+                     },
+                    {
+                        field:"sku",
+                        title:"sku",
+                        dataType:"string",/*string;datetime,date*/
+                        edit:true,
+                        isNull:false
+                     }
+                    ,
+                    {
+                        field:"bip",
+                        title:"bip编号",
+                        dataType:"string",/*string;datetime,date*/
+                        edit:true,
+                     }
+                    ,
+                    {
+                        field:"kouwei",
+                        title:"口味",
+                        dataType:"string",/*string;datetime,date*/
+                        edit:true,
+                        isNull:false
+                     }
+                    ,
+                    {
+                        field:"status",
+                        title:"状态",
+                        dataType:"dict",
+                        dict:{1:"正常",0:"禁用"},
+                        edit:true
+                     }
+                    ,
+                    {
+                        field:"create_time",
+                        title:"添加时间",
+                        dataType:"string",/*string;datetime,date*/
+                        edit:false,
+                     }
+                    
+                    
+                   
+            ];
+var config = { isEdit:true,isDel:false,isAdd:true,afterEdit:function(){
+	
+}};
+
+</script>
+<%@include file="../common/table.jsp"%>
+
+<script>
+
+
+</script>

+ 40 - 0
src/main/webapp/page/jinzai/jxs.jsp

@@ -0,0 +1,40 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+	pageEncoding="UTF-8"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
+<c:set var="title" value="经销商列表"></c:set>
+<script>
+var dataFormat = [
+                  {
+                      field:"id",
+                      title:"ID",
+                      dataType:"string",/*string;datetime,date*/
+                      pk:true,
+                      edit:false
+                   },
+                   {
+                       field:"jxs",
+                       title:"名称",
+                       dataType:"string",/*string;datetime,date*/
+                       edit:true,
+                       isNull:false
+                    },
+                    {
+                        field:"code",
+                        title:"编码",
+                        dataType:"string",/*string;datetime,date*/
+                        edit:true,
+                        isNull:false
+                     }
+                    
+                    
+                   
+            ];
+var config = { isEdit:true,isDel:false,isAdd:true};
+
+</script>
+<%@include file="../common/table.jsp"%>
+
+<script>
+
+
+</script>

+ 249 - 0
src/main/webapp/page/jinzai/order.jsp

@@ -0,0 +1,249 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+	pageEncoding="UTF-8"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<c:set value="<%=request.getContextPath()%>" var="ctx"></c:set>
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="utf-8">
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
+<title>表单</title>
+<meta name="keywords" content="关键字台">
+<meta name="description" content="描述">
+<link href="${ctx}/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+<link href="${ctx}/css/font-awesome.css?v=4.4.0" rel="stylesheet">
+<link href="${ctx}/css/bootstrap-select.min.css" rel="stylesheet">
+<link href="${ctx}/css/plugins/bootstrap-table/bootstrap-table.min.css"	rel="stylesheet">
+<link href="${ctx}/css/animate.css" rel="stylesheet">
+<link href="${ctx}/css/style.css?v=4.1.0" rel="stylesheet">
+</head>
+
+<body class="gray-bg">
+	<div class="wrapper wrapper-content animated fadeInRight">
+		<div class="row">
+			<div class="col-sm-12">
+				<div class="ibox">
+					<div class="ibox-title">
+						<div class="row">
+							<div class="col-sm-10">
+                                <h3>发货查询</h3>
+                           </div>
+                           <div class="col-sm-2">
+                                <div class="ibox-tools">
+<!--                                     <button class="btn btn-success"  onclick="addUser();"> -->
+<!-- 						    			<i class="glyphicon glyphicon-plus"></i> 添加用户 -->
+<!-- 						  			</button> -->
+                                </div>
+                            </div>
+						</div>
+					</div>	
+						  
+					<div class="ibox-content">
+					
+					                  <div class="row row-lg">
+                     <form class="form-horizontal m-t" >
+               				<div id="condition">
+               				<div>
+               					<label class="col-sm-1 control-label"><span class="text-danger"></span>发货日期:</label>
+		                                <div class="col-sm-2">
+		                                   	<input id="startdate" class="form-control form_datetime" placeholder="请输入开始日期"/>
+		                              
+                						 </div>
+                						 
+                						     <div class="col-sm-2">
+		                                   	<input id="enddate" class="form-control form_datetime" placeholder="请输入结束日期"/>
+		                              
+                						 </div>
+               				</div>
+               						<div>
+               					<label class="col-sm-1 control-label"><span class="text-danger"></span>出库单号:</label>
+		                                <div class="col-sm-2">
+		                                   	<input id="OrderNo" class="form-control" placeholder="出库单号"/>
+		                              
+                						 </div>
+               				</div>
+               				
+               							<div>
+               					<label class="col-sm-1 control-label"><span class="text-danger"></span>车牌号:</label>
+		                                <div class="col-sm-2">
+		                                   	<input id="LicensePlate" class="form-control " placeholder="车牌号"/>
+		                              
+                						 </div>
+               				</div>
+               				</div>
+               				
+                            <button style="" type="button" id="searchBtn" class="btn btn-success" onclick="search();return false;">搜索</button>
+
+                  </form>
+                </div>
+				  <div class="row row-lg">
+                 <div class="col-sm-12">
+                  <table id="table" data-toggle="table"  data-mobile-responsive="true">
+                            </table>
+                </div>
+                 </div>
+						
+						
+					</div>
+					
+				</div>
+			</div>
+		</div>
+	</div>
+
+	<!-- 全局js -->
+	<script src="${ctx}/js/jquery.min.js?v=2.1.4"></script>
+	<script src="${ctx}/js/bootstrap.min.js?v=3.3.6"></script>
+	<script src="${ctx}/js/bootstrap-select.min.js"></script>
+	<!-- 自定义js -->
+	<script src="${ctx}/js/content.js?v=1.0.0"></script>
+	<!-- jQuery Validation plugin javascript-->
+	<script src="${ctx}/js/plugins/validate/jquery.validate.min.js"></script>
+	<script src="${ctx}/js/plugins/validate/messages_zh.min.js"></script>
+	<script src="${ctx}/js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
+	<script	src="${ctx}/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
+	<script	src="${ctx}/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
+	<script src="${ctx}/js/common.js"></script>
+	<script src="${ctx}/js/plugins/layer/layer.min.js"></script>
+	<script src="${ctx}/js/Math.uuid.js"></script>
+	 <script src="${ctx}/js/laydate/laydate.js"></script>
+</body>
+<script>
+var table = null;
+$(document).ready(function(){
+	
+	var doms = $(".form_datetime");
+	for(let i =0;i<doms.length;i++){
+		let dom = doms[i];
+		let id = dom.id;
+		console.log(id);
+		let end = {
+				elem : '#'+id,
+				format : 'YYYY-MM-DD',
+				istime : false,
+				istoday : true,
+			};
+			laydate(end);
+	}
+// 	$.ajax({
+// 		url : "${ctx}/jinzaiOrder/orderQuery",
+// 		success : function(list){
+ 			table = $('#table').bootstrapTable("destroy");//通过AJAX必须先destroy不知道为啥
+			initTable();
+// 		}
+// 	});
+});
+function queryParams(param){
+	let startdate = $("#startdate").val();
+	let enddate = $("#enddate").val();
+	let OrderNo = $("#OrderNo").val();
+	
+	let LicensePlate = $("#LicensePlate").val();
+	
+	if(startdate){
+		param['startdate'] = startdate;
+	}
+	if(enddate){
+		param['enddate'] = enddate;
+	}
+	if(OrderNo){
+		param['OrderNo'] = OrderNo;
+	}
+	if(LicensePlate){
+		param['LicensePlate'] = LicensePlate;
+	}
+	return param;
+}
+function search(){
+	table = $('#table').bootstrapTable("destroy");
+	initTable();
+}
+function initTable(){
+	var index = 1;
+	table = $('#table').bootstrapTable({
+        method: 'get',
+        sortable : true,
+        toolbar: '#toolbar',    //工具按钮用哪个容器
+        striped: true,      //是否显示行间隔色
+        cache: false,      //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+        pagination: true,     //是否显示分页(*)
+        pageNumber:1,      //初始化加载第一页,默认第一页
+        pageSize: 10,      //每页的记录行数(*)
+        pageList: [10, 25, 50, 100],  //可供选择的每页的行数(*)
+        url: "${ctx}/jinzaiOrder/orderQuery",//这个接口需要处理bootstrap table传递的固定参数
+        queryParamsType:'', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort
+                            // 设置为 ''  在这种情况下传给服务器的参数为:pageSize,pageNumber
+
+        queryParams: queryParams,//前端调用服务时,会默认传递上边提到的参数,如果需要添加自定义参数,可以自定义一个函数返回请求参数
+        sidePagination: "server",   //分页方式:client客户端分页,server服务端分页(*)
+        search: true,      //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
+        strictSearch: false,
+        //showColumns: true,     //是否显示所有的列
+//         showRefresh: true,     //是否显示刷新按钮
+        minimumCountColumns: 2,    //最少允许的列数
+        clickToSelect: true,    //是否启用点击选中行
+        searchOnEnterKey: true,
+        idField : "OrderNo",
+        columns: [{
+        	title: '单号',
+            align: 'center',
+            field: 'OrderNo',
+            width:"3%"
+        },{
+        	field: 'OutWarehouse',
+          	title: '工厂名称',
+          	align: 'center',
+          	width:"5%"
+        },{
+        	field: 'DeliveryTime',
+          	title: '出库时间',
+          	align: 'center',
+          	width:"5%"
+        },{
+        	field: 'CaseCode',
+            title: '箱码',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'PalletCode',
+            title: '垛码',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'ProductName',
+            title: '产品名称',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'SKU',
+            title: 'SKU',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'CustomerName',
+            title: '客户名称',
+            align: 'center',
+            width:"5%"
+        },{
+        	field: 'LicensePlate',
+            title: '车牌号',
+            align: 'center',
+            width:"5%"
+        }
+        
+        ],
+    });
+}
+</script>
+<script type="text/javascript">
+
+	function isEmpty(obj){
+		if(obj == undefined || obj == null || obj == ''){
+			return true;
+		}else{
+			return false;
+		}
+	}
+	
+</script>
+</html>

+ 262 - 0
src/main/webapp/page/jinzai/search.jsp

@@ -0,0 +1,262 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+	pageEncoding="UTF-8"%>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
+<c:set value="<%=request.getContextPath()%>" var="ctx"></c:set>
+<!DOCTYPE html>
+<html>
+<head>
+    <meta charset="utf-8">
+    <meta name="viewport" content="width=device-width, initial-scale=1.0">
+    <title>表单</title>
+    <meta name="keywords" content="关键字台">
+    <meta name="description" content="描述">
+    <link rel="shortcut icon" href="favicon.ico"> 
+    <link href="${ctx}/css/bootstrap.min.css?v=3.3.6" rel="stylesheet">
+    <link href="${ctx}/css/font-awesome.css?v=4.4.0" rel="stylesheet">
+    <link href="${ctx}/css/animate.css" rel="stylesheet">
+    <link href="${ctx}/css/style.css?v=4.1.0" rel="stylesheet">
+    <link href="${ctx}/css/plugins/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
+</head>
+
+<body class="gray-bg">
+    <div class="wrapper wrapper-content animated fadeInRight">
+        <div class="row">
+            <div class="col-sm-12">
+                <div class="ibox float-e-margins">
+                    <div class="ibox-title">
+                        <div class="row">
+                           <div class="col-sm-12">
+                                <h3>数码查询</h3>
+                           </div>
+                        </div>
+                    </div>
+                    <div class="ibox-content" id="form" >
+                        <form class="form-horizontal m-t" name="prizesform" id="prizesform">
+                            <div class="row">
+                            <div class="col-sm-2"></div>
+                            <div class="col-sm-8">
+                            
+                            
+                            		<div class="form-group">
+                                        <label class="col-sm-4 control-label"><span class="text-danger">*</span>类型:</label>
+                                        <div class="col-sm-4">
+                                            <select class="form-control" name="type" id="type" maxlength="100" >
+                                            	<option value="1">盒码</option>
+                                            	<option value="2">箱码</option>
+                                            	<option value="3">托盘码</option>
+                                            </select>
+                                        </div>
+<!--                                         <div class="col-sm-4"> -->
+<!--                                             <button class="btn btn-primary" id="createBtn" type="button" onclick="config();return false;">&#8195;查询&#8195;</button>                                             -->
+<!--                                         </div> -->
+                                    </div>
+                             
+                                 
+                                </div>
+                                <div class="col-sm-2"></div>
+                            </div>
+                            
+                                    <div class="row">
+                            <div class="col-sm-2"></div>
+                            <div class="col-sm-8">
+                            
+                            
+                            		<div class="form-group">
+                                        <label class="col-sm-4 control-label"><span class="text-danger">*</span>编号:</label>
+                                        <div class="col-sm-4">
+                                            <input class="form-control" type="text" name="code" id="code" maxlength="100" />
+                                        </div>
+                                        <div class="col-sm-4">
+                                            <button class="btn btn-primary" id="createBtn" type="button" onclick="config();return false;">&#8195;查询&#8195;</button>                                            
+                                        </div>
+                                    </div>
+                             
+                                 
+                                </div>
+                                <div class="col-sm-2"></div>
+                            </div>
+                        </form>
+                    </div>
+                    
+                    	<div class="ibox-content" id="masterDiv" style="display:none">
+	                    	  <table id="table" data-toggle="table"  data-mobile-responsive="true">
+                            </table>
+	                        
+	                    </div>
+                    
+                </div>
+            </div>
+        </div>
+    </div>
+    
+    <!-- Modal -->
+	<div class="modal fade" id="alertModal" tabindex="-1" role="dialog"
+		aria-labelledby="myModalLabel" aria-hidden="true">
+		<div class="modal-dialog">
+			<div class="modal-content">
+				<div class="modal-header">
+					<button type="button" class="close" data-dismiss="modal"
+						aria-label="Close">
+						<span aria-hidden="true">&times;</span>
+					</button>
+					<h4 class="modal-title" id="myModalLabel">提示</h4>					
+				</div>
+				<div class="modal-body" id="alertMessage">
+					<div class="progress progress-striped active">
+						<div style="width: 1%" aria-valuemax="100" aria-valuemin="0"
+							aria-valuenow="25" role="progressbar"
+							class="progress-bar progress-bar-danger">							
+						</div>
+					</div>
+				</div>
+			</div>
+		</div>
+	</div>
+    
+    <!-- 全局js -->
+    <script src="${ctx}/js/jquery.min.js?v=2.1.4"></script>
+    <script src="${ctx}/js/bootstrap.min.js?v=3.3.6"></script>
+    <!-- 自定义js -->
+    <script src="${ctx}/js/content.js?v=1.0.0"></script>
+    <!-- jQuery Validation plugin javascript-->
+    <script src="${ctx}/js/plugins/validate/jquery.validate.min.js"></script>
+    <script src="${ctx}/js/plugins/validate/messages_zh.min.js"></script>
+    <script src="${ctx}/js/plugins/layer/layer.min.js"></script>
+    <!-- Data Tables -->
+        <script src="${ctx}/js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
+    <script src="${ctx}/js/plugins/bootstrap-table/bootstrap-table-mobile.min.js"></script>
+    <script src="${ctx}/js/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
+    <script type="text/javascript">
+    var ctx = "${ctx}";
+	$(function(){
+		 $("#prizesform").validate({
+				rules : {
+					num_:{
+						required : true,
+					}
+				},
+				messages : {
+					num_:{
+						required : "请输入二维码编号",
+					}
+				}
+			});
+	});
+	
+	function config(){
+		goon();
+
+	}
+	
+	
+	function goon(){
+		layer.load();
+		let type = $("#type").val();
+		let code = $("#code").val();
+		$.ajax({
+			url:"${ctx}/jinzaiOrder/codeQuery?type="+type,
+			type:"post",
+			data:{code:code},
+			success:function(res){
+				$("#masterDiv").show().html('<table id="table" data-toggle="table"  data-mobile-responsive="true"> </table>');
+				layer.closeAll();
+				  table = $('#table').bootstrapTable("destroy");//通过AJAX必须先destroy不知道为啥
+				  initTable(res.data);
+			},
+			error:function(data){
+// 				$("input").attr("disabled",false);
+// 				$("#createBtn").attr("disabled",false);
+// 				$("#loading").css("display","none");
+// 				layer.msg("connection error");
+			}
+		});
+	}
+	var productMaps = {};
+	var areaMaps ={};
+	function initTable(data){
+	    var index = 1;
+	    table = $('#table').bootstrapTable({
+	        method: 'get',
+	        sortable : true,
+	        toolbar: '#toolbar',    //工具按钮用哪个容器
+	        striped: true,      //是否显示行间隔色
+	        cache: false,      //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
+	        pagination: true,     //是否显示分页(*)
+	        pageNumber:1,      //初始化加载第一页,默认第一页
+	        pageSize: 10,      //每页的记录行数(*)
+	        pageList: [10, 25, 50, 100],  //可供选择的每页的行数(*)
+//	         url: "${ctx}/index/getUser",//这个接口需要处理bootstrap table传递的固定参数
+	        queryParamsType:'', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort
+	                            // 设置为 ''  在这种情况下传给服务器的参数为:pageSize,pageNumber
+
+	        //queryParams: queryParams,//前端调用服务时,会默认传递上边提到的参数,如果需要添加自定义参数,可以自定义一个函数返回请求参数
+	        sidePagination: "client",   //分页方式:client客户端分页,server服务端分页(*)
+	        search: true,      //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
+	        strictSearch: false,
+	        //showColumns: true,     //是否显示所有的列
+//	         showRefresh: true,     //是否显示刷新按钮
+	        minimumCountColumns: 2,    //最少允许的列数
+	        clickToSelect: true,    //是否启用点击选中行
+	        searchOnEnterKey: true,
+	        idField : "id",
+	        data : data,
+	        columns: configList,
+	    });
+	}
+	
+	let configList = [
+	      	        {
+	    	            field: 'task_no',
+	    	            title: '单号',
+	    	            align: 'center',
+	    	            width:"5%"
+	    	        }
+	    	        ,{
+	    	            field: 'id',
+	    	            title: '箱码',
+	    	            align: 'center',
+	    	            width:"5%"
+	    	        }
+	    	        ,{
+	    	        	field:"duo_code",
+	    	            title: '垛码',
+	    	            align: 'center',
+	    	            width:"5%",
+	    	        }
+	    	        ,{
+	    	        	field:"guo_time",
+	    	            title: '绑定时间',
+	    	            align: 'center',
+	    	            width:"5%",
+	    	        }
+	    	        ,{
+	    	            field: 'pinxiang',
+	    	            title: '产品',
+	    	            align: 'center',
+	    	            width:"5%"
+	    	        }
+	    	        ,{
+	    	            field: 'kouwei',
+	    	            title: '口味',
+	    	            align: 'center',
+	    	            width:"5%"
+	    	        }
+	    	        
+	    	        ,{
+	    	            title: '发货信息',
+	    	            align: 'center',
+	    	            width:"5%",
+	    	            formatter:function(value,data){
+	    	            	debugger;
+	    	            	if(data.fahuoInfo){
+	    	            		return "发货单号:"+data.fahuoInfo.OrderNo+",客户:"+data.fahuoInfo.CustomerName;
+	    	            	}else{
+	    	            		return "未发货";
+	    	            	}
+	    	            }
+	    	        }
+	    	];
+
+   	</script>
+</body>
+</html>

+ 74 - 5
src/main/webapp/page/jinzai/t_jz_product.jsp

@@ -1,8 +1,9 @@
 <%@ page language="java" contentType="text/html; charset=UTF-8"
 	pageEncoding="UTF-8"%>
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
-<c:set var="title" value="品项"></c:set>
+<c:set var="title" value="产品列表"></c:set>
 <script>
+var types = ${types};
 var dataFormat = [
                   {
                       field:"id",
@@ -15,11 +16,79 @@ var dataFormat = [
                        field:"product_name",
                        title:"品项名称",
                        dataType:"string",/*string;datetime,date*/
-                       edit:true
-                    }
+                       edit:true,
+                       isNull:false
+                    },
+                    {
+                        field:"product_no",
+                        title:"产品编号",
+                        dataType:"string",/*string;datetime,date*/
+                        edit:true,
+                        isNull:false
+                     }
+                    ,
+                    {
+                        field:"product_type",
+                        title:"产品分类",
+                        dataType:"dict",/*string;datetime,date*/
+                        dict:types,
+                        edit:true,
+                     }
+                    ,
+                    {
+                        field:"status",
+                        title:"状态",
+                        dataType:"dict",
+                        dict:{1:"正常",0:"禁用"},
+                        edit:true
+                     }
+                    ,
+                    {
+                        field:"create_time",
+                        title:"添加时间",
+                        dataType:"string",/*string;datetime,date*/
+                        edit:false,
+                     }
+                    ,
+                    {
+                        field:"baozhuang_level",
+                        title:"包装等级",
+                        dataType:"dict",
+                        dict:{2:"2层","3":"3层"},
+                        edit:true,
+                        show:false,
+                        change:function(){
+                        	let value = $("#baozhuang_level").val();
+                        	if(value == 2){
+                        		$("#tuo_num").parent().parent().hide();
+                        	}else if(value == 3){
+                        		$("#tuo_num").parent().parent().show();
+                        	}
+//                         	$("<select name='tuo_num'>").parent().parent().remove();
+                        }
+                     },
+                     {
+                         field:"tuo_num",
+                         title:"每垛箱数",
+                         dataType:"string",
+                         edit:true,
+                         show:false,
+                      }
+                     ,
+                     {
+                         field:"xiang_num",
+                         title:"每箱盒数",
+                         dataType:"string",
+                         edit:true,
+                         show:false
+  					
+                      }
+                    
+                   
             ];
-var config = { isEdit:true,isDel:false,isAdd:true};
-
+var config = { isEdit:true,isDel:false,isAdd:true,afterEdit:function(){
+	
+}};
 
 </script>
 <%@include file="../common/table.jsp"%>

+ 16 - 2
src/main/webapp/page/jinzai/t_jz_product_type.jsp

@@ -13,10 +13,24 @@ var dataFormat = [
                    },
                    {
                        field:"type_name",
-                       title:"品名称",
+                       title:"品名称",
                        dataType:"string",/*string;datetime,date*/
                        edit:true
-                    }
+                    },
+                    {
+                        field:"type_no",
+                        title:"品类编号",
+                        dataType:"string",/*string;datetime,date*/
+                        edit:true
+                     },
+                     {
+                         field:"status",
+                         title:"状态",
+                         dataType:"dict",/*string;datetime,date*/
+                         dict:{1:"正常",0:"禁用"},
+                         edit:true
+                      }
+           
             ];
 var config = { isEdit:true,isDel:false,isAdd:true};