sgj
2026-01-06 96880d3b685cb56862a5b633182b97d8ec58eeb0
fzzy-igdss-core/src/main/java/com/fzzy/igds/service/InoutNoticeService.java
@@ -6,12 +6,9 @@
import com.fzzy.igds.data.ExportWordParam;
import com.fzzy.igds.data.NoticeDto;
import com.fzzy.igds.data.NoticeParam;
import com.fzzy.igds.domain.Depot;
import com.fzzy.igds.domain.Dept;
import com.fzzy.igds.domain.*;
import com.fzzy.igds.mapper.InoutNoticeInMapper;
import com.fzzy.igds.mapper.InoutNoticeOutMapper;
import com.fzzy.igds.domain.InoutNoticeIn;
import com.fzzy.igds.domain.InoutNoticeOut;
import com.fzzy.igds.utils.ContextUtil;
import com.ruoyi.common.utils.StringUtils;
import lombok.extern.slf4j.Slf4j;
@@ -42,6 +39,8 @@
    private DepotService depotService;
    @Resource
    private CoreDeptService coreDeptService;
    @Resource
    private PledgeContractService pledgeContractService;
    /*----------------------入库通知单信息-------------------------*/
    /**
@@ -129,6 +128,45 @@
     * @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()+"】未解压,请解压后再保存!";
                    }
                }
            }
        }
        //如果入库通知单类型为银行通知单
        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());