| /** | 
|  * 根据粮情数据到后台获取打印模板,然后开始渲染数据 | 
|  */ | 
| builderModel = function (grainData, isPrint) { | 
|     var depotData = grainData.depotData; | 
|     if (!depotData.depotType) { | 
|         depotData.depotType = DepotType.T_01; | 
|     } | 
|     var key = builderModelKey(depotData.depotType, grainData.cable, grainData.cableCir); | 
|   | 
|     var modelData = CACHE_PRINT_MODEL.get(key); | 
|     if (modelData) { | 
|         return builderModelStep2(modelData, grainData, isPrint); | 
|     } | 
|   | 
|     //从后台获取报表模板 | 
|     $.ajax({ | 
|         type: "POST", | 
|         url: "../../basic/grain/build-print-model", | 
|         dataType: "json", | 
|         contentType: "application/json;charset=UTF-8", | 
|         data: JSON.stringify({ | 
|             companyId: grainData.companyId, | 
|             cableRule: grainData.cable, | 
|             cableCir: grainData.cableCir, | 
|             depotId: grainData.depotId, | 
|             depotType: depotData.depotType | 
|         }), | 
|         success: function (result) { | 
|             if (result.code != "0000") { | 
|                 layer.msg(result.msg); | 
|                 return null; | 
|             } else { | 
|                 //存放在缓存中 | 
|                 modelData = result.data; | 
|                 CACHE_PRINT_MODEL.set(key, modelData); | 
|                 return builderModelStep2(modelData, grainData, isPrint); | 
|             } | 
|         }, | 
|         error: function () { | 
|             layer.msg("获取粮情的打印模板失败!!"); | 
|         } | 
|     }); | 
| }; | 
|   | 
|   | 
| /** | 
|  * 获取模板后添加数据 | 
|  * @param grainData | 
|  * @param isPrint | 
|  */ | 
| builderModelStep2 = function (modelData, grainData, isPrint) { | 
|     var attCable = grainData.cable.split("-"); | 
|     numZ = attCable[0]; | 
|     numY = attCable[1]; | 
|     numX = attCable[2]; | 
|     var model = modelData.model; | 
|   | 
|     var depotData = grainData.depotData; | 
|     //替换基础数据 | 
|     if (dept) { | 
|         model = model.replace("companyName", dept.name); | 
|     } else { | 
|         model = model.replace("companyName", "智慧粮库"); | 
|     } | 
|     model = model.replace("depotName", depotData.name) | 
|         .replace("weather", grainData.weather == null ? "" : grainData.weather) | 
|         .replace("orientation", depotData.orientation == null ? "" : depotData.orientation) | 
|         .replace("checkDate", grainData.receiveDate) | 
|         .replace("remark", grainData.remark == null ? "正常" : grainData.remark) | 
|         .replace("c_max_all", grainData.tempMax) | 
|         .replace("c_min_all", grainData.tempMin) | 
|         .replace("c_ave_all", grainData.tempAve); | 
|   | 
|     model = model.replace("c_out_ave_all", "");//暂时不用 | 
|     model = model.replace("c_in_ave_all", "");//暂时不用 | 
|   | 
|     model = model.replace("c_tIn", grainData.tempIn) | 
|         .replace("c_hIn", grainData.humidityIn) | 
|         .replace("c_tOut", grainData.tempOut) | 
|         .replace("c_hOut", grainData.humidityOut) | 
|         .replace("c_depotType", depotData.depotTypeName) | 
|         .replace("c_storeDate", depotData.storeDate == null ? "" : depotData.storeDate) | 
|         .replace("c_foodLocation", depotData.foodLocation == null ? "" : depotData.foodLocation) | 
|         .replace("c_perImpurity", depotData.perImpurity == null ? "" : depotData.perImpurity) | 
|         .replace("c_storeDate", depotData.storeDate == null ? "" : depotData.storeDate) | 
|         .replace("c_checkUser", grainData.checkUser) | 
|         .replace("c_storeKeeperName", depotData.storeKeeperName == null ? "" : depotData.storeKeeperName) | 
|         .replace("createBillDate", grainData.sysDate); | 
|   | 
|     //动态数据信息--平方仓 | 
|     if (DepotType.T_01 == depotData.depotType) { | 
|         if("ROW" == modelData.modelType){ | 
|             model = addPointsRow1(model, grainData, numX); | 
|         }else{ | 
|             model = addPoints1(model, grainData, numX); | 
|         } | 
|     } | 
|     //动态数据信息--浅圆仓 | 
|     if (DepotType.T_02 == depotData.depotType) { | 
|         model = addPoints4(model, grainData); | 
|     } | 
|     //动态数据信息--油罐 | 
|     if (DepotType.T_03 == depotData.depotType) { | 
|         var oilHeight = grainData.oilHeight; | 
|         if (oilHeight) { | 
|             var att = oilHeight.split("-"); | 
|             model = model.replace("c_depotHeight", att[1]).replace("c_oilHeight", att[0]); | 
|         } else { | 
|             model = model.replace("c_depotHeight", "#").replace("c_oilHeight", "#"); | 
|         } | 
|         model = addPoints4(model, grainData); | 
|     } | 
|     //动态数据信息--立筒仓 | 
|     if (DepotType.T_04 == depotData.depotType) { | 
|         model = addPoints4(model, grainData); | 
|     } | 
|   | 
|     if (!isPrint) return model; | 
|     layer.msg("开始调用打印机……"); | 
|     previewA4(model); | 
|     return model; | 
| }; | 
|   | 
| /** | 
|  * 模板缓存KEY的生成 | 
|  * @param depotType | 
|  * @param cable | 
|  * @param cableCir | 
|  */ | 
| builderModelKey = function (depotType, cable, cableCir) { | 
|     if (cableCir) { | 
|         return depotType + "_" + cable + "_" + cableCir; | 
|     } | 
|     return depotType + "_" + cable; | 
| }; | 
|   | 
| //根据采集点赋值,注意数据库生成的坐标是从0开始的 | 
| addPoints1 = function (model, numX) { | 
|     var listPoints = grainData.listPoints; | 
|     var listLays = grainData.listLays; | 
|     var point; | 
|     var key; | 
|     var lay; | 
|     var temp; | 
|     for (var i = 0; i < listPoints.length; i++) { | 
|         point = listPoints[i]; | 
|         temp = point.temp; | 
|         lay = listLays[point.z]; | 
|         //层最 | 
|         if (lay.z <= listLays.length) { | 
|             key = "c_max_" + (lay.z + 1); | 
|             model = model.replace(key, lay.tempMax); | 
|             key = "c_min_" + (lay.z + 1); | 
|             model = model.replace(key, lay.tempMin); | 
|             key = "c_ave_" + (lay.z + 1); | 
|             model = model.replace(key, lay.tempAve); | 
|             key = "c_out_ave_" + (lay.z + 1); | 
|             model = model.replace(key, lay.tempAveOut); | 
|             key = "c_in_ave_" + (lay.z + 1); | 
|             model = model.replace(key, lay.tempAveIn); | 
|         } | 
|   | 
|         key = "c_" + (point.z + 1) + (point.y + 1) + (point.x + 1); | 
|         if (-100.0 == temp) { | 
|             temp = "备用"; | 
|         } | 
|         if (-101.0 == temp) { | 
|             temp = "故障"; | 
|         } | 
|         if (temp == lay.tempMax) { | 
|             temp = temp + "*"; | 
|         } | 
|         if (temp == lay.tempMin) { | 
|             temp = temp + "#"; | 
|         } | 
|         //key = c_z+1 + 1 + numX表示第一列 | 
|         if (key == ("c_" + (point.z + 1) + "1" + numX)) { | 
|             temp = "<" + temp + ">"; | 
|         } | 
|         model = model.replace(key, temp); | 
|     } | 
|     return model; | 
| }; | 
|   | 
| //横向通风赋值 | 
| addPointsRow1 = function (model, grainData,numX) { | 
|     var listPoints = grainData.listPoints; | 
|     var listRows = grainData.listRows; | 
|     var point; | 
|     var key; | 
|     var lay; | 
|     var temp; | 
|     for (var i = 0; i < listRows.length; i++) { | 
|         point = listPoints[i]; | 
|         temp = point.temp; | 
|         row = listRows[point.y]; | 
|         //行最大 | 
|         if (row.y <= listRows.length) { | 
|             key = "c_max_" + (row.z + 1); | 
|             model = model.replace(key, row.tempMax); | 
|             key = "c_min_" + (row.z + 1); | 
|             model = model.replace(key, row.tempMin); | 
|             key = "c_ave_" + (row.z + 1); | 
|             model = model.replace(key, row.tempAve); | 
|         } | 
|   | 
|         key = "c_" + (point.z + 1) + (point.y + 1) + (point.x + 1); | 
|         if (-100.0 == temp) { | 
|             temp = "备用"; | 
|         } | 
|         if (-101.0 == temp) { | 
|             temp = "故障"; | 
|         } | 
|         if (temp == lay.tempMax) { | 
|             temp = temp + "*"; | 
|         } | 
|         if (temp == lay.tempMin) { | 
|             temp = temp + "#"; | 
|         } | 
|         //key = c_z+1 + 1 + numX表示第一列 | 
|         if (key == ("c_" + (point.z + 1) + "1" + numX)) { | 
|             temp = "<" + temp + ">"; | 
|         } | 
|         model = model.replace(key, temp); | 
|     } | 
|     return model; | 
| }; | 
|   | 
| //筒仓添加采集点和层温度信息 | 
| addPoints4 = function (model, grainData) { | 
|     // console.log(grainData); | 
|     var listPoints = grainData.listPoints; | 
|     var listLays = grainData.listLays; | 
|     var point; | 
|     var key; | 
|     var lay; | 
|     var temp; | 
|     for (var i = 0; i < listPoints.length; i++) { | 
|         point = listPoints[i]; | 
|         lay = listLays[point.z]; | 
|         temp = point.temp; | 
|         //层最 | 
|         if (lay.z <= listLays.length) { | 
|             key = "c_max_" + lay.z; | 
|             model = model.replace(key, lay.tempMax); | 
|             key = "c_min_" + lay.z; | 
|             model = model.replace(key, lay.tempMin); | 
|             key = "c_ave_" + lay.z; | 
|             model = model.replace(key, lay.tempAve); | 
|             key = "c_out_ave_" + lay.z; | 
|             model = model.replace(key, lay.tempAveOut); | 
|             key = "c_in_ave_" + lay.z; | 
|             model = model.replace(key, lay.tempAveIn); | 
|         } | 
|   | 
|         key = "c_" + (point.x + 1) + "_" + (point.y + 1) + "_" + (point.z + 1); | 
|         //判断层高低温 | 
|         if (-100.0 == temp) { | 
|             temp = "备用"; | 
|         } | 
|         if (-101.0 == temp) { | 
|             temp = "故障"; | 
|         } | 
|         if (temp == lay.tempMax) { | 
|             temp = temp + "*"; | 
|         } | 
|         if (temp == lay.tempMin) { | 
|             temp = temp + "#"; | 
|         } | 
|         model = model.replace(key, temp); | 
|     } | 
|     return model; | 
| }; | 
| /** | 
|  * 根据HTML模版打印为A4 | 
|  * @param strHtml | 
|  */ | 
| previewA4 = function (strHtml) { | 
|     var LODOP = CLODOP; | 
|     LODOP.SET_PRINT_PAGESIZE(1, 0, 0, "A4"); | 
|     LODOP.PRINT_INIT("粮情报表"); | 
|     LODOP.ADD_PRINT_HTM(30, 40, "180mm", "100%", strHtml); | 
|     //设置默认满张打印 | 
|     LODOP.SET_PRINT_MODE("PRINT_PAGE_PERCENT", "Full-Page"); | 
|     LODOP.PREVIEW(); | 
| }; |