Merge pull request 'develop' (#118) from develop into master
Reviewed-on: http://git.xdadan.loc/tanex/emis-service/pulls/118
This commit is contained in:
commit
22e02e951b
@ -106,9 +106,12 @@ public class EmisCommissionQuoteController extends BaseController
|
||||
@PreAuthorize("@ss.hasPermi('emis:emisCommissionQuote:add')")
|
||||
@Log(title = "员工提成方案报价", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
public AjaxResult add(@RequestBody EmisCommissionQuote emisCommissionQuote)
|
||||
{
|
||||
return toAjax(emisCommissionQuoteService.insertEmisCommissionQuote(emisCommissionQuote));
|
||||
public AjaxResult add(@RequestBody EmisCommissionQuote emisCommissionQuote) {
|
||||
try {
|
||||
return toAjax(emisCommissionQuoteService.insertEmisCommissionQuote(emisCommissionQuote));
|
||||
} catch (EmisBizError e) {
|
||||
return AjaxResult.error(e.getMessage(), e.getErrorCode());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -117,9 +120,12 @@ public class EmisCommissionQuoteController extends BaseController
|
||||
@PreAuthorize("@ss.hasPermi('emis:emisCommissionQuote:edit')")
|
||||
@Log(title = "员工提成方案报价", businessType = BusinessType.UPDATE)
|
||||
@PutMapping
|
||||
public AjaxResult edit(@RequestBody EmisCommissionQuote emisCommissionQuote)
|
||||
{
|
||||
return toAjax(emisCommissionQuoteService.updateEmisCommissionQuote(emisCommissionQuote));
|
||||
public AjaxResult edit(@RequestBody EmisCommissionQuote emisCommissionQuote) {
|
||||
try {
|
||||
return toAjax(emisCommissionQuoteService.updateEmisCommissionQuote(emisCommissionQuote));
|
||||
} catch (EmisBizError e) {
|
||||
return AjaxResult.error(e.getMessage(), e.getErrorCode());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -51,7 +51,7 @@ public interface IEmisCommissionQuoteService
|
||||
* @param emisCommissionQuote 员工提成方案报价
|
||||
* @return 结果
|
||||
*/
|
||||
public int insertEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote);
|
||||
public int insertEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote) throws EmisBizError;
|
||||
|
||||
/**
|
||||
* 修改员工提成方案报价
|
||||
@ -59,7 +59,7 @@ public interface IEmisCommissionQuoteService
|
||||
* @param emisCommissionQuote 员工提成方案报价
|
||||
* @return 结果
|
||||
*/
|
||||
public int updateEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote);
|
||||
public int updateEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote) throws EmisBizError;
|
||||
|
||||
/**
|
||||
* 批量删除员工提成方案报价
|
||||
|
||||
@ -76,6 +76,25 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
|
||||
return emisCommissionQuoteMapper.checkUnique(emisCommissionQuote);
|
||||
}
|
||||
|
||||
/**
|
||||
* 公共验重方法,检查日期交叉和完全重复
|
||||
*
|
||||
* @param emisCommissionQuote 当前报价
|
||||
* @throws EmisBizError 存在冲突时抛出
|
||||
*/
|
||||
private void checkQuoteConflict(EmisCommissionQuote emisCommissionQuote) throws EmisBizError {
|
||||
List<EmisCommissionQuote> overlapList = checkDateOverlap(emisCommissionQuote);
|
||||
if (!overlapList.isEmpty()) {
|
||||
StringBuilder errorMsg = new StringBuilder();
|
||||
errorMsg.append("报价[").append(emisCommissionQuote.getQuoteName());
|
||||
for (EmisCommissionQuote overlap : overlapList) {
|
||||
errorMsg.append("\n- 与报价[").append(overlap.getQuoteName()).append("(ID:")
|
||||
.append(overlap.getQuoteId()).append(")]重复");
|
||||
}
|
||||
throw new EmisBizError(EmisBizErrorType.EXISTS, errorMsg.toString());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增员工提成方案报价
|
||||
*
|
||||
@ -83,8 +102,8 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int insertEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote)
|
||||
{
|
||||
public int insertEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote) throws EmisBizError {
|
||||
checkQuoteConflict(emisCommissionQuote);
|
||||
// 插入提成方案
|
||||
emisCommissionQuoteMapper.insertEmisCommissionQuote(emisCommissionQuote);
|
||||
|
||||
@ -107,8 +126,8 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
|
||||
* @return 结果
|
||||
*/
|
||||
@Override
|
||||
public int updateEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote)
|
||||
{
|
||||
public int updateEmisCommissionQuote(EmisCommissionQuote emisCommissionQuote) throws EmisBizError {
|
||||
checkQuoteConflict(emisCommissionQuote);
|
||||
return emisCommissionQuoteMapper.updateEmisCommissionQuote(emisCommissionQuote);
|
||||
}
|
||||
|
||||
@ -208,26 +227,7 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
|
||||
if (emisCommissionQuote.getPriorityLevel() == null) {
|
||||
emisCommissionQuote.setPriorityLevel(dbQuote.getPriorityLevel());
|
||||
}
|
||||
|
||||
// 检查日期交叉重复
|
||||
List<EmisCommissionQuote> overlapList = checkDateOverlap(emisCommissionQuote);
|
||||
if (!overlapList.isEmpty()) {
|
||||
StringBuilder errorMsg = new StringBuilder();
|
||||
errorMsg.append("报价[").append(emisCommissionQuote.getQuoteName()).append("]存在冲突:");
|
||||
|
||||
for (EmisCommissionQuote overlap : overlapList) {
|
||||
// 判断是否为完全重复
|
||||
boolean isDuplicate = isDuplicateQuote(emisCommissionQuote, overlap);
|
||||
if (isDuplicate) {
|
||||
errorMsg.append("\n- 与报价[").append(overlap.getQuoteName()).append("(ID:")
|
||||
.append(overlap.getQuoteId()).append(")]重复");
|
||||
} else {
|
||||
errorMsg.append("\n- 与报价[").append(overlap.getQuoteName()).append("(ID:")
|
||||
.append(overlap.getQuoteId()).append(")]日期交叉");
|
||||
}
|
||||
}
|
||||
throw new EmisBizError(EmisBizErrorType.EXISTS, errorMsg.toString());
|
||||
}
|
||||
checkQuoteConflict(emisCommissionQuote);
|
||||
|
||||
// 更新数据
|
||||
result += emisCommissionQuoteMapper.updateEmisCommissionQuote(emisCommissionQuote);
|
||||
@ -262,8 +262,10 @@ public class EmisCommissionQuoteServiceImpl implements IEmisCommissionQuoteServi
|
||||
StringUtils.equals(quote1.getPostType(), quote2.getPostType()) &&
|
||||
StringUtils.equals(quote1.getTransType(), quote2.getTransType()) &&
|
||||
StringUtils.equals(quote1.getFromCountry(), quote2.getFromCountry()) &&
|
||||
StringUtils.equals(quote1.getCountry(), quote2.getCountry())&&
|
||||
quote1.getStartDate()==quote2.getStartDate()&&
|
||||
quote1.getEndDate()==quote2.getEndDate();
|
||||
StringUtils.equals(quote1.getCountry(), quote2.getCountry()) &&
|
||||
StringUtils.equals(quote1.getTransLineCode(), quote2.getTransLineCode()) &&
|
||||
StringUtils.equals(quote1.getProdCode(), quote2.getProdCode()) &&
|
||||
quote1.getStartDate() == quote2.getStartDate() &&
|
||||
quote1.getEndDate() == quote2.getEndDate();
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,6 +65,13 @@
|
||||
<if test="transLineCode != null and transLineCode != ''"> and trans_line_code=#{transLineCode} </if>
|
||||
<if test="prodCode != null and prodCode != ''"> and FIND_IN_SET(#{prodCode},prod_code) </if>
|
||||
|
||||
<if test="startDate != null">
|
||||
and DATE(start_date) >= DATE(#{startDate})
|
||||
</if>
|
||||
<if test="endDate != null">
|
||||
and DATE(end_date) <= DATE(#{endDate})
|
||||
</if>
|
||||
|
||||
</where>
|
||||
order by create_time desc
|
||||
</select>
|
||||
@ -253,7 +260,9 @@
|
||||
<include refid="selectEmisCommissionQuoteVo"/>
|
||||
<where>
|
||||
del_flag='0'
|
||||
<if test="quoteId != null and quoteId != ''">
|
||||
and quote_id != #{quoteId}
|
||||
</if>
|
||||
and (
|
||||
(start_date <![CDATA[ <= ]]> #{startDate} and #{startDate} <![CDATA[ < ]]> end_date)
|
||||
or
|
||||
@ -303,6 +312,22 @@
|
||||
or country='-1'
|
||||
)
|
||||
</if>
|
||||
<if test="transLineCode != null and transLineCode != ''">
|
||||
and (
|
||||
trans_line_code = #{transLineCode}
|
||||
or FIND_IN_SET(#{transLineCode}, trans_line_code)
|
||||
or FIND_IN_SET(trans_line_code, #{transLineCode})
|
||||
or trans_line_code='-1'
|
||||
)
|
||||
</if>
|
||||
<if test="prodCode != null and prodCode != ''">
|
||||
and (
|
||||
prod_code = #{prodCode}
|
||||
or FIND_IN_SET(#{prodCode}, prod_code)
|
||||
or FIND_IN_SET(prod_code, #{prodCode})
|
||||
or prod_code='-1'
|
||||
)
|
||||
</if>
|
||||
</where>
|
||||
order by create_time desc
|
||||
</select>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user