package com.fzzy.igds; import com.bstek.dorado.annotation.DataProvider; import com.bstek.dorado.annotation.DataResolver; import com.bstek.dorado.annotation.Expose; import com.fzzy.common.constant.BizTypeEnum; import com.fzzy.igds.constant.Constant; import com.fzzy.igds.data.BaseResp; import com.fzzy.igds.data.IgdsBaseParam; import com.fzzy.igds.domain.Depot; import com.fzzy.igds.domain.PledgeContract; import com.fzzy.igds.domain.PledgeContractDepot; import com.fzzy.igds.service.DepotService; import com.fzzy.igds.service.PledgeContractDepotService; import com.fzzy.igds.service.PledgeContractService; import com.fzzy.igds.service.SysUserService; import com.fzzy.igds.utils.ContextUtil; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.domain.entity.SysDictData; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.enums.BusinessType; import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; @Component public class PledgeContractPR { @Resource private PledgeContractService pledgeContractService; @Resource private PledgeContractDepotService pledgeContractDepotService; @Resource private SysUserService sysUserService; @Resource private DepotService depotService; /** * pledgeContractPR#initAdd * 新增初始化数据 */ @Expose public PledgeContract initAdd() { SysUser user = ContextUtil.getLoginUser(); PledgeContract data = new PledgeContract(); data.setId(ContextUtil.generateOrderId("ZY")); data.setCompanyId(user.getCompanyId()); data.setUpdateBy(user.getUserName()); return data; } /** * pledgeContractPR#listAll * 质押列表 */ @DataProvider public List listAll(IgdsBaseParam param) { return pledgeContractService.listAll(param); } /** * pledgeContractPR#getOne * * @param businessId * @return */ @DataProvider public PledgeContract getOne(String businessId) { return pledgeContractService.getOne(businessId); } /** * 保存/更新 * * @param pledgeContract * @return */ @Transactional @DataResolver public BaseResp saveUpdate(PledgeContract pledgeContract) { List depotData = pledgeContract.getDepotData(); if (depotData != null && !depotData.isEmpty()) { pledgeContractDepotService.addDataByList(depotData); } if (null == pledgeContract.getCreateTime()) { return pledgeContractService.addData(pledgeContract); } else { return pledgeContractService.updateData(pledgeContract); } } /** * 删除 * pledgeContractPR#delete * * @param pledgeContract * @return */ @Log(title = "质押合同", businessType = BusinessType.DELETE, bizType = BizTypeEnum.SUPERVISION) @Expose public BaseResp delete(PledgeContract pledgeContract) { if (StringUtils.isNotEmpty(pledgeContract.getId())) return pledgeContractService.deleteData(pledgeContract); return BaseResp.success(); } /** * 质押状态 * ${dorado.getDataProvider("pledgeContractPR#status").getResult()} * * @return */ @DataProvider public List status() { List result = new ArrayList<>(); result.add(new SysDictData("未解押", Constant.YN_N)); result.add(new SysDictData("已解押", Constant.YN_Y)); return result; } /** * 删除质押仓库 * pledgeContractPR#deleteDepot * * @param pledgeContractDepot * @return */ @Log(title = "质押合同", businessType = BusinessType.DELETE, bizType = BizTypeEnum.SUPERVISION) @Expose public BaseResp deleteDepot(PledgeContractDepot pledgeContractDepot) { if (StringUtils.isNotEmpty(pledgeContractDepot.getId())) return pledgeContractDepotService.deleteData(pledgeContractDepot); return BaseResp.success(); } /** * pledgeContractPR#listAllData * 质押仓库列表 */ @DataProvider public List listAllData(String PledgeId) { IgdsBaseParam param = new IgdsBaseParam(); param.setCompanyId(ContextUtil.getCompanyId()); param.setParentId(PledgeId); return pledgeContractDepotService.listAll(param); } /** * pledgeContractPR#getUnplacedDepotData * * @return */ @DataProvider public List getUnplacedDepotData(String parentId, String PledgeId) { List result = new ArrayList<>(); if (com.ruoyi.common.utils.StringUtils.isBlank(PledgeId) || com.ruoyi.common.utils.StringUtils.isBlank(parentId)) { return result; } //获取收储公司下所有仓库 List data = depotService.getData(null, parentId, false); //获取已配置仓库 IgdsBaseParam param = new IgdsBaseParam(); param.setCompanyId(ContextUtil.getCompanyId()); param.setParentId(PledgeId); List pledgeContractDepots = pledgeContractDepotService.listAll(param); //遍历找出所有未配置仓库 for (Depot depot : data) { boolean flag = true; for (PledgeContractDepot pledgeContractDepot : pledgeContractDepots) { if (depot.getId().equals(pledgeContractDepot.getPledgeDepot())) { flag = false; break; } } if (flag) { result.add(depot); } } return result; } /** 获取质押银行业务经理数据 * pledgeContractPR#getBankUserList * * @return */ @DataProvider public List getBankUserList(String parentId) { if (com.ruoyi.common.utils.StringUtils.isNotEmpty(parentId)) { return sysUserService.getBindBankUserList(parentId); } return sysUserService.getBindBankUserList(null); } }