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.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.emis.domain.EmisCommissionDtl;
|
||||
import com.xdadan.erp.emis.domain.EmisWaybill;
|
||||
import com.xdadan.erp.emis.service.EmisBaseService;
|
||||
import com.xdadan.erp.emis.service.IEmisCommissionDtlService;
|
||||
import com.xdadan.erp.emis.utils.WaybillHelper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
@ -54,6 +56,7 @@ import com.xdadan.erp.emis.service.IEmisCommissionProfitService;
|
||||
* @author linfso
|
||||
* @date 2024-10-24 01:46:36
|
||||
*/
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequestMapping("/emis/emisCommissionProfit")
|
||||
public class EmisCommissionProfitController extends BaseController
|
||||
@ -64,29 +67,67 @@ public class EmisCommissionProfitController extends BaseController
|
||||
@Autowired
|
||||
private IEmisCommissionDtlService emisCommissionDtlService;
|
||||
|
||||
@Autowired
|
||||
RedissonService redissonService;
|
||||
|
||||
@Autowired
|
||||
private EmisBaseService emisBaseService;
|
||||
|
||||
@GetMapping(value = "/batchReCalcProfitByBillCode")
|
||||
public AjaxResult batchReCalcProfitByBillCode(String billCode)
|
||||
@GetMapping(value = "/reCalcByBillCode")
|
||||
public AjaxResult reCalcByBillCode(String 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{
|
||||
if(StringUtils.isEmpty(billCode)){
|
||||
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
|
||||
private IEmisTmsCostFeeService emisTmsCostFeeService;
|
||||
|
||||
|
||||
|
||||
|
||||
@Autowired
|
||||
RedissonService redissonService;
|
||||
|
||||
|
||||
/**
|
||||
* 获取中心可用简单数
|
||||
* @param prefix
|
||||
|
||||
@ -56,6 +56,14 @@ public interface IEmisCommissionProfitService
|
||||
*/
|
||||
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.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.scheduling.annotation.Async;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.xdadan.erp.emis.service.IEmisCommissionProfitService;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -76,11 +75,9 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
/**
|
||||
* 自动计算提成
|
||||
*/
|
||||
@Async
|
||||
@Override
|
||||
public void autoDoBillProfit(EmisWaybill emisWaybill) {
|
||||
|
||||
Map<String,Map<String,String> > profitMap = new HashMap<>();
|
||||
// 获取需要出账的运单列表
|
||||
List<EmisWaybill> list = emisWaybillMapper.selectWaitDoProfitList(emisWaybill);
|
||||
// 多线程并发处理
|
||||
@ -121,11 +118,9 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
/**
|
||||
* 自动计算批次提成
|
||||
*/
|
||||
@Async
|
||||
@Override
|
||||
public void autoDoBatchProfit(EmisTmsSiteBatch tmsSiteBatch) {
|
||||
|
||||
Map<String,Map<String,String> > profitMap = new HashMap<>();
|
||||
// 获取需要出账的运单列表
|
||||
List<EmisTmsSiteBatch> list = emisTmsSiteBatchMapper.selectWaitDoProfitList(tmsSiteBatch);
|
||||
// 多线程并发处理
|
||||
@ -311,6 +306,10 @@ public class EmisCommissionProfitServiceImpl extends EmisBaseService implements
|
||||
try {
|
||||
// 获取运单信息
|
||||
EmisWaybill waybill = getWaybillByBillCode(billCode);
|
||||
if(waybill==null){
|
||||
redissonService.unlock(lockKey);
|
||||
return;
|
||||
}
|
||||
|
||||
// 先删除该运单已经计算的提成
|
||||
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;
|
||||
// 加锁查询
|
||||
log.info("reCalcEmpProfitSumMoney start:"+empName+billMonth);
|
||||
|
||||
@ -147,7 +147,12 @@
|
||||
batch_no
|
||||
FROM
|
||||
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 != ''">
|
||||
and DATE_FORMAT(a.etd,'%Y%m')= #{params.billMonth}
|
||||
</if>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user