Browse Source

销售订单-完善提交时销售部经理和总经理的岗位权限是否超限制。完善保存更新时的计算是否有错误

master
dimengzhe 3 years ago
parent
commit
2277a5ca99
  1. 17
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepostprice/BaseOrderPostPriceQuery.java
  2. 20
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepostprice/BaseOrderPostPriceVo.java
  3. 12
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepostprice/BasePostPriceFeign.java
  4. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepostprice/BasePostPriceFeignFallback.java
  5. 10
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclepolicy/BaseVehiclePolicyFeign.java
  6. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclepolicy/BaseVehiclePolicyFeignFallback.java
  7. 21
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclepolicy/BaseVehiclePriceVo.java
  8. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapplydetail/BusVehicleApplyListVo.java
  9. 21
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepostprice/BasePostPriceMapper.java
  10. 31
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepostprice/BasePostPriceMapper.xml
  11. 14
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepostprice/BasePostPriceRest.java
  12. 88
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepostprice/BasePostPriceService.java
  13. 21
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclepolicy/BaseVehiclePolicyMapper.java
  14. 31
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclepolicy/BaseVehiclePolicyMapper.xml
  15. 81
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclepolicy/BaseVehiclePolicyRest.java
  16. 92
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclepolicy/BaseVehiclePolicyService.java
  17. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapplydetail/BusVehicleApplyDetailService.java
  18. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderAllDto.java
  19. 20
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderPowerVo.java
  20. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdeposit/BusSalesOrderDepositDto.java
  21. 17
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordermodel/BusSalesOrderModelDto.java
  22. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicleorder/BusSalesVehicleOrderDto.java
  23. 239
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  24. 2
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/sysprourl/SysProUrlService.java

17
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepostprice/BaseOrderPostPriceQuery.java

@ -0,0 +1,17 @@
package com.yxt.anrui.base.api.basepostprice;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/5/12 15:22
* @Description
*/
@Data
public class BaseOrderPostPriceQuery implements Query {
private static final long serialVersionUID = -8496157517849599849L;
private String brandSid;
private String roleSid;
}

20
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepostprice/BaseOrderPostPriceVo.java

@ -0,0 +1,20 @@
package com.yxt.anrui.base.api.basepostprice;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/5/12 15:19
* @Description
*/
@Data
public class BaseOrderPostPriceVo implements Vo {
private static final long serialVersionUID = 7153675503206019053L;
@ApiModelProperty(value = "让价金额")
@JsonSerialize(using = ToStringSerializer.class)
private String price;
}

12
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepostprice/BasePostPriceFeign.java

@ -25,16 +25,15 @@
*********************************************************/
package com.yxt.anrui.base.api.basepostprice;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-base(基础信息) <br/>
* File: BasePostPriceFeign.java <br/>
@ -75,4 +74,9 @@ public interface BasePostPriceFeign {
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean<BasePostPriceDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("根据角色和品牌查询权限价格")
@GetMapping("/selectPostPrice")
@ResponseBody
ResultBean<BaseOrderPostPriceVo> selectPostPrice(@SpringQueryMap BaseOrderPostPriceQuery query);
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepostprice/BasePostPriceFeignFallback.java

@ -30,8 +30,6 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: anrui-base(基础信息) <br/>
* File: BasePostPriceFeignFallback.java <br/>
@ -69,4 +67,9 @@ public class BasePostPriceFeignFallback implements BasePostPriceFeign {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-base/basepostprice/fetchDetailsBySid无法访问");
}
@Override
public ResultBean<BaseOrderPostPriceVo> selectPostPrice(BaseOrderPostPriceQuery query) {
return null;
}
}

10
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclepolicy/BaseVehiclePolicyFeign.java

@ -25,16 +25,14 @@
*********************************************************/
package com.yxt.anrui.base.api.basevehiclepolicy;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-base(基础信息) <br/>
* File: BaseVehiclePolicyFeign.java <br/>
@ -75,4 +73,8 @@ public interface BaseVehiclePolicyFeign {
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
public ResultBean<BaseVehiclePolicyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("根据车辆sid查询销售政策中的优惠金额")
@GetMapping("/selectPrice/{vehicleSid}")
@ResponseBody
ResultBean<BaseVehiclePriceVo> selectPrice(@PathVariable(value = "vehicleSid") String vehicleSid);
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclepolicy/BaseVehiclePolicyFeignFallback.java

@ -30,8 +30,6 @@ import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: anrui-base(基础信息) <br/>
* File: BaseVehiclePolicyFeignFallback.java <br/>
@ -69,4 +67,9 @@ public class BaseVehiclePolicyFeignFallback implements BaseVehiclePolicyFeign {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui-base/basevehiclepolicy/fetchDetailsBySid无法访问");
}
@Override
public ResultBean<BaseVehiclePriceVo> selectPrice(String vehicleSid) {
return null;
}
}

21
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclepolicy/BaseVehiclePriceVo.java

@ -0,0 +1,21 @@
package com.yxt.anrui.base.api.basevehiclepolicy;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/5/13 10:28
* @Description
*/
@Data
public class BaseVehiclePriceVo implements Vo {
private static final long serialVersionUID = 4695719404638327720L;
@ApiModelProperty(value = "优惠金额")
@JsonSerialize(using = ToStringSerializer.class)
private String discountMoney;
}

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapplydetail/BusVehicleApplyListVo.java

@ -18,4 +18,10 @@ public class BusVehicleApplyListVo implements Vo {
private String linkText;
@ApiModelProperty("采购订单sid")
private String linkSid;
@ApiModelProperty("可使用台数")
private Integer useNum;
@ApiModelProperty("台数")
private Integer platformNo;
@ApiModelProperty("锁定台数")
private Integer lockingNum;
}

21
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepostprice/BasePostPriceMapper.java

@ -26,14 +26,15 @@
package com.yxt.anrui.base.biz.basepostprice;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceVo;
import com.yxt.anrui.base.api.basepostprice.BasePostPrice;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.base.api.basepostprice.BasePostPrice;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceVo;
import java.util.List;
@ -53,13 +54,15 @@ import java.util.List;
@Mapper
public interface BasePostPriceMapper extends BaseMapper<BasePostPrice> {
//@Update("update base_post_price set name=#{msg} where id=#{id}")
//IPage<BasePostPriceVo> voPage(IPage<BasePostPrice> page, @Param(Constants.WRAPPER) QueryWrapper<BasePostPrice> qw);
//@Update("update base_post_price set name=#{msg} where id=#{id}")
//IPage<BasePostPriceVo> voPage(IPage<BasePostPrice> page, @Param(Constants.WRAPPER) QueryWrapper<BasePostPrice> qw);
IPage<BasePostPriceVo> selectPageVo(IPage<BasePostPrice> page, @Param(Constants.WRAPPER) Wrapper<BasePostPrice> qw);
IPage<BasePostPriceVo> selectPageVo(IPage<BasePostPrice> page, @Param(Constants.WRAPPER) Wrapper<BasePostPrice> qw);
List<BasePostPriceVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BasePostPrice> qw);
List<BasePostPriceVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BasePostPrice> qw);
@Select("select * from base_post_price")
List<BasePostPriceVo> selectListVo();
@Select("select * from base_post_price")
List<BasePostPriceVo> selectListVo();
BaseOrderPostPriceVo selectPostPrice(@Param("brandSid") String brandSid, @Param("roleSid") String roleSid);
}

31
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepostprice/BasePostPriceMapper.xml

@ -1,13 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.base.biz.basepostprice.BasePostPriceMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.base.api.basepostprice.BasePostPriceVo">
SELECT * FROM base_post_price <where> ${ew.sqlSegment} </where>
</select>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.base.api.basepostprice.BasePostPriceVo">
SELECT *
FROM base_post_price
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.base.api.basepostprice.BasePostPriceVo">
SELECT * FROM base_post_price <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.base.api.basepostprice.BasePostPriceVo">
SELECT *
FROM base_post_price
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectPostPrice" resultType="com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceVo">
select price
from base_post_price
where brandSid = #{brandSid}
and roleSid = #{roleSid}
</select>
</mapper>

14
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepostprice/BasePostPriceRest.java

@ -25,6 +25,7 @@
*********************************************************/
package com.yxt.anrui.base.biz.basepostprice;
import com.yxt.anrui.base.api.basepostprice.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -33,14 +34,6 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.base.api.basepostprice.BasePostPrice;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceQuery;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceVo;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceDetailsVo;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceDto;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceFeign;
/**
* Project: anrui-base(基础信息) <br/>
* File: BasePostPriceFeignFallback.java <br/>
@ -97,4 +90,9 @@ public class BasePostPriceRest implements BasePostPriceFeign {
BasePostPriceDetailsVo vo = basePostPriceService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@Override
public ResultBean<BaseOrderPostPriceVo> selectPostPrice(BaseOrderPostPriceQuery query) {
return basePostPriceService.selectPostPrice(query);
}
}

88
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepostprice/BasePostPriceService.java

@ -28,23 +28,15 @@ package com.yxt.anrui.base.biz.basepostprice;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.anrui.base.api.basepostprice.*;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.anrui.base.api.basepostprice.BasePostPrice;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceQuery;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceVo;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceDetailsVo;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceDto;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceFeign;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: anrui-base(基础信息) <br/>
* File: BasePostPriceService.java <br/>
@ -60,51 +52,59 @@ import java.util.List;
*/
@Service
public class BasePostPriceService extends MybatisBaseService<BasePostPriceMapper, BasePostPrice> {
private QueryWrapper<BasePostPrice> createQueryWrapper(BasePostPriceQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<BasePostPrice> qw = new QueryWrapper<>();
return qw;
}
private QueryWrapper<BasePostPrice> createQueryWrapper(BasePostPriceQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<BasePostPrice> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<BasePostPriceVo> listPageVo(PagerQuery<BasePostPriceQuery> pq) {
BasePostPriceQuery query = pq.getParams();
QueryWrapper<BasePostPrice> qw = createQueryWrapper(query);
IPage<BasePostPrice> page = PagerUtil.queryToPage(pq);
IPage<BasePostPriceVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<BasePostPriceVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public PagerVo<BasePostPriceVo> listPageVo(PagerQuery<BasePostPriceQuery> pq) {
BasePostPriceQuery query = pq.getParams();
QueryWrapper<BasePostPrice> qw = createQueryWrapper(query);
IPage<BasePostPrice> page = PagerUtil.queryToPage(pq);
IPage<BasePostPriceVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<BasePostPriceVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(BasePostPriceDto dto){
public void saveOrUpdateDto(BasePostPriceDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
this.updateByDto(dto);
}
public void insertByDto(BasePostPriceDto dto){
BasePostPrice entity = new BasePostPrice();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void insertByDto(BasePostPriceDto dto) {
BasePostPrice entity = new BasePostPrice();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(BasePostPriceDto dto){
String dtoSid = dto.getSid();
public void updateByDto(BasePostPriceDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
BasePostPrice entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
BasePostPrice entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public BasePostPriceDetailsVo fetchDetailsVoBySid(String sid) {
BasePostPrice entity = fetchBySid(sid);
BasePostPriceDetailsVo vo = new BasePostPriceDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public BasePostPriceDetailsVo fetchDetailsVoBySid(String sid){
BasePostPrice entity = fetchBySid(sid);
BasePostPriceDetailsVo vo = new BasePostPriceDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public ResultBean<BaseOrderPostPriceVo> selectPostPrice(BaseOrderPostPriceQuery query) {
ResultBean<BaseOrderPostPriceVo> rb = ResultBean.fireFail();
String brandSid = query.getBrandSid();
String roleSid = query.getRoleSid();
BaseOrderPostPriceVo vo = baseMapper.selectPostPrice(brandSid,roleSid);
return rb.success().setData(vo);
}
}

21
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclepolicy/BaseVehiclePolicyMapper.java

@ -29,6 +29,7 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePriceVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -53,13 +54,21 @@ import java.util.List;
@Mapper
public interface BaseVehiclePolicyMapper extends BaseMapper<BaseVehiclePolicy> {
//@Update("update base_vehicle_policy set name=#{msg} where id=#{id}")
//IPage<BaseVehiclePolicyVo> voPage(IPage<BaseVehiclePolicy> page, @Param(Constants.WRAPPER) QueryWrapper<BaseVehiclePolicy> qw);
//@Update("update base_vehicle_policy set name=#{msg} where id=#{id}")
//IPage<BaseVehiclePolicyVo> voPage(IPage<BaseVehiclePolicy> page, @Param(Constants.WRAPPER) QueryWrapper<BaseVehiclePolicy> qw);
IPage<BaseVehiclePolicyVo> selectPageVo(IPage<BaseVehiclePolicy> page, @Param(Constants.WRAPPER) Wrapper<BaseVehiclePolicy> qw);
IPage<BaseVehiclePolicyVo> selectPageVo(IPage<BaseVehiclePolicy> page, @Param(Constants.WRAPPER) Wrapper<BaseVehiclePolicy> qw);
List<BaseVehiclePolicyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BaseVehiclePolicy> qw);
List<BaseVehiclePolicyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BaseVehiclePolicy> qw);
@Select("select * from base_vehicle_policy")
List<BaseVehiclePolicyVo> selectListVo();
@Select("select * from base_vehicle_policy")
List<BaseVehiclePolicyVo> selectListVo();
/**
* 根据车辆sid查询销售政策的优惠金额
*
* @param vehicleSid 车辆sid
* @return
*/
BaseVehiclePriceVo selectPrice(String vehicleSid);
}

31
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclepolicy/BaseVehiclePolicyMapper.xml

@ -1,13 +1,28 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.base.biz.basevehiclepolicy.BaseVehiclePolicyMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyVo">
SELECT * FROM base_vehicle_policy <where> ${ew.sqlSegment} </where>
</select>
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyVo">
SELECT *
FROM base_vehicle_policy
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyVo">
SELECT * FROM base_vehicle_policy <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyVo">
SELECT *
FROM base_vehicle_policy
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectPrice" resultType="com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePriceVo">
select bd.discountMoney
from base_vehicle_policy bv
left join base_discountpackage bd on bd.sid = bv.policySid
where vehicleSid = #{vehicleSid}
</select>
</mapper>

81
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclepolicy/BaseVehiclePolicyRest.java

@ -25,22 +25,16 @@
*********************************************************/
package com.yxt.anrui.base.biz.basevehiclepolicy;
import com.yxt.anrui.base.api.basevehiclepolicy.*;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicy;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyQuery;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyVo;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyDetailsVo;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyDto;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyFeign;
/**
* Project: anrui-base(基础信息) <br/>
* File: BaseVehiclePolicyFeignFallback.java <br/>
@ -55,46 +49,51 @@ import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyFeign;
* @since 1.0
*/
@Api(tags = "车辆与销售政策关联表")
@RestController("com.yxt.anrui.base.biz.basevehiclepolicy.BaseVehiclePolicyRest")
@Controller
@RequestMapping("v1/basevehiclepolicy")
public class BaseVehiclePolicyRest implements BaseVehiclePolicyFeign {
@Autowired
private BaseVehiclePolicyService baseVehiclePolicyService;
@Autowired
private BaseVehiclePolicyService baseVehiclePolicyService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<BaseVehiclePolicyVo>> listPage(@RequestBody PagerQuery<BaseVehiclePolicyQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<BaseVehiclePolicyVo> pv = baseVehiclePolicyService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<BaseVehiclePolicyVo>> listPage(@RequestBody PagerQuery<BaseVehiclePolicyQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<BaseVehiclePolicyVo> pv = baseVehiclePolicyService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody BaseVehiclePolicyDto dto){
ResultBean rb = ResultBean.fireFail();
baseVehiclePolicyService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody BaseVehiclePolicyDto dto) {
ResultBean rb = ResultBean.fireFail();
baseVehiclePolicyService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
@ApiOperation("根据sid批量删除")
@Override
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
baseVehiclePolicyService.delBySids(sids);
return rb.success();
}
public ResultBean delBySids(@RequestBody String[] sids) {
ResultBean rb = ResultBean.fireFail();
baseVehiclePolicyService.delBySids(sids);
return rb.success();
}
@Override
@ApiOperation("根据SID获取一条记录")
@Override
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<BaseVehiclePolicyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
BaseVehiclePolicyDetailsVo vo = baseVehiclePolicyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
public ResultBean<BaseVehiclePolicyDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
BaseVehiclePolicyDetailsVo vo = baseVehiclePolicyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@Override
public ResultBean<BaseVehiclePriceVo> selectPrice(String vehicleSid) {
return baseVehiclePolicyService.selectPrice(vehicleSid);
}
}

92
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclepolicy/BaseVehiclePolicyService.java

@ -28,23 +28,15 @@ package com.yxt.anrui.base.biz.basevehiclepolicy;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
import com.yxt.anrui.base.api.basevehiclepolicy.*;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicy;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyQuery;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyVo;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyDetailsVo;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyDto;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyFeign;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: anrui-base(基础信息) <br/>
* File: BaseVehiclePolicyService.java <br/>
@ -60,51 +52,63 @@ import java.util.List;
*/
@Service
public class BaseVehiclePolicyService extends MybatisBaseService<BaseVehiclePolicyMapper, BaseVehiclePolicy> {
private QueryWrapper<BaseVehiclePolicy> createQueryWrapper(BaseVehiclePolicyQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<BaseVehiclePolicy> qw = new QueryWrapper<>();
return qw;
}
private QueryWrapper<BaseVehiclePolicy> createQueryWrapper(BaseVehiclePolicyQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<BaseVehiclePolicy> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<BaseVehiclePolicyVo> listPageVo(PagerQuery<BaseVehiclePolicyQuery> pq) {
BaseVehiclePolicyQuery query = pq.getParams();
QueryWrapper<BaseVehiclePolicy> qw = createQueryWrapper(query);
IPage<BaseVehiclePolicy> page = PagerUtil.queryToPage(pq);
IPage<BaseVehiclePolicyVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<BaseVehiclePolicyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public PagerVo<BaseVehiclePolicyVo> listPageVo(PagerQuery<BaseVehiclePolicyQuery> pq) {
BaseVehiclePolicyQuery query = pq.getParams();
QueryWrapper<BaseVehiclePolicy> qw = createQueryWrapper(query);
IPage<BaseVehiclePolicy> page = PagerUtil.queryToPage(pq);
IPage<BaseVehiclePolicyVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<BaseVehiclePolicyVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(BaseVehiclePolicyDto dto){
public void saveOrUpdateDto(BaseVehiclePolicyDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
this.updateByDto(dto);
}
public void insertByDto(BaseVehiclePolicyDto dto){
BaseVehiclePolicy entity = new BaseVehiclePolicy();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void insertByDto(BaseVehiclePolicyDto dto) {
BaseVehiclePolicy entity = new BaseVehiclePolicy();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(BaseVehiclePolicyDto dto){
String dtoSid = dto.getSid();
public void updateByDto(BaseVehiclePolicyDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
BaseVehiclePolicy entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
BaseVehiclePolicy entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public BaseVehiclePolicyDetailsVo fetchDetailsVoBySid(String sid) {
BaseVehiclePolicy entity = fetchBySid(sid);
BaseVehiclePolicyDetailsVo vo = new BaseVehiclePolicyDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public BaseVehiclePolicyDetailsVo fetchDetailsVoBySid(String sid){
BaseVehiclePolicy entity = fetchBySid(sid);
BaseVehiclePolicyDetailsVo vo = new BaseVehiclePolicyDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
/**
* 根据车辆sid查询销售政策的优惠金额
*
* @param vehicleSid 车辆sid
* @return
*/
public ResultBean<BaseVehiclePriceVo> selectPrice(String vehicleSid) {
ResultBean<BaseVehiclePriceVo> rb = ResultBean.fireFail();
BaseVehiclePriceVo vo = baseMapper.selectPrice(vehicleSid);
return rb.success().setData(vo);
}
}

7
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapplydetail/BusVehicleApplyDetailService.java

@ -130,6 +130,13 @@ public class BusVehicleApplyDetailService extends MybatisBaseService<BusVehicleA
QueryWrapper<BusVehicleApply> qw = applyPageWrapper(query);
IPage<BusVehicleApply> page = PagerUtil.queryToPage(pagerQuery);
IPage<BusVehicleApplyListVo> pagging = baseMapper.applyPage(page, qw);
List<BusVehicleApplyListVo> list = pagging.getRecords();
for (int i = 0; i <list.size() ; i++) {
int platformNo = list.get(i).getPlatformNo();
int lockingNum = list.get(i).getLockingNum();
int useNum = platformNo-lockingNum;
list.get(i).setUseNum(useNum);
}
PagerVo<BusVehicleApplyListVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderAllDto.java

@ -16,6 +16,7 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -110,4 +111,9 @@ public class BusSalesOrderAllDto implements Dto {
@ApiModelProperty(value = "客户头像", required = true)
@NotBlank(message = "客户头像不能为空")
private String customerPhoto;
@ApiModelProperty(value = "选择的现车的车辆sid")
private List<String> vehicleList = new ArrayList<>();
@ApiModelProperty(value = "优惠包价值")
private List<String> priceList = new ArrayList<>();
}

20
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/BusSalesOrderPowerVo.java

@ -0,0 +1,20 @@
package com.yxt.anrui.buscenter.api.bussalesorder;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/5/13 10:59
* @Description
*/
@Data
public class BusSalesOrderPowerVo implements Vo {
private static final long serialVersionUID = -7297987001568904641L;
@ApiModelProperty(value = "销售支持部经理是否有权限")
private Boolean isHavePower;
@ApiModelProperty(value = "总经理是否有权限")
private Boolean isPower;
}

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderdeposit/BusSalesOrderDepositDto.java

@ -31,8 +31,6 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* Project: anrui-buscenter(业务管理) <br/>
* File: BusSalesOrderDepositDto.java <br/>
@ -52,7 +50,7 @@ public class BusSalesOrderDepositDto implements Dto {
private static final long serialVersionUID = -5178085916707721474L;
@ApiModelProperty("单台订金")
private BigDecimal deposit;
private String deposit;
@ApiModelProperty("订金合计")
private String depositAll;
@ApiModelProperty("订金交纳方式")

17
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesordermodel/BusSalesOrderModelDto.java

@ -31,7 +31,7 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import javax.validation.constraints.NotBlank;
/**
* Project: anrui-buscenter(业务管理) <br/>
@ -53,26 +53,37 @@ public class BusSalesOrderModelDto implements Dto {
private static final long serialVersionUID = -216156078782065154L;
@ApiModelProperty(value = "品牌")
@NotBlank(message = "参数错误:品牌")
private String brandName;
@ApiModelProperty(value = "品牌sid")
@NotBlank(message = "参数错误:品牌sid")
private String brandSid;
@ApiModelProperty("车型sid")
@NotBlank(message = "参数错误:车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
@NotBlank(message = "参数错误:配置sid")
private String modelConfigSid;
@ApiModelProperty("车型名称")
@NotBlank(message = "参数错误:车型名称")
private String modelName;
@ApiModelProperty("车型配置名称")
@NotBlank(message = "参数错误:车型配置名称")
private String modelConfig;
@ApiModelProperty("常用配置")
@NotBlank(message = "参数错误:常用配置")
private String config;
@ApiModelProperty("更多配置")
@NotBlank(message = "参数错误:更多配置")
private String moreConfig;
@ApiModelProperty("特殊配置说明")
@NotBlank(message = "特殊配置说明不能为空")
private String specialConfig;
@ApiModelProperty("单台指导价")
private BigDecimal guildPrice;
@NotBlank(message = "参数错误:主车单台指导价")
private String guildPrice;
@ApiModelProperty("单台成交价")
private BigDecimal finalPrice;
@NotBlank(message = "单台成交价不能为空")
private String finalPrice;
}

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesvehicleorder/BusSalesVehicleOrderDto.java

@ -56,5 +56,9 @@ public class BusSalesVehicleOrderDto implements Dto {
private String linkNo;
@ApiModelProperty("采购订单日期")
private String linkText;
@ApiModelProperty("可使用台数")
private Integer useNum;
@ApiModelProperty("本次使用台数")
private Integer usingNum;
}

239
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -30,8 +30,13 @@ import cn.hutool.core.convert.Convert;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo;
import com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceQuery;
import com.yxt.anrui.base.api.basepostprice.BaseOrderPostPriceVo;
import com.yxt.anrui.base.api.basepostprice.BasePostPriceFeign;
import com.yxt.anrui.base.api.basevehicle.AppVinsDetailsVo;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePolicyFeign;
import com.yxt.anrui.base.api.basevehiclepolicy.BaseVehiclePriceVo;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelConfigFeign;
import com.yxt.anrui.base.api.busvehicleorder.AppOrderReadyCar;
import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderFeign;
@ -88,6 +93,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
/**
@ -137,6 +143,10 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
private BaseVehicleFeign baseVehicleFeign;
@Autowired
private BusVehicleOrderFeign busVehicleOrderFeign;
@Autowired
private BasePostPriceFeign basePostPriceFeign;
@Autowired
private BaseVehiclePolicyFeign baseVehiclePolicyFeign;
/**
* 构造查询条件
@ -280,6 +290,11 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
public ResultBean<String> saveOrUpdateOrder(BusSalesOrderAllDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
//验证传入的参数是否正确
ResultBean resultBean = isCheck(dto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
if (StringUtils.isBlank(dto.getSid())) {
//新增
sid = save(dto);
@ -289,6 +304,107 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
return rb.success().setData(sid);
}
/**
* 验证销售订单中的计算数值的情况是否计算的正确
*
* @param dto 数据传输对象
* @return
*/
public ResultBean isCheck(BusSalesOrderAllDto dto) {
ResultBean rb = ResultBean.fireFail();
//验证台数是否正确
//初始化台数
int vehicleNum = 0;
if ("1".equals(dto.getType())) {
//现车
vehicleNum = dto.getBusSalesOrderVehicleList().size();
} else if ("2".equals(dto.getType())) {
//采购订单
List<BusSalesVehicleOrderDto> busSalesVehicleOrderList = dto.getBusSalesVehicleOrderList();
for (int i = 0; i < busSalesVehicleOrderList.size(); i++) {
vehicleNum = vehicleNum + busSalesVehicleOrderList.get(i).getUsingNum();
}
}
//判断和价格信息中的台数是否一致
int quantity = dto.getBusSalesOrderPrice().getQuantity();
if (vehicleNum != quantity) {
return rb.setMsg("选择的台数与价格信息中的台数数值不一致");
}
BigDecimal singleGuildPriceBig = new BigDecimal("0");
BigDecimal singleFinalPriceBig = new BigDecimal("0");
//单台指导价
String guildPrice = dto.getBusSalesOrderModel().getGuildPrice();
singleGuildPriceBig = singleGuildPriceBig.add(new BigDecimal(guildPrice));
//单台成交价
String finalPrice = dto.getBusSalesOrderModel().getFinalPrice();
singleFinalPriceBig = singleFinalPriceBig.add(new BigDecimal(finalPrice));
//包含上装
if ("1".equals(dto.getIsTop())) {
//上装价格
String topPrice = dto.getBusSalesOrderMakeup().getTopPrice();
singleGuildPriceBig.add(new BigDecimal(topPrice));
singleFinalPriceBig.add(new BigDecimal(topPrice));
}
//单台指导价(主车+上装价格)
String singleGuildPrice = dto.getBusSalesOrderPrice().getSingleGuildPrice();
String singleFinalPrice = dto.getBusSalesOrderPrice().getSingleFinalPrice();
//比较单台指导价(主车加上装)是否等于 单台指导价+上装的价格
if (new BigDecimal(singleGuildPrice).compareTo(singleGuildPriceBig) != 0) {
return rb.setMsg("价格信息中的单台指导价数值计算错误");
}
//比较单台成交价(主车加上装) 是否等于单台成交价+上装的价格
if (new BigDecimal(singleFinalPrice).compareTo(singleFinalPriceBig) != 0) {
return rb.setMsg("价格信息中的单台成交价数值计算错误");
}
//计算车价合计是否正确
String priceSum = dto.getBusSalesOrderPrice().getPriceSum();
//车价合计是否等于单台成交价*数量
if (new BigDecimal(priceSum).compareTo(singleFinalPriceBig.multiply(new BigDecimal(new Integer(quantity).toString()))) != 0) {
return rb.setMsg("价格信息中的车价合计数值计算错误");
}
//计算主车优惠明细计算的是否正确
List<BusSalesOrderDiscountDto> busSalesOrderDiscountList = dto.getBusSalesOrderDiscountList();
if (busSalesOrderDiscountList.size() > 0) {
for (int i = 0; i < busSalesOrderDiscountList.size(); i++) {
//价值
String price = busSalesOrderDiscountList.get(i).getPrice();
Integer num = busSalesOrderDiscountList.get(i).getNum();
String totalValue = busSalesOrderDiscountList.get(i).getTotalValue();
if (new BigDecimal(totalValue).compareTo(new BigDecimal(price).multiply(new BigDecimal(num.toString()))) != 0) {
return rb.setMsg("主车优惠明细中总价值数值计算错误");
}
}
}
//订金信息的数值验证
String deposit = dto.getBusSalesOrderDeposit().getDeposit();
String depositAll = dto.getBusSalesOrderDeposit().getDepositAll();
if (new BigDecimal(depositAll).compareTo(new BigDecimal(deposit).multiply(new BigDecimal(new Integer(quantity).toString()))) != 0) {
return rb.setMsg("订金信息中订金合计数值计算错误");
}
if ("02".equals(dto.getBusSalesOrderDeposit().getDepositTypeKey())) {
List<BusDepositFictitiousDto> busDepositFictitiousList = dto.getBusDepositFictitiousList();
BigDecimal depositBig = new BigDecimal("0");
if (busDepositFictitiousList.size() > 0) {
for (int i = 0; i < busDepositFictitiousList.size(); i++) {
String depositPrice = busDepositFictitiousList.get(i).getDepositPrice();
String price = busDepositFictitiousList.get(i).getPrice();
if (new BigDecimal(price).compareTo(new BigDecimal(depositPrice)) > 0) {
return rb.setMsg("虚拟订单中存在本次结转金额大于订金剩余金额的数据");
}
depositBig = depositBig.add(new BigDecimal(price));
}
}
//判断补交金额和订金合计-本次结转金额
String makeUpDeposit = dto.getBusSalesOrderDeposit().getMakeUpDeposit();
if (new BigDecimal(makeUpDeposit).compareTo(new BigDecimal(depositAll).subtract(depositBig)) != 0) {
return rb.setMsg("订金信息中需补交订金数值计算错误");
}
}
return rb.success();
}
private void updateOrder(BusSalesOrderAllDto dto) {
//主车车型信息
BusSalesOrderModelDto busSalesOrderModelDto = dto.getBusSalesOrderModel();
@ -421,14 +537,14 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
} else {
variables.put("isLoan", false);
}
//销售支持部经理的角色sid
String roleSid = "87a823b0-201b-4a0b-8025-774a5aa27bef";
//查询销售支持部经理是否超权限
//查询总经理审批是否超权限
//查询角色是否超权限
BusSalesOrderPowerVo busSalesOrderPowerVo = isHavePower(dto);
boolean isHavePower = busSalesOrderPowerVo.getIsHavePower();
boolean isPower = busSalesOrderPowerVo.getIsPower();
//销售部经理是否超权限
variables.put("isPrice", isHavePower);
//总经理是否超权限
variables.put("isPrice1", isPower);
//查询是否排产
if ("3".equals(dto.getType())) {
variables.put("isLoan1", true);
@ -453,6 +569,113 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
return resultBean;
}
/**
* 判断销售部经理和总经理是否超权限
*
* @param dto 数据传输对象
* @return
*/
public BusSalesOrderPowerVo isHavePower(BusSalesOrderAllDto dto) {
BusSalesOrderPowerVo busSalesOrderPowerVo = new BusSalesOrderPowerVo();
boolean isHavePower = false;
boolean isPower = false;
//总指导价-总成交价-总优惠包的价值
BigDecimal bigDecimalOne = new BigDecimal("0");
//初始化总促销金额
BigDecimal initBigDecimal = new BigDecimal("0");
//岗位权限+总促销价格
BigDecimal bigDecimalTwo = new BigDecimal("0");
//单台指导价(主车加上装)
String singleGuildPrice = dto.getBusSalesOrderPrice().getSingleGuildPrice();
//单台成交价(主车加上装)
String singleFinalPrice = dto.getBusSalesOrderPrice().getSingleFinalPrice();
//台数
Integer quantity = dto.getBusSalesOrderPrice().getQuantity();
//计算总指导价
BigDecimal guildPriceAll = new BigDecimal(singleGuildPrice).multiply(new BigDecimal(quantity.toString()));
//计算总成交价
BigDecimal finalPriceAll = new BigDecimal(singleFinalPrice).multiply(new BigDecimal(quantity.toString()));
//总优惠包
BigDecimal discountPrice = new BigDecimal("0");
List<String> priceList = dto.getPriceList();
if (priceList.size() > 0) {
for (int i = 0; i < priceList.size(); i++) {
String price = priceList.get(i);
discountPrice = discountPrice.add(new BigDecimal(price));
}
}
//计算总指导价-总成交价-总优惠包的价值
bigDecimalOne = guildPriceAll.subtract(finalPriceAll).subtract(discountPrice);
List<String> vehicleList = new ArrayList<>();
//是否是现车
if ("1".equals(dto.getType())) {
vehicleList = dto.getVehicleList();
//根据现车去查询销售政策的总促销政策之和
if (vehicleList.size() > 0) {
for (int i = 0; i < vehicleList.size(); i++) {
//根据sid去查询销售政策的sid,根据销售政策查询销售政策的金额
ResultBean<BaseVehiclePriceVo> priceResultBean = baseVehiclePolicyFeign.selectPrice(vehicleList.get(i));
String price = priceResultBean.getData().getDiscountMoney();
BigDecimal bigDecimal1 = new BigDecimal(price);
initBigDecimal = initBigDecimal.add(bigDecimal1);
}
}
}
//销售经理的角色sid
String roleSid = "f0a79b5e-5338-435e-b0c6-08fc01048f55";
//查询销售支持部经理是否超权限
String brandSid = dto.getBusSalesOrderModel().getBrandSid();
BaseOrderPostPriceQuery baseOrderPostPriceQuery = new BaseOrderPostPriceQuery();
baseOrderPostPriceQuery.setBrandSid(brandSid);
baseOrderPostPriceQuery.setRoleSid(roleSid);
ResultBean<BaseOrderPostPriceVo> resultBean1 = basePostPriceFeign.selectPostPrice(baseOrderPostPriceQuery);
if (resultBean1.getSuccess()) {
String price = resultBean1.getData().getPrice();
//ToDo:计算是否有权限:岗位权限(销售部经理权限、总经理权限)+总促销金额<总指导价-总成交价-优惠包总价值
//销售支持部经理的岗位权限价格
BigDecimal bigDecimal2 = new BigDecimal(price);
bigDecimalTwo = bigDecimal2.add(initBigDecimal);
//判断岗位权限+总促销价格和总指导价-总成交价-优惠包总价值的大小
if (bigDecimalTwo.compareTo(bigDecimalOne) < 0) {
//bigDecimalTwo<bigDecimalOne
isHavePower = true;
} else if (bigDecimalTwo.compareTo(bigDecimalOne) > 0) {
//bigDecimalTwo>bigDecimalOne
isHavePower = false;
} else {
isHavePower = false;
}
}
//总经理的角色sid
roleSid = "135b4829-2928-4124-a5b3-7d4b1101a863";
//查询总经理审批是否超权限
baseOrderPostPriceQuery = new BaseOrderPostPriceQuery();
baseOrderPostPriceQuery.setBrandSid(brandSid);
baseOrderPostPriceQuery.setRoleSid(roleSid);
ResultBean<BaseOrderPostPriceVo> resultBean2 = basePostPriceFeign.selectPostPrice(baseOrderPostPriceQuery);
if (resultBean2.getSuccess()) {
String price = resultBean2.getData().getPrice();
//ToDo:计算是否有权限:岗位权限(销售部经理权限、总经理权限)+总促销金额>总指导价-总成交价-优惠包总价值
//总经理的岗位权限价格
bigDecimalTwo = new BigDecimal("0");
BigDecimal bigDecimal2 = new BigDecimal(price);
bigDecimalTwo = bigDecimal2.add(initBigDecimal);
//判断岗位权限+总促销价格和总指导价-总成交价-优惠包总价值的大小
if (bigDecimalTwo.compareTo(bigDecimalOne) < 0) {
//bigDecimalTwo<bigDecimalOne
isPower = true;
} else if (bigDecimalTwo.compareTo(bigDecimalOne) > 0) {
//bigDecimalTwo>bigDecimalOne
isPower = false;
} else {
isPower = false;
}
}
busSalesOrderPowerVo.setIsPower(isPower);
busSalesOrderPowerVo.setIsHavePower(isHavePower);
return busSalesOrderPowerVo;
}
/**
* 查询用户是否设置了部门
*

2
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/sysprourl/SysProUrlService.java

@ -183,6 +183,6 @@ public class SysProUrlService extends MybatisBaseService<SysProUrlMapper, SysPro
return rb.setMsg("请指定要操作的类型");
}
String url = baseMapper.selectUrlByKey(procDefId, taskDefKey, type);
return null;
return rb.success().setData(url);
}
}

Loading…
Cancel
Save