From 86c9d710a8332867ed08b572fddb93a7b3d93c67 Mon Sep 17 00:00:00 2001 From: sunjianxi <839419401@qq.com> Date: Fri, 6 Feb 2026 10:25:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ExchangeRateController.java | 10 ++++ .../jinchao/controller/OrderController.java | 3 +- .../modules/jinchao/mapper/OrderMapper.xml | 1 + .../jinchao/mapper/WaterBillMapper.xml | 8 ++- .../pojo/entity/ExchangeRateEntity.java | 6 +++ .../entity/ExchangeRateHistoryEntity.java | 6 +++ .../jinchao/service/IBizPriceService.java | 2 +- .../service/impl/BizPriceServiceImpl.java | 19 +++++-- .../service/impl/ExchangeRateServiceImpl.java | 4 +- .../service/impl/OrderServiceImpl.java | 45 ++++++++++------- .../service/impl/ProductServiceImpl.java | 49 ++++++++++++++++--- 11 files changed, 119 insertions(+), 34 deletions(-) diff --git a/src/main/java/org/springblade/modules/jinchao/controller/ExchangeRateController.java b/src/main/java/org/springblade/modules/jinchao/controller/ExchangeRateController.java index ebf1b6c..2f9d4e4 100644 --- a/src/main/java/org/springblade/modules/jinchao/controller/ExchangeRateController.java +++ b/src/main/java/org/springblade/modules/jinchao/controller/ExchangeRateController.java @@ -25,6 +25,8 @@ */ package org.springblade.modules.jinchao.controller; +import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -110,6 +112,10 @@ public class ExchangeRateController extends BladeController { @ApiOperationSupport(order = 4) @Operation(summary = "新增", description = "传入exchangeRate") public R save(@Valid @RequestBody ExchangeRateEntity exchangeRate) { + ExchangeRateEntity old = exchangeRateService.getOne(Wrappers.lambdaQuery().eq(ExchangeRateEntity::getBaseCurrency,exchangeRate.getBaseCurrency()).eq(ExchangeRateEntity::getTargetCurrency,exchangeRate.getTargetCurrency())); + if(old != null){ + return R.fail("该汇率已存在"); + } BladeUser user = AuthUtil.getUser(); exchangeRate.setUpdateUser(user.getUserId()); exchangeRate.setUpdateUserName(user.getNickName()); @@ -144,6 +150,10 @@ public class ExchangeRateController extends BladeController { @ApiOperationSupport(order = 6) @Operation(summary = "新增或修改", description = "传入exchangeRate") public R submit(@Valid @RequestBody ExchangeRateEntity exchangeRate) { + ExchangeRateEntity old = exchangeRateService.getOne(Wrappers.lambdaQuery().eq(ExchangeRateEntity::getBaseCurrency,exchangeRate.getBaseCurrency()).eq(ExchangeRateEntity::getTargetCurrency,exchangeRate.getTargetCurrency())); + if(old != null && old.getId() != exchangeRate.getId()){ + return R.fail("该汇率已存在"); + } return R.status(exchangeRateService.saveOrUpdate(exchangeRate)); } diff --git a/src/main/java/org/springblade/modules/jinchao/controller/OrderController.java b/src/main/java/org/springblade/modules/jinchao/controller/OrderController.java index 2db3040..d4f3cb8 100644 --- a/src/main/java/org/springblade/modules/jinchao/controller/OrderController.java +++ b/src/main/java/org/springblade/modules/jinchao/controller/OrderController.java @@ -239,7 +239,8 @@ public class OrderController extends BladeController { @ApiOperationSupport(order = 5) @Operation(summary = "获取模版年份", description = "获取模版") public R selectTemplateYear() { - List orderList = orderService.list(); + BladeUser user = AuthUtil.getUser(); + List orderList = orderService.list(Wrappers.lambdaQuery().eq(BaseEntity::getCreateUser,user.getUserId())); Set yearSet = orderList.stream() .filter(order -> StringUtils.isNotEmpty(order.getOrderDate())) .map(order -> order.getOrderDate().substring(0,4)) diff --git a/src/main/java/org/springblade/modules/jinchao/mapper/OrderMapper.xml b/src/main/java/org/springblade/modules/jinchao/mapper/OrderMapper.xml index c2b5949..c081425 100644 --- a/src/main/java/org/springblade/modules/jinchao/mapper/OrderMapper.xml +++ b/src/main/java/org/springblade/modules/jinchao/mapper/OrderMapper.xml @@ -59,6 +59,7 @@ + order by create_time desc diff --git a/src/main/java/org/springblade/modules/jinchao/mapper/WaterBillMapper.xml b/src/main/java/org/springblade/modules/jinchao/mapper/WaterBillMapper.xml index b2d4f4c..39d9a8f 100644 --- a/src/main/java/org/springblade/modules/jinchao/mapper/WaterBillMapper.xml +++ b/src/main/java/org/springblade/modules/jinchao/mapper/WaterBillMapper.xml @@ -20,7 +20,13 @@ diff --git a/src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateEntity.java b/src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateEntity.java index 6a7a634..13080a6 100644 --- a/src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateEntity.java +++ b/src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateEntity.java @@ -75,4 +75,10 @@ public class ExchangeRateEntity extends TenantEntity { @Schema(description = "修改人姓名") private String updateUserName; + /** + * 备注 + */ + @Schema(description = "备注") + private String remarks; + } diff --git a/src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateHistoryEntity.java b/src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateHistoryEntity.java index 19b0c82..6a1588a 100644 --- a/src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateHistoryEntity.java +++ b/src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateHistoryEntity.java @@ -93,4 +93,10 @@ public class ExchangeRateHistoryEntity extends TenantEntity { @Schema(description = "修改人姓名") private String updateUserName; + /** + * 备注 + */ + @Schema(description = "备注") + private String remarks; + } diff --git a/src/main/java/org/springblade/modules/jinchao/service/IBizPriceService.java b/src/main/java/org/springblade/modules/jinchao/service/IBizPriceService.java index df1bdf7..76096e5 100644 --- a/src/main/java/org/springblade/modules/jinchao/service/IBizPriceService.java +++ b/src/main/java/org/springblade/modules/jinchao/service/IBizPriceService.java @@ -62,7 +62,7 @@ public interface IBizPriceService extends BaseService { R submit(BizPriceEntity e); - List listByProductId(Long productId); + List listByProductId(Long productId,Long customerId); Integer deleteByProductId(Long productId); } diff --git a/src/main/java/org/springblade/modules/jinchao/service/impl/BizPriceServiceImpl.java b/src/main/java/org/springblade/modules/jinchao/service/impl/BizPriceServiceImpl.java index 57631b4..1644499 100644 --- a/src/main/java/org/springblade/modules/jinchao/service/impl/BizPriceServiceImpl.java +++ b/src/main/java/org/springblade/modules/jinchao/service/impl/BizPriceServiceImpl.java @@ -25,8 +25,11 @@ */ package org.springblade.modules.jinchao.service.impl; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import jakarta.validation.Valid; +import org.springblade.core.secure.BladeUser; +import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.modules.jinchao.pojo.entity.BizPriceEntity; import org.springblade.modules.jinchao.pojo.vo.BizPriceVO; @@ -88,11 +91,17 @@ public class BizPriceServiceImpl extends BaseServiceImpl listByProductId(Long productId) { - return baseMapper.selectList( - new QueryWrapper() - .eq("product_id", productId) - ); + public List listByProductId(Long productId,Long customerId) { + BladeUser user = AuthUtil.getUser(); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(BizPriceEntity::getProductId,productId); + if(user.getRoleName().equals("sale")){ + wrapper.eq(BizPriceEntity::getSaleUserId,user.getUserId()); + } + if(customerId != null){ + wrapper.eq(BizPriceEntity::getCustomerId,customerId); + } + return baseMapper.selectList(wrapper); } @Override diff --git a/src/main/java/org/springblade/modules/jinchao/service/impl/ExchangeRateServiceImpl.java b/src/main/java/org/springblade/modules/jinchao/service/impl/ExchangeRateServiceImpl.java index 222f5f7..a60f4a6 100644 --- a/src/main/java/org/springblade/modules/jinchao/service/impl/ExchangeRateServiceImpl.java +++ b/src/main/java/org/springblade/modules/jinchao/service/impl/ExchangeRateServiceImpl.java @@ -73,6 +73,7 @@ public class ExchangeRateServiceImpl extends BaseServiceImpl @Override public IPage selectOrderPage(IPage page, OrderVO order) { BladeUser user = AuthUtil.getUser(); - if(user.getRoleName().equals("业务员")){ + if(user.getRoleName().equals("sale")){ order.setCreateUser(user.getUserId()); } if(StringUtils.isNotEmpty(order.getStatusStr())){ @@ -98,8 +98,8 @@ public class OrderServiceImpl extends BaseServiceImpl order.setCode(generateOrderCode(order)); order.setOrderDate(DateFormatUtils.format(new Date(),"yyyy-MM-dd")); order.setRemittedAmount(new BigDecimal(0)); - order.setUnremittedAmount(order.getSellingPrice()); - order.setCreateUserName(user.getNickName()); + order.setUnremittedAmount(order.getSellingPrice().subtract(order.getDiscountAmount())); + order.setCreateUserName(user.getUserName()); order.setCreateDeptName(SysCache.getDeptName(Long.parseLong(user.getDeptId()))); this.save(order); List orderProjectEntityList = order.getProjectList(); @@ -121,32 +121,37 @@ public class OrderServiceImpl extends BaseServiceImpl public Boolean updateOrder(OrderEntity order) { Date date = new Date(); //修改之前版本的状态 - int status = order.getStatus(); - order.setStatus(9999); - order.setUpdateTime(date); - this.updateById(order); + OrderEntity oldOrder = this.getById(order.getId()); + oldOrder.setStatus(9999); + oldOrder.setUpdateTime(date); + this.updateById(oldOrder); //添加新的版本 order.setCode(generateOrderCode(order)); - order.setStatus(status); order.setId(null); this.save(order); List orderProjectEntityList = order.getProjectList(); for(OrderProjectEntity project : orderProjectEntityList){ //修改之前版本的状态 - project.setStatus(9999); - project.setUpdateTime(date); - orderProjectService.updateById(project); + if(project.getId() != null){ + OrderProjectEntity oldProject = orderProjectService.getById(project.getId()); + oldProject.setStatus(9999); + oldProject.setUpdateTime(date); + orderProjectService.updateById(oldProject); + } //添加新的版本 project.setId(null); project.setOrderId(order.getId()); - project.setStatus(1); orderProjectService.save(project); List orderProjectProductEntityList = project.getProductList(); for(OrderProjectProductEntity product : orderProjectProductEntityList){ - //修改之前版本状态 - product.setStatus(9999); - product.setUpdateTime(date); - orderProjectProductService.updateById(product); + if(product.getId() != null){ + OrderProjectProductEntity oldProduct = orderProjectProductService.getById(product.getId()); + //修改之前版本状态 + oldProduct.setStatus(9999); + oldProduct.setUpdateTime(date); + orderProjectProductService.updateById(oldProduct); + } + //添加新的版本 product.setId(null); product.setOrderId(order.getId()); @@ -167,6 +172,8 @@ public class OrderServiceImpl extends BaseServiceImpl project.setProductList(productList); }); order.setProjectList(projectList); + List chargeList = orderExtraChargeService.list(Wrappers.lambdaQuery().eq(OrderExtraChargeEntity::getOrderId,order.getId())); + order.setExtraChargeList(chargeList); return order; } @@ -239,7 +246,8 @@ public class OrderServiceImpl extends BaseServiceImpl } List list = this.list(wrapper); list.forEach(item ->{ - item.setPaidRate(item.getRemittedAmount().divide(item.getRemittedAmount().add(item.getUnremittedAmount()),2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)) + "%"); + BigDecimal totalAmount = item.getRemittedAmount().add(item.getUnremittedAmount()); + item.setPaidRate(totalAmount.compareTo(new BigDecimal(0)) == 0 ? "0" :item.getRemittedAmount().divide(item.getRemittedAmount().add(item.getUnremittedAmount()),2, RoundingMode.HALF_UP).multiply(new BigDecimal(100)) + "%"); List waterBillList = waterBillService.list(Wrappers.lambdaQuery().eq(WaterBillEntity::getOrderId,item.getId())); if(CollectionUtils.isNotEmpty(waterBillList)){ item.setIsWaterBill("1"); @@ -281,8 +289,9 @@ public class OrderServiceImpl extends BaseServiceImpl @Override public Map> selectTemplate(String year) { + BladeUser user = AuthUtil.getUser(); Map> map = new HashMap<>(); - List orderList = this.list(Wrappers.lambdaQuery().like(OrderEntity::getOrderDate,year).eq(BaseEntity::getStatus,CommonEnum.STATUS_5.getCode())); + List orderList = this.list(Wrappers.lambdaQuery().like(OrderEntity::getOrderDate,year).eq(BaseEntity::getStatus,CommonEnum.STATUS_5.getCode()).eq(BaseEntity::getCreateUser,user.getUserId())); Map> orderMap = orderList.stream().collect(Collectors.groupingBy(item -> item.getOrderDate().substring(5,7))); Map> sortMap = orderMap.entrySet().stream() // 按 key(月份)倒序排序(Comparator.reverseOrder()) diff --git a/src/main/java/org/springblade/modules/jinchao/service/impl/ProductServiceImpl.java b/src/main/java/org/springblade/modules/jinchao/service/impl/ProductServiceImpl.java index c78842a..03306ae 100644 --- a/src/main/java/org/springblade/modules/jinchao/service/impl/ProductServiceImpl.java +++ b/src/main/java/org/springblade/modules/jinchao/service/impl/ProductServiceImpl.java @@ -39,6 +39,7 @@ import org.apache.velocity.runtime.directive.Break; import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Query; +import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.tool.api.R; import org.springblade.core.tool.utils.Func; @@ -122,15 +123,16 @@ public class ProductServiceImpl extends BaseServiceImpl> list(Map map, Query query) { + Long customerId = map.get("customerId") == null ? null : Long.parseLong(map.get("customerId").toString()); Long catalogId = Long.parseLong((String) map.get("catalogId")); // 是Id [坏笑]。不是ld if (catalogId == null || catalogId == 0L) { return R.fail("catalogId error."); } IPage pageRel = relCatalogProductService.page( Condition.getPage(query), - Condition.getQueryWrapper(map, RelCatalogProductEntity.class) - .eq("catalog_id", catalogId) - .orderByAsc("product_id") + Wrappers.lambdaQuery() + .eq(RelCatalogProductEntity::getCatalogId,catalogId) + .orderByAsc(RelCatalogProductEntity::getProductId) ); List listVO = new ArrayList<>(); pageRel.getRecords().forEach(rel -> { @@ -156,11 +158,14 @@ public class ProductServiceImpl extends BaseServiceImpl().eq(BizPriceEntity.COL_PRODUCT_ID, vo1.getId()) - ); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper(); + wrapper.eq(BizPriceEntity::getProductId,vo1.getId()); + if(customerId != null){ + wrapper.eq(BizPriceEntity::getCustomerId,customerId); + } + long count = bizPriceService.count(wrapper); if (count != 0L) { - List listBP = bizPriceService.listByProductId(vo1.getId()); + List listBP = bizPriceService.listByProductId(vo1.getId(),customerId); listBP.forEach(bp -> { ProductVO vo2 = new ProductVO(); BeanUtils.copyProperties(vo1, vo2); @@ -169,6 +174,7 @@ public class ProductServiceImpl extends BaseServiceImpl pagesVO1 = Condition.getPage(query); + List list = pagesVO.getRecords(); + Iterator iterator = list.iterator(); + while (iterator.hasNext()) { + ProductVO vo = iterator.next(); + // 提取字段并做空值处理 + String nameCn = vo.getNameCn(); + String bizRemark = vo.getBizRemark(); + String nameCnFilter = map.get("nameCn") != null ? map.get("nameCn").toString() : null; + String bizRemarkFilter = map.get("bizRemark") != null ? map.get("bizRemark").toString() : null; + boolean needRemove = false; + if (nameCnFilter != null) { + // 字段为 null 时,默认不包含过滤值,需要移除 + needRemove = (nameCn == null) || !nameCn.contains(nameCnFilter); + } + if (!needRemove && bizRemarkFilter != null) { + needRemove = (bizRemark == null) || !bizRemark.contains(bizRemarkFilter); + } + + if (needRemove) { + iterator.remove(); // 使用迭代器安全移除 + } + } + pagesVO1.setRecords(list); + pagesVO1.setSize(list.size()); + return R.data(pagesVO1); + } return R.data(pagesVO); }