施工开始了,要进场资料?我做!
做进场资料要清单,施工队也要设备清单?我接着做!
设备清单都有了,成本和报价也加进去吧?emm……
原本想解决一件眼前的事,结果顺着往前一找,发现每个环节都在用同一批东西:设备名称、规格、数量,还有后面才补齐的厂家、型号和价格。既然这些信息迟早都要整理,为什么还要在不同表格里一遍遍搬?
上一篇写到,我借助 AI,把施工底图、点位编号、小程序和施工记录逐步做了起来。但项目已经开始推进,软件能管施工了,项目上另外一大块工作也来了:材料进场,以及交给监理和项目部的进场资料。
这篇就从这里接着讲。
阅读导航
- 1. 最急的是进场资料,但施工队先来要了一张清单
- 2. 先想把旧报价清单导进来,后来觉得还可以再往前做一步
- 3. 图上的设备数出来了,但完整用料还得继续补
- 4. 有设备类型还不够,规格和实际供货也得接起来
- 5. 清单都有了,询价也一起做吧
- 6. 价格都录了,成本和客户报价也加进去吧
- 7. 再回到施工队:给他们完整材料清单,从清单里直接办进场
- 8. 材料记好了,进场资料终于不用重新抄一遍
- 9. 表能生成还不够,报告、合格证和打印也得接上
- 10. 本来只想做进场资料,最后少搬了好几遍同样的内容
1. 最急的是进场资料,但施工队先来要了一张清单
一个项目开工,现场有人干活只是其中一部分。材料要进场,相关资料也要准备,监理和项目部都有要看的内容。
我可不想每次再打开一堆表格:这边复制设备名称,那边粘贴规格型号,重新填数量,再调整格式。前面辛辛苦苦整理过的信息,到了另一张表里又得从头来一遍。
正好这个时候,施工队也问到了材料的问题。他们需要知道整个项目的用料清单,而且不能只有摄像机、交换机这些主要设备。网线、光缆、线管、接头和安装辅料,也得列进去。
胶布、扎带这些辅料,也要提前确认由谁准备。
哪些东西是我采购提供,哪些需要他们在现场本地购买,都要讲清楚。否则只知道图上要装多少设备,到了干活的时候,仍然不知道配套材料有没有准备。
这样一来,清单就成了第一步。做进场资料需要它,施工队安排用料也需要它。我先把这份共同要用的东西做出来,后面的事情才能接着走。
2. 先想把旧报价清单导进来,后来觉得还可以再往前做一步
这个项目原本就有报价清单。最开始,我的打算很直接:设计一个清单导入功能,把之前整理好的内容放进软件,让施工队能看到项目到底有多少东西。
先把现成的表用起来,眼前的问题就有地方落了。
但想到这里,我又觉得不对。这份准备导入的清单,之前制作的时候不也花了我很多时间吗?如果以后还是在表格里整理好,再导入软件,那最费事的那一段依然得手工做。
系统的底图里已经有施工点位,也知道每个点位是什么设备。摄像机有多少台、网络面板有多少个,这些本来就能从已经布好的点位里统计。为什么还要把同样的数量再抄进一份新表?
所以思路往前走了一步:旧清单可以继续作为计划和对照,但清单本身的设计,也放到软件里。
先从图纸中已经有的内容生成设备数量,再补完整的采购需求。这样,布点时做过的工作,到了清单这里还能继续用。
图1|清单形成方式的变化:已有点位负责提供设备数量,线材和辅料按规则或实际用量补充。
3. 图上的设备数出来了,但完整用料还得继续补
真正开始整理清单,就发现“图上有多少设备”和“项目要买多少东西”之间,还隔着不少内容。
图上可以数出摄像机,但装摄像机还要考虑支架和固定件;安装方式不同,配套也可能不同。机柜和柜内设备需要一起统计,线材、接头以及现场零散使用的辅料,也不能漏掉。
于是我继续把默认选型、安装条件、配套规则和手工补项加进清单。能按配置带出来的内容,就让它带出来;需要结合现场判断的,就保留手工填写和调整。
线缆长度仍然要按实际走向和用量核对,软件没有因为底图上有几个点,就自动算出现场究竟需要多少米线。这里省掉的是重复整理,实际需要确认的数量还得确认。
图2|目前的物料清单:设备、线材和辅料放在一起,工程量、调整量、采购量及来源可以分别核对。
用起来以后,小问题也跟着出来了。手工补的材料,第一次做的时候只能删除,想改还得删了重加。那就把直接编辑补上,数量和内容改完,重新汇总就行。
清单版本也做了调整。小改动直接保存到原版本,需要单独保留一套方案时,再主动新建版本。补一项辅料、改一点数量,不用每次都多出一整版清单。
我想要的是一份能跟着工作继续整理的清单,而不是导进去之后,只能看、不能顺手改的一张表。
4. 有设备类型还不够,规格和实际供货也得接起来
这时候的图纸,知道某个位置是一台摄像机,也知道它属于什么类型。但这和最后采购的具体产品,还不是一回事。
同样叫摄像机,参数要求可能不同,最终厂家和型号也可能不同。如果清单只把同类设备全部加在一起,数量看着对,采购时仍然要重新拆。
所以我把设备的设计参数带进清单:相同类型、相同规格可以汇总,个别设备有不同要求,就单独列出来。
这里还真改了一轮。最初补上参数显示之后,已有点位仍然得逐台保存,清单才能读到。我已经在设备类型里配好了默认参数,难道还要把每台设备点开,再保存一次?
后来就改成:没有单独填写的参数,直接采用模板默认值;只有特殊设备,再改它自己的参数。不需要为了让清单显示一样的内容,重复打开一批设备。
这个规则在代码里也很短:先取模板默认值,再用点位已经保存的值覆盖。下面是实际代码中的关键片段:
def parameter_specification(fields, values): """Use template defaults for missing parameters; saved point values take priority.""" values = {**parameter_defaults(fields), **(values or {})}但厂家和型号也不能一开始就被写死。有些需求只确定了规格,具体买哪家的产品,要询价以后才知道。因此我把设计要求和供应商实际提供的产品信息分别保留,等选定供货内容,再把它们接到后面的施工物料里。
5. 清单都有了,询价也一起做吧
完整的需求清单有了,下一步自然就是采购。
原来要把这份清单再整理给供应商,对方报回来以后,我再把名称、型号、参数和价格搬到自己的表里。现在需求已经在软件里了,这一段也可以接上。
我先按物料选择需要询价的供应商。不同材料可以找不同的人,同一项也可以找几家。录入报价时,直接带出这家供应商对应的需求,继续填实际供货名称、品牌、型号、规格和价格。
需求名称可以保留现场习惯的叫法,供应商的完整产品名称另外记录。这样前后能对得上,也不用为了录一条报价,先跑去建立一套完整的物料档案。
图3|供应商报价直接对照原需求填写,实际产品资料分列保存;
第一版报价是在弹窗里录的。东西一多,来回打开不方便,而且报价往往一次填不完整,后面还要补参数、改价格。于是后来把录入搬到主页面,已有内容可以载入后继续改。
接着又遇到供货的实际情况:同一项需求,同一家供应商也可能用两种型号、两种价格来凑齐。只让一项需求填一个型号,就放不下这种情况。
于是又加了拆分供货。同一需求下面保留不同供货明细,分别填可供数量和选用数量,后面按实际选用的组合核算。
还有现场附近直接购买的小辅料,没必要为了算成本先虚构一家供应商、再走一遍询价。我给这类材料留了现场采购预估价的入口,先把预计支出考虑进去,实际到货再据实记录。
6. 价格都录了,成本和客户报价也加进去吧
写到这里,就回到了开头那句:清单都有了,采购价格也有了,成本和报价为什么不一起做?
材料成本之外,还有人工和其他项目费用。它们本来就是我要算的内容,如果依旧拿到另一张表里计算,前面的数据还是得再搬一遍。
所以我继续增加成本测算,把材料参考成本、人工及其他费用汇总到一起。
但第一版用起来,又发现一个不顺手的地方:供应商报价已经录了,人工也加了,页面却没有把材料和人工合成一个清楚的项目总成本。材料来源还需要另找入口,结果依旧得自己来回核对。
后来就让成本页能明确选择当前询价参考成本,或者采用已经选定的供货组合。材料、人工、其他费用和总成本一起显示,缺价的内容也单独提示,不能把缺了一部分的金额当成全部成本。
客户报价再从选定的成本版本生成,带出对应的物料名称、品牌型号和参数。售价可以继续调整,合计和利润随之计算;生成之前先看预览,核对后再保存。
定价时也改过一次:目标收入和目标利润率如果同时填,容易打架。后来干脆二选一,按选定的方式测算,再核对各项单价和尾差。
图4|同一批资料继续用于成本和报价,少一次重新建表、抄产品参数和汇总费用。
这里计算出来的参考成本,仍然要结合实际选供核对。清单变了、供应商报价改了,也需要重新测算;已经保存的报价则保留当时的依据。给客户的报价只输出客户需要看的内容,内部成本和利润留在管理端。
7. 再回到施工队:给他们完整材料清单,从清单里直接办进场
把采购和报价接起来之后,终于可以回到最开始施工队问的那个问题:项目到底有什么材料,哪些由我提供,哪些需要现场购买?
我从项目物料清单或客户确认的报价里整理出施工物料清单,把实际供货的名称、规格、型号、单位和数量带过去。施工端使用不含价格的清单,不需要再把内部报价表删掉价格、另存一份发出去。
前面按不同供货方、不同型号拆好的内容,到了施工清单也要继续分清。否则采购时已经分开了,到货时又合成一条,现场还是得另外记。
最初施工清单和材料到货分在两个页面,两边都在显示材料。用着用着觉得重复,就把它们合到一起:先看到完整需求,再从材料行直接登记到货、取货和实际进场。
图5|目前同一张清单里可以分别看需求量、到货、取货和进场情况,再从材料行办理。
到货、取货、进场分别记录,是因为它们不一定同时发生。材料到了仓库,未必已经全部拿到工地;分批取走,也不代表每次都全部进场。软件要能把这些数量分清。
但如果是在本地临时买到、直接送到现场的材料,再要求先安排采购、登记到货,然后转到另一个入口登记进场,就太绕了。
所以后来又增加“临时采购”:对已经买到并送达现场的材料,填写实际数量,一次登记到货和进场,同时扣减原供货中还没执行的待采购数量。总需求不用重复增加,已经到场的东西也不用再走一次取货。
原清单里没有的材料,则先补一条现场需求。后面补入正式清单时,再明确对应原来的这笔用量,避免同一批东西算两次。
8. 材料记好了,进场资料终于不用重新抄一遍
绕了一圈,终于回到这次最开始要做的事情:进场资料。
前面已经整理了物料名称、规格、厂家型号,也记录了本次实际进场数量。做资料时,就应该接着用这些内容。
我把项目使用的材料清单和报审表接成模板,保留原来的表式,从实际进场记录中带入材料,再填写这次报审需要的信息。
第一版能生成表以后,继续用又发现,施工单位、监理单位和编号这些内容,每次都要重新填。同一个工程里很多信息本来就相同,于是又让软件沿用上一次填写的内容,再按本次情况修改。编号仍然由我核对,按填写内容输出。
打印包配置:选择表式,核对本次资料和附件页数;
材料名称也要对齐。前面清单可能用的是现场简称,实际报审需要用供货资料上的名称,所以打印时带出对应供应商报价中的物料名称,并把施工名称和打印名称放在一起对照;确实需要调整的,可以在本次打印里改。
厂家资料也不是每次都跟着材料同时到。有些材料已经进场,厂家和参数后来才补齐,我又增加了资料同步:先看原值和新值,再选择需要补充或替换的字段,重新整理新的打印包。已经发生的到货数量和旧资料包继续保留。
到这里,前面录过的信息才算真正用到了后面。要核对的是本次进场和报审内容,不用再从报价表里逐个复制设备名称和型号。
9. 表能生成还不够,报告、合格证和打印也得接上
进场资料当然不止两张表,还有检验报告、合格证这些附件。
开始做厂家资料关联时,还需要重新输入厂家和型号。我已经在物料清单里填过,上传文件时又填一遍,这不又回去了?
后来就改成先选物料再上传,或者先批量上传,再把资料匹配给对应物料。同一种材料分批到货,也不用在物料和各个到货项之间来回选,关联到施工物料后,由对应的到货继续使用适用资料。
实际整理时,还出现过“资料已经上传并关联,生成的包里却没带进去”的问题。于是继续调整附件匹配,补上关联核对入口,让已有的报告和合格证能进入对应的新打印包,不用把同一份文件重新上传一遍。
文件能带齐以后,又发现打印仍然麻烦:报审单一个文件,清单一个文件,报告和合格证又是几个文件,得挨个打开。
那就接着改,把每一包的报审单、清单和适用附件按顺序合成一个 PDF,打开这一份就能连续打印。已有的多页报告保留完整内容,附件页数也由软件计算,再按实际需要核对。
图6|流程对照:资料与物料关联后,按本次材料整理报审单、清单和附件,合成一份 PDF 打印。
实际打印目录:报审单、材料清单和附件按顺序列出;
合并时,代码会遍历本包文件,把 PDF 的完整页面依次放进一个新文件;目录仍单独保存,方便对照附件。下面摘自实际实现:
for name, data in entries: archive.writestr(prefix + name, data) if name.endswith('.pdf') and name != SEPARATE_DIRECTORY_NAME: # Copy complete pages, retaining vector text, images, size and rotation. with closing(pdfium.PdfDocument(data)) as source: merged.import_pages(source)报审的编排也没有一版就做合适。起初按清单页分包,后来发现还需要自己安排哪些材料放在同一包,同一种材料也可能按数量拆到不同包里。
于是继续增加材料移动、数量拆分和每包的打印日期。分出去的数量要能对回本次选取的总量,打印日期只用于这次资料,原来的实际进场记录仍然保留。
报审单也改成每包共用一张,完整明细放在后面的清单里。哪些内容该填、哪些地方要留给手写和签字,就按实际使用的表式继续调整。软件负责把已有资料整理好,现场核对和签署仍然按实际情况办理。
10. 本来只想做进场资料,最后少搬了好几遍同样的内容
回头看,这一段的起点很小:施工开始了,我需要做进场资料,施工队又需要一份完整的材料清单。
先想导入旧表,后来发现做旧表本身也费时间;再往前接图纸和设备数量,往后接供应商报价、成本、施工物料和资料打印,事情就这样一段一段连起来了。
做的过程中,我把自己实际遇到的问题讲给 AI,继续调整功能。很多要求都是用过第一版才说得清楚:默认参数不该逐台保存,已有报价不该再抄一次,直接到场的临采不该绕几道登记,整包打印也不该挨个打开文件。
现在能明确看到少掉的工作是这些:
- 图上已经布好的设备,不用为了清单再人工数一遍。
- 通用规格不用逐台重复填写,特殊要求再单独处理。
- 采购中录过的产品资料,可以继续用于客户报价和施工物料。
- 已经临时买到现场的材料,可以一次登记到货和进场。
- 做进场资料时,沿用已有材料、数量和工程信息,再核对本次变化。
- 报告和合格证按物料关联,打印时打开每包的合并 PDF。
我还没给这些操作做过完整计时,也不准备先写一个节省了多少小时的数字。但作为一直在自己做这些事情的人,我很清楚自己最不想再干什么:同一份内容换个表,又重新填一遍。