czt
2026-01-12 82e3be7117a57a4abec0e1c49a5b3bcffb588e81
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());