功能开发

master
sunjianxi 2 months ago
parent 871e66e24a
commit 86c9d710a8
  1. 10
      src/main/java/org/springblade/modules/jinchao/controller/ExchangeRateController.java
  2. 3
      src/main/java/org/springblade/modules/jinchao/controller/OrderController.java
  3. 1
      src/main/java/org/springblade/modules/jinchao/mapper/OrderMapper.xml
  4. 8
      src/main/java/org/springblade/modules/jinchao/mapper/WaterBillMapper.xml
  5. 6
      src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateEntity.java
  6. 6
      src/main/java/org/springblade/modules/jinchao/pojo/entity/ExchangeRateHistoryEntity.java
  7. 2
      src/main/java/org/springblade/modules/jinchao/service/IBizPriceService.java
  8. 19
      src/main/java/org/springblade/modules/jinchao/service/impl/BizPriceServiceImpl.java
  9. 4
      src/main/java/org/springblade/modules/jinchao/service/impl/ExchangeRateServiceImpl.java
  10. 43
      src/main/java/org/springblade/modules/jinchao/service/impl/OrderServiceImpl.java
  11. 49
      src/main/java/org/springblade/modules/jinchao/service/impl/ProductServiceImpl.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.<ExchangeRateEntity>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.<ExchangeRateEntity>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));
}

@ -239,7 +239,8 @@ public class OrderController extends BladeController {
@ApiOperationSupport(order = 5)
@Operation(summary = "获取模版年份", description = "获取模版")
public R selectTemplateYear() {
List<OrderEntity> orderList = orderService.list();
BladeUser user = AuthUtil.getUser();
List<OrderEntity> orderList = orderService.list(Wrappers.<OrderEntity>lambdaQuery().eq(BaseEntity::getCreateUser,user.getUserId()));
Set<String> yearSet = orderList.stream()
.filter(order -> StringUtils.isNotEmpty(order.getOrderDate()))
.map(order -> order.getOrderDate().substring(0,4))

@ -59,6 +59,7 @@
</if>
</where>
order by create_time desc
</select>

@ -20,7 +20,13 @@
<select id="selectWaterBillPage" resultMap="waterBillResultMap">
select * from jc_water_bill where is_deleted = 0
select * from jc_water_bill
<where>
is_deleted = 0
<if test="param2.orderId != null and param2.orderId != ''">
AND order_id = #{param2.orderId}
</if>
</where>
</select>

@ -75,4 +75,10 @@ public class ExchangeRateEntity extends TenantEntity {
@Schema(description = "修改人姓名")
private String updateUserName;
/**
* 备注
*/
@Schema(description = "备注")
private String remarks;
}

@ -93,4 +93,10 @@ public class ExchangeRateHistoryEntity extends TenantEntity {
@Schema(description = "修改人姓名")
private String updateUserName;
/**
* 备注
*/
@Schema(description = "备注")
private String remarks;
}

@ -62,7 +62,7 @@ public interface IBizPriceService extends BaseService<BizPriceEntity> {
R submit(BizPriceEntity e);
List<BizPriceEntity> listByProductId(Long productId);
List<BizPriceEntity> listByProductId(Long productId,Long customerId);
Integer deleteByProductId(Long productId);
}

@ -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<BizPriceMapper, BizPric
}
@Override
public List<BizPriceEntity> listByProductId(Long productId) {
return baseMapper.selectList(
new QueryWrapper<BizPriceEntity>()
.eq("product_id", productId)
);
public List<BizPriceEntity> listByProductId(Long productId,Long customerId) {
BladeUser user = AuthUtil.getUser();
LambdaQueryWrapper<BizPriceEntity> 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

@ -73,6 +73,7 @@ public class ExchangeRateServiceImpl extends BaseServiceImpl<ExchangeRateMapper,
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateRate(ExchangeRateEntity entity) {
BladeUser user = AuthUtil.getUser();
ExchangeRateEntity old = this.getById(entity.getId());
ExchangeRateHistoryEntity history = new ExchangeRateHistoryEntity();
history.setExchangeRateId(old.getId());
@ -82,8 +83,9 @@ public class ExchangeRateServiceImpl extends BaseServiceImpl<ExchangeRateMapper,
history.setTargetCurrency(old.getTargetCurrency());
history.setRateOld(old.getRate());
history.setRate(entity.getRate());
history.setRemarks(entity.getRemarks());
history.setCreateUserName(user.getUserName());
exchangeRateHistoryService.save(history);
BladeUser user = AuthUtil.getUser();
entity.setUpdateUser(user.getUserId());
entity.setUpdateUserName(user.getNickName());
entity.setUpdateTime(new Date());

@ -71,7 +71,7 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
@Override
public IPage<OrderVO> selectOrderPage(IPage<OrderVO> 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<OrderMapper, OrderEntity>
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<OrderProjectEntity> orderProjectEntityList = order.getProjectList();
@ -121,32 +121,37 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
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<OrderProjectEntity> 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<OrderProjectProductEntity> orderProjectProductEntityList = project.getProductList();
for(OrderProjectProductEntity product : orderProjectProductEntityList){
if(product.getId() != null){
OrderProjectProductEntity oldProduct = orderProjectProductService.getById(product.getId());
//修改之前版本状态
product.setStatus(9999);
product.setUpdateTime(date);
orderProjectProductService.updateById(product);
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<OrderMapper, OrderEntity>
project.setProductList(productList);
});
order.setProjectList(projectList);
List<OrderExtraChargeEntity> chargeList = orderExtraChargeService.list(Wrappers.<OrderExtraChargeEntity>lambdaQuery().eq(OrderExtraChargeEntity::getOrderId,order.getId()));
order.setExtraChargeList(chargeList);
return order;
}
@ -239,7 +246,8 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
}
List<OrderEntity> 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<WaterBillEntity> waterBillList = waterBillService.list(Wrappers.<WaterBillEntity>lambdaQuery().eq(WaterBillEntity::getOrderId,item.getId()));
if(CollectionUtils.isNotEmpty(waterBillList)){
item.setIsWaterBill("1");
@ -281,8 +289,9 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
@Override
public Map<String,List<OrderProjectEntity>> selectTemplate(String year) {
BladeUser user = AuthUtil.getUser();
Map<String,List<OrderProjectEntity>> map = new HashMap<>();
List<OrderEntity> orderList = this.list(Wrappers.<OrderEntity>lambdaQuery().like(OrderEntity::getOrderDate,year).eq(BaseEntity::getStatus,CommonEnum.STATUS_5.getCode()));
List<OrderEntity> orderList = this.list(Wrappers.<OrderEntity>lambdaQuery().like(OrderEntity::getOrderDate,year).eq(BaseEntity::getStatus,CommonEnum.STATUS_5.getCode()).eq(BaseEntity::getCreateUser,user.getUserId()));
Map<String,List<OrderEntity>> orderMap = orderList.stream().collect(Collectors.groupingBy(item -> item.getOrderDate().substring(5,7)));
Map<String, List<OrderEntity>> sortMap = orderMap.entrySet().stream()
// 按 key(月份)倒序排序(Comparator.reverseOrder())

@ -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<ProductMapper, ProductEn
@Override
public R<IPage<ProductVO>> list(Map<String, Object> 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<RelCatalogProductEntity> pageRel = relCatalogProductService.page(
Condition.getPage(query),
Condition.getQueryWrapper(map, RelCatalogProductEntity.class)
.eq("catalog_id", catalogId)
.orderByAsc("product_id")
Wrappers.<RelCatalogProductEntity>lambdaQuery()
.eq(RelCatalogProductEntity::getCatalogId,catalogId)
.orderByAsc(RelCatalogProductEntity::getProductId)
);
List<ProductVO> listVO = new ArrayList<>();
pageRel.getRecords().forEach(rel -> {
@ -156,11 +158,14 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
// 默认
vo1.setBizType(ProductConst.BIZ_TYPE_PRICE_STANDARD);
// TYPE_PRICE_CUSTOM 数据是拼接上的
long count = bizPriceService.count(
new QueryWrapper<BizPriceEntity>().eq(BizPriceEntity.COL_PRODUCT_ID, vo1.getId())
);
LambdaQueryWrapper<BizPriceEntity> 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<BizPriceEntity> listBP = bizPriceService.listByProductId(vo1.getId());
List<BizPriceEntity> 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<ProductMapper, ProductEn
// 特定价
vo2.setBizType(ProductConst.BIZ_TYPE_PRICE_CUSTOM);
vo2.setBizPriceId(bp.getId());
vo2.setStandardPrice(bp.getBizPrice());
//
CustomerEntity customer = customerService.getById(bp.getCustomerId());
if (customer != null) {
@ -192,6 +198,35 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
log.info("not contain.");
}
}
//筛选
if(map.get("nameCn") != null || map.get("bizRemark") != null){
IPage<ProductVO> pagesVO1 = Condition.getPage(query);
List<ProductVO> list = pagesVO.getRecords();
Iterator<ProductVO> 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);
}

Loading…
Cancel
Save