From 7baf1acf6ccbd3eace91f92e3aa9de3fd4a98977 Mon Sep 17 00:00:00 2001 From: qiezi <15576055375@163.com> Date: Tue, 20 Aug 2024 11:54:24 +0800 Subject: [PATCH] =?UTF-8?q?20240820=20=E6=8A=A5=E4=BB=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../quote/controller/QuoteController.java | 9 ++++++ .../xujie/sys/modules/quote/entity/Quote.java | 7 +++++ .../sys/modules/quote/entity/RoleUser.java | 18 +++++++++++ .../sys/modules/quote/mapper/QuoteMapper.java | 4 +++ .../modules/quote/service/QuoteService.java | 4 +++ .../quote/service/impl/QuoteServiceImpl.java | 30 +++++++++++++++++++ .../resources/mapper/quote/QuoteMapper.xml | 25 ++++++++++++++-- 7 files changed, 95 insertions(+), 2 deletions(-) create mode 100644 src/main/java/com/xujie/sys/modules/quote/entity/RoleUser.java diff --git a/src/main/java/com/xujie/sys/modules/quote/controller/QuoteController.java b/src/main/java/com/xujie/sys/modules/quote/controller/QuoteController.java index 0242801e..aa6de58a 100644 --- a/src/main/java/com/xujie/sys/modules/quote/controller/QuoteController.java +++ b/src/main/java/com/xujie/sys/modules/quote/controller/QuoteController.java @@ -3,7 +3,9 @@ package com.xujie.sys.modules.quote.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.xujie.sys.common.utils.R; import com.xujie.sys.modules.quote.entity.Quote; +import com.xujie.sys.modules.quote.entity.RoleUser; import com.xujie.sys.modules.quote.service.QuoteService; +import com.xujie.sys.modules.sys.entity.SysUserEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -63,4 +65,11 @@ public class QuoteController { quoteService.batchSaveQuote(quotes); return R.ok("操作成功"); } + + @PostMapping("/user") + public R queryQuoteRoleUser(@RequestBody RoleUser roleUser){ + List list = quoteService.queryQuoteRoleUser(roleUser); + return R.ok().put("rows", list); + } + } diff --git a/src/main/java/com/xujie/sys/modules/quote/entity/Quote.java b/src/main/java/com/xujie/sys/modules/quote/entity/Quote.java index 90f6a0d5..0f57ac2e 100644 --- a/src/main/java/com/xujie/sys/modules/quote/entity/Quote.java +++ b/src/main/java/com/xujie/sys/modules/quote/entity/Quote.java @@ -112,4 +112,11 @@ public class Quote { @TableField(exist = false) private Integer buId; + + @TableField(exist = false) + private String quoterName; + + + @TableField(exist = false) + private String purchaseName; } diff --git a/src/main/java/com/xujie/sys/modules/quote/entity/RoleUser.java b/src/main/java/com/xujie/sys/modules/quote/entity/RoleUser.java new file mode 100644 index 00000000..828885c5 --- /dev/null +++ b/src/main/java/com/xujie/sys/modules/quote/entity/RoleUser.java @@ -0,0 +1,18 @@ +package com.xujie.sys.modules.quote.entity; + + +import lombok.Data; + +@Data +public class RoleUser { + + private Integer buId; + + private String username; + + private String userDisplay; + + private String roleNo; + + private String active; +} diff --git a/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteMapper.java b/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteMapper.java index 204bc844..2021031c 100644 --- a/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteMapper.java +++ b/src/main/java/com/xujie/sys/modules/quote/mapper/QuoteMapper.java @@ -5,6 +5,8 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.xujie.sys.modules.base.entity.Bu; import com.xujie.sys.modules.quote.entity.Quote; +import com.xujie.sys.modules.quote.entity.RoleUser; +import com.xujie.sys.modules.sys.entity.SysUserEntity; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -24,4 +26,6 @@ public interface QuoteMapper extends BaseMapper { String queryQuoteNo(Quote quote); Quote queryMaxVersionNo(Quote quote); + + List queryQuoteRoleUser(RoleUser roleUser); } diff --git a/src/main/java/com/xujie/sys/modules/quote/service/QuoteService.java b/src/main/java/com/xujie/sys/modules/quote/service/QuoteService.java index 245caba0..d1633499 100644 --- a/src/main/java/com/xujie/sys/modules/quote/service/QuoteService.java +++ b/src/main/java/com/xujie/sys/modules/quote/service/QuoteService.java @@ -3,6 +3,8 @@ package com.xujie.sys.modules.quote.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.xujie.sys.modules.quote.entity.Quote; +import com.xujie.sys.modules.quote.entity.RoleUser; +import com.xujie.sys.modules.sys.entity.SysUserEntity; import java.util.List; @@ -22,4 +24,6 @@ public interface QuoteService extends IService { void batchSaveQuote(List quotes); void removeQuoteById(Long id); + + List queryQuoteRoleUser(RoleUser roleUser); } diff --git a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteServiceImpl.java b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteServiceImpl.java index 1cfa5562..6c472349 100644 --- a/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteServiceImpl.java +++ b/src/main/java/com/xujie/sys/modules/quote/service/impl/QuoteServiceImpl.java @@ -9,9 +9,11 @@ import com.xujie.sys.modules.customer.service.CustomerService; import com.xujie.sys.modules.project.entity.Project; import com.xujie.sys.modules.project.service.ProjectService; import com.xujie.sys.modules.quote.entity.Quote; +import com.xujie.sys.modules.quote.entity.RoleUser; import com.xujie.sys.modules.quote.mapper.QuoteMapper; import com.xujie.sys.modules.quote.service.QuoteDetailService; import com.xujie.sys.modules.quote.service.QuoteService; +import com.xujie.sys.modules.sys.entity.SysUserEntity; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -71,9 +73,29 @@ public class QuoteServiceImpl extends ServiceImpl implements quote.setCreateDate(new Date()); // 3、校验客户和项目 checkCustomerAndProject(quote); + // 4、校验人员 + checkUser(quote); save(quote); } + private void checkUser(Quote quote){ + RoleUser quoter = new RoleUser(); + quoter.setBuId(quote.getBuId()); + quoter.setRoleNo("QUOTER"); + quoter.setUsername(quote.getQuoter()); + List quoterList = baseMapper.queryQuoteRoleUser(quoter); + if (quoterList.size() != 1){ + throw new RuntimeException("报价专员"+quote.getQuoter()+"不存在或填写有误"); + } + RoleUser purchase = new RoleUser(); + purchase.setBuId(quote.getBuId()); + purchase.setRoleNo("purchase".toUpperCase()); + purchase.setUsername(quote.getPurchase()); + List purchaseList = baseMapper.queryQuoteRoleUser(purchase); + if (purchaseList.size() != 1){ + throw new RuntimeException("采购专员"+quote.getPurchase()+"不存在或填写有误"); + } + } private void checkCustomerAndProject(Quote quote) { List customerList = customerService.lambdaQuery() .eq(Customer::getSite, quote.getSite()) @@ -102,7 +124,10 @@ public class QuoteServiceImpl extends ServiceImpl implements @Override @Transactional public void updateQuote(Quote quote) { + // 校验项目和客户 checkCustomerAndProject(quote); + // 校验人员 + checkUser(quote); quote.setUpdateDate(new Date()); updateById(quote); } @@ -140,4 +165,9 @@ public class QuoteServiceImpl extends ServiceImpl implements // 删除报价单 removeById(id); } + + @Override + public List queryQuoteRoleUser(RoleUser roleUser) { + return baseMapper.queryQuoteRoleUser(roleUser); + } } diff --git a/src/main/resources/mapper/quote/QuoteMapper.xml b/src/main/resources/mapper/quote/QuoteMapper.xml index 072b134b..d8193a80 100644 --- a/src/main/resources/mapper/quote/QuoteMapper.xml +++ b/src/main/resources/mapper/quote/QuoteMapper.xml @@ -30,7 +30,9 @@ c.customer_desc, p.project_desc, b.bu_desc, - b.id as buId + b.id as buId, + dbo.plm_get_user_display(q.site,q.quoter) as quoterName, + dbo.plm_get_user_display(q.site,q.purchase) as purchaseName from plm_quote q left join plm_customer_information c on q.customer_no = c.customer_no and q.site = c.site left join plm_project_info p on q.project_no = p.project_no and q.site = p.site @@ -115,7 +117,9 @@ c.customer_desc, p.project_desc, b.bu_desc, - b.id as buId + b.id as buId, + dbo.plm_get_user_display(q.site,q.quoter) as quoterName, + dbo.plm_get_user_display(q.site,q.purchase) as purchaseName from plm_quote q left join plm_customer_information c on q.customer_no = c.customer_no and q.site = c.site left join plm_project_info p on q.project_no = p.project_no and q.site = p.site @@ -236,4 +240,21 @@ order by id desc +