功能开发

master
sunjianxi 2 months ago
parent 86c9d710a8
commit 4d4ea15660
  1. 2
      src/main/java/org/springblade/modules/jinchao/controller/ExchangeRateController.java
  2. 3
      src/main/java/org/springblade/modules/jinchao/controller/OrderController.java
  3. 6
      src/main/java/org/springblade/modules/jinchao/controller/WaterBillController.java
  4. 2
      src/main/java/org/springblade/modules/jinchao/mapper/CustomerMapper.java
  5. 11
      src/main/java/org/springblade/modules/jinchao/mapper/CustomerMapper.xml
  6. 2
      src/main/java/org/springblade/modules/jinchao/mapper/ExchangeRateHistoryMapper.xml
  7. 1
      src/main/java/org/springblade/modules/jinchao/mapper/ProductHistoryMapper.xml
  8. 6
      src/main/java/org/springblade/modules/jinchao/mapper/ProductMapper.xml
  9. 10
      src/main/java/org/springblade/modules/jinchao/pojo/entity/CustomerEntity.java
  10. 7
      src/main/java/org/springblade/modules/jinchao/pojo/entity/OrderEntity.java
  11. 5
      src/main/java/org/springblade/modules/jinchao/pojo/vo/CustomerVO.java
  12. 67
      src/main/java/org/springblade/modules/jinchao/service/impl/CustomerServiceImpl.java
  13. 11
      src/main/java/org/springblade/modules/jinchao/service/impl/ExchangeRateServiceImpl.java
  14. 42
      src/main/java/org/springblade/modules/jinchao/service/impl/OrderServiceImpl.java
  15. 14
      src/main/java/org/springblade/modules/jinchao/service/impl/ProductServiceImpl.java
  16. 4
      src/main/java/org/springblade/modules/jinchao/service/impl/RemittanceRecordServiceImpl.java
  17. 16
      src/main/java/org/springblade/modules/system/controller/DeptController.java
  18. 2
      src/main/java/org/springblade/modules/system/controller/PostController.java
  19. 2
      src/main/java/org/springblade/modules/system/controller/RoleController.java
  20. 10
      src/main/java/org/springblade/modules/system/controller/UserController.java

@ -118,7 +118,7 @@ public class ExchangeRateController extends BladeController {
} }
BladeUser user = AuthUtil.getUser(); BladeUser user = AuthUtil.getUser();
exchangeRate.setUpdateUser(user.getUserId()); exchangeRate.setUpdateUser(user.getUserId());
exchangeRate.setUpdateUserName(user.getNickName()); exchangeRate.setUpdateUserName(user.getUserName());
exchangeRate.setUpdateTime(new Date()); exchangeRate.setUpdateTime(new Date());
return R.status(exchangeRateService.save(exchangeRate)); return R.status(exchangeRateService.save(exchangeRate));
} }

@ -57,6 +57,8 @@ import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.tool.utils.DateUtil; import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.excel.util.ExcelUtil; import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.tool.constant.BladeConstant; import org.springblade.core.tool.constant.BladeConstant;
import java.util.Date;
import java.util.Map; import java.util.Map;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -137,6 +139,7 @@ public class OrderController extends BladeController {
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
@Operation(summary = "修改", description = "传入order") @Operation(summary = "修改", description = "传入order")
public R update(@Valid @RequestBody OrderEntity order) { public R update(@Valid @RequestBody OrderEntity order) {
order.setUpdateTime(new Date());
return R.status(orderService.updateById(order)); return R.status(orderService.updateById(order));
} }

@ -43,8 +43,10 @@ import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R; import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.modules.jinchao.excel.WaterBillExcel; import org.springblade.modules.jinchao.excel.WaterBillExcel;
import org.springblade.modules.jinchao.pojo.entity.OrderEntity;
import org.springblade.modules.jinchao.pojo.entity.WaterBillEntity; import org.springblade.modules.jinchao.pojo.entity.WaterBillEntity;
import org.springblade.modules.jinchao.pojo.vo.WaterBillVO; import org.springblade.modules.jinchao.pojo.vo.WaterBillVO;
import org.springblade.modules.jinchao.service.IOrderService;
import org.springblade.modules.jinchao.service.IWaterBillService; import org.springblade.modules.jinchao.service.IWaterBillService;
import org.springblade.modules.jinchao.wrapper.WaterBillWrapper; import org.springblade.modules.jinchao.wrapper.WaterBillWrapper;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@ -71,6 +73,7 @@ import jakarta.servlet.http.HttpServletResponse;
public class WaterBillController extends BladeController { public class WaterBillController extends BladeController {
private final IWaterBillService waterBillService; private final IWaterBillService waterBillService;
private final IOrderService orderService;
/** /**
* 水单表 详情 * 水单表 详情
@ -111,6 +114,9 @@ public class WaterBillController extends BladeController {
@ApiOperationSupport(order = 4) @ApiOperationSupport(order = 4)
@Operation(summary = "新增", description = "传入waterBill") @Operation(summary = "新增", description = "传入waterBill")
public R save(@Valid @RequestBody WaterBillEntity waterBill) { public R save(@Valid @RequestBody WaterBillEntity waterBill) {
OrderEntity order = orderService.getById(waterBill.getOrderId());
order.setIsWaterBill("1");
orderService.updateById(order);
waterBill.setCreateUserName(AuthUtil.getUser().getNickName()); waterBill.setCreateUserName(AuthUtil.getUser().getNickName());
return R.status(waterBillService.save(waterBill)); return R.status(waterBillService.save(waterBill));
} }

@ -69,4 +69,6 @@ public interface CustomerMapper extends BaseMapper<CustomerEntity> {
* @return * @return
*/ */
List<CustomerVO> searchPage(IPage page, @Param("q") CustomerSearch search); List<CustomerVO> searchPage(IPage page, @Param("q") CustomerSearch search);
String getMaxCode(@Param("code") String code,@Param("createUser") Long createUser);
} }

@ -85,4 +85,15 @@
ORDER BY c.id ASC, ORDER BY c.id ASC,
c.update_time DESC c.update_time DESC
</select> </select>
<select id="getMaxCode" resultType="java.lang.String">
SELECT
max( CODE )
FROM
jc_customer
WHERE
create_user = #{createUser}
and code like concat('%',#{code},'%')
</select>
</mapper> </mapper>

@ -37,7 +37,7 @@
AND target_currency = #{param2.targetCurrency} AND target_currency = #{param2.targetCurrency}
</if> </if>
</where> </where>
order by create_time desc
</select> </select>

@ -26,6 +26,7 @@
AND product_id = #{param2.productId} AND product_id = #{param2.productId}
</if> </if>
</where> </where>
order by create_time desc
</select> </select>

@ -55,6 +55,12 @@
<if test="product.endTime !=null and product.endTime != ''"> <if test="product.endTime !=null and product.endTime != ''">
and a.update_time <![CDATA[ <= ]]> #{product.endTime} and a.update_time <![CDATA[ <= ]]> #{product.endTime}
</if> </if>
<if test="product.catalogOne !=null and product.catalogOne != ''">
and d.NAME like concat('%',#{product.catalogOne},'%')
</if>
<if test="product.catalogTwo !=null and product.catalogTwo != ''">
and c.NAME like concat('%',#{product.catalogTwo},'%')
</if>
</where> </where>
</select> </select>

@ -25,6 +25,7 @@
*/ */
package org.springblade.modules.jinchao.pojo.entity; package org.springblade.modules.jinchao.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import lombok.Data; import lombok.Data;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
@ -51,7 +52,7 @@ public class CustomerEntity extends TenantEntity {
* 客户公司编号 * 客户公司编号
*/ */
@Schema(description = "客户公司编号") @Schema(description = "客户公司编号")
private Long code; private String code;
/** /**
* [客户]类型 * [客户]类型
*/ */
@ -92,4 +93,11 @@ public class CustomerEntity extends TenantEntity {
*/ */
@Schema(description = "最后一个[订单]id") @Schema(description = "最后一个[订单]id")
private Long lastOrderId; private Long lastOrderId;
/**
* 所属国家名称
*/
@Schema(description = "所属国家名称")
@TableField(exist = false)
private String countryName;
} }

@ -157,7 +157,6 @@ public class OrderEntity extends TenantEntity {
@TableField(exist = false) @TableField(exist = false)
private String paidRate; private String paidRate;
@TableField(exist = false)
private String isWaterBill; private String isWaterBill;
/** /**
@ -178,5 +177,11 @@ public class OrderEntity extends TenantEntity {
@Schema(description = "提成金额") @Schema(description = "提成金额")
private BigDecimal commissionPrice; private BigDecimal commissionPrice;
/**
* 合同金额
*/
@Schema(description = "合同金额")
private BigDecimal contractPrice;
} }

@ -76,11 +76,10 @@ public class CustomerVO extends CustomerEntity {
* 最近订单状态 * 最近订单状态
*/ */
@Schema(description = "最近订单状态") @Schema(description = "最近订单状态")
private String lastOrderStatusValue = "6--12months"; private String lastOrderStatusValue;
/** /**
* 最近成交时间 * 最近成交时间
*/ */
@Schema(description = "最近成交时间") @Schema(description = "最近成交时间")
private LocalDateTime lastOrderDealDateTime = LocalDateTime. private String lastOrderDealDateTime;
of(2025, 12, 5, 14, 30, 25);
} }

@ -26,14 +26,23 @@
package org.springblade.modules.jinchao.service.impl; package org.springblade.modules.jinchao.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.time.DateFormatUtils;
import org.springblade.common.enums.CommonEnum;
import org.springblade.core.mp.base.BaseEntity;
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.api.R;
import org.springblade.modules.jinchao.constant.BaseCol; import org.springblade.modules.jinchao.constant.BaseCol;
import org.springblade.modules.jinchao.constant.ContactConst; import org.springblade.modules.jinchao.constant.ContactConst;
import org.springblade.modules.jinchao.mapper.OrderMapper;
import org.springblade.modules.jinchao.pojo.entity.ContactEntity; import org.springblade.modules.jinchao.pojo.entity.ContactEntity;
import org.springblade.modules.jinchao.pojo.entity.CustomerEntity; import org.springblade.modules.jinchao.pojo.entity.CustomerEntity;
import org.springblade.modules.jinchao.pojo.entity.OrderEntity;
import org.springblade.modules.jinchao.pojo.request.CustomerSearch; import org.springblade.modules.jinchao.pojo.request.CustomerSearch;
import org.springblade.modules.jinchao.pojo.request.CustomerSubmit; import org.springblade.modules.jinchao.pojo.request.CustomerSubmit;
import org.springblade.modules.jinchao.pojo.vo.CustomerVO; import org.springblade.modules.jinchao.pojo.vo.CustomerVO;
@ -50,8 +59,12 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.List; import java.util.List;
import java.util.Objects; import java.util.Objects;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -75,6 +88,8 @@ public class CustomerServiceImpl extends BaseServiceImpl<CustomerMapper, Custome
private IDictService dictService; private IDictService dictService;
@Resource @Resource
private IUserService userService; private IUserService userService;
@Resource
private OrderMapper orderMapper;
@Override @Override
public IPage<CustomerVO> selectCustomerPage(IPage<CustomerVO> page, CustomerVO customer) { public IPage<CustomerVO> selectCustomerPage(IPage<CustomerVO> page, CustomerVO customer) {
@ -99,8 +114,9 @@ public class CustomerServiceImpl extends BaseServiceImpl<CustomerMapper, Custome
CustomerEntity c = new CustomerEntity(); CustomerEntity c = new CustomerEntity();
BeanUtils.copyProperties(submit, c); BeanUtils.copyProperties(submit, c);
{ {
c.setCode(getCount() + 1L); c.setCode(generateOrderCode(c));
} }
boolean save = save(c); boolean save = save(c);
for (int i = 0; i < submit.getContacts().size(); i++) {// 每一个ContactEntity for (int i = 0; i < submit.getContacts().size(); i++) {// 每一个ContactEntity
ContactEntity co = submit.getContacts().get(i); ContactEntity co = submit.getContacts().get(i);
@ -180,6 +196,33 @@ public class CustomerServiceImpl extends BaseServiceImpl<CustomerMapper, Custome
vo.setCreateUserRealName(uC.getRealName()); vo.setCreateUserRealName(uC.getRealName());
} }
} }
List<OrderEntity> orderList = orderMapper.selectList(Wrappers.<OrderEntity>lambdaQuery()
.eq(OrderEntity::getCustomerCode,vo.getId())
.eq(BaseEntity::getStatus, CommonEnum.STATUS_5.getCode())
.orderByDesc(OrderEntity::getOrderDate)
.last("limit 1"));
if(CollectionUtils.isNotEmpty(orderList)){
OrderEntity order = orderList.get(0);
vo.setLastOrderDealDateTime(DateFormatUtils.format(order.getUpdateTime(),"yyyy-MM-dd HH:mm:ss"));
long monthCount = Optional.ofNullable(order.getUpdateTime())
.map(date -> {
ZoneId zoneId = ZoneId.systemDefault();
LocalDateTime targetLdt = LocalDateTime.ofInstant(date.toInstant(), zoneId);
LocalDateTime nowLdt = LocalDateTime.now(zoneId);
// ChronoUnit.MONTHS直接计算整月间隔
return ChronoUnit.MONTHS.between(targetLdt, nowLdt);
})
.orElse(0L);
if(monthCount <= 6L){
vo.setLastOrderStatusValue("<=6months");
}else if(monthCount > 6L && monthCount <= 12L){
vo.setLastOrderStatusValue("6--12months");
}else if(monthCount > 12L && monthCount <= 24L){
vo.setLastOrderStatusValue("12--24months");
}else{
vo.setLastOrderStatusValue("24+months");
}
}
} }
@Override @Override
@ -196,4 +239,26 @@ public class CustomerServiceImpl extends BaseServiceImpl<CustomerMapper, Custome
public Long getCount() { public Long getCount() {
return baseMapper.selectCount(new QueryWrapper<>()); return baseMapper.selectCount(new QueryWrapper<>());
} }
public String generateOrderCode(CustomerEntity customer){
String code = "";
BladeUser user = AuthUtil.getUser();
//获取最大编号
String maxCode = baseMapper.getMaxCode(customer.getCountryName()+user.getNickName(),user.getUserId());
if(maxCode == null){
code = customer.getCountryName() + user.getNickName() + "001";
}else{
int num = Integer.parseInt(maxCode.substring(maxCode.length() - 3)) + 1;
String prefix = maxCode.substring(0,maxCode.length()-3);
if(num < 10){
code = prefix + "00" + num;
}else if(num >=10 & num <100){
code = prefix + "0" + num;
}else{
code = prefix + num;
}
}
return code;
}
} }

@ -26,6 +26,7 @@
package org.springblade.modules.jinchao.service.impl; package org.springblade.modules.jinchao.service.impl;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.springblade.common.cache.UserCache;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil; import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.modules.jinchao.excel.ExchangeRateExcel; import org.springblade.modules.jinchao.excel.ExchangeRateExcel;
@ -35,6 +36,7 @@ import org.springblade.modules.jinchao.pojo.entity.ExchangeRateHistoryEntity;
import org.springblade.modules.jinchao.pojo.vo.ExchangeRateVO; import org.springblade.modules.jinchao.pojo.vo.ExchangeRateVO;
import org.springblade.modules.jinchao.service.IExchangeRateHistoryService; import org.springblade.modules.jinchao.service.IExchangeRateHistoryService;
import org.springblade.modules.jinchao.service.IExchangeRateService; import org.springblade.modules.jinchao.service.IExchangeRateService;
import org.springblade.modules.system.pojo.entity.User;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -73,7 +75,8 @@ public class ExchangeRateServiceImpl extends BaseServiceImpl<ExchangeRateMapper,
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean updateRate(ExchangeRateEntity entity) { public Boolean updateRate(ExchangeRateEntity entity) {
BladeUser user = AuthUtil.getUser(); BladeUser bladeUser = AuthUtil.getUser();
User user = UserCache.getUser(bladeUser.getUserId());
ExchangeRateEntity old = this.getById(entity.getId()); ExchangeRateEntity old = this.getById(entity.getId());
ExchangeRateHistoryEntity history = new ExchangeRateHistoryEntity(); ExchangeRateHistoryEntity history = new ExchangeRateHistoryEntity();
history.setExchangeRateId(old.getId()); history.setExchangeRateId(old.getId());
@ -84,10 +87,10 @@ public class ExchangeRateServiceImpl extends BaseServiceImpl<ExchangeRateMapper,
history.setRateOld(old.getRate()); history.setRateOld(old.getRate());
history.setRate(entity.getRate()); history.setRate(entity.getRate());
history.setRemarks(entity.getRemarks()); history.setRemarks(entity.getRemarks());
history.setCreateUserName(user.getUserName()); history.setCreateUserName(user.getRealName());
exchangeRateHistoryService.save(history); exchangeRateHistoryService.save(history);
entity.setUpdateUser(user.getUserId()); entity.setUpdateUser(bladeUser.getUserId());
entity.setUpdateUserName(user.getNickName()); entity.setUpdateUserName(user.getRealName());
entity.setUpdateTime(new Date()); entity.setUpdateTime(new Date());
return this.updateById(entity); return this.updateById(entity);
} }

@ -32,6 +32,7 @@ import lombok.RequiredArgsConstructor;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.time.DateFormatUtils; import org.apache.commons.lang3.time.DateFormatUtils;
import org.springblade.common.cache.SysCache; import org.springblade.common.cache.SysCache;
import org.springblade.common.cache.UserCache;
import org.springblade.common.enums.CommonEnum; import org.springblade.common.enums.CommonEnum;
import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.secure.BladeUser; import org.springblade.core.secure.BladeUser;
@ -67,6 +68,7 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
private final IOrderProjectProductService orderProjectProductService; private final IOrderProjectProductService orderProjectProductService;
private final IOrderExtraChargeService orderExtraChargeService; private final IOrderExtraChargeService orderExtraChargeService;
private final IWaterBillService waterBillService; private final IWaterBillService waterBillService;
private final IExchangeRateService exchangeRateService;
@Override @Override
public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) { public IPage<OrderVO> selectOrderPage(IPage<OrderVO> page, OrderVO order) {
@ -94,13 +96,15 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean saveOrder(OrderEntity order) { public Boolean saveOrder(OrderEntity order) {
BladeUser user = AuthUtil.getUser(); BladeUser bladeUser = AuthUtil.getUser();
User user = UserCache.getUser(bladeUser.getUserId());
order.setCode(generateOrderCode(order)); order.setCode(generateOrderCode(order));
order.setOrderDate(DateFormatUtils.format(new Date(),"yyyy-MM-dd")); order.setOrderDate(DateFormatUtils.format(new Date(),"yyyy-MM-dd"));
order.setRemittedAmount(new BigDecimal(0)); order.setRemittedAmount(new BigDecimal(0));
order.setUnremittedAmount(order.getSellingPrice().subtract(order.getDiscountAmount())); order.setCreateUserName(user.getRealName());
order.setCreateUserName(user.getUserName());
order.setCreateDeptName(SysCache.getDeptName(Long.parseLong(user.getDeptId()))); order.setCreateDeptName(SysCache.getDeptName(Long.parseLong(user.getDeptId())));
order.setContractPrice(order.getSellingPrice());
this.save(order); this.save(order);
List<OrderProjectEntity> orderProjectEntityList = order.getProjectList(); List<OrderProjectEntity> orderProjectEntityList = order.getProjectList();
for(OrderProjectEntity project : orderProjectEntityList){ for(OrderProjectEntity project : orderProjectEntityList){
@ -122,22 +126,27 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
Date date = new Date(); Date date = new Date();
//修改之前版本的状态 //修改之前版本的状态
OrderEntity oldOrder = this.getById(order.getId()); OrderEntity oldOrder = this.getById(order.getId());
if(oldOrder != null){
oldOrder.setStatus(9999); oldOrder.setStatus(9999);
oldOrder.setUpdateTime(date); oldOrder.setUpdateTime(date);
this.updateById(oldOrder); this.updateById(oldOrder);
}
//添加新的版本 //添加新的版本
order.setCode(generateOrderCode(order)); order.setCode(generateOrderCode(order));
order.setId(null); order.setId(null);
order.setContractPrice(order.getSellingPrice());
this.save(order); this.save(order);
List<OrderProjectEntity> orderProjectEntityList = order.getProjectList(); List<OrderProjectEntity> orderProjectEntityList = order.getProjectList();
for(OrderProjectEntity project : orderProjectEntityList){ for(OrderProjectEntity project : orderProjectEntityList){
//修改之前版本的状态 //修改之前版本的状态
if(project.getId() != null){ if(project.getId() != null){
OrderProjectEntity oldProject = orderProjectService.getById(project.getId()); OrderProjectEntity oldProject = orderProjectService.getById(project.getId());
if(oldProject != null){
oldProject.setStatus(9999); oldProject.setStatus(9999);
oldProject.setUpdateTime(date); oldProject.setUpdateTime(date);
orderProjectService.updateById(oldProject); orderProjectService.updateById(oldProject);
} }
}
//添加新的版本 //添加新的版本
project.setId(null); project.setId(null);
project.setOrderId(order.getId()); project.setOrderId(order.getId());
@ -146,11 +155,13 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
for(OrderProjectProductEntity product : orderProjectProductEntityList){ for(OrderProjectProductEntity product : orderProjectProductEntityList){
if(product.getId() != null){ if(product.getId() != null){
OrderProjectProductEntity oldProduct = orderProjectProductService.getById(product.getId()); OrderProjectProductEntity oldProduct = orderProjectProductService.getById(product.getId());
if(oldProduct != null){
//修改之前版本状态 //修改之前版本状态
oldProduct.setStatus(9999); oldProduct.setStatus(9999);
oldProduct.setUpdateTime(date); oldProduct.setUpdateTime(date);
orderProjectProductService.updateById(oldProduct); orderProjectProductService.updateById(oldProduct);
} }
}
//添加新的版本 //添加新的版本
product.setId(null); product.setId(null);
@ -166,6 +177,10 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
@Override @Override
public OrderEntity detail(OrderEntity order) { public OrderEntity detail(OrderEntity order) {
order = this.getById(order.getId()); order = this.getById(order.getId());
ExchangeRateEntity exchangeRate = exchangeRateService.getOne(Wrappers.<ExchangeRateEntity>lambdaQuery().eq(ExchangeRateEntity::getTargetCurrency,order.getMonetaryUnit()));
if(exchangeRate != null){
order.setDiscountAmount(order.getDiscountAmount().divide(exchangeRate.getRate(),0, RoundingMode.UP));
}
List<OrderProjectEntity> projectList = orderProjectService.list(Wrappers.<OrderProjectEntity>lambdaQuery().eq(OrderProjectEntity::getOrderId,order.getId())); List<OrderProjectEntity> projectList = orderProjectService.list(Wrappers.<OrderProjectEntity>lambdaQuery().eq(OrderProjectEntity::getOrderId,order.getId()));
projectList.forEach(project ->{ projectList.forEach(project ->{
List<OrderProjectProductEntity> productList = orderProjectProductService.list(Wrappers.<OrderProjectProductEntity>lambdaQuery().eq(OrderProjectProductEntity::getProjectId,project.getId())); List<OrderProjectProductEntity> productList = orderProjectProductService.list(Wrappers.<OrderProjectProductEntity>lambdaQuery().eq(OrderProjectProductEntity::getProjectId,project.getId()));
@ -219,15 +234,21 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean approve(OrderEntity order) { public Boolean approve(OrderEntity order) {
order.setUpdateUserName(AuthUtil.getUser().getNickName()); BladeUser bladeUser = AuthUtil.getUser();
order.setUpdateTime(new Date()); User user = UserCache.getUser(bladeUser.getUserId());
this.updateById(order); BigDecimal chargePrice = new BigDecimal(0);
if(CollectionUtils.isNotEmpty(order.getExtraChargeList())){ if(CollectionUtils.isNotEmpty(order.getExtraChargeList())){
for(OrderExtraChargeEntity charge : order.getExtraChargeList()){ for(OrderExtraChargeEntity charge : order.getExtraChargeList()){
charge.setOrderId(order.getId()); charge.setOrderId(order.getId());
orderExtraChargeService.save(charge); orderExtraChargeService.save(charge);
chargePrice = chargePrice.add(charge.getPrice());
} }
} }
order.setContractPrice(order.getSellingPrice().add(chargePrice));
exchangeRate(order);
order.setUpdateUserName(user.getRealName());
order.setUpdateTime(new Date());
this.updateById(order);
return true; return true;
} }
@ -349,4 +370,13 @@ public class OrderServiceImpl extends BaseServiceImpl<OrderMapper, OrderEntity>
return code; return code;
} }
public OrderEntity exchangeRate(OrderEntity order){
ExchangeRateEntity exchangeRate = exchangeRateService.getOne(Wrappers.<ExchangeRateEntity>lambdaQuery().eq(ExchangeRateEntity::getTargetCurrency,order.getMonetaryUnit()));
if(exchangeRate != null){
order.setContractPrice(order.getContractPrice().multiply(exchangeRate.getRate()));
}
order.setUnremittedAmount(order.getContractPrice().subtract(order.getRemittedAmount()));
return order;
}
} }

@ -36,6 +36,7 @@ import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.velocity.runtime.directive.Break; import org.apache.velocity.runtime.directive.Break;
import org.springblade.common.cache.UserCache;
import org.springblade.core.mp.base.BaseEntity; import org.springblade.core.mp.base.BaseEntity;
import org.springblade.core.mp.support.Condition; import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query; import org.springblade.core.mp.support.Query;
@ -123,6 +124,7 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
@Override @Override
public R<IPage<ProductVO>> list(Map<String, Object> map, Query query) { public R<IPage<ProductVO>> list(Map<String, Object> map, Query query) {
BladeUser user = AuthUtil.getUser();
Long customerId = map.get("customerId") == null ? null : Long.parseLong(map.get("customerId").toString()); Long customerId = map.get("customerId") == null ? null : Long.parseLong(map.get("customerId").toString());
Long catalogId = Long.parseLong((String) map.get("catalogId")); // 是Id [坏笑]。不是ld Long catalogId = Long.parseLong((String) map.get("catalogId")); // 是Id [坏笑]。不是ld
if (catalogId == null || catalogId == 0L) { if (catalogId == null || catalogId == 0L) {
@ -140,6 +142,7 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
if (p != null) { if (p != null) {
ProductVO vo = ProductWrapper.build().entityVO(p); ProductVO vo = ProductWrapper.build().entityVO(p);
vo.setCatalogId(catalogId); vo.setCatalogId(catalogId);
vo.setBizType(ProductConst.BIZ_TYPE_PRICE_STANDARD);
CatalogEntity catalogTwo = catalogService.getById(vo.getCatalogId()); CatalogEntity catalogTwo = catalogService.getById(vo.getCatalogId());
CatalogEntity catalogOne = catalogService.getById(catalogTwo.getParentId()); CatalogEntity catalogOne = catalogService.getById(catalogTwo.getParentId());
vo.setCatalogOne(catalogOne.getName()); vo.setCatalogOne(catalogOne.getName());
@ -151,6 +154,7 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
IPage<ProductVO> pagesVO = Condition.getPage(query); IPage<ProductVO> pagesVO = Condition.getPage(query);
pagesVO.setRecords(listVO); pagesVO.setRecords(listVO);
pagesVO.setSize(listVO.size()); pagesVO.setSize(listVO.size());
if(user.getRoleName().equals("administrator")){
// 迭代器去添加元素。 // 迭代器去添加元素。
ListIterator<ProductVO> it = pagesVO.getRecords().listIterator(); ListIterator<ProductVO> it = pagesVO.getRecords().listIterator();
while (it.hasNext()) { while (it.hasNext()) {
@ -198,6 +202,8 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
log.info("not contain."); log.info("not contain.");
} }
} }
}
//筛选 //筛选
if(map.get("nameCn") != null || map.get("bizRemark") != null){ if(map.get("nameCn") != null || map.get("bizRemark") != null){
IPage<ProductVO> pagesVO1 = Condition.getPage(query); IPage<ProductVO> pagesVO1 = Condition.getPage(query);
@ -384,6 +390,8 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
@Override @Override
public Boolean updateCostPrice(ProductEntity product) { public Boolean updateCostPrice(ProductEntity product) {
BladeUser bladeUser = AuthUtil.getUser();
User user = UserCache.getUser(bladeUser.getUserId());
ProductEntity old = this.getById(product.getId()); ProductEntity old = this.getById(product.getId());
Double costPriceOld = old.getCostPrice(); Double costPriceOld = old.getCostPrice();
Double costPrice = product.getCostPrice(); Double costPrice = product.getCostPrice();
@ -393,7 +401,7 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
history.setCostPrice(costPrice); history.setCostPrice(costPrice);
history.setRemarks(product.getRemarkCn()); history.setRemarks(product.getRemarkCn());
history.setCreateTime(new Date()); history.setCreateTime(new Date());
history.setCreateUserName(AuthUtil.getUser().getNickName()); history.setCreateUserName(user.getRealName());
productHistoryService.save(history); productHistoryService.save(history);
product.setUpdateTime(new Date()); product.setUpdateTime(new Date());
this.updateById(product); this.updateById(product);
@ -414,7 +422,7 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
if (productObjService.existsCode(vo.getCode())) { if (productObjService.existsCode(vo.getCode())) {
return R.fail("已经存在产品实物编号:" + vo.getCode()); return R.fail("已经存在产品实物编号:" + vo.getCode());
} }
if (existsNameCn(vo.getNameCn())) { if (existsNameCn(vo.getCatalogId(),vo.getNameCn())) {
return R.fail("已经存在产品名称:" + vo.getNameCn()); return R.fail("已经存在产品名称:" + vo.getNameCn());
} }
if (productObjService.existsName(vo.getNameCn())) { if (productObjService.existsName(vo.getNameCn())) {
@ -434,7 +442,7 @@ public class ProductServiceImpl extends BaseServiceImpl<ProductMapper, ProductEn
} }
} }
if (!StringUtils.equals(vo.getNameCn(), f.getNameCn())) { if (!StringUtils.equals(vo.getNameCn(), f.getNameCn())) {
if (existsNameCn(vo.getNameCn())) { if (existsNameCn(vo.getCatalogId(),vo.getNameCn())) {
return R.fail("已经存在产品名称:" + vo.getNameCn()); return R.fail("已经存在产品名称:" + vo.getNameCn());
} }
if (productObjService.existsName(vo.getNameCn())) { if (productObjService.existsName(vo.getNameCn())) {

@ -72,8 +72,8 @@ public class RemittanceRecordServiceImpl extends BaseServiceImpl<RemittanceRecor
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Boolean saveRecord(RemittanceRecordEntity remittanceRecord) { public Boolean saveRecord(RemittanceRecordEntity remittanceRecord) {
OrderEntity order = orderService.getById(remittanceRecord.getOrderId()); OrderEntity order = orderService.getById(remittanceRecord.getOrderId());
order.setRemittedAmount(order.getRemittedAmount().add(remittanceRecord.getFactAmount())); order.setRemittedAmount(order.getRemittedAmount().add(remittanceRecord.getPlanAmount()));
order.setUnremittedAmount(order.getUnremittedAmount().subtract(remittanceRecord.getFactAmount())); order.setUnremittedAmount(order.getUnremittedAmount().subtract(remittanceRecord.getPlanAmount()));
if(order.getUnremittedAmount().compareTo(new BigDecimal(0)) > 0){ if(order.getUnremittedAmount().compareTo(new BigDecimal(0)) > 0){
order.setSettleStatus(2); //部分结算 order.setSettleStatus(2); //部分结算
}else{ }else{

@ -82,7 +82,7 @@ public class DeptController extends BladeController {
/** /**
* 详情 * 详情
*/ */
@PreAuth(menu = "dept") // @PreAuth(menu = "dept")
@GetMapping("/detail") @GetMapping("/detail")
@ApiOperationSupport(order = 1) @ApiOperationSupport(order = 1)
@Operation(summary = "详情", description = "传入dept") @Operation(summary = "详情", description = "传入dept")
@ -94,7 +94,7 @@ public class DeptController extends BladeController {
/** /**
* 列表 * 列表
*/ */
@PreAuth(menu = "dept") // @PreAuth(menu = "dept")
@GetMapping("/list") @GetMapping("/list")
@Parameters({ @Parameters({
@Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), @Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@ -111,7 +111,7 @@ public class DeptController extends BladeController {
/** /**
* 懒加载列表 * 懒加载列表
*/ */
@PreAuth(menu = "dept") // @PreAuth(menu = "dept")
@GetMapping("/lazy-list") @GetMapping("/lazy-list")
@Parameters({ @Parameters({
@Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")), @Parameter(name = "deptName", description = "部门名称", in = ParameterIn.QUERY, schema = @Schema(type = "string")),
@ -139,7 +139,7 @@ public class DeptController extends BladeController {
/** /**
* 懒加载获取部门树形结构 * 懒加载获取部门树形结构
*/ */
@PreAuth(menu = "dept") // @PreAuth(menu = "dept")
@GetMapping("/lazy-tree") @GetMapping("/lazy-tree")
@ApiOperationSupport(order = 5) @ApiOperationSupport(order = 5)
@Operation(summary = "懒加载树形结构", description = "树形结构") @Operation(summary = "懒加载树形结构", description = "树形结构")
@ -151,7 +151,7 @@ public class DeptController extends BladeController {
/** /**
* 新增或修改 * 新增或修改
*/ */
@IsAdmin // @IsAdmin
@PostMapping("/submit") @PostMapping("/submit")
@ApiOperationSupport(order = 6) @ApiOperationSupport(order = 6)
@Operation(summary = "新增或修改", description = "传入dept") @Operation(summary = "新增或修改", description = "传入dept")
@ -170,7 +170,7 @@ public class DeptController extends BladeController {
/** /**
* 删除 * 删除
*/ */
@IsAdmin // @IsAdmin
@PostMapping("/remove") @PostMapping("/remove")
@ApiOperationSupport(order = 7) @ApiOperationSupport(order = 7)
@Operation(summary = "删除", description = "传入ids") @Operation(summary = "删除", description = "传入ids")
@ -183,7 +183,7 @@ public class DeptController extends BladeController {
/** /**
* 下拉数据源 * 下拉数据源
*/ */
@PreAuth(AuthConstant.PERMIT_ALL) // @PreAuth(AuthConstant.PERMIT_ALL)
@GetMapping("/select") @GetMapping("/select")
@ApiOperationSupport(order = 8) @ApiOperationSupport(order = 8)
@Operation(summary = "下拉数据源", description = "传入id集合") @Operation(summary = "下拉数据源", description = "传入id集合")
@ -199,7 +199,7 @@ public class DeptController extends BladeController {
/** /**
* 获取部门的主管信息 * 获取部门的主管信息
*/ */
@IsAdmin // @IsAdmin
@GetMapping("/dept-leader-info") @GetMapping("/dept-leader-info")
@ApiOperationSupport(order = 9) @ApiOperationSupport(order = 9)
@Operation(summary = "获取部门的主管信息", description = "传入deptId") @Operation(summary = "获取部门的主管信息", description = "传入deptId")

@ -61,7 +61,7 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
@NonDS @NonDS
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@PreAuth(menu = "post") //@PreAuth(menu = "post")
@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/post") @RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/post")
@Tag(name = "岗位", description = "岗位") @Tag(name = "岗位", description = "岗位")
public class PostController extends BladeController { public class PostController extends BladeController {

@ -77,7 +77,7 @@ import static org.springblade.core.cache.constant.CacheConstant.SYS_CACHE;
@NonDS @NonDS
@RestController @RestController
@AllArgsConstructor @AllArgsConstructor
@IsAdmin //@IsAdmin
@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/role") @RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/role")
@Slf4j @Slf4j
@Tag(name = "角色", description = "角色") @Tag(name = "角色", description = "角色")

@ -28,6 +28,7 @@ package org.springblade.modules.system.controller;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Parameter;
@ -406,12 +407,15 @@ public class UserController {
public R<List<User>> getSaleUserList() { public R<List<User>> getSaleUserList() {
List<User> list = new ArrayList<>(); List<User> list = new ArrayList<>();
List<User> userList = userService.list(); List<User> userList = userService.list();
userList.forEach(user ->{ for(User user : userList){
Role role = roleService.getById(user.getRoleId()); List<String> roleIds = Arrays.asList(user.getRoleId().split(","));
List<Role> roleList = roleService.list(Wrappers.<Role>lambdaQuery().in(Role::getId,roleIds));
for(Role role : roleList){
if(role.getRoleName().equals("业务员")){ if(role.getRoleName().equals("业务员")){
list.add(user); list.add(user);
} }
}); }
}
return R.data(list); return R.data(list);
} }
} }

Loading…
Cancel
Save