YYC
2023-07-13 3764cb5bde8f62118af335f40e46cd4b61a47e24
igds-inout/src/main/java/com/ld/igds/inout/view/InoutHand.view.xml
@@ -28,6 +28,7 @@
          <Entity>
            <Property name="checkId">$${this.checkId}</Property>
            <Property name="foodVariety">$${this.foodVariety}</Property>
            <Property name="type">$${this.type}</Property>
          </Entity>
        </Property>
        <Property name="dataProvider">checkStandardPR#listCheckItemsByParam</Property>
@@ -107,6 +108,34 @@
        <Property></Property>
        <Property name="label">运算符号</Property>
      </PropertyDef>
      <PropertyDef name="operaSymbolValue">
        <Property/>
      </PropertyDef>
      <PropertyDef name="addNum">
        <Property name="dataType">Double</Property>
        <Property name="label">增重</Property>
      </PropertyDef>
      <PropertyDef name="deNum">
        <Property name="dataType">Double</Property>
        <Property name="label">扣重</Property>
      </PropertyDef>
      <PropertyDef name="addPrice">
        <Property name="dataType">Double</Property>
        <Property name="label">增价</Property>
      </PropertyDef>
      <PropertyDef name="dePrice">
        <Property name="dataType">Double</Property>
        <Property name="label">扣价</Property>
      </PropertyDef>
      <PropertyDef name="result">
        <Property/>
        <Property name="label">检验结果</Property>
        <Property name="mapping">
          <Property name="keyProperty">code</Property>
          <Property name="valueProperty">name</Property>
          <Property name="mapValues">${dorado.getDataProvider(&quot;inoutDataPR#triggerResult&quot;).getResult()}</Property>
        </Property>
      </PropertyDef>
    </DataType>
  </Model>
  <View layout="padding:5;regionPadding:5">
@@ -145,139 +174,10 @@
         view.get(&quot;#btnPrintWeigh&quot;).set(&quot;disabled&quot;,false);&#xD;
         view.get(&quot;#btnPrintCheck&quot;).set(&quot;disabled&quot;,false);&#xD;
         $alert(&quot;保存成功,可以进行打印和重新提新表单!&quot;);&#xD;
         flush();&#xD;
&#xD;
      }&#xD;
   });&#xD;
}</ClientEvent>
    <ClientEvent name="onCreate">&#xD;
/**&#xD;
 * 自动计算,当前页面不自动关联扦样记录,全部由手动为准&#xD;
 * &#xD;
 * 1.净重 = 毛重 - 皮重&#xD;
 * 2.总扣重 = 现场扣重 + 其他扣重 + 扣水杂质&#xD;
 * 3.结算重量 = 净重 - 总扣重 (含水杂增重)&#xD;
 * 4.出/入库重量 = 净重 - 总扣重 (不含水杂增重)&#xD;
 * &#xD;
 * 5.入库时:扣水杂 正数 = 扣重,负数 = 增重&#xD;
 * 6.出库时:水分增重,正数=增重,负数=扣重&#xD;
 */&#xD;
deAutoByWeight = function(name){&#xD;
   &#xD;
   if(null == name) name = &quot;1&quot;;&#xD;
   &#xD;
   var curData = view.get(&quot;#dsMain.data:#&quot;);&#xD;
   var fullWeight = curData.get(&quot;fullWeight&quot;);&#xD;
   var emptyWeight = curData.get(&quot;emptyWeight&quot;);&#xD;
   &#xD;
   if(fullWeight == 0 || emptyWeight == 0){&#xD;
      return;&#xD;
   }&#xD;
   // 净重&#xD;
   var netWeight = Number(fullWeight) - Number(emptyWeight);&#xD;
   &#xD;
   if (netWeight &lt;= 0){&#xD;
      $notify(&quot;净重小于0,当前称重存在逻辑问题&quot;);&#xD;
      return;&#xD;
   }&#xD;
   &#xD;
    //汇总结果&#xD;
    var deSum = 0, addSum = 0, settleWeight = 0, recordWeight = 0;&#xD;
    //扣水杂&#xD;
    var deWet = curData.get(&quot;deWet&quot;), deImpurity = curData.get(&quot;deImpurity&quot;);&#xD;
   &#xD;
   var impurity = curData.get(&quot;impurity&quot;), wet = curData.get(&quot;wet&quot;);&#xD;
   &#xD;
   &#xD;
    var deBase = 0, multiple = 0;&#xD;
    var checkItems = curData.get(&quot;checkItems&quot;);&#xD;
    //水分杂质,更改比例并且水分扣重还没计算情况下&#xD;
    if (&quot;wet&quot; == name) {&#xD;
        var checkItem = this.getCheckItem(checkItems,&quot;C01&quot;, &quot;C020101&quot;);&#xD;
        if (checkItem) {&#xD;
            deBase = Number(wet) - Number(checkItem.get(&quot;upperLimit&quot;));&#xD;
            if (deBase == 0) return;&#xD;
            multiple = parseInt(deBase / checkItem.get(&quot;ruleNum&quot;));//倍数&#xD;
            deWet = (netWeight * multiple * checkItem.get(&quot;ruleReduce&quot;) / 100.00).toFixed(0);&#xD;
        }&#xD;
    }&#xD;
   &#xD;
    //杂质&#xD;
    if (&quot;impurity&quot; == name) {&#xD;
        checkItem = this.getCheckItem(recordData.checkItems, &quot;C02&quot;,&quot;C01010301&quot;);&#xD;
        if (checkItem) {&#xD;
            deBase = Number(impurity) - Number(checkItem.get(&quot;upperLimit&quot;));&#xD;
            if (deBase == 0) return;&#xD;
            multiple = parseInt(deBase / checkItem.get(&quot;ruleNum&quot;));&#xD;
            deImpurity = (netWeight * multiple * checkItem.get(&quot;ruleReduce&quot;) / 100.00).toFixed(0);&#xD;
        }&#xD;
    }&#xD;
&#xD;
    /** 总扣重,不含增重*/&#xD;
    deSum = Number(curData.get(&quot;deOther&quot;)) + Number(curData.get(&quot;deHandle&quot;));&#xD;
   &#xD;
   //出库&#xD;
   if (&quot;OUT&quot; == curData.get(&quot;type&quot;)) {&#xD;
      if (Number(deWet) > 0) {//增重&#xD;
           addSum = addSum + Number(deWet);&#xD;
       } else {&#xD;
           deSum = deSum + Number(deWet);&#xD;
       }&#xD;
&#xD;
       if (Number(deImpurity) > 0) {//扣重&#xD;
           deSum = deSum + Number(deImpurity);&#xD;
          } else {&#xD;
           addSum = addSum + Number(deImpurity);&#xD;
       }&#xD;
   }else{&#xD;
      if (Number(deWet) > 0) {//扣重&#xD;
           deSum = deSum + Number(deWet);&#xD;
       } else {&#xD;
           addSum = addSum + Number(deWet);&#xD;
       }&#xD;
       if (Number(deImpurity) > 0) {//扣重&#xD;
           deSum = deSum + Number(deImpurity);&#xD;
       } else {&#xD;
           addSum = addSum + Number(deImpurity);&#xD;
       }&#xD;
   }&#xD;
   &#xD;
    deSum = deSum.toFixed(0);&#xD;
    /** 增重转正数,便于计算  */&#xD;
    addSum = Math.abs(addSum).toFixed(0);&#xD;
   &#xD;
    /** 入库重量 = 净重 - 总扣重  */&#xD;
    recordWeight = Number(netWeight) - Number(deSum);&#xD;
   &#xD;
    /** 结算重量 = 净重 - 总扣重 + 增重 */&#xD;
    settleWeight = Number(netWeight) - Number(deSum) + Number(addSum);&#xD;
   &#xD;
   curData.set(&quot;impurity&quot;,impurity);&#xD;
   curData.set(&quot;wet&quot;,wet);&#xD;
   curData.set(&quot;deImpurity&quot;,deImpurity);&#xD;
   curData.set(&quot;deWet&quot;,deWet);&#xD;
   curData.set(&quot;deSum&quot;,deSum);&#xD;
   curData.set(&quot;netWeight&quot;,netWeight);&#xD;
   curData.set(&quot;settleWeight&quot;,settleWeight);&#xD;
   curData.set(&quot;recordWeight&quot;,recordWeight);&#xD;
};&#xD;
&#xD;
&#xD;
/**&#xD;
 * 根据化验项和传递过来的参数获取当前参数的配置信息&#xD;
 * @param checkItems&#xD;
 * @param code1 系统参数ID&#xD;
 * @param code2 国标参数ID&#xD;
 * @returns {undefined}&#xD;
 */&#xD;
function getCheckItem(checkItems, code1, code2) {&#xD;
    if (!checkItems) return null;&#xD;
    $.each(checkItems, function (index, checkItem) {&#xD;
        if (checkItem.get(&quot;standardId&quot;) == code1 || checkItem.get(&quot;standardId&quot;) == code2) {&#xD;
            if (checkItem.get(&quot;ruleNum&quot;) &amp;&amp; checkItem.get(&quot;upperLimit&quot;) > 0.0) {&#xD;
                return checkItem;&#xD;
            }&#xD;
        }&#xD;
    });&#xD;
    return null;&#xD;
}</ClientEvent>
    <Property name="packages">font-awesome,css-common</Property>
    <Property name="javaScriptFile">./static/plugins/lodop/LodopFuncs.js</Property>
@@ -630,7 +530,7 @@
        </Container>
      </ControlTab>
      <ControlTab id="tabCheck">
        <Property name="caption">扦样化验</Property>
        <Property name="caption">质检信息</Property>
        <Property name="iconClass">fa fa-gavel</Property>
        <Property name="width">150</Property>
        <Property name="name">tabCheck</Property>
@@ -684,8 +584,59 @@
              <Property name="label">质检时间</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">sampleUser</Property>
              <Property name="property">sampleUser</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">sampleTime</Property>
              <Property name="property">sampleTime</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
              <Property name="name">sampleType</Property>
              <Property name="property">sampleType</Property>
              <Property name="editorType">RadioGroup</Property>
              <Editor/>
            </AutoFormElement>
          </AutoForm>
          <DataGrid id="dataGridCheckItem" layoutConstraint="padding:10">
            <ClientEvent name="onCellValueEdit">var data = arg.entity._data;&#xD;
//根据填写化验数据,给出提醒是否合格&#xD;
if(data){&#xD;
   console.log(data,&quot;inoutHand&quot;);&#xD;
    //填写的数据值&#xD;
    var newValue = data.value;&#xD;
    //标准值&#xD;
    var limit = data.upperLimit;&#xD;
    //运算符&#xD;
    var symbol = data.operaSymbol;&#xD;
    if (symbol &amp;&amp; limit) {&#xD;
        if (&quot;>=&quot; == symbol) {&#xD;
            if (newValue &lt; limit) {&#xD;
                data.result = &quot;0&quot;;&#xD;
            } else {&#xD;
                data.result = &quot;1&quot;;&#xD;
            }&#xD;
        }&#xD;
        if (&quot;&lt;=&quot; == symbol) {&#xD;
            if (newValue > limit) {&#xD;
                data.result = &quot;0&quot;;&#xD;
            } else {&#xD;
                data.result = &quot;1&quot;;&#xD;
            }&#xD;
        }&#xD;
        if (&quot;==&quot; == symbol) {&#xD;
            if (newValue != limit) {&#xD;
                data.result = &quot;0&quot;;&#xD;
            } else {&#xD;
                data.result = &quot;1&quot;;&#xD;
            }&#xD;
        }&#xD;
    }&#xD;
   console.log(data.result,&quot;result&quot;)&#xD;
}</ClientEvent>
            <Property name="dataSet">dsMain</Property>
            <Property name="dataPath">#.checkItems</Property>
            <Property name="highlightCurrentRow">false</Property>
@@ -707,14 +658,38 @@
              <Property name="property">unit</Property>
              <Property name="width">80</Property>
              <Property name="readOnly">true</Property>
            </DataColumn>
            <DataColumn name="standardValue">
              <Property name="property">standardValue</Property>
              <Property name="readOnly">true</Property>
              <Property name="align">center</Property>
            </DataColumn>
            <DataColumn name="operaSymbolValue">
              <Property name="property">operaSymbolValue</Property>
              <Property name="align">center</Property>
              <Property name="caption">标准值</Property>
              <Property name="readOnly">true</Property>
            </DataColumn>
            <DataColumn name="deNum">
              <Property name="property">deNum</Property>
              <Property name="align">center</Property>
            </DataColumn>
            <DataColumn name="addNum">
              <Property name="property">addNum</Property>
              <Property name="align">center</Property>
            </DataColumn>
            <DataColumn name="dePrice">
              <Property name="property">dePrice</Property>
              <Property name="align">center</Property>
            </DataColumn>
            <DataColumn name="addPrice">
              <Property name="property">addPrice</Property>
              <Property name="align">center</Property>
            </DataColumn>
            <DataColumn name="result">
              <Property name="property">result</Property>
              <Property name="align">center</Property>
              <Property name="readOnly">true</Property>
            </DataColumn>
            <DataColumn name="remarks">
              <Property name="property">remarks</Property>
              <Property name="align">center</Property>
            </DataColumn>
          </DataGrid>
        </Container>
@@ -735,6 +710,11 @@
      <Property name="executingMessage">正在执行打印……</Property>
      <Property name="async">false</Property>
    </AjaxAction>
    <AjaxAction id="ajaxPrintCheckBill">
      <Property name="async">false</Property>
      <Property name="executingMessage">正在执行打印……</Property>
      <Property name="service">inoutDataPR#printShipBill</Property>
    </AjaxAction>
    <CustomDropDown id="ddDicArea">
      <Property name="minHeight">500</Property>
      <Property name="minWidth">500</Property>