From 6284560a23fa4d33a6031a77dc92145826c25adc Mon Sep 17 00:00:00 2001 From: YANG JIANKUAN Date: Sun, 23 Aug 2026 11:14:50 +0800 Subject: [PATCH] init: init proj --- CLAUDE.md | 103 +++++++++ output/生产系统/生产系统开发报价单.xlsx | Bin 0 -> 13513 bytes reference/拓商机系统报价单.xlsx | Bin 0 -> 6075 bytes reference/融业财系统报价单.xlsx | Bin 0 -> 10478 bytes reference/西藏DICT项目管理系统报价单.xlsx | Bin 0 -> 10930 bytes reference/西藏移动项目管理平台开发排期.xlsx | Bin 0 -> 15278 bytes .../西藏移动项目管理平台报价单(合并).xlsx | Bin 0 -> 11426 bytes ...移动项目管理平台报价单(含360视图专项).xlsx | Bin 0 -> 14411 bytes scripts/gen_production_quote.py | 197 ++++++++++++++++++ 9 files changed, 300 insertions(+) create mode 100644 CLAUDE.md create mode 100644 output/生产系统/生产系统开发报价单.xlsx create mode 100644 reference/拓商机系统报价单.xlsx create mode 100644 reference/融业财系统报价单.xlsx create mode 100644 reference/西藏DICT项目管理系统报价单.xlsx create mode 100644 reference/西藏移动项目管理平台开发排期.xlsx create mode 100644 reference/西藏移动项目管理平台报价单(合并).xlsx create mode 100644 reference/西藏移动项目管理平台报价单(含360视图专项).xlsx create mode 100644 scripts/gen_production_quote.py diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..ace5418 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,103 @@ +# CLAUDE.md + +本项目是**报价工作区**:输入一份 PDR(产品需求文档)或简短项目概述,输出一份报价单 xlsx(必要时附开发排期表)。所有规则提炼自西藏移动项目管理平台系列历史报价(2025-06,来源:`/Users/kid/Development/Fusion/Projects/tibet-mobile/documents/`,副本见 `reference/`)。 + +## 目录约定 + +- `input/<项目名>/` —— 存放报价参考材料(PDR、概述、会议纪要等) +- `output/<项目名>/` —— 输出的报价单、排期表 +- `scripts/` —— 生成 xlsx 的 Python 脚本(openpyxl) +- `reference/` —— 历史报价单与排期表副本,作为格式模板和估算参照 + +## 核心报价规则 + +### 单价与金额 + +- **单价按项目确认**:历史默认 1000 元/人天(西藏移动系列),也有按 1200 元/人天计的项目(生产系统 AI 项目,2026-08)。每次报价在确认口径时问清单价。 +- 金额一律用公式:`=D4*<单价>`,合计用 `=SUM(...)`,绝不硬编码数字。 +- 人天允许 0.5 天粒度(历史例:4.5、1.5)。 + +### 计费结构(关键口径) + +1. **全新系统**按四大类计全量: + - 公共底座(初始化/认证/权限/审批流/文件服务) + - 业务功能 + - 测试与交付(联调自测 + 系统测试/UAT + 部署上线) + - 项目管理(需求/文档/沟通) +2. **同一系统的新增模块**只计业务功能增量——公共底座、测试与交付、项目管理为一次性投入,不重复计费,并在报价单说明行写明该口径。 +3. **复用模块人天计 0**,保留行项并在名称后注明(复用),例如「RBAC 权限管理(复用)」「欠费催缴工单(复用,随相关模块交付)」——让客户看到功能范围但不收费,这是历史报价的展示习惯。 +4. **复用框架只算差异**:如「支出计划确认(复用收入确认框架,仅算差异)」计 4 天,而完整的收入计划编制计 10 天。 + +### 人天估算基准(历史校准值) + +| 工作项类型 | 参考人天 | 历史例证 | +|---|---|---| +| 项目初始化+模块接入+脚手架+CI/CD | 3 | DICT 底座 | +| 统一认证对接(如中国移动 4A)+登录页 | 2 | DICT 底座 | +| 审批流接入配置 | 1/条 | 4 条流程 4 天 | +| 文件服务+Excel 导入导出 | 3 | DICT 底座 | +| 简单列表页(列表/查询/简单表单) | 4 | 线索管理 4、线索录入 4 | +| 标准业务模块(列表+表单+详情) | 5–7 | 合同管理 6、项目管理 7、专属云 5 | +| 较重业务模块(多子页/多状态流转) | 8–9 | 商机管理 8、5G 泛项目 9、大单填报 9、激励管理(三级审批)9 | +| 复杂模块(多段表单/评分模型/多 Tab 审核) | 10–12 | 商机录入 12、招标信息 10、收入计划编制 10 | +| 报表 | 约 1.5/张 | 6 张报表 9 天 | +| 工单类(创建/我的/处理) | 5–6 | 售前支撑工单 6、欠费催缴类似 | +| Dashboard 首页 | 5 | 登录后首页 | +| 待办/消息/个人工作台 | 6(复用后 2) | 我的 6、我的商机 2 | +| AI 文档智能解析(PDF/Excel 提取) | 6 | 融业财智能化 | +| 外部系统对接联调 | 约 1–1.5/系统 | 4 系统 5 天 | +| 流程节点类(审批链/状态机节点) | 简单 1.5–3,含外部对接或多步流程 4–5,重节点 7–10 | 360 视图 17 节点共 74 天 | +| 联调+自测+Bug 修复 | 业务规模的比例项 | DICT 为 8 天 | +| 系统测试/UAT | 同上 | DICT 为 5 天 | +| 部署上线 | 3 | DICT | +| 项目管理+需求+文档+沟通 | 全项目约 10% | DICT 108.5 天中占 10 天 | + +整体校验参考:测试与交付合计约占(底座+业务)人天的 **20%**;项目管理约占总人天的 **10%**。估算完成后用这两个比例反查是否失衡。 + +### 估算方法 + +1. 通读输入材料,把需求拆成「类别 → 功能模块/工作项」两级清单,粒度对齐历史报价(一个工作项 ≈ 2–12 天,超过 12 天要再拆)。 +2. 每个工作项对照上方基准表定人天;无先例的按最接近的类型内插,并在说明中标注假设。 +3. 识别可复用项(本次或历史已有实现),按规则计 0 或只算差异。 +4. 判断是全新系统还是新增模块,决定是否计列底座/测试/项目管理。 +5. 出数后做比例校验,再与同量级历史项目总量对比(DICT 全系统 108.5 天、融业财模块 56 天、拓商机模块 46 天、360 视图专项 74 天)。 + +## 去 AI 味(所有交付物硬性要求) + +最终产物(报价单、排期表、Word/PDF 文档等)会直接发给客户,不能让人看出是 AI 制作的: + +- **少说明、不解释**。不写「本文档旨在」「以下是」「需要注意的是」「综上所述」之类的引导语和总结语;不解释自己为什么这样做;交付文件里不放说明文案。 +- **不穷举**。范围说明、备注只写重点三四项,不把功能点从头到尾列全——逐项穷举是 AI 的典型痕迹,人只挑要紧的写。 +- **文字简单直接**。工作项名称、范围说明照实写,不堆修饰词,不写排比句和对称句式,不用「全面」「高效」「赋能」「一站式」这类空词。 +- **克制的结构**。不为了显得完整而加多余的列、sheet、图例、注释;历史模板里没有的元素不主动加。 +- **不用 emoji、不用分割线、不用加粗滥用**。文档里加粗只用于标题和合计等惯例位置。 +- **像人手写的 Excel**。允许小的不完美:说明行就是一行普通小字,不做成花哨的信息框;没有页眉页脚水印。 +- 交付前通读一遍,问自己:这份东西像不像一个熟手售前顺手做出来的?像才算过关。 + +## 报价单格式规范(xlsx) + +用 openpyxl 生成,样式严格对齐 `reference/` 中的模板: + +- **文件命名**:`<项目名>报价单.xlsx`;多子系统合并版可加后缀,如 `(合并)`、`(含XX专项)`。 +- **Sheet 结构**:每份报价单固定含两类 sheet——首 sheet「报价汇总」+ 明细 sheet(单系统一个「报价明细」,多子系统时每个子系统各一个)。汇总表颗粒度为功能模块/子系统级(每个功能一行,外加底座、测试与交付、项目管理各一行),人天与金额用跨表引用或 `=SUM('报价明细'!D4:D8)` 这类区间引用,不抄数字。 +- **明细表列**:`序号 | 类别 | 功能模块 / 工作项 | 人天 | 金额(元)`,列宽约 `6 / 12 / 48 / 9 / 15`;汇总表列 `序号 | 子系统 / 模块 | 范围说明 | 人天 | 金额(元)`,列宽约 `6 / 26 / 40 / 10 / 16`。 +- **样式**:全表微软雅黑(Microsoft YaHei)11 号;标题行 15 号加粗白字、深蓝底 `1F4E79`、跨列合并;表头行加粗白字深蓝底;「类别」列纵向合并、浅蓝底 `DDEBF7`;合计行加粗、绿底 `C6E0B4`;全表细边框;人天/金额右对齐,功能项左对齐,其余居中,自动换行。 +- **不加说明行**(用户确认的偏好,2026-08):表格下方不放说明文案,单价、复用口径、二期范围这类信息在对话里向用户交代,不写进交付文件;确有必须随文件传达的口径时,先问用户。 +- **交付前必查**:跑 recalc 确认零公式错误;核对合计;按码点检查中文正文无残留半角标点(,。()等必须全角);按「去 AI 味」标准通读一遍。 + +## 排期表格式规范(如需) + +参照 `reference/西藏移动项目管理平台开发排期.xlsx`: + +- Sheet 1「开发排期甘特图」:`序号 | 子系统 | 类别 | 功能模块/工作项 | 开始 | 结束` + 逐日日期列,用子系统配色填充甘特条;复用项不排期,在名称后注明「(复用,随相关模块交付)」。 +- Sheet 2「关键里程碑」:M1 底座就绪 → M2 核心功能 → M3 扩展模块 → M4 系统测试/UAT → M5 部署上线,各配计划完成日与阶段交付物。 +- 排期天数与报价人天解耦:多人并行时日历工期 < 总人天(历史例:108.5+ 人天压缩在 18 个日历日内完成)。 + +## 工作流程 + +新报价任务的标准步骤: + +1. 把用户给的材料存入 `input/<项目名>/`(如用户直接给路径则原地读取)。 +2. 按「估算方法」产出模块清单与人天,先以 Markdown 表格形式给用户过目确认口径(是否含底座、单价是否 1000 等有疑义时询问)。 +3. 确认后写脚本生成 xlsx 到 `output/<项目名>/`,跑 recalc 验证。 +4. 汇报总人天、总金额及与历史同量级项目的对比。 diff --git a/output/生产系统/生产系统开发报价单.xlsx b/output/生产系统/生产系统开发报价单.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..36528b602af8ad0eb41e35eb912eeb65cbe57424 GIT binary patch literal 13513 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 X`T+f=VPIfLZzt57l2)<*@$LTsB=`B& literal 0 HcmV?d00001 diff --git a/reference/拓商机系统报价单.xlsx b/reference/拓商机系统报价单.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..90958609b3086618c35d5edbc8a700a52dcdf9dd GIT binary patch literal 6075 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 literal 0 HcmV?d00001 diff --git a/reference/融业财系统报价单.xlsx b/reference/融业财系统报价单.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..d1615d4ea5a9d6039ba598a16612d0f24fba4a7d GIT binary patch literal 10478 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 J@Tq@(`#-5=K4t&_ literal 0 HcmV?d00001 diff --git a/reference/西藏DICT项目管理系统报价单.xlsx b/reference/西藏DICT项目管理系统报价单.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6362c6c9b5c616446091c19e5c66e478e4597b4f GIT binary patch literal 10930 zcmeHt1y@|@(skobaDux8hu{PW?(R^xSk2P+2eX=0x2~`n+Jv%*X#gMl*L>Bux30<|LR^ZFJJ)Kzj3r)iGk$%>lMjY3c|f|RL9QH!k(V) z=jZ>p`Cm-Pzx?&G7%7?Gx%ne-=yrZB3W;CB>7!^Xk)o%!*y@}5@LW=ywN46LBt`7c zU?N`aoDV4gRoYaPEit@7B0PH`SdBDEr-BWGnvWZR!JX`*J|LyG4!o-XndetHDG#V>WXn2? zolN!ml2CAfz#GINc|4PhK4cFxUaD{(vLL#?$5v7>;V`WNX4r8OyXY8LbX^IicA`GH z(@Lie$rCf9+%Zjx43cGCd#TqkUyP=^^s&M8mJXc{`-Tz}t-s3EKS@&lpi0CG1^}SH z>e`#vm2tM9ce1uK2U=U3{}i!2B{{1VcBCizDK6+ADwHEJ7I1Q~qajlOG2J}Vnn!d7 z6ujza!T3BNln}jaR;HUDcdzI1r)BOzM8nbIqZ}KBZgL^JyE~&jgim*7YViwTu_2+H z{5xGAF-qS@Up>(AThlAJ`O)N?rq9aH(eOt~W~+$M>)_J)wRNIzt%G{23l&YZz%VMS zbyJlf3ig_*Cc~-8AqcnxDv@A~D|IJTh#zxGdsB~?*YQK|^1KD|>|;p?E-05RP$LbC zm-uv0Ip@08QLR8#)-$9&HATnEd zq0pS*DqTpzlI=YJvMxftN4)fP`&szwHsgGLiuypa1jfd(S{2j%UJU}LY!fDoy)#^x zPd#0kAA0@$^bZ6!Ogy{^m*EQKnR=7iwAm4Z5@Mch?;HP{NwNdLO zSo8k#BTW2v<)AO;+>^FF_^R(xq;E{k<-?8T+w_x_RaL?*59L^x_3v=>X4a_gAWUb* z1R({OmBUodHbfwUMynDxBqiY1WnvUWyKx=>Fg|trN3PtA$ONl%$?(JDP#ai~!E9tV zi>b~xT~|SPk>thP_yee3%y`n<2H%m>qCY0VEFS{X&B5@9-k`MBItV8|!P@pD?8`9o zupbSwJ~>Hs-b}MwSk+TcU>u5}8=25nx}=8+?N95!;InUTXh;Fy1&h=%zW{6Th=Vs z3X3Kaun+q%ESA{oX)HWyK~6jSDL{X#NngJ^;X(1B0_wn4_w8fuB378ziiDV%o5As- zEv|DzW*(TAXv{%%X3F=ZBVJAHzWev3u70g+VTTwa-HQBdh*GH)#%!@y^L@*Yv@C&` z!M29&kH!Jkn^(#;+~KpO+z5sH#)-ym%Nh7O>zaj+*fJAa1~r{eJ6piZ{oMp&dlXGhr6PzY8XX(Zt;U# zSG=6c???%-jnNInV13IR4fV|-&iY5kNrJjeBrMX&Aiy9N_rIvLs+dJ@7wV?)1Qh{4 zgZ8dk=ff|{1`^qFFR>S=oki&%m@nn>0Hy3=3*O93vJmplq6NzP@WwR~hGa)hyqLF^ zm@#v6JxxdN!eKC-PYpl_`gD*hpKDM=BkveKj;GwH4AZoSip;!F+0u;enI z9#UW<)+NW$)Km3ge@Tf$0l7L_r*USmFVQ)7B@A5uc*P4m7j zeLEO@tKMY|?Umbtqp*JPP9l~+-b@D}YZoxMn(sxh3S~P}H@EvzVARJ>xno~~=WI&V zW+@7ssYBPs##vijtTUCAQDO8FcanJ7AbM*1TsTG0J1P?Xv|owQiuR#Q&BcF}{^<>{ z17Xm!N<9hiKpjt?e|@TS(W~MTBSw~u`qhn-hak>%E+8}81X?O#fR7D}Lg|5q?b5-Q zGEhuJ@Sd-t zep66BUPXyAOx(ECML=k>LvX3y!o+-6Wd7s+N>Naaj0f#YMP;f|w;6ql<8Flk{0w?# z6z5Nh0P7^!^E_C6)!hhK{StsoiOpFZR7C-p^8$(Q7b_?bCbn3-ex){bw8Q?-p8yK7 z8T#o;eYj?a#n>!qDZ^lq!>#fb`5=fbiR(^q&IioAu_yWU4Mc(e^a-7nn1eX$WeC+O7as>XVo;Xg$09uTX1^ zI#^o13%s9Bg9d`Snl(vdp)&hS4s1m*ehdvh@UC7ZW`(fm3>oNz8Nv$Ht@Pkws@%E3 zz-#YP`=I8)tUjw(+aVmbP#layQ!T=)pDO}~%WZBQnuOJ!?G*;se8t#rNfEVG7b+iH zkrOP1*f1&~**Nsk(I#rvL@GjR7n?B^H@++PVw_uFgxu*%!cqbs9+g`vfxK^-VdWS` zC>I4>_yUcpY$bB7nr`q3arfm%Kk{!R9pXqwcSBnYr=J26B%Y!Rrc(wCcaupQge8-n z2IDNM@`OH@H$Y2O(4+NfGCyF#?>IprgfB2JZfTP&sK59YGS!(PZ#TnBMZHZerUlXg zW3^wtNiBDeb+ND{#4ms^M=N74!3kG6hnVFaNfZcMtG;&~w2$sSfxBXskT+Lolp|~+ znQ=6Zg}J}1JR-u{d$J5~8IpWV2Xku+jSMi~ud*$N@TJ|?m7|_er4dp@01M}Em&l@? zIei$`oQ7T~$W<9KL_HZoUoMs-$Z@JF>JO0e5)8ko>V~v3*j5H-IKjZFfPuEWFQ5hm zR{>E(SYq(9hHRZ5SJvL=UMriS_OW`DC3L~`w8@d@g%Z$6@z8c@=Zh#h=kVrLp zfD9y?mQ_m*$xe=M-gWVZDhB&v(gAeOHqnAHjI2#3gtey zO`c;gYi3Gzp>*m<&wyC9*;{%Gf6Tt$cJh0|->0{g$Ui zglJjaMaWW*l6|^Xm;}BhKtWn9+Ia94;dv;|0ehVkYnm&nVA`aBsjtsOuDffzIPM6H z|3sldH)1hLDinVMI1G7kA%KD}oY)bX$>VuTTR|N|WKmJml1Tah3W0{a6Sa4YXF!;l+Vl%j+t7oAY_IRC|3$1`}~iW2up{1zO@ew2q?0(2-XuE9I%ZBoil6+BNs zqOV|5!yWSg9*`ZrgMxIGPL*%zg&({^&<5IpTe11?^^JVl=D>xojN6#}5_Mkz_-fM; z&@`8rl*m|)u}`A8p<)W!nBW$#@*u1@`s2*FX=P$wc=tOmK_ddDXakZciSM&Mgm`+Rhth-V!LyCH9&lK9G=1BRp@dxgRtE($oP(VIl;#tt% zZvU9H321RW`8YB~gdB5OhOS7j0xDP&CBhu4(VgyjHsk7@*Q4f#H7QD+goLHJ;{MWJ z>MTG;N(OynYzNlpD_HEVZzvQ{6}D@b5evVL&@5W*D}r1p2uc957FS-TOcfrFHcP{Y zCGB&3@-->|{F-H0*IvABbdym*p59Lq*JP$|Nv~?Us07)Lm`gHCU`!q4Jorv7^Mfo1 zP?gGg8kTAgwah|Ws~e}EyddG2_T(s8rn+(wDO?#r2KkMVWNEwl)yPd)2M9xb(2-+n zy45G)Nr25;-vZ?Xrg3%a_T`Kj8lU4YLd)sm?eg{)WDn+WOl&JBj_qngz+mjCCv}ak zN)_z-awRBhJ`5e5t}n|P>C(O3I8ps<80YQO}QhGnNT>wVwY!(%ZP-X7lHR%Y-Dy}mg-?~d=j$_z&0`%#ci)WQx5cF)x7@iNU(*Txl4l2ZPH_Ks+cr;U+23o1JobSB94Bq0Y zy+L7Ap6k6Aj^XUmnovuHs|2w!(I$ht9aK9urW-I^bTDM3=yYZ|>?2y<$hlF4}HR+1UE;W)9M%un|j9Fr2@y!l2KUyw# zh5NbIsZo$8B=4q0aqF4r_Y8x$%O1g#_s+6l$`y<+0)v^5wpzl_qgg-EtoSBW1@$$D(D&!8G&Dr|vd39t^|U788}LQT99;|&zl_v=4GT*~(|_+Jja6<6YHZlx zxOF#& za_!$DO3qH~A6d5^%2R?(A*FAKEsRfaz;T8~5Z}bYvedZgh(Qs*G@nqF>Uw6`#*AmR zuRY`9MvSMXEG?aoovS=mR=EI%w$+9XuUF<@X^N}MKEPJFPG4#^s8iSlOG~oQ!aSf^3$00#QG0kL+YN(y4s*VaD1dj$NN*`Ia`8-N6 zNGGP})qUd6kkwXp&&BDHQhQeoP%T_lv?ePp1n@Oj=3=i zIlM999C|yLq*Fh_`{AP7!{$4y=0#+3%#GO#h~`CioSqk{_fF#kiw4`vYq|EH`<_Wr zXz2=Y0Du`A06_R%mh2r|EDY^`Zg!5b#v`^^@3f20kaj0XL1I7zRcU$URF=!B#ud#X z$!)tzP(>n=1Ik^G$_IG_t+~(gt!LvO-ac7SkWPaNU>UI}Lcko;-`u_!8~-Q~ExPb_ zkybrSod~zYW=BvHoQb#gbR%$pEQp4S6Ar3Dd)&j=-zyzX)Cse%&cCw?uVw%Ur9AGb z2U!@Xxik&Hj99A%C^)0M&maU*=%~32(?{F2Q{XSJuyj-Q6*V)1&n5i;A?ADcCbbN; zhE%|p28Ik+YLhIC60u$;KQJ8wTIxS5k}b!Me})ZF8ASPw!T|-vE}>R+6`&p3&j@o- zc#K${?calqs>|~xc3a)Ck<6`ovTv@D-IH*}ea|4xDuxib8M#J^sw<5vDm$|+7~p)A z9MCWlCX_{i6J{kfpxo@j6rrZR-2{P)!hp4Z77ir{;zN=c7{+7;UB!|m8-+%uT6uRj zSn2h2pQ?$T>o-*%;7G>jBGODlq)RQNjylyT(Og2jyO4Khc98n-NO;PxA} zC5@&#keLk<{9IP*cude++AeXKGiQ_IDH_Khpoks5#0<(2F8(#C)UrZqC_%g`|?NlYVBJlM-K6+8m)SRc8k5v;ABu6qjd5$#q#oOw-Eayf%|<3UC#Zt!CZAwDpcE}RpW5> z@pxRA=iW1GM9%z@2k8!1XIskKa(&?iV9Vmk(uOZYfl*ka*%27r(Ql z>tMu7(*EbT0&cKUO@w-=mn0%f+;nIh#i_(RG#+Q($^>6u3~k`YUMg+ZD$Z_^)d(jp zqiUAEL_5_)y0?oZBtaeSESz5_>}T$Bl)RQjf_B;^3BS+?kK#XZ8tFNcf=X8hS_oz) z1=9iXZh1)*bB)q1iZRvkuvu=K3h^$9DR~2_C=`=QG8(BUrarXWc@BuXG`+Cr%b1X6 zD$j#XSC-3|T)c@b-6L3iSiTFCyys}m2)#ubyzeYXnTI|+LKVkL-i(@K53ZlkYekJG zs(g08+75i<_3|u1qM3lh4rJu3oA$_cU}YMI~MVP&wDvk(}ScVcT=M$6x_M#!toXZ2-2(*0!KVO zCK{~DN7NatrX4}y$0v#i=Zg}0Ik|eO$Ab|RM1vZ)C)huVh*&k2_SS`$;*J2^YGFT` zgeP*Vx1Os_!+@OpNg=FUTjMb$zj)!H=987Gu>XDhDsYn=rXL}$GI;+1Y= zT^f8URJQFfUY!=Kh9b_g!&d=sPBy!3^c-Guery6nY{lI8kW;bqTKr@zz(djTBj>yb zg!GHI1KfAZsiQazObmljSskBwya}<$1+%CM+bC*P3aK_l{$_Ls=iz$_mltq|fuf`n z(uI6wG!J z*j)2^&)IL)DtMf=0tah`iBML#G{^-$E69h~84DULTe-Gbh4Up*?`6S1b&xWiyw^@f zPDL>Oc3<}z()D?H8pZJ=HHYLh>o@loFW)GlezRT{cs89h3Z;;xXYg_Xg$ZFeV_CJ0cMo zfG*bIa8Ry}B@0Qprdd!7i8~HZQn%~2#J&vt&@z_OPkv@|G==gecCZjiq61nGB<=<8YN3z+Dc zTK&|2gXnRq9tL>tpDp$suDoGL3k3y4eK+3=fSj30{trbl=I#~Lsi3+Clwlp*NBh-N z`iUByFjIJKA62%lsnn^+=d#Vat9DnggqoZ7hVEQnYVt*=Q6cj>mdwxi+|=mq@(ep4 zJZv(?yrm02B~2x!Dg;UIqYS*4Q4m}!1YzVFHJr6*riREeM+k-OVC@>%0*tN8Jol~e zYIa*8hHP)^jXP(8$?ZL45{qYIMf~mv-0Z|{nw>He(fO`SnJE$S=-pt>s#9y{#=XK*7pBe2d_R7 z7Sk=>%YZv@=6m+KK(UVc5mSy?HL+mb!CSPXFP8nR2x4_dz0S8gV3a%)?ufIFrFgDL zc48g$o$ec%eYKX+Zj)J3$|KH;P#s#+9u;=5M)P!C-VuFddCM#zBLl3U zq-W7QlJ{xAdOI1Nm#s-=qFhw|e<^&LkdgT==gBtWlCKl+Y(1rn zO<4(DF_$%9lwj+ze_l#se$wDQH6mp=M4={FZN7BsbIJN1BR(!G*jREk9NUo+KGx2mEg_XaAov?^s%z?nw-SiVV z&`I`~HJI@w$seUn1etk8LxW`wSQlIz8HOG$=pjqSZy#EAVjvF6&liL ziX7<^TQm!A*nj$ri|57Dz`0(gwE!f=aVIK>)in4fMOm(cz6HF$*^D0w>Q3DB9ptx& z?yL5EmK@hNVW<%riSaMwpBo#O6lY?o@F6!nnJs{|MMzt2ipef1>z>uESoo%fzjq(q zhmcEO{lUaB0BDm||D&_OkO7ZCi>^@$bm8#REW5e)EbVnO3!`iiI~SBbH&jV28_s9x z;c7{;35b+Z6PHqZvcYoow>Hi(5mV^w{A2`Bhw#~<)`+Yz%CwW}%(y_|8wJ>NSpx#^ zDllq6xM|;g@WtVPf=Vp`-0P?D>$OSi&dwKErjtN5orwJH<&L>o?WhnBJ!1x&ynddq zGc^LPI^#r_yxxWSn;Cjtcs8CM9UZOh%`cbNFhH*Zhee&6v$7Xa%yFhP&}{+NM}hhx zB49G;Mt&g*x9icb=0^w9q+Zd5#<=5g?mzk-evUl+t~Vf{ zw6FQszt8vm@f`m+|I4(Wti<09{C)W758%&p-YZ%DGK%yo@YjKiKcT~~RoP$0GkyjC zy~F$`6aZj>{SEy8={Nss=hrUdpO#$U|KE@JN6+zBE5DYK|Fp7<@~?&EUk&`a>HpJ! zE!J-a{wx9f3jH;${u3&W|2y>8B>Ptjza|}jTCgJe&BEVOkYCY%*Xcj80DucI0Pqjh m{uTcB$of|}B-vl!|B17*5)iMx@pH-z4$$$M7_3wL{PurH8#kc< literal 0 HcmV?d00001 diff --git a/reference/西藏移动项目管理平台开发排期.xlsx b/reference/西藏移动项目管理平台开发排期.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..344e0d01f285961df5e62889d6be4d7667ac11bb GIT binary patch literal 15278 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 literal 0 HcmV?d00001 diff --git a/reference/西藏移动项目管理平台报价单(含360视图专项).xlsx b/reference/西藏移动项目管理平台报价单(含360视图专项).xlsx new file mode 100644 index 0000000000000000000000000000000000000000..5b8558181f78a3e6aa4ac2c09164c2a8259ad820 GIT binary patch literal 14411 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 k|HS!|a{dnv>whF51!;&6A?shKO9X)Ghd (起始行, 结束行) +row = 4 +for idx, (cat, name, days) in enumerate(items, 1): + ws.cell(row=row, column=1, value=idx) + ws.cell(row=row, column=2, value=cat) + ws.cell(row=row, column=3, value=name) + ws.cell(row=row, column=4, value=days) + ws.cell(row=row, column=5, value=f"=D{row}*{RATE}") + for col in range(1, 6): + c = ws.cell(row=row, column=col) + c.font = Font(name=FONT, size=11) + c.border = border + if col == 3: + c.alignment = Alignment(horizontal="left", vertical="center", wrap_text=True) + elif col in (4, 5): + c.alignment = Alignment(horizontal="right", vertical="center", wrap_text=True) + else: + c.alignment = Alignment(horizontal="center", vertical="center", wrap_text=True) + if cat not in cat_ranges: + cat_ranges[cat] = [row, row] + cat_ranges[cat][1] = row + row += 1 + +total_row = row +# 类别列合并 + 填色 +for cat, (r1, r2) in cat_ranges.items(): + if r2 > r1: + ws.merge_cells(start_row=r1, start_column=2, end_row=r2, end_column=2) + a = ws.cell(row=r1, column=2) + a.fill = PatternFill("solid", fgColor=LIGHT) + for r in range(r1, r2 + 1): + ws.cell(row=r, column=2).fill = PatternFill("solid", fgColor=LIGHT) + +ws.merge_cells(start_row=total_row, start_column=1, end_row=total_row, end_column=3) +ws.cell(row=total_row, column=1, value="合计") +ws.cell(row=total_row, column=4, value=f"=SUM(D4:D{total_row-1})") +ws.cell(row=total_row, column=5, value=f"=SUM(E4:E{total_row-1})") +for col in range(1, 6): + c = ws.cell(row=total_row, column=col) + c.font = Font(name=FONT, size=11, bold=True) + c.fill = PatternFill("solid", fgColor=GREEN) + c.border = border + c.alignment = Alignment( + horizontal="right" if col in (4, 5) else "center", vertical="center" + ) + +for col, w in zip("ABCDE", [6, 14, 52, 9, 15]): + ws.column_dimensions[col].width = w + +# ---------- 报价汇总 ---------- +ws2 = wb.create_sheet("报价汇总", 0) +ws2.merge_cells("A1:E1") +c = ws2["A1"] +c.value = "生产系统 — 开发报价汇总" +c.font = Font(name=FONT, size=15, bold=True, color="FFFFFF") +c.fill = PatternFill("solid", fgColor=DARK) +c.alignment = Alignment(horizontal="center", vertical="center", wrap_text=True) +ws2.row_dimensions[1].height = 34 + +headers2 = ["序号", "功能 / 模块", "范围说明", "人天", "金额(元)"] +for i, h in enumerate(headers2, 1): + c = ws2.cell(row=3, column=i, value=h) + c.font = Font(name=FONT, size=11, bold=True, color="FFFFFF") + c.fill = PatternFill("solid", fgColor=DARK) + c.alignment = Alignment(horizontal="center", vertical="center", wrap_text=True) + c.border = border +ws2.row_dimensions[3].height = 24 + +r = 4 +for i, (name, scope) in enumerate(summary_rows, 1): + r1, r2 = cat_ranges[name] + ws2.cell(row=r, column=1, value=i) + ws2.cell(row=r, column=2, value=name) + ws2.cell(row=r, column=3, value=scope) + ws2.cell(row=r, column=4, value=f"=SUM(报价明细!D{r1}:D{r2})") + ws2.cell(row=r, column=5, value=f"=SUM(报价明细!E{r1}:E{r2})") + for col in range(1, 6): + c = ws2.cell(row=r, column=col) + c.font = Font(name=FONT, size=11) + c.border = border + if col == 3: + c.alignment = Alignment(horizontal="left", vertical="center", wrap_text=True) + elif col in (4, 5): + c.alignment = Alignment(horizontal="right", vertical="center", wrap_text=True) + else: + c.alignment = Alignment(horizontal="center", vertical="center", wrap_text=True) + r += 1 + +sum_total = r +ws2.merge_cells(start_row=sum_total, start_column=1, end_row=sum_total, end_column=3) +ws2.cell(row=sum_total, column=1, value="合计") +ws2.cell(row=sum_total, column=4, value=f"=SUM(D4:D{sum_total-1})") +ws2.cell(row=sum_total, column=5, value=f"=SUM(E4:E{sum_total-1})") +for col in range(1, 6): + c = ws2.cell(row=sum_total, column=col) + c.font = Font(name=FONT, size=11, bold=True) + c.fill = PatternFill("solid", fgColor=GREEN) + c.border = border + c.alignment = Alignment( + horizontal="right" if col in (4, 5) else "center", vertical="center" + ) + +for col, w in zip("ABCDE", [6, 16, 46, 10, 16]): + ws2.column_dimensions[col].width = w + +wb.save(OUT) +print("saved:", OUT, "| 明细行数:", len(items), "| 合计人天:", sum(d for _, _, d in items))