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(); } } } } } 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; } } 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; } 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); } 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")) { //ä¸ä¼ 失败ï¼é件䏿¯pdfæä»¶ã 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; } } 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'>åå·ï¼serId</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>æ ·å代表æ°é</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'>åå·ï¼serId</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>æ ·å代表æ°é</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'>ç¼ç ï¼serId</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>æ ·å代表æ°é</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>黿²éæ¯ç´ B1(μ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'>åå·ï¼serId</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>æ ·å代表æ°é</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'>åå·ï¼serId</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>æ ·å代表æ°é</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>黿²éæ¯ç´ B1</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'>åå·ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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'>åå·ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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'>ç¼ç ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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>黿²éæ¯ç´ B1(μ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'>åå·ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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'>åå·ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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>黿²éæ¯ç´ B1</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'>åå·ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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>å ¶ä»æ£é(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'>åå·ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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>å ¶ä»æ£é(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'>ç¼ç ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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>å ¶ä»æ£é(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>黿²éæ¯ç´ B1(μ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'>åå·ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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>å ¶ä»æ£é(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'>åå·ï¼serId</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>ä¿¡ç¨ä»£ç (身份è¯å·)</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>å ¶ä»æ£é(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>黿²éæ¯ç´ B1</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>"; } 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(); // éååéªç»æï¼åå ¥mapéåä¸ 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; } } 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; } /** * è·åå½åæ£éªæ¶é´æåä¸ä¸ªID * * @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; } } 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(); }; 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("#ajaxGetDepot").set("parameter",depotId).execute(function(result){
 if(result){
 var data = view.get("#dsMain.data:#");
 data.set("foodLocation",result.foodLocation);
 data.set("foodLevel",result.foodLevel);
 data.set("foodVariety",result.foodVariety);
 data.set("foodType",result.foodType);
 data.set("storeDate",result.storeDate);
 }
 });
 };
 @@ -469,8 +523,29 @@ data.set("checkItems",result);
 }
 }); 
 };
 /**
 * é¢è§PDFæä»¶
 */
 showFilePdf = function(){
 var cur = view.get("#dsMain.data:#");
 var fileName = cur.get("fileId");
 var fileTime = new Date(cur.get("fileTime")).formatDate("y-m-d H:i:s");
 if(!fileName){
 $alert("没æè·åå°æä»¶åç§°ï¼æ æ³é¢è§ã");
 return;
 }
 if(!cur.get("fileTime")){
 $alert("没æè·åå°éä»¶ä¸ä¼ æ¶é´ï¼æ æ³è®¿é®ã");
 return;
 }
 
 var url = "./basic/file/show-pdf?fileName="+fileName+"&fileTime="+fileTime+"&filePathType=common";
 
 window.open(url, "_blank");
 }; </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> @@ -564,8 +639,25 @@ <ClientEvent name="onClick">view.get("#dsMain").flushAsync();
 </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("#dsMain.data:#");
 if (!data) {
 $alert("请å éæ©æ°æ®ï¼");
 return;
 }
 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("#dsParam.data");
 view.get("#dsMain").set("parameter",param.toJSON()).flushAsync(); </ClientEvent> view.get("#dsMain").set("parameter",param.toJSON()).flushAsync(); </ClientEvent> <Property name="caption">æ¥è¯¢</Property> <Property name="exClassName">btn-default</Property> <Property name="iconClass">fa fa-refresh</Property> @@ -702,8 +793,7 @@ }
 view.get("#uaAction").set("parameter",data).execute(function(){
 self.get("parent").hide();
 }); </ClientEvent> }); </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> @@ -932,33 +1059,6 @@ </DataColumn> <DataColumn name="unit"> <Property name="property">unit</Property> <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> @@ -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">æ£å¨æ§è¡æå°â¦â¦</Property> </AjaxAction> <UploadAction id="uploadFile"> <ClientEvent name="onFileUploaded">var fileId = arg.returnValue;
 if(fileId==("10")){
 $alert("ä¸ä¼ 失败ï¼éä»¶å称为空ã");
 return;
 }
 if(fileId==("20")){
 $alert("ä¸ä¼ 失败ï¼é件䏿¯pdfæä»¶ã");
 return;
 }
 var data = view.get("#dsMain.data:#");
 data.set("fileId",fileId);
 data.set("fileName",arg.file.name);
 data.set("fileTime",new Date);</ClientEvent> <Property name="fileResolver">myUploadProcessor#uploadCommonFile</Property> <Filters/> </UploadAction> </View> </ViewConfig> 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()); 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); } } 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; } 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); } } 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>