| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 | 
							- // 计算调差建筑税金额
 
- 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();
 
- }
 
 
  |