diff --git a/xinnengyuan/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java b/xinnengyuan/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java index 7638f790..cedc8b45 100644 --- a/xinnengyuan/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java +++ b/xinnengyuan/ruoyi-common/ruoyi-common-websocket/src/main/java/org/dromara/common/websocket/interceptor/PlusWebSocketInterceptor.java @@ -45,8 +45,7 @@ public class PlusWebSocketInterceptor implements HandshakeInterceptor { String headerCid = ServletUtils.getRequest().getHeader(LoginHelper.CLIENT_KEY); String paramCid = ServletUtils.getParameter(LoginHelper.CLIENT_KEY); String clientId = StpUtil.getExtra(LoginHelper.CLIENT_KEY).toString(); - String projectIdStr = ServletUtils.getRequest().getParameter("projectId"); - Long projectId = Long.parseLong(projectIdStr); + String projectIdStr = ServletUtils.getRequest().getParameter(LoginHelper.PROJECT_KEY); if (!StringUtils.equalsAny(clientId, headerCid, paramCid)) { // token 无效 throw NotLoginException.newInstance(StpUtil.getLoginType(), @@ -55,7 +54,10 @@ public class PlusWebSocketInterceptor implements HandshakeInterceptor { } attributes.put(LOGIN_USER_KEY, loginUser); - attributes.put(PROJECT_ID,projectId); + if (projectIdStr != null && !projectIdStr.isEmpty()) { + Long projectId = Long.parseLong(projectIdStr); + attributes.put(PROJECT_ID,projectId); + } return true; } catch (NotLoginException e) { log.error("WebSocket 认证失败'{}',无法访问系统资源", e.getMessage()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java index dc46b76c..c125d18d 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/tender/service/impl/BusBiddingPlanServiceImpl.java @@ -111,6 +111,7 @@ public class BusBiddingPlanServiceImpl extends ServiceImpl getYhxxList(XzdYhxxBo bo, PageQuery pageQuery) { + return xzdYhxxService.queryPageList(bo, pageQuery); + } + /** * 导出报销-报销申请列表 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/XzdBxBxsq.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/XzdBxBxsq.java index b9817824..a5b5a5dc 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/XzdBxBxsq.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/XzdBxBxsq.java @@ -65,10 +65,10 @@ public class XzdBxBxsq extends BaseEntity { */ private Long xm; -// /** -// * 开户银行 -// */ -// private Long khyh; + /** + * 开户银行 + */ + private Long khyh; /** * 开户银行账号 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/bo/XzdBxBxsqBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/bo/XzdBxBxsqBo.java index bf633725..44bd73d1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/bo/XzdBxBxsqBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/bo/XzdBxBxsqBo.java @@ -61,7 +61,7 @@ public class XzdBxBxsqBo extends BaseEntity { /** * 开户银行 */ - private List khyh; + private Long khyh; /** * 开户银行账号 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/vo/XzdBxBxsqVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/vo/XzdBxBxsqVo.java index da0dd79f..ca224e74 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/vo/XzdBxBxsqVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/domain/vo/XzdBxBxsqVo.java @@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import org.dromara.xzd.bx.bxsq.domain.XzdBxBxsq; import org.dromara.xzd.bx.bxsq.fymx.domain.vo.XzdBxBxsqFymxVo; import org.dromara.xzd.domain.XzdSupplierOpenBank; @@ -100,11 +102,12 @@ public class XzdBxBxsqVo implements Serializable { /** * 开户银行 */ - private List khyh; + private Long khyh; /** * 开户银行名称 */ + @Translation(type = TransConstant.XZD_SUPPLIER_OPEN_BANK_ID_TO_NAME, mapper = "khyh") private String khyhmc; /** diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/service/impl/XzdBxBxsqServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/service/impl/XzdBxBxsqServiceImpl.java index 3367fd0f..1f6ab91f 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/service/impl/XzdBxBxsqServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/bx/bxsq/service/impl/XzdBxBxsqServiceImpl.java @@ -185,18 +185,18 @@ public class XzdBxBxsqServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(XzdYhxx::getMainId, old.getId()); - List oldList = xzdYhxxService.list(queryWrapper); - - if (oldList != null && !oldList.isEmpty()){ - //先删除老的 - xzdYhxxService.removeByIds(oldList); - } - - //保存此次的 - for (XzdSupplierOpenBank bank : bo.getKhyh()) { - XzdYhxxBo xzdYhxxBo = new XzdYhxxBo(); - xzdYhxxBo.setYhId(bank.getId()); - xzdYhxxBo.setMainId(update.getId()); - xzdYhxxBo.setSfmr(bank.getIsDefault()); - xzdYhxxBo.setAccount(bank.getAccount()); - xzdYhxxBo.setType("3"); - xzdYhxxService.insertByBo(xzdYhxxBo); - } - }else { - //先获取老数据银行关联表 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(XzdYhxx::getMainId, old.getId()); - List oldList = xzdYhxxService.list(queryWrapper); - - //如果不为空则删除 - if (oldList != null && !oldList.isEmpty()){ - xzdYhxxService.remove(queryWrapper); - } - - } +// if(bo.getKhyh() != null && !bo.getKhyh().isEmpty()){ +// +// //先获取老数据银行关联表 +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.eq(XzdYhxx::getMainId, old.getId()); +// List oldList = xzdYhxxService.list(queryWrapper); +// +// if (oldList != null && !oldList.isEmpty()){ +// //先删除老的 +// xzdYhxxService.removeByIds(oldList); +// } +// +// //保存此次的 +// for (XzdSupplierOpenBank bank : bo.getKhyh()) { +// XzdYhxxBo xzdYhxxBo = new XzdYhxxBo(); +// xzdYhxxBo.setYhId(bank.getId()); +// xzdYhxxBo.setMainId(update.getId()); +// xzdYhxxBo.setSfmr(bank.getIsDefault()); +// xzdYhxxBo.setAccount(bank.getAccount()); +// xzdYhxxBo.setType("3"); +// xzdYhxxService.insertByBo(xzdYhxxBo); +// } +// }else { +// //先获取老数据银行关联表 +// LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); +// queryWrapper.eq(XzdYhxx::getMainId, old.getId()); +// List oldList = xzdYhxxService.list(queryWrapper); +// +// //如果不为空则删除 +// if (oldList != null && !oldList.isEmpty()){ +// xzdYhxxService.remove(queryWrapper); +// } +// +// } return baseMapper.updateById(update) > 0; } @@ -302,38 +302,6 @@ public class XzdBxBxsqServiceImpl extends ServiceImpl vos){ for (XzdBxBxsqVo vo : vos) { - - //开户银行 - LambdaQueryWrapper lqw3 = new LambdaQueryWrapper<>(); - lqw3.eq(XzdYhxx::getMainId, vo.getId()); - lqw3.eq(XzdYhxx::getSfmr,"1"); - XzdYhxx one = xzdYhxxService.getOne(lqw3); - if (one != null){ - XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getById(one.getYhId()); - if (byId != null){ - vo.setKhyhmc(byId.getOpenBank()); - vo.setKhyhzh(one.getAccount()); - vo.setKhhhm(one.getKhhm()); - } - } - - lqw3.clear(); - lqw3.eq(XzdYhxx::getMainId,vo.getId()); - List xzdYhxxList = xzdYhxxService.list(lqw3); - if (xzdYhxxList!= null && !xzdYhxxList.isEmpty()) { - List openBanks = new ArrayList<>(); - for (XzdYhxx yhxx : xzdYhxxList) { - XzdSupplierOpenBank byId = xzdSupplierOpenBankService.getById(yhxx.getYhId()); - if (byId != null){ - byId.setAccount(yhxx.getAccount()); - byId.setIsDefault(yhxx.getSfmr()); - byId.setPersonName(yhxx.getKhhm()); - openBanks.add(byId); - } - } - vo.setKhyh(openBanks); - } - //费用明细 LambdaQueryWrapper lqw = new LambdaQueryWrapper<>(); lqw.eq(XzdBxBxsqFymx::getBxId, vo.getId()); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdYhxxController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdYhxxController.java index 4d8df0db..15eeacb9 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdYhxxController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/controller/XzdYhxxController.java @@ -1,6 +1,7 @@ package org.dromara.xzd.controller; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaMode; import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; @@ -15,8 +16,11 @@ import org.dromara.common.log.enums.BusinessType; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.web.core.BaseController; +import org.dromara.xzd.domain.bo.XzdSupplierOpenBankBo; import org.dromara.xzd.domain.bo.XzdYhxxBo; +import org.dromara.xzd.domain.vo.XzdSupplierOpenBankVo; import org.dromara.xzd.domain.vo.XzdYhxxVo; +import org.dromara.xzd.service.IXzdSupplierOpenBankService; import org.dromara.xzd.service.IXzdYhxxService; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -32,11 +36,22 @@ import java.util.List; @Validated @RequiredArgsConstructor @RestController -@RequestMapping("/yhzjb/yhxxzjb") +@RequestMapping("/xzd/yhzjb/yhxxzjb") public class XzdYhxxController extends BaseController { private final IXzdYhxxService xzdYhxxService; + private final IXzdSupplierOpenBankService xzdSupplierOpenBankService; + + /** + * 查询供应商信息-开户银行列表 + */ + @SaCheckPermission(value = {"yhzjb:yhxxzjb:add","yhzjb:yhxxzjb:edit","yhzjb:yhxxzjb:list"},mode = SaMode.OR) + @GetMapping("/getOpenBankList") + public TableDataInfo getOpenBankList(XzdSupplierOpenBankBo bo, PageQuery pageQuery) { + return xzdSupplierOpenBankService.queryPageList(bo, pageQuery); + } + /** * 查询银行数据关联列表 */ diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdYhxx.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdYhxx.java index 6f950299..85839513 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdYhxx.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/XzdYhxx.java @@ -58,4 +58,24 @@ public class XzdYhxx extends BaseEntity { */ private String type; + /** + * 开户行省份 + */ + private String bankSf; + + /** + * 开户行城市 + */ + private String bankCs; + + /** + * 开户行区县 + */ + private String bankQx; + + /** + * 备注 + */ + private String remark; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdYhxxBo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdYhxxBo.java index e6faee30..1f48b2d7 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdYhxxBo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/bo/XzdYhxxBo.java @@ -52,4 +52,24 @@ public class XzdYhxxBo extends BaseEntity { */ private String type; + /** + * 开户行省份 + */ + private String bankSf; + + /** + * 开户行城市 + */ + private String bankCs; + + /** + * 开户行区县 + */ + private String bankQx; + + /** + * 备注 + */ + private String remark; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdYhxxVo.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdYhxxVo.java index e270024f..a4d2fc4a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdYhxxVo.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/domain/vo/XzdYhxxVo.java @@ -4,6 +4,8 @@ import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; import org.dromara.xzd.domain.XzdYhxx; import java.io.Serial; @@ -36,12 +38,15 @@ public class XzdYhxxVo implements Serializable { */ @ExcelProperty(value = "关联供应商/客户id") private Long mainId; + private String mainName; /** * 银行id */ @ExcelProperty(value = "银行id") private Long yhId; + @Translation(type = TransConstant.XZD_SUPPLIER_OPEN_BANK_ID_TO_NAME, mapper = "yhId") + private String yhName; /** * 开户账号 @@ -64,4 +69,24 @@ public class XzdYhxxVo implements Serializable { */ private String type; + /** + * 开户行省份 + */ + private String bankSf; + + /** + * 开户行城市 + */ + private String bankCs; + + /** + * 开户行区县 + */ + private String bankQx; + + /** + * 备注 + */ + private String remark; + } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCustomerinformationService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCustomerinformationService.java index 8ca3265a..3708312c 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCustomerinformationService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/IXzdCustomerinformationService.java @@ -67,4 +67,6 @@ public interface IXzdCustomerinformationService extends IService ids, Boolean isValid); + + String queryNameById(Long id); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCustomerinformationServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCustomerinformationServiceImpl.java index 07d4f60d..94aed3bd 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCustomerinformationServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdCustomerinformationServiceImpl.java @@ -17,6 +17,7 @@ import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.xzd.domain.XzdCustomerinformation; +import org.dromara.xzd.domain.XzdSupplierInfo; import org.dromara.xzd.domain.bo.XzdCustomerinformationBo; import org.dromara.xzd.domain.vo.XzdCustomerinformationVo; import org.dromara.xzd.mapper.XzdCustomerinformationMapper; @@ -183,6 +184,12 @@ public class XzdCustomerinformationServiceImpl extends ServiceImpl 0; } + @Override + public String queryNameById(Long id) { + XzdCustomerinformation xzdCustomerinformation = baseMapper.selectById(id); + return xzdCustomerinformation != null ? xzdCustomerinformation.getUnitName():null; + } + @Override public String selectNmaeByIds(String ids) { List list = new ArrayList<>(); diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java index e34a768e..a41ea94e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/xzd/service/impl/XzdSupplierInfoServiceImpl.java @@ -31,6 +31,7 @@ import org.dromara.xzd.service.IXzdCustomerSupplierYybService; import org.dromara.xzd.service.IXzdSupplierInfoService; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -83,6 +84,7 @@ public class XzdSupplierInfoServiceImpl extends ServiceImpl impl private final XzdYhxxMapper baseMapper; + @Lazy + private final IXzdSupplierInfoService supplierInfoService; + + @Lazy + private final IXzdCustomerinformationService customerinformationService; + + @Lazy + private final ISysUserService sysUserService; + /** * 查询银行数据关联 * @@ -40,7 +53,9 @@ public class XzdYhxxServiceImpl extends ServiceImpl impl */ @Override public XzdYhxxVo queryById(Long id){ - return baseMapper.selectVoById(id); + XzdYhxxVo vo = baseMapper.selectVoById(id); + getName(vo); + return vo; } /** @@ -54,9 +69,24 @@ public class XzdYhxxServiceImpl extends ServiceImpl impl public TableDataInfo queryPageList(XzdYhxxBo bo, PageQuery pageQuery) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + result.getRecords().forEach(this::getName); return TableDataInfo.build(result); } + private void getName(XzdYhxxVo xzdYhxx) { + String name = null; + if ("1".equals(xzdYhxx.getType())){ + name = supplierInfoService.queryNameById(xzdYhxx.getMainId()); + } + if ("2".equals(xzdYhxx.getType())){ + name = customerinformationService.queryNameById(xzdYhxx.getMainId()); + } + if ("3".equals(xzdYhxx.getType())){ + name = sysUserService.queryNameById(xzdYhxx.getMainId()); + } + xzdYhxx.setMainName(name); + } + /** * 查询符合条件的银行数据关联列表 * @@ -66,7 +96,9 @@ public class XzdYhxxServiceImpl extends ServiceImpl impl @Override public List queryList(XzdYhxxBo bo) { LambdaQueryWrapper lqw = buildQueryWrapper(bo); - return baseMapper.selectVoList(lqw); + List vos = baseMapper.selectVoList(lqw); + vos.forEach(this::getName); + return vos; } private LambdaQueryWrapper buildQueryWrapper(XzdYhxxBo bo) { @@ -76,6 +108,9 @@ public class XzdYhxxServiceImpl extends ServiceImpl impl lqw.eq(bo.getMainId() != null, XzdYhxx::getMainId, bo.getMainId()); lqw.eq(bo.getYhId() != null, XzdYhxx::getYhId, bo.getYhId()); lqw.eq(StringUtils.isNotBlank(bo.getSfmr()), XzdYhxx::getSfmr, bo.getSfmr()); + lqw.like(StringUtils.isNotBlank(bo.getAccount()), XzdYhxx::getAccount, bo.getAccount()); + lqw.like(StringUtils.isNotBlank(bo.getKhhm()), XzdYhxx::getKhhm, bo.getKhhm()); + lqw.eq(StringUtils.isNotBlank(bo.getType()), XzdYhxx::getType, bo.getType()); return lqw; } @@ -86,9 +121,20 @@ public class XzdYhxxServiceImpl extends ServiceImpl impl * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(XzdYhxxBo bo) { XzdYhxx add = MapstructUtils.convert(bo, XzdYhxx.class); validEntityBeforeSave(add); + if ("1".equals(bo.getSfmr())){ + XzdYhxx xzdYhxx = baseMapper.selectOne(new LambdaQueryWrapper() + .eq(XzdYhxx::getType, bo.getType()) + .eq(XzdYhxx::getMainId, bo.getMainId()) + .eq(XzdYhxx::getSfmr, bo.getSfmr())); + if (xzdYhxx != null) { + xzdYhxx.setSfmr("0"); + baseMapper.updateById(xzdYhxx); + } + } boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); @@ -103,9 +149,21 @@ public class XzdYhxxServiceImpl extends ServiceImpl impl * @return 是否修改成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(XzdYhxxBo bo) { XzdYhxx update = MapstructUtils.convert(bo, XzdYhxx.class); validEntityBeforeSave(update); + if ("1".equals(bo.getSfmr())){ + XzdYhxx xzdYhxx = baseMapper.selectOne(new LambdaQueryWrapper() + .eq(XzdYhxx::getType, bo.getType()) + .eq(XzdYhxx::getMainId, bo.getMainId()) + .ne(XzdYhxx::getId, bo.getId()) + .eq(XzdYhxx::getSfmr, bo.getSfmr())); + if (xzdYhxx != null) { + xzdYhxx.setSfmr("0"); + baseMapper.updateById(xzdYhxx); + } + } return baseMapper.updateById(update) > 0; } @@ -114,6 +172,33 @@ public class XzdYhxxServiceImpl extends ServiceImpl impl */ private void validEntityBeforeSave(XzdYhxx entity){ //TODO 做一些数据校验,如唯一约束 + if (entity.getId() == null){ + Long count = baseMapper.selectCount(new LambdaQueryWrapper().eq(XzdYhxx::getAccount, entity.getAccount()).eq(XzdYhxx::getType, entity.getType())); + if (count > 0){ + if ("1".equals(entity.getType())){ + throw new ServiceException("银行卡号已有其他供应商使用,请确认后提交"); + } + if ("2".equals(entity.getType())){ + throw new ServiceException("银行卡号已有其他客户使用,请确认后提交"); + } + if ("3".equals(entity.getType())){ + throw new ServiceException("银行卡号已有其他用户使用,请确认后提交"); + } + } + }else { + Long count = baseMapper.selectCount(new LambdaQueryWrapper().eq(XzdYhxx::getAccount, entity.getAccount()).eq(XzdYhxx::getType, entity.getType()).ne(XzdYhxx::getId, entity.getId())); + if (count > 0){ + if ("1".equals(entity.getType())){ + throw new ServiceException("修改的银行卡号已有其他供应商使用,请确认后提交"); + } + if ("2".equals(entity.getType())){ + throw new ServiceException("修改的银行卡号已有其他客户使用,请确认后提交"); + } + if ("3".equals(entity.getType())){ + throw new ServiceException("修改的银行卡号已有其他用户使用,请确认后提交"); + } + } + } } /**