feat(quotation): 添加动态表格功能和直销系数查询接口
- 新增 DynamicTableVO 类用于动态表格数据传输 - 在 IQuotationModelRatioDirectItemService 中添加 getEffectiveByUser 方法 - 更新 QuotationModelPriceMapper.xml 查询字段 - 在 QuotationModelRatioDirectItemMapper 中添加 getEffectiveByUser 方法 - 实现 QuotationModelRatioDirectItemMapper.xml 的 getEffectiveByUser 查询 - 完成 QuotationModelRatioDirectItemServiceImpl 的 getEffectiveByUser 实现 - 新增 QuotationModelRatioVO 类用于报价模型系数视图 - 修改 RatioAgentController 使用转换器返回 QuotationModelRatioVO - 更新 RatioAgentSearchVO 的 info 字段类型为 QuotationModelRatioVO - 在 RatioDirectController 中添加动态表头、搜索和数据获取接口 - 修改 RatioDirectEffectiveDTO 的 modelId 类型为 Long - 新增 UserModelPriceDTO 类用于用户机型价格数据传输
This commit is contained in:
parent
1a0cc2ff19
commit
d22b190083
|
|
@ -10,7 +10,7 @@ public class RatioDirectEffectiveDTO {
|
||||||
/**
|
/**
|
||||||
* 机型id
|
* 机型id
|
||||||
*/
|
*/
|
||||||
private Integer modelId;
|
private Long modelId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 用户id
|
* 用户id
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
package com.nflg.mobilebroken.common.pojo.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class UserModelPriceDTO {
|
||||||
|
|
||||||
|
private Integer userId;
|
||||||
|
|
||||||
|
private Long modelId;
|
||||||
|
|
||||||
|
private BigDecimal price;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
package com.nflg.mobilebroken.common.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DynamicTableVO {
|
||||||
|
|
||||||
|
private List<DynamicHeaderVO> headers=new ArrayList<>();
|
||||||
|
|
||||||
|
private List<Map<String,Object>> datas=new ArrayList<>();
|
||||||
|
}
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
package com.nflg.mobilebroken.quotation.controller.admin;
|
package com.nflg.mobilebroken.quotation.controller.admin;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
|
@ -13,6 +14,7 @@ import com.nflg.mobilebroken.common.pojo.vo.ModelPriceVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ProductModelSimpleVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ProductModelSimpleVO;
|
||||||
import com.nflg.mobilebroken.common.util.*;
|
import com.nflg.mobilebroken.common.util.*;
|
||||||
import com.nflg.mobilebroken.quotation.controller.ControllerBase;
|
import com.nflg.mobilebroken.quotation.controller.ControllerBase;
|
||||||
|
import com.nflg.mobilebroken.quotation.pojo.vo.QuotationModelRatioVO;
|
||||||
import com.nflg.mobilebroken.quotation.pojo.vo.RatioAgentSearchVO;
|
import com.nflg.mobilebroken.quotation.pojo.vo.RatioAgentSearchVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.*;
|
import com.nflg.mobilebroken.repository.entity.*;
|
||||||
import com.nflg.mobilebroken.repository.service.*;
|
import com.nflg.mobilebroken.repository.service.*;
|
||||||
|
|
@ -124,7 +126,7 @@ public class RatioAgentController extends ControllerBase {
|
||||||
QuotationModelRatioAgent ratioAgent = ratioAgentService.lambdaQuery()
|
QuotationModelRatioAgent ratioAgent = ratioAgentService.lambdaQuery()
|
||||||
.eq(QuotationModelRatioAgent::getStatus, 1)
|
.eq(QuotationModelRatioAgent::getStatus, 1)
|
||||||
.one();
|
.one();
|
||||||
vo.setInfo(ratioAgent);
|
vo.setInfo(Convert.convert(QuotationModelRatioVO.class,ratioAgent));
|
||||||
IPage<ProductModelSimpleVO> pdatas = ratioAgentService.search(request);
|
IPage<ProductModelSimpleVO> pdatas = ratioAgentService.search(request);
|
||||||
if (CollectionUtil.isEmpty(pdatas.getRecords())) {
|
if (CollectionUtil.isEmpty(pdatas.getRecords())) {
|
||||||
vo.setPageData(PageData.empty());
|
vo.setPageData(PageData.empty());
|
||||||
|
|
|
||||||
|
|
@ -4,25 +4,24 @@ import cn.hutool.core.collection.CollectionUtil;
|
||||||
import com.nflg.mobilebroken.common.constant.Constant;
|
import com.nflg.mobilebroken.common.constant.Constant;
|
||||||
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
import com.nflg.mobilebroken.common.pojo.ApiResult;
|
||||||
import com.nflg.mobilebroken.common.pojo.dto.RatioDirectEffectiveDTO;
|
import com.nflg.mobilebroken.common.pojo.dto.RatioDirectEffectiveDTO;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.dto.UserModelPriceDTO;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.request.ModelConfigSearchRequest;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.DynamicHeaderVO;
|
import com.nflg.mobilebroken.common.pojo.vo.DynamicHeaderVO;
|
||||||
|
import com.nflg.mobilebroken.common.pojo.vo.DynamicTableVO;
|
||||||
import com.nflg.mobilebroken.common.pojo.vo.ModelPriceVO;
|
import com.nflg.mobilebroken.common.pojo.vo.ModelPriceVO;
|
||||||
|
import com.nflg.mobilebroken.common.util.AdminUserUtil;
|
||||||
|
import com.nflg.mobilebroken.common.util.NumberUtil;
|
||||||
import com.nflg.mobilebroken.quotation.controller.ControllerBase;
|
import com.nflg.mobilebroken.quotation.controller.ControllerBase;
|
||||||
import com.nflg.mobilebroken.repository.entity.AdminUser;
|
import com.nflg.mobilebroken.quotation.pojo.vo.RatioAgentSearchVO;
|
||||||
import com.nflg.mobilebroken.repository.entity.DictionaryItem;
|
import com.nflg.mobilebroken.repository.entity.*;
|
||||||
import com.nflg.mobilebroken.repository.entity.TBaseDepartment;
|
|
||||||
import com.nflg.mobilebroken.repository.service.*;
|
import com.nflg.mobilebroken.repository.service.*;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.Valid;
|
||||||
import javax.validation.constraints.NotEmpty;
|
import javax.validation.constraints.NotEmpty;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -47,59 +46,207 @@ public class RatioDirectController extends ControllerBase {
|
||||||
@Resource
|
@Resource
|
||||||
private IQuotationModelRatioDirectService ratioDirectService;
|
private IQuotationModelRatioDirectService ratioDirectService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IQuotationModelRatioDirectItemService ratioDirectItemService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IProductModelService productModelService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取动态表头
|
* 获取动态表头
|
||||||
|
*/
|
||||||
|
@GetMapping("/headers")
|
||||||
|
public ApiResult<List<DynamicHeaderVO>> getHeaders() {
|
||||||
|
List<DynamicHeaderVO> vos = new ArrayList<>();
|
||||||
|
vos.add(new DynamicHeaderVO()
|
||||||
|
.setProp("adminUser")
|
||||||
|
.setLabel("员工姓名")
|
||||||
|
.setChildren(new ArrayList<>() {
|
||||||
|
{
|
||||||
|
add(new DynamicHeaderVO().setProp("modelNo").setLabel("机型"));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
);
|
||||||
|
List<QuotationModelRatioDirectItem> items = ratioDirectItemService.getEffectiveByUser(AdminUserUtil.getUserId());
|
||||||
|
if (CollectionUtil.isEmpty(items)) {
|
||||||
|
return ApiResult.success(vos);
|
||||||
|
}
|
||||||
|
List<AdminUser> users = adminUserService.lambdaQuery()
|
||||||
|
.in(AdminUser::getId, items.stream().map(QuotationModelRatioDirectItem::getUserId).collect(Collectors.toSet()))
|
||||||
|
.list();
|
||||||
|
List<DictionaryItem> categories = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_DIRECT_SALES_CATEGORY);
|
||||||
|
List<TBaseDepartment> departments = departmentService.list();
|
||||||
|
vos.addAll(
|
||||||
|
users.stream()
|
||||||
|
.map(user -> new DynamicHeaderVO()
|
||||||
|
.setProp(user.getId().toString())
|
||||||
|
.setLabel(user.getUserName() + getDepartmentName(
|
||||||
|
departments.stream()
|
||||||
|
.filter(d -> d.getId().equals(user.getDepartmentId()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.setChildren(
|
||||||
|
new ArrayList<>() {
|
||||||
|
{
|
||||||
|
add(new DynamicHeaderVO()
|
||||||
|
.setProp(user.getId() + "standardPrice")
|
||||||
|
.setLabel("标配价" + getCategoryName(
|
||||||
|
categories.stream()
|
||||||
|
.filter(c -> c.getId().equals(user.getCategoryId()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
add(new DynamicHeaderVO()
|
||||||
|
.setProp(user.getId() + "standardRatio")
|
||||||
|
.setLabel("标配系数")
|
||||||
|
);
|
||||||
|
add(new DynamicHeaderVO()
|
||||||
|
.setProp(user.getId() + "optionalRatio")
|
||||||
|
.setLabel("选配系数")
|
||||||
|
);
|
||||||
|
add(new DynamicHeaderVO()
|
||||||
|
.setProp(user.getId() + "salePrice")
|
||||||
|
.setLabel("市场价" + getCategoryName(
|
||||||
|
categories.stream()
|
||||||
|
.filter(c -> c.getId().equals(user.getCategoryId()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.collect(Collectors.toList())
|
||||||
|
);
|
||||||
|
return ApiResult.success(vos);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 搜索
|
||||||
|
*/
|
||||||
|
@PostMapping("/search")
|
||||||
|
public ApiResult<RatioAgentSearchVO> search(@Valid @RequestBody ModelConfigSearchRequest request) {
|
||||||
|
QuotationModelRatioDirect ratioAgent = ratioDirectService.lambdaQuery()
|
||||||
|
.eq(QuotationModelRatioDirect::getStatus, 1)
|
||||||
|
.one();
|
||||||
|
List<QuotationModelRatioDirectItem> items = ratioDirectItemService.getEffectiveByUser(AdminUserUtil.getUserId());
|
||||||
|
// if (CollectionUtil.isEmpty(items)){
|
||||||
|
// return ApiResult.success(vos);
|
||||||
|
// }
|
||||||
|
return ApiResult.success(new RatioAgentSearchVO());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取动态数据
|
||||||
* @param userIds 用户id列表
|
* @param userIds 用户id列表
|
||||||
*/
|
*/
|
||||||
@GetMapping("/header")
|
@GetMapping("/getDatas")
|
||||||
public ApiResult<List<DynamicHeaderVO>> getHeaders(@RequestBody @NotEmpty List<Integer> userIds) {
|
public ApiResult<DynamicTableVO> getDatas(@RequestBody @NotEmpty List<Integer> userIds) {
|
||||||
List<AdminUser> users = adminUserService.lambdaQuery().in(AdminUser::getId, userIds).list();
|
List<AdminUser> users = adminUserService.lambdaQuery().in(AdminUser::getId, userIds).list();
|
||||||
if (CollectionUtil.isEmpty(users)) {
|
if (CollectionUtil.isEmpty(users)) {
|
||||||
return ApiResult.success(Collections.emptyList());
|
return ApiResult.success(new DynamicTableVO());
|
||||||
}
|
}
|
||||||
List<DictionaryItem> categories = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_DIRECT_SALES_CATEGORY);
|
List<DictionaryItem> categories = dictionaryItemService.getListByDictionaryCode(Constant.DICTIONARY_DIRECT_SALES_CATEGORY);
|
||||||
List<TBaseDepartment> departments = departmentService.list();
|
List<TBaseDepartment> departments = departmentService.list();
|
||||||
List<RatioDirectEffectiveDTO> ratioDirects=ratioDirectService.getEffectives();
|
List<RatioDirectEffectiveDTO> ratioDirects = ratioDirectService.getEffectives();
|
||||||
List<ModelPriceVO> prices = priceService.getAllModelPrice();
|
List<ModelPriceVO> prices = priceService.getAllModelPrice();
|
||||||
return ApiResult.success(users.stream()
|
DynamicTableVO vo = new DynamicTableVO();
|
||||||
.map(user -> new DynamicHeaderVO()
|
vo.setHeaders(
|
||||||
.setProp(user.getId().toString())
|
users.stream()
|
||||||
.setLabel(user.getUserName() + getDepartmentName(
|
.map(user -> new DynamicHeaderVO()
|
||||||
departments.stream()
|
.setProp(user.getId().toString())
|
||||||
.filter(d -> d.getId().equals(user.getDepartmentId()))
|
.setLabel(user.getUserName() + getDepartmentName(
|
||||||
.findFirst()
|
departments.stream()
|
||||||
.orElse(null)
|
.filter(d -> d.getId().equals(user.getDepartmentId()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
.setChildren(
|
||||||
|
new ArrayList<>() {
|
||||||
|
{
|
||||||
|
add(new DynamicHeaderVO()
|
||||||
|
.setProp(user.getId() + "standardPrice")
|
||||||
|
.setLabel("标配价" + getCategoryName(
|
||||||
|
categories.stream()
|
||||||
|
.filter(c -> c.getId().equals(user.getCategoryId()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
.setChildren(
|
.collect(Collectors.toList())
|
||||||
new ArrayList<>() {
|
|
||||||
{
|
|
||||||
add(new DynamicHeaderVO()
|
|
||||||
.setProp(user.getId() + "standardPrice")
|
|
||||||
.setLabel("标配价" + getCategoryName(
|
|
||||||
categories.stream()
|
|
||||||
.filter(c -> c.getId().equals(user.getCategoryId()))
|
|
||||||
.findFirst()
|
|
||||||
.orElse(null)
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
)
|
|
||||||
.collect(Collectors.toList())
|
|
||||||
);
|
);
|
||||||
|
List<UserModelPriceDTO> userPrices = new ArrayList<>();
|
||||||
|
productModelService.lambdaQuery()
|
||||||
|
.select(ProductModel::getBatchNumber)
|
||||||
|
.eq(ProductModel::getState, 1)
|
||||||
|
.list()
|
||||||
|
.stream()
|
||||||
|
.map(ProductModel::getBatchNumber)
|
||||||
|
.collect(Collectors.toList())
|
||||||
|
.forEach(modelId -> {
|
||||||
|
Map<String, Object> data = new HashMap<>();
|
||||||
|
users.forEach(user -> {
|
||||||
|
data.put(user.getId() + "-standardPrice", getUserStandardPrice(modelId, user, users, ratioDirects, prices, userPrices));
|
||||||
|
});
|
||||||
|
vo.getDatas().add(data);
|
||||||
|
});
|
||||||
|
return ApiResult.success(vo);
|
||||||
}
|
}
|
||||||
|
|
||||||
private BigDecimal getUserStandardPrice(Integer userId,List<RatioDirectEffectiveDTO> ratioDirects,List<ModelPriceVO> prices){
|
private BigDecimal getUserStandardPrice(Long modelId, AdminUser user, List<AdminUser> users, List<RatioDirectEffectiveDTO> ratioDirects
|
||||||
RatioDirectEffectiveDTO ratioDirect = ratioDirects.stream()
|
, List<ModelPriceVO> prices, List<UserModelPriceDTO> userPrices) {
|
||||||
.filter(r -> r.getUserId().equals(userId))
|
UserModelPriceDTO userPrice = userPrices.stream()
|
||||||
|
.filter(p -> p.getUserId().equals(user.getId()) && p.getModelId().equals(modelId))
|
||||||
.findFirst()
|
.findFirst()
|
||||||
.orElse(null);
|
.orElse(null);
|
||||||
if (Objects.isNull(ratioDirect)){
|
if (Objects.isNull(userPrice)) {
|
||||||
return BigDecimal.ZERO;
|
RatioDirectEffectiveDTO ratioDirect = ratioDirects.stream()
|
||||||
|
.filter(r -> r.getUserId().equals(user.getId()) && r.getModelId().equals(modelId))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
if (Objects.isNull(ratioDirect)) {
|
||||||
|
BigDecimal price = prices.stream()
|
||||||
|
.filter(p -> p.getModelId().equals(modelId) && p.getAreaId().equals(user.getCategoryId()))
|
||||||
|
.findFirst()
|
||||||
|
.map(ModelPriceVO::getAmount)
|
||||||
|
.orElse(null);
|
||||||
|
userPrices.add(new UserModelPriceDTO().setUserId(user.getId()).setModelId(modelId).setPrice(price));
|
||||||
|
return price;
|
||||||
|
} else {
|
||||||
|
AdminUser parentUser = users.stream()
|
||||||
|
.filter(u -> u.getId().equals(ratioDirect.getParentUserId()))
|
||||||
|
.findFirst()
|
||||||
|
.orElse(null);
|
||||||
|
if (Objects.isNull(parentUser)) {
|
||||||
|
userPrices.add(new UserModelPriceDTO().setUserId(user.getId()).setModelId(modelId).setPrice(null));
|
||||||
|
BigDecimal price = prices.stream()
|
||||||
|
.filter(p -> p.getModelId().equals(modelId) && p.getAreaId().equals(user.getCategoryId()))
|
||||||
|
.findFirst()
|
||||||
|
.map(ModelPriceVO::getAmount)
|
||||||
|
.orElse(null);
|
||||||
|
userPrices.add(new UserModelPriceDTO().setUserId(user.getId()).setModelId(modelId).setPrice(price));
|
||||||
|
return price;
|
||||||
|
} else {
|
||||||
|
BigDecimal parentPrice = getUserStandardPrice(modelId, parentUser, users, ratioDirects, prices, userPrices);
|
||||||
|
BigDecimal price = NumberUtil.multiply(parentPrice, ratioDirect.getStandardRatio());
|
||||||
|
userPrices.add(new UserModelPriceDTO().setUserId(user.getId()).setModelId(modelId).setPrice(price));
|
||||||
|
return price;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return userPrice.getPrice();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package com.nflg.mobilebroken.quotation.pojo.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class QuotationModelRatioVO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 年份
|
||||||
|
*/
|
||||||
|
private String year;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 版本号
|
||||||
|
*/
|
||||||
|
private String version;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建人
|
||||||
|
*/
|
||||||
|
private String createBy;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
}
|
||||||
|
|
@ -11,7 +11,7 @@ import java.util.Map;
|
||||||
@Accessors(chain = true)
|
@Accessors(chain = true)
|
||||||
public class RatioAgentSearchVO {
|
public class RatioAgentSearchVO {
|
||||||
|
|
||||||
private QuotationModelRatioAgent info;
|
private QuotationModelRatioVO info;
|
||||||
|
|
||||||
private PageData<Map<String, Object>> pageData;
|
private PageData<Map<String, Object>> pageData;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.nflg.mobilebroken.repository.mapper;
|
||||||
import com.nflg.mobilebroken.repository.entity.QuotationModelRatioDirectItem;
|
import com.nflg.mobilebroken.repository.entity.QuotationModelRatioDirectItem;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 报价-直销系数-子项 Mapper 接口
|
* 报价-直销系数-子项 Mapper 接口
|
||||||
|
|
@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
*/
|
*/
|
||||||
public interface QuotationModelRatioDirectItemMapper extends BaseMapper<QuotationModelRatioDirectItem> {
|
public interface QuotationModelRatioDirectItemMapper extends BaseMapper<QuotationModelRatioDirectItem> {
|
||||||
|
|
||||||
|
List<QuotationModelRatioDirectItem> getEffectiveByUser(Integer userId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,8 @@ package com.nflg.mobilebroken.repository.service;
|
||||||
import com.nflg.mobilebroken.repository.entity.QuotationModelRatioDirectItem;
|
import com.nflg.mobilebroken.repository.entity.QuotationModelRatioDirectItem;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 报价-直销系数-子项 服务类
|
* 报价-直销系数-子项 服务类
|
||||||
|
|
@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
*/
|
*/
|
||||||
public interface IQuotationModelRatioDirectItemService extends IService<QuotationModelRatioDirectItem> {
|
public interface IQuotationModelRatioDirectItemService extends IService<QuotationModelRatioDirectItem> {
|
||||||
|
|
||||||
|
List<QuotationModelRatioDirectItem> getEffectiveByUser(Integer userId);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,8 @@ import com.nflg.mobilebroken.repository.service.IQuotationModelRatioDirectItemSe
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 报价-直销系数-子项 服务实现类
|
* 报价-直销系数-子项 服务实现类
|
||||||
|
|
@ -17,4 +19,8 @@ import org.springframework.stereotype.Service;
|
||||||
@Service
|
@Service
|
||||||
public class QuotationModelRatioDirectItemServiceImpl extends ServiceImpl<QuotationModelRatioDirectItemMapper, QuotationModelRatioDirectItem> implements IQuotationModelRatioDirectItemService {
|
public class QuotationModelRatioDirectItemServiceImpl extends ServiceImpl<QuotationModelRatioDirectItemMapper, QuotationModelRatioDirectItem> implements IQuotationModelRatioDirectItemService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<QuotationModelRatioDirectItem> getEffectiveByUser(Integer userId) {
|
||||||
|
return baseMapper.getEffectiveByUser(userId);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@
|
||||||
<mapper namespace="com.nflg.mobilebroken.repository.mapper.QuotationModelPriceMapper">
|
<mapper namespace="com.nflg.mobilebroken.repository.mapper.QuotationModelPriceMapper">
|
||||||
|
|
||||||
<select id="search" resultType="com.nflg.mobilebroken.common.pojo.vo.ModelPriceConfigVO">
|
<select id="search" resultType="com.nflg.mobilebroken.common.pojo.vo.ModelPriceConfigVO">
|
||||||
SELECT qmp.id,pm.batch_number as 'modelId',qmp.id as 'priceId',pm.`no` as 'partName',qmp.price_version
|
SELECT pm.batch_number as 'modelId',qmp.id as 'priceId',pm.`no` as 'partName',qmp.price_version
|
||||||
,qmp.price_status,qmp.update_by,qmp.update_time
|
,qmp.price_status,qmp.update_by,qmp.update_time
|
||||||
,if(qmp.price_status=1,qmc2.config_version,qmc1.config_version) as 'configVersion'
|
,if(qmp.price_status=1,qmc2.config_version,qmc1.config_version) as 'configVersion'
|
||||||
,if(qmp.price_status=1,qmc2.id,qmc1.id) as 'configId'
|
,if(qmp.price_status=1,qmc2.id,qmc1.id) as 'configId'
|
||||||
|
|
|
||||||
|
|
@ -2,4 +2,10 @@
|
||||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="com.nflg.mobilebroken.repository.mapper.QuotationModelRatioDirectItemMapper">
|
<mapper namespace="com.nflg.mobilebroken.repository.mapper.QuotationModelRatioDirectItemMapper">
|
||||||
|
|
||||||
|
<select id="getEffectiveByUser" resultType="com.nflg.mobilebroken.repository.entity.QuotationModelRatioDirectItem">
|
||||||
|
SELECT qmrdi.*
|
||||||
|
FROM quotation_model_ratio_direct_item qmrdi
|
||||||
|
INNER JOIN quotation_model_ratio_direct qmrd ON qmrdi.ratio_id=qmrd.id
|
||||||
|
WHERE qmrd.`status`=1 AND qmrd.create_by_id=#{userId}
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue