//初始化模板 initModel = function () { if (CACHE_PRINT_MODEL.size > 0) { return; } $.ajax({ type: "POST", url: "../../basic/grain/build-print-model-all", data: JSON.stringify({ depotId: depotId }), dataType: "json", contentType: "application/json;charset=UTF-8", success: function (result) { if (result.code != "0000") { layer.msg(result.msg); return null; } else { //存放在缓存中 CACHE_PRINT_MODEL = result.data; } }, error: function () { layer.msg("初始化模板失败!!"); } }); }; /** * 单仓打印,如果直接返回的模板信息为NULL,重新获取下模板 * @param grainData */ toPrintSingle = function (grainData) { var html = null; 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[key]; if (modelData) { html = builderModelByType(modelData, grainData); previewA4(html); return; } console.log("---------重新获取模板--------"); $.ajax({ type: "POST", url: "../../basic/grain/build-print-model", data: JSON.stringify({ depotId: depotId, depotType: depotData.depotType, cableRule: grainData.cable, cableCir: grainData.cableCir }), dataType: "json", contentType: "application/json;charset=UTF-8", success: function (result) { if (result.code != "0000") { layer.alert("服务器获取打印模板失败,请重新操作-" + result.msg); return; } else { html = builderModelByType(result.data, grainData); previewA4(html); return; } }, error: function () { layer.alert("服务器获取打印模板失败!!!"); } }); }; /** * 获取模板 * @param grainData */ builderModel = function (grainData) { 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[key]; if (modelData) { // return builderModelStep2(modelData, grainData); return builderModelByType(modelData, grainData); } else { return null; } }; /** * 获取模板后添加数据 * @param grainData */ builderModelByType = function (modelData, grainData) { var depotData = grainData.depotData; //动态数据信息--平方仓 if (DepotType.T_01 == depotData.depotType || DepotType.T_05 == depotData.depotType) { return builderModelLay(grainData); } else if (DepotType.T_02 == depotData.depotType) { return builderModelCir(modelData, grainData); } else if (DepotType.T_03 == depotData.depotType) { return builderModelCir(modelData, grainData); } else if (DepotType.T_04 == depotData.depotType) { return builderModelCir(modelData, grainData); } else { return builderModelLay(modelData, grainData); } }; /** * 获取模板后添加数据--筒仓 * @param grainData */ builderModelCir = function (modelData, grainData) { 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 <= -100.0 ? "备用" : grainData.tempIn) .replace("c_hIn", grainData.humidityIn <= -100.0 ? "备用" : grainData.humidityIn) .replace("c_tOut", grainData.tempOut <= -100.0 ? "备用" : grainData.tempOut) .replace("c_hOut", grainData.humidityOut <= -100.0 ? "备用" : grainData.humidityOut) .replace("c_depotType", depotData.depotTypeName == null ? "/" : depotData.depotTypeName) .replace("c_storeDate", depotData.storeDate == null ? "/" : depotData.storeDate.substring(0, 10)) .replace("c_foodLocation", depotData.foodLocation == null ? "/" : depotData.foodLocation) .replace("c_foodVariety", depotData.foodVarietyName == null ? "/" : depotData.foodVarietyName) .replace("c_perWet", depotData.perWet == null ? "/" : depotData.perWet) .replace("c_perImpurity", depotData.perImpurity == null ? "/" : depotData.perImpurity) .replace("c_bulkWeight", depotData.bulkWeight == null ? "/" : depotData.bulkWeight) .replace("c_storeDate", depotData.storeDate == null ? "/" : depotData.storeDate) .replace("c_storageReal", depotData.storageReal == null ? "/" : (Number(depotData.storageReal) / 1000).toFixed(2)) .replace("c_checkUser", grainData.checkUser == null ? "/" : 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); } return model; }; /** * 平方仓打印报表 */ builderModelLay = function (grainData) { var companyId = grainData.companyId; var depotData = grainData.depotData; var quality = grainData.mquality; var qualityItemMap = {}; if (quality) { var item = quality.checkItems; if (item) { for (var i = 0; i < item.length; i++) { qualityItemMap[item[i].standardId] = item[i]; } } } var cable = grainData.cable; var attr = cable.split("-"); var numZ = attr[0];//层配置 var numY = attr[1];//行配置 var numX = attr[2];//列配置 var listLays = grainData.listLays; var model = "\n" + "粮情报表模版" + " \n" + "\n" + ""; model += "
\n" + "\n"; if (dept) { model += dept.name; } else { model += "--XXX--粮库" } model += "\n"; model += ""; model += depotData.name; if (compareData) { model += "    粮情报表(层基准) 对比 " + compareData.batchId + "\n"; } else { model += "    粮情报表(层基准)\n"; } model += "
天气:"; model += grainData.weather == null ? "" : grainData.weather; model += "  方向:"; model += depotData.orientation == null ? "" : depotData.orientation model += "检测时间:"; model += grainData.receiveDate; model += "
"; //动态配置 model += ""; //动态添加列配置 for (var x = 1; x <= numX; x++) { model += ""; } model += ""; //动态添加采集点信息 Y for (var y = 1; y <= numY; y++) { for (var z = 1; z <= numZ; z++) { model += ""; if (1 == z) { model += ""; } if (z == numZ) { model += ""; } else { model += ""; } for (var x = numX; x >= 1; x--) { //值的格式:cell+层+行+列 if (z == numZ) { model += ""; } else { model += ""; } } model += ""; } } model += "
第" + x + "列
" + y + "行" + z + "层" + z + "层c_" + z + y + x + "c_" + z + y + x + "
"; //开始添加粮情整体数据 model += ""; model += ""; model += ""; model += ""; //遍历每层的信息 var layData; for (var i = 0; i < listLays.length; i++) { layData = listLays[i]; model += ""; } //整仓 model += ""; //固定栏位值 model += ""; model += ""; model += ""; model += ""; model += ""; model += ""; model += ""; model += ""; model += ""; model += ""; model += "";//发芽率 model += ""; if ('5336' == companyId) { model += ""; } else { model += ""; } model += "";//没有填写 model += ""; model += ""; model += ""; model += ""; model += "
粮情分析:" + grainData.remark + "
最高最低平均周均内均
"; model += layData.fz + "层"; model += ""; model += layData.tempMax; model += ""; model += layData.tempMin; model += ""; model += layData.tempAve; model += ""; model += layData.tempAveOut; model += ""; model += layData.tempAveIn; model += "
整仓"; model += grainData.tempMax; model += ""; model += grainData.tempMin; model += ""; model += grainData.tempAve; model += ""; model += ""; model += "
仓温:" + (grainData.tempIn <= -100.0 ? "备用" : grainData.tempIn) + "仓湿:" + (grainData.humidityIn <= -100.0 ? "备用" : grainData.humidityIn) + "气温:" + (grainData.tempOut <= -100.0 ? "备用" : grainData.tempOut) + "气湿:" + (grainData.humidityOut <= -100.0 ? "备用" : grainData.humidityOut) + "
仓房类型" + (depotData.depotTypeName == null ? '/' : depotData.depotTypeName) + "入仓日期" + (depotData.storeDate == null ? '/' : depotData.storeDate.substring(0, 10)) + "
粮食品种" + (depotData.foodVarietyName == null ? '/' : depotData.foodVarietyName) + "实际储量(吨)" + (depotData.storageReal == null ? '/' : (Number(depotData.storageReal) / 1000).toFixed(2)) + "
水分(入仓% ~ 当前%)" + (depotData.perWet == null ? '/' : depotData.perWet) + " ~ " + getCheckValue(qualityItemMap, "C01") + "出糙率(%)" + getCheckValue(qualityItemMap, "C09") + "
发芽率(%)" + getCheckValue(qualityItemMap, "C32") + "粮食产地" + (depotData.foodLocation == null ? '/' : depotData.foodLocation) + "
容重(g/L)" + getCheckValue(qualityItemMap, "C03") + "
容重(kg/m3)" + getCheckValue(qualityItemMap, "C03") + "面筋持水率(%)" + getCheckValue(qualityItemMap, "C08") + "
杂质(%)" + getCheckValue(qualityItemMap, "C02") + "不完善粒(%)"; model += getCheckValue(qualityItemMap, "C04"); model += "
检测人" + (grainData.checkUser == null ? '/' : grainData.checkUser) + "保管员" + (depotData.storeKeeperName == null ? '/' : depotData.storeKeeperName) + "
"; //添加尾部信息 model += "
"; model += "注:#表示层最低温  *表示层最高温  \<表示电缆开始位置\>"; model += "制表时间:" + grainData.sysDate + "
"; model += ""; //点位信息赋值 model = attrPointsLay(model, grainData.listPoints, listLays, numX); return model; }; //根据采集点赋值,注意数据库生成的坐标是从0开始的 attrPointsLay = function (model, listPoints, listLays, numX) { var point; var key; var lay; var temp; for (var i = 0; i < listPoints.length; i++) { point = listPoints[i]; temp = point.temp; key = "c_" + (point.z + 1) + (point.y + 1) + (point.x + 1); //判断层高低温 lay = listLays[point.z]; 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; }; /** * 模板缓存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 = (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 == ((point.z + 1) + "1" + numX) + "_c") { // 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 temp; for (var i = 0; i < listPoints.length; i++) { point = listPoints[i]; temp = point.temp; row = listRows[point.y]; //行最大 if (row.y <= listRows.length) { key = "c_max_" + (row.y + 1); model = model.replace(key, row.tempMax); key = "c_min_" + (row.y + 1); model = model.replace(key, row.tempMin); key = "c_ave_" + (row.y + 1); model = model.replace(key, row.tempAve); } key = (point.z + 1) + '_' + (point.y + 1) + '_' + (point.x + 1); if (-100.0 == temp) { temp = "备用"; } if (-101.0 == temp) { temp = "故障"; } if (temp == row.tempMax) { temp = temp + "*"; } if (temp == row.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 = (point.x + 1) + "_" + (point.y + 1) + "_" + (point.z + 1); //判断层高低温 if (-100.0 == temp) { temp = "备用"; } if (-101.0 == temp) { temp = "故障"; } if (-102.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(); }; getCheckValue = function (qualityItemMap, key) { try { return (qualityItemMap[key].value ? qualityItemMap[key].value : "/"); } catch (e) { console.log(e); return "/"; } return "/"; };