sgj
昨天 43ba5af02280a1d222769fed87ddab421962ca8e
添加第一版出入库报表
已修改2个文件
已添加2个文件
738 ■■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutParam.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/QuantityParam.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/ReportInoutDetail.view.xml 609 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/ReportInoutDetailPR.java 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/InoutParam.java
@@ -17,6 +17,12 @@
    private String id;
    public String title;
    public String unit;
    public String timeDesc;
    private String progress;
    private String progressTag; //表示未完成的单据
fzzy-igdss-core/src/main/java/com/fzzy/igds/data/QuantityParam.java
@@ -6,7 +6,13 @@
import java.util.Date;
/**
 * è´¨é‡æ£€æµ‹æŠ¥è¡¨æŸ¥è¯¢å‚æ•°
 *
 * @author sgj
 * @date 2025/12/18
 */
@Data
public class QuantityParam {
fzzy-igdss-view/src/main/java/com/fzzy/igds/ReportInoutDetail.view.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,609 @@
<?xml version="1.0" encoding="UTF-8"?>
<ViewConfig>
  <Arguments/>
  <Context/>
  <Model>
    <DataType name="dtMain">
      <Property name="creationType">com.fzzy.igds.domain.InoutRecord</Property>
      <PropertyDef name="id">
        <Property></Property>
        <Property name="label">单据号</Property>
        <Property name="readOnly">true</Property>
      </PropertyDef>
      <PropertyDef name="companyId">
        <Property></Property>
        <Property name="label">组织编码</Property>
      </PropertyDef>
      <PropertyDef name="progress">
        <Property></Property>
        <Property name="label">流程进度</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;PROCESS_STATUS_&quot;)}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="recordStatus">
        <Property></Property>
        <Property name="label">数据状态</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;RECORD_STATUS&quot;)}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="checkStatus">
        <Property></Property>
        <Property name="label">扦样结果</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;CHECK_STATUS&quot;)}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="registerTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">登记时间</Property>
      </PropertyDef>
      <PropertyDef name="registerUser">
        <Property></Property>
        <Property name="label">登记人员</Property>
      </PropertyDef>
      <PropertyDef name="userName">
        <Property></Property>
        <Property name="label">承运人</Property>
      </PropertyDef>
      <PropertyDef name="userId">
        <Property></Property>
        <Property name="label">身份证号</Property>
      </PropertyDef>
      <PropertyDef name="userContact">
        <Property></Property>
        <Property name="label">联系方式</Property>
      </PropertyDef>
      <PropertyDef name="userAddress">
        <Property></Property>
        <Property name="label">承运人地址</Property>
      </PropertyDef>
      <PropertyDef name="plateNum">
        <Property></Property>
        <Property name="label">车牌号</Property>
        <Property name="readOnly">true</Property>
      </PropertyDef>
      <PropertyDef name="customerName">
        <Property></Property>
        <Property name="label">往来单位</Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="foodLocation">
        <Property></Property>
        <Property name="label">粮食产地</Property>
      </PropertyDef>
      <PropertyDef name="foodYear">
        <Property></Property>
        <Property name="label">粮食年份</Property>
      </PropertyDef>
      <PropertyDef name="deOther">
        <Property name="dataType">Double</Property>
        <Property name="label">扣重</Property>
        <Property name="displayFormat">0.0 KG</Property>
      </PropertyDef>
      <PropertyDef name="fullWeight">
        <Property name="dataType">Double</Property>
        <Property name="label">满车称重</Property>
        <Property name="required">true</Property>
        <Property name="displayFormat">0.0 KG</Property>
      </PropertyDef>
      <PropertyDef name="fullWeightTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">满车称时间</Property>
      </PropertyDef>
      <PropertyDef name="fullWeightUser">
        <Property></Property>
        <Property name="label">满车称重人</Property>
      </PropertyDef>
      <PropertyDef name="emptyWeight">
        <Property name="dataType">Double</Property>
        <Property name="label">空车称重</Property>
        <Property name="required">true</Property>
        <Property name="displayFormat">0.0 KG</Property>
      </PropertyDef>
      <PropertyDef name="emptyWeightTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">空车称时间</Property>
      </PropertyDef>
      <PropertyDef name="emptyWeightUser">
        <Property></Property>
        <Property name="label">空车称重人</Property>
      </PropertyDef>
      <PropertyDef name="netWeight">
        <Property name="dataType">Double</Property>
        <Property name="label">净重</Property>
        <Property name="displayFormat">0.0 KG</Property>
      </PropertyDef>
      <PropertyDef name="settleWeight">
        <Property name="dataType">Double</Property>
        <Property name="label">结算净重</Property>
        <Property name="required">true</Property>
        <Property name="displayFormat">0.0 KG</Property>
      </PropertyDef>
      <PropertyDef name="recordWeight">
        <Property name="dataType">Double</Property>
        <Property name="label">入库重量</Property>
        <Property name="displayFormat">0.0 KG</Property>
      </PropertyDef>
      <PropertyDef name="handleStart">
        <Property name="dataType">Date</Property>
        <Property name="label">值仓开始时间</Property>
      </PropertyDef>
      <PropertyDef name="handleEnd">
        <Property name="dataType">Date</Property>
        <Property name="label">值仓结束时间</Property>
      </PropertyDef>
      <PropertyDef name="handleUser">
        <Property></Property>
        <Property name="label">值仓操作人</Property>
      </PropertyDef>
      <PropertyDef name="completeTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">完成时间</Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="completeUser">
        <Property></Property>
        <Property name="label">完成确认人</Property>
      </PropertyDef>
      <PropertyDef name="remarks">
        <Property></Property>
        <Property name="label">备注信息</Property>
      </PropertyDef>
      <PropertyDef name="deptId">
        <Property></Property>
        <Property name="label">所在库区</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getAllData&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">kqmc</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="foodVariety">
        <Property></Property>
        <Property name="label">粮食品种</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="depotId">
        <Property></Property>
        <Property name="label">装卸仓库</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
        <Property name="required">true</Property>
      </PropertyDef>
      <PropertyDef name="type">
        <Property name="label">出入库类型</Property>
        <Property name="mapping">
          <Property name="mapValues">
            <Collection>
              <Entity>
                <Property name="name">出库</Property>
                <Property name="value">OUT</Property>
              </Entity>
              <Entity>
                <Property name="name">入库</Property>
                <Property name="value">IN</Property>
              </Entity>
            </Collection>
          </Property>
          <Property name="keyProperty">value</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="foodLevel">
        <Property></Property>
        <Property name="label">粮食等级</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#triggerFoodLevel&quot;).getResult()}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="checkUser">
        <Property></Property>
        <Property name="label">质检人</Property>
      </PropertyDef>
      <PropertyDef name="price">
        <Property name="dataType">double</Property>
        <Property name="label">粮食定价</Property>
        <Property name="displayFormat">0.00 å…ƒ/公斤</Property>
      </PropertyDef>
      <PropertyDef name="noticeId">
        <Property></Property>
        <Property name="label">通知单编码</Property>
        <Property name="readOnly">true</Property>
      </PropertyDef>
      <PropertyDef name="foodLocationId">
        <Property></Property>
        <Property name="label">产地名称代码</Property>
      </PropertyDef>
      <PropertyDef name="checkTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">质检时间</Property>
      </PropertyDef>
      <PropertyDef name="perWet">
        <Property name="dataType">Double</Property>
        <Property name="label">水分</Property>
        <Property name="displayFormat">0.00 %</Property>
      </PropertyDef>
      <PropertyDef name="perImpurity">
        <Property name="dataType">Double</Property>
        <Property name="label">杂质</Property>
        <Property name="displayFormat">0.00 %</Property>
      </PropertyDef>
      <PropertyDef name="settleMoney">
        <Property name="dataType">Double</Property>
        <Property name="label">结算金额</Property>
        <Property name="displayFormat">0.00 å…ƒ</Property>
      </PropertyDef>
      <PropertyDef name="settleTag">
        <Property></Property>
        <Property name="label">是否结算</Property>
        <Property name="mapping">
          <Property name="mapValues">
            <Collection>
              <Entity>
                <Property name="name">未结算</Property>
                <Property name="value">N</Property>
              </Entity>
              <Entity>
                <Property name="name">已结算</Property>
                <Property name="value">Y</Property>
              </Entity>
            </Collection>
          </Property>
          <Property name="keyProperty">value</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="settleTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">结算时间</Property>
        <Property name="readOnly">true</Property>
      </PropertyDef>
      <PropertyDef name="createTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">创建时间</Property>
        <Property name="readOnly">true</Property>
      </PropertyDef>
      <PropertyDef name="createBy">
        <Property></Property>
        <Property name="label">创建人</Property>
        <Property name="readOnly">true</Property>
      </PropertyDef>
      <PropertyDef name="updateTime">
        <Property name="dataType">DateTime</Property>
        <Property name="label">更新时间</Property>
        <Property name="readOnly">true</Property>
      </PropertyDef>
      <PropertyDef name="updateBy">
        <Property></Property>
        <Property name="label">更新人</Property>
        <Property name="readOnly">true</Property>
      </PropertyDef>
    </DataType>
    <DataType name="dtQuery">
      <Property name="creationType">com.fzzy.igds.data.InoutParam</Property>
      <PropertyDef name="type">
        <Property name="label">出入库类型</Property>
      </PropertyDef>
      <PropertyDef name="deptId">
        <Property></Property>
        <Property name="label">所属分库</Property>
      </PropertyDef>
      <PropertyDef name="depotId">
        <Property></Property>
        <Property name="label">装卸仓库</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getAllCache&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="plateNum">
        <Property name="label">车牌号</Property>
      </PropertyDef>
      <PropertyDef name="foodVariety">
        <Property></Property>
        <Property name="label">粮食品种</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;FOOD_VARIETY_&quot;)}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="progress">
        <Property></Property>
        <Property name="label">流程进度</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;PROCESS_STATUS_&quot;)}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="recordStatus">
        <Property></Property>
        <Property name="label">单据状态</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;dicPR#sysDictData&quot;).getResult(&quot;RECORD_STATUS&quot;)}</Property>
          <Property name="keyProperty">dictValue</Property>
          <Property name="valueProperty">dictLabel</Property>
        </Property>
      </PropertyDef>
      <PropertyDef name="start">
        <Property name="label">开始时间</Property>
        <Property name="dataType">Date</Property>
      </PropertyDef>
      <PropertyDef name="end">
        <Property name="label">截止时间</Property>
        <Property name="dataType">Date</Property>
      </PropertyDef>
      <PropertyDef name="customerName">
        <Property></Property>
        <Property name="label">单位</Property>
      </PropertyDef>
      <PropertyDef name="unit">
        <Property></Property>
        <Property name="label">单位</Property>
      </PropertyDef>
      <PropertyDef name="timeDesc">
        <Property></Property>
        <Property name="label">时间</Property>
      </PropertyDef>
      <PropertyDef name="title">
        <Property></Property>
      </PropertyDef>
      <PropertyDef name="none">
        <Property></Property>
      </PropertyDef>
    </DataType>
  </Model>
  <View layout="padding:5;regionPadding:5">
    <ClientEvent name="onReady">//var TYPE = &quot;INOUT_DETAIL&quot;;&#xD;
var deptId = window.parent.DEPT_ID;//父页面中的分库编码&#xD;
&#xD;
&#xD;
//默认查询查询提条件&#xD;
view.get(&quot;#dsQuery&quot;).insert({&#xD;
    deptId:deptId&#xD;
});&#xD;
&#xD;
query = function(){&#xD;
    var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
    view.get(&quot;#dsQuery&quot;).set(&quot;parameter&quot;,data).flushAsync();&#xD;
};&#xD;
query();</ClientEvent>
    <Property name="packages">font-awesome,css-common</Property>
    <DataSet id="dsMain">
      <Property name="dataType">[dtMain]</Property>
      <Property name="dataProvider">reportInoutDetailPR#listRecord</Property>
      <Property name="loadMode">manual</Property>
    </DataSet>
    <DataSet id="dsQuery">
      <Property name="dataType">dtQuery</Property>
      <Property name="dataProvider">reportInoutDetailPR#getQuery</Property>
      <Property></Property>
      <Property name="loadMode">manual</Property>
    </DataSet>
    <AutoForm layoutConstraint="top">
      <Property name="cols">*,*,*,*</Property>
      <Property name="dataSet">dsQuery</Property>
      <Property name="exClassName">bg-color</Property>
      <Property name="labelWidth">100</Property>
      <Property name="labelAlign">right</Property>
      <AutoFormElement>
        <Property name="name">type</Property>
        <Property name="property">type</Property>
        <Editor/>
      </AutoFormElement>
      <AutoFormElement>
        <Property name="name">customerName</Property>
        <Property name="property">customerName</Property>
        <Property name="editable">true</Property>
        <Editor/>
      </AutoFormElement>
      <AutoFormElement>
        <Property name="name">depotId</Property>
        <Property name="property">depotId</Property>
        <Editor/>
      </AutoFormElement>
      <AutoFormElement>
        <Property name="name">foodVariety</Property>
        <Property name="property">foodVariety</Property>
        <Editor/>
      </AutoFormElement>
      <AutoFormElement>
        <Property name="name">start</Property>
        <Property name="property">start</Property>
        <Editor/>
      </AutoFormElement>
      <AutoFormElement>
        <Property name="name">end</Property>
        <Property name="property">end</Property>
        <Editor/>
      </AutoFormElement>
      <Container layout="hbox regionPadding:15">
        <Button>
          <ClientEvent name="onClick">    var data = view.get(&quot;#dsQuery.data&quot;);&#xD;
    view.get(&quot;#dsMain&quot;).set(&quot;parameter&quot;,data).flushAsync();</ClientEvent>
          <Property name="caption">查询</Property>
          <Property name="exClassName">btn1</Property>
          <Property name="iconClass">fa fa-search</Property>
        </Button>
        <Button>
          <ClientEvent name="onClick">view.get(&quot;#dsQuery&quot;).flushAsync();</ClientEvent>
          <Property name="exClassName">btn2</Property>
          <Property name="iconClass">fa fa-refresh</Property>
          <Property name="caption">重置</Property>
        </Button>
        <Button layoutConstraint="left">
          <Property name="caption">导出EXCEL</Property>
          <Property name="exClassName">btn4</Property>
          <Property name="iconClass">fa fa-file-excel-o</Property>
          <Property name="menu">menuExport</Property>
          <Property name="action">exportExcel</Property>
        </Button>
      </Container>
    </AutoForm>
    <Container layoutConstraint="center">
      <Property name="exClassName">bg-color</Property>
      <AutoForm id="autoForm1" layoutConstraint="top">
        <Property name="cols">*,*,*,*,*,*,*</Property>
        <Property name="dataSet">dsQuery</Property>
        <Property name="labelAlign">right</Property>
        <Property name="showHint">false</Property>
        <AutoFormElement layoutConstraint="colSpan:7">
          <Property name="name">title</Property>
          <Property name="property">title</Property>
          <Property name="showLabel">false</Property>
          <Property name="editorType">Label</Property>
          <Property name="style">
            <Property name="font">bold 30px Georgia, serif;</Property>
            <Property name="text-align">center</Property>
          </Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement layoutConstraint="colSpan:2">
          <Property name="name">timeDesc</Property>
          <Property name="property">timeDesc</Property>
          <Property name="editorType">Label</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">none</Property>
          <Property name="property">none</Property>
          <Property name="editorType">Label</Property>
          <Property name="showLabel">false</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">none</Property>
          <Property name="property">none</Property>
          <Property name="editorType">Label</Property>
          <Property name="showLabel">false</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">none</Property>
          <Property name="property">none</Property>
          <Property name="editorType">Label</Property>
          <Property name="showLabel">false</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">none</Property>
          <Property name="property">none</Property>
          <Property name="editorType">Label</Property>
          <Property name="showLabel">false</Property>
          <Editor/>
        </AutoFormElement>
        <AutoFormElement>
          <Property name="name">unit</Property>
          <Property name="property">unit</Property>
          <Property name="editorType">Label</Property>
          <Editor/>
        </AutoFormElement>
      </AutoForm>
      <DataGrid id="dataGridMain" layoutConstraint="center">
        <ClientEvent name="onRenderRow">if(arg.data.get('id') == '合计'){&#xD;
    //arg.dom.style.background = &quot;#fcc5c5&quot;;&#xD;
    arg.dom.style.fontWeight = &quot;bold&quot;;&#xD;
    //arg.processDefault = false;&#xD;
}</ClientEvent>
        <Property name="dataSet">dsMain</Property>
        <Property name="readOnly">true</Property>
        <Property name="highlightCurrentRow">false</Property>
        <DataColumn>
          <Property name="property">remarks</Property>
          <Property name="width">50</Property>
          <Property name="align">center</Property>
          <Property name="name">remarks</Property>
          <Property name="caption">序号</Property>
        </DataColumn>
        <DataColumn name="id">
          <Property name="property">id</Property>
          <Property name="width">130</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">registerTime</Property>
          <Property name="caption">登记时间</Property>
          <Property name="width">140</Property>
          <Property name="align">center</Property>
          <Property name="name">registerTime</Property>
        </DataColumn>
        <DataColumn name="plateNum">
          <Property name="property">plateNum</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="customerName">
          <Property name="property">customerName</Property>
          <Property name="width">180</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="type">
          <Property name="property">type</Property>
          <Property name="caption">类型</Property>
          <Property name="width">80</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="foodVariety">
          <Property name="property">foodVariety</Property>
          <Property name="caption">品种</Property>
          <Property name="width">100</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="depotId">
          <Property name="property">depotId</Property>
          <Property name="caption">仓库</Property>
          <Property name="width">80</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="fullWeight">
          <Property name="property">fullWeight</Property>
          <Property name="caption">毛重</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="emptyWeight">
          <Property name="property">emptyWeight</Property>
          <Property name="caption">皮重</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="netWeight">
          <Property name="property">netWeight</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn name="settleWeight">
          <Property name="property">settleWeight</Property>
          <Property name="caption">结算重量</Property>
          <Property name="align">center</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">completeTime</Property>
          <Property name="align">center</Property>
          <Property name="name">completeTime</Property>
        </DataColumn>
        <DataColumn>
          <Property name="property">noticeId</Property>
          <Property name="align">center</Property>
          <Property name="name">noticeId</Property>
        </DataColumn>
      </DataGrid>
    </Container>
  </View>
</ViewConfig>
fzzy-igdss-view/src/main/java/com/fzzy/igds/ReportInoutDetailPR.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,117 @@
package com.fzzy.igds;
import com.bstek.dorado.annotation.DataProvider;
import com.fzzy.igds.data.InoutParam;
import com.fzzy.igds.domain.InoutRecord;
import com.fzzy.igds.service.InoutRecordService;
import com.fzzy.igds.service.SysDeptService;
import com.fzzy.igds.utils.ContextUtil;
import com.fzzy.igds.utils.DateUtil;
import com.ruoyi.common.core.domain.entity.SysDept;
import com.ruoyi.common.utils.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Component
public class ReportInoutDetailPR {
    @Resource
    private InoutRecordService inoutReportService;
    @Resource
    private SysDeptService sysDeptService;
    /**
     * reportInoutDetailPR#getQuery æ ¹æ®æŠ¥è¡¨ç±»åž‹ï¼ŒèŽ·å–é»˜è®¤æŸ¥è¯¢ä¿¡æ¯ï¼Œæ¯”å¦‚è¡¨å¤´ä¿¡æ¯ç­‰
     *
     * @param
     * @return
     */
    @DataProvider
    public InoutParam getQuery(InoutParam param) {
        InoutParam result = new InoutParam();
        //获取参数中分库编码
        String deptId = param.getDeptId();
        //获取分库编码对应的分库名称
        String deptName = "";
        SysDept subDept = sysDeptService.getCacheDept(null, ContextUtil.subDeptId(null));
        if (null != subDept) {
            deptName = subDept.getDeptName();
        }
        result.setTitle("出入库明细汇总");
        if (StringUtils.isNotEmpty(deptName)) {
            result.setTitle(deptName + "出入库明细汇总");
            result.setDeptId(deptId);
        }
        result.setUnit("千克(KG)");
        result.setEnd(new Date());
        Date start = DateUtil.getNewByDay(new Date(), -30);
        result.setStart(start);
        result.setTimeDesc(
                DateFormatUtils.format(start, "yyyy-MM-dd") + "   æˆªè‡³ï¼š"
                        + DateFormatUtils.format(new Date(), "yyyy-MM-dd"));
        return result;
    }
    /**
     * å‡ºå…¥åº“汇总表
     * reportInoutDetailPR#listRecord æŠ¥è¡¨æ•°æ®ï¼ŒåªèŽ·å–å·²ç»å®Œæˆçš„ï¼Œå¹¶ä¸”éžå¼‚å¸¸æ•°æ®å’Œåˆ é™¤æ•°æ®
     *
     * @param param
     * @return
     */
    @DataProvider
    public List<InoutRecord> listRecord(InoutParam param) {
        if (null == param) {
            param = new InoutParam();
        }
        //多参数分页查询
        com.baomidou.mybatisplus.extension.plugins.pagination.Page<InoutRecord> corePage = new com.baomidou.mybatisplus.extension.plugins.pagination.Page<>(0, 10000);
        inoutReportService.listPageInout(corePage, param);
        //获取查询到得list数据
        List<InoutRecord> result = corePage.getRecords();
        if (null == result || result.isEmpty()) {
            return result;
        }
        // æ·»åŠ ç»Ÿè®¡ä¿¡æ¯
        double emptyWeightSum = 0.0, fullWeightSum = 0.0, deCheck = 0.0, addCheck = 0.0, deWetSum = 0.0, deImpuritySum = 0.0, deHandleSum = 0.0, deOtherSum = 0.0, deSumSum = 0.0, netWeightSum = 0.0, settleWeightSum = 0.0;
        int index = 1;
        List<InoutRecord> list = new ArrayList<>();
        for (InoutRecord record : result) {
            list.add(record);
            record.setRemarks(String.valueOf(index));
            emptyWeightSum += record.getEmptyWeight();
            fullWeightSum += record.getFullWeight();
            deOtherSum += record.getDeOther();
            netWeightSum += record.getNetWeight();
            settleWeightSum += record.getSettleWeight();
            index++;
        }
        InoutRecord sum = new InoutRecord();
        sum.setId("合计");
        sum.setEmptyWeight(emptyWeightSum);
        sum.setFullWeight(fullWeightSum);
        sum.setDeOther(deOtherSum);
        sum.setNetWeight(netWeightSum);
        sum.setSettleWeight(settleWeightSum);
        if (sum.getNoticeId() == null) sum.setNoticeId("");
        if (sum.getDepotId() == null) sum.setDepotId("");
        if (sum.getProgress() == null) sum.setProgress("");
        if (sum.getUserName() == null) sum.setUserName("");
        if (sum.getPlateNum() == null) sum.setPlateNum("");
        if (sum.getFoodVariety() == null) sum.setFoodVariety("");
        list.add(sum);
        return list;
    }
}