zhangweicheng 5 سال پیش
والد
کامیت
5144382100
2فایلهای تغییر یافته به همراه4 افزوده شده و 3 حذف شده
  1. 1 1
      modules/main/facade/ration_facade.js
  2. 3 2
      public/web/gljUtil.js

+ 1 - 1
modules/main/facade/ration_facade.js

@@ -533,7 +533,7 @@ async function addRationGLJ(std,newRation,compilation,isMaterial,connect_key) {
         if(isMaterial == true){//材料计算添加时要先检查
             for(let sub of std.rationGljList){
                 let t_g = getStdGlj(sub,stdGLJMap,cptGLJMap,{},ext);
-                if(t_g && connect_key == gljUtil.getIndex(t_g,['code','name','specs','unit','gljType'])) throw `本定额中包含工料机[${t_g.code}]${t_g.name},与当前工料机编号相同,添加定额失败`;
+                if(t_g && connect_key == gljUtil.getIndex(t_g,['code','name','specs','unit','gljType'])) throw `本定额中包含工料机[${t_g.code}]${t_g.name},与当前工料机编号相同,添加定额失败`;
             }
         }
         for(let sub of std.rationGljList){

+ 3 - 2
public/web/gljUtil.js

@@ -112,6 +112,7 @@ let gljUtil = {
     },
     setMaterialCalcQuantity:function (quantityMap,materialCalcMap,isParent,calcList,q_decimal,_,scMathUtil,isTender) {
         let qField = isTender==true?"tenderQuantity":"quantity";
+        let p_decimal = 6; //自采定额这里计算结果都看成是中间过程,取6位小数
         for(let t of calcList){
             if(quantityMap[t.connect_key] && quantityMap[t.connect_key][qField] > 0){
                 let rationIDMap = _.indexBy(t.rations,"ID");
@@ -128,8 +129,8 @@ let gljUtil = {
                         if(pglj && ration){
                             let rg_quantity = scMathUtil.roundForObj(rg.quantity,q_decimal);
                             let r_quantity = scMathUtil.roundForObj(ration.quantity,q_decimal);
-                            let result = scMathUtil.roundForObj(rg_quantity * r_quantity,q_decimal);
-                            result = scMathUtil.roundForObj(quantityMap[t.connect_key][qField] * result,q_decimal);
+                            let result = scMathUtil.roundForObj(rg_quantity * r_quantity,p_decimal);
+                            result = scMathUtil.roundForObj(quantityMap[t.connect_key][qField] * result,p_decimal);
                             pglj.quantity = scMathUtil.roundForObj(pglj.quantity + result,q_decimal);
                             pglj.materialQuantity = scMathUtil.roundForObj(pglj.materialQuantity + result,q_decimal);
                         }