YYC
2023-07-14 68c374208d9738d9bddb186f4cd675eb0c93694c
igds-inout/src/main/java/com/ld/igds/inout/view/InoutHand.view.xml
@@ -28,10 +28,16 @@
          <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>
        <Property name="dataType">[dtCheckItems]</Property>
      </Reference>
      <Reference name="files">
        <Property name="dataProvider">sys.fileManager#listFile</Property>
        <Property name="dataType">[dtFileData]</Property>
        <Property name="parameter">$${this.id}</Property>
      </Reference>
    </DataType>
    <DataType name="dtCheckItems">
@@ -107,10 +113,40 @@
        <Property></Property>
        <Property name="label">运算符号</Property>
      </PropertyDef>
      <PropertyDef name="operaSymbolValue">
        <Property></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>
        <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">
    <ClientEvent name="onReady">var TYPE = &quot;${request.getParameter('type')}&quot;;&#xD;
&#xD;
var PROGRESS = &quot;WEIGHT_TAG&quot;;&#xD;
&#xD;
/**&#xD;
 * 刷新页面&#xD;
@@ -145,139 +181,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>
@@ -321,7 +228,7 @@
        <Property name="iconClass">fa fa-minus</Property>
      </Button>
    </Container>
    <TabControl id="tabControlMain">
    <TabControl id="tabControlMain" layoutConstraint="left ">
      <Property name="width">1300</Property>
      <ControlTab>
        <Property name="caption">基础信息</Property>
@@ -630,7 +537,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 +591,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&#xD;
if (data) {&#xD;
   //填写的数据值;&#xD;
   var newValue = data.get(&quot;value&quot;);&#xD;
   //标准值;&#xD;
   var limit = data.get(&quot;upperLimit&quot;);&#xD;
   //运算符;&#xD;
   var symbol = data.get(&quot;operaSymbol&quot;);&#xD;
   if (symbol &amp;&amp; limit &amp;&amp; newValue) {&#xD;
      if (&quot;>=&quot; == symbol) {&#xD;
         if (newValue &lt; limit) {&#xD;
            data.set(&quot;result&quot;, &quot;0&quot;);&#xD;
         }&#xD;
         else {&#xD;
            data.set(&quot;result&quot;, &quot;1&quot;);&#xD;
         }&#xD;
      }&#xD;
      if (&quot;&lt;=&quot; == symbol) {&#xD;
         if (newValue > limit) {&#xD;
            data.set(&quot;result&quot;, &quot;0&quot;);&#xD;
         }&#xD;
         else {&#xD;
            data.set(&quot;result&quot;, &quot;1&quot;);&#xD;
         }&#xD;
      }&#xD;
      if (&quot;==&quot; == symbol) {&#xD;
         if (newValue != limit) {&#xD;
            data.set(&quot;result&quot;, &quot;0&quot;);&#xD;
         }&#xD;
         else {&#xD;
            data.set(&quot;result&quot;, &quot;1&quot;);&#xD;
         }&#xD;
      }&#xD;
   }&#xD;
}</ClientEvent>
            <Property name="dataSet">dsMain</Property>
            <Property name="dataPath">#.checkItems</Property>
            <Property name="highlightCurrentRow">false</Property>
@@ -707,17 +665,91 @@
              <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>
      </ControlTab>
    </TabControl>
    <TabControl id="tabControlImage" layoutConstraint="left">
      <Property name="width">370</Property>
      <ControlTab id="tabImage">
        <Property name="name">tabImage</Property>
        <Property name="caption">出入库过程记录</Property>
        <FieldSet layout="regionPadding:5" layoutConstraint="top padding:10">
          <Buttons>
            <Button layoutConstraint="left">
              <ClientEvent name="onClick">view.PROGRESS = &quot;WEIGHT_EMPTY&quot;;&#xD;
</ClientEvent>
              <Property name="exClassName">btn-default</Property>
              <Property name="iconClass">fa fa-cloud-upload</Property>
              <Property name="action">uploadImg</Property>
              <Property name="caption">空车称</Property>
            </Button>
            <Button layoutConstraint="left">
              <ClientEvent name="onClick">view.PROGRESS = &quot;WEIGHT_FULL&quot;;&#xD;
</ClientEvent>
              <Property name="exClassName">btn-default</Property>
              <Property name="iconClass">fa fa-cloud-upload</Property>
              <Property name="action">uploadImg1</Property>
              <Property name="caption">满车称</Property>
            </Button>
            <Button layoutConstraint="left">
              <ClientEvent name="onClick">view.PROGRESS = &quot;HANDLE&quot;;</ClientEvent>
              <Property name="caption">值仓</Property>
              <Property name="exClassName">btn-default</Property>
              <Property name="iconClass">fa fa-cloud-upload</Property>
              <Property name="action">uploadImg2</Property>
            </Button>
          </Buttons>
          <Children>
            <DataGrid id="dgFiles">
              <Property name="dataSet">dsMain</Property>
              <Property name="readOnly">true</Property>
              <Property name="selectionMode">singleRow</Property>
              <Property name="dataPath">#.files</Property>
              <RowNumColumn/>
              <DataColumn name="bizTag">
                <Property name="property">bizTag</Property>
                <Property name="visible">false</Property>
              </DataColumn>
              <DataColumn name="fileName">
                <Property name="property">fileName</Property>
              </DataColumn>
            </DataGrid>
          </Children>
        </FieldSet>
      </ControlTab>
    </TabControl>
    <YearDropDown id="yearDropDown"/>
@@ -734,6 +766,11 @@
      <Property name="service">inoutDataPR#printWeightBill</Property>
      <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>
@@ -850,5 +887,82 @@
        </DataGrid>
      </Container>
    </CustomDropDown>
    <UploadAction id="uploadImg">
      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
var plateNum = data.get(&quot;plateNum&quot;);&#xD;
self.set(&quot;parameter&quot;,{&#xD;
   plateNum:plateNum,&#xD;
   bizTag:&quot;EMPTY_WEIGHT&quot;&#xD;
})</ClientEvent>
      <ClientEvent name="onFileUploaded">//附件上传完成后添加业务数据&#xD;
var mainData = view.get(&quot;#dsMain.data&quot;);&#xD;
var fileName = arg.returnValue;&#xD;
var files = mainData.get(&quot;files&quot;);&#xD;
files.insert({bizTag:view.PROGRESS,fileName:fileName,createTime:new Date()});</ClientEvent>
      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
if(data){&#xD;
   var plateNum = data.get(&quot;plateNum&quot;);&#xD;
   self.set(&quot;parameter&quot;,{&#xD;
      plateNum:plateNum&#xD;
   })&#xD;
}</ClientEvent>
      <Property name="maxFileSize">20MB</Property>
      <Property name="successMessage">上传成功</Property>
      <Property name="parameter"></Property>
      <Property name="fileResolver">inoutDataPR#uploadImage</Property>
      <Filters/>
    </UploadAction>
    <UploadAction id="uploadImg1">
      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
&#xD;
var plateNum = data.get(&quot;plateNum&quot;);&#xD;
self.set(&quot;parameter&quot;,{&#xD;
   plateNum:plateNum,&#xD;
   bizTag:&quot;FULL_WEIGHT&quot;&#xD;
})</ClientEvent>
      <ClientEvent name="onFileUploaded">//附件上传完成后添加业务数据&#xD;
var mainData = view.get(&quot;#dsMain.data&quot;);&#xD;
var fileName = arg.returnValue;&#xD;
var files = mainData.get(&quot;files&quot;);&#xD;
files.insert({bizTag:view.PROGRESS,fileName:fileName});</ClientEvent>
      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
if(data){&#xD;
   var plateNum = data.get(&quot;plateNum&quot;);&#xD;
   self.set(&quot;parameter&quot;,{&#xD;
      plateNum:plateNum&#xD;
   })&#xD;
}</ClientEvent>
      <Property name="maxFileSize">20MB</Property>
      <Property name="successMessage">上传成功</Property>
      <Property name="parameter"></Property>
      <Property name="fileResolver">inoutDataPR#uploadImage</Property>
      <Filters/>
    </UploadAction>
    <UploadAction id="uploadImg2">
      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
&#xD;
var plateNum = data.get(&quot;plateNum&quot;);&#xD;
self.set(&quot;parameter&quot;,{&#xD;
   plateNum:plateNum,&#xD;
   bizTag:&quot;HAND&quot;&#xD;
})</ClientEvent>
      <ClientEvent name="onFileUploaded">//附件上传完成后添加业务数据&#xD;
var mainData = view.get(&quot;#dsMain.data&quot;);&#xD;
var fileName = arg.returnValue;&#xD;
var files = mainData.get(&quot;files&quot;);&#xD;
files.insert({bizTag:view.PROGRESS,fileName:fileName});</ClientEvent>
      <ClientEvent name="beforeFileUploaded">var data = view.get(&quot;#dsMain.data:#&quot;)&#xD;
if(data){&#xD;
   var plateNum = data.get(&quot;plateNum&quot;);&#xD;
   self.set(&quot;parameter&quot;,{&#xD;
      plateNum:plateNum&#xD;
   })&#xD;
}</ClientEvent>
      <Property name="maxFileSize">20MB</Property>
      <Property name="successMessage">上传成功</Property>
      <Property name="parameter"></Property>
      <Property name="fileResolver">inoutDataPR#uploadImage</Property>
      <Filters/>
    </UploadAction>
  </View>
</ViewConfig>