sgj
2026-01-06 b4b15671788a5899ab144935c5084c2497acfd65
出库通知单优化修改
已修改2个文件
99 ■■■■■ 文件已修改
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java 45 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
@@ -128,23 +128,21 @@
     * @return
     */
    public String saveOrUpdateIn(InoutNoticeIn data) {
        //如果入库通知单类型为自建通知单,验证仓库是否是未解压得仓库,是则不允许保存
        //如果入库通知单类型为库区通知单,验证仓库是否是未解压得仓库,是则不允许保存
        //获取所有质押合同数据
        List<PledgeContract> pledgeContracts = pledgeContractService.listAll(null);
        if("10".equals(data.getType())){
           //"库区通知单"
            //在质押合同找到未解压,且质押仓库包含当前仓库的数据
            for (PledgeContract pledgeContract : pledgeContracts) {
                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
                        return "入库仓库所在质押合同【"+pledgeContract.getName()+"】未解压,请解压后再保存!";
                        return "入库仓库未解压,无法保存!";
                    }
                }
            }
        }
        //如果入库通知单类型为银行通知单
        //如果入库通知单类型为监管通知单
        if("20".equals(data.getType())){
            //"监管通知单"
            //1.验证银行是否填写,未填写,则不允许保存
            if(StringUtils.isEmpty(data.getBankId())){
                return "监督银行不能为空!";
@@ -280,6 +278,43 @@
     * @return
     */
    public String saveOrUpdateOut(InoutNoticeOut data) {
        //如果出库通知单类型为库区通知单,验证仓库是否是未解压得仓库,是则不允许保存
        //获取所有质押合同数据
        List<PledgeContract> pledgeContracts = pledgeContractService.listAll(null);
        if("10".equals(data.getType())){
            //在质押合同找到未解压,且质押仓库包含当前仓库的数据
            for (PledgeContract pledgeContract : pledgeContracts) {
                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
                        return "出库仓库未解压,无法保存!";
                    }
                }
            }
        }
        //如果出库通知单类型为监管通知单
        if("20".equals(data.getType())){
            //1.验证银行是否填写,未填写,则不允许保存
            if(StringUtils.isEmpty(data.getBankId())){
                return "监督银行不能为空!";
            }
            //2.验证银行和仓库的对应关系是否正确,不正确则不允许保存
            //在质押合同找到未解压,且质押仓库包含当前仓库的 银行-仓库(质押合同关系)
            Map<String, PledgeContract> bankDepotMap = new HashMap<>();
            for (PledgeContract pledgeContract : pledgeContracts) {
                if(pledgeContract.getDepotIds().contains(data.getDepotId())){
                    if(pledgeContract.getStatus().equals(Constant.YN_N)){
                        bankDepotMap.put(pledgeContract.getPledgeBank(), pledgeContract);
                    }
                }
            }
            //在map中寻找匹配银行的数据,如果没有匹配的数据,则不允许保存
            if(!bankDepotMap.containsKey(data.getBankId())){
                return "未找到对应的质押合同,请检查监督银行或者出库仓库填写是否正确!";
            }
        }
        if (null == data.getUpdateBy()) {
            data.setUpdateBy(ContextUtil.getLoginUserName());
            data.setUpdateTime(new Date());
fzzy-igdss-view/src/main/java/com/fzzy/igds/InoutNoticeOut.view.xml
@@ -58,7 +58,7 @@
        <Property></Property>
        <Property name="label">出库仓库</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;deptPR#getDeptByUserType&quot;).getResult()}</Property>
          <Property name="mapValues">${dorado.getDataProvider(&quot;depotPR#getData&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
@@ -175,6 +175,16 @@
        <Property></Property>
        <Property name="label">更新人</Property>
      </PropertyDef>
      <PropertyDef name="bankId">
        <Property></Property>
        <Property name="label">监督银行</Property>
        <Property name="mapping">
          <Property name="mapValues">${dorado.getDataProvider(&quot;bankPR#listAll&quot;).getResult()}</Property>
          <Property name="keyProperty">id</Property>
          <Property name="valueProperty">name</Property>
        </Property>
        <Property name="visible">true</Property>
      </PropertyDef>
    </DataType>
  </Model>
  <View layout="padding:10">
@@ -204,6 +214,12 @@
      <Property name="dataType">dtNoticeParam</Property>
      <Property name="dataProvider">inoutNoticePR#getYearQuery</Property>
      <Property name="loadMode">manual</Property>
    </DataSet>
    <DataSet id="dsDepotList">
      <Property name="dataProvider">depotPR#getData</Property>
      <Property name="userData">仓库列表下拉框</Property>
      <Property name="loadMode">manual</Property>
      <Property name="dataType">[dtDepot]</Property>
    </DataSet>
    <Container>
      <Property name="className">c-param</Property>
@@ -467,7 +483,13 @@
            <AutoFormElement>
              <Property name="name">type</Property>
              <Property name="property">type</Property>
              <Property name="editorType">RadioGroup</Property>
              <Property name="trigger">autoMappingDropDown1</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement id="formItemBank">
              <Property name="name">bankId</Property>
              <Property name="property">bankId</Property>
              <Property name="hideMode">visibility</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
@@ -478,6 +500,7 @@
            <AutoFormElement>
              <Property name="name">depotId</Property>
              <Property name="property">depotId</Property>
              <Property name="trigger">dsDepotDropDown</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
@@ -491,7 +514,7 @@
              <Property name="trigger">defaultYearDropDown</Property>
              <Editor/>
            </AutoFormElement>
            <AutoFormElement>
            <AutoFormElement layoutConstraint="colSpan:2">
              <Property name="name">customerName</Property>
              <Property name="property">customerName</Property>
              <Editor/>
@@ -580,6 +603,31 @@
      </Children>
      <Tools/>
    </Dialog>
    <DataSetDropDown id="dsDepotDropDown">
      <ClientEvent name="onOpen">&#xD;
var entity = view.get(&quot;#dsMain.data:#&quot;);&#xD;
if(!entity){&#xD;
    $alert(&quot;请先选择所属分库&quot;);&#xD;
}else{&#xD;
    var deptId = entity.get(&quot;deptId&quot;);&#xD;
    if(!deptId){&#xD;
        $alert(&quot;请先选择所属分库&quot;);&#xD;
    }else{&#xD;
        view.get(&quot;#dsDepotList&quot;).set(&quot;parameter&quot;,entity.get(&quot;deptId&quot;)).flushAsync();&#xD;
    }&#xD;
}</ClientEvent>
      <Property name="dataSet">dsDepotList</Property>
      <Property name="height">450</Property>
      <Property name="autoOpen">true</Property>
      <Property name="assignmentMap">depotId=id</Property>
      <Property name="width">400</Property>
      <DataColumn>
        <Property name="align">center</Property>
        <Property name="name">name</Property>
        <Property name="property">name</Property>
        <Editor/>
      </DataColumn>
    </DataSetDropDown>
    <UpdateAction id="updateSave">
      <Property name="dataResolver">inoutNoticePR#saveOut</Property>
      <UpdateItem>