From b306d1106b915bb13fd7a02217ae9c65de2fd03d Mon Sep 17 00:00:00 2001
From: ws183 <1143478319@qq.com>
Date: 星期一, 28 四月 2025 17:19:52 +0800
Subject: [PATCH] 新增质检页面附件上传

---
 igds-core/src/main/java/com/ld/igds/m/view/QualityManager.view.xml        |  223 +++++++++++---
 igds-core/src/main/java/com/ld/igds/m/view/QualityManager.js              |   19 +
 igds-core/src/main/java/com/ld/igds/m/view/QualityManagerPR.java          |   78 ++++-
 igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java |   46 +++
 igds-core/src/main/java/com/ld/igds/file/MyUploadProcessor.java           |   40 ++
 igds-core/src/main/java/com/ld/igds/view/service/HDepotStoreService.java  |   22 +
 igds-core/src/main/java/com/ld/igds/check/dto/CheckItemData.java          |    5 
 igds-basic/src/main/java/com/ld/igds/basic/manager/FileManager.java       |   13 
 igds-core/src/main/java/com/ld/igds/m/ReportBill.java                     |   69 ++++
 igds-core/src/main/java/com/ld/igds/m/ReportManage.java                   |  217 ++++++++++++++
 igds-core/src/main/java/com/ld/igds/check/mapper/CheckStandardMapper.java |    8 
 igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java  |   88 +++++
 igds-core/src/main/resources/mapper/CheckStandardMapper.xml               |   11 
 igds-core/src/main/java/com/ld/igds/models/MQuality.java                  |   15 +
 14 files changed, 782 insertions(+), 72 deletions(-)

diff --git a/igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java b/igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java
index 1ce6b66..95d231d 100644
--- a/igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java
+++ b/igds-basic/src/main/java/com/ld/igds/basic/controller/FileController.java
@@ -5,6 +5,8 @@
 
 import lombok.extern.slf4j.Slf4j;
 
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.lang.time.DateUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -13,11 +15,13 @@
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
 import java.io.*;
 import java.net.URLEncoder;
+import java.util.Date;
 
 /**
  * 鏂囦欢涓婁紶鎺ュ彛
@@ -170,4 +174,46 @@
 		}
 	}
 
+	/**
+	 * PDF鏂囦欢棰勮
+	 * @param response
+	 */
+	@RequestMapping("/show-pdf")
+	public void showFile(String fileTime, String fileName, String filePathType, HttpServletResponse response) throws Exception {
+
+		if (!fileName.endsWith(".pdf")) {
+			return;
+		}
+		Date time = DateUtils.parseDate(fileTime, new String[]{"yy-MM-dd HH:mm:ss"});
+
+		String filePath = fileManager.getPathByType(filePathType, time);
+		if(StringUtils.isEmpty(filePath)){
+			return;
+		}
+
+		File file = new File(filePath, fileName);
+		try {
+			response.setHeader("Content-Disposition", "inline; filename*=UTF-8''" + URLEncoder.encode(file.getName(), "UTF-8"));
+		} catch (UnsupportedEncodingException e) {
+			e.printStackTrace();
+		}
+
+		ServletOutputStream os = null;
+		try {
+			os = response.getOutputStream();
+			os.write(FileUtils.readFileToByteArray(file));
+			os.flush();
+		} catch (IOException e) {
+			e.printStackTrace();
+		} finally {
+			if (os != null) {
+				try {
+					os.close();
+				} catch (IOException e) {
+					e.printStackTrace();
+				}
+			}
+		}
+	}
+
 }
diff --git a/igds-basic/src/main/java/com/ld/igds/basic/manager/FileManager.java b/igds-basic/src/main/java/com/ld/igds/basic/manager/FileManager.java
index 671ff63..2ac1da0 100644
--- a/igds-basic/src/main/java/com/ld/igds/basic/manager/FileManager.java
+++ b/igds-basic/src/main/java/com/ld/igds/basic/manager/FileManager.java
@@ -177,4 +177,17 @@
 		
 		return readFile.getFile().getAbsolutePath();
 	}
+
+    /**
+     * 鏍规嵁涓嶅悓鐨勭被鍨嬭幏鍙栨枃浠惰矾寰�
+     * @param filePathType
+     * @param time
+     * @return
+     */
+    public String getPathByType(String filePathType, Date time) {
+        if("common".equals(filePathType)){
+            return fileService.getCommonFilePath(time);
+        }
+        return null;
+    }
 }
diff --git a/igds-core/src/main/java/com/ld/igds/check/dto/CheckItemData.java b/igds-core/src/main/java/com/ld/igds/check/dto/CheckItemData.java
index df34e09..3a41c1e 100644
--- a/igds-core/src/main/java/com/ld/igds/check/dto/CheckItemData.java
+++ b/igds-core/src/main/java/com/ld/igds/check/dto/CheckItemData.java
@@ -25,4 +25,9 @@
 	//杩愮畻绗﹀彿鍊硷紝鍙仛椤甸潰鏄剧ず鐢�
 	private String operaSymbolValue;
 
+	private double perWet;
+
+	private double perImpurity;
+
+
 }
diff --git a/igds-core/src/main/java/com/ld/igds/check/mapper/CheckStandardMapper.java b/igds-core/src/main/java/com/ld/igds/check/mapper/CheckStandardMapper.java
index 153cc2e..c62a8d9 100644
--- a/igds-core/src/main/java/com/ld/igds/check/mapper/CheckStandardMapper.java
+++ b/igds-core/src/main/java/com/ld/igds/check/mapper/CheckStandardMapper.java
@@ -62,4 +62,12 @@
      */
     int delCheckItemByParam(@Param("data") CheckItemData item);
 
+    /**
+     * 鑾峰彇鎸囧畾鐨勫寲楠岄」
+     *
+     * @param item 鏌ヨ鏉′欢
+     * @return
+     */
+    List<CheckItemData> getCheckItemByParam(@Param("data") CheckItemData item);
+
 }
diff --git a/igds-core/src/main/java/com/ld/igds/file/MyUploadProcessor.java b/igds-core/src/main/java/com/ld/igds/file/MyUploadProcessor.java
index f86a499..41919a7 100644
--- a/igds-core/src/main/java/com/ld/igds/file/MyUploadProcessor.java
+++ b/igds-core/src/main/java/com/ld/igds/file/MyUploadProcessor.java
@@ -56,4 +56,44 @@
 		return newFileName;
 	}
 
+	/**
+	 * 涓婁紶鍏叡鏂囦欢锛屽鍚堝悓銆佽鍒掔瓑
+	 * myUploadProcessor#uploadCommonFile
+	 * @param file
+	 * @param parameter
+	 * @return
+	 */
+	@FileResolver
+	public String uploadCommonFile(UploadFile file, Map<String, Object> parameter) {
+
+		String fileId = null;
+		try {
+
+			String oldFileName = (String)parameter.get("name");
+			if(oldFileName == null){
+				//涓婁紶澶辫触锛氶檮浠跺悕绉颁负绌恒��
+				return "10";
+			}
+			//鍒ゆ柇oldFileName鍚庣紑鍚嶆槸鍚︿负pdf
+			if(!oldFileName.endsWith(".pdf")) {
+				//涓婁紶澶辫触锛氶檮浠朵笉鏄痯df鏂囦欢銆�
+				return "20";
+			}
+			String basePath = fileService.getCommonFilePath(null);
+
+			fileId = ContextUtil.getTimeId(1000)
+					+ file.getFileName().substring(
+					file.getFileName().lastIndexOf("."));
+
+			file.transferTo(new File(basePath + fileId));
+
+		} catch (IllegalStateException e) {
+			e.printStackTrace();
+		} catch (IOException e) {
+			e.printStackTrace();
+		}
+
+		return fileId;
+	}
+
 }
diff --git a/igds-core/src/main/java/com/ld/igds/m/ReportBill.java b/igds-core/src/main/java/com/ld/igds/m/ReportBill.java
new file mode 100644
index 0000000..718db0e
--- /dev/null
+++ b/igds-core/src/main/java/com/ld/igds/m/ReportBill.java
@@ -0,0 +1,69 @@
+package com.ld.igds.m;
+
+/**
+ * @Description 璐ㄦ鎶ュ憡鍗曟嵁妯℃澘-鍖呭惈鏁翠粨鍜屽崟杞�
+ * @Author CZT
+ * @Date 2024/4/29 9:06
+ */
+public class ReportBill {
+
+    /*----------鏁翠粨璐ㄦ----------*/
+
+    //鏁翠粨璐ㄦ鎶ュ憡鍗�-灏忛害
+    public static String QUALITY_111 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(灏忛害)</title><style>body{text-align:center;padding:10px}.tit{margin:10px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:33%;float:left;padding-bottom:10px}</style></head><body><h1 class='tit'>璐ㄦ鎶ュ憡(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'rowspan=\"5\"`width`=\"22%\">鏍峰搧淇℃伅</td><td width='14%'>鍗曚綅鍚嶇О</td><td colspan='2'`width`='27%'>dwmc</td><td width='13%'>搴撳尯鍚嶇О</td><td colspan='2'`width`='26%'>deptName</td></tr><tr><td width='14%'>浠撴埧鍚嶇О</td><td width='13%'>buildingName</td><td width='14%'>璐т綅鍚嶇О</td><td width='13%'>depotName</td><td width='13%'>淇濈鍛�</td><td width='13%'>storeKeeperName</td></tr><tr><td>鍝佺</td><td>foodVariety</td><td>鎬ц川</td><td>foodType</td><td>浠撳唴绮鏁伴噺</td><td>storageReal鍚�</td></tr><tr><td>浜у湴</td><td>foodLocation</td><td>绛夌骇</td><td>foodLevel</td><td>鐢熶骇骞撮檺</td><td>foodYear</td></tr><tr><td>鏍峰搧鏁伴噺</td><td>checkNum KG</td><td>鏍峰搧浠h〃鏁伴噺</td><td>foodNumber鍚�</td><td colspan=\"2\"></td></tr><tr><td colspan='2'>妫�楠屽崟浣�</td><td colspan=\"6\">unit</td></tr><tr><td colspan='2'rowspan=\"2\">璐ㄦ浜哄憳</td><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td colspan=\"2\"></td></tr><tr><td>鎵︽牱鏃堕棿</td><td>sampleTime</td><td>妫�楠屾椂闂�</td><td>checkTime</td><td>鎶ュ憡鍑哄叿鏃堕棿</td><td>bgcjsj</td></tr><tr><td rowspan=\"6\">璐ㄦ缁撴灉</td><td rowspan=\"3\">璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>瀹归噸(g/L)</td><td>C03_VAL</td><td>绛夌骇</td><td>foodLevel</td></tr><tr><td>鑹叉辰姘斿懗</td><td>C06_VAL</td><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td></tr><tr><td>涓嶅畬鍠勭矑(%)</td><td>C04_VAL</td><td>鐢熻娊绮�(%)</td><td>C35_VAL</td><td>鐢熼湁绮�(%)</td><td>C29_VAL</td></tr><tr><td>鍌ㄥ瓨鍝佽川妫�楠�</td><td>闈㈢瓔鍚告按閲�(%)</td><td>C08_VAL</td><td>鍝佸皾鍒嗗��</td><td>C07_VAL</td><td>鑹叉辰姘斿懗</td><td>C06_VAL</td></tr><tr><td rowspan=\"2\">椋熷搧瀹夊叏妫�楠�</td><td>鍛曞悙姣�(mg/kg)</td><td>C27_VAL</td><td>鐜夌背璧ら湁鐑叜(渭g/kg)</td><td>C31_VAL</td><td>閾�(mg/kg)</td><td>C32_VAL</td></tr><tr><td>闀�(mg/kg)</td><td>C25_VAL</td><td>姹�(渭g/kg)</td><td>C33_VAL</td><td>鏃犳満鐮�(mg/kg)</td><td>C30_VAL</td></tr><tr><td colspan=\"2\">澶囨敞</td><td colspan=\"6\">remark</td></tr></table><div class='div-tit'></div></body></html>";
+
+
+    //鏁翠粨璐ㄦ鎶ュ憡鍗�-鐜夌背
+    public static String QUALITY_112 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(鐜夌背)</title><style>body{text-align:center;padding:10px}.tit{margin:10px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>璐ㄦ鎶ュ憡(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'rowspan=\"5\"`width`=\"22%\">鏍峰搧淇℃伅</td><td width='14%'>鍗曚綅鍚嶇О</td><td colspan='2'`width`='27%'>dwmc</td><td width='13%'>搴撳尯鍚嶇О</td><td colspan='2'`width`='26%'>deptName</td></tr><tr><td width='14%'>浠撴埧鍚嶇О</td><td width='13%'>buildingName</td><td width='14%'>璐т綅鍚嶇О</td><td width='13%'>depotName</td><td width='13%'>淇濈鍛�</td><td width='13%'>storeKeeperName</td></tr><tr><td>鍝佺</td><td>foodVariety</td><td>鎬ц川</td><td>foodType</td><td>浠撳唴绮鏁伴噺</td><td>storageReal鍚�</td></tr><tr><td>浜у湴</td><td>foodLocation</td><td>绛夌骇</td><td>foodLevel</td><td>鐢熶骇骞撮檺</td><td>foodYear</td></tr><tr><td>鏍峰搧鏁伴噺</td><td>checkNum KG</td><td>鏍峰搧浠h〃鏁伴噺</td><td>foodNumber鍚�</td><td colspan=\"2\"></td></tr><tr><td colspan='2'>妫�楠屽崟浣�</td><td colspan=\"6\">unit</td></tr><tr><td colspan='2'rowspan=\"2\">璐ㄦ浜哄憳</td><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td colspan=\"2\"></td></tr><tr><td>鎵︽牱鏃堕棿</td><td>sampleTime</td><td>妫�楠屾椂闂�</td><td>checkTime</td><td>鎶ュ憡鍑哄叿鏃堕棿</td><td>bgcjsj</td></tr><tr><td rowspan=\"6\">璐ㄦ缁撴灉</td><td rowspan=\"3\">璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>瀹归噸(g/L)</td><td>C03_VAL</td><td>绛夌骇</td><td>foodLevel</td></tr><tr><td>鑹叉辰姘斿懗</td><td>C06_VAL</td><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td></tr><tr><td>涓嶅畬鍠勭矑(%)</td><td>C04_VAL</td><td>鐢熼湁绮�(%)</td><td>C29_VAL</td><td>闇夊彉绮�(%)</td><td>C15_VAL</td></tr><tr><td>鍌ㄥ瓨鍝佽川妫�楠�</td><td>鑴傝偑閰稿��(mgKOH/100g)</td><td>C14_VAL</td><td>鍝佸皾鍒嗗��</td><td>C15_VAL</td><td>鑹叉辰姘斿懗</td><td>C06_VAL</td></tr><tr><td rowspan=\"2\">椋熷搧瀹夊叏妫�楠�</td><td>鍛曞悙姣�(mg/kg)</td><td>C27_VAL</td><td>鐜夌背璧ら湁鐑叜(渭g/kg)</td><td>C31_VAL</td><td>閾�(mg/kg)</td><td>C32_VAL</td></tr><tr><td>闀�(mg/kg)</td><td>C25_VAL</td><td>姹�(渭g/kg)</td><td>C33_VAL</td><td>鏃犳満鐮�(mg/kg)</td><td>C30_VAL</td></tr><tr><td colspan=\"2\">澶囨敞</td><td colspan=\"6\">remark</td></tr></table><div class='div-tit'></div></body></html>";
+
+
+    //鏁翠粨璐ㄦ鎶ュ憡鍗�-閫傜敤浜庣ɑ璋枫�佸ぇ绫�
+    public static String QUALITY_113 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(绋昏胺)</title><style>body{text-align:center;padding:10px}.tit{margin:10px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>璐ㄦ鎶ュ憡(foodVariety)</h1><div class='div-tit'>缂栫爜锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'rowspan=\"5\"`width`=\"22%\">鏍峰搧淇℃伅</td><td width='14%'>鍗曚綅鍚嶇О</td><td colspan='2'`width`='27%'>dwmc</td><td width='13%'>搴撳尯鍚嶇О</td><td colspan='2'`width`='26%'>deptName</td></tr><tr><td width='14%'>浠撴埧鍚嶇О</td><td width='13%'>buildingName</td><td width='14%'>璐т綅鍚嶇О</td><td width='13%'>depotName</td><td width='13%'>淇濈鍛�</td><td width='13%'>storeKeeperName</td></tr><tr><td>鍝佺</td><td>foodVariety</td><td>鎬ц川</td><td>foodType</td><td>浠撳唴绮鏁伴噺</td><td>storageReal鍚�</td></tr><tr><td>浜у湴</td><td>foodLocation</td><td>绛夌骇</td><td>foodLevel</td><td>鐢熶骇骞撮檺</td><td>foodYear</td></tr><tr><td>鏍峰搧鏁伴噺</td><td>checkNum KG</td><td>鏍峰搧浠h〃鏁伴噺</td><td>foodNumber鍚�</td><td colspan=\"2\"></td></tr><tr><td colspan='2'>妫�楠屽崟浣�</td><td colspan=\"6\">unit</td></tr><tr><td colspan='2'rowspan=\"2\">璐ㄦ浜哄憳</td><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td colspan=\"2\"></td></tr><tr><td>鎵︽牱鏃堕棿</td><td>sampleTime</td><td>妫�楠屾椂闂�</td><td>checkTime</td><td>鎶ュ憡鍑哄叿鏃堕棿</td><td>bgcjsj</td></tr><tr><td rowspan=\"7\">璐ㄦ缁撴灉</td><td rowspan=\"4\">璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>鍑虹硻鐜�(%)</td><td>C09_VAL</td><td>绛夌骇</td><td>foodLevel</td></tr><tr><td>鏁寸簿绫崇巼(%)</td><td>C10_VAL</td><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td></tr><tr><td>榛勭矑绫�(%)</td><td>C11_VAL</td><td>璋峰绯欑背(%)</td><td>C12_VAL</td><td>鑹叉辰姘斿懗</td><td>C06_VAL</td></tr><tr><td>浜掓贩鐜�(%)</td><td>C13_VAL</td><td colspan=\"4\"></td></tr><tr><td>鍌ㄥ瓨鍝佽川妫�楠�</td><td>鑴傝偑閰稿��(mgKOH/100g)</td><td>C14_VAL</td><td>鍝佸皾鍒嗗��</td><td>C07_VAL</td><td>鑹叉辰姘斿懗</td><td>C06_VAL</td></tr><tr><td rowspan=\"2\">椋熷搧瀹夊叏妫�楠�</td><td>榛勬洸闇夋瘨绱燘1(渭g/kg)</td><td>C28_VAL</td><td>閾�(mg/kg)</td><td>C32_VAL</td><td>闀�(mg/kg)</td><td>C25_VAL</td></tr><tr><td>姹�(渭g/kg)</td><td>C34_VAL</td><td>鏃犳満鐮�(mg/kg)</td><td>C30_VAL</td><td colspan=\"2\"></td></tr><tr><td colspan=\"2\">澶囨敞</td><td colspan=\"6\">remark</td></tr></table><div class='div-tit'></div></body></html>";
+
+
+    //鏁翠粨璐ㄦ鎶ュ憡鍗�-澶ц眴
+    public static String QUALITY_141 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(澶ц眴)</title><style>body{text-align:center;padding:10px}.tit{margin:10px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>璐ㄦ鎶ュ憡(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'rowspan=\"5\"`width`=\"22%\">鏍峰搧淇℃伅</td><td width='14%'>鍗曚綅鍚嶇О</td><td colspan='2'`width`='27%'>dwmc</td><td width='13%'>搴撳尯鍚嶇О</td><td colspan='2'`width`='26%'>deptName</td></tr><tr><td width='14%'>浠撴埧鍚嶇О</td><td width='13%'>buildingName</td><td width='14%'>璐т綅鍚嶇О</td><td width='13%'>depotName</td><td width='13%'>淇濈鍛�</td><td width='13%'>storeKeeperName</td></tr><tr><td>鍝佺</td><td>foodVariety</td><td>鎬ц川</td><td>foodType</td><td>浠撳唴绮鏁伴噺</td><td>storageReal鍚�</td></tr><tr><td>浜у湴</td><td>foodLocation</td><td>绛夌骇</td><td>foodLevel</td><td>鐢熶骇骞撮檺</td><td>foodYear</td></tr><tr><td>鏍峰搧鏁伴噺</td><td>checkNum KG</td><td>鏍峰搧浠h〃鏁伴噺</td><td>foodNumber鍚�</td><td colspan=\"2\"></td></tr><tr><td colspan='2'>妫�楠屽崟浣�</td><td colspan=\"6\">unit</td></tr><tr><td colspan='2'rowspan=\"2\">璐ㄦ浜哄憳</td><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td colspan=\"2\"></td></tr><tr><td>鎵︽牱鏃堕棿</td><td>sampleTime</td><td>妫�楠屾椂闂�</td><td>checkTime</td><td>鎶ュ憡鍑哄叿鏃堕棿</td><td>bgcjsj</td></tr><tr><td rowspan=\"5\">璐ㄦ缁撴灉</td><td rowspan=\"3\">璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>瀹屾暣绮掔巼(%)</td><td>C16_VAL</td><td>绛夌骇</td><td>foodLevel</td></tr><tr><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td><td>鑹叉辰姘斿懗</td><td>C06_VAL</td></tr><tr><td>鎹熶激绮掔巼(%)</td><td>C17_VAL</td><td>鐑崯浼ょ矑(%)</td><td>C34_VAL</td><td colspan=\"2\"></td></tr><tr><td>鍌ㄥ瓨鍝佽川妫�楠�</td><td>绮楄剛鑲吀鍊�(mgKOH/100g)</td><td>C18_VAL</td><td>鍝佸皾鍒嗗��</td><td>C07_VAL</td><td>鑹叉辰姘斿懗</td><td>C06_VAL</td></tr><tr><td>椋熷搧瀹夊叏妫�楠�</td><td>閾�(mg/kg)</td><td>C32_VAL</td><td>闀�(mg/kg)</td><td>C25_VAL</td><td colspan=\"2\"></td></tr><tr><td colspan=\"2\">澶囨敞</td><td colspan=\"6\">remark</td></tr></table><div class='div-tit'></div></body></html>";
+
+
+    //鏁翠粨璐ㄦ鎶ュ憡鍗�-鑿滅苯娌广�佸ぇ璞嗘补銆佹绫芥补璐ㄦ鍗�
+    public static String QUALITY_212 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(鑿滅苯娌广�佸ぇ璞嗘补銆佹绫芥补)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:33%;float:left;padding-bottom:10px}</style></head><body><h1 class='tit'>璐ㄦ鎶ュ憡(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'rowspan='5'`width`='22%'>鏍峰搧淇℃伅</td><td width='14%'>鍗曚綅鍚嶇О</td><td colspan='2'`width`='27%'>dwmc</td><td width='13%'>搴撳尯鍚嶇О</td><td colspan='2'`width`='26%'>deptName</td></tr><tr><td width='14%'>浠撴埧鍚嶇О</td><td width='13%'>buildingName</td><td width='14%'>璐т綅鍚嶇О</td><td width='13%'>depotName</td><td width='13%'>淇濈鍛�</td><td width='13%'>storeKeeperName</td></tr><tr><td>鍝佺</td><td>foodVariety</td><td>鎬ц川</td><td>foodType</td><td>浠撳唴绮鏁伴噺</td><td>storageReal鍚�</td></tr><tr><td>浜у湴</td><td>foodLocation</td><td>绛夌骇</td><td>foodLevel</td><td>鐢熶骇骞撮檺</td><td>foodYear</td></tr><tr><td>鏍峰搧鏁伴噺</td><td>checkNum KG</td><td>鏍峰搧浠h〃鏁伴噺</td><td>foodNumber鍚�</td><td colspan='2'></td></tr><tr><td colspan='2'>妫�楠屽崟浣�</td><td colspan='6'>unit</td></tr><tr><td colspan='2'rowspan='2'>璐ㄦ浜哄憳</td><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td colspan='2'></td></tr><tr><td>鎵︽牱鏃堕棿</td><td>sampleTime</td><td>妫�楠屾椂闂�</td><td>checkTime</td><td>鎶ュ憡鍑哄叿鏃堕棿</td><td>bgcjsj</td></tr><tr><td colspan='2'rowspan='7'>璐ㄦ缁撴灉</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td colspan='2'></td></tr><tr><td>鑹叉辰</td><td>_01020302_VAL</td><td>姘斿懗婊嬪懗</td><td colspan='3'>_01020323_VAL</td></tr><tr><td>閫忔槑搴�</td><td>_01020301_VAL</td><td>姘村垎鍙婃尌鍙戠墿(%)</td><td>_01020324_VAL</td><td>涓嶆憾鎬ф潅璐�(%)</td><td>_01020325_VAL</td></tr><tr><td>閰镐环(KOH)(mg/g)</td><td>_0201033_VAL</td><td>杩囨哀鍖栧��(g/100g)</td><td>02010332_VAL</td><td>鍚殏閲�(%)</td><td>_02010307_VAL</td></tr><tr><td>鍔犵儹璇曢獙(280鈩�)</td><td>_01020326_VAL</td><td>鐑熺偣(鈩�)</td><td>_01020313_VAL</td><td>鍐峰喕璇曢獙</td><td>_01022327_VAL</td></tr><tr><td>婧跺墏娈嬬暀閲�(mg/kg)</td><td>_02030922_VAL</td><td>鑴傝偑閰稿��</td><td>_02010306_VAL</td><td>妫夌苯娌规鍑�</td><td>_02010302_VAL</td></tr><tr><td>娓哥妫夐厷(mg/kg)</td><td>_02030921_VAL</td><td>榛勬洸闇夋瘨绱燘1</td><td>_02030201_VAL</td><td colspan='2'></td></tr><tr><td colspan='2'>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+
+
+    /*----------鍏ュ簱璐ㄦ鍗�----------*/
+
+    //鍏ュ簱璐ㄦ鍗�-灏忛害璐ㄦ鍗�
+    public static String INOUT_CHECK_111 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>鍏ュ簱璐ㄦ鍗�(灏忛害)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:33%;float:left;padding-bottom:10px}</style></head><body><h1 class='tit'>鍏ュ簱璐ㄦ鍗�(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='10%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td colspan='2'width='30%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'colspan='2'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td colspan='2'>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'colspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='6'>妫�楠�</td><td rowspan='3'>璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td>瀹归噸(g/L)</td><td>C03_VAL</td></tr><tr><td>鑹叉辰姘斿懗</td><td>C06_VAL</td><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td></tr><tr><td>涓嶅畬鍠勭矑(%)</td><td>C04_VAL</td><td>鐢熻娊绮�(%)</td><td>C35_VAL</td><td>鐢熼湁绮�(%)</td><td>C29_VAL</td></tr><tr><td rowspan='2'>椋熷搧瀹夊叏妫�楠�</td><td>鍛曞悙姣掔礌(mg/kg)</td><td>C27_VAL</td><td>鐜夌背璧ら湁鐑叜(渭g/kg)</td><td>C31_VAL</td><td>閾�(mg/kg)</td><td>C32_VAL</td></tr><tr><td>闀�(mg/kg)</td><td>C25_VAL</td><td>姹�(渭g/kg)</td><td>C33_VAL</td><td>鏃犳満鐮�(mg/kg)</td><td>C30_VAL</td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td colspan='2'>checkTime</td></tr><tr><td colspan='2'>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+    //鍏ュ簱璐ㄦ鍗�-鐜夌背璐ㄦ鍗�
+    public static String INOUT_CHECK_112 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>鍏ュ簱璐ㄦ鍗�(鐜夌背)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>鍏ュ簱璐ㄦ鍗�(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='10%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td colspan='2'width='30%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'colspan='2'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td colspan='2'>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'colspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='6'>妫�楠�</td><td rowspan='3'>璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td>瀹归噸(g/L)</td><td>C03_VAL</td></tr><tr><td>鑹叉辰姘斿懗</td><td>C06_VAL</td><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td></tr><tr><td>涓嶅畬鍠勭矑(%)</td><td>C04_VAL</td><td>鐢熼湁绮�(%)</td><td>C29_VAL</td><td>闇夊彉绮�(%)</td><td>C15_VAL</td></tr><tr><td rowspan='2'>椋熷搧瀹夊叏妫�楠�</td><td>鍛曞悙姣�(mg/kg)</td><td>C27_VAL</td><td>鐜夌背璧ら湁鐑叜(渭g/kg)</td><td>C31_VAL</td><td>閾�(mg/kg)</td><td>C32_VAL</td></tr><tr><td>闀�(mg/kg)</td><td>C25_VAL</td><td>姹�(渭g/kg)</td><td>C33_VAL</td><td>鏃犳満鐮�(mg/kg)</td><td>C30_VAL</td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td colspan='2'>checkTime</td></tr><tr><td colspan='2'>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+    //鍏ュ簱璐ㄦ鍗�-绋昏胺璐ㄦ鍗�
+    public static String INOUT_CHECK_113 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>鍏ュ簱璐ㄦ鍗�(绋昏胺)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>鍏ュ簱璐ㄦ鍗�(foodVariety)</h1><div class='div-tit'>缂栫爜锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='10%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td colspan='2'width='30%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'colspan='2'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td colspan='2'>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'colspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='7'>妫�楠�</td><td rowspan='4'>璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td>鍑虹硻鐜�(%)</td><td>C09_VAL</td></tr><tr><td>鏁寸簿绫崇巼(%)</td><td>C10_VAL</td><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td></tr><tr><td>榛勭矑绫�(%)</td><td>C11_VAL</td><td>璋峰绯欑背(%)</td><td>C12_VAL</td><td>鑹叉辰銆佹皵鍛�</td><td>C06_VAL</td></tr><tr><td>浜掓贩鐜�(%)</td><td>C13_VAL</td><td colspan='4'></td></tr><tr><td rowspan='2'>椋熷搧瀹夊叏妫�楠�</td><td>榛勬洸闇夋瘨绱燘1(渭g/kg)</td><td>C28_VAL</td><td>閾�(mg/kg)</td><td>C32_VAL</td><td>闀�(mg/kg)</td><td>C25_VAL</td></tr><tr><td>姹�(渭g/kg)</td><td>C34_VAL</td><td>鏃犳満鐮�(mg/kg)</td><td>C30_VAL</td><td colspan='2'></td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td colspan='2'>checkTime</td></tr><tr><td colspan='2'>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+    //鍏ュ簱璐ㄦ鍗�-澶ц眴璐ㄦ鍗�
+    public static String INOUT_CHECK_141 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>鍏ュ簱璐ㄦ鍗�(澶ц眴)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>鍏ュ簱璐ㄦ鍗�(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='10%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td colspan='2'width='30%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'colspan='2'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td colspan='2'>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'colspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='5'>妫�楠�</td><td rowspan='3'>璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td>瀹屾暣绮掔巼(%)</td><td>C16_VAL</td></tr><tr><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td><td>鑹叉辰姘斿懗</td><td>C06_VAL</td></tr><tr><td>鎹熶激绮掔巼(%)</td><td>C17_VAL</td><td>鐑崯浼ょ矑(%)</td><td>C34_VAL</td><td colspan='2'></td></tr><tr><td>椋熷搧瀹夊叏妫�楠�</td><td>閾�(mg/kg)</td><td>C32_VAL</td><td>闀�(mg/kg)</td><td>C25_VAL</td><td colspan='2'></td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td colspan='2'>checkTime</td></tr><tr><td colspan='2'>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+    //鍏ュ簱璐ㄦ鍗�-鑿滅苯娌广�佸ぇ璞嗘补銆佹绫芥补璐ㄦ鍗�
+    public static String INOUT_CHECK_212 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>鍏ュ簱璐ㄦ鍗�(鑿滅苯娌广�佸ぇ璞嗘补銆佹绫芥补)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:33%;float:left;padding-bottom:10px}</style></head><body><h1 class='tit'>鍏ュ簱璐ㄦ鍗�(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='25%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td width='15%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='5'>妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td colspan='2'></td></tr><tr><td>姘村垎鍙婃尌鍙戠墿(%)</td><td>_01020324_VAL</td><td>涓嶆憾鎬ф潅璐�(%)</td><td>_01020325_VAL</td><td>閰镐环(KOH)(mg/g)</td><td>_0201033_VAL</td></tr><tr><td>杩囨哀鍖栧��(g/100g)</td><td>02010332_VAL</td><td>鍚殏閲�(%)</td><td>_02010307_VAL</td><td>鍔犵儹璇曢獙(280鈩�)</td><td>_01020326_VAL</td></tr><tr><td>婧跺墏娈嬬暀閲�(mg/kg)</td><td>_02030922_VAL</td><td>娓哥妫夐厷(mg/kg)</td><td>_02030921_VAL</td><td>榛勬洸闇夋瘨绱燘1</td><td>_02030201_VAL</td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td>checkTime</td></tr><tr><td>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+
+
+    /*----------鍏ュ簱妫�鏂よ川妫�鍗�----------*/
+
+    //鍏ュ簱妫�鏂よ川妫�鍗�-灏忛害璐ㄦ鍗�
+    public static String INOUT_WEIGHT_CHECK_111 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(灏忛害)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:33%;float:left;padding-bottom:10px}</style></head><body><h1 class='tit'>鍏ュ簱妫�鏂よ川妫�鍗�(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='10%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td colspan='2'width='30%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'colspan='2'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td colspan='2'>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'colspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='2'colspan='2'>鐧昏</td><td>鍏ラ棬鏃堕棿</td><td colspan='2'>registerTime</td><td>鐧昏鍛�</td><td colspan='2'>registerUser</td></tr><tr><td>鍑洪棬鏃堕棿</td><td colspan='2'>completeTime</td><td>鐧昏鍛�</td><td colspan='2'>completeUser</td></tr><tr><td rowspan='3'colspan='2'>妫�鏂�</td><td>姣涢噸妫�鏂ゆ椂闂�</td><td>fullWeightTime</td><td>鐩戠鍛�</td><td>fullWeightUser</td><td>姣涢噸(KG)</td><td>fullWeight</td></tr><tr><td>鐨噸妫�鏂ゆ椂闂�</td><td>emptyWeightTime</td><td>鐩戠鍛�</td><td>emptyWeightUser</td><td>鐨噸(KG)</td><td>emptyWeight</td></tr><tr><td>姘存潅鎵�(澧�)閲�(KG)</td><td>deWet</td><td>鍏朵粬鎵i噸(KG)</td><td>deOther</td><td>瀹為檯鏁伴噺(KG)</td><td>netWeight</td></tr><tr><td rowspan='6'>妫�楠�</td><td rowspan='3'>璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td>瀹归噸(g/L)</td><td>C03_VAL</td></tr><tr><td>鑹叉辰姘斿懗</td><td>C06_VAL</td><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td></tr><tr><td>涓嶅畬鍠勭矑(%)</td><td>C04_VAL</td><td>鐢熻娊绮�(%)</td><td>C35_VAL</td><td>鐢熼湁绮�(%)</td><td>C29_VAL</td></tr><tr><td rowspan='2'>椋熷搧瀹夊叏妫�楠�</td><td>鍛曞悙姣掔礌(mg/kg)</td><td>C27_VAL</td><td>鐜夌背璧ら湁鐑叜(渭g/kg)</td><td>C31_VAL</td><td>閾�(mg/kg)</td><td>C32_VAL</td></tr><tr><td>闀�(mg/kg)</td><td>C25_VAL</td><td>姹�(渭g/kg)</td><td>C33_VAL</td><td>鏃犳満鐮�(mg/kg)</td><td>C30_VAL</td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td colspan='2'>checkTime</td></tr><tr><td colspan='2'>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+    //鍏ュ簱妫�鏂よ川妫�鍗�-鐜夌背璐ㄦ鍗�
+    public static String INOUT_WEIGHT_CHECK_112 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(鐜夌背)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>鍏ュ簱妫�鏂よ川妫�鍗�(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='10%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td colspan='2'width='30%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'colspan='2'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td colspan='2'>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'colspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='2'colspan='2'>鐧昏</td><td>鍏ラ棬鏃堕棿</td><td colspan='2'>registerTime</td><td>鐧昏鍛�</td><td colspan='2'>registerUser</td></tr><tr><td>鍑洪棬鏃堕棿</td><td colspan='2'>completeTime</td><td>鐧昏鍛�</td><td colspan='2'>completeUser</td></tr><tr><td rowspan='3'colspan='2'>妫�鏂�</td><td>姣涢噸妫�鏂ゆ椂闂�</td><td>fullWeightTime</td><td>鐩戠鍛�</td><td>fullWeightUser</td><td>姣涢噸(KG)</td><td>fullWeight</td></tr><tr><td>鐨噸妫�鏂ゆ椂闂�</td><td>emptyWeightTime</td><td>鐩戠鍛�</td><td>emptyWeightUser</td><td>鐨噸(KG)</td><td>emptyWeight</td></tr><tr><td>姘存潅鎵�(澧�)閲�(KG)</td><td>deWet</td><td>鍏朵粬鎵i噸(KG)</td><td>deOther</td><td>瀹為檯鏁伴噺(KG)</td><td>netWeight</td></tr><tr><td rowspan='6'>妫�楠�</td><td rowspan='3'>璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td>瀹归噸(g/L)</td><td>C03_VAL</td></tr><tr><td>鑹叉辰姘斿懗</td><td>C06_VAL</td><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td></tr><tr><td>涓嶅畬鍠勭矑(%)</td><td>C04_VAL</td><td>鐢熼湁绮�(%)</td><td>C29_VAL</td><td>闇夊彉绮�(%)</td><td>C15_VAL</td></tr><tr><td rowspan='2'>椋熷搧瀹夊叏妫�楠�</td><td>鍛曞悙姣�(mg/kg)</td><td>C27_VAL</td><td>鐜夌背璧ら湁鐑叜(渭g/kg)</td><td>C31_VAL</td><td>閾�(mg/kg)</td><td>C32_VAL</td></tr><tr><td>闀�(mg/kg)</td><td>C25_VAL</td><td>姹�(渭g/kg)</td><td>C33_VAL</td><td>鏃犳満鐮�(mg/kg)</td><td>C30_VAL</td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td colspan='2'>checkTime</td></tr><tr><td colspan='2'>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+    //鍏ュ簱妫�鏂よ川妫�鍗�-绋昏胺璐ㄦ鍗�
+    public static String INOUT_WEIGHT_CHECK_113 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(绋昏胺)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>鍏ュ簱妫�鏂よ川妫�鍗�(foodVariety)</h1><div class='div-tit'>缂栫爜锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='10%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td colspan='2'width='30%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'colspan='2'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td colspan='2'>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'colspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='2'colspan='2'>鐧昏</td><td>鍏ラ棬鏃堕棿</td><td colspan='2'>registerTime</td><td>鐧昏鍛�</td><td colspan='2'>registerUser</td></tr><tr><td>鍑洪棬鏃堕棿</td><td colspan='2'>completeTime</td><td>鐧昏鍛�</td><td colspan='2'>completeUser</td></tr><tr><td rowspan='3'colspan='2'>妫�鏂�</td><td>姣涢噸妫�鏂ゆ椂闂�</td><td>fullWeightTime</td><td>鐩戠鍛�</td><td>fullWeightUser</td><td>姣涢噸(KG)</td><td>fullWeight</td></tr><tr><td>鐨噸妫�鏂ゆ椂闂�</td><td>emptyWeightTime</td><td>鐩戠鍛�</td><td>emptyWeightUser</td><td>鐨噸(KG)</td><td>emptyWeight</td></tr><tr><td>姘存潅鎵�(澧�)閲�(KG)</td><td>deWet</td><td>鍏朵粬鎵i噸(KG)</td><td>deOther</td><td>瀹為檯鏁伴噺(KG)</td><td>netWeight</td></tr><tr><td rowspan='7'>妫�楠�</td><td rowspan='4'>璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td>鍑虹硻鐜�(%)</td><td>C09_VAL</td></tr><tr><td>鏁寸簿绫崇巼(%)</td><td>C10_VAL</td><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td></tr><tr><td>榛勭矑绫�(%)</td><td>C11_VAL</td><td>璋峰绯欑背(%)</td><td>C12_VAL</td><td>鑹叉辰銆佹皵鍛�</td><td>C06_VAL</td></tr><tr><td>浜掓贩鐜�(%)</td><td>C13_VAL</td><td colspan='4'></td></tr><tr><td rowspan='2'>椋熷搧瀹夊叏妫�楠�</td><td>榛勬洸闇夋瘨绱燘1(渭g/kg)</td><td>C28_VAL</td><td>閾�(mg/kg)</td><td>C32_VAL</td><td>闀�(mg/kg)</td><td>C25_VAL</td></tr><tr><td>姹�(渭g/kg)</td><td>C34_VAL</td><td>鏃犳満鐮�(mg/kg)</td><td>C30_VAL</td><td colspan='2'></td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td colspan='2'>checkTime</td></tr><tr><td colspan='2'>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+    //鍏ュ簱妫�鏂よ川妫�鍗�-澶ц眴璐ㄦ鍗�
+    public static String INOUT_WEIGHT_CHECK_141 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(澶ц眴)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}</style></head><body><h1 class='tit'>鍏ュ簱妫�鏂よ川妫�鍗�(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='10%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td colspan='2'width='30%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'colspan='2'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td colspan='2'>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'colspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='2'colspan='2'>鐧昏</td><td>鍏ラ棬鏃堕棿</td><td colspan='2'>registerTime</td><td>鐧昏鍛�</td><td colspan='2'>registerUser</td></tr><tr><td>鍑洪棬鏃堕棿</td><td colspan='2'>completeTime</td><td>鐧昏鍛�</td><td colspan='2'>completeUser</td></tr><tr><td rowspan='3'colspan='2'>妫�鏂�</td><td>姣涢噸妫�鏂ゆ椂闂�</td><td>fullWeightTime</td><td>鐩戠鍛�</td><td>fullWeightUser</td><td>姣涢噸(KG)</td><td>fullWeight</td></tr><tr><td>鐨噸妫�鏂ゆ椂闂�</td><td>emptyWeightTime</td><td>鐩戠鍛�</td><td>emptyWeightUser</td><td>鐨噸(KG)</td><td>emptyWeight</td></tr><tr><td>姘存潅鎵�(澧�)閲�(KG)</td><td>deWet</td><td>鍏朵粬鎵i噸(KG)</td><td>deOther</td><td>瀹為檯鏁伴噺(KG)</td><td>netWeight</td></tr><tr><td rowspan='5'>妫�楠�</td><td rowspan='3'>璐ㄩ噺鎸囨爣妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td>瀹屾暣绮掔巼(%)</td><td>C16_VAL</td></tr><tr><td>鏉傝川(%)</td><td>C02_VAL</td><td>姘村垎(%)</td><td>C01_VAL</td><td>鑹叉辰姘斿懗</td><td>C06_VAL</td></tr><tr><td>鎹熶激绮掔巼(%)</td><td>C17_VAL</td><td>鐑崯浼ょ矑(%)</td><td>C34_VAL</td><td colspan='2'></td></tr><tr><td>椋熷搧瀹夊叏妫�楠�</td><td>閾�(mg/kg)</td><td>C32_VAL</td><td>闀�(mg/kg)</td><td>C25_VAL</td><td colspan='2'></td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td colspan='2'>checkTime</td></tr><tr><td colspan='2'>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+    //鍏ュ簱妫�鏂よ川妫�鍗�-鑿滅苯娌广�佸ぇ璞嗘补銆佹绫芥补璐ㄦ鍗�
+    public static String INOUT_WEIGHT_CHECK_212 = "<!DOCTYPE html><html lang='zh-cn'><head><meta http-equiv='Content-Type' content='text/html;charset=UTF-8'><title>璐ㄦ鎶ュ憡(鑿滅苯娌广�佸ぇ璞嗘补銆佹绫芥补)</title><style>body{text-align:center;padding:10px}.tit{margin:0px;font-size:24px;font-family:'瀹嬩綋';padding-top:5px}.div-tit{text-align:right;padding-right:20px}table{width:100%;border-right:1px solid;border-bottom:1px solid;font-size:14px}table td{border-left:1px solid;border-top:1px solid;height:38px}.sp1{width:33%;float:left;padding-bottom:10px}</style></head><body><h1 class='tit'>鍏ュ簱妫�鏂よ川妫�鍗�(foodVariety)</h1><div class='div-tit'>鍗曞彿锛歴erId</div><table cellspacing='0'cellpadding='0'><tr><td colspan='2'width='25%'>鍗曚綅鍚嶇О</td><td colspan='2'width='30%'>dwmc</td><td width='15%'>搴撳尯鍚嶇О</td><td colspan='2'width='30%'>deptName</td></tr><tr><td width='10%'>鍏ヤ粨</td><td width='15%'>浠撴埧鍚嶇О</td><td width='15%'>buildingName</td><td width='15%'>璐т綅鍚嶇О</td><td width='15%'>depotName</td><td width='15%'>淇濈鍛�</td><td width='15%'>storeKeeperName</td></tr><tr><td>瀹㈡埛</td><td>瀹㈡埛鍚嶇О</td><td colspan='2'>customerName</td><td>淇$敤浠g爜(韬唤璇佸彿)</td><td colspan='2'>customerId</td></tr><tr><td rowspan='2'>鎵胯繍</td><td>鎵胯繍浜�</td><td colspan='2'>userName</td><td>韬唤璇佸彿</td><td colspan='2'>userId</td></tr><tr><td>杩愯緭宸ュ叿</td><td>transType</td><td>杞﹁埞鍙�</td><td>plateNum</td><td>鑱旂郴鐢佃瘽</td><td>userContact</td></tr><tr><td rowspan='2'>鐧昏</td><td>鍏ラ棬鏃堕棿</td><td colspan='2'>registerTime</td><td>鐧昏鍛�</td><td colspan='2'>registerUser</td></tr><tr><td>鍑洪棬鏃堕棿</td><td colspan='2'>completeTime</td><td>鐧昏鍛�</td><td colspan='2'>completeUser</td></tr><tr><td rowspan='3'>妫�鏂�</td><td>姣涢噸妫�鏂ゆ椂闂�</td><td>fullWeightTime</td><td>鐩戠鍛�</td><td>fullWeightUser</td><td>姣涢噸(KG)</td><td>fullWeight</td></tr><tr><td>鐨噸妫�鏂ゆ椂闂�</td><td>emptyWeightTime</td><td>鐩戠鍛�</td><td>emptyWeightUser</td><td>鐨噸(KG)</td><td>emptyWeight</td></tr><tr><td>姘存潅鎵�(澧�)閲�(KG)</td><td>deWet</td><td>鍏朵粬鎵i噸(KG)</td><td>deOther</td><td>瀹為檯鏁伴噺(KG)</td><td>netWeight</td></tr><tr><td rowspan='5'>妫�楠�</td><td>鍝佺</td><td>foodVariety</td><td>绛夌骇</td><td>foodLevel</td><td colspan='2'></td></tr><tr><td>姘村垎鍙婃尌鍙戠墿(%)</td><td>_01020324_VAL</td><td>涓嶆憾鎬ф潅璐�(%)</td><td>_01020325_VAL</td><td>閰镐环(KOH)(mg/g)</td><td>_0201033_VAL</td></tr><tr><td>杩囨哀鍖栧��(g/100g)</td><td>02010332_VAL</td><td>鍚殏閲�(%)</td><td>_02010307_VAL</td><td>鍔犵儹璇曢獙(280鈩�)</td><td>_01020326_VAL</td></tr><tr><td>婧跺墏娈嬬暀閲�(mg/kg)</td><td>_02030922_VAL</td><td>娓哥妫夐厷(mg/kg)</td><td>_02030921_VAL</td><td>榛勬洸闇夋瘨绱燘1</td><td>_02030201_VAL</td></tr><tr><td>鎵︽牱鍛�</td><td>sampleUser</td><td>妫�楠屽憳</td><td>checkUser</td><td>妫�楠屾椂闂�</td><td>checkTime</td></tr><tr><td>澶囨敞</td><td colspan='6'>remark</td></tr></table><div class='div-tit' style='float: left;margin-top: 5px;font-size: 12px'>璇存槑锛氫娇鐢ㄣ�婄伯椋熻喘閿�棰嗗煙鐩戠淇℃伅鍖栬鑼冦�嬪浗绮(2022)78鍙�-闄勫綍G妯$増</div></body></html>";
+
+}
\ No newline at end of file
diff --git a/igds-core/src/main/java/com/ld/igds/m/ReportManage.java b/igds-core/src/main/java/com/ld/igds/m/ReportManage.java
new file mode 100644
index 0000000..2fa8af9
--- /dev/null
+++ b/igds-core/src/main/java/com/ld/igds/m/ReportManage.java
@@ -0,0 +1,217 @@
+package com.ld.igds.m;
+
+import com.bstek.bdf2.core.model.DefaultDept;
+import com.ld.igds.check.dto.CheckItemData;
+import com.ld.igds.common.CoreCommonService;
+import com.ld.igds.constant.FoodLevel;
+import com.ld.igds.constant.FoodType;
+import com.ld.igds.constant.FoodVariety;
+import com.ld.igds.models.Building;
+import com.ld.igds.models.Depot;
+import com.ld.igds.models.DepotStore;
+import com.ld.igds.models.MQuality;
+import com.ld.igds.sys.service.SysDeptService;
+import com.ld.igds.view.service.BuildingService;
+import com.ld.igds.view.service.HDepotStoreService;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * 鎵撳嵃鍚勭鎶ュ憡鍗曟嵁绠$悊绫�
+ */
+@Component
+public class ReportManage {
+
+    @Autowired
+    private CoreCommonService commonService;
+    @Autowired
+    private SysDeptService sysDeptService;
+    @Autowired
+    private BuildingService buildingService;
+    @Resource
+    private HDepotStoreService depotStoreService;
+
+    /**
+     * 鏁磋溅璐ㄦ鎶ュ憡鍗曟嵁
+     *
+     * @param data
+     * @return
+     */
+    public String printQualityBill(MQuality data) {
+
+        //鑾峰彇榛樿妯$増
+        String htmlStr = "妯℃澘鏆傛湭纭畾锛侊紒";
+
+        if (data.getFoodVariety().startsWith("111")) {
+            //璋冪敤灏忛害璐ㄦ鎶ュ憡妯$増
+            htmlStr = ReportBill.QUALITY_111;
+        }
+        if (data.getFoodVariety().startsWith("112")) {
+            //璋冪敤鐜夌背璐ㄦ鎶ュ憡妯$増
+            htmlStr = ReportBill.QUALITY_112;
+        }
+        if (data.getFoodVariety().startsWith("113")) {
+            //璋冪敤绋昏胺璐ㄦ鎶ュ憡妯$増
+            htmlStr = ReportBill.QUALITY_113;
+        }
+        if (data.getFoodVariety().startsWith("141")) {
+            //璋冪敤澶ц眴璐ㄦ鎶ュ憡妯$増
+            htmlStr = ReportBill.QUALITY_141;
+        }
+        if (data.getFoodVariety().startsWith("236")) {
+            //璋冪敤绋昏胺璐ㄦ鎶ュ憡妯$増
+            htmlStr = ReportBill.QUALITY_113;
+        }
+        if (data.getFoodVariety().startsWith("212")) {
+            //璋冪敤娌硅剛璐ㄦ鎶ュ憡妯$増
+            htmlStr = ReportBill.QUALITY_212;
+        }
+
+        //鑾峰彇鍗曚綅鍚嶇О
+        DefaultDept dept = sysDeptService.getDeptById(data.getCompanyId());
+        if (null != dept && StringUtils.isNotEmpty(dept.getName())) {
+            htmlStr = htmlStr.replace("dwmc", dept.getName());
+        } else {
+            htmlStr = htmlStr.replace("dwmc", "-");
+        }
+
+        //鑾峰彇搴撳尯鍚嶇О
+        dept = sysDeptService.getDeptById(data.getDeptId());
+        if (null != dept && StringUtils.isNotEmpty(dept.getName())) {
+            htmlStr = htmlStr.replace("deptName", dept.getName());
+        } else {
+            htmlStr = htmlStr.replace("deptName", "-");
+        }
+
+        //鑾峰彇浠撳簱淇℃伅
+        Depot depot = commonService.getCacheDepot(data.getCompanyId(), data.getDepotId());
+        String buildingName = "-";
+        if (depot != null) {
+            htmlStr = htmlStr.replace("depotName", depot.getName() == null ? "-" : depot.getName());
+            htmlStr = htmlStr.replace("foodLocation", StringUtils.isEmpty(depot.getFoodLocation()) ? "-" : depot.getFoodLocation());
+            htmlStr = htmlStr.replace("storeKeeperName", StringUtils.isEmpty(depot.getStoreKeeperName()) ? "-" : depot.getStoreKeeperName());
+
+            //鑾峰彇浠撴埧淇℃伅
+            if (StringUtils.isNotEmpty(depot.getBuildingId())) {
+                Building building = buildingService.getCacheBuilding(depot.getCompanyId(), depot.getDeptId(), depot.getBuildingId());
+                if (null != building) {
+                    buildingName = building.getName();
+                }
+            }
+        } else {
+            htmlStr = htmlStr.replace("depotName", "-");
+            htmlStr = htmlStr.replace("foodLocation", "-");
+            htmlStr = htmlStr.replace("storeKeeperName", "-");
+        }
+        htmlStr = htmlStr.replace("buildingName", buildingName);
+
+        htmlStr = htmlStr.replace("foodVariety", FoodVariety.getMsg(data.getFoodVariety()));
+        htmlStr = htmlStr.replace("serId", data.getId());
+
+        //鑾峰彇璐ㄦ鏃堕棿涔嬪墠鐨勫簱瀛樹俊鎭�
+        DepotStore lastDepotStore = depotStoreService.getLastData(data.getDepotId(), data.getTime());
+        String storageReal = "-";
+        String foodYear = "-";
+        String foodType = "-";
+        if(null != lastDepotStore){
+            if(StringUtils.isNotEmpty(lastDepotStore.getFoodYear())){
+                foodYear = lastDepotStore.getFoodYear();
+            }
+            if(null != lastDepotStore.getStorageReal()){
+                storageReal = lastDepotStore.getStorageReal()/1000 + "";
+            }
+            if(StringUtils.isNotEmpty(lastDepotStore.getFoodType())){
+                foodType = FoodType.getMsg(lastDepotStore.getFoodType());
+            }
+        }
+        htmlStr = htmlStr.replace("storageReal", storageReal);
+        htmlStr = htmlStr.replace("foodYear", foodYear);
+        htmlStr = htmlStr.replace("foodType", foodType);
+
+        htmlStr = htmlStr.replace("foodNumber", data.getDbsl() == null? "-":data.getDbsl()/1000 + "");
+        htmlStr = htmlStr.replace("foodLevel", StringUtils.isEmpty(data.getFoodLevel()) ? "-" : FoodLevel.getMsg(data.getFoodLevel()));
+
+        htmlStr = htmlStr.replace("checkNum", data.getYpsl() == null? "-":data.getYpsl() + "");
+
+        htmlStr = htmlStr.replace("unit", StringUtils.isEmpty(data.getUnit()) ? "-" : data.getUnit());
+        htmlStr = htmlStr.replace("sampleUser", StringUtils.isEmpty(data.getCheckUser()) ? "-" : data.getCheckUser());
+        htmlStr = htmlStr.replace("checkUser", StringUtils.isEmpty(data.getUser()) ? "-" : data.getUser());
+        htmlStr = htmlStr.replace("sampleTime", data.getCheckTime() == null ? "-" : DateFormatUtils.format(data.getCheckTime(), "yyyy/MM/dd HH:mm:ss"));
+        htmlStr = htmlStr.replace("checkTime", data.getTime() == null ? "-" : DateFormatUtils.format(data.getTime(), "yyyy/MM/dd HH:mm:ss"));
+        htmlStr = htmlStr.replace("bgcjsj", data.getBgcjsj() == null ? "-" : DateFormatUtils.format(data.getBgcjsj(), "yyyy/MM/dd HH:mm:ss"));
+        htmlStr = htmlStr.replace("remark", StringUtils.isEmpty(data.getRemark()) ? "-" : data.getRemark());
+
+        Map<String, String> checkBillItems = getCheckBillItems();
+        // 閬嶅巻鍖栭獙缁撴灉锛屽瓨鍏ap闆嗗悎涓�
+        String key;
+        for (CheckItemData item : data.getCheckItems()) {
+            key = item.getStandardId() + "_VAL";
+            checkBillItems.put(key, item.getValue());
+        }
+
+        // 閬嶅巻map闆嗗悎锛屾浛鎹㈠寲楠屽崟涓寲楠屽��
+        String value;
+        for (String str : checkBillItems.keySet()) {
+            value = checkBillItems.get(str);
+            if (StringUtils.isNotEmpty(value)) {
+                htmlStr = htmlStr.replace(str, value);
+            } else {
+                htmlStr = htmlStr.replace(str, "-");
+            }
+        }
+
+        return htmlStr;
+    }
+
+
+    /**
+     * 灏佽鍖栭獙椤规暟鍊硷紝key-鍖栭獙椤圭紪鐮侊紝value-鏀剧疆鍖栭獙鍊�
+     *
+     * @return
+     */
+    private Map<String, String> getCheckBillItems() {
+        Map<String, String> map = new HashMap<>();
+        map.put("C01_VAL", "");
+        map.put("C02_VAL", "");
+        map.put("C03_VAL", "");
+        map.put("C04_VAL", "");
+        map.put("C05_VAL", "");
+        map.put("C06_VAL", "");
+        map.put("C07_VAL", "");
+        map.put("C08_VAL", "");
+        map.put("C09_VAL", "");
+        map.put("C10_VAL", "");
+        map.put("C11_VAL", "");
+        map.put("C12_VAL", "");
+        map.put("C13_VAL", "");
+        map.put("C14_VAL", "");
+        map.put("C15_VAL", "");
+        map.put("C16_VAL", "");
+        map.put("C17_VAL", "");
+        map.put("C18_VAL", "");
+        map.put("C19_VAL", "");
+        map.put("C20_VAL", "");
+        map.put("C21_VAL", "");
+        map.put("C22_VAL", "");
+        map.put("C23_VAL", "");
+        map.put("C24_VAL", "");
+        map.put("C25_VAL", "");
+        map.put("C26_VAL", "");
+        map.put("C27_VAL", "");
+        map.put("C28_VAL", "");
+        map.put("C29_VAL", "");
+        map.put("C30_VAL", "");
+        map.put("C31_VAL", "");
+        map.put("C32_VAL", "");
+        map.put("C33_VAL", "");
+        map.put("C34_VAL", "");
+        map.put("C35_VAL", "");
+        return map;
+    }
+}
\ No newline at end of file
diff --git a/igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java b/igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java
index b54172e..e149c87 100644
--- a/igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java
+++ b/igds-core/src/main/java/com/ld/igds/m/service/HQualityManageService.java
@@ -11,6 +11,7 @@
 import com.ld.igds.util.DateUtil;
 import com.ld.igds.util.RedisUtil;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.time.DateFormatUtils;
 import org.hibernate.Session;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -126,7 +127,7 @@
         if (null == data.getDeptId()) {
             data.setDeptId(ContextUtil.subDeptId(null));
         }
-        if (null != data.getZblb() || "" != data.getZblb()) {
+        if (null != data.getZblb() && "" != data.getZblb() && "null" != data.getZblb()) {
             String[] str = data.getZblb().split("#");
             //闃叉鍦ㄦ洿鏂版搷浣滄椂鍐嶆瀛樺叆鐩稿悓鐨勬暟鎹�
             Set<String> metrics = new HashSet<>();
@@ -144,11 +145,9 @@
         try {
             if (null == data.getId()) {
                 data.setId(id);
-                session.save(data);
-            } else {
-                session.update(data);
             }
-            redisUtil.del(RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_DEPOT_QUALITY, data.getDepotId()));
+            session.saveOrUpdate(data);
+            redisUtil.del(RedisConst.buildKey(ContextUtil.getDefaultCompanyId(), RedisConst.KEY_DEPOT_QUALITY, data.getDepotId()));
             MQuality newData;
             if (EntityUtils.isEntity(data)) {
                 newData = new MQuality();
@@ -157,7 +156,7 @@
                 newData = data;
             }
 
-            redisUtil.set(RedisConst.buildKey(ContextUtil.getCompanyId(), RedisConst.KEY_DEPOT_QUALITY, data.getDepotId()), newData, 60 * 60 * 24);
+            redisUtil.set(RedisConst.buildKey(ContextUtil.getDefaultCompanyId(), RedisConst.KEY_DEPOT_QUALITY, data.getDepotId()), newData, 60 * 60 * 24);
         } catch (Exception e) {
             e.printStackTrace();
         } finally {
@@ -186,4 +185,81 @@
         return null;
     }
 
+    /**
+     * 鑾峰彇褰撳墠妫�楠屾椂闂存渶鍚庝竴涓狪D
+     *
+     * @param time
+     * @return
+     * @throws Exception
+     */
+    public String getIdByTime(Date time) {
+        int num = 10001;
+        String hql = " from " + MQuality.class.getName()
+                + " where companyId =:companyId ";
+        Map<String, Object> args = new HashMap<String, Object>();
+        args.put("companyId", ContextUtil.getCompanyId());
+
+        hql += " and time >=:start";
+        args.put("start", DateUtil.getCurZero(time));
+        hql += " and time <:end";
+        args.put("end", DateUtil.getNextZero(time));
+
+        hql += " order by id DESC";
+        List<MQuality> list = this.query(hql, args);
+        if (list != null && list.size() > 0) {
+//            String lastId = list.get(0).getId();
+//            num += Integer.parseInt(lastId.subst
+//            ring(lastId.length() - 5));
+            num += Integer.valueOf(list.get(0).getId().substring(11));
+        }
+//        String strNum = String.valueOf(num);
+//        if (strNum.length() == 1) {
+//            strNum = "1000" + strNum;
+//        }
+//        if (strNum.length() == 2) {
+//            strNum = "100" + strNum;
+//        }
+//        if (strNum.length() == 3) {
+//            strNum = "10" + strNum;
+//        }
+//        if (strNum.length() == 4) {
+//            strNum = "1" + strNum;
+//        }
+        return DateFormatUtils.format(time, "yyyyMMdd") + String.valueOf(num).substring(1);
+    }
+
+    public CheckItemData getCheckItem(String checkId) {
+        CheckItemData itemData = new CheckItemData();
+        if ("".equals(checkId)) {
+            itemData.setPerWet(0.0);
+            itemData.setPerImpurity(0.0);
+            return itemData;
+        }
+        itemData.setCompanyId(ContextUtil.getCompanyId());
+        itemData.setCheckId(checkId);
+        itemData.setStandardId("C01");
+        List<CheckItemData> itemData1 = checkStandardMapper.getCheckItemByParam(itemData);
+        if (!itemData1.isEmpty()) {
+            String perWet = itemData1.get(0).getValue();
+            if (StringUtils.isNotEmpty(perWet)) {
+                itemData.setPerWet(Double.parseDouble(perWet));
+            } else {
+                itemData.setPerWet(0.0);
+            }
+        }
+
+        itemData.setStandardId("C02");
+        List<CheckItemData> itemData2 = checkStandardMapper.getCheckItemByParam(itemData);
+        if (!itemData2.isEmpty()) {
+            String perImpurity = itemData2.get(0).getValue();
+            if (StringUtils.isNotEmpty(perImpurity)) {
+                itemData.setPerImpurity(Double.parseDouble(perImpurity));
+            } else {
+                itemData.setPerImpurity(0.0);
+            }
+        }
+
+        return itemData;
+    }
+
 }
diff --git a/igds-core/src/main/java/com/ld/igds/m/view/QualityManager.js b/igds-core/src/main/java/com/ld/igds/m/view/QualityManager.js
new file mode 100644
index 0000000..a8ba425
--- /dev/null
+++ b/igds-core/src/main/java/com/ld/igds/m/view/QualityManager.js
@@ -0,0 +1,19 @@
+printBill = function(){
+	var data = view.get("#dsMain.data:#");
+	if(!data) return;
+
+	view.get("#ajaxQualityPrint").set("parameter",data).execute(function(result){
+		printQualityBill(result);
+	});
+};
+/**
+ * 鎵撳嵃璐ㄦ鍗�
+ */
+printQualityBill = function(htmlStr) {
+	var LODOP = CLODOP;
+	LODOP.PRINT_INIT("璐ㄦ鎶ュ憡");
+	LODOP.SET_PRINT_PAGESIZE(1,2100,1400, "A4");
+	//LODOP.SET_PRINT_PAGESIZE(1, 0, '90mm', "A4");
+	LODOP.ADD_PRINT_HTM(0, 0, "100%", "100%", htmlStr);
+	LODOP.PREVIEW();
+};
\ No newline at end of file
diff --git a/igds-core/src/main/java/com/ld/igds/m/view/QualityManager.view.xml b/igds-core/src/main/java/com/ld/igds/m/view/QualityManager.view.xml
index 647835a..611f58f 100644
--- a/igds-core/src/main/java/com/ld/igds/m/view/QualityManager.view.xml
+++ b/igds-core/src/main/java/com/ld/igds/m/view/QualityManager.view.xml
@@ -69,7 +69,7 @@
       </PropertyDef>
       <PropertyDef name="time">
         <Property name="label">妫�楠屾椂闂�</Property>
-        <Property name="dataType">Date</Property>
+        <Property name="dataType">DateTime</Property>
         <Property name="required">true</Property>
       </PropertyDef>
       <PropertyDef name="result">
@@ -168,6 +168,7 @@
       <PropertyDef name="ypbh">
         <Property></Property>
         <Property name="label">鏍峰搧缂栧彿</Property>
+        <Property name="required">true</Property>
       </PropertyDef>
       <PropertyDef name="updateTime">
         <Property name="dataType">Date</Property>
@@ -176,6 +177,46 @@
       <PropertyDef name="spaqzbsfhg">
         <Property></Property>
         <Property name="label">椋熷搧鏄惁鍚堟牸</Property>
+        <Property name="mapping">
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">0-涓嶅悎鏍�</Property>
+                <Property name="code">0</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">1-鍚堟牸</Property>
+                <Property name="code">1</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
+        <Property name="required">true</Property>
+      </PropertyDef>
+      <PropertyDef name="reportType">
+        <Property name="label">鎶ュ憡绫诲瀷</Property>
+        <Property name="mapping">
+          <Property name="keyProperty">code</Property>
+          <Property name="valueProperty">name</Property>
+          <Property name="mapValues">
+            <Collection>
+              <Entity>
+                <Property name="name">1-鍗曚綅妫�楠�</Property>
+                <Property name="code">1</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">2-鏁翠綋妫�楠�(鍔犳潈骞冲潎)</Property>
+                <Property name="code">2</Property>
+              </Entity>
+              <Entity>
+                <Property name="name">3-鍏朵粬</Property>
+                <Property name="code">3</Property>
+              </Entity>
+            </Collection>
+          </Property>
+        </Property>
       </PropertyDef>
       <Reference name="checkItems">
         <Property name="dataProvider">checkStandardPR#listCheckItemsByParam</Property>
@@ -188,6 +229,20 @@
           </Entity>
         </Property>
       </Reference>
+      <PropertyDef name="fileId">
+        <Property></Property>
+        <Property name="label">闄勪欢id</Property>
+      </PropertyDef>
+      <PropertyDef name="fileName">
+        <Property></Property>
+        <Property name="label">闄勪欢鍚嶇О</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
+      <PropertyDef name="fileTime">
+        <Property name="dataType">DateTime</Property>
+        <Property name="label">闄勪欢涓婁紶鏃堕棿</Property>
+        <Property name="readOnly">true</Property>
+      </PropertyDef>
     </DataType>
     <DataType name="dtQualityParam">
       <PropertyDef name="depotId">
@@ -250,7 +305,7 @@
         <Property name="label">妫�娴嬪��</Property>
       </PropertyDef>
       <PropertyDef name="remarks">
-        <Property name="label">鍖栭獙缁撴灉</Property>
+        <Property name="label">澶囨敞</Property>
       </PropertyDef>
       <PropertyDef name="operaSymbolValue">
         <Property></Property>
@@ -454,10 +509,9 @@
    view.get(&quot;#ajaxGetDepot&quot;).set(&quot;parameter&quot;,depotId).execute(function(result){&#xD;
      if(result){&#xD;
      var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
-     data.set(&quot;foodLocation&quot;,result.foodLocation);&#xD;
      data.set(&quot;foodLevel&quot;,result.foodLevel);&#xD;
      data.set(&quot;foodVariety&quot;,result.foodVariety);&#xD;
-     data.set(&quot;foodType&quot;,result.foodType);&#xD;
+	 data.set(&quot;storeDate&quot;,result.storeDate);&#xD;
 	}&#xD;
 });&#xD;
 };&#xD;
@@ -469,8 +523,29 @@
  data.set(&quot;checkItems&quot;,result);&#xD;
 	}&#xD;
   }); &#xD;
-};      </ClientEvent>
+};&#xD;
+/**&#xD;
+ * 棰勮PDF鏂囦欢&#xD;
+ */&#xD;
+showFilePdf = function(){&#xD;
+	var cur = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+	var fileName = cur.get(&quot;fileId&quot;);&#xD;
+	var fileTime = new Date(cur.get(&quot;fileTime&quot;)).formatDate(&quot;y-m-d H:i:s&quot;);&#xD;
+	if(!fileName){&#xD;
+		$alert(&quot;娌℃湁鑾峰彇鍒版枃浠跺悕绉帮紝鏃犳硶棰勮銆�&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	if(!cur.get(&quot;fileTime&quot;)){&#xD;
+		$alert(&quot;娌℃湁鑾峰彇鍒伴檮浠朵笂浼犳椂闂达紝鏃犳硶璁块棶銆�&quot;);&#xD;
+		return;&#xD;
+	}&#xD;
+	&#xD;
+	var url = &quot;./basic/file/show-pdf?fileName=&quot;+fileName+&quot;&amp;fileTime=&quot;+fileTime+&quot;&amp;filePathType=common&quot;;&#xD;
+	&#xD;
+	window.open(url, &quot;_blank&quot;);&#xD;
+};</ClientEvent>
     <Property name="packages">font-awesome,css-common</Property>
+    <Property name="javaScriptFile">./static/plugins/lodop/LodopFuncs.js</Property>
     <DataSet id="dsMain">
       <Property name="loadMode">lazy</Property>
       <Property name="dataProvider">qualityManagerPR#listQuality</Property>
@@ -534,9 +609,9 @@
       </Button>
       <Button layoutConstraint="left">
         <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
-                    if(data){&#xD;
-                    view.get(&quot;#dialogMain&quot;).show();&#xD;
-                    }
+if(data){&#xD;
+    view.get(&quot;#dialogMain&quot;).show();&#xD;
+}
                 </ClientEvent>
         <Property name="caption">淇敼</Property>
         <Property name="exClassName">btn-warm</Property>
@@ -564,8 +639,25 @@
         <ClientEvent name="onClick">view.get(&quot;#dsMain&quot;).flushAsync();&#xD;
                 </ClientEvent>
         <Property name="caption">鍒锋柊</Property>
-        <Property name="exClassName">btn-default</Property>
-        <Property name="iconClass">fa fa-refresh</Property>
+        <Property name="exClassName">btn-warm</Property>
+        <Property name="iconClass">fa fa-print</Property>
+      </Button>
+      <Button layoutConstraint="left">
+        <ClientEvent name="onClick">showFilePdf();</ClientEvent>
+        <Property name="exClassName">btn-normal</Property>
+        <Property name="caption">鏌ョ湅璐ㄦ闄勪欢</Property>
+        <Property name="iconClass">fa fa-picture-o</Property>
+      </Button>
+      <Button layoutConstraint="left">
+        <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+if (!data) {&#xD;
+	$alert(&quot;璇峰厛閫夋嫨鏁版嵁锛�&quot;);&#xD;
+	return;&#xD;
+}&#xD;
+printBill();</ClientEvent>
+        <Property name="caption">鎵撳嵃璐ㄦ鎶ュ憡</Property>
+        <Property name="exClassName">btn-warm</Property>
+        <Property name="iconClass">fa fa-print</Property>
       </Button>
     </Container>
     <Container layout="regionPadding:10" layoutConstraint="center">
@@ -599,8 +691,7 @@
         <Container layout="hbox regionPadding:15">
           <Button layoutConstraint="left">
             <ClientEvent name="onClick">var param = view.get(&quot;#dsParam.data&quot;);&#xD;
-                            view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,param.toJSON()).flushAsync();
-                        </ClientEvent>
+view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,param.toJSON()).flushAsync();                   </ClientEvent>
             <Property name="caption">鏌ヨ</Property>
             <Property name="exClassName">btn-default</Property>
             <Property name="iconClass">fa fa-refresh</Property>
@@ -696,14 +787,13 @@
       <Buttons>
         <Button>
           <ClientEvent name="onClick">var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
-                        if(data.validate() != 'ok'){&#xD;
-                        $notify(&quot;鏁版嵁鏍¢獙澶辫触锛侊紒&quot;);&#xD;
-                        return;&#xD;
-                        }&#xD;
-                        view.get(&quot;#uaAction&quot;).set(&quot;parameter&quot;,data).execute(function(){&#xD;
-                        self.get(&quot;parent&quot;).hide();&#xD;
-                        });
-                    </ClientEvent>
+if(data.validate() != 'ok'){&#xD;
+ $notify(&quot;鏁版嵁鏍¢獙澶辫触锛侊紒&quot;);&#xD;
+ return;&#xD;
+ }&#xD;
+ view.get(&quot;#uaAction&quot;).set(&quot;parameter&quot;,data).execute(function(){&#xD;
+ self.get(&quot;parent&quot;).hide();&#xD;
+});                 </ClientEvent>
           <Property name="caption">淇濆瓨</Property>
           <Property name="iconClass">fa fa-check</Property>
           <Property name="exClassName">btn-normal</Property>
@@ -727,7 +817,7 @@
               <Property name="readOnly">false</Property>
               <Property name="labelSeparator">:</Property>
               <Property name="labelAlign">right</Property>
-              <Property name="cols">*,*,*</Property>
+              <Property name="cols">*,*,*,*</Property>
               <Property name="labelWidth">120</Property>
               <AutoFormElement>
                 <Property name="name">depotId</Property>
@@ -807,6 +897,11 @@
                 <Editor/>
               </AutoFormElement>
               <AutoFormElement layoutConstraint="colSpan:1">
+                <Property name="name">storeDate</Property>
+                <Property name="property">storeDate</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement layoutConstraint="colSpan:1">
                 <Property name="name">result</Property>
                 <Property name="property">result</Property>
                 <Editor>
@@ -817,7 +912,7 @@
                   </TagEditor>
                 </Editor>
               </AutoFormElement>
-              <Label layoutConstraint="colSpan:2">
+              <Label layoutConstraint="colSpan:3">
                 <Property name="text">璇存槑锛氬椤规寚鏍囨椂鎸夌収1:璐ㄩ噺鎸囨爣妫�楠�(杈炬爣,涓嶈揪鏍�)銆�2:鍌ㄥ瓨鍝佽川妫�楠�(瀹滃瓨,涓嶅疁瀛�)銆�3:椋熷搧瀹夊叏妫�楠�(鍚堟牸,涓嶅悎鏍�)杩欎釜椤哄簭濉啓妫�楠岀粨璁�</Property>
                 <Property name="style">
                   <Property name="color">blue</Property>
@@ -865,11 +960,43 @@
                 <Property name="property">spaqzbsfhg</Property>
                 <Editor/>
               </AutoFormElement>
-              <AutoFormElement layoutConstraint="colSpan:3">
+              <AutoFormElement layoutConstraint="colSpan:2">
                 <Property name="name">remark</Property>
                 <Property name="property">remark</Property>
                 <Editor/>
               </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">reportType</Property>
+                <Property name="property">reportType</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">fileName</Property>
+                <Property name="property">fileName</Property>
+                <Editor/>
+              </AutoFormElement>
+              <AutoFormElement>
+                <Property name="name">fileTime</Property>
+                <Property name="property">fileTime</Property>
+                <Editor/>
+              </AutoFormElement>
+              <Container>
+                <Button layoutConstraint="left">
+                  <Property name="action">uploadFile</Property>
+                  <Property name="caption">闄勪欢涓婁紶...</Property>
+                  <Property name="exClassName">btn-default</Property>
+                  <Property name="iconClass">fa fa-cloud-upload</Property>
+                </Button>
+                <Label layoutConstraint="left">
+                  <Property name="width">10px</Property>
+                </Label>
+                <Button layoutConstraint="left">
+                  <ClientEvent name="onClick">showFilePdf();</ClientEvent>
+                  <Property name="exClassName">btn-normal</Property>
+                  <Property name="caption">棰勮</Property>
+                  <Property name="iconClass">fa fa-picture-o</Property>
+                </Button>
+              </Container>
             </AutoForm>
           </Children>
         </FieldSet>
@@ -935,33 +1062,6 @@
                 <Property name="align">center</Property>
                 <Property name="readOnly">true</Property>
               </DataColumn>
-              <DataColumn name="operaSymbolValue">
-                <Property name="property">operaSymbolValue</Property>
-                <Property name="align">center</Property>
-                <Property name="caption">鏍囧噯鍊�</Property>
-                <Property name="readOnly">true</Property>
-              </DataColumn>
-              <DataColumn name="deNum">
-                <Property name="property">deNum</Property>
-                <Property name="align">center</Property>
-              </DataColumn>
-              <DataColumn name="addNum">
-                <Property name="property">addNum</Property>
-                <Property name="align">center</Property>
-              </DataColumn>
-              <DataColumn name="dePrice">
-                <Property name="property">dePrice</Property>
-                <Property name="align">center</Property>
-              </DataColumn>
-              <DataColumn name="addPrice">
-                <Property name="property">addPrice</Property>
-                <Property name="align">center</Property>
-              </DataColumn>
-              <DataColumn name="result">
-                <Property name="property">result</Property>
-                <Property name="align">center</Property>
-                <Property name="readOnly">true</Property>
-              </DataColumn>
               <DataColumn name="remarks">
                 <Property name="property">remarks</Property>
                 <Property name="align">center</Property>
@@ -1007,7 +1107,7 @@
           </TextEditor>
           <Button>
             <ClientEvent name="onClick">var key = view.get(&quot;#key2.value&quot;);&#xD;
-                            view.get(&quot;#dsFoodOrigin&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();
+view.get(&quot;#dsFoodOrigin&quot;).set(&quot;parameter&quot;,{key:key}).flushAsync();
                         </ClientEvent>
             <Property name="caption">鏌ヨ</Property>
             <Property name="iconClass">fa fa-search</Property>
@@ -1064,5 +1164,26 @@
       <Property name="property">cname</Property>
       <Property name="assignmentMap">user=cname</Property>
     </DataSetDropDown>
+    <AjaxAction id="ajaxQualityPrint">
+      <Property name="service">qualityManagerPR#printQualityBill</Property>
+      <Property name="executingMessage">姝e湪鎵ц鎵撳嵃鈥︹��</Property>
+    </AjaxAction>
+    <UploadAction id="uploadFile">
+      <ClientEvent name="onFileUploaded">var fileId = arg.returnValue;&#xD;
+        if(fileId==(&quot;10&quot;)){&#xD;
+        $alert(&quot;涓婁紶澶辫触锛氶檮浠跺悕绉颁负绌恒��&quot;);&#xD;
+        return;&#xD;
+        }&#xD;
+        if(fileId==(&quot;20&quot;)){&#xD;
+        $alert(&quot;涓婁紶澶辫触锛氶檮浠朵笉鏄痯df鏂囦欢銆�&quot;);&#xD;
+        return;&#xD;
+        }&#xD;
+var data = view.get(&quot;#dsMain.data:#&quot;);&#xD;
+data.set(&quot;fileId&quot;,fileId);&#xD;
+data.set(&quot;fileName&quot;,arg.file.name);&#xD;
+data.set(&quot;fileTime&quot;,new Date);</ClientEvent>
+      <Property name="fileResolver">myUploadProcessor#uploadCommonFile</Property>
+      <Filters/>
+    </UploadAction>
   </View>
 </ViewConfig>
diff --git a/igds-core/src/main/java/com/ld/igds/m/view/QualityManagerPR.java b/igds-core/src/main/java/com/ld/igds/m/view/QualityManagerPR.java
index 63588b7..903c971 100644
--- a/igds-core/src/main/java/com/ld/igds/m/view/QualityManagerPR.java
+++ b/igds-core/src/main/java/com/ld/igds/m/view/QualityManagerPR.java
@@ -5,10 +5,13 @@
 import com.bstek.dorado.annotation.Expose;
 import com.bstek.dorado.data.provider.Page;
 import com.ld.igds.check.CheckStandardManager;
-import com.ld.igds.m.ManageUtil;
+import com.ld.igds.check.dto.CheckItemData;
+import com.ld.igds.m.ReportManage;
 import com.ld.igds.m.service.HQualityManageService;
+import com.ld.igds.models.Depot;
 import com.ld.igds.models.DicTrigger;
 import com.ld.igds.models.MQuality;
+import com.ld.igds.view.service.HDepotService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
@@ -29,6 +32,10 @@
     private HQualityManageService qualityManageService;
     @Autowired
     private CheckStandardManager checkStandardManager;
+    @Autowired
+    private ReportManage reportManage;
+    @Autowired
+    private HDepotService depotService;
 
     /**
      * 妫�楠岀被鍒�
@@ -37,14 +44,6 @@
      *
      * @return
      */
-//    @DataProvider
-//    public List<DicTrigger> triggerType() {
-//        List<DicTrigger> list = new ArrayList<DicTrigger>();
-//        list.add(new DicTrigger("01", "婊′粨鍒濇"));
-//        list.add(new DicTrigger("02", "鍑轰粨妫�楠�"));
-//        list.add(new DicTrigger("03", "鏈堝害鏅"));
-//        return list;
-//    }
     @DataProvider
     public List<DicTrigger> triggerType() {
         List<DicTrigger> list = new ArrayList<DicTrigger>();
@@ -116,15 +115,39 @@
      */
     @DataResolver
     public void saveQuality(MQuality data) {
-        String id = "";
         if (StringUtils.isEmpty(data.getId())) {
-            id = ManageUtil.createQualityId(data.getType(), data.getTime());
+            data.setId( "ZJ_" + qualityManageService.getIdByTime(data.getTime()));
         }
-        qualityManageService.saveQuality(id, data);
+        try {
+            qualityManageService.saveQuality(data.getId(), data);
+            //淇濆瓨璐т綅璐ㄦ鏁版嵁
+            Depot depot = depotService.getDepotById(data.getCompanyId(), data.getDepotId());
+            depot.setCheckDate(data.getTime());
 
-        //淇濆瓨妫�娴嬬殑鍖栭獙椤逛俊鎭�
-        if (null != data.getCheckItems()) {
-            checkStandardManager.updateCheckItems(id, null, data.getCheckItems());
+            //淇濆瓨妫�娴嬬殑鍖栭獙椤逛俊鎭�
+            if (null != data.getCheckItems()) {
+                checkStandardManager.updateCheckItems(data.getId(), null, data.getCheckItems());
+                List<CheckItemData> checkItems = data.getCheckItems();
+
+                for (CheckItemData checkItem : checkItems) {
+                    if("C01".equals(checkItem.getStandardId())){
+                        String value = checkItem.getValue();
+                        depot.setPerWet(Double.valueOf(value));
+                    }
+                    if("C02".equals(checkItem.getStandardId())){
+                        String value = checkItem.getValue();
+                        depot.setPerImpurity(Double.valueOf(value));
+                    }
+                    if("C03".equals(checkItem.getStandardId())){
+                        String value = checkItem.getValue();
+                        depot.setBulkWeight(Double.valueOf(value));
+                    }
+                }
+            }
+
+            depotService.updateDepot(depot);
+        } catch (Exception e) {
+            e.printStackTrace();
         }
     }
 
@@ -139,4 +162,29 @@
         return qualityManageService.delQuality(data);
     }
 
+    /**
+     * qualityManagerPR#getPer
+     *
+     * @param checkId
+     * @return
+     */
+    @Expose
+    public CheckItemData getPer(String checkId) {
+        return qualityManageService.getCheckItem(checkId);
+    }
+
+    /**
+     * qualityManagerPR#printQualityBill 鎵撳嵃璐ㄦ鎶ュ憡鍗�
+     *
+     * @param data
+     * @return
+     */
+    @Expose
+    public String printQualityBill(MQuality data) {
+        if (StringUtils.isEmpty(data.getFoodVariety())) {
+            return "绮儏鍝佺涓虹┖锛屼笉鏀寔鎵撳嵃锛�";
+        }
+        return reportManage.printQualityBill(data);
+    }
+
 }
diff --git a/igds-core/src/main/java/com/ld/igds/models/MQuality.java b/igds-core/src/main/java/com/ld/igds/models/MQuality.java
index 49176be..9cf9038 100644
--- a/igds-core/src/main/java/com/ld/igds/models/MQuality.java
+++ b/igds-core/src/main/java/com/ld/igds/models/MQuality.java
@@ -152,4 +152,19 @@
     @Transient
     private List<CheckItemData> checkItems;
 
+    /**
+     * --------闄勪欢--------
+     **/
+    @Column(name = "FILE_ID_", length = 30)
+    @PropertyDef(label = "闄勪欢id")
+    private String fileId;
+
+    @Column(name = "FILE_NAME_", length = 50)
+    @PropertyDef(label = "闄勪欢鍚嶇О")
+    private String fileName;
+
+    @Column(name = "FILE_TIME_")
+    @PropertyDef(label = "闄勪欢涓婁紶鏃堕棿")
+    private Date fileTime;
+
 }
diff --git a/igds-core/src/main/java/com/ld/igds/view/service/HDepotStoreService.java b/igds-core/src/main/java/com/ld/igds/view/service/HDepotStoreService.java
index bf55d3a..6df9589 100644
--- a/igds-core/src/main/java/com/ld/igds/view/service/HDepotStoreService.java
+++ b/igds-core/src/main/java/com/ld/igds/view/service/HDepotStoreService.java
@@ -11,6 +11,7 @@
 
 import java.util.Date;
 import java.util.HashMap;
+import java.util.List;
 import java.util.Map;
 
 @Component
@@ -93,4 +94,25 @@
         }
         return null;
     }
+
+    public DepotStore getLastData(String depotId, Date time) {
+
+        StringBuilder hql = new StringBuilder();
+        hql.append(" from " + DepotStore.class.getName() + " where depotId = :depotId ");
+
+        Map<String, Object> args = new HashMap<>();
+        args.put("depotId", depotId);
+
+        if (null != time) {
+            hql.append(" and createDate <=:createDate");
+            args.put("createDate", time);
+        }
+        hql.append(" order by createDate desc");
+
+        List<DepotStore> list = this.query(hql.toString(), args);
+        if (null == list || list.isEmpty()) {
+            return null;
+        }
+        return list.get(0);
+    }
 }
diff --git a/igds-core/src/main/resources/mapper/CheckStandardMapper.xml b/igds-core/src/main/resources/mapper/CheckStandardMapper.xml
index 6e33d17..df0d176 100644
--- a/igds-core/src/main/resources/mapper/CheckStandardMapper.xml
+++ b/igds-core/src/main/resources/mapper/CheckStandardMapper.xml
@@ -153,5 +153,16 @@
           AND FOOD_VARIETY_ = #{foodVariety}
         ORDER by STANDARD_ID_ + 0
     </select>
+    <select id="getCheckItemByParam" resultType="com.ld.igds.check.dto.CheckItemData">
+        select
+        VALUE_ as value
+        from
+        D_CHECK_ITEM
+        <where>
+            <if test="data.companyId != null and data.companyId != '' ">COMPANY_ID_= #{data.companyId}</if>
+            <if test="data.checkId != null and data.checkId != '' ">AND CHECK_ID_ = #{data.checkId}</if>
+            <if test="data.standardId != null and data.standardId != '' ">AND STANDARD_ID_ = #{data.standardId}</if>
+        </where>
+    </select>
 
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.3