From 6b4ce63ff438b3eade1ebc474f1ab5b5d8d803ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 27 Feb 2026 11:03:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(quotation):=20=E6=96=B0=E5=A2=9E=E7=A6=81?= =?UTF-8?q?=E5=94=AE=E9=85=8D=E7=BD=AE=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98?= =?UTF-8?q?=E5=8C=96=E4=BB=B7=E6=A0=BC=E5=92=8C=E6=8A=98=E6=89=A3=E9=85=8D?= =?UTF-8?q?=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 ForbidConfigController 实现禁售配置的搜索和保存功能 - 添加 QuotationModelForbid 相关的实体、服务接口和服务实现 - 在 DiscountConfigController 中修改数据类型从 Long 到 String 并优化数值处理 - 在 PriceConfigController 中统一使用 String 类型参数并改进数值转换逻辑 - 优化 Mapper XML 文件中的条件查询语句结构 - 为 ProductModelSimpleVO 添加 batchNumber 字段支持 - 修复价格配置中区域价格过滤的逻辑错误 --- .../common/pojo/vo/ProductModelSimpleVO.java | 2 + .../admin/DiscountConfigController.java | 17 +-- .../admin/ForbidConfigController.java | 133 +++++++++++++++++- .../admin/PriceConfigController.java | 46 +++--- .../mapper/QuotationModelForbidMapper.java | 5 + .../service/IQuotationModelForbidService.java | 6 + .../impl/QuotationModelForbidServiceImpl.java | 8 ++ .../impl/QuotationModelPriceServiceImpl.java | 3 +- .../mapper/QuotationModelConfigMapper.xml | 26 ++-- .../mapper/QuotationModelDiscountMapper.xml | 26 ++-- .../mapper/QuotationModelForbidMapper.xml | 21 +++ .../mapper/QuotationModelPriceMapper.xml | 26 ++-- 12 files changed, 241 insertions(+), 78 deletions(-) diff --git a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelSimpleVO.java b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelSimpleVO.java index 755bc124..6a2db07a 100644 --- a/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelSimpleVO.java +++ b/nflg-mobilebroken-common/src/main/java/com/nflg/mobilebroken/common/pojo/vo/ProductModelSimpleVO.java @@ -28,4 +28,6 @@ public class ProductModelSimpleVO { * 机型型号 */ private String no; + + private Long batchNumber; } diff --git a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/DiscountConfigController.java b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/DiscountConfigController.java index f83c219d..daa01b42 100644 --- a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/DiscountConfigController.java +++ b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/DiscountConfigController.java @@ -2,6 +2,7 @@ package com.nflg.mobilebroken.quotation.controller.admin; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; @@ -108,7 +109,7 @@ public class DiscountConfigController extends ControllerBase { .filter(price -> price.getAreaId().equals(area.getId())) .findFirst() .get(); - map.put(area.getCode() + "_price", modelPrice.getAmount()); + map.put(area.getCode() + "_price", NumberUtil.format(modelPrice.getAmount())); QuotationModelDiscountArea discountArea = discountAreas.stream() .filter(price -> price.getAreaId().equals(area.getId())) .findFirst() @@ -129,13 +130,13 @@ public class DiscountConfigController extends ControllerBase { */ @Transactional @PostMapping("/save") - public ApiResult save(@RequestBody @NotEmpty List> datas) { - List modelIds = datas.stream().map(data -> (Long) data.get("modelId")).collect(Collectors.toList()); + public ApiResult save(@RequestBody @NotEmpty List> datas) { + List modelIds = datas.stream().map(data -> Long.parseLong(data.get("modelId"))).collect(Collectors.toList()); List discounts = new ArrayList<>(); List discountAreas = new ArrayList<>(); List discountApplies = new ArrayList<>(); datas.forEach(data -> { - Long modelId = (Long) data.get("modelId"); + Long modelId = Long.parseLong(data.get("modelId")); QuotationModelDiscount discount = new QuotationModelDiscount() .setId(IdUtil.getSnowflakeNextId()) .setModelId(modelId) @@ -149,13 +150,13 @@ public class DiscountConfigController extends ControllerBase { QuotationModelDiscountArea discountArea = new QuotationModelDiscountArea() .setDiscountId(discount.getId()) .setAreaId(area.getId()) - .setRatio(new BigDecimal(data.get(area.getCode() + "_ratio").toString())) - .setDiscountStartDate(DateTimeUtil.parse(data.get(area.getCode() + "_start").toString(), "yyyy-MM-dd")) - .setDiscountEndDate(DateTimeUtil.parse(data.get(area.getCode() + "_end").toString(), "yyyy-MM-dd")); + .setRatio(new BigDecimal(data.get(area.getCode() + "_ratio"))) + .setDiscountStartDate(DateTimeUtil.parse(data.get(area.getCode() + "_start"), "yyyy-MM-dd")) + .setDiscountEndDate(DateTimeUtil.parse(data.get(area.getCode() + "_end"), "yyyy-MM-dd")); discountAreas.add(discountArea); } } - Integer[] userIds = (Integer[]) data.get("apply"); + int[] userIds = StrUtil.splitToInt(data.get("apply"), ','); for (Integer userId : userIds) { discountApplies.add(new QuotationModelDiscountApply() .setDiscountId(discount.getId()) diff --git a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/ForbidConfigController.java b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/ForbidConfigController.java index 9b71d139..cbb9fd44 100644 --- a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/ForbidConfigController.java +++ b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/ForbidConfigController.java @@ -1,21 +1,34 @@ package com.nflg.mobilebroken.quotation.controller.admin; +import cn.hutool.core.collection.CollectionUtil; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.nflg.mobilebroken.common.constant.Constant; import com.nflg.mobilebroken.common.pojo.ApiResult; +import com.nflg.mobilebroken.common.pojo.PageData; +import com.nflg.mobilebroken.common.pojo.request.ModelConfigSearchRequest; import com.nflg.mobilebroken.common.pojo.vo.DynamicHeaderVO; +import com.nflg.mobilebroken.common.pojo.vo.ProductModelSimpleVO; +import com.nflg.mobilebroken.common.util.AdminUserUtil; +import com.nflg.mobilebroken.common.util.NumberUtil; +import com.nflg.mobilebroken.common.util.VUtils; import com.nflg.mobilebroken.quotation.controller.ControllerBase; import com.nflg.mobilebroken.repository.entity.DictionaryItem; +import com.nflg.mobilebroken.repository.entity.QuotationModelForbid; import com.nflg.mobilebroken.repository.entity.TBaseCustomer; import com.nflg.mobilebroken.repository.service.IDictionaryItemService; +import com.nflg.mobilebroken.repository.service.IQuotationModelForbidService; import com.nflg.mobilebroken.repository.service.ITBaseCustomerService; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; +import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; +import java.time.LocalDateTime; +import java.util.*; +import java.util.stream.Collectors; /** * 禁售配置 @@ -33,20 +46,25 @@ public class ForbidConfigController extends ControllerBase { @Resource private ITBaseCustomerService customerService; + @Resource + private IQuotationModelForbidService forbidService; + /** * 获取动态表头 */ @GetMapping("/headers") public ApiResult> getHeaders() { List vos = new ArrayList<>(); -// vos.add(new DynamicHeaderVO().setProp("modelId").setLabel("modelId").setKey(true).setShow(false)); vos.add(new DynamicHeaderVO().setProp("modelNo").setLabel("产品机型")); List categories = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_DIRECT_SALES_CATEGORY); List customers = customerService.lambdaQuery() + .eq(TBaseCustomer::getDelIs, 0) + .eq(TBaseCustomer::getEnableState, 1) .isNotNull(TBaseCustomer::getCategoryId) + .orderByAsc(TBaseCustomer::getId) .list(); categories.forEach(category -> { - DynamicHeaderVO avo=new DynamicHeaderVO() + DynamicHeaderVO avo = new DynamicHeaderVO() .setProp(category.getCode()) .setLabel(category.getName()) .setChildren(new ArrayList<>()); @@ -54,8 +72,109 @@ public class ForbidConfigController extends ControllerBase { .forEach(customer -> { avo.getChildren().add(new DynamicHeaderVO().setProp(customer.getAgencyCompanyCode()).setLabel(customer.getAgencyCompanyName())); }); + vos.add(avo); }); return ApiResult.success(vos); } + /** + * 搜索 + */ + @PostMapping("/search") + public ApiResult>> search(@Valid @RequestBody ModelConfigSearchRequest request) { + IPage pdatas = forbidService.search(request); + if (CollectionUtil.isEmpty(pdatas.getRecords())) { + return ApiResult.success(PageData.empty()); + } + List forbids = forbidService.lambdaQuery() + .eq(QuotationModelForbid::getSourceType, 1) + .in(QuotationModelForbid::getModelId, pdatas.getRecords().stream().map(ProductModelSimpleVO::getBatchNumber).collect(Collectors.toList())) + .list(); + List customers = customerService.lambdaQuery() + .eq(TBaseCustomer::getDelIs, 0) + .eq(TBaseCustomer::getEnableState, 1) + .isNotNull(TBaseCustomer::getCategoryId) + .list(); + return ApiResult.success(pdatas, data -> { + Map map = new HashMap<>(); + map.put("modelId", data.getBatchNumber()); + map.put("modelNo", data.getNo()); + customers.forEach(customer -> { + map.put(customer.getAgencyCompanyCode(), forbids.stream() + .filter(forbid -> forbid.getModelId().equals(data.getBatchNumber()) + && forbid.getSourceType().equals(1) + && forbid.getSourceId().equals(customer.getId())) + .map(QuotationModelForbid::getIsForbid) + .findFirst() + .orElse(false) + ); + }); + return map; + }); + } + + /** + * 保存 + */ + @Transactional + @PostMapping("/save") + public ApiResult save(@RequestBody @NotEmpty List> datas) { + VUtils.trueThrowBusinessError(CollectionUtil.isEmpty(datas)).throwMessage("请选择要保存的数据!"); + List modelIds = datas.stream().map(data -> Long.parseLong(data.get("modelId").toString())).collect(Collectors.toList()); + List forbids = forbidService.lambdaQuery() + .eq(QuotationModelForbid::getSourceType, 1) + .in(QuotationModelForbid::getModelId, modelIds) + .list(); + List customers = customerService.lambdaQuery() + .eq(TBaseCustomer::getDelIs, 0) + .eq(TBaseCustomer::getEnableState, 1) + .isNotNull(TBaseCustomer::getCategoryId) + .list(); + List forbidForAdd = new ArrayList<>(); + List forbidForUpdate = new ArrayList<>(); + datas.forEach(data -> { + Long modelId = Long.parseLong(data.get("modelId").toString()); + data.remove("modelId"); + data.remove("modelNo"); + data.forEach((key, value) -> { + TBaseCustomer customer = customers.stream() + .filter(c -> c.getAgencyCompanyCode().equals(key)) + .findFirst() + .orElse(null); + if (Objects.nonNull(customer)) { + Boolean isForbid = (Boolean) value; + QuotationModelForbid forbid = forbids.stream() + .filter(f -> f.getModelId().equals(modelId) && f.getSourceType() == 1 && f.getSourceId().equals(customer.getId())) + .findFirst() + .orElse(null); + if (Objects.isNull(forbid)) { + forbidForAdd.add(new QuotationModelForbid() + .setModelId(modelId) + .setSourceId(customer.getId()) + .setSourceType(1) + .setIsForbid(isForbid) + .setCreateById(AdminUserUtil.getUserId()) + .setCreateBy(AdminUserUtil.getUserName()) + .setCreateTime(LocalDateTime.now()) + ); + } else if (forbid.getIsForbid() != isForbid) { + forbidForUpdate.add( + forbid.setIsForbid(isForbid) + .setUpdateById(AdminUserUtil.getUserId()) + .setUpdateBy(AdminUserUtil.getUserName()) + .setUpdateTime(LocalDateTime.now()) + ); + } + } + }); + }); + if (CollectionUtil.isNotEmpty(forbidForAdd)) { + forbidService.saveOrUpdateBatch(forbidForAdd); + } + if (CollectionUtil.isNotEmpty(forbidForUpdate)) { + forbidService.updateBatchById(forbidForUpdate); + } + return ApiResult.success(); + } + } diff --git a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/PriceConfigController.java b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/PriceConfigController.java index 17450e0b..ff2cac93 100644 --- a/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/PriceConfigController.java +++ b/nflg-mobilebroken-quotation/src/main/java/com/nflg/mobilebroken/quotation/controller/admin/PriceConfigController.java @@ -130,9 +130,9 @@ public class PriceConfigController extends ControllerBase { */ @Transactional @PostMapping("/save") - public ApiResult save(@Valid @RequestBody List> datas) { + public ApiResult save(@Valid @RequestBody List> datas) { List categories = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_DIRECT_SALES_CATEGORY); - Map>> group = datas.stream().collect(Collectors.groupingBy(map -> (Long) map.get("modelId"))); + Map>> group = datas.stream().collect(Collectors.groupingBy(map -> Long.parseLong(map.get("modelId")))); group.forEach((modelId, itemList) -> { QuotationModelPrice price = priceService.lambdaQuery() .eq(QuotationModelPrice::getModelId, modelId) @@ -153,8 +153,8 @@ public class PriceConfigController extends ControllerBase { priceService.save(price); List items = new ArrayList<>(); List areas = new ArrayList<>(); - for (Map map : itemList) { - Long itemId = 0L, configItemUniqueId = (Long) map.get("configItemUniqueId"); + for (Map map : itemList) { + Long itemId = 0L, configItemUniqueId = Long.parseLong(map.get("configItemUniqueId")); if (configItemUniqueId > 0) { QuotationModelPriceItem item = new QuotationModelPriceItem() .setPriceId(price.getId()) @@ -172,7 +172,7 @@ public class PriceConfigController extends ControllerBase { .setAreaId(category.getId()) .setPriceId(price.getId()) .setPriceItemId(itemId) - .setAmount(new BigDecimal(map.get(category.getCode()).toString())); + .setAmount(new BigDecimal(map.get(category.getCode()))); areas.add(area); } } @@ -184,14 +184,14 @@ public class PriceConfigController extends ControllerBase { List items = priceItemService.lambdaQuery() .eq(QuotationModelPriceItem::getPriceId, price.getId()) .in(QuotationModelPriceItem::getConfigItemUniqueId, itemList.stream() - .map(a -> (Long) a.get("configItemUniqueId")) + .map(a -> Long.parseLong(a.get("configItemUniqueId"))) .collect(Collectors.toList()) ) .list(); List areas = priceItemAreaService.lambdaQuery() .eq(QuotationModelPriceItemArea::getPriceId, price.getId()) - .and(or -> or.eq(QuotationModelPriceItemArea::getPriceItemId, 0) - .in(QuotationModelPriceItemArea::getPriceItemId, items.stream() + .and(wrapper -> wrapper.eq(QuotationModelPriceItemArea::getPriceItemId, 0).or() + .in(CollectionUtil.isNotEmpty(items),QuotationModelPriceItemArea::getPriceItemId, items.stream() .map(QuotationModelPriceItem::getId) .collect(Collectors.toList()) ) @@ -201,8 +201,8 @@ public class PriceConfigController extends ControllerBase { List itemsForUpdate = new ArrayList<>(); List areasForAdd = new ArrayList<>(); List areasForUpdate = new ArrayList<>(); - for (Map map : itemList) { - Long configItemUniqueId = (Long) map.get("configItemUniqueId"); + for (Map map : itemList) { + Long configItemUniqueId = Long.parseLong(map.get("configItemUniqueId")); if (configItemUniqueId > 0) { QuotationModelPriceItem item = items.stream() .filter(it -> configItemUniqueId.equals(it.getConfigItemUniqueId())) @@ -223,7 +223,7 @@ public class PriceConfigController extends ControllerBase { .setAreaId(category.getId()) .setPriceId(price.getId()) .setPriceItemId(item.getId()) - .setAmount(new BigDecimal(map.get(category.getCode()).toString())); + .setAmount(new BigDecimal(map.get(category.getCode()))); areas.add(area); } } @@ -246,9 +246,9 @@ public class PriceConfigController extends ControllerBase { .setAreaId(category.getId()) .setPriceId(price.getId()) .setPriceItemId(item.getId()) - .setAmount(new BigDecimal(map.get(category.getCode()).toString()))); + .setAmount(new BigDecimal(map.get(category.getCode())))); } else { - area.setAmount(new BigDecimal(map.get(category.getCode()).toString())); + area.setAmount(new BigDecimal(map.get(category.getCode()))); areasForUpdate.add(area); } } @@ -264,8 +264,14 @@ public class PriceConfigController extends ControllerBase { .findFirst() .orElse(null); if (Objects.nonNull(area)) { - area.setAmount(new BigDecimal(map.get(category.getCode()).toString())); + area.setAmount(new BigDecimal(map.get(category.getCode()))); areasForUpdate.add(area); + }else { + areasForAdd.add(new QuotationModelPriceItemArea() + .setAreaId(category.getId()) + .setPriceId(price.getId()) + .setPriceItemId(0L) + .setAmount(new BigDecimal(map.get(category.getCode())))); } } } @@ -301,8 +307,8 @@ public class PriceConfigController extends ControllerBase { price.setUpdateById(AdminUserUtil.getUserId()); price.setUpdateBy(AdminUserUtil.getUserName()); price.setUpdateTime(LocalDateTime.now()); - for (Map map : itemList) { - Long configItemUniqueId = (Long) map.get("configItemUniqueId"); + for (Map map : itemList) { + Long configItemUniqueId = Long.parseLong(map.get("configItemUniqueId")); if (configItemUniqueId > 0) { QuotationModelPriceItem dbItem = dbItems.stream() .filter(ait -> ait.getConfigItemUniqueId().equals(configItemUniqueId)) @@ -321,14 +327,14 @@ public class PriceConfigController extends ControllerBase { if (Objects.nonNull(area)) { area.setId(IdUtil.getSnowflakeNextId()); area.setPriceId(price.getId()); - area.setAmount(new BigDecimal(map.get(category.getCode()).toString())); + area.setAmount(new BigDecimal(map.get(category.getCode()))); areasForAdd.add(area); } else { areasForAdd.add(new QuotationModelPriceItemArea() .setAreaId(category.getId()) .setPriceId(price.getId()) .setPriceItemId(dbItem.getId()) - .setAmount(new BigDecimal(map.get(category.getCode()).toString())) + .setAmount(new BigDecimal(map.get(category.getCode()))) ); } } @@ -348,7 +354,7 @@ public class PriceConfigController extends ControllerBase { .setAreaId(category.getId()) .setPriceId(price.getId()) .setPriceItemId(item.getId()) - .setAmount(new BigDecimal(map.get(category.getCode()).toString())) + .setAmount(new BigDecimal(map.get(category.getCode()))) ); } } @@ -363,7 +369,7 @@ public class PriceConfigController extends ControllerBase { .findFirst() .orElse(null); if (Objects.nonNull(area)) { - area.setAmount(new BigDecimal(map.get(category.getCode()).toString())); + area.setAmount(new BigDecimal(map.get(category.getCode()))); areasForAdd.add(area); } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/QuotationModelForbidMapper.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/QuotationModelForbidMapper.java index ac6e2c06..18f1c0e1 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/QuotationModelForbidMapper.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/mapper/QuotationModelForbidMapper.java @@ -1,5 +1,9 @@ package com.nflg.mobilebroken.repository.mapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nflg.mobilebroken.common.pojo.request.ModelConfigSearchRequest; +import com.nflg.mobilebroken.common.pojo.vo.ProductModelSimpleVO; import com.nflg.mobilebroken.repository.entity.QuotationModelForbid; import com.baomidou.mybatisplus.core.mapper.BaseMapper; @@ -13,4 +17,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; */ public interface QuotationModelForbidMapper extends BaseMapper { + IPage search(ModelConfigSearchRequest request, Page page); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IQuotationModelForbidService.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IQuotationModelForbidService.java index b38087d0..e77caf8a 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IQuotationModelForbidService.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/IQuotationModelForbidService.java @@ -1,8 +1,13 @@ package com.nflg.mobilebroken.repository.service; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.nflg.mobilebroken.common.pojo.request.ModelConfigSearchRequest; +import com.nflg.mobilebroken.common.pojo.vo.ProductModelSimpleVO; import com.nflg.mobilebroken.repository.entity.QuotationModelForbid; import com.baomidou.mybatisplus.extension.service.IService; +import javax.validation.Valid; + /** *

* 报价-机型禁售 服务类 @@ -13,4 +18,5 @@ import com.baomidou.mybatisplus.extension.service.IService; */ public interface IQuotationModelForbidService extends IService { + IPage search(ModelConfigSearchRequest request); } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/QuotationModelForbidServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/QuotationModelForbidServiceImpl.java index 50fc4b41..84549851 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/QuotationModelForbidServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/QuotationModelForbidServiceImpl.java @@ -1,5 +1,9 @@ package com.nflg.mobilebroken.repository.service.impl; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.nflg.mobilebroken.common.pojo.request.ModelConfigSearchRequest; +import com.nflg.mobilebroken.common.pojo.vo.ProductModelSimpleVO; import com.nflg.mobilebroken.repository.entity.QuotationModelForbid; import com.nflg.mobilebroken.repository.mapper.QuotationModelForbidMapper; import com.nflg.mobilebroken.repository.service.IQuotationModelForbidService; @@ -17,4 +21,8 @@ import org.springframework.stereotype.Service; @Service public class QuotationModelForbidServiceImpl extends ServiceImpl implements IQuotationModelForbidService { + @Override + public IPage search(ModelConfigSearchRequest request) { + return baseMapper.search(request,new Page<>(request.getPage(), request.getPageSize())); + } } diff --git a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/QuotationModelPriceServiceImpl.java b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/QuotationModelPriceServiceImpl.java index 47902d2b..61ddccd3 100644 --- a/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/QuotationModelPriceServiceImpl.java +++ b/nflg-mobilebroken-repository/src/main/java/com/nflg/mobilebroken/repository/service/impl/QuotationModelPriceServiceImpl.java @@ -76,7 +76,8 @@ public class QuotationModelPriceServiceImpl extends ServiceImpl new ModelPriceConfigAreaVO() .setCode(area.getCode()) .setAmount(areaPrices.stream() - .filter(pit -> pit.getPriceItemId().equals(0L)) + .filter(pit -> pit.getPriceItemId().equals(0L) + && pit.getAreaId().equals(area.getId())) .map(QuotationModelPriceItemArea::getAmount) .findFirst() .orElse(null) diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelConfigMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelConfigMapper.xml index a4232640..fa70696d 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelConfigMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelConfigMapper.xml @@ -12,20 +12,18 @@ LEFT JOIN dictionary_item di ON di.id=pm.module_id LEFT JOIN v_quotation_model_config qmc ON pm.batch_number=qmc.model_id WHERE pm.state=1 - - - AND pm.module_id=#{request.moduleId} - - - AND pm.series_number=#{request.seriesNumber} - - - AND pm.type_number=#{request.typeNumber} - - - AND pm.`no` like concat('%', #{request.no}, '%') - - + + AND pm.module_id=#{request.moduleId} + + + AND pm.series_number=#{request.seriesNumber} + + + AND pm.type_number=#{request.typeNumber} + + + AND pm.`no` like concat('%', #{request.no}, '%') + order by qmc.update_time desc,qmc.create_time desc,pm.id diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelDiscountMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelDiscountMapper.xml index b31c6f19..81716d59 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelDiscountMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelDiscountMapper.xml @@ -11,20 +11,18 @@ LEFT JOIN product_series ps ON pm.series_number=ps.batch_number AND ps.state=1 LEFT JOIN dictionary_item di ON di.id=pm.module_id WHERE pm.state=1 and qmd.discount_status=1 - - - AND pm.module_id=#{request.moduleId} - - - AND pm.series_number=#{request.seriesNumber} - - - AND pm.type_number=#{request.typeNumber} - - - AND pm.`no` like concat('%', #{request.no}, '%') - - + + AND pm.module_id=#{request.moduleId} + + + AND pm.series_number=#{request.seriesNumber} + + + AND pm.type_number=#{request.typeNumber} + + + AND pm.`no` like concat('%', #{request.no}, '%') + order by qmd.update_time desc,qmd.id desc diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelForbidMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelForbidMapper.xml index 15f6abd5..92ef4df6 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelForbidMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelForbidMapper.xml @@ -2,4 +2,25 @@ + diff --git a/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelPriceMapper.xml b/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelPriceMapper.xml index 632c32a7..4a72a7b6 100644 --- a/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelPriceMapper.xml +++ b/nflg-mobilebroken-repository/src/main/resources/mapper/QuotationModelPriceMapper.xml @@ -15,20 +15,18 @@ LEFT JOIN v_quotation_model_price qmp ON pm.batch_number=qmp.model_id LEFT JOIN quotation_model_config qmc2 ON qmc2.id=qmp.config_id WHERE pm.state=1 AND qmc1.config_status=1 - - - AND pm.module_id=#{request.moduleId} - - - AND pm.series_number=#{request.seriesNumber} - - - AND pm.type_number=#{request.typeNumber} - - - AND pm.`no` like concat('%', #{request.no}, '%') - - + + AND pm.module_id=#{request.moduleId} + + + AND pm.series_number=#{request.seriesNumber} + + + AND pm.type_number=#{request.typeNumber} + + + AND pm.`no` like concat('%', #{request.no}, '%') + order by qmp.price_status,qmp.update_time desc,pm.id