Merge pull request 'develop' (#248) from develop into master
Reviewed-on: http://git.xdadan.loc/tanex/emis-service/pulls/248
This commit is contained in:
commit
82f57cbb75
@ -330,6 +330,32 @@ public class EmisSettleInvoiceRecordController extends BaseController {
|
||||
return AjaxResult.success("操作成功");
|
||||
}
|
||||
|
||||
@Log(title = "发票申请审核回退", businessType = BusinessType.UPDATE)
|
||||
@PostMapping("/auditCenterPassRollback/{ids}")
|
||||
public AjaxResult auditCenterPassRollback(@PathVariable Long[] ids)
|
||||
{
|
||||
if(ids!=null && ids.length>0){
|
||||
for(int i=0;i<ids.length;i++){
|
||||
try {
|
||||
long id=ids[i];
|
||||
EmisSettleInvoiceRecord emisSettleInvoiceRecord = new EmisSettleInvoiceRecord();
|
||||
emisSettleInvoiceRecord.setId(id);
|
||||
emisSettleInvoiceRecordService.rollbackAuditCenterPass(emisSettleInvoiceRecord);
|
||||
|
||||
}catch (Exception ex){
|
||||
ex.printStackTrace();
|
||||
// 返回子定义异常
|
||||
if(ex instanceof EmisBizError){
|
||||
return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
|
||||
}
|
||||
|
||||
return AjaxResult.error("回退异常,联系客服");
|
||||
}
|
||||
}
|
||||
}
|
||||
return AjaxResult.success("操作成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量发票延期
|
||||
*/
|
||||
|
||||
@ -80,4 +80,28 @@ public interface EmisSalesCommissionRatioMapper extends BaseMapper<EmisSalesComm
|
||||
* @return 重复数量
|
||||
*/
|
||||
int checkUnique(EmisSalesCommissionRatio emisSalesCommissionRatio);
|
||||
|
||||
/**
|
||||
* 检查一个销售联系人是否已经对应了其他销售主管
|
||||
*
|
||||
* @param emisSalesCommissionRatio
|
||||
* @return 冲突数量
|
||||
*/
|
||||
int countBySalesmenAndDifferentExecutive(EmisSalesCommissionRatio emisSalesCommissionRatio);
|
||||
|
||||
/**
|
||||
* 检查一个销售支持是否已经对应了其他销售联系人
|
||||
*
|
||||
* @param emisSalesCommissionRatio
|
||||
* @return 冲突数量
|
||||
*/
|
||||
int countBySalesSupportAndDifferentSalesmen(EmisSalesCommissionRatio emisSalesCommissionRatio);
|
||||
|
||||
/**
|
||||
* 检查一个销售支持是否已经对应了其他销售主管
|
||||
*
|
||||
* @param emisSalesCommissionRatio
|
||||
* @return 冲突数量
|
||||
*/
|
||||
int countBySalesSupportAndDifferentExecutive(EmisSalesCommissionRatio emisSalesCommissionRatio);
|
||||
}
|
||||
@ -102,6 +102,8 @@ public interface EmisSettleInvoiceRecordMapper extends BaseMapper<EmisSettleInvo
|
||||
|
||||
public int auditCenterPass(EmisSettleInvoiceRecord emisSettleInvoiceRecord);
|
||||
|
||||
public int rollbackAuditCenterPass(EmisSettleInvoiceRecord emisSettleInvoiceRecord);
|
||||
|
||||
/**
|
||||
* 根据运单号列表查询开票记录
|
||||
*
|
||||
|
||||
@ -89,6 +89,15 @@ public interface IEmisSettleInvoiceRecordService {
|
||||
|
||||
public int auditCenterPass(EmisSettleInvoiceRecord inputObj) throws EmisBizError;
|
||||
|
||||
/**
|
||||
* 回退中心审核通过
|
||||
*
|
||||
* @param inputObj
|
||||
* @return
|
||||
* @throws EmisBizError
|
||||
*/
|
||||
public int rollbackAuditCenterPass(EmisSettleInvoiceRecord inputObj) throws EmisBizError;
|
||||
|
||||
/**
|
||||
* 根据运单号列表查询开票记录
|
||||
*
|
||||
|
||||
@ -1,10 +1,10 @@
|
||||
/**
|
||||
/**
|
||||
* @Project: emis
|
||||
* @Title: EmisCommissionProfitServiceImpl.java
|
||||
* @author linfso
|
||||
* @date 2024-10-24 01:46:36
|
||||
* @Copyright: ShangHai Duta 2022 All rights reserved.
|
||||
* @version v1.0
|
||||
* @version v1.0
|
||||
* @Description: <p> 员工提成表 实体类 </p>
|
||||
*/
|
||||
|
||||
@ -28,6 +28,7 @@ import com.xdadan.erp.emis.domain.enumtype.ProfitPostType;
|
||||
import com.xdadan.erp.emis.mapper.*;
|
||||
import com.xdadan.erp.emis.service.EmisBaseService;
|
||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||
import jodd.util.StringUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
@ -39,7 +40,7 @@ import org.springframework.util.CollectionUtils;
|
||||
|
||||
/**
|
||||
* 员工提成表Service业务层处理
|
||||
*
|
||||
*
|
||||
* @author linfso
|
||||
* @date 2024-10-24 01:46:36
|
||||
*/
|
||||
@ -1346,14 +1347,14 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
if (BigDecimal.valueOf(profitMoney).compareTo(BigDecimal.ZERO) > 0) {
|
||||
// 新增:按销售分成配置插入多岗位提成
|
||||
String salesSupport = waybill.getSalesSupport();
|
||||
String salesExecutive = waybill.getSalesExecutive();
|
||||
// String salesExecutive = waybill.getSalesExecutive();
|
||||
boolean hasRatioInsert = false;
|
||||
if (StringUtils.isNotEmpty(salesmen) && StringUtils.isNotEmpty(salesSupport)
|
||||
&& StringUtils.isNotEmpty(salesExecutive)) {
|
||||
if (StringUtils.isNotEmpty(salesmen)) {
|
||||
EmisSalesCommissionRatio ratioQuery = new EmisSalesCommissionRatio();
|
||||
ratioQuery.setSalesmen(salesmen);
|
||||
ratioQuery.setSalesSupport(salesSupport);
|
||||
ratioQuery.setSalesExecutive(salesExecutive);
|
||||
if(StringUtil.isNotEmpty(salesSupport)){
|
||||
ratioQuery.setSalesSupport(salesSupport);
|
||||
}
|
||||
ratioQuery.setStatus("1");
|
||||
// 添加运单寄件日期条件,查询运单寄件日期在计提表有效期内的比例配置
|
||||
if (waybill.getSendDate() != null) {
|
||||
@ -1386,13 +1387,13 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
hasRatioInsert = true;
|
||||
}
|
||||
// 销售主管
|
||||
if (StringUtils.isNotEmpty(salesExecutive) && ratio.getSalesExecutiveRatio() != null
|
||||
if (StringUtils.isNotEmpty(ratio.getSalesExecutive()) && 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(),
|
||||
ratio.getSalesExecutive(), calcExprStr, exprItem.getQuoteId(),
|
||||
quoteItem.getQuoteName(), exprItem.getId(), calcExprStr);
|
||||
hasRatioInsert = true;
|
||||
}
|
||||
@ -1726,7 +1727,7 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
|
||||
/**
|
||||
* 查询员工提成表
|
||||
*
|
||||
*
|
||||
* @param id 员工提成表主键
|
||||
* @return 员工提成表
|
||||
*/
|
||||
@ -1739,7 +1740,7 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
|
||||
/**
|
||||
* 查询员工提成表列表
|
||||
*
|
||||
*
|
||||
* @param emisCommissionProfit 员工提成表
|
||||
* @return 员工提成表
|
||||
*/
|
||||
@ -1751,8 +1752,8 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
|
||||
/**
|
||||
* 检查是否重复
|
||||
*
|
||||
* @param emisCommissionProfit
|
||||
*
|
||||
* @param emisCommissionProfit
|
||||
* @return 数量
|
||||
*/
|
||||
@Override
|
||||
@ -1763,7 +1764,7 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
|
||||
/**
|
||||
* 新增员工提成表
|
||||
*
|
||||
*
|
||||
* @param emisCommissionProfit 员工提成表
|
||||
* @return 结果
|
||||
*/
|
||||
@ -1775,7 +1776,7 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
|
||||
/**
|
||||
* 修改员工提成表
|
||||
*
|
||||
*
|
||||
* @param emisCommissionProfit 员工提成表
|
||||
* @return 结果
|
||||
*/
|
||||
@ -1787,7 +1788,7 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
|
||||
/**
|
||||
* 批量删除员工提成表
|
||||
*
|
||||
*
|
||||
* @param ids 需要删除的员工提成表主键
|
||||
* @return 结果
|
||||
*/
|
||||
@ -1799,7 +1800,7 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
|
||||
/**
|
||||
* 删除员工提成表信息
|
||||
*
|
||||
*
|
||||
* @param id 员工提成表主键
|
||||
* @return 结果
|
||||
*/
|
||||
|
||||
@ -58,6 +58,10 @@ public class EmisSalesCommissionRatioServiceImpl implements IEmisSalesCommission
|
||||
if (!checkRatioValid(entity)) {
|
||||
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "占比总和必须小于等于100%");
|
||||
}
|
||||
// 验证一个销售联系人只能对应一个销售主管
|
||||
validateSalesmenToExecutive(entity);
|
||||
// 验证一个销售支持只能对应一个销售联系人、只能对应一个销售主管
|
||||
validateSalesSupport(entity);
|
||||
return emisSalesCommissionRatioMapper.insertEmisSalesCommissionRatio(entity);
|
||||
}
|
||||
|
||||
@ -76,6 +80,10 @@ public class EmisSalesCommissionRatioServiceImpl implements IEmisSalesCommission
|
||||
if (!checkRatioValid(entity)) {
|
||||
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR, "占比总和必须小于等于100%");
|
||||
}
|
||||
// 验证一个销售联系人只能对应一个销售主管
|
||||
validateSalesmenToExecutive(entity);
|
||||
// 验证一个销售支持只能对应一个销售联系人、只能对应一个销售主管
|
||||
validateSalesSupport(entity);
|
||||
return emisSalesCommissionRatioMapper.updateEmisSalesCommissionRatio(entity);
|
||||
}
|
||||
|
||||
@ -122,4 +130,44 @@ public class EmisSalesCommissionRatioServiceImpl implements IEmisSalesCommission
|
||||
BigDecimal sum = executiveRatio.add(salesmenRatio).add(supportRatio);
|
||||
return sum.compareTo(new BigDecimal("100.00")) <= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证一个销售联系人只能对应一个销售主管
|
||||
*
|
||||
* @param entity 配置实体
|
||||
* @throws EmisBizError 如果销售联系人已经对应了其他销售主管
|
||||
*/
|
||||
private void validateSalesmenToExecutive(EmisSalesCommissionRatio entity) throws EmisBizError {
|
||||
if (entity.getSalesmen() != null && !entity.getSalesmen().trim().isEmpty()
|
||||
&& entity.getSalesExecutive() != null && !entity.getSalesExecutive().trim().isEmpty()) {
|
||||
int count = emisSalesCommissionRatioMapper.countBySalesmenAndDifferentExecutive(entity);
|
||||
if (count > 0) {
|
||||
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR,
|
||||
"销售联系人[" + entity.getSalesmen() + "]已经对应了其他销售主管,一个销售联系人只能对应一个销售主管");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证一个销售支持只能对应一个销售联系人、只能对应一个销售主管
|
||||
*
|
||||
* @param entity 配置实体
|
||||
* @throws EmisBizError 如果销售支持已经对应了其他销售联系人或销售主管
|
||||
*/
|
||||
private void validateSalesSupport(EmisSalesCommissionRatio entity) throws EmisBizError {
|
||||
if (entity.getSalesSupport() != null && !entity.getSalesSupport().trim().isEmpty()) {
|
||||
// 检查销售支持是否已经对应了其他销售联系人
|
||||
int countSalesmen = emisSalesCommissionRatioMapper.countBySalesSupportAndDifferentSalesmen(entity);
|
||||
if (countSalesmen > 0) {
|
||||
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR,
|
||||
"销售支持[" + entity.getSalesSupport() + "]已经对应了其他销售联系人,一个销售支持只能对应一个销售联系人");
|
||||
}
|
||||
// 检查销售支持是否已经对应了其他销售主管
|
||||
int countExecutive = emisSalesCommissionRatioMapper.countBySalesSupportAndDifferentExecutive(entity);
|
||||
if (countExecutive > 0) {
|
||||
throw new EmisBizError(EmisBizErrorType.PARAM_ERROR,
|
||||
"销售支持[" + entity.getSalesSupport() + "]已经对应了其他销售主管,一个销售支持只能对应一个销售主管");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -31,7 +31,6 @@ import com.xdadan.erp.emis.domain.EmisSettlePayRecord;
|
||||
import com.xdadan.erp.emis.domain.EmisWaybill;
|
||||
import com.xdadan.erp.emis.domain.EmisSettleBill;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
@ -405,6 +404,47 @@ public class EmisSettleInvoiceRecordServiceImpl extends EmisBaseService implemen
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 回退中心审核通过
|
||||
*
|
||||
* @param inputObj
|
||||
* @return
|
||||
* @throws EmisBizError
|
||||
*/
|
||||
@Override
|
||||
public int rollbackAuditCenterPass(EmisSettleInvoiceRecord inputObj) throws EmisBizError {
|
||||
EmisSettleInvoiceRecord emisSettleInvoiceRecord = emisSettleInvoiceRecordMapper
|
||||
.selectEmisSettleInvoiceRecordById(inputObj.getId());
|
||||
|
||||
if (emisSettleInvoiceRecord == null) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "申请不存在");
|
||||
}
|
||||
|
||||
if (!"1".equals(emisSettleInvoiceRecord.getBlAudit())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "仅审核通过的申请可回退");
|
||||
}
|
||||
if (!"1".equals(emisSettleInvoiceRecord.getInvoiceStatus())) {
|
||||
throw new EmisBizError(EmisBizErrorType.FAIL, "仅开票中的申请可回退");
|
||||
}
|
||||
|
||||
// 重置审核状态
|
||||
emisSettleInvoiceRecord.setBlAudit("0");
|
||||
emisSettleInvoiceRecord.setInvoiceStatus("0");
|
||||
emisSettleInvoiceRecord.setAuditManCode(null);
|
||||
emisSettleInvoiceRecord.setAuditSiteCode(null);
|
||||
emisSettleInvoiceRecord.setAuditNote(null);
|
||||
|
||||
emisSettleInvoiceRecordMapper.rollbackAuditCenterPass(emisSettleInvoiceRecord);
|
||||
|
||||
// 重新计算开票状态
|
||||
String[] settleBillArr = emisSettleInvoiceRecord.getSettleBillNo().split(",");
|
||||
for (int i = 0; i < settleBillArr.length; i++) {
|
||||
emisSettleBillService.reCalcSettleBillInvoiceStatus(settleBillArr[i]);
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
BigDecimal totalMoney = BigDecimal.ZERO;
|
||||
BigDecimal recMoney = BigDecimal.ZERO;
|
||||
|
||||
@ -156,4 +156,52 @@
|
||||
<if test="id != null">AND id != #{id}</if>
|
||||
</select>
|
||||
|
||||
<!-- 检查一个销售联系人是否已经对应了其他销售主管 -->
|
||||
<select id="countBySalesmenAndDifferentExecutive" parameterType="com.xdadan.erp.emis.domain.EmisSalesCommissionRatio" resultType="int">
|
||||
SELECT COUNT(1)
|
||||
FROM emis_sales_commission_ratio
|
||||
WHERE salesmen = #{salesmen}
|
||||
AND salesmen IS NOT NULL
|
||||
AND salesmen != ''
|
||||
AND sales_executive IS NOT NULL
|
||||
AND sales_executive != ''
|
||||
<if test="salesExecutive != null and salesExecutive != ''">
|
||||
AND sales_executive != #{salesExecutive}
|
||||
</if>
|
||||
AND del_flag = '0'
|
||||
<if test="id != null">AND id != #{id}</if>
|
||||
</select>
|
||||
|
||||
<!-- 检查一个销售支持是否已经对应了其他销售联系人 -->
|
||||
<select id="countBySalesSupportAndDifferentSalesmen" parameterType="com.xdadan.erp.emis.domain.EmisSalesCommissionRatio" resultType="int">
|
||||
SELECT COUNT(1)
|
||||
FROM emis_sales_commission_ratio
|
||||
WHERE sales_support = #{salesSupport}
|
||||
AND sales_support IS NOT NULL
|
||||
AND sales_support != ''
|
||||
AND salesmen IS NOT NULL
|
||||
AND salesmen != ''
|
||||
<if test="salesmen != null and salesmen != ''">
|
||||
AND salesmen != #{salesmen}
|
||||
</if>
|
||||
AND del_flag = '0'
|
||||
<if test="id != null">AND id != #{id}</if>
|
||||
</select>
|
||||
|
||||
<!-- 检查一个销售支持是否已经对应了其他销售主管 -->
|
||||
<select id="countBySalesSupportAndDifferentExecutive" parameterType="com.xdadan.erp.emis.domain.EmisSalesCommissionRatio" resultType="int">
|
||||
SELECT COUNT(1)
|
||||
FROM emis_sales_commission_ratio
|
||||
WHERE sales_support = #{salesSupport}
|
||||
AND sales_support IS NOT NULL
|
||||
AND sales_support != ''
|
||||
AND sales_executive IS NOT NULL
|
||||
AND sales_executive != ''
|
||||
<if test="salesExecutive != null and salesExecutive != ''">
|
||||
AND sales_executive != #{salesExecutive}
|
||||
</if>
|
||||
AND del_flag = '0'
|
||||
<if test="id != null">AND id != #{id}</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
||||
@ -719,6 +719,17 @@
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="rollbackAuditCenterPass" parameterType="EmisSettleInvoiceRecord">
|
||||
update emis_settle_invoice_record
|
||||
set bl_audit='0',
|
||||
invoice_status='0',
|
||||
audit_date = null,
|
||||
audit_man_code = null,
|
||||
audit_site_code = null,
|
||||
audit_note = null
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<update id="updateHasPayByApplySeqNo" parameterType="string">
|
||||
update emis_settle_invoice_record
|
||||
set payment_status='1'
|
||||
|
||||
@ -3933,9 +3933,9 @@
|
||||
<if test="lineCode != null and lineCode != ''">
|
||||
and a.trans_line_type = #{lineCode}
|
||||
</if>
|
||||
and DATE_FORMAT(a.send_date, '%Y-%m-%d') <![CDATA[ >= ]]> '2025-01-01'
|
||||
and DATE_FORMAT(a.send_date, '%Y-%m-%d') <![CDATA[ <= ]]> DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 7 DAY),
|
||||
'%Y-%m-%d')
|
||||
-- and DATE_FORMAT(a.send_date, '%Y-%m-%d') <![CDATA[ >= ]]> '2025-01-01'
|
||||
-- and DATE_FORMAT(a.send_date, '%Y-%m-%d') <![CDATA[ <= ]]> DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 7 DAY),
|
||||
-- '%Y-%m-%d')
|
||||
and ((a.virtual_remark is null or a.virtual_remark = '' or a.virtual_remark = ' ')or a.receive_country !=
|
||||
'0095')
|
||||
and a.order_status not in ('0','2')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user