sunxianglong 1 mesiac pred
rodič
commit
eed3bd59f6

+ 1 - 1
src/main/java/com/jeesite/modules/mes/dao/MesWuliaoCzDao.java

@@ -7,7 +7,7 @@ import com.jeesite.modules.mes.entity.MesWuliaoCz;
 /**
  * 称重数据表DAO接口
  * @author sxl
- * @version 2026-09-28
+ * @version 2026-09-29
  */
 @MyBatisDao
 public interface MesWuliaoCzDao extends CrudDao<MesWuliaoCz> {

+ 68 - 15
src/main/java/com/jeesite/modules/mes/entity/MesWuliaoCz.java

@@ -1,23 +1,30 @@
 package com.jeesite.modules.mes.entity;
 
+import java.util.Date;
+
 import javax.validation.constraints.Size;
 
 import com.jeesite.common.entity.DataEntity;
 import com.jeesite.common.mybatis.annotation.Column;
 import com.jeesite.common.mybatis.annotation.Table;
 import com.jeesite.common.mybatis.mapper.query.QueryType;
+import com.jeesite.common.utils.excel.annotation.ExcelField;
+import com.jeesite.common.utils.excel.annotation.ExcelField.Align;
+import com.jeesite.common.utils.excel.annotation.ExcelFields;
 
 /**
  * 称重数据表Entity
  * @author sxl
- * @version 2026-09-28
+ * @version 2026-09-29
  */
 @Table(name="mes_wuliao_cz", alias="a", label="称重数据表信息", columns={
 		@Column(name="id", attrName="id", label="id", isPK=true),
 		@Column(name="lc", attrName="lc", label="炉次"),
 		@Column(name="bc", attrName="bc", label="班次"),
-		@Column(name="type", attrName="type", label="物料类型"),
-		@Column(name="zl", attrName="zl", label="重量"),
+		@Column(name="y_zl", attrName="yzl", label="原铝锭重量"),
+		@Column(name="h_zl", attrName="hzl", label="回炉料重量"),
+		@Column(name="qp_zl", attrName="qpZl", label="去皮重量"),
+		@Column(name="hl_bl", attrName="hlBl", label="回炉料占比"),
 		@Column(name="create_date", attrName="createDate", label="创建时间", isUpdate=false, isQuery=false, isUpdateForce=true),
 	}, orderBy="a.id DESC"
 )
@@ -26,9 +33,21 @@ public class MesWuliaoCz extends DataEntity<MesWuliaoCz> {
 	private static final long serialVersionUID = 1L;
 	private String lc;		// 炉次
 	private String bc;		// 班次
-	private String type;		// 物料类型
-	private String zl;		// 重量
+	private String yzl;		// 原铝锭重量
+	private String hzl;		// 回炉料重量
+	private String qpZl;		// 去皮重量
+	private String hlBl;		// 回炉料占比
 
+	@ExcelFields({
+		@ExcelField(title="id", attrName="id", align=Align.CENTER, sort=10),
+		@ExcelField(title="炉次", attrName="lc", align=Align.CENTER, sort=20),
+		@ExcelField(title="班次", attrName="bc", align=Align.CENTER, sort=30),
+		@ExcelField(title="原铝锭重量", attrName="yzl", align=Align.CENTER, sort=40),
+		@ExcelField(title="回炉料重量", attrName="hzl", align=Align.CENTER, sort=50),
+		@ExcelField(title="去皮重量", attrName="qpZl", align=Align.CENTER, sort=60),
+		@ExcelField(title="回炉料占比", attrName="hlBl", align=Align.CENTER, sort=70),
+		@ExcelField(title="创建时间", attrName="createDate", align=Align.CENTER, sort=80),
+	})
 	public MesWuliaoCz() {
 		this(null);
 	}
@@ -55,22 +74,56 @@ public class MesWuliaoCz extends DataEntity<MesWuliaoCz> {
 		this.bc = bc;
 	}
 	
-	@Size(min=0, max=64, message="物料类型长度不能超过 64 个字符")
-	public String getType() {
-		return type;
+	@Size(min=0, max=64, message="原铝锭重量长度不能超过 64 个字符")
+	public String getYzl() {
+		return yzl;
+	}
+
+	public void setYzl(String yzl) {
+		this.yzl = yzl;
+	}
+	
+	@Size(min=0, max=64, message="回炉料重量长度不能超过 64 个字符")
+	public String getHzl() {
+		return hzl;
+	}
+
+	public void setHzl(String hzl) {
+		this.hzl = hzl;
+	}
+	
+	@Size(min=0, max=64, message="去皮重量长度不能超过 64 个字符")
+	public String getQpZl() {
+		return qpZl;
 	}
 
-	public void setType(String type) {
-		this.type = type;
+	public void setQpZl(String qpZl) {
+		this.qpZl = qpZl;
 	}
 	
-	@Size(min=0, max=64, message="重量长度不能超过 64 个字符")
-	public String getZl() {
-		return zl;
+	@Size(min=0, max=64, message="回炉料占比长度不能超过 64 个字符")
+	public String getHlBl() {
+		return hlBl;
+	}
+
+	public void setHlBl(String hlBl) {
+		this.hlBl = hlBl;
+	}
+
+	public Date getCreateDate_gte() {
+		return sqlMap.getWhere().getValue("create_date", QueryType.GTE);
+	}
+
+	public void setCreateDate_gte(Date createDate) {
+		sqlMap.getWhere().and("create_date", QueryType.GTE, createDate);
+	}
+
+	public Date getCreateDate_lte() {
+		return sqlMap.getWhere().getValue("create_date", QueryType.LTE);
 	}
 
-	public void setZl(String zl) {
-		this.zl = zl;
+	public void setCreateDate_lte(Date createDate) {
+		sqlMap.getWhere().and("create_date", QueryType.LTE, createDate);
 	}
 	
 }

+ 57 - 1
src/main/java/com/jeesite/modules/mes/service/MesWuliaoCzService.java

@@ -8,11 +8,18 @@ import com.jeesite.common.entity.Page;
 import com.jeesite.common.service.CrudService;
 import com.jeesite.modules.mes.entity.MesWuliaoCz;
 import com.jeesite.modules.mes.dao.MesWuliaoCzDao;
+import com.jeesite.common.service.ServiceException;
+import com.jeesite.common.config.Global;
+import com.jeesite.common.validator.ValidatorUtils;
+import com.jeesite.common.utils.excel.ExcelImport;
+import org.springframework.web.multipart.MultipartFile;
+import javax.validation.ConstraintViolation;
+import javax.validation.ConstraintViolationException;
 
 /**
  * 称重数据表Service
  * @author sxl
- * @version 2026-09-28
+ * @version 2026-09-29
  */
 @Service
 public class MesWuliaoCzService extends CrudService<MesWuliaoCzDao, MesWuliaoCz> {
@@ -57,6 +64,55 @@ public class MesWuliaoCzService extends CrudService<MesWuliaoCzDao, MesWuliaoCz>
 	public void save(MesWuliaoCz mesWuliaoCz) {
 		super.save(mesWuliaoCz);
 	}
+
+	/**
+	 * 导入数据
+	 * @param file 导入的数据文件
+	 */
+	@Transactional
+	public String importData(MultipartFile file) {
+		if (file == null){
+			throw new ServiceException(text("请选择导入的数据文件!"));
+		}
+		int successNum = 0; int failureNum = 0;
+		StringBuilder successMsg = new StringBuilder();
+		StringBuilder failureMsg = new StringBuilder();
+		try(ExcelImport ei = new ExcelImport(file, 2, 0)){
+			List<MesWuliaoCz> list = ei.getDataList(MesWuliaoCz.class);
+			for (MesWuliaoCz mesWuliaoCz : list) {
+				try{
+					ValidatorUtils.validateWithException(mesWuliaoCz);
+					this.save(mesWuliaoCz);
+					successNum++;
+					successMsg.append("<br/>" + successNum + "、编号 " + mesWuliaoCz.getId() + " 导入成功");
+				} catch (Exception e) {
+					failureNum++;
+					String msg = "<br/>" + failureNum + "、编号 " + mesWuliaoCz.getId() + " 导入失败:";
+					if (e instanceof ConstraintViolationException){
+						ConstraintViolationException cve = (ConstraintViolationException)e;
+						for (ConstraintViolation<?> violation : cve.getConstraintViolations()) {
+							msg += Global.getText(violation.getMessage()) + " ("+violation.getPropertyPath()+")";
+						}
+					}else{
+						msg += e.getMessage();
+					}
+					failureMsg.append(msg);
+					logger.error(msg, e);
+				}
+			}
+		} catch (Exception e) {
+			logger.error(e.getMessage(), e);
+			failureMsg.append(e.getMessage());
+			return failureMsg.toString();
+		}
+		if (failureNum > 0) {
+			failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
+			throw new ServiceException(failureMsg.toString());
+		}else{
+			successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
+		}
+		return successMsg.toString();
+	}
 	
 	/**
 	 * 更新状态

+ 98 - 23
src/main/java/com/jeesite/modules/mes/web/MesWuliaoCzController.java

@@ -15,17 +15,20 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.ResponseBody;
 
 import com.jeesite.common.config.Global;
+import com.jeesite.common.collect.ListUtils;
 import com.jeesite.common.entity.Page;
-import com.jeesite.common.lang.StringUtils;
+import com.jeesite.common.lang.DateUtils;
+import com.jeesite.common.utils.excel.ExcelExport;
+import com.jeesite.common.utils.excel.annotation.ExcelField.Type;
+import org.springframework.web.multipart.MultipartFile;
 import com.jeesite.common.web.BaseController;
 import com.jeesite.modules.mes.entity.MesWuliaoCz;
-import com.jeesite.modules.mes.resp.CommonResp;
 import com.jeesite.modules.mes.service.MesWuliaoCzService;
 
 /**
  * 称重数据表Controller
  * @author sxl
- * @version 2026-09-28
+ * @version 2026-09-29
  */
 @Controller
 @RequestMapping(value = "${adminPath}/mes/mesWuliaoCz")
@@ -84,48 +87,119 @@ public class MesWuliaoCzController extends BaseController {
 		mesWuliaoCzService.save(mesWuliaoCz);
 		return renderResult(Global.TRUE, text("保存称重数据表成功!"));
 	}
-	
+
 	/**
-	 * 删除数据
+	 * 导出数据
+	 */
+	@RequiresPermissions("mes:mesWuliaoCz:view")
+	@RequestMapping(value = "exportData")
+	public void exportData(MesWuliaoCz mesWuliaoCz, HttpServletResponse response) {
+		List<MesWuliaoCz> list = mesWuliaoCzService.findList(mesWuliaoCz);
+		for (MesWuliaoCz item : list) {
+			String hlBl = item.getHlBl();
+			if (com.jeesite.common.lang.StringUtils.isBlank(hlBl)) {
+				continue;
+			}
+			try {
+				double num = Double.parseDouble(hlBl.trim());
+				String pct = String.format("%.2f", num * 100).replaceAll("0+$", "").replaceAll("\\.$", "") + "%";
+				item.setHlBl(pct);
+			} catch (NumberFormatException ignored) {
+				// 非数字原样导出
+			}
+		}
+		String fileName = "称重数据表" + DateUtils.getDate("yyyyMMddHHmmss") + ".xlsx";
+		try(ExcelExport ee = new ExcelExport("称重数据表", MesWuliaoCz.class)){
+			ee.setDataList(list).write(response, fileName);
+		}
+	}
+
+	/**
+	 * 下载模板
+	 */
+	@RequiresPermissions("mes:mesWuliaoCz:view")
+	@RequestMapping(value = "importTemplate")
+	public void importTemplate(HttpServletResponse response) {
+		MesWuliaoCz mesWuliaoCz = new MesWuliaoCz();
+		List<MesWuliaoCz> list = ListUtils.newArrayList(mesWuliaoCz);
+		String fileName = "称重数据表模板.xlsx";
+		try(ExcelExport ee = new ExcelExport("称重数据表", MesWuliaoCz.class, Type.IMPORT)){
+			ee.setDataList(list).write(response, fileName);
+		}
+	}
+
+	/**
+	 * 导入数据
 	 */
-	@RequiresPermissions("mes:mesWuliaoCz:edit")
-	@RequestMapping(value = "delete")
 	@ResponseBody
-	public String delete(MesWuliaoCz mesWuliaoCz) {
-		mesWuliaoCzService.delete(mesWuliaoCz);
-		return renderResult(Global.TRUE, text("删除称重数据表成功!"));
+	@RequiresPermissions("mes:mesWuliaoCz:edit")
+	@PostMapping(value = "importData")
+	public String importData(MultipartFile file) {
+		try {
+			String message = mesWuliaoCzService.importData(file);
+			return renderResult(Global.TRUE, "posfull:"+message);
+		} catch (Exception ex) {
+			return renderResult(Global.FALSE, "posfull:"+ex.getMessage());
+		}
 	}
 
 	/**
 	 * 客户端称重提交接口(无需登录)
 	 * POST ${adminPath}/mes/mesWuliaoCz/pcsubmit
-	 * 参数:lc炉次、bc班次、type物料类型、zl重量、ucode操作人(可选)
+	 * 参数:lc炉次、bc班次、yzl原铝锭、hzl回炉料、qpZl去皮、hlBl回炉料比例(可选,不传则服务端计算)、ucode操作人(可选)
+	 * 公式:hlBl = hzl / (yzl + hzl - qpZl),保留两位小数
 	 */
 	@PostMapping(value = "pcsubmit")
 	@ResponseBody
-	public CommonResp<String> pcsubmit(HttpServletRequest request) {
-		CommonResp<String> resp = new CommonResp<>();
+	public com.jeesite.modules.mes.resp.CommonResp<String> pcsubmit(HttpServletRequest request) {
+		com.jeesite.modules.mes.resp.CommonResp<String> resp = new com.jeesite.modules.mes.resp.CommonResp<>();
 		String lc = request.getParameter("lc");
 		String bc = request.getParameter("bc");
-		String type = request.getParameter("type");
-		String zl = request.getParameter("zl");
+		String yzl = request.getParameter("yzl");
+		String hzl = request.getParameter("hzl");
+		String qpZl = request.getParameter("qpZl");
+		String hlBl = request.getParameter("hlBl");
 		String ucode = request.getParameter("ucode");
 
-		if (StringUtils.isBlank(lc) || StringUtils.isBlank(bc)
-				|| StringUtils.isBlank(type) || StringUtils.isBlank(zl)) {
+		if (com.jeesite.common.lang.StringUtils.isBlank(lc)
+				|| com.jeesite.common.lang.StringUtils.isBlank(bc)) {
 			resp.setResult(Global.FALSE);
-			resp.setMessage("参数错误:炉次、班次、物料类型、重量不能为空");
+			resp.setMessage("参数错误:炉次、班次不能为空");
 			return resp;
 		}
+		if (com.jeesite.common.lang.StringUtils.isBlank(yzl)) {
+			yzl = "0.00";
+		}
+		if (com.jeesite.common.lang.StringUtils.isBlank(hzl)) {
+			hzl = "0.00";
+		}
+		if (com.jeesite.common.lang.StringUtils.isBlank(qpZl)) {
+			qpZl = "0.00";
+		}
 
 		try {
+			double y = Double.parseDouble(yzl.trim());
+			double h = Double.parseDouble(hzl.trim());
+			double qp = Double.parseDouble(qpZl.trim());
+			double denom = y + h - qp;
+			if (com.jeesite.common.lang.StringUtils.isBlank(hlBl)) {
+				if (Math.abs(denom) < 1e-9) {
+					resp.setResult(Global.FALSE);
+					resp.setMessage("计算回炉料比例失败:原铝锭+回炉料-去皮重量不能为0");
+					return resp;
+				}
+				hlBl = String.format("%.2f", h / denom);
+			}
+
 			MesWuliaoCz entity = new MesWuliaoCz();
 			entity.setIsNewRecord(true);
 			entity.setLc(lc.trim());
 			entity.setBc(bc.trim());
-			entity.setType(type.trim());
-			entity.setZl(zl.trim());
-			if (StringUtils.isNotBlank(ucode)) {
+			entity.setYzl(String.format("%.2f", y));
+			entity.setHzl(String.format("%.2f", h));
+			entity.setQpZl(String.format("%.2f", qp));
+			entity.setHlBl(hlBl.trim());
+			if (com.jeesite.common.lang.StringUtils.isNotBlank(ucode)) {
 				entity.setRemarks(ucode.trim());
 			}
 			mesWuliaoCzService.save(entity);
@@ -133,6 +207,9 @@ public class MesWuliaoCzController extends BaseController {
 			resp.setResult(Global.TRUE);
 			resp.setMessage("称重提交成功");
 			resp.setData(entity.getId());
+		} catch (NumberFormatException e) {
+			resp.setResult(Global.FALSE);
+			resp.setMessage("重量参数格式错误");
 		} catch (Exception e) {
 			logger.error("称重提交失败", e);
 			resp.setResult(Global.FALSE);
@@ -143,8 +220,6 @@ public class MesWuliaoCzController extends BaseController {
 
 	/**
 	 * 客户端称重记录分页查询(无需登录)
-	 * POST ${adminPath}/mes/mesWuliaoCz/pclist
-	 * 参数:pageNo、pageSize、lc、bc、type(均可选)
 	 */
 	@PostMapping(value = "pclist")
 	@ResponseBody

+ 22 - 4
src/main/resources/views/modules/mes/mesWuliaoCzForm.html

@@ -35,18 +35,36 @@
 					<div class="col-xs-6">
 						<div class="form-group">
 							<label class="control-label col-sm-4" title="">
-								<span class="required hide">*</span> ${text('物料类型')}:<i class="fa icon-question hide"></i></label>
+								<span class="required hide">*</span> ${text('原铝锭重量')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-8">
-								<#form:input path="type" maxlength="64" class="form-control"/>
+								<#form:input path="yzl" maxlength="64" class="form-control"/>
 							</div>
 						</div>
 					</div>
 					<div class="col-xs-6">
 						<div class="form-group">
 							<label class="control-label col-sm-4" title="">
-								<span class="required hide">*</span> ${text('重量')}:<i class="fa icon-question hide"></i></label>
+								<span class="required hide">*</span> ${text('回炉料重量')}:<i class="fa icon-question hide"></i></label>
 							<div class="col-sm-8">
-								<#form:input path="zl" maxlength="64" class="form-control"/>
+								<#form:input path="hzl" maxlength="64" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('去皮重量')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="qpZl" maxlength="64" class="form-control"/>
+							</div>
+						</div>
+					</div>
+					<div class="col-xs-6">
+						<div class="form-group">
+							<label class="control-label col-sm-4" title="">
+								<span class="required hide">*</span> ${text('回炉料占比')}:<i class="fa icon-question hide"></i></label>
+							<div class="col-sm-8">
+								<#form:input path="hlBl" maxlength="64" class="form-control"/>
 							</div>
 						</div>
 					</div>

+ 99 - 15
src/main/resources/views/modules/mes/mesWuliaoCzList.html

@@ -7,8 +7,9 @@
 			</div>
 			<div class="box-tools pull-right">
 				<a href="#" class="btn btn-default" id="btnSearch" title="${text('查询')}"><i class="fa fa-filter"></i> ${text('查询')}</a>
+				<a href="#" class="btn btn-default" id="btnExport"><i class="glyphicon glyphicon-export"></i> 导出</a>
 				<% if(hasPermi('mes:mesWuliaoCz:edit')){ %>
-					<a href="${ctx}/mes/mesWuliaoCz/form" class="btn btn-default btnTool" title="${text('新增称重数据表')}"><i class="fa fa-plus"></i> ${text('新增')}</a>
+						<a href="#" class="btn btn-default" id="btnImport"><i class="glyphicon glyphicon-import"></i> 导入</a>
 				<% } %>
 				<a href="#" class="btn btn-default" id="btnSetting" title="${text('设置')}"><i class="fa fa-navicon"></i></a>
 			</div>
@@ -29,15 +30,37 @@
 					</div>
 				</div>
 				<div class="form-group">
-					<label class="control-label">${text('物料类型')}:</label>
+					<label class="control-label">${text('原铝锭重量')}:</label>
 					<div class="control-inline">
-						<#form:input path="type" maxlength="64" class="form-control width-120"/>
+						<#form:input path="yzl" maxlength="64" class="form-control width-120"/>
 					</div>
 				</div>
 				<div class="form-group">
-					<label class="control-label">${text('重量')}:</label>
+					<label class="control-label">${text('回炉料重量')}:</label>
 					<div class="control-inline">
-						<#form:input path="zl" maxlength="64" class="form-control width-120"/>
+						<#form:input path="hzl" maxlength="64" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('去皮重量')}:</label>
+					<div class="control-inline">
+						<#form:input path="qpZl" maxlength="64" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('回炉料占比')}:</label>
+					<div class="control-inline">
+						<#form:input path="hlBl" maxlength="64" class="form-control width-120"/>
+					</div>
+				</div>
+				<div class="form-group">
+					<label class="control-label">${text('创建时间')}:</label>
+					<div class="control-inline">
+						<#form:input path="createDate_gte" readonly="true" maxlength="20" class="form-control laydate width-datetime"
+							dataFormat="datetime" data-type="datetime" data-format="yyyy-MM-dd HH:mm" data-done="createDate_lte.click()"/>
+						&nbsp;-&nbsp;
+						<#form:input path="createDate_lte" readonly="true" maxlength="20" class="form-control laydate width-datetime"
+							dataFormat="datetime" data-type="datetime" data-format="yyyy-MM-dd HH:mm"/>
 					</div>
 				</div>
 				<div class="form-group">
@@ -58,22 +81,83 @@ $('#dataGrid').dataGrid({
 	columnModel: [
 		{header:'${text("炉次")}', name:'lc', index:'a.lc', width:150, align:"center"},
 		{header:'${text("班次")}', name:'bc', index:'a.bc', width:150, align:"center"},
-		{header:'${text("物料类型")}', name:'type', index:'a.type', width:150, align:"center"},
-		{header:'${text("重量")}', name:'zl', index:'a.zl', width:150, align:"center", formatter: function(val, obj, row, act){
+		{header:'${text("原铝锭重量")}', name:'yzl', index:'a.y_zl', width:150, align:"center", formatter: function(val, obj, row, act){
 			return (val == null || val === '') ? '' : (val + ' kg');
 		}},
-		{header:'${text("创建时间")}', name:'createDate', index:'a.create_date', width:150, align:"center"},
-		{header:'${text("操作")}', name:'actions', width:120, align:"center", formatter: function(val, obj, row, act){
-			var actions = [];
-			//<% if(hasPermi('mes:mesWuliaoCz:edit')){ %>
-				actions.push('<a href="${ctx}/mes/mesWuliaoCz/delete?id='+row.id+'" class="btnList" title="${text("删除称重数据表")}" data-confirm="${text("确认要删除该称重数据表吗?")}"><i class="fa fa-trash-o"></i></a>&nbsp;');
-			//<% } %>
-			return actions.join('');
-		}}
+		{header:'${text("回炉料重量")}', name:'hzl', index:'a.h_zl', width:150, align:"center", formatter: function(val, obj, row, act){
+			return (val == null || val === '') ? '' : (val + ' kg');
+		}},
+		{header:'${text("去皮重量")}', name:'qpZl', index:'a.qp_zl', width:150, align:"center", formatter: function(val, obj, row, act){
+			return (val == null || val === '') ? '' : (val + ' kg');
+		}},
+		{header:'${text("回炉料占比")}', name:'hlBl', index:'a.hl_bl', width:150, align:"center", formatter: function(val, obj, row, act){
+			if (val == null || val === '') {
+				return '';
+			}
+			var num = parseFloat(val);
+			if (isNaN(num)) {
+				return val;
+			}
+			return (num * 100).toFixed(2).replace(/\.?0+$/, '') + '%';
+		}},
+		{header:'${text("创建时间")}', name:'createDate', index:'a.create_date', width:150, align:"center"}
 	],
 	// 加载成功后执行事件
 	ajaxSuccess: function(data){
 		
 	}
 });
+</script><script>
+$('#btnExport').click(function(){
+	js.ajaxSubmitForm($('#searchForm'), {
+		url:'${ctx}/mes/mesWuliaoCz/exportData',
+		downloadFile:true
+	});
+});
+$('#btnImport').click(function(){
+	js.layer.open({
+		type: 1,
+		area: ['400px'],
+		title: '${text("导入称重数据表")}',
+		resize: false,
+		scrollbar: true,
+		content: js.template('importTpl'),
+		btn: ['<i class="fa fa-check"></i> ${text("导入")}',
+			'<i class="fa fa-remove"></i> ${text("关闭")}'],
+		btn1: function(index, layero){
+			var form = {
+				inputForm: layero.find('#inputForm'),
+				file: layero.find('#file').val()
+			};
+		    if (form.file == '' || (!js.endWith(form.file, '.xls') && !js.endWith(form.file, '.xlsx'))){
+		    	js.showMessage("${text('文件不正确,请选择后缀为“xls”或“xlsx”的文件。')}", null, 'warning');
+		        return false;
+		    }
+			js.ajaxSubmitForm(form.inputForm, function(data){
+				js.showMessage(data.message);
+				if(data.result == Global.TRUE){
+					js.layer.closeAll();
+				}
+				page();
+			}, "json");
+			return true;
+		}
+	});
+});
 </script>
+<script id="importTpl" type="text/template">//<!--
+<form id="inputForm" action="${ctx}/mes/mesWuliaoCz/importData" method="post" enctype="multipart/form-data"
+	class="form-horizontal mt20 mb10" style="overflow:auto;max-height:200px;">
+	<div class="row">
+		<div class="col-xs-12 col-xs-offset-1">
+			<input type="file" id="file" name="file" class="form-file"/>
+			<div class="mt10 pt5" style="color:red">
+				${text('提示:仅允许导入“xls”或“xlsx”格式文件!')}
+			</div>
+			<div class="mt10 pt5">
+				<a href="${ctx}/mes/mesWuliaoCz/importTemplate" class="btn btn-default btn-xs"><i class="fa fa-file-excel-o"></i> ${text('下载模板')}</a>
+			</div>
+		</div>
+	</div>
+</form>
+//--></script>