Merge pull request 'develop' (#130) from develop into master
Reviewed-on: http://git.xdadan.loc/tanex/emis-service/pulls/130
This commit is contained in:
commit
5e7289cd2f
@ -0,0 +1,95 @@
|
||||
package com.xdadan.erp.web.emis;
|
||||
|
||||
import com.xdadan.erp.common.annotation.Log;
|
||||
import com.xdadan.erp.common.core.controller.BaseController;
|
||||
import com.xdadan.erp.common.core.domain.AjaxResult;
|
||||
import com.xdadan.erp.common.core.page.TableDataInfo;
|
||||
import com.xdadan.erp.common.enums.BusinessType;
|
||||
import com.xdadan.erp.common.utils.poi.ExcelUtil;
|
||||
import com.xdadan.erp.emis.domain.EmisSalesCommissionRatio;
|
||||
import com.xdadan.erp.emis.service.IEmisSalesCommissionRatioService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售计提比例配置Controller
|
||||
* 提供增删改查和导出等接口
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/emis/salesCommissionRatio")
|
||||
public class EmisSalesCommissionRatioController extends BaseController {
|
||||
@Autowired
|
||||
private IEmisSalesCommissionRatioService emisSalesCommissionRatioService;
|
||||
|
||||
/**
|
||||
* 查询销售计提比例配置列表
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('emis:salesCommissionRatio:list')")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo list(EmisSalesCommissionRatio query) {
|
||||
startPage();
|
||||
List<EmisSalesCommissionRatio> list = emisSalesCommissionRatioService.selectEmisSalesCommissionRatioList(query);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID获取配置
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('emis:salesCommissionRatio:query')")
|
||||
@GetMapping("/{id}")
|
||||
public AjaxResult getInfo(@PathVariable Long id) {
|
||||
return AjaxResult.success(emisSalesCommissionRatioService.selectEmisSalesCommissionRatioById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增配置
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('emis:salesCommissionRatio:add')")
|
||||
@Log(title = "销售计提比例配置", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody EmisSalesCommissionRatio entity) {
|
||||
try {
|
||||
return toAjax(emisSalesCommissionRatioService.insertEmisSalesCommissionRatio(entity));
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改配置
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('emis:salesCommissionRatio:edit')")
|
||||
@Log(title = "销售计提比例配置", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody EmisSalesCommissionRatio entity) {
|
||||
try {
|
||||
return toAjax(emisSalesCommissionRatioService.updateEmisSalesCommissionRatio(entity));
|
||||
} catch (Exception e) {
|
||||
return AjaxResult.error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除配置
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('emis:salesCommissionRatio:remove')")
|
||||
@Log(title = "销售计提比例配置", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(emisSalesCommissionRatioService.deleteEmisSalesCommissionRatioByIds(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出配置
|
||||
*/
|
||||
@PreAuthorize("@ss.hasPermi('emis:salesCommissionRatio:export')")
|
||||
@Log(title = "销售计提比例配置", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(javax.servlet.http.HttpServletResponse response, EmisSalesCommissionRatio query) {
|
||||
List<EmisSalesCommissionRatio> list = emisSalesCommissionRatioService.selectEmisSalesCommissionRatioList(query);
|
||||
ExcelUtil<EmisSalesCommissionRatio> util = new ExcelUtil<>(EmisSalesCommissionRatio.class);
|
||||
util.exportExcel(response, list, "销售计提比例配置数据");
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,29 @@
|
||||
package com.xdadan.erp.emis.domain;
|
||||
|
||||
import lombok.Data;
|
||||
import com.xdadan.erp.common.core.domain.BaseEntity;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 销售计提比例配置实体类
|
||||
* 对应表:emis_sales_commission_ratio
|
||||
*/
|
||||
@Data
|
||||
public class EmisSalesCommissionRatio extends BaseEntity {
|
||||
/** 主键ID */
|
||||
private Long id;
|
||||
/** 销售主管 */
|
||||
private String salesExecutive;
|
||||
/** 销售主管占比 */
|
||||
private BigDecimal salesExecutiveRatio;
|
||||
/** 销售联系人 */
|
||||
private String salesmen;
|
||||
/** 销售联系人占比 */
|
||||
private BigDecimal salesmenRatio;
|
||||
/** 销售支持 */
|
||||
private String salesSupport;
|
||||
/** 销售支持占比 */
|
||||
private BigDecimal salesSupportRatio;
|
||||
/** 启用状态 1-启用 0-未启用 **/
|
||||
private String status;
|
||||
}
|
||||
@ -724,4 +724,9 @@ public class EmisWaybill extends BaseEntity
|
||||
@DataAuditField(fieldComment = "箱量")
|
||||
private String boxQuantity;
|
||||
|
||||
/* 销售支持 */
|
||||
private String salesSupport;
|
||||
/* 销售主管 */
|
||||
private String salesExecutive;
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,83 @@
|
||||
/**
|
||||
* @Project: emis
|
||||
* @Title: EmisSalesCommissionRatioMapper.java
|
||||
* @author
|
||||
* @date
|
||||
* @Copyright: ShangHai Doitinfo 2022 All rights reserved.
|
||||
* @version v1.0
|
||||
* @Description: <p> 销售计提比例配置 Mapper 接口 </p>
|
||||
* <span style='color:red'> Warning : This file is generate by ai tools,don't edit!!! </span>
|
||||
*/
|
||||
package com.xdadan.erp.emis.mapper;
|
||||
|
||||
import java.util.List;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.xdadan.erp.emis.domain.EmisSalesCommissionRatio;
|
||||
|
||||
/**
|
||||
* @ClassName EmisSalesCommissionRatioMapper
|
||||
* @Description
|
||||
* <p>
|
||||
* 销售计提比例配置 Mapper 接口
|
||||
* </p>
|
||||
* @author
|
||||
* @date
|
||||
*/
|
||||
public interface EmisSalesCommissionRatioMapper extends BaseMapper<EmisSalesCommissionRatio> {
|
||||
/**
|
||||
* 主键查询
|
||||
*
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
EmisSalesCommissionRatio selectEmisSalesCommissionRatioById(Long id);
|
||||
|
||||
/**
|
||||
* 查询列表
|
||||
*
|
||||
* @param emisSalesCommissionRatio
|
||||
* @return 集合
|
||||
*/
|
||||
List<EmisSalesCommissionRatio> selectEmisSalesCommissionRatioList(
|
||||
EmisSalesCommissionRatio emisSalesCommissionRatio);
|
||||
|
||||
/**
|
||||
* 新增
|
||||
*
|
||||
* @param emisSalesCommissionRatio
|
||||
* @return
|
||||
*/
|
||||
int insertEmisSalesCommissionRatio(EmisSalesCommissionRatio emisSalesCommissionRatio);
|
||||
|
||||
/**
|
||||
* 修改
|
||||
*
|
||||
* @param emisSalesCommissionRatio
|
||||
* @return
|
||||
*/
|
||||
int updateEmisSalesCommissionRatio(EmisSalesCommissionRatio emisSalesCommissionRatio);
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteEmisSalesCommissionRatioById(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除
|
||||
*
|
||||
* @param ids 需要删除的数据主键集合
|
||||
* @return 结果
|
||||
*/
|
||||
int deleteEmisSalesCommissionRatioByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 验重:salesExecutive、salesmen、salesSupport、status都相同视为重复
|
||||
*
|
||||
* @param emisSalesCommissionRatio
|
||||
* @return 重复数量
|
||||
*/
|
||||
int checkUnique(EmisSalesCommissionRatio emisSalesCommissionRatio);
|
||||
}
|
||||
@ -0,0 +1,46 @@
|
||||
package com.xdadan.erp.emis.service;
|
||||
|
||||
import com.xdadan.erp.emis.domain.EmisSalesCommissionRatio;
|
||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售计提比例配置Service接口
|
||||
*/
|
||||
public interface IEmisSalesCommissionRatioService {
|
||||
/**
|
||||
* 主键查询
|
||||
*/
|
||||
EmisSalesCommissionRatio selectEmisSalesCommissionRatioById(Long id);
|
||||
|
||||
/**
|
||||
* 查询销售计提比例配置列表
|
||||
*/
|
||||
List<EmisSalesCommissionRatio> selectEmisSalesCommissionRatioList(EmisSalesCommissionRatio query);
|
||||
|
||||
/**
|
||||
* 新增销售计提比例配置
|
||||
*/
|
||||
int insertEmisSalesCommissionRatio(EmisSalesCommissionRatio entity) throws EmisBizError;
|
||||
|
||||
/**
|
||||
* 修改销售计提比例配置
|
||||
*/
|
||||
int updateEmisSalesCommissionRatio(EmisSalesCommissionRatio entity) throws EmisBizError;
|
||||
|
||||
/**
|
||||
* 批量删除销售计提比例配置
|
||||
*/
|
||||
int deleteEmisSalesCommissionRatioByIds(Long[] ids);
|
||||
|
||||
/**
|
||||
* 删除单个销售计提比例配置
|
||||
*/
|
||||
int deleteEmisSalesCommissionRatioById(Long id);
|
||||
|
||||
/**
|
||||
* 校验比例和是否有效(<=100%)
|
||||
*/
|
||||
boolean checkRatioValid(EmisSalesCommissionRatio entity);
|
||||
}
|
||||
@ -69,6 +69,9 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
@Autowired
|
||||
RedissonService redissonService;
|
||||
|
||||
@Autowired
|
||||
private EmisSalesCommissionRatioMapper emisSalesCommissionRatioMapper;
|
||||
|
||||
/**
|
||||
* 自动计算提成
|
||||
*/
|
||||
@ -1340,31 +1343,66 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
}
|
||||
|
||||
// 插入提成
|
||||
if(BigDecimal.valueOf(profitMoney).compareTo(BigDecimal.ZERO)>0) {
|
||||
|
||||
EmisCommissionDtl emisCommissionDtl = new EmisCommissionDtl();
|
||||
emisCommissionDtl.setBillCode(waybill.getBillCode());
|
||||
emisCommissionDtl.setFeeType(quoteItem.getFeeType());
|
||||
|
||||
emisCommissionDtl.setBillType("1");
|
||||
|
||||
emisCommissionDtl.setBillMonth(billMonth);
|
||||
emisCommissionDtl.setMoney(BigDecimal.valueOf(profitMoney));
|
||||
|
||||
emisCommissionDtl.setEmpName(salesmen);
|
||||
|
||||
emisCommissionDtl.setCalcExpr(calcExprStr);
|
||||
emisCommissionDtl.setQuoteId(exprItem.getQuoteId());
|
||||
emisCommissionDtl.setQuoteName(quoteItem.getQuoteName());
|
||||
emisCommissionDtl.setExprId(exprItem.getId());
|
||||
|
||||
emisCommissionDtl.setFeeRemark(calcExprStr);
|
||||
|
||||
emisCommissionDtlMapper.insertEmisCommissionDtl(emisCommissionDtl);
|
||||
|
||||
// 单独根据人名称和月份汇总统计
|
||||
// reCalcEmpProfitSumMoney(salesmen,billMonth);
|
||||
}else{
|
||||
if (BigDecimal.valueOf(profitMoney).compareTo(BigDecimal.ZERO) > 0) {
|
||||
// 新增:按销售分成配置插入多岗位提成
|
||||
String salesSupport = waybill.getSalesSupport();
|
||||
String salesExecutive = waybill.getSalesExecutive();
|
||||
boolean hasRatioInsert = false;
|
||||
if (StringUtils.isNotEmpty(salesmen) && StringUtils.isNotEmpty(salesSupport)
|
||||
&& StringUtils.isNotEmpty(salesExecutive)) {
|
||||
EmisSalesCommissionRatio ratioQuery = new EmisSalesCommissionRatio();
|
||||
ratioQuery.setSalesmen(salesmen);
|
||||
ratioQuery.setSalesSupport(salesSupport);
|
||||
ratioQuery.setSalesExecutive(salesExecutive);
|
||||
ratioQuery.setStatus("1");
|
||||
List<EmisSalesCommissionRatio> ratioList = emisSalesCommissionRatioMapper
|
||||
.selectEmisSalesCommissionRatioList(ratioQuery);
|
||||
if (!CollectionUtils.isEmpty(ratioList)) {
|
||||
EmisSalesCommissionRatio ratio = ratioList.get(0);
|
||||
// 销售联系人
|
||||
if (StringUtils.isNotEmpty(salesmen) && ratio.getSalesmenRatio() != null
|
||||
&& ratio.getSalesmenRatio().compareTo(BigDecimal.ZERO) > 0) {
|
||||
insertCommissionDtl(
|
||||
waybill.getBillCode(), quoteItem.getFeeType(), "1", billMonth,
|
||||
BigDecimal.valueOf(profitMoney).multiply(ratio.getSalesmenRatio())
|
||||
.divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP),
|
||||
salesmen, calcExprStr, exprItem.getQuoteId(), quoteItem.getQuoteName(),
|
||||
exprItem.getId(), calcExprStr);
|
||||
hasRatioInsert = true;
|
||||
}
|
||||
// 销售支持
|
||||
if (StringUtils.isNotEmpty(salesSupport) && ratio.getSalesSupportRatio() != null
|
||||
&& ratio.getSalesSupportRatio().compareTo(BigDecimal.ZERO) > 0) {
|
||||
insertCommissionDtl(
|
||||
waybill.getBillCode(), quoteItem.getFeeType(), "1", billMonth,
|
||||
BigDecimal.valueOf(profitMoney).multiply(ratio.getSalesSupportRatio())
|
||||
.divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP),
|
||||
salesSupport, calcExprStr, exprItem.getQuoteId(),
|
||||
quoteItem.getQuoteName(), exprItem.getId(), calcExprStr);
|
||||
hasRatioInsert = true;
|
||||
}
|
||||
// 销售主管
|
||||
if (StringUtils.isNotEmpty(salesExecutive) && ratio.getSalesExecutiveRatio() != null
|
||||
&& ratio.getSalesExecutiveRatio().compareTo(BigDecimal.ZERO) > 0) {
|
||||
insertCommissionDtl(
|
||||
waybill.getBillCode(), quoteItem.getFeeType(), "1", billMonth,
|
||||
BigDecimal.valueOf(profitMoney).multiply(ratio.getSalesExecutiveRatio())
|
||||
.divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP),
|
||||
salesExecutive, calcExprStr, exprItem.getQuoteId(),
|
||||
quoteItem.getQuoteName(), exprItem.getId(), calcExprStr);
|
||||
hasRatioInsert = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// 若未查到分成配置或无有效分成,则按原逻辑插入销售员
|
||||
if (!hasRatioInsert) {
|
||||
insertCommissionDtl(
|
||||
waybill.getBillCode(), quoteItem.getFeeType(), "1", billMonth,
|
||||
BigDecimal.valueOf(profitMoney),
|
||||
salesmen, calcExprStr, exprItem.getQuoteId(), quoteItem.getQuoteName(),
|
||||
exprItem.getId(), calcExprStr);
|
||||
}
|
||||
} else {
|
||||
log.error("计算提成费用为0");
|
||||
}
|
||||
|
||||
@ -1379,6 +1417,26 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 提成明细插入工具方法,支持金额自定义
|
||||
*/
|
||||
private void insertCommissionDtl(
|
||||
String billCode, String feeType, String billType, String billMonth, BigDecimal money,
|
||||
String empName, String calcExpr, Long quoteId, String quoteName, Long exprId, String feeRemark) {
|
||||
EmisCommissionDtl emisCommissionDtl = new EmisCommissionDtl();
|
||||
emisCommissionDtl.setBillCode(billCode);
|
||||
emisCommissionDtl.setFeeType(feeType);
|
||||
emisCommissionDtl.setBillType(billType);
|
||||
emisCommissionDtl.setBillMonth(billMonth);
|
||||
emisCommissionDtl.setMoney(money);
|
||||
emisCommissionDtl.setEmpName(empName);
|
||||
emisCommissionDtl.setCalcExpr(calcExpr);
|
||||
emisCommissionDtl.setQuoteId(quoteId);
|
||||
emisCommissionDtl.setQuoteName(quoteName);
|
||||
emisCommissionDtl.setExprId(exprId);
|
||||
emisCommissionDtl.setFeeRemark(feeRemark);
|
||||
emisCommissionDtlMapper.insertEmisCommissionDtl(emisCommissionDtl);
|
||||
}
|
||||
|
||||
/**
|
||||
* 计算中转操作提成
|
||||
|
||||
@ -0,0 +1,117 @@
|
||||
package com.xdadan.erp.emis.service.impl;
|
||||
|
||||
import com.xdadan.erp.emis.domain.EmisSalesCommissionRatio;
|
||||
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
|
||||
import com.xdadan.erp.emis.domain.exception.EmisBizError;
|
||||
import com.xdadan.erp.emis.mapper.EmisSalesCommissionRatioMapper;
|
||||
import com.xdadan.erp.emis.service.IEmisSalesCommissionRatioService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 销售计提比例配置Service实现类
|
||||
* 负责销售计提比例配置的增删改查等业务逻辑处理
|
||||
*
|
||||
* @author heyu
|
||||
*/
|
||||
@Service
|
||||
public class EmisSalesCommissionRatioServiceImpl implements IEmisSalesCommissionRatioService {
|
||||
@Autowired
|
||||
private EmisSalesCommissionRatioMapper emisSalesCommissionRatioMapper;
|
||||
|
||||
/**
|
||||
* 根据主键ID查询销售计提比例配置
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return 配置实体
|
||||
*/
|
||||
@Override
|
||||
public EmisSalesCommissionRatio selectEmisSalesCommissionRatioById(Long id) {
|
||||
return emisSalesCommissionRatioMapper.selectById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询销售计提比例配置列表
|
||||
*
|
||||
* @param query 查询条件
|
||||
* @return 配置列表
|
||||
*/
|
||||
@Override
|
||||
public List<EmisSalesCommissionRatio> selectEmisSalesCommissionRatioList(EmisSalesCommissionRatio query) {
|
||||
return emisSalesCommissionRatioMapper.selectEmisSalesCommissionRatioList(query);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增销售计提比例配置
|
||||
*
|
||||
* @param entity 配置实体
|
||||
* @return 影响行数
|
||||
* @throws IllegalArgumentException 占比校验不通过时抛出
|
||||
*/
|
||||
@Override
|
||||
public int insertEmisSalesCommissionRatio(EmisSalesCommissionRatio entity) throws EmisBizError {
|
||||
if (emisSalesCommissionRatioMapper.checkUnique(entity) > 0) {
|
||||
throw new EmisBizError(EmisBizErrorType.EXISTS, "已存在相同的销售计提比例配置");
|
||||
}
|
||||
if (!checkRatioValid(entity)) {
|
||||
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "占比总和必须小于等于100%");
|
||||
}
|
||||
return emisSalesCommissionRatioMapper.insertEmisSalesCommissionRatio(entity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改销售计提比例配置
|
||||
*
|
||||
* @param entity 配置实体
|
||||
* @return 影响行数
|
||||
* @throws IllegalArgumentException 占比校验不通过时抛出
|
||||
*/
|
||||
@Override
|
||||
public int updateEmisSalesCommissionRatio(EmisSalesCommissionRatio entity) throws EmisBizError {
|
||||
if (emisSalesCommissionRatioMapper.checkUnique(entity) > 0) {
|
||||
throw new EmisBizError(EmisBizErrorType.EXISTS, "已存在相同的销售计提比例配置");
|
||||
}
|
||||
if (!checkRatioValid(entity)) {
|
||||
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "占比总和必须小于等于100%");
|
||||
}
|
||||
return emisSalesCommissionRatioMapper.updateEmisSalesCommissionRatio(entity);
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除销售计提比例配置
|
||||
*
|
||||
* @param ids 主键ID数组
|
||||
* @return 影响行数
|
||||
*/
|
||||
@Override
|
||||
public int deleteEmisSalesCommissionRatioByIds(Long[] ids) {
|
||||
return emisSalesCommissionRatioMapper.deleteEmisSalesCommissionRatioByIds(ids);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单个销售计提比例配置
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return 影响行数
|
||||
*/
|
||||
@Override
|
||||
public int deleteEmisSalesCommissionRatioById(Long id) {
|
||||
return emisSalesCommissionRatioMapper.deleteEmisSalesCommissionRatioById(id);
|
||||
}
|
||||
|
||||
/**
|
||||
* 校验销售计提比例总和是否有效(<=100%)
|
||||
*
|
||||
* @param entity 配置实体
|
||||
* @return true-有效,false-无效
|
||||
*/
|
||||
@Override
|
||||
public boolean checkRatioValid(EmisSalesCommissionRatio entity) {
|
||||
java.math.BigDecimal sum = entity.getSalesExecutiveRatio()
|
||||
.add(entity.getSalesmenRatio())
|
||||
.add(entity.getSalesSupportRatio());
|
||||
return sum.compareTo(new java.math.BigDecimal("100.00")) <= 0;
|
||||
}
|
||||
}
|
||||
@ -89,7 +89,7 @@
|
||||
|
||||
<if test="quoteName != null and quoteName != ''"> and quote_name like concat('%', #{quoteName}, '%')</if>
|
||||
<if test="fromCountry != null and fromCountry != ''"> and ( FIND_IN_SET(#{fromCountry},from_country) or from_country='-1' or from_country is null or from_country='' or ( #{fromCountry}!='0086' and from_country='-2' ) or from_country='-3')</if>
|
||||
<if test="country != null and country != ''"> and ( FIND_IN_SET(#{country},country) or country='-1' or country is null or country='' or ( #{country}!='0086' and country='-2' ) or from_country='-3' ) </if>
|
||||
<if test="country != null and country != ''"> and ( FIND_IN_SET(#{country},country) or country='-1' or country is null or country='' or ( #{country}!='0086' and country='-2' ) or country='-3' ) </if>
|
||||
|
||||
<if test="sendSiteCode != null and sendSiteCode != ''"> and ( ( FIND_IN_SET(#{sendSiteCode},send_site_code) and send_site_code is not null ) or send_site_code is null ) </if>
|
||||
<if test="nextSiteCode != null and nextSiteCode != ''"> and ( ( FIND_IN_SET(#{nextSiteCode},next_site_code) and next_site_code is not null ) or next_site_code is null ) </if>
|
||||
|
||||
@ -0,0 +1,127 @@
|
||||
<?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.xdadan.erp.emis.mapper.EmisSalesCommissionRatioMapper">
|
||||
|
||||
<resultMap type="com.xdadan.erp.emis.domain.EmisSalesCommissionRatio" id="EmisSalesCommissionRatioResult" extends="com.xdadan.erp.emis.mapper.EmisBaseMapper.EmisBaseResult">
|
||||
<result property="id" column="id" />
|
||||
<result property="salesExecutive" column="sales_executive" />
|
||||
<result property="salesExecutiveRatio" column="sales_executive_ratio" />
|
||||
<result property="salesmen" column="salesmen" />
|
||||
<result property="salesmenRatio" column="salesmen_ratio" />
|
||||
<result property="salesSupport" column="sales_support" />
|
||||
<result property="salesSupportRatio" column="sales_support_ratio" />
|
||||
<result property="status" column="status" />
|
||||
</resultMap>
|
||||
|
||||
<sql id="selectEmisSalesCommissionRatioVo">
|
||||
select id, sales_executive, sales_executive_ratio, salesmen, salesmen_ratio, sales_support, sales_support_ratio, status, remark, del_flag, create_by, create_time, update_by, update_time, create_site, update_site from emis_sales_commission_ratio
|
||||
</sql>
|
||||
|
||||
<!-- 查询列表 -->
|
||||
<select id="selectEmisSalesCommissionRatioList" parameterType="com.xdadan.erp.emis.domain.EmisSalesCommissionRatio" resultMap="EmisSalesCommissionRatioResult">
|
||||
<include refid="selectEmisSalesCommissionRatioVo"/>
|
||||
<where>
|
||||
<if test="salesExecutive != null and salesExecutive != ''">AND sales_executive like concat('%', #{salesExecutive}, '%')</if>
|
||||
<if test="salesmen != null and salesmen != ''">AND salesmen like concat('%', #{salesmen}, '%')</if>
|
||||
<if test="salesSupport != null and salesSupport != ''">AND sales_support like concat('%', #{salesSupport}, '%')</if>
|
||||
<if test="status != null and status != ''">AND status = #{status}</if>
|
||||
<if test="delFlag != null and delFlag != ''">AND del_flag = #{delFlag}</if>
|
||||
</where>
|
||||
ORDER BY id DESC
|
||||
</select>
|
||||
|
||||
<!-- 主键查询 -->
|
||||
<select id="selectEmisSalesCommissionRatioById" parameterType="long" resultMap="EmisSalesCommissionRatioResult">
|
||||
<include refid="selectEmisSalesCommissionRatioVo"/>
|
||||
where id = #{id}
|
||||
</select>
|
||||
|
||||
<!-- 新增 -->
|
||||
<insert id="insertEmisSalesCommissionRatio" parameterType="com.xdadan.erp.emis.domain.EmisSalesCommissionRatio" useGeneratedKeys="true" keyProperty="id">
|
||||
insert into emis_sales_commission_ratio
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="salesExecutive != null and salesExecutive != ''">sales_executive,</if>
|
||||
<if test="salesExecutiveRatio != null">sales_executive_ratio,</if>
|
||||
<if test="salesmen != null and salesmen != ''">salesmen,</if>
|
||||
<if test="salesmenRatio != null">salesmen_ratio,</if>
|
||||
<if test="salesSupport != null and salesSupport != ''">sales_support,</if>
|
||||
<if test="salesSupportRatio != null">sales_support_ratio,</if>
|
||||
<if test="status != null">status,</if>
|
||||
<if test="remark != null and remark != ''">remark,</if>
|
||||
<if test="delFlag != null and delFlag != ''">del_flag,</if>
|
||||
<if test="createBy != null and createBy != ''">create_by,</if>
|
||||
<if test="createTime != null">create_time,</if>
|
||||
<if test="updateBy != null and updateBy != ''">update_by,</if>
|
||||
<if test="updateTime != null">update_time,</if>
|
||||
<if test="createSite != null and createSite != ''">create_site,</if>
|
||||
<if test="updateSite != null and updateSite != ''">update_site,</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="salesExecutive != null and salesExecutive != ''">#{salesExecutive},</if>
|
||||
<if test="salesExecutiveRatio != null">#{salesExecutiveRatio},</if>
|
||||
<if test="salesmen != null and salesmen != ''">#{salesmen},</if>
|
||||
<if test="salesmenRatio != null">#{salesmenRatio},</if>
|
||||
<if test="salesSupport != null and salesSupport != ''">#{salesSupport},</if>
|
||||
<if test="salesSupportRatio != null">#{salesSupportRatio},</if>
|
||||
<if test="status != null">#{status},</if>
|
||||
<if test="remark != null and remark != ''">#{remark},</if>
|
||||
<if test="delFlag != null and delFlag != ''">#{delFlag},</if>
|
||||
<if test="createBy != null and createBy != ''">#{createBy},</if>
|
||||
<if test="createTime != null">#{createTime},</if>
|
||||
<if test="updateBy != null and updateBy != ''">#{updateBy},</if>
|
||||
<if test="updateTime != null">#{updateTime},</if>
|
||||
<if test="createSite != null and createSite != ''">#{createSite},</if>
|
||||
<if test="updateSite != null and updateSite != ''">#{updateSite},</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
<!-- 修改 -->
|
||||
<update id="updateEmisSalesCommissionRatio" parameterType="com.xdadan.erp.emis.domain.EmisSalesCommissionRatio">
|
||||
UPDATE emis_sales_commission_ratio
|
||||
<set>
|
||||
<if test="salesExecutive != null">sales_executive = #{salesExecutive},</if>
|
||||
<if test="salesExecutiveRatio != null">sales_executive_ratio = #{salesExecutiveRatio},</if>
|
||||
<if test="salesmen != null">salesmen = #{salesmen},</if>
|
||||
<if test="salesmenRatio != null">salesmen_ratio = #{salesmenRatio},</if>
|
||||
<if test="salesSupport != null">sales_support = #{salesSupport},</if>
|
||||
<if test="salesSupportRatio != null">sales_support_ratio = #{salesSupportRatio},</if>
|
||||
<if test="status != null">status = #{status},</if>
|
||||
<if test="remark != null">remark = #{remark},</if>
|
||||
<if test="delFlag != null">del_flag = #{delFlag},</if>
|
||||
<if test="updateBy != null">update_by = #{updateBy},</if>
|
||||
update_time = NOW(),
|
||||
<if test="updateSite != null">update_site = #{updateSite},</if>
|
||||
</set>
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<!-- 软删除 -->
|
||||
<update id="deleteEmisSalesCommissionRatioById" parameterType="long">
|
||||
UPDATE emis_sales_commission_ratio
|
||||
SET del_flag = '1', update_time = NOW()
|
||||
WHERE id = #{id}
|
||||
</update>
|
||||
|
||||
<!-- 批量软删除 -->
|
||||
<update id="deleteEmisSalesCommissionRatioByIds" parameterType="long">
|
||||
UPDATE emis_sales_commission_ratio
|
||||
SET del_flag = '1', update_time = NOW()
|
||||
WHERE id IN
|
||||
<foreach collection="array" item="id" open="(" separator="," close=")">
|
||||
#{id}
|
||||
</foreach>
|
||||
</update>
|
||||
|
||||
<!-- 验重:salesExecutive、salesmen、salesSupport、status都相同视为重复 -->
|
||||
<select id="checkUnique" parameterType="com.xdadan.erp.emis.domain.EmisSalesCommissionRatio" resultType="int">
|
||||
SELECT COUNT(1)
|
||||
FROM emis_sales_commission_ratio
|
||||
WHERE sales_executive = #{salesExecutive}
|
||||
AND salesmen = #{salesmen}
|
||||
AND sales_support = #{salesSupport}
|
||||
AND status = #{status}
|
||||
AND del_flag = '0'
|
||||
<if test="id != null">AND id != #{id}</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
@ -233,6 +233,8 @@
|
||||
<result property="virtualRemark" column="virtual_remark" />
|
||||
|
||||
<result property="transType" column="trans_type" />
|
||||
<result property="salesSupport" column="sales_support" />
|
||||
<result property="salesExecutive" column="sales_executive" />
|
||||
|
||||
|
||||
</resultMap>
|
||||
@ -435,6 +437,8 @@
|
||||
a3.phone as customer_phone,
|
||||
a3.nick_name as customer_nick_name,
|
||||
a3.avatar as customer_avatar,
|
||||
a3.sales_support ,
|
||||
a3.sales_executive ,
|
||||
|
||||
p.emp_name as dispatch_man_name,q.site_name as print_site_name,
|
||||
r.emp_name as print_man_name,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user