md
This commit is contained in:
parent
6feab7ee97
commit
6a52a82e5f
@ -19,12 +19,14 @@ import javax.servlet.http.HttpServletResponse;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter;
|
import com.xdadan.erp.common.annotation.filter.jackson.JacksonFilter;
|
||||||
|
import com.xdadan.erp.common.core.redis.RedissonService;
|
||||||
import com.xdadan.erp.common.utils.DateUtils;
|
import com.xdadan.erp.common.utils.DateUtils;
|
||||||
import com.xdadan.erp.emis.domain.EmisCommissionDtl;
|
import com.xdadan.erp.emis.domain.EmisCommissionDtl;
|
||||||
import com.xdadan.erp.emis.domain.EmisWaybill;
|
import com.xdadan.erp.emis.domain.EmisWaybill;
|
||||||
import com.xdadan.erp.emis.service.EmisBaseService;
|
import com.xdadan.erp.emis.service.EmisBaseService;
|
||||||
import com.xdadan.erp.emis.service.IEmisCommissionDtlService;
|
import com.xdadan.erp.emis.service.IEmisCommissionDtlService;
|
||||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.security.access.prepost.PreAuthorize;
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
@ -54,6 +56,7 @@ import com.xdadan.erp.emis.service.IEmisCommissionProfitService;
|
|||||||
* @author linfso
|
* @author linfso
|
||||||
* @date 2024-10-24 01:46:36
|
* @date 2024-10-24 01:46:36
|
||||||
*/
|
*/
|
||||||
|
@Slf4j
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/emis/emisCommissionProfit")
|
@RequestMapping("/emis/emisCommissionProfit")
|
||||||
public class EmisCommissionProfitController extends BaseController
|
public class EmisCommissionProfitController extends BaseController
|
||||||
@ -64,29 +67,67 @@ public class EmisCommissionProfitController extends BaseController
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IEmisCommissionDtlService emisCommissionDtlService;
|
private IEmisCommissionDtlService emisCommissionDtlService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
RedissonService redissonService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private EmisBaseService emisBaseService;
|
private EmisBaseService emisBaseService;
|
||||||
|
|
||||||
@GetMapping(value = "/batchReCalcProfitByBillCode")
|
@GetMapping(value = "/reCalcByBillCode")
|
||||||
public AjaxResult batchReCalcProfitByBillCode(String billCode)
|
public AjaxResult reCalcByBillCode(String billCode)
|
||||||
{
|
{
|
||||||
if(!StringUtils.isEmpty(billCode)){
|
if(StringUtils.isEmpty(billCode)){
|
||||||
billCode=WaybillHelper.formatQueryValue(billCode);
|
|
||||||
String[] billCodeSortList = billCode.split(",");
|
|
||||||
if(billCodeSortList.length>0){
|
|
||||||
for (int i=0;i<billCodeSortList.length;i++){
|
|
||||||
String subBillCode=billCodeSortList[i];
|
|
||||||
try {
|
|
||||||
emisCommissionProfitService.reCalcProfitByBillCode(subBillCode);
|
|
||||||
}catch (Exception ex){
|
|
||||||
return AjaxResult.error("计算失败-单号:["+subBillCode+"]");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return AjaxResult.success("计算成功");
|
|
||||||
}else{
|
|
||||||
return AjaxResult.error("计算失败-单号不能为空");
|
return AjaxResult.error("计算失败-单号不能为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
billCode = WaybillHelper.formatQueryValue(billCode);
|
||||||
|
String[] billCodeSortList = billCode.split(",");
|
||||||
|
if (billCodeSortList.length > 0) {
|
||||||
|
for (int i = 0; i < billCodeSortList.length; i++) {
|
||||||
|
String subBillCode = billCodeSortList[i];
|
||||||
|
try {
|
||||||
|
emisCommissionProfitService.reCalcProfitByBillCode(subBillCode);
|
||||||
|
} catch (Exception ex) {
|
||||||
|
return AjaxResult.error("计算失败-单号:[" + subBillCode + "]");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
emisCommissionProfitService.reCalcEmpProfitSumMoney(null, null);
|
||||||
|
}
|
||||||
|
return AjaxResult.success("计算成功");
|
||||||
|
}
|
||||||
|
catch(Exception ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
return AjaxResult.error("计算异常:"+ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/reCalcByBillMonth")
|
||||||
|
public AjaxResult reCalcByBillMonth(String billMonth)
|
||||||
|
{
|
||||||
|
if(StringUtils.isEmpty(billMonth)){
|
||||||
|
return AjaxResult.error("月份不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
String lockKey="reCalcByBillMonth";
|
||||||
|
log.info("reCalcByBillMonth start");
|
||||||
|
|
||||||
|
// 加锁查询
|
||||||
|
redissonService.lock(lockKey,300);
|
||||||
|
try{
|
||||||
|
EmisWaybill emisWaybill = new EmisWaybill();
|
||||||
|
emisWaybill.getParams().put("noNeedBlProfit","Y");
|
||||||
|
emisCommissionProfitService.autoDoBillProfit(emisWaybill);
|
||||||
|
}catch(Exception ex){
|
||||||
|
ex.printStackTrace();
|
||||||
|
log.error("reCalcByBillMonth exception:"+ex.getMessage());
|
||||||
|
return AjaxResult.error("计算异常:"+ex.getMessage());
|
||||||
|
}
|
||||||
|
log.info("reCalcByBillMonth end");
|
||||||
|
|
||||||
|
redissonService.unlock(lockKey);
|
||||||
|
return AjaxResult.success("计算成功");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -111,13 +111,9 @@ public class EmisCommonController extends EmisBaseController
|
|||||||
@Autowired
|
@Autowired
|
||||||
private IEmisTmsCostFeeService emisTmsCostFeeService;
|
private IEmisTmsCostFeeService emisTmsCostFeeService;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
RedissonService redissonService;
|
RedissonService redissonService;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取中心可用简单数
|
* 获取中心可用简单数
|
||||||
* @param prefix
|
* @param prefix
|
||||||
|
|||||||
@ -56,6 +56,14 @@ public interface IEmisCommissionProfitService
|
|||||||
*/
|
*/
|
||||||
public void reCalcProfitByBatchNo(String batchNo);
|
public void reCalcProfitByBatchNo(String batchNo);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计算汇总数据
|
||||||
|
* @param empName
|
||||||
|
* @param billMonth
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public int reCalcEmpProfitSumMoney(String empName,String billMonth);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询员工提成表列表
|
* 查询员工提成表列表
|
||||||
*
|
*
|
||||||
|
|||||||
@ -35,7 +35,6 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.apache.commons.collections4.ListUtils;
|
import org.apache.commons.collections4.ListUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import com.xdadan.erp.emis.service.IEmisCommissionProfitService;
|
import com.xdadan.erp.emis.service.IEmisCommissionProfitService;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
@ -76,11 +75,9 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
|||||||
/**
|
/**
|
||||||
* 自动计算提成
|
* 自动计算提成
|
||||||
*/
|
*/
|
||||||
@Async
|
|
||||||
@Override
|
@Override
|
||||||
public void autoDoBillProfit(EmisWaybill emisWaybill) {
|
public void autoDoBillProfit(EmisWaybill emisWaybill) {
|
||||||
|
|
||||||
Map<String,Map<String,String> > profitMap = new HashMap<>();
|
|
||||||
// 获取需要出账的运单列表
|
// 获取需要出账的运单列表
|
||||||
List<EmisWaybill> list = emisWaybillMapper.selectWaitDoProfitList(emisWaybill);
|
List<EmisWaybill> list = emisWaybillMapper.selectWaitDoProfitList(emisWaybill);
|
||||||
// 多线程并发处理
|
// 多线程并发处理
|
||||||
@ -121,11 +118,9 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
|||||||
/**
|
/**
|
||||||
* 自动计算批次提成
|
* 自动计算批次提成
|
||||||
*/
|
*/
|
||||||
@Async
|
|
||||||
@Override
|
@Override
|
||||||
public void autoDoBatchProfit(EmisTmsSiteBatch tmsSiteBatch) {
|
public void autoDoBatchProfit(EmisTmsSiteBatch tmsSiteBatch) {
|
||||||
|
|
||||||
Map<String,Map<String,String> > profitMap = new HashMap<>();
|
|
||||||
// 获取需要出账的运单列表
|
// 获取需要出账的运单列表
|
||||||
List<EmisTmsSiteBatch> list = emisTmsSiteBatchMapper.selectWaitDoProfitList(tmsSiteBatch);
|
List<EmisTmsSiteBatch> list = emisTmsSiteBatchMapper.selectWaitDoProfitList(tmsSiteBatch);
|
||||||
// 多线程并发处理
|
// 多线程并发处理
|
||||||
@ -311,6 +306,10 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
|||||||
try {
|
try {
|
||||||
// 获取运单信息
|
// 获取运单信息
|
||||||
EmisWaybill waybill = getWaybillByBillCode(billCode);
|
EmisWaybill waybill = getWaybillByBillCode(billCode);
|
||||||
|
if(waybill==null){
|
||||||
|
redissonService.unlock(lockKey);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// 先删除该运单已经计算的提成
|
// 先删除该运单已经计算的提成
|
||||||
emisCommissionDtlMapper.deleteEmisCommissionDtlByBillCode(billCode);
|
emisCommissionDtlMapper.deleteEmisCommissionDtlByBillCode(billCode);
|
||||||
@ -374,7 +373,8 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private int reCalcEmpProfitSumMoney(String empName,String billMonth){
|
@Override
|
||||||
|
public int reCalcEmpProfitSumMoney(String empName,String billMonth){
|
||||||
String lockKey="reCalcEmpProfitSumMoney_"+empName+billMonth;
|
String lockKey="reCalcEmpProfitSumMoney_"+empName+billMonth;
|
||||||
// 加锁查询
|
// 加锁查询
|
||||||
log.info("reCalcEmpProfitSumMoney start:"+empName+billMonth);
|
log.info("reCalcEmpProfitSumMoney start:"+empName+billMonth);
|
||||||
|
|||||||
@ -147,7 +147,12 @@
|
|||||||
batch_no
|
batch_no
|
||||||
FROM
|
FROM
|
||||||
emis_tms_site_batch a
|
emis_tms_site_batch a
|
||||||
WHERE a.del_flag = '0' AND a.bl_profit = '0'
|
WHERE a.del_flag = '0'
|
||||||
|
|
||||||
|
<if test="params.noNeedBlProfit == null">
|
||||||
|
AND a.bl_profit = '0'
|
||||||
|
</if>
|
||||||
|
|
||||||
<if test="params.billMonth != null and params.billMonth != ''">
|
<if test="params.billMonth != null and params.billMonth != ''">
|
||||||
and DATE_FORMAT(a.etd,'%Y%m')= #{params.billMonth}
|
and DATE_FORMAT(a.etd,'%Y%m')= #{params.billMonth}
|
||||||
</if>
|
</if>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user