Browse Source

下单调整;活动发布调整

v1.0
Yen 2 years ago
parent
commit
ca68b9fd96
  1. 5
      src/main/java/com/qs/serve/common/framework/exception/UnifiedExceptionHandler.java
  2. 7
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  3. 55
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java
  4. 17
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java

5
src/main/java/com/qs/serve/common/framework/exception/UnifiedExceptionHandler.java

@ -38,6 +38,7 @@ public class UnifiedExceptionHandler {
@ResponseBody @ResponseBody
public R handleBindException(BusinessException e,HttpServletRequest request) { public R handleBindException(BusinessException e,HttpServletRequest request) {
log.warn("自定义异常触发【{},{}】,请求地址:{}",e.getCode(),e.getMessage(),request.getRequestURI()); log.warn("自定义异常触发【{},{}】,请求地址:{}",e.getCode(),e.getMessage(),request.getRequestURI());
e.printStackTrace();
return new R(e.getCode(),e.getMessage()); return new R(e.getCode(),e.getMessage());
} }
@ -46,6 +47,7 @@ public class UnifiedExceptionHandler {
public R handleBindException(NullPointerException e,HttpServletRequest request) { public R handleBindException(NullPointerException e,HttpServletRequest request) {
e.printStackTrace(); e.printStackTrace();
log.error("空指针【{}】,请求地址:{}",e.getMessage(),request.getRequestURI()); log.error("空指针【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
e.printStackTrace();
return R.error("数据不存在或被移除"); return R.error("数据不存在或被移除");
} }
@ -104,6 +106,7 @@ public class UnifiedExceptionHandler {
@ResponseBody @ResponseBody
public R handleDuplicateKeyException(DuplicateKeyException e,HttpServletRequest request) { public R handleDuplicateKeyException(DuplicateKeyException e,HttpServletRequest request) {
log.error("限制重复数据【{}】,请求地址:{}",e.getMessage(),request.getRequestURI()); log.error("限制重复数据【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
e.printStackTrace();
return R.error("限制重复数据,请联系管理员"); return R.error("限制重复数据,请联系管理员");
} }
@ -120,6 +123,7 @@ public class UnifiedExceptionHandler {
@ResponseBody @ResponseBody
public R handleSqlIntegrityException(Exception e,HttpServletRequest request) { public R handleSqlIntegrityException(Exception e,HttpServletRequest request) {
log.warn("数据库拦截【{}】,请求地址:{}",e.getMessage(),request.getRequestURI()); log.warn("数据库拦截【{}】,请求地址:{}",e.getMessage(),request.getRequestURI());
e.printStackTrace();
return new R(500,"数据库拦截,请联系管理员"); return new R(500,"数据库拦截,请联系管理员");
} }
@ -138,6 +142,7 @@ public class UnifiedExceptionHandler {
@ResponseBody @ResponseBody
public R handleException(Exception e,HttpServletRequest request) { public R handleException(Exception e,HttpServletRequest request) {
log.error("Servlet异常\n请求地址:{},异常类型:{}\n异常信息:{}\n异常体:",request.getRequestURI(),e.getClass().getSimpleName(),e.getMessage(),e); log.error("Servlet异常\n请求地址:{},异常类型:{}\n异常信息:{}\n异常体:",request.getRequestURI(),e.getClass().getSimpleName(),e.getMessage(),e);
e.printStackTrace();
if(DevEnvironmentConfig.isDev()){return R.error(e.getMessage());} if(DevEnvironmentConfig.isDev()){return R.error(e.getMessage());}
return R.error(); return R.error();
} }

7
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java

@ -529,9 +529,12 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
OmsOrder omsOrder = super.getById(id); OmsOrder omsOrder = super.getById(id);
String userId = AuthContextUtils.getSysUserId(); String userId = AuthContextUtils.getSysUserId();
SysUser sysUser = sysUserService.getById(userId); SysUser sysUser = sysUserService.getById(userId);
if(omsOrder==null || !omsOrder.getUserId().equals(userId)){ if(omsOrder==null){
Assert.throwEx("订单不存在或被移除"); Assert.throwEx("订单不存在或被移除");
} }
if(!omsOrder.getUserId().equals(userId)){
Assert.throwEx("非制单人无法下单");
}
this.checkMsOrderStatus(omsOrder); this.checkMsOrderStatus(omsOrder);
if(!omsOrder.getStatus().equals(0)&&!omsOrder.getStatus().equals(6)){ if(!omsOrder.getStatus().equals(0)&&!omsOrder.getStatus().equals(6)){
Assert.throwEx("订单状态不支持下单"); Assert.throwEx("订单状态不支持下单");
@ -630,6 +633,8 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
seeYonRequestBaseService.postBase(ERP_ORDER_CREATE,xltOrderDTO,"创建订单:"+xltOrder.getDingDanHao()); seeYonRequestBaseService.postBase(ERP_ORDER_CREATE,xltOrderDTO,"创建订单:"+xltOrder.getDingDanHao());
//更新订单 //更新订单
omsOrder.setStatus(1); omsOrder.setStatus(1);
omsOrder.setCheckTime(LocalDateTime.now());
omsOrder.setCheckUserId(AuthContextUtils.getSysUserId());
this.updateById(omsOrder); this.updateById(omsOrder);
} }

55
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsActivityServiceImpl.java

@ -36,6 +36,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.*; import java.util.*;
@ -216,9 +217,8 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
Map<String,TbsCenterDto> centerDtoMap = new HashMap<>(); Map<String,TbsCenterDto> centerDtoMap = new HashMap<>();
this.initSubjectAndCenter(activityBo,subjectMap,centerDtoMap,activitySubjects,activityCenterList,costApply.getId(),activity.getId()); this.initSubjectAndCenter(activityBo,subjectMap,centerDtoMap,activitySubjects,activityCenterList,costApply.getId(),activity.getId());
//产品成本配占比 //产品成本配占比
Map<String,BigDecimal> checkAmountMap = new HashMap<>();
List<TbsActivityCenterGoods> activityCenterGoodsList = new ArrayList<>(); List<TbsActivityCenterGoods> activityCenterGoodsList = new ArrayList<>();
this.initCenterGoods(activityBo,subjectMap,centerDtoMap,checkAmountMap,activityGoodsList,activityCenterGoodsList,costApply.getId(),activity,supplier); this.initCenterGoods(activityBo,subjectMap,centerDtoMap,activityGoodsList,activityCenterGoodsList,costApply.getId(),activity,supplier);
//校验金额和比率 //校验金额和比率
Map<Long,List<TbsActivityCenterGoods>> actCenterGoodsMap = activityCenterGoodsList.stream().collect(Collectors.groupingBy(TbsActivityCenterGoods::getSubjectId)); Map<Long,List<TbsActivityCenterGoods>> actCenterGoodsMap = activityCenterGoodsList.stream().collect(Collectors.groupingBy(TbsActivityCenterGoods::getSubjectId));
for (Long subjectId : actCenterGoodsMap.keySet()) { for (Long subjectId : actCenterGoodsMap.keySet()) {
@ -232,13 +232,6 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
Assert.throwEx("成本中心与商品分配比例有误"); Assert.throwEx("成本中心与商品分配比例有误");
} }
} }
for (TbsActivityCenter activityCenter : activityCenterList) {
String key = activityCenter.getSubjectId()+":"+activityCenter.getCenterType()+":"+activityCenter.getCenterId();
BigDecimal amount = checkAmountMap.get(key);
if(amount==null||amount.compareTo(activityCenter.getCenterAmount())!=0){
Assert.throwEx("成本中心与商品分配的金额有误");
}
}
//客户详情 //客户详情
List<TbsActivityChannelPoint> activityChannelPointList = new ArrayList<>(); List<TbsActivityChannelPoint> activityChannelPointList = new ArrayList<>();
List<TbsActivityChannel> activityChannelList = new ArrayList<>(); List<TbsActivityChannel> activityChannelList = new ArrayList<>();
@ -407,7 +400,6 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
* @param activityBo * @param activityBo
* @param subjectMap * @param subjectMap
* @param centerDtoMap * @param centerDtoMap
* @param checkAmountMap
* @param activityGoodsList * @param activityGoodsList
* @param activityCenterGoodsList * @param activityCenterGoodsList
* @param costApplyId * @param costApplyId
@ -416,7 +408,6 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
public void initCenterGoods(TbsActivityBo activityBo, public void initCenterGoods(TbsActivityBo activityBo,
Map<Long,BmsSubject> subjectMap, Map<Long,BmsSubject> subjectMap,
Map<String,TbsCenterDto> centerDtoMap, Map<String,TbsCenterDto> centerDtoMap,
Map<String,BigDecimal> checkAmountMap,
List<TbsActivityGoods> activityGoodsList, List<TbsActivityGoods> activityGoodsList,
List<TbsActivityCenterGoods> activityCenterGoodsList, List<TbsActivityCenterGoods> activityCenterGoodsList,
Long costApplyId,TbsActivity activity,BmsSupplier supplier){ Long costApplyId,TbsActivity activity,BmsSupplier supplier){
@ -442,8 +433,17 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
} }
centerGoods.setCenterCode(tbsCenterDto.getCenterCode()); centerGoods.setCenterCode(tbsCenterDto.getCenterCode());
centerGoods.setCenterName(tbsCenterDto.getCenterName()); centerGoods.setCenterName(tbsCenterDto.getCenterName());
centerGoods.setCenterRate(tbsCenterDto.getCenterRate()); for (TbsActivitySubjectBo subjectBo : activityBo.getActivitySubjectList()) {
centerGoods.setCenterAmount(tbsCenterDto.getCenterAmount()); if(subject.getId().equals(subjectBo.getSubjectId())){
for (TbsActivitySubjectBo.ActivityCenterBo centerBo : subjectBo.getCenterList()) {
if(centerBo.getCenterType().equals(tbsCenterDto.getCenterType())&&centerBo.getCenterId().equals(tbsCenterDto.getId())){
centerGoods.setCenterRate(centerBo.getCenterRate());
centerGoods.setCenterAmount(centerBo.getCenterAmount());
break;
}
}
}
}
//设置科目 //设置科目
centerGoods.setCostApplyId(costApplyId); centerGoods.setCostApplyId(costApplyId);
centerGoods.setActivityId(activity.getId()); centerGoods.setActivityId(activity.getId());
@ -458,14 +458,6 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
centerGoods.setPreEndDate(activity.getPreEndDate()); centerGoods.setPreEndDate(activity.getPreEndDate());
centerGoods.setPreStartDate(activity.getPreStartDate()); centerGoods.setPreStartDate(activity.getPreStartDate());
centerGoods.setPreCheckDate(activity.getPreCheckDate()); centerGoods.setPreCheckDate(activity.getPreCheckDate());
//统计
String key4Count = subject.getId()+":"+key;
BigDecimal checkAmount = checkAmountMap.get(key4Count);
if(checkAmount==null){
checkAmount = BigDecimal.ZERO;
}
checkAmount = checkAmount.add(centerGoods.getCenterGoodsAmount());
checkAmountMap.put(key4Count,checkAmount);
//设置商品 //设置商品
Long cenTarId = centerGoodsBo.getTargetId(); Long cenTarId = centerGoodsBo.getTargetId();
@ -506,6 +498,9 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
List<TbsActivitySubject> activitySubjects, List<TbsActivitySubject> activitySubjects,
List<TbsActivityCenter> activityCenterList, List<TbsActivityCenter> activityCenterList,
Long costApplyId,Long activityId){ Long costApplyId,Long activityId){
List<String> existKeyList = new ArrayList<>();
for (TbsActivitySubjectBo subjectBo : activityBo.getActivitySubjectList()) { for (TbsActivitySubjectBo subjectBo : activityBo.getActivitySubjectList()) {
BmsSubject subject = subjectService.getById(subjectBo.getSubjectId()); BmsSubject subject = subjectService.getById(subjectBo.getSubjectId());
if(subject==null){ if(subject==null){
@ -531,9 +526,18 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
activitySubjects.add(activitySubject); activitySubjects.add(activitySubject);
BigDecimal totalAmount = BigDecimal.ZERO; BigDecimal totalAmount = BigDecimal.ZERO;
BigDecimal totalRate = BigDecimal.ZERO; BigDecimal totalRate = BigDecimal.ZERO;
for (TbsActivitySubjectBo.ActivityCenterBo centerBo : subjectBo.getCenterList()) { for (TbsActivitySubjectBo.ActivityCenterBo centerBo : subjectBo.getCenterList()) {
TbsActivityCenter activityCenter = new TbsActivityCenter();
activityCenter.setCostApplyId(costApplyId);
activityCenter.setActivityId(activityId);
activityCenter.setSubjectId(subjectBo.getSubjectId());
activityCenter.setCenterRate(centerBo.getCenterRate());
activityCenter.setCenterAmount(centerBo.getCenterAmount());
activityCenter.setCenterType(centerBo.getCenterType());
totalAmount = totalAmount.add(centerBo.getCenterAmount()); totalAmount = totalAmount.add(centerBo.getCenterAmount());
totalRate = totalRate.add(centerBo.getCenterRate()); totalRate = totalRate.add(centerBo.getCenterRate());
activityCenter.setCenterId(centerBo.getCenterId());
String centerType = centerBo.getCenterType(); String centerType = centerBo.getCenterType();
String centerId = centerBo.getCenterId(); String centerId = centerBo.getCenterId();
String key = centerType+":"+centerId; String key = centerType+":"+centerId;
@ -547,21 +551,12 @@ public class TbsActivityServiceImpl extends ServiceImpl<TbsActivityMapper,TbsAct
tbsCenterDto.setCenterAmount(centerBo.getCenterAmount()); tbsCenterDto.setCenterAmount(centerBo.getCenterAmount());
centerDtoMap.put(key,tbsCenterDto); centerDtoMap.put(key,tbsCenterDto);
} }
TbsActivityCenter activityCenter = new TbsActivityCenter();
activityCenter.setCostApplyId(costApplyId);
activityCenter.setActivityId(activityId);
activityCenter.setSubjectId(subjectBo.getSubjectId());
activityCenter.setCenterRate(centerBo.getCenterRate());
activityCenter.setCenterAmount(centerBo.getCenterAmount());
activityCenter.setCenterType(centerBo.getCenterType());
activityCenter.setCenterId(centerBo.getCenterId());
activityCenter.setCenterName(tbsCenterDto.getCenterName()); activityCenter.setCenterName(tbsCenterDto.getCenterName());
activityCenter.setCenterCode(tbsCenterDto.getCenterCode()); activityCenter.setCenterCode(tbsCenterDto.getCenterCode());
activityCenter.setTmpUk(centerBo.getTmpUk()); activityCenter.setTmpUk(centerBo.getTmpUk());
activityCenterList.add(activityCenter); activityCenterList.add(activityCenter);
} }
if(activitySubject.getAmount().compareTo(totalAmount)!=0){ if(activitySubject.getAmount().compareTo(totalAmount)!=0){
//log.error("成本中心费用入参有误--amount:{},activitySubject:{}",totalAmount,JsonUtil.objectToJson(activitySubject));
Assert.throwEx("成本中心费用入参有误"); Assert.throwEx("成本中心费用入参有误");
} }
if(totalRate.compareTo(new BigDecimal(100))!=0){ if(totalRate.compareTo(new BigDecimal(100))!=0){

17
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java

@ -18,10 +18,12 @@ import com.qs.serve.modules.seeyon.enums.SyAffairState;
import com.qs.serve.modules.seeyon.service.SeeYonOperationService; import com.qs.serve.modules.seeyon.service.SeeYonOperationService;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService; import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
import com.qs.serve.modules.sys.entity.SysPostUser; import com.qs.serve.modules.sys.entity.SysPostUser;
import com.qs.serve.modules.sys.entity.SysSyncLog;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysAttachMapper; import com.qs.serve.modules.sys.mapper.SysAttachMapper;
import com.qs.serve.modules.sys.mapper.SysUserMapper; import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.sys.service.SysPostUserService; import com.qs.serve.modules.sys.service.SysPostUserService;
import com.qs.serve.modules.sys.service.SysSyncLogService;
import com.qs.serve.modules.sys.service.SysUserService; import com.qs.serve.modules.sys.service.SysUserService;
import com.qs.serve.modules.tbs.common.TbsActivityState; import com.qs.serve.modules.tbs.common.TbsActivityState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState; import com.qs.serve.modules.tbs.common.TbsCostApplyState;
@ -70,6 +72,7 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
private final TbsActivityCenterMapper activityCenterMapper; private final TbsActivityCenterMapper activityCenterMapper;
private final TbsActivityCenterGoodsMapper activityCenterGoodsMapper; private final TbsActivityCenterGoodsMapper activityCenterGoodsMapper;
private final DataAffairCommitMapper dataAffairCommitMapper; private final DataAffairCommitMapper dataAffairCommitMapper;
private final SysSyncLogService sysSyncLogService;
@Override @Override
@ -287,10 +290,24 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
// 更新金额 // 更新金额
TbsCostApply apply = new TbsCostApply(); TbsCostApply apply = new TbsCostApply();
BigDecimal totalApply = null; BigDecimal totalApply = null;
boolean returnFlag = false;
try { try {
totalApply = checkToChangeAmount(param); totalApply = checkToChangeAmount(param);
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
SysSyncLog syncLog = new SysSyncLog();
syncLog.setFromPlat("CostApply.doFinished");
syncLog.setUrl("");
syncLog.setEntityClass(TbsAffairCommitBo.class.getName());
syncLog.setRequestJson(JsonUtil.objectToJson(param));
syncLog.setFailReason(e.getMessage());
syncLog.setSuccessStatus(0);
syncLog.setTodoState(1);
sysSyncLogService.save(syncLog);
returnFlag = true;
}
if(returnFlag){
return null;
} }
apply.setId(targetId); apply.setId(targetId);
if(totalApply!=null){ if(totalApply!=null){

Loading…
Cancel
Save