Browse Source

调差建筑税计算方法更改及存储

ellisran 11 months ago
parent
commit
ed51c9830e

+ 17 - 13
app/public/js/material.js

@@ -127,31 +127,35 @@ DatePickerCellType.prototype.updateEditor = function (editorContext, cellStyle,
 function resetTpTable() {
     $('#tp_set').find('td').eq(1).text(ZhCalc.round(m_tp, materialDecimal.tp));
     $('#tp_set').find('td').eq(2).text(ZhCalc.add(pre_tp, ZhCalc.round(m_tp, materialDecimal.tp)));
-    if (materialTax) {
-        $('#tax_rate_set').find('td').eq(1).text(ZhCalc.round(m_tax_tp, materialDecimal.tp));
-        $('#tax_rate_set').find('td').eq(2).text(ZhCalc.add(m_tax_pre_tp, ZhCalc.round(m_tax_tp, materialDecimal.tp)));
-    } else {
-        const rate = $('#rateInput').val();
-        const bqhs = ZhCalc.round(ZhCalc.mul(m_tp, 1+rate/100), materialDecimal.tp);
-        const jzbqhs = ZhCalc.add(pre_tp_hs, bqhs);
-        $('#rate_set').find('td').eq(1).text(bqhs !== 0 ? bqhs : '');
-        $('#rate_set').find('td').eq(2).text(jzbqhs !== 0 ? jzbqhs : '');
-    }
-
+    let sum = 0;
     if (isStageSelf) {
         let html = '';
+        const rate = $('#rateInput').val();
         for (const ms of materialStageData) {
-            const taxHtml = materialTax ? '                                        <td class="text-center">' + (ms.m_tax_tp !== null ? ms.m_tax_tp : '') + '</td>\n' : '';
+            if (!materialTax) {
+                sum = ZhCalc.add(sum, ZhCalc.round(ZhCalc.mul(ms.m_tp, 1+rate/100), materialDecimal.tp));
+            }
+            const taxHtml = '                                        <td class="text-center">' + (materialTax ? (ms.m_tax_tp !== null ? ms.m_tax_tp : '') : ZhCalc.round(ZhCalc.mul(ms.m_tp, 1+rate/100), materialDecimal.tp) ) + '</td>\n';
             html += '<tr><td>第' + ms.order + '期</td><td class="text-center">' + (ms.m_tp !== null ? ms.m_tp : '') + '</td>\n' +
                 taxHtml +
                 '                                </tr>';
         }
-        const allTaxHtml = materialTax ? '                                        <td class="text-center">' + m_tax_tp + '</td>\n' : '';
+        const allTaxHtml = '                                        <td class="text-center">' + (materialTax ? m_tax_tp : sum) + '</td>\n';
         html += '<tr><td>合计</td><td class="text-center">' + m_tp + '</td>\n' +
             allTaxHtml +
             '                                </tr>';
         $('#materialStageTable').html(html);
     }
+    if (materialTax) {
+        $('#tax_rate_set').find('td').eq(1).text(ZhCalc.round(m_tax_tp, materialDecimal.tp));
+        $('#tax_rate_set').find('td').eq(2).text(ZhCalc.add(m_tax_pre_tp, ZhCalc.round(m_tax_tp, materialDecimal.tp)));
+    } else {
+        const rate = $('#rateInput').val();
+        const bqhs = isStageSelf ? sum : ZhCalc.round(ZhCalc.mul(m_tp, 1+rate/100), materialDecimal.tp);
+        const jzbqhs = ZhCalc.add(pre_tp_hs, bqhs);
+        $('#rate_set').find('td').eq(1).text(bqhs !== 0 ? bqhs : '');
+        $('#rate_set').find('td').eq(2).text(jzbqhs !== 0 ? jzbqhs : '');
+    }
 }
 function getPasteHint (str, row = '') {
     let returnObj = str;

+ 1 - 1
app/service/material.js

@@ -399,7 +399,7 @@ module.exports = app => {
          * @return {Promise<*>}
          */
         async getPreTpHs(tid, order, tp) {
-            const sql = 'SELECT SUM(ROUND(`m_tp`*(1+ `rate`/100),' + tp + ')) AS `pre_tp_hs` FROM ?? WHERE `tid` = ? AND `material_tax` = ? AND `order` < ?';
+            const sql = 'SELECT SUM(`rate_tp`) AS `pre_tp_hs` FROM ?? WHERE `tid` = ? AND `material_tax` = ? AND `order` < ?';
             const sqlParam = [this.tableName, tid, 0, order];
             const result = await this.db.queryOne(sql, sqlParam);
             return result.pre_tp_hs;

+ 12 - 0
app/service/material_bills.js

@@ -767,6 +767,18 @@ module.exports = app => {
                 m_tp: tp.total_price,
                 m_tax_tp: tp.tax_total_price,
             };
+            // 计算建筑税价
+            if (this.ctx.material.is_stage_self) {
+                const materialStages = await transaction.select(this.ctx.service.materialStage.tableName, { where: { mid: this.ctx.material.id } });
+                let rate_tp = 0;
+                for (const ms of materialStages) {
+                    const ms_rate_tp = this.ctx.helper.round(this.ctx.helper.mul(ms.m_tp, 1 + this.ctx.material.rate / 100), this.ctx.material.decimal.tp);
+                    rate_tp = this.ctx.helper.add(rate_tp, ms_rate_tp);
+                }
+                updateData2.rate_tp = rate_tp;
+            } else {
+                updateData2.rate_tp = this.ctx.helper.round(this.ctx.helper.mul(tp.total_price, 1 + this.ctx.material.rate / 100), this.ctx.material.decimal.tp);
+            }
             console.log(tp);
             // if (this.ctx.material.material_tax) {
             //     updateData2.m_tax_tp = tp.tax_total_price;

+ 2 - 2
app/view/material/index.ejs

@@ -81,7 +81,7 @@
                             <% if (materialColShow[0].checked) { %>
                             <td class="text-right"><%= m.m_tp !== null ? ctx.helper.round(m.m_tp, m.decimal.tp) : null %></td>
                             <% if (openMaterialTax) { %><td class="text-right"><% if (m.material_tax) { %><% if (m.m_tax_tp) { %><%- m.m_tax_tp %><% } else { %><%- m.m_tp %><% } %><% } %></td><% } %>
-                            <% if ((openMaterialTax && !allMaterialTax) || !openMaterialTax) { %><td class="text-right"><% if (!m.material_tax) { %><%= m.m_tp !== null ? ctx.helper.round(ctx.helper.mul(m.m_tp, 1+m.rate/100), m.decimal.tp) : null %><% } %></td><% } %>
+                            <% if ((openMaterialTax && !allMaterialTax) || !openMaterialTax) { %><td class="text-right"><% if (!m.material_tax) { %><%- m.rate_tp %><% } %></td><% } %>
                             <% } %>
                             <% if (materialColShow[1].checked) { %>
                             <td class="text-right"><%= m.ex_tp !== null ? ctx.helper.round(m.ex_tp, m.decimal.tp) : null %></td>
@@ -90,7 +90,7 @@
                             <% if (materialColShow[2].checked) { %>
                             <td class="text-right"><%= ctx.helper.add(ctx.helper.round(m.ex_tp, m.decimal.tp), ctx.helper.round(m.m_tp, m.decimal.tp)) %></td>
                             <% if (openMaterialTax) { %><td class="text-right"><% if (m.material_tax) { %><% if (m.m_tax_tp) { %><%- m.m_tax_tp %><% } else { %><%- m.m_tp %><% } %><% } %></td><% } %>
-                            <td class="text-right"><% if (m.material_tax) { %><%= m.ex_tp !== null ? ctx.helper.round(ctx.helper.mul(m.ex_tp, 1+m.exponent_rate/100), m.decimal.tp) : null %><% } else { %><%= ctx.helper.add(ctx.helper.round(ctx.helper.mul(m.ex_tp, 1+m.exponent_rate/100), m.decimal.tp), ctx.helper.round(ctx.helper.mul(m.m_tp, 1+m.rate/100), m.decimal.tp)) %><% } %></td>
+                            <td class="text-right"><% if (m.material_tax) { %><%= m.ex_tp !== null ? ctx.helper.round(ctx.helper.mul(m.ex_tp, 1+m.exponent_rate/100), m.decimal.tp) : null %><% } else { %><%= ctx.helper.add(ctx.helper.round(ctx.helper.mul(m.ex_tp, 1+m.exponent_rate/100), m.decimal.tp), m.rate_tp) %><% } %></td>
                             <% } %>
                             <td class="<%- auditConst.auditProgressClass[m.status] %>">
                                 <% if (m.curAuditor) { %>

+ 11 - 5
app/view/material/info.ejs

@@ -191,8 +191,8 @@
                                                     <td class="text-center"><%= material.ex_tp !== null || material.ex_pre_tp !== null ? ctx.helper.add(material.ex_pre_tp, ctx.helper.round(material.ex_tp, material.decimal.tp)) : null %></td>
                                                 </tr>
                                                 <tr id="rate_set"><td>材料价差费用(含建筑税)</td>
-                                                    <td class="text-center"><%= material.m_tp !== null ? ctx.helper.round(ctx.helper.mul(material.m_tp, 1+material.rate/100), material.decimal.tp) : null %></td>
-                                                    <td class="text-center"><%= material.m_tp !== null || pre_tp_hs !== null ? ctx.helper.add(pre_tp_hs, ctx.helper.round(ctx.helper.mul(material.m_tp, 1+material.rate/100), material.decimal.tp)) : null %></td>
+                                                    <td class="text-center"><%= material.m_tp !== null ? material.rate_tp : null %></td>
+                                                    <td class="text-center"><%= material.m_tp !== null || pre_tp_hs !== null ? ctx.helper.add(pre_tp_hs, material.rate_tp) : null %></td>
                                                     <td class="text-center"><%= material.ex_tp !== null ? ctx.helper.round(ctx.helper.mul(material.ex_tp, 1+material.exponent_rate/100), material.decimal.tp) : null %></td>
                                                     <td class="text-center"><%= material.ex_tp !== null || ex_pre_tp_hs !== null ? ctx.helper.add(ex_pre_tp_hs, ctx.helper.round(ctx.helper.mul(material.ex_tp, 1+material.exponent_rate/100), material.decimal.tp)) : null %></td>
                                                 </tr>
@@ -217,8 +217,8 @@
                                                     <td class="text-center">-</td>
                                                 </tr>
                                                 <tr id="rate_set"><td>材料价差费用(含建筑税)</td>
-                                                    <td class="text-center"><%= !material.material_tax ? (material.m_tp !== null ? ctx.helper.round(ctx.helper.mul(material.m_tp, 1+material.rate/100), material.decimal.tp) : null) : '-' %></td>
-                                                    <td class="text-center"><%= !material.material_tax ? (material.m_tp !== null || pre_tp_hs !== null ? ctx.helper.add(pre_tp_hs, ctx.helper.round(ctx.helper.mul(material.m_tp, 1+material.rate/100), material.decimal.tp)) : null) : pre_tp_hs !== null ? pre_tp_hs : '-' %></td>
+                                                    <td class="text-center"><%= !material.material_tax ? material.rate_tp : '-' %></td>
+                                                    <td class="text-center"><%= !material.material_tax ? (material.m_tp !== null || pre_tp_hs !== null ? ctx.helper.add(pre_tp_hs, material.rate_tp) : null) : pre_tp_hs !== null ? pre_tp_hs : '-' %></td>
                                                     <td class="text-center"><%= material.ex_tp !== null ? ctx.helper.round(ctx.helper.mul(material.ex_tp, 1+material.exponent_rate/100), material.decimal.tp) : null %></td>
                                                     <td class="text-center"><%= material.ex_tp !== null || ex_pre_tp_hs !== null ? ctx.helper.add(ex_pre_tp_hs, ctx.helper.round(ctx.helper.mul(material.ex_tp, 1+material.exponent_rate/100), material.decimal.tp)) : null %></td>
                                                 </tr>
@@ -231,11 +231,13 @@
                                         <div class="sp-wrap" style="overflow: auto;">
                                             <table class="table table-bordered">
                                                 <thead>
-                                                <tr class="text-center"><th colspan="<% if (material.material_tax) { %>3<% } else { %>2<% } %>">期明细</th></tr>
+                                                <tr class="text-center"><th colspan="3">期明细</th></tr>
                                                 <tr><th class="text-center">期数</th>
                                                     <th class="text-center">本期调差金额</th>
                                                     <% if (material.material_tax) { %>
                                                         <th class="text-center">本期调差金额(材料税)</th>
+                                                    <% } else { %>
+                                                    <th class="text-center">本期调差金额(建筑税)</th>
                                                     <% } %>
                                                 </tr>
                                                 </thead>
@@ -244,12 +246,16 @@
                                                     <tr><td>第<%- ms.order %>期</td><td class="text-center"><%- ms.m_tp !== null ? ms.m_tp : null %></td>
                                                         <% if (material.material_tax) { %>
                                                             <td class="text-center"><%- ms.m_tax_tp !== null ? ms.m_tax_tp : null %></td>
+                                                        <% } else { %>
+                                                        <td class="text-center"><%= ms.m_tp !== null ? ctx.helper.round(ctx.helper.mul(ms.m_tp, 1+material.rate/100), material.decimal.tp) : null %></td>
                                                         <% } %>
                                                     </tr>
                                                 <% } %>
                                                 <tr><td>合计</td><td class="text-center"><%- material.m_tp %></td>
                                                     <% if (material.material_tax) { %>
                                                         <td class="text-center"><%- material.m_tax_tp %></td>
+                                                    <% } else { %>
+                                                    <td class="text-center"><%- material.rate_tp %></td>
                                                     <% } %>
                                                 </tr>
                                                 </tbody>

+ 61 - 0
db_script/material_rate_tp.js

@@ -0,0 +1,61 @@
+// 计算调差建筑税金额
+
+const materialConst = require('../app/const/material');
+const BaseUtil = require('./baseUtils');
+const querySql = BaseUtil.querySql;
+const ZhCalc = BaseUtil.ZhCalc;
+
+const checkMaterial = async function(material) {
+    let rate_tp = 0;
+    material.decimal = material.decimal ? JSON.parse(material.decimal) : materialConst.decimal;
+    if (material.is_stage_self) {
+        const materialStages = await querySql('Select * From zh_material_stage Where mid = ?', [material.id]);
+        for (const ms of materialStages) {
+            const ms_rate_tp = ZhCalc.round(ZhCalc.mul(ms.m_tp, 1 + material.rate / 100), material.decimal.tp);
+            rate_tp = ZhCalc.add(rate_tp, ms_rate_tp);
+        }
+    } else {
+        rate_tp = ZhCalc.round(ZhCalc.mul(material.m_tp, 1 + material.rate / 100), material.decimal.tp);
+    }
+    await querySql('Update zh_material Set rate_tp = ? Where id = ?', [rate_tp, material.id]);
+    console.log(`Update Material ${material.id}`);
+};
+
+const doComplete = async function() {
+    try {
+        const tender = await querySql('Select * From zh_tender');
+        for (const t of tender) {
+            console.log(`Update Tender ${t.id}:`);
+
+            const materials = await querySql('Select * From zh_material where tid = ?', [t.id]);
+            for (const m of materials) {
+                await checkMaterial(m);
+            }
+        }
+    } catch (err) {
+        console.log(err);
+    }
+    BaseUtil.closePool();
+};
+const doCompleteTest = async function(tid) {
+    try {
+        const tender = await querySql('Select * From zh_tender where id = ?', [tid]);
+        for (const t of tender) {
+            console.log(`Update Tender ${t.id}:`);
+            const materials = await querySql('Select * From zh_material where tid = ?', [t.id]);
+            for (const m of materials) {
+                await checkMaterial(m);
+            }
+        }
+    } catch (err) {
+        console.log(err);
+    }
+    BaseUtil.closePool();
+};
+
+const tenderId = process.argv[3];
+if (tenderId) {
+    doCompleteTest(tenderId);
+} else {
+    doComplete();
+}

+ 2 - 54
sql/update.sql

@@ -1,54 +1,2 @@
-ALTER TABLE `zh_project`
-ADD COLUMN `common_json` json NULL COMMENT '通用json,没有sql查询值必要的可放这' AFTER `notice_setting`;
-ALTER TABLE `zh_ledger_tag`
-ADD COLUMN `pos_id` varchar(36) NOT NULL DEFAULT '' COMMENT '关联计量单元id(zh_pos表中的id)' AFTER `id`;
-
-ALTER TABLE `zh_change`
-ADD COLUMN `valuation_tp` decimal(30, 8) NULL DEFAULT 0 COMMENT '计价金额(审批完成后统计)' AFTER `negative_tp`,
-ADD COLUMN `unvaluation_tp` decimal(30, 8) NULL DEFAULT 0 COMMENT '不计价金额(审批完成后统计)' AFTER `valuation_tp`;
-
-ALTER TABLE `zh_change`
-MODIFY COLUMN `positive_tp` decimal(30, 8) NOT NULL DEFAULT 0.00000000 COMMENT '正变更金额' AFTER `order_by`,
-MODIFY COLUMN `negative_tp` decimal(30, 8) NOT NULL DEFAULT 0.00000000 COMMENT '负变更金额' AFTER `positive_tp`;
-
-ALTER TABLE `zh_change_audit_list`
-ADD COLUMN `oamount2` decimal(30, 8) NULL DEFAULT NULL COMMENT '原数量(可编辑)' AFTER `oamount`;
-
-ALTER TABLE `zh_ledger_attachment`
-MODIFY COLUMN `tid` int(11) UNSIGNED NOT NULL COMMENT '标段id' AFTER `id`,
-ADD COLUMN `revise_id` varchar(36) NOT NULL COMMENT '修订id' AFTER `tid`,
-ADD COLUMN `revising` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '修订中' AFTER `revise_id`,
-MODIFY COLUMN `uid` int(11) UNSIGNED NOT NULL COMMENT '上传者id' AFTER `lid`,
-ADD COLUMN `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间' AFTER `in_time`;
-
-ALTER TABLE `zh_ledger_attachment`
-ADD INDEX `idx_tid`(`tid`),
-ADD INDEX `idx_tid_sid`(`tid`, `settle_id`),
-ADD INDEX `idx_tid_rid`(`tid`, `revise_id`),
-ADD INDEX `idx_tid_revising`(`tid`, `revising`);
-
-CREATE TABLE `zh_ancillary_gcl`  (
-  `id` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'uuid',
-  `tid` int(11) UNSIGNED NOT NULL COMMENT '标段id',
-  `lid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '台账id(zh_ledger.id)',
-  `g_order` int(11) UNSIGNED NOT NULL DEFAULT 1 COMMENT '排序',
-  `is_aux` tinyint(4) UNSIGNED NOT NULL DEFAULT 0 COMMENT '辅材',
-  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '名称',
-  `unit` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '单位',
-  `quantity` decimal(24, 8) NOT NULL DEFAULT 0.00000000 COMMENT '设计量',
-  `expr` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '设计量公式',
-  `drawing_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '图册号',
-  `memo` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '备注',
-  `add_user_id` int(11) UNSIGNED NOT NULL COMMENT '创建人',
-  `add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
-  `update_user_id` int(11) UNSIGNED NOT NULL COMMENT '最后修改人',
-  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
-  PRIMARY KEY (`id`) USING BTREE,
-  INDEX `idx_tid`(`tid`) USING BTREE,
-  INDEX `idex_tid_lid`(`tid`, `lid`) USING BTREE
-) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_unicode_ci COMMENT = '台账-附属工程量' ROW_FORMAT = Dynamic;
-
---修复转换值问题,并且需要再运行一次db_script/check_bills更新checked_price方法
-UPDATE `zh_change_audit_list` SET `checked_amount` = CONVERT(`samount`, DECIMAL(30, 8)) WHERE `samount` != '';
-
-UPDATE `zh_change_audit_list` SET `oamount2` = `oamount`;
+ALTER TABLE `zh_material`
+ADD COLUMN `rate_tp` decimal(30, 8) NULL DEFAULT NULL COMMENT '建筑含税总金额' AFTER `rate`;

+ 54 - 0
sql/update20240624.sql

@@ -0,0 +1,54 @@
+ALTER TABLE `zh_project`
+ADD COLUMN `common_json` json NULL COMMENT '通用json,没有sql查询值必要的可放这' AFTER `notice_setting`;
+ALTER TABLE `zh_ledger_tag`
+ADD COLUMN `pos_id` varchar(36) NOT NULL DEFAULT '' COMMENT '关联计量单元id(zh_pos表中的id)' AFTER `id`;
+
+ALTER TABLE `zh_change`
+ADD COLUMN `valuation_tp` decimal(30, 8) NULL DEFAULT 0 COMMENT '计价金额(审批完成后统计)' AFTER `negative_tp`,
+ADD COLUMN `unvaluation_tp` decimal(30, 8) NULL DEFAULT 0 COMMENT '不计价金额(审批完成后统计)' AFTER `valuation_tp`;
+
+ALTER TABLE `zh_change`
+MODIFY COLUMN `positive_tp` decimal(30, 8) NOT NULL DEFAULT 0.00000000 COMMENT '正变更金额' AFTER `order_by`,
+MODIFY COLUMN `negative_tp` decimal(30, 8) NOT NULL DEFAULT 0.00000000 COMMENT '负变更金额' AFTER `positive_tp`;
+
+ALTER TABLE `zh_change_audit_list`
+ADD COLUMN `oamount2` decimal(30, 8) NULL DEFAULT NULL COMMENT '原数量(可编辑)' AFTER `oamount`;
+
+ALTER TABLE `zh_ledger_attachment`
+MODIFY COLUMN `tid` int(11) UNSIGNED NOT NULL COMMENT '标段id' AFTER `id`,
+ADD COLUMN `revise_id` varchar(36) NOT NULL COMMENT '修订id' AFTER `tid`,
+ADD COLUMN `revising` tinyint(1) UNSIGNED NOT NULL DEFAULT 0 COMMENT '修订中' AFTER `revise_id`,
+MODIFY COLUMN `uid` int(11) UNSIGNED NOT NULL COMMENT '上传者id' AFTER `lid`,
+ADD COLUMN `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间' AFTER `in_time`;
+
+ALTER TABLE `zh_ledger_attachment`
+ADD INDEX `idx_tid`(`tid`),
+ADD INDEX `idx_tid_sid`(`tid`, `settle_id`),
+ADD INDEX `idx_tid_rid`(`tid`, `revise_id`),
+ADD INDEX `idx_tid_revising`(`tid`, `revising`);
+
+CREATE TABLE `zh_ancillary_gcl`  (
+  `id` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT 'uuid',
+  `tid` int(11) UNSIGNED NOT NULL COMMENT '标段id',
+  `lid` varchar(36) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '台账id(zh_ledger.id)',
+  `g_order` int(11) UNSIGNED NOT NULL DEFAULT 1 COMMENT '排序',
+  `is_aux` tinyint(4) UNSIGNED NOT NULL DEFAULT 0 COMMENT '辅材',
+  `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '名称',
+  `unit` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '单位',
+  `quantity` decimal(24, 8) NOT NULL DEFAULT 0.00000000 COMMENT '设计量',
+  `expr` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '设计量公式',
+  `drawing_code` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '图册号',
+  `memo` varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL DEFAULT '' COMMENT '备注',
+  `add_user_id` int(11) UNSIGNED NOT NULL COMMENT '创建人',
+  `add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
+  `update_user_id` int(11) UNSIGNED NOT NULL COMMENT '最后修改人',
+  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后更新时间',
+  PRIMARY KEY (`id`) USING BTREE,
+  INDEX `idx_tid`(`tid`) USING BTREE,
+  INDEX `idex_tid_lid`(`tid`, `lid`) USING BTREE
+) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_unicode_ci COMMENT = '台账-附属工程量' ROW_FORMAT = Dynamic;
+
+--修复转换值问题,并且需要再运行一次db_script/check_bills更新checked_price方法
+UPDATE `zh_change_audit_list` SET `checked_amount` = CONVERT(`samount`, DECIMAL(30, 8)) WHERE `samount` != '';
+
+UPDATE `zh_change_audit_list` SET `oamount2` = `oamount`;