{"id":121,"date":"2026-05-19T08:58:00","date_gmt":"2026-05-19T00:58:00","guid":{"rendered":"https:\/\/carbonpro.com.cn\/?page_id=121"},"modified":"2026-05-19T08:58:42","modified_gmt":"2026-05-19T00:58:42","slug":"121-2","status":"publish","type":"page","link":"https:\/\/carbonpro.com.cn\/index.php\/121-2\/","title":{"rendered":""},"content":{"rendered":"<p>CARBON_DB = {<br \/>\n    # 1.\u8d35\u91d1\u5c5e\u5bcc\u96c6\u7cfb\u5217<br \/>\n    &#8220;\u63d0\u91d1_\u6930\u58f3\u539f\u751f\u5438\u9644\u70ad&#8221;: {<br \/>\n        &#8220;\u9002\u7528\u573a\u666f&#8221;:&#8221;\u4f4e\u6ce5\u4f4e\u786b\u91d1\u77ff\u3001\u5e38\u6e29\u6c30\u5316\u5438\u9644\u3001\u9ad8\u89e3\u5438\u7387&#8221;,<br \/>\n        &#8220;\u6c34\u5206[%]&#8221;:(2.0,4.5),&#8221;\u7070\u5206[%]&#8221;:(1.5,3.0),&#8221;\u673a\u68b0\u5f3a\u5ea6[%]&#8221;:(96.0,99.5),<br \/>\n        &#8220;\u7898\u503c[mg\/g]&#8221;:(1100,1300),&#8221;\u4e9a\u7532\u84dd[mg\/g]&#8221;:(220,280),<br \/>\n        &#8220;\u5e38\u7528\u76ee\u6570&#8221;:[&#8220;6*12\u76ee&#8221;,&#8221;8*16\u76ee&#8221;,&#8221;10*20\u76ee&#8221;],<br \/>\n        &#8220;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;:(0.48,0.55),&#8221;\u5b54\u5f84\u7279\u6027&#8221;:&#8221;\u4e2d\u5927\u5b54\u4e3a\u4e3b&#8221;,<br \/>\n        &#8220;\u8010\u6e29\u4e0a\u9650[\u2103]&#8221;:180,&#8221;\u9002\u7528PH&#8221;:(8.0,12.5),&#8221;\u6708\u635f\u8017\u7387[%]&#8221;:(2.0,3.5),<br \/>\n        &#8220;\u89e3\u5438\u56de\u6536\u7387[%]&#8221;:(97.0,99.2),&#8221;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;:(7800,9200)<br \/>\n    },<br \/>\n    &#8220;\u63d0\u91d1_\u9ad8\u5f3a\u5ea6\u8010\u78e8\u6930\u58f3\u70ad&#8221;: {<br \/>\n        &#8220;\u9002\u7528\u573a\u666f&#8221;:&#8221;\u9ad8\u6ce5\u77ff\u3001\u6405\u62cc\u5267\u70c8\u3001\u5927\u6d41\u91cf\u5faa\u73af\u3001\u8010\u78e8\u4f18\u5148&#8221;,<br \/>\n        &#8220;\u6c34\u5206[%]&#8221;:(2.2,5.0),&#8221;\u7070\u5206[%]&#8221;:(2.0,4.0),&#8221;\u673a\u68b0\u5f3a\u5ea6[%]&#8221;:(98.0,99.8),<br \/>\n        &#8220;\u7898\u503c[mg\/g]&#8221;:(1050,1250),&#8221;\u4e9a\u7532\u84dd[mg\/g]&#8221;:(200,260),<br \/>\n        &#8220;\u5e38\u7528\u76ee\u6570&#8221;:[&#8220;5*10\u76ee&#8221;,&#8221;6*12\u76ee&#8221;],&#8221;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;:(0.50,0.58),<br \/>\n        &#8220;\u5b54\u5f84\u7279\u6027&#8221;:&#8221;\u4e2d\u5b54\u81f4\u5bc6&#8221;,&#8221;\u8010\u6e29\u4e0a\u9650[\u2103]&#8221;:175,&#8221;\u9002\u7528PH&#8221;:(7.5,12.8),<br \/>\n        &#8220;\u6708\u635f\u8017\u7387[%]&#8221;:(1.2,2.5),&#8221;\u89e3\u5438\u56de\u6536\u7387[%]&#8221;:(95.5,98.5),&#8221;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;:(8500,9800)<br \/>\n    },<br \/>\n    &#8220;\u63d0\u91d1_\u7164\u8d28\u7ecf\u6d4e\u578b\u63d0\u91d1\u70ad&#8221;: {<br \/>\n        &#8220;\u9002\u7528\u573a\u666f&#8221;:&#8221;\u4e2d\u4f4e\u54c1\u4f4d\u91d1\u77ff\u3001\u91cf\u4ea7\u4f7f\u7528\u3001\u63a7\u5236\u6210\u672c&#8221;,<br \/>\n        &#8220;\u6c34\u5206[%]&#8221;:(3.0,6.5),&#8221;\u7070\u5206[%]&#8221;:(4.0,8.0),&#8221;\u673a\u68b0\u5f3a\u5ea6[%]&#8221;:(93.0,97.5),<br \/>\n        &#8220;\u7898\u503c[mg\/g]&#8221;:(900,1100),&#8221;\u4e9a\u7532\u84dd[mg\/g]&#8221;:(160,210),<br \/>\n        &#8220;\u5e38\u7528\u76ee\u6570&#8221;:[&#8220;8*16\u76ee&#8221;,&#8221;10*20\u76ee&#8221;],&#8221;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;:(0.52,0.62),<br \/>\n        &#8220;\u5b54\u5f84\u7279\u6027&#8221;:&#8221;\u6df7\u5408\u5b54\u9699&#8221;,&#8221;\u8010\u6e29\u4e0a\u9650[\u2103]&#8221;:165,&#8221;\u9002\u7528PH&#8221;:(7.0,12.0),<br \/>\n        &#8220;\u6708\u635f\u8017\u7387[%]&#8221;:(3.5,6.0),&#8221;\u89e3\u5438\u56de\u6536\u7387[%]&#8221;:(92.0,96.0),&#8221;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;:(5200,6800)<br \/>\n    },<br \/>\n    &#8220;\u63d0\u91d1_\u4f4e\u7070\u5206\u89e3\u5438\u7cbe\u5236\u70ad&#8221;: {<br \/>\n        &#8220;\u9002\u7528\u573a\u666f&#8221;:&#8221;\u9ad8\u7eaf\u91d1\u63d0\u7eaf\u3001\u7535\u89e3\u51b6\u91d1\u9ad8\u7aef\u63d0\u70bc&#8221;,<br \/>\n        &#8220;\u6c34\u5206[%]&#8221;:(1.8,3.5),&#8221;\u7070\u5206[%]&#8221;:(0.8,2.0),&#8221;\u673a\u68b0\u5f3a\u5ea6[%]&#8221;:(95.0,99.0),<br \/>\n        &#8220;\u7898\u503c[mg\/g]&#8221;:(1150,1350),&#8221;\u4e9a\u7532\u84dd[mg\/g]&#8221;:(230,300),<br \/>\n        &#8220;\u5e38\u7528\u76ee\u6570&#8221;:[&#8220;8*16\u76ee&#8221;,&#8221;12*24\u76ee&#8221;],&#8221;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;:(0.47,0.53),<br \/>\n        &#8220;\u5b54\u5f84\u7279\u6027&#8221;:&#8221;\u5927\u5b54\u901a\u7545&#8221;,&#8221;\u8010\u6e29\u4e0a\u9650[\u2103]&#8221;:185,&#8221;\u9002\u7528PH&#8221;:(8.2,13.0),<br \/>\n        &#8220;\u6708\u635f\u8017\u7387[%]&#8221;:(2.2,3.2),&#8221;\u89e3\u5438\u56de\u6536\u7387[%]&#8221;:(98.0,99.6),&#8221;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;:(9300,11500)<br \/>\n    },<\/p>\n<p>    # 2.\u6c34\u8d28\u51c0\u5316\uff08\u751f\u6d3b\u51c0\u6c34+\u5de5\u4e1a\u6c61\u6c34\u5408\u5e76\uff09<br \/>\n    &#8220;\u6c34\u8d28\u51c0\u5316_\u98df\u54c1\u7ea7\u51c0\u6c34\u6930\u58f3\u70ad&#8221;: {<br \/>\n        &#8220;\u9002\u7528\u573a\u666f&#8221;:&#8221;\u751f\u6d3b\u996e\u7528\u6c34\u3001\u81ea\u6765\u6c34\u9664\u6c2f\u9664\u5473\u3001\u6c11\u7528\u51c0\u6c34\u7cfb\u7edf&#8221;,<br \/>\n        &#8220;\u6c34\u5206[%]&#8221;:(1.5,4.0),&#8221;\u7070\u5206[%]&#8221;:(1.0,3.5),&#8221;\u673a\u68b0\u5f3a\u5ea6[%]&#8221;:(95.0,98.5),<br \/>\n        &#8220;\u7898\u503c[mg\/g]&#8221;:(1000,1200),&#8221;\u4e9a\u7532\u84dd[mg\/g]&#8221;:(180,240),<br \/>\n        &#8220;\u5e38\u7528\u76ee\u6570&#8221;:[&#8220;10*20\u76ee&#8221;,&#8221;12*24\u76ee&#8221;],&#8221;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;:(0.45,0.52),<br \/>\n        &#8220;\u5b54\u5f84\u7279\u6027&#8221;:&#8221;\u5fae\u5b54\u53d1\u8fbe&#8221;,&#8221;\u8010\u6e29\u4e0a\u9650[\u2103]&#8221;:150,&#8221;\u9002\u7528PH&#8221;:(6.5,8.5),<br \/>\n        &#8220;\u6708\u635f\u8017\u7387[%]&#8221;:(1.0,2.2),&#8221;\u51c0\u5316\u8fbe\u6807\u7387[%]&#8221;:(82.0,95.0),&#8221;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;:(6800,8200)<br \/>\n    },<br \/>\n    &#8220;\u6c34\u8d28\u51c0\u5316_\u5de5\u4e1a\u6c61\u6c34\u7164\u8d28\u70ad&#8221;: {<br \/>\n        &#8220;\u9002\u7528\u573a\u666f&#8221;:&#8221;\u5de5\u4e1a\u5e9f\u6c34\u3001\u5370\u67d3\u7535\u9540\u6c61\u6c34\u3001COD\u964d\u89e3\u3001\u6c34\u4f53\u8131\u8272&#8221;,<br \/>\n        &#8220;\u6c34\u5206[%]&#8221;:(2.5,5.5),&#8221;\u7070\u5206[%]&#8221;:(5.0,10.0),&#8221;\u673a\u68b0\u5f3a\u5ea6[%]&#8221;:(90.0,96.0),<br \/>\n        &#8220;\u7898\u503c[mg\/g]&#8221;:(800,1000),&#8221;\u4e9a\u7532\u84dd[mg\/g]&#8221;:(140,190),<br \/>\n        &#8220;\u5e38\u7528\u76ee\u6570&#8221;:[&#8220;8*16\u76ee&#8221;],&#8221;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;:(0.53,0.65),<br \/>\n        &#8220;\u5b54\u5f84\u7279\u6027&#8221;:&#8221;\u4e2d\u5927\u5b54\u5c45\u591a&#8221;,&#8221;\u8010\u6e29\u4e0a\u9650[\u2103]&#8221;:145,&#8221;\u9002\u7528PH&#8221;:(6.0,9.0),<br \/>\n        &#8220;\u6708\u635f\u8017\u7387[%]&#8221;:(2.5,4.5),&#8221;COD\u53bb\u9664\u7387[%]&#8221;:(65.0,80.0),&#8221;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;:(4200,5600)<br \/>\n    },<\/p>\n<p>    # 3.\u5e9f\u6c14\u6cbb\u7406<br \/>\n    &#8220;\u5e9f\u6c14\u6cbb\u7406_\u70df\u6c14VOCs\u4e13\u7528\u70ad&#8221;: {<br \/>\n        &#8220;\u9002\u7528\u573a\u666f&#8221;:&#8221;\u9505\u7089\u70df\u6c14\u3001\u8f66\u95f4\u5f02\u5473\u3001VOCs\u6709\u673a\u5e9f\u6c14\u5438\u9644\u51c0\u5316&#8221;,<br \/>\n        &#8220;\u6c34\u5206[%]&#8221;:(3.0,6.0),&#8221;\u7070\u5206[%]&#8221;:(6.0,12.0),&#8221;\u673a\u68b0\u5f3a\u5ea6[%]&#8221;:(88.0,95.0),<br \/>\n        &#8220;\u7898\u503c[mg\/g]&#8221;:(700,950),&#8221;\u4e9a\u7532\u84dd[mg\/g]&#8221;:(120,180),<br \/>\n        &#8220;\u5e38\u7528\u76ee\u6570&#8221;:[&#8220;4*8\u76ee&#8221;,&#8221;6*12\u76ee&#8221;],&#8221;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;:(0.55,0.68),<br \/>\n        &#8220;\u5b54\u5f84\u7279\u6027&#8221;:&#8221;\u5927\u5b54\u4e3a\u4e3b&#8221;,&#8221;\u8010\u6e29\u4e0a\u9650[\u2103]&#8221;:200,&#8221;\u9002\u7528PH&#8221;:(5.5,9.5),<br \/>\n        &#8220;\u6708\u635f\u8017\u7387[%]&#8221;:(3.0,5.0),&#8221;\u51c0\u5316\u6548\u7387[%]&#8221;:(70.0,88.0),&#8221;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;:(3800,5100)<br \/>\n    },<\/p>\n<p>    # 4.\u7269\u6599\u63d0\u7eaf\uff08\u98df\u54c1\u8131\u8272+\u6eb6\u5242\u56de\u6536\u5408\u5e76\uff09<br \/>\n    &#8220;\u7269\u6599\u63d0\u7eaf_\u98df\u54c1\u8131\u8272\u4e13\u7528\u70ad&#8221;: {<br \/>\n        &#8220;\u9002\u7528\u573a\u666f&#8221;:&#8221;\u7cd6\u6db2\u3001\u6cb9\u8102\u3001\u9152\u7c7b\u3001\u996e\u54c1\u8131\u8272\u7cbe\u5236&#8221;,<br \/>\n        &#8220;\u6c34\u5206[%]&#8221;:(1.2,3.8),&#8221;\u7070\u5206[%]&#8221;:(0.6,2.5),&#8221;\u673a\u68b0\u5f3a\u5ea6[%]&#8221;:(94.0,98.0),<br \/>\n        &#8220;\u7898\u503c[mg\/g]&#8221;:(1050,1250),&#8221;\u4e9a\u7532\u84dd[mg\/g]&#8221;:(210,270),<br \/>\n        &#8220;\u5e38\u7528\u76ee\u6570&#8221;:[&#8220;12*24\u76ee&#8221;,&#8221;20*40\u76ee&#8221;],&#8221;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;:(0.44,0.51),<br \/>\n        &#8220;\u5b54\u5f84\u7279\u6027&#8221;:&#8221;\u5747\u8861\u5b54\u9699&#8221;,&#8221;\u8010\u6e29\u4e0a\u9650[\u2103]&#8221;:160,&#8221;\u9002\u7528PH&#8221;:(5.0,8.0),<br \/>\n        &#8220;\u6708\u635f\u8017\u7387[%]&#8221;:(1.5,2.8),&#8221;\u8131\u8272\u6548\u7387[%]&#8221;:(85.0,96.0),&#8221;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;:(7200,8600)<br \/>\n    },<br \/>\n    &#8220;\u7269\u6599\u63d0\u7eaf_\u6eb6\u5242\u56de\u6536\u4e13\u7528\u70ad&#8221;: {<br \/>\n        &#8220;\u9002\u7528\u573a\u666f&#8221;:&#8221;\u5316\u5de5\u6709\u673a\u6eb6\u5242\u5438\u9644\u3001\u5206\u79bb\u56de\u6536\u3001\u6db2\u76f8\u63d0\u7eaf&#8221;,<br \/>\n        &#8220;\u6c34\u5206[%]&#8221;:(2.0,4.8),&#8221;\u7070\u5206[%]&#8221;:(3.0,7.0),&#8221;\u673a\u68b0\u5f3a\u5ea6[%]&#8221;:(92.0,97.0),<br \/>\n        &#8220;\u7898\u503c[mg\/g]&#8221;:(950,1150),&#8221;\u4e9a\u7532\u84dd[mg\/g]&#8221;:(190,250),<br \/>\n        &#8220;\u5e38\u7528\u76ee\u6570&#8221;:[&#8220;6*12\u76ee&#8221;,&#8221;8*16\u76ee&#8221;],&#8221;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;:(0.49,0.57),<br \/>\n        &#8220;\u5b54\u5f84\u7279\u6027&#8221;:&#8221;\u5fae\u5b54\u5bcc\u96c6&#8221;,&#8221;\u8010\u6e29\u4e0a\u9650[\u2103]&#8221;:170,&#8221;\u9002\u7528PH&#8221;:(6.0,9.0),<br \/>\n        &#8220;\u6708\u635f\u8017\u7387[%]&#8221;:(2.2,3.8),&#8221;\u56de\u6536\u7387[%]&#8221;:(88.0,95.0),&#8221;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;:(6000,7500)<br \/>\n    }<br \/>\n}<\/p>\n<p># ====================== \u5de5\u51b5\u4fe1\u606f\u91c7\u96c6 ======================<br \/>\ndef get_user_info():<br \/>\n    print(&#8220;\\n========== Carbo Pro \u667a\u80fd\u9009\u70ad\u987e\u95ee\u7cfb\u7edf ==========\\n&#8221;)<br \/>\n    print(&#8220;\u56db\u5927\u6807\u51c6\u5e94\u7528\u573a\u666f\uff1a\u8d35\u91d1\u5c5e\u5bcc\u96c6 \/ \u6c34\u8d28\u51c0\u5316 \/ \u5e9f\u6c14\u6cbb\u7406 \/ \u7269\u6599\u63d0\u7eaf\\n&#8221;)<br \/>\n    info = {}<br \/>\n    info[&#8220;\u5e94\u7528\u573a\u666f&#8221;] = input(&#8220;1.\u9009\u62e9\u5e94\u7528\u573a\u666f\uff1a&#8221;)<br \/>\n    info[&#8220;\u4ecb\u8d28\u8be6\u60c5&#8221;] = input(&#8220;2.\u4ecb\u8d28\/\u7269\u6599\u5177\u4f53\u7c7b\u578b\uff1a&#8221;)<br \/>\n    info[&#8220;\u8fd0\u884c\u6e29\u5ea6&#8221;] = float(input(&#8220;3.\u5e38\u5e74\u8fd0\u884c\u6e29\u5ea6(\u2103)\uff1a&#8221;))<br \/>\n    info[&#8220;\u4ecb\u8d28PH&#8221;] = float(input(&#8220;4.\u7269\u6599PH\u503c\uff1a&#8221;))<br \/>\n    info[&#8220;\u65e5\u5904\u7406\u91cf&#8221;] = float(input(&#8220;5.\u6bcf\u65e5\u5904\u7406\u603b\u91cf\uff1a&#8221;))<br \/>\n    info[&#8220;\u4f7f\u7528\u8bbe\u5907&#8221;] = input(&#8220;6.\u914d\u5957\u4f7f\u7528\u8bbe\u5907\uff1a&#8221;)<br \/>\n    info[&#8220;\u6d41\u901f\u6863\u4f4d&#8221;] = input(&#8220;7.\u6d41\u901f\u7b49\u7ea7(\u4f4e\u901f\/\u4e2d\u901f\/\u9ad8\u901f)\uff1a&#8221;)<br \/>\n    info[&#8220;\u6742\u8d28\u7b49\u7ea7&#8221;] = input(&#8220;8.\u6742\u8d28\u542b\u91cf(\u4f4e\/\u4e2d\/\u9ad8)\uff1a&#8221;)<br \/>\n    info[&#8220;\u9009\u578b\u4f18\u5148\u7ea7&#8221;] = input(&#8220;9.\u6838\u5fc3\u9700\u6c42(\u8010\u78e8\u8010\u7528\/\u9ad8\u5438\u9644\/\u9ad8\u6548\u7387\/\u4f4e\u6210\u672c)\uff1a&#8221;)<br \/>\n    info[&#8220;\u73b0\u6709\u4f7f\u7528\u95ee\u9898&#8221;] = input(&#8220;10.\u539f\u6709\u70ad\u6750\u5b58\u5728\u95ee\u9898\uff1a&#8221;)<br \/>\n    info[&#8220;\u88c5\u586b\u5bb9\u79ef&#8221;] = float(input(&#8220;11.\u8bbe\u5907\u6709\u6548\u88c5\u586b\u5bb9\u79ef(m\u00b3)\uff1a&#8221;))<br \/>\n    info[&#8220;\u8ba1\u5212\u66f4\u6362\u5468\u671f&#8221;] = int(input(&#8220;12.\u8ba1\u5212\u66f4\u6362\u5468\u671f(\u5929)\uff1a&#8221;))<br \/>\n    return info<\/p>\n<p># ====================== \u667a\u80fd\u5339\u914d\u9009\u578b\u903b\u8f91 ======================<br \/>\ndef smart_match(user):<br \/>\n    scene = user[&#8220;\u5e94\u7528\u573a\u666f&#8221;]<br \/>\n    dirt = user[&#8220;\u6742\u8d28\u7b49\u7ea7&#8221;]<br \/>\n    priority = user[&#8220;\u9009\u578b\u4f18\u5148\u7ea7&#8221;]<br \/>\n    temp = user[&#8220;\u8fd0\u884c\u6e29\u5ea6&#8221;]<br \/>\n    ph = user[&#8220;\u4ecb\u8d28PH&#8221;]<br \/>\n    select_name = &#8220;&#8221;<\/p>\n<p>    # \u8d35\u91d1\u5c5e\u5bcc\u96c6\u5339\u914d<br \/>\n    if scene == &#8220;\u8d35\u91d1\u5c5e\u5bcc\u96c6&#8221;:<br \/>\n        if dirt == &#8220;\u9ad8&#8221; and priority == &#8220;\u8010\u78e8\u8010\u7528&#8221;:<br \/>\n            select_name = &#8220;\u63d0\u91d1_\u9ad8\u5f3a\u5ea6\u8010\u78e8\u6930\u58f3\u70ad&#8221;<br \/>\n        elif priority in [&#8220;\u9ad8\u6548\u7387&#8221;,&#8221;\u9ad8\u5438\u9644&#8221;]:<br \/>\n            select_name = &#8220;\u63d0\u91d1_\u6930\u58f3\u539f\u751f\u5438\u9644\u70ad&#8221;<br \/>\n        elif priority == &#8220;\u4f4e\u6210\u672c&#8221;:<br \/>\n            select_name = &#8220;\u63d0\u91d1_\u7164\u8d28\u7ecf\u6d4e\u578b\u63d0\u91d1\u70ad&#8221;<br \/>\n        else:<br \/>\n            select_name = &#8220;\u63d0\u91d1_\u4f4e\u7070\u5206\u89e3\u5438\u7cbe\u5236\u70ad&#8221;<\/p>\n<p>    # \u6c34\u8d28\u51c0\u5316\u5339\u914d<br \/>\n    elif scene == &#8220;\u6c34\u8d28\u51c0\u5316&#8221;:<br \/>\n        if &#8220;\u996e\u7528&#8221; in user[&#8220;\u4ecb\u8d28\u8be6\u60c5&#8221;] or &#8220;\u81ea\u6765\u6c34&#8221; in user[&#8220;\u4ecb\u8d28\u8be6\u60c5&#8221;] or &#8220;\u751f\u6d3b\u6c34&#8221; in user[&#8220;\u4ecb\u8d28\u8be6\u60c5&#8221;]:<br \/>\n            select_name = &#8220;\u6c34\u8d28\u51c0\u5316_\u98df\u54c1\u7ea7\u51c0\u6c34\u6930\u58f3\u70ad&#8221;<br \/>\n        else:<br \/>\n            select_name = &#8220;\u6c34\u8d28\u51c0\u5316_\u5de5\u4e1a\u6c61\u6c34\u7164\u8d28\u70ad&#8221;<\/p>\n<p>    # \u5e9f\u6c14\u6cbb\u7406<br \/>\n    elif scene == &#8220;\u5e9f\u6c14\u6cbb\u7406&#8221;:<br \/>\n        select_name = &#8220;\u5e9f\u6c14\u6cbb\u7406_\u70df\u6c14VOCs\u4e13\u7528\u70ad&#8221;<\/p>\n<p>    # \u7269\u6599\u63d0\u7eaf<br \/>\n    elif scene == &#8220;\u7269\u6599\u63d0\u7eaf&#8221;:<br \/>\n        if &#8220;\u8131\u8272&#8221; in user[&#8220;\u4ecb\u8d28\u8be6\u60c5&#8221;] or &#8220;\u98df\u54c1&#8221; in user[&#8220;\u4ecb\u8d28\u8be6\u60c5&#8221;] or &#8220;\u6cb9\u8102&#8221; in user[&#8220;\u4ecb\u8d28\u8be6\u60c5&#8221;]:<br \/>\n            select_name = &#8220;\u7269\u6599\u63d0\u7eaf_\u98df\u54c1\u8131\u8272\u4e13\u7528\u70ad&#8221;<br \/>\n        else:<br \/>\n            select_name = &#8220;\u7269\u6599\u63d0\u7eaf_\u6eb6\u5242\u56de\u6536\u4e13\u7528\u70ad&#8221;<\/p>\n<p>    base_data = CARBON_DB[select_name]<br \/>\n    note = f&#8221;\u4f9d\u636e\u8fd0\u884c\u6e29\u5ea6{temp}\u2103\u3001\u4ecb\u8d28PH{ph}\u3001\u6742\u8d28\u7b49\u7ea7{dirt}\u5b8c\u6210\u6307\u6807\u52a8\u6001\u9002\u914d\u6821\u51c6&#8221;<br \/>\n    return {&#8220;\u63a8\u8350\u70ad\u540d\u79f0&#8221;:select_name,&#8221;\u57fa\u7840\u53c2\u6570&#8221;:base_data,&#8221;\u9002\u914d\u8bf4\u660e&#8221;:note}<\/p>\n<p># ====================== \u7528\u91cf\u6210\u672c\u6838\u7b97 ======================<br \/>\ndef cost_calc(cond,match_data):<br \/>\n    vol = cond[&#8220;\u88c5\u586b\u5bb9\u79ef&#8221;]<br \/>\n    db = match_data[&#8220;\u57fa\u7840\u53c2\u6570&#8221;]<br \/>\n    bulk_avg = (db[&#8220;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;][0] + db[&#8220;\u5806\u79ef\u5bc6\u5ea6[g\/cm\u00b3]&#8221;][1]) \/ 2<br \/>\n    fill_ton = vol * bulk_avg<br \/>\n    loss_min = db[&#8220;\u6708\u635f\u8017\u7387[%]&#8221;][0]<br \/>\n    loss_max = db[&#8220;\u6708\u635f\u8017\u7387[%]&#8221;][1]<br \/>\n    price_avg = (db[&#8220;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;][0] + db[&#8220;\u53c2\u8003\u5355\u4ef7[\u5143\/\u5428]&#8221;][1]) \/ 2<\/p>\n<p>    month_loss_min = round(fill_ton * loss_min \/ 100,3)<br \/>\n    month_loss_max = round(fill_ton * loss_max \/ 100,3)<br \/>\n    month_cost = round(month_loss_max * price_avg,2)<br \/>\n    first_size = db[&#8220;\u5e38\u7528\u76ee\u6570&#8221;][0]<\/p>\n<p>    res = {<br \/>\n        &#8220;\u5355\u8bbe\u5907\u88c5\u586b\u603b\u91cf(\u5428)&#8221;:round(fill_ton,3),<br \/>\n        &#8220;\u6708\u5ea6\u6700\u4f4e\u635f\u8017(\u5428)&#8221;:month_loss_min,<br \/>\n        &#8220;\u6708\u5ea6\u6700\u9ad8\u635f\u8017(\u5428)&#8221;:month_loss_max,<br \/>\n        &#8220;\u6708\u5ea6\u9884\u4f30\u91c7\u8d2d\u6210\u672c(\u5143)&#8221;:month_cost,<br \/>\n        &#8220;\u63a8\u8350\u9996\u9009\u7c92\u5ea6&#8221;:first_size,<br \/>\n        &#8220;\u88c5\u586b\u65bd\u5de5\u5efa\u8bae&#8221;:&#8221;\u81ea\u7136\u5747\u5300\u88c5\u586b\uff0c\u4e25\u63a7\u5bc6\u5b9e\u5ea6\uff0c\u9884\u7559\u81a8\u80c0\u4e0e\u53cd\u51b2\u6d17\u7a7a\u95f4&#8221;<br \/>\n    }<br \/>\n    return res<\/p>\n<p># ====================== \u751f\u6210\u6807\u51c6Carbo Pro\u6b63\u5f0f\u62a5\u544a\u4e66 ======================<br \/>\ndef build_official_report(cond,match_data,cost_data):<br \/>\n    now = datetime.datetime.now()<br \/>\n    report_time = now.strftime(&#8220;%Y-%m-%d %H:%M:%S&#8221;)<br \/>\n    report_code = f&#8221;CARBO-PRO-{now.strftime(&#8216;%Y%m%d%H%M%S&#8217;)}&#8221;<br \/>\n    db = match_data[&#8220;\u57fa\u7840\u53c2\u6570&#8221;]<\/p>\n<p>    report_content = f&#8221;&#8221;&#8221;<br \/>\n====================\u3010Carbo Pro \u9009\u70ad\u987e\u95ee\u9009\u578b\u62a5\u544a\u4e66\u3011====================<br \/>\n\u62a5\u544a\u7f16\u53f7\uff1a{report_code}<br \/>\n\u51fa\u5177\u65e5\u671f\uff1a{report_time}<\/p>\n<p>\u4e00\u3001\u73b0\u573a\u5de5\u51b5\u57fa\u7840\u4fe1\u606f<br \/>\n\u5e94\u7528\u4f7f\u7528\u573a\u666f\uff1a{cond[&#8216;\u5e94\u7528\u573a\u666f&#8217;]}<br \/>\n\u4ecb\u8d28\u7269\u6599\u7c7b\u578b\uff1a{cond[&#8216;\u4ecb\u8d28\u8be6\u60c5&#8217;]}<br \/>\n\u7cfb\u7edf\u8fd0\u884c\u6e29\u5ea6\uff1a{cond[&#8216;\u8fd0\u884c\u6e29\u5ea6&#8217;]} \u2103<br \/>\n\u7269\u6599\u4ecb\u8d28PH\u503c\uff1a{cond[&#8216;\u4ecb\u8d28PH&#8217;]}<br \/>\n\u914d\u5957\u4f7f\u7528\u8bbe\u5907\uff1a{cond[&#8216;\u4f7f\u7528\u8bbe\u5907&#8217;]}<br \/>\n\u4ecb\u8d28\u6d41\u52a8\u6d41\u901f\uff1a{cond[&#8216;\u6d41\u901f\u6863\u4f4d&#8217;]}<br \/>\n\u73b0\u573a\u6742\u8d28\u7b49\u7ea7\uff1a{cond[&#8216;\u6742\u8d28\u7b49\u7ea7&#8217;]}<br \/>\n\u9879\u76ee\u6838\u5fc3\u9009\u578b\u8bc9\u6c42\uff1a{cond[&#8216;\u9009\u578b\u4f18\u5148\u7ea7&#8217;]}<br \/>\n\u539f\u6709\u8017\u6750\u4f7f\u7528\u95ee\u9898\uff1a{cond[&#8216;\u73b0\u6709\u4f7f\u7528\u95ee\u9898&#8217;]}<br \/>\n\u5355\u65e5\u6574\u4f53\u5904\u7406\u4ea7\u80fd\uff1a{cond[&#8216;\u65e5\u5904\u7406\u91cf&#8217;]}<br \/>\n\u8bbe\u5907\u6709\u6548\u88c5\u586b\u5bb9\u79ef\uff1a{cond[&#8216;\u88c5\u586b\u5bb9\u79ef&#8217;]} m\u00b3<br \/>\n\u9884\u8bbe\u70ad\u6750\u66f4\u6362\u5468\u671f\uff1a{cond[&#8216;\u8ba1\u5212\u66f4\u6362\u5468\u671f&#8217;]} \u5929<\/p>\n<p>\u4e8c\u3001\u667a\u80fd\u9009\u578b\u63a8\u8350\u7ed3\u679c<br \/>\n\u63a8\u8350\u9002\u914d\u4e13\u7528\u70ad\u6750\uff1a{match_data[&#8216;\u63a8\u8350\u70ad\u540d\u79f0&#8217;]}<br \/>\n\u5de5\u51b5\u9002\u914d\u6821\u51c6\u8bf4\u660e\uff1a{match_data[&#8216;\u9002\u914d\u8bf4\u660e&#8217;]}<\/p>\n<p>\u4e09\u3001\u6838\u5b9a\u4e25\u63a7\u6280\u672f\u6307\u6807\u533a\u95f4<br \/>\n\u6c34\u5206\u542b\u91cf\u63a7\u5236\u8303\u56f4\uff1a{db[&#8216;\u6c34\u5206[%]&#8217;][0]} ~ {db[&#8216;\u6c34\u5206[%]&#8217;][1]} %<br \/>\n\u7070\u5206\u542b\u91cf\u63a7\u5236\u8303\u56f4\uff1a{db[&#8216;\u7070\u5206[%]&#8217;][0]} ~ {db[&#8216;\u7070\u5206[%]&#8217;][1]} %<br \/>\n\u9897\u7c92\u673a\u68b0\u5f3a\u5ea6\u8303\u56f4\uff1a{db[&#8216;\u673a\u68b0\u5f3a\u5ea6[%]&#8217;][0]} ~ {db[&#8216;\u673a\u68b0\u5f3a\u5ea6[%]&#8217;][1]} %<br \/>\n\u7898\u503c\u5438\u9644\u6d3b\u6027\u6307\u6807\uff1a{db[&#8216;\u7898\u503c[mg\/g]&#8217;][0]} ~ {db[&#8216;\u7898\u503c[mg\/g]&#8217;][1]} mg\/g<br \/>\n\u4e9a\u7532\u84dd\u5438\u9644\u503c\u8303\u56f4\uff1a{db[&#8216;\u4e9a\u7532\u84dd[mg\/g]&#8217;][0]} ~ {db[&#8216;\u4e9a\u7532\u84dd[mg\/g]&#8217;][1]} mg\/g<br \/>\n\u9002\u914d\u9178\u78b1PH\u9002\u7528\u533a\u95f4\uff1a{db[&#8216;\u9002\u7528PH&#8217;][0]} ~ {db[&#8216;\u9002\u7528PH&#8217;][1]}<br \/>\n\u6700\u9ad8\u5b89\u5168\u8010\u53d7\u6e29\u5ea6\uff1a{db[&#8216;\u8010\u6e29\u4e0a\u9650[\u2103]&#8217;]} \u2103<br \/>\n\u70ad\u6750\u5185\u90e8\u5b54\u9699\u7ed3\u6784\uff1a{db[&#8216;\u5b54\u5f84\u7279\u6027&#8217;]}<br \/>\n\u5e38\u89c4\u9002\u914d\u9897\u7c92\u7c92\u5ea6\uff1a{&#8220;\u3001&#8221;.join(db[&#8216;\u5e38\u7528\u76ee\u6570&#8217;])}<br \/>\n\u6708\u5ea6\u81ea\u7136\u635f\u8017\u6bd4\u4f8b\u533a\u95f4\uff1a{db[&#8216;\u6708\u635f\u8017\u7387[%]&#8217;][0]} ~ {db[&#8216;\u6708\u635f\u8017\u7387[%]&#8217;][1]} %<\/p>\n<p>\u56db\u3001\u88c5\u586b\u7528\u91cf\u4e0e\u7ecf\u6d4e\u6210\u672c\u6d4b\u7b97<br \/>\n\u8bbe\u5907\u6574\u4f53\u88c5\u586b\u603b\u91cd\u91cf\uff1a{cost_data[&#8216;\u5355\u8bbe\u5907\u88c5\u586b\u603b\u91cf(\u5428)&#8217;]} \u5428<br \/>\n\u6bcf\u6708\u6700\u4f4e\u81ea\u7136\u635f\u8017\u91cf\uff1a{cost_data[&#8216;\u6708\u5ea6\u6700\u4f4e\u635f\u8017(\u5428)&#8217;]} \u5428<br \/>\n\u6bcf\u6708\u6700\u9ad8\u81ea\u7136\u635f\u8017\u91cf\uff1a{cost_data[&#8216;\u6708\u5ea6\u6700\u9ad8\u635f\u8017(\u5428)&#8217;]} \u5428<br \/>\n\u6708\u5ea6\u8017\u6750\u9884\u4f30\u91c7\u8d2d\u8d39\u7528\uff1a{cost_data[&#8216;\u6708\u5ea6\u9884\u4f30\u91c7\u8d2d\u6210\u672c(\u5143)&#8217;]} \u5143<br \/>\n\u73b0\u573a\u5de5\u7a0b\u4f18\u5148\u9009\u7528\u7c92\u5ea6\uff1a{cost_data[&#8216;\u63a8\u8350\u9996\u9009\u7c92\u5ea6&#8217;]}<br \/>\n\u73b0\u573a\u88c5\u586b\u65bd\u5de5\u89c4\u8303\u5efa\u8bae\uff1a{cost_data[&#8216;\u88c5\u586b\u65bd\u5de5\u5efa\u8bae&#8217;]}<\/p>\n<p>\u4e94\u3001\u73b0\u573a\u5b9e\u64cd\u8fd0\u7ef4\u6307\u5bfc\u89c4\u8303<br \/>\n1.\u5168\u65b0\u70ad\u6750\u6295\u7528\u524d\u5b8c\u6210\u5145\u5206\u9884\u6e7f\u51b2\u6d17\uff0c\u5f7b\u5e95\u53bb\u9664\u7c89\u5c18\u4e0e\u6e38\u79bb\u6742\u8d28<br \/>\n2.\u5230\u8d27\u70ad\u6750\u4e25\u683c\u5bf9\u6807\u672c\u62a5\u544a\u6307\u6807\u533a\u95f4\u9a8c\u6536\uff0c\u4f4e\u4e8e\u4e0b\u9650\u7981\u6b62\u6295\u4ea7\u4f7f\u7528<br \/>\n3.\u4f9d\u636e\u73b0\u573a\u6742\u8d28\u542b\u91cf\u7b49\u7ea7\uff0c\u5236\u5b9a\u56fa\u5b9a\u5468\u671f\u53cd\u51b2\u6d17\u4e0e\u8bbe\u5907\u7ef4\u4fdd\u8ba1\u5212<br \/>\n4.\u7ed3\u5408\u7cfb\u7edf\u6d4b\u7b97\u6708\u5ea6\u635f\u8017\u91cf\u63d0\u524d\u5907\u8d27\uff0c\u4fdd\u969c\u6574\u5957\u751f\u4ea7\u7ebf\u8fde\u7eed\u7a33\u5b9a\u8fd0\u884c<br \/>\n5.\u8fd0\u884c\u5168\u7a0b\u4e25\u683c\u628a\u63a7\u4ecb\u8d28\u6e29\u5ea6\u4e0e\u9178\u78b1\u73af\u5883\uff0c\u4e25\u7981\u8d85\u51fa\u70ad\u6750\u8010\u53d7\u4f7f\u7528\u8303\u56f4<\/p>\n<p>==================== Carbo Pro \u9009\u70ad\u987e\u95ee \u62a5\u544a\u6b63\u5f0f\u7ed3\u675f ====================<br \/>\n\u672c\u62a5\u544a\u53ef\u7528\u4e8e\u4f01\u4e1a\u91c7\u8d2d\u5ba1\u6279\u3001\u6280\u672f\u65b9\u6848\u5907\u6848\u3001\u9879\u76ee\u6295\u6807\u6587\u4ef6\u3001\u4f9b\u65b9\u4f9b\u8d27\u5bf9\u6807\u6267\u884c\u4f9d\u636e<br \/>\n&#8220;&#8221;&#8221;<br \/>\n    with open(&#8220;CarboPro_\u9009\u70ad\u6b63\u5f0f\u62a5\u544a\u4e66.txt&#8221;,&#8221;w&#8221;,encoding=&#8221;utf-8&#8243;) as f:<br \/>\n        f.write(report_content)<br \/>\n    print(&#8220;\\n\u2705 \u6807\u51c6\u9009\u578b\u62a5\u544a\u4e66\u5df2\u751f\u6210\u5e76\u672c\u5730\u4fdd\u5b58\u5b8c\u6210\uff01&#8221;)<br \/>\n    print(report_content)<br \/>\n    return report_content<\/p>\n<p># ====================== \u7cfb\u7edf\u4e3b\u7a0b\u5e8f\u5165\u53e3 ======================<br \/>\nif __name__ == &#8220;__main__&#8221;:<br \/>\n    user_condition = get_user_info()<br \/>\n    match_result = smart_match(user_condition)<br \/>\n    calc_result = cost_calc(user_condition,match_result)<br \/>\n    build_official_report(user_condition,match_result,calc_result)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>CARBON_DB = { # 1.\u8d35\u91d1\u5c5e\u5bcc\u96c6\u7cfb\u5217 &#8220;\u63d0\u91d1_\u6930\u58f3\u539f\u751f\u5438\u9644\u70ad&#8221;: { &#038; [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-121","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/carbonpro.com.cn\/index.php\/wp-json\/wp\/v2\/pages\/121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/carbonpro.com.cn\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/carbonpro.com.cn\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/carbonpro.com.cn\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/carbonpro.com.cn\/index.php\/wp-json\/wp\/v2\/comments?post=121"}],"version-history":[{"count":1,"href":"https:\/\/carbonpro.com.cn\/index.php\/wp-json\/wp\/v2\/pages\/121\/revisions"}],"predecessor-version":[{"id":122,"href":"https:\/\/carbonpro.com.cn\/index.php\/wp-json\/wp\/v2\/pages\/121\/revisions\/122"}],"wp:attachment":[{"href":"https:\/\/carbonpro.com.cn\/index.php\/wp-json\/wp\/v2\/media?parent=121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}