Browse Source

成本中心维度核销,订单系统微调

v1.0
Yen 2 years ago
parent
commit
5d8280bcea
  1. 21
      src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java
  2. 69
      src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuImportBo.java
  3. 2
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderServiceImpl.java
  4. 14
      src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java
  5. 2
      src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java
  6. 2
      src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYardCenterItem.java
  7. 41
      src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java
  8. 1
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  9. 2
      src/main/resources/mapper/goods/GoodsSpuMapper.xml

21
src/main/java/com/qs/serve/modules/goods/controller/GoodsSkuController.java

@ -10,6 +10,7 @@ import com.qs.serve.common.model.enums.SystemModule;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue; import com.qs.serve.modules.goods.entity.GoodsSkuSpecValue;
import com.qs.serve.modules.goods.entity.bo.GoodsSkuBo; import com.qs.serve.modules.goods.entity.bo.GoodsSkuBo;
import com.qs.serve.modules.goods.entity.bo.GoodsSpuImportBo;
import com.qs.serve.modules.goods.entity.vo.GoodSkuVo; import com.qs.serve.modules.goods.entity.vo.GoodSkuVo;
import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo; import com.qs.serve.modules.goods.entity.vo.GoodsSkuSpecValueVo;
import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService; import com.qs.serve.modules.goods.service.GoodsSkuSpecValueService;
@ -28,6 +29,7 @@ import com.qs.serve.modules.goods.service.GoodsSkuService;
import javax.validation.Valid; import javax.validation.Valid;
import java.util.List; import java.util.List;
import java.util.Random; import java.util.Random;
import java.util.stream.Collectors;
/** /**
* 商品 sku * 商品 sku
@ -178,5 +180,24 @@ public class GoodsSkuController {
return R.isTrue(result); return R.isTrue(result);
} }
/**
* 导入
* @param param
* @return
*/
@PostMapping("/importSku")
@SysLog(module = SystemModule.GOODS, title = "import", biz = BizType.INSERT)
public R<?> importSpu(@RequestBody @Valid GoodsSpuImportBo param){
final String UPDATE = "update";
final String DELETE = "delete";
final String SAVE = "save";
for (GoodsSpuImportBo.SpuItem spuItem : param.getSpuList()) {
}
return R.ok(param);
}
} }

69
src/main/java/com/qs/serve/modules/goods/entity/bo/GoodsSkuImportBo.java

@ -0,0 +1,69 @@
package com.qs.serve.modules.goods.entity.bo;
import lombok.Data;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;
/**
* 口味品类
* @author YenHex
* @since 2022/10/10
*/
@Data
public class GoodsSkuImportBo {
private List<SkuItem> spuList;
@Data
public static class SkuItem{
/**
* 操作方式save,update,delete
*/
private String opt;
/** 商品编码(嘉士利SkuCode) */
private String spuCode;
/** 商品编码(嘉士利InvCode) */
private String skuCode;
/** 商品名字 */
private String skuName;
/** 库存 */
private Integer stock;
/** 重量(kg) */
private BigDecimal weight;
/** 体积(m³) */
private BigDecimal volume;
/** 最低起批数(0->不限制) */
private Integer minPurchase;
/** 可否下单 1、是;0否 */
private Integer orderFlag;
/** 是否特殊品 1、是;0否 */
private Integer specialFlag;
/** 产地 */
private String belong;
/** 包装 */
private String wrapVal;
/** 口味 */
private String tasteVal;
/** 销售价格 */
private BigDecimal salesPrice;
private String errMsg;
}
}

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

@ -408,7 +408,7 @@ public class OmsOrderServiceImpl extends ServiceImpl<OmsOrderMapper,OmsOrder> im
GoodsSku goodsSku = goodsSkuService.getById(shoppingCart.getSkuId()); GoodsSku goodsSku = goodsSkuService.getById(shoppingCart.getSkuId());
orderItem.setSpuId(shoppingCart.getSpuId()); orderItem.setSpuId(shoppingCart.getSpuId());
orderItem.setSpuTitle(shoppingCart.getSpecInfo()); orderItem.setSpuTitle(shoppingCart.getSpecInfo());
orderItem.setSkuId(shoppingCart.getId()); orderItem.setSkuId(shoppingCart.getSkuId());
orderItem.setSkuCode(shoppingCart.getSkuCode()); orderItem.setSkuCode(shoppingCart.getSkuCode());
orderItem.setSkuUnit(null); orderItem.setSkuUnit(null);
orderItem.setSkuImg(shoppingCart.getPicUrl()); orderItem.setSkuImg(shoppingCart.getPicUrl());

14
src/main/java/com/qs/serve/modules/tbs/controller/TbsActivityController.java

@ -36,6 +36,7 @@ import com.qs.serve.modules.tbs.entity.vo.TbsActivityCenterGoodsVo;
import com.qs.serve.modules.tbs.entity.vo.TbsActivityDefaultCenterVo; import com.qs.serve.modules.tbs.entity.vo.TbsActivityDefaultCenterVo;
import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.vtb.entity.VtbVerification; import com.qs.serve.modules.vtb.entity.VtbVerification;
import com.qs.serve.modules.vtb.service.VtbFundFlowService;
import com.qs.serve.modules.vtb.service.VtbVerificationService; import com.qs.serve.modules.vtb.service.VtbVerificationService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@ -87,6 +88,7 @@ public class TbsActivityController {
private final BmsSubjectFormService bmsSubjectFormService; private final BmsSubjectFormService bmsSubjectFormService;
private final VtbVerificationService verificationService; private final VtbVerificationService verificationService;
private final VtbFundFlowService vtbFundFlowService;
private final TbsActivityApplicationService tbsActivityApplicationService; private final TbsActivityApplicationService tbsActivityApplicationService;
private final TbsBudgetService tbsBudgetService; private final TbsBudgetService tbsBudgetService;
@ -406,6 +408,18 @@ public class TbsActivityController {
return R.ok(); return R.ok();
} }
/**
* 刷新活动相关金额
* @param id
* @return
*/
@GetMapping("/flushAmount/{id}")
@SysLog(module = SystemModule.Budget, title = "费用活动", biz = BizType.DELETE)
public R<?> flushActivityAmount(@PathVariable("id") Long id){
vtbFundFlowService.flushActivityAmount(id);
return R.ok();
}
/** /**
* 获取默认的成本中心 * 获取默认的成本中心
* @param defaultCenterBo * @param defaultCenterBo

2
src/main/java/com/qs/serve/modules/tbs/entity/bo/TbsAffairCommitBo.java

@ -114,7 +114,7 @@ public class TbsAffairCommitBo {
/** /**
* 调整金额 * 调整金额
*/ */
private BigDecimal centerAmount; private BigDecimal amount;
} }

2
src/main/java/com/qs/serve/modules/vtb/entity/VtbVerificationYardCenterItem.java

@ -166,7 +166,7 @@ public class VtbVerificationYardCenterItem implements Serializable {
verificationYardCenterItem.setSupplierName(source.getSupplierName()); verificationYardCenterItem.setSupplierName(source.getSupplierName());
// verificationYardCenterItem.setLastAmount(source.getLastAmount()); // verificationYardCenterItem.setLastAmount(source.getLastAmount());
// verificationYardCenterItem.setCurrAmount(source.getCurrAmount()); // verificationYardCenterItem.setCurrAmount(source.getCurrAmount());
verificationYardCenterItem.setRemark(source.getRemark()); // verificationYardCenterItem.setRemark(source.getRemark());
verificationYardCenterItem.setCreateTime(source.getCreateTime()); verificationYardCenterItem.setCreateTime(source.getCreateTime());
verificationYardCenterItem.setUpdateTime(source.getUpdateTime()); verificationYardCenterItem.setUpdateTime(source.getUpdateTime());
verificationYardCenterItem.setTenantId(source.getTenantId()); verificationYardCenterItem.setTenantId(source.getTenantId());

41
src/main/java/com/qs/serve/modules/vtb/service/VtbVerificationApplication.java

@ -70,6 +70,8 @@ public class VtbVerificationApplication {
private SeeYonRequestService seeYonService; private SeeYonRequestService seeYonService;
public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){ public R<?> commitAffair(@RequestBody @Valid TbsAffairCommitBo affairCommit){
//临时测试
boolean devFlag = false;
VtbVerification verification = vtbVerificationService.getById(affairCommit.getCostApplyId()); VtbVerification verification = vtbVerificationService.getById(affairCommit.getCostApplyId());
if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){ if(!verification.getVerificationState().equals(VtbVerificationState.Commiting.getCode())){
Assert.throwEx("费用申请处于未非审批状态!"); Assert.throwEx("费用申请处于未非审批状态!");
@ -79,7 +81,12 @@ public class VtbVerificationApplication {
//检测参数的金额 //检测参数的金额
this.checkParamAmount(affairCommit, verificationSubjectCenterList, verificationSubjects); this.checkParamAmount(affairCommit, verificationSubjectCenterList, verificationSubjects);
boolean isBackCommit = affairCommit.getState()==2; boolean isBackCommit = affairCommit.getState()==2;
R<String> result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId()); R<String> result;
if(!devFlag){
result = seeYonService.commonCommit(affairCommit, TbsSeeYonConst.CostCheckConf.Code(),verification.getSyFormId());
}else {
result = R.ok();
}
if(result.getStatus()==200){ if(result.getStatus()==200){
// 判断是否含有下个节点 // 判断是否含有下个节点
//String flag = result.getData(); //String flag = result.getData();
@ -90,7 +97,9 @@ public class VtbVerificationApplication {
} }
VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class); VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class);
String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString()); String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString());
if(devFlag){
summeryResult = "finished";
}
R r = commitAffairSuccess(affairCommit, verification, isBackCommit, summeryResult); R r = commitAffairSuccess(affairCommit, verification, isBackCommit, summeryResult);
try { try {
//解决同步冻结时有过期的活动 //解决同步冻结时有过期的活动
@ -116,7 +125,6 @@ public class VtbVerificationApplication {
*/ */
private void checkParamAmount(TbsAffairCommitBo affairCommit, List<VtbVerificationSubjectCenter> verificationSubjectCenterList, List<VtbVerificationSubject> verificationSubjects) { private void checkParamAmount(TbsAffairCommitBo affairCommit, List<VtbVerificationSubjectCenter> verificationSubjectCenterList, List<VtbVerificationSubject> verificationSubjects) {
boolean isChangeCommit = verificationSubjectCenterList.size()>0; boolean isChangeCommit = verificationSubjectCenterList.size()>0;
boolean isAutoCommit = verificationSubjects.size()>0;
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){ if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectLines())){
if(isChangeCommit){ if(isChangeCommit){
Assert.throwEx("当前核销不支持科目维度修改金额"); Assert.throwEx("当前核销不支持科目维度修改金额");
@ -135,9 +143,6 @@ public class VtbVerificationApplication {
} }
} }
if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){ if(CollectionUtil.isNotEmpty(affairCommit.getAffairSubjectCenterLines())){
if(isAutoCommit){
Assert.throwEx("当前核销不支持成本中心维度修改金额");
}
for (TbsAffairCommitBo.AffairSubjectCenterLine subjectCenterLine : affairCommit.getAffairSubjectCenterLines()) { for (TbsAffairCommitBo.AffairSubjectCenterLine subjectCenterLine : affairCommit.getAffairSubjectCenterLines()) {
VtbVerificationSubjectCenter currSubjectCenter = null; VtbVerificationSubjectCenter currSubjectCenter = null;
BigDecimal changeAmt = null; BigDecimal changeAmt = null;
@ -146,7 +151,7 @@ public class VtbVerificationApplication {
currSubjectCenter = subjectCenter; currSubjectCenter = subjectCenter;
for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : subjectCenterLine.getCenterItemLines()) { for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : subjectCenterLine.getCenterItemLines()) {
if(subjectCenter.getActivityCenterId().equals(itemLine.getActivityCenterId())){ if(subjectCenter.getActivityCenterId().equals(itemLine.getActivityCenterId())){
changeAmt = itemLine.getCenterAmount(); changeAmt = itemLine.getAmount();
break; break;
} }
} }
@ -228,6 +233,8 @@ public class VtbVerificationApplication {
List<VtbVerificationYardItem> yardItemList = new ArrayList<>(); List<VtbVerificationYardItem> yardItemList = new ArrayList<>();
List<VtbVerificationSubject> verSubject4Update = new ArrayList<>(); List<VtbVerificationSubject> verSubject4Update = new ArrayList<>();
List<VtbVerificationYardCenterItem> yarnCenterList = new ArrayList<>(); List<VtbVerificationYardCenterItem> yarnCenterList = new ArrayList<>();
//拓展成本中心维度调整记录
List<VtbVerificationSubjectCenter> subjectCenterUpdateList = new ArrayList<>();
for (VtbVerificationSubject currVs : verificationSubjects) { for (VtbVerificationSubject currVs : verificationSubjects) {
BigDecimal changeAmount = null; BigDecimal changeAmount = null;
Integer countSession = null; Integer countSession = null;
@ -240,7 +247,7 @@ public class VtbVerificationApplication {
changeAmount = BigDecimal.ZERO; changeAmount = BigDecimal.ZERO;
if(centerLine.getCenterItemLines()!=null){ if(centerLine.getCenterItemLines()!=null){
for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : centerLine.getCenterItemLines()) { for (TbsAffairCommitBo.AffairSubjectCenterItemLine itemLine : centerLine.getCenterItemLines()) {
changeAmount = changeAmount.add(itemLine.getCenterAmount()); changeAmount = changeAmount.add(itemLine.getAmount());
} }
} }
centerItemLineList = centerLine.getCenterItemLines(); centerItemLineList = centerLine.getCenterItemLines();
@ -325,7 +332,6 @@ public class VtbVerificationApplication {
yardItem.setCurrAmount(lastAmount); yardItem.setCurrAmount(lastAmount);
} }
totalAmount = totalAmount.add(yardItem.getCurrAmount()); totalAmount = totalAmount.add(yardItem.getCurrAmount());
//拓展成本中心维度调整记录
if(centerItemLineList!=null){ if(centerItemLineList!=null){
for (TbsAffairCommitBo.AffairSubjectCenterItemLine centerItemLine : centerItemLineList) { for (TbsAffairCommitBo.AffairSubjectCenterItemLine centerItemLine : centerItemLineList) {
VtbVerificationYardCenterItem centerItem = VtbVerificationYardCenterItem.toNewObject(yardItem); VtbVerificationYardCenterItem centerItem = VtbVerificationYardCenterItem.toNewObject(yardItem);
@ -337,8 +343,18 @@ public class VtbVerificationApplication {
centerItem.setCenterType(subjectCenter.getCenterType()); centerItem.setCenterType(subjectCenter.getCenterType());
centerItem.setActivityCenterId(subjectCenter.getActivityCenterId()); centerItem.setActivityCenterId(subjectCenter.getActivityCenterId());
centerItem.setLastAmount(subjectCenter.getUsedAmount()); centerItem.setLastAmount(subjectCenter.getUsedAmount());
centerItem.setCurrAmount(centerItemLine.getCenterAmount()); centerItem.setCurrAmount(centerItemLine.getAmount());
BigDecimal diff = centerItem.getCurrAmount().subtract(centerItem.getLastAmount());
//修改center的记录金额
VtbVerificationSubjectCenter scParam = new VtbVerificationSubjectCenter();
scParam.setId(subjectCenter.getId());
scParam.setUsedAmount(centerItemLine.getAmount());
subjectCenterUpdateList.add(scParam);
if(diff.compareTo(BigDecimal.ZERO)>0){
centerItem.setRemark("增加费用:"+diff);
}else {
centerItem.setRemark("减少费用:"+diff.negate());
}
} }
} }
yarnCenterList.add(centerItem); yarnCenterList.add(centerItem);
@ -350,6 +366,9 @@ public class VtbVerificationApplication {
yardItemService.saveBatch(yardItemList); yardItemService.saveBatch(yardItemList);
yardCenterItemService.saveBatch(yarnCenterList); yardCenterItemService.saveBatch(yarnCenterList);
vtbVerificationSubjectService.updateBatchById(verSubject4Update); vtbVerificationSubjectService.updateBatchById(verSubject4Update);
if(subjectCenterUpdateList.size()>0){
vtbVerificationSubjectCenterService.updateBatchById(subjectCenterUpdateList);
}
//重新计算合计 //重新计算合计
if(isFinish){ if(isFinish){
finishCallBack(verification, totalAmount); finishCallBack(verification, totalAmount);

1
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -576,6 +576,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void commit(VtbVerificationBo verificationBo) { public void commit(VtbVerificationBo verificationBo) {
SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserService.getById(AuthContextUtils.getSysUserId());
sysUser.checkSyAccount(); sysUser.checkSyAccount();
TbsActivity activity = activityService.getById(verificationBo.getActivityId()); TbsActivity activity = activityService.getById(verificationBo.getActivityId());

2
src/main/resources/mapper/goods/GoodsSpuMapper.xml

@ -59,7 +59,7 @@
goods_spu.`update_by`, goods_spu.`update_by`,
goods_spu.`tenant_id`, goods_spu.`tenant_id`,
goods_spu.`cost_flag`, goods_spu.`cost_flag`,
goods_sup.`order_flag`, goods_spu.`order_flag`,
goods_spu.`del_flag`, goods_spu.`del_flag`,
goods_spu.`special_sku_id`, goods_spu.`special_sku_id`,
goods_spu.`belong` goods_spu.`belong`

Loading…
Cancel
Save