Browse Source

fix:订单拓展审批回调

muti_db
Yen 11 months ago
parent
commit
e97f4409cd
  1. 2
      src/main/java/com/qs/serve/modules/oms/controller/OmsOrderExpiredController.java
  2. 10
      src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java
  3. 79
      src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java

2
src/main/java/com/qs/serve/modules/oms/controller/OmsOrderExpiredController.java

@ -30,7 +30,7 @@ public class OmsOrderExpiredController {
* @param id 订单ID * @param id 订单ID
* @return * @return
*/ */
@PostMapping("submit") @PostMapping("submit/{id}")
@SysLog(module = SystemModule.BIZ, title = "临期订单", biz = BizType.SUBMIT) @SysLog(module = SystemModule.BIZ, title = "临期订单", biz = BizType.SUBMIT)
public R<?> submit(@PathVariable("id") Long id){ public R<?> submit(@PathVariable("id") Long id){
omsOrderOptionsService.submitExpiredOrder(id+""); omsOrderOptionsService.submitExpiredOrder(id+"");

10
src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java

@ -48,6 +48,16 @@ public class OmsOrder implements Serializable {
/** OA审批状态,订单审批状态 */ /** OA审批状态,订单审批状态 */
private Integer orderCheckState; private Integer orderCheckState;
/** OA审批状态,订单审批状态 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime orderCheckSubmitTime;
/** OA审批状态,订单审批状态 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
private LocalDateTime orderCheckFinishedTime;
private String syFormId; private String syFormId;
/** 供应商ID */ /** 供应商ID */

79
src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java

@ -41,8 +41,10 @@ import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
@ -81,6 +83,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
private final SeeYonRequestService seeYonService; private final SeeYonRequestService seeYonService;
@Override @Override
@Transactional(rollbackFor = Exception.class)
public Object submitExpiredOrder(String orderId) { public Object submitExpiredOrder(String orderId) {
OmsOrder omsOrder = omsOrderService.getById(orderId); OmsOrder omsOrder = omsOrderService.getById(orderId);
String userId = AuthContextUtils.getSysUserId(); String userId = AuthContextUtils.getSysUserId();
@ -99,7 +102,8 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
Assert.throwEx("该功能只针对临期品订单"); Assert.throwEx("该功能只针对临期品订单");
} }
omsOrderService.checkMsOrderStatus(omsOrder); omsOrderService.checkMsOrderStatus(omsOrder);
if (!omsOrder.getStatus().equals(0) && !omsOrder.getStatus().equals(6)) { if (!omsOrder.getOrderCheckState().equals(OmsOrderCheckState.UnPublish.getCode())
&& !omsOrder.getOrderCheckState().equals(OmsOrderCheckState.Rollback.getCode())) {
Assert.throwEx("订单状态不支持下单"); Assert.throwEx("订单状态不支持下单");
} }
List<OmsOrderItem> orderItemList = omsOrderItemService.listByOrderId(Long.parseLong(orderId)); List<OmsOrderItem> orderItemList = omsOrderItemService.listByOrderId(Long.parseLong(orderId));
@ -171,15 +175,39 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
BmsRegion2 bizRegion = region2Mapper.selectById(bizRegionId); BmsRegion2 bizRegion = region2Mapper.selectById(bizRegionId);
String bizBizNames = bizRegion!=null?bizRegion.getPathNames():"null_申请时未录入"; String bizBizNames = bizRegion!=null?bizRegion.getPathNames():"null_申请时未录入";
Map<String, Object> newWayData = new HashMap<>();
// 构建DATA // 构建DATA
Map<String, Object> data = this.buildSeeyonData(omsOrder, sysUser, orderItemList, supplierAddress, supplier, Map<String, Object> mainTableData = this.buildSeeyonData(omsOrder, sysUser, supplierAddress, supplier,
totalOrderAmt, templateCode, saleBizNames, bizBizNames); totalOrderAmt, templateCode, saleBizNames, bizBizNames);
newWayData.put("formmain_2206",mainTableData);
List<SeeYonOrderItemDTO> itemDTOList = orderItemList.stream().map(item->{
SeeYonOrderItemDTO dto = new SeeYonOrderItemDTO();
dto.setSpuCode(item.getSpuCode());
dto.setSkuTitle(item.getSkuTitle());
GoodsSpu goodsSpu = goodsSpuMapper.selectById(item.getSpuId());
GoodsSku goodsSku = goodsSkuMapper.selectById(item.getSkuId());
GoodsCategory goodsCategory = goodsCategoryMapper.selectById(goodsSpu.getCategoryLast());
dto.setSkuAddCode(goodsSku.getSkuAddCode());
dto.setSkuCode(item.getSkuCode());
dto.setBatchCode(item.getSkuBatchCode());
dto.setSkuCategories(goodsCategory.getLevelPathNames());
dto.setSpecVal(item.getSpecValues());
dto.setRemark(item.getRemark());
dto.setWeight(item.getWeight());
dto.setVolume(item.getVolume());
dto.setSalesPrice(item.getSalesPrice());
dto.setTotalPrice(item.getSalesPrice().multiply(new BigDecimal(item.getQuantity())));
return dto;
}).collect(Collectors.toList());
newWayData.put("formson_2210",itemDTOList);
OaFormMainProcess mainProcess = new OaFormMainProcess(); OaFormMainProcess mainProcess = new OaFormMainProcess();
mainProcess.setTargetId(orderId); mainProcess.setTargetId(orderId);
mainProcess.setUploadFiles(new ArrayList<>()); mainProcess.setUploadFiles(new ArrayList<>());
mainProcess.setTableName("formmain_2206"); mainProcess.setTableName("formmain_2206");
mainProcess.setData(data); mainProcess.setData(newWayData);
mainProcess.setTemplateCode(templateCode); mainProcess.setTemplateCode(templateCode);
mainProcess.setUserId(sysUser.getId()); mainProcess.setUserId(sysUser.getId());
mainProcess.setSenderLoginName(sysUser.getAccount()); mainProcess.setSenderLoginName(sysUser.getAccount());
@ -203,6 +231,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
} }
omsOrder.setSyFormId(formId); omsOrder.setSyFormId(formId);
omsOrder.setOrderCheckState(OmsOrderCheckState.Commiting.getCode()); omsOrder.setOrderCheckState(OmsOrderCheckState.Commiting.getCode());
omsOrder.setOrderCheckSubmitTime(LocalDateTime.now());
omsOrderService.updateById(omsOrder); omsOrderService.updateById(omsOrder);
return R.ok(); return R.ok();
} }
@ -225,7 +254,6 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList());
List<GoodsSpu> goodsSpuList = goodsSpuMapper.selectBatchIds(spuIds); List<GoodsSpu> goodsSpuList = goodsSpuMapper.selectBatchIds(spuIds);
List<String> cateIds = goodsSpuList.stream().map(GoodsSpu::getCategoryLast).collect(Collectors.toList()); List<String> cateIds = goodsSpuList.stream().map(GoodsSpu::getCategoryLast).collect(Collectors.toList());
cateIds.add("0");
List<GoodsCategory> categoryList = goodsCategoryMapper.selectBatchIds(cateIds); List<GoodsCategory> categoryList = goodsCategoryMapper.selectBatchIds(cateIds);
String bs = categoryList.stream().map(GoodsCategory::getName).collect(Collectors.joining(",")); String bs = categoryList.stream().map(GoodsCategory::getName).collect(Collectors.joining(","));
//写入到ERP中间表 //写入到ERP中间表
@ -237,7 +265,6 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
* 构建DATA * 构建DATA
* @param omsOrder * @param omsOrder
* @param sysUser * @param sysUser
* @param orderItemList
* @param supplierAddress * @param supplierAddress
* @param supplier * @param supplier
* @param totalOrderAmt * @param totalOrderAmt
@ -246,9 +273,8 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
* @param bizBizNames * @param bizBizNames
* @return * @return
*/ */
private Map<String, Object> buildSeeyonData(OmsOrder omsOrder, SysUser sysUser, List<OmsOrderItem> orderItemList, BmsSupplierAddress supplierAddress, BmsSupplier supplier, BigDecimal totalOrderAmt, String templateCode, String saleBizNames, String bizBizNames) { private Map<String, Object> buildSeeyonData(OmsOrder omsOrder, SysUser sysUser, BmsSupplierAddress supplierAddress, BmsSupplier supplier, BigDecimal totalOrderAmt, String templateCode, String saleBizNames, String bizBizNames) {
Map<String, Object> data = new HashMap<>(); Map<String, Object> data = new HashMap<>();
data.put("title", omsOrder.getOrderSn());
data.put("orgId", omsOrder.getId()); data.put("orgId", omsOrder.getId());
data.put("targetId", omsOrder.getId()); data.put("targetId", omsOrder.getId());
data.put("targetCode", omsOrder.getOrderSn()); data.put("targetCode", omsOrder.getOrderSn());
@ -257,15 +283,17 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
data.put("supplierName", supplier.getName()); data.put("supplierName", supplier.getName());
data.put("supplierCode", supplier.getCode()); data.put("supplierCode", supplier.getCode());
data.put("exsp1", templateCode); data.put("exsp1", templateCode);
data.put("exsp2", saleBizNames); data.put("exsp2", bizBizNames);
data.put("biz_region", bizBizNames); data.put("exsp3", saleBizNames);
// title
data.put("exsp4", "临期订单-"+omsOrder.getOrderSn());
//添加跳转地址业务 //添加跳转地址业务
String baseJumpUrl = "https://shop.gdjsl.com/pcOrder/#/"; String baseJumpUrl = "https://shop.gdjsl.com/pcOrder/#/";
data.put("cmsLink",baseJumpUrl); data.put("cmsLink",baseJumpUrl);
data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","00"); data.put("rowState","00");
data.put("templateId", ""); //data.put("templateId", "");
data.put("templateName", ""); //data.put("templateName", "");
//添加客户标签 //添加客户标签
List<String> tags = tagInfoMapper.lisTagsBySupplierCode(supplier.getCode()); List<String> tags = tagInfoMapper.lisTagsBySupplierCode(supplier.getCode());
data.put("tags",tags); data.put("tags",tags);
@ -275,27 +303,13 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
data.put("cdNumber", omsOrder.getCdOrderRemark()); data.put("cdNumber", omsOrder.getCdOrderRemark());
data.put("remark", omsOrder.getRemark()); data.put("remark", omsOrder.getRemark());
data.put("mainRemark", omsOrder.getRemark()); data.put("mainRemark", omsOrder.getRemark());
// 折扣率
List<SeeYonOrderItemDTO> itemDTOList = orderItemList.stream().map(item->{ data.put("ext1", omsOrder.getDiscountRate());
SeeYonOrderItemDTO dto = new SeeYonOrderItemDTO(); // 折扣最终金额
dto.setSpuCode(item.getSpuCode()); data.put("ext2",
dto.setSkuTitle(item.getSkuTitle()); totalOrderAmt.multiply(omsOrder.getDiscountRate())
GoodsSpu goodsSpu = goodsSpuMapper.selectById(item.getSpuId()); .divide(new BigDecimal("100"),2, RoundingMode.DOWN)
GoodsSku goodsSku = goodsSkuMapper.selectById(item.getSkuId()); );
GoodsCategory goodsCategory = goodsCategoryMapper.selectById(goodsSpu.getCategoryLast());
dto.setSkuAddCode(goodsSku.getSkuAddCode());
dto.setSkuCode(item.getSkuCode());
dto.setBatchCode(item.getSkuBatchCode());
dto.setSkuCategories(goodsCategory.getLevelPathNames());
dto.setSpecVal(item.getSpecValues());
dto.setRemark(item.getRemark());
dto.setWeight(item.getWeight());
dto.setVolume(item.getVolume());
dto.setSalesPrice(item.getSalesPrice());
dto.setTotalPrice(item.getSalesPrice().multiply(new BigDecimal(item.getQuantity())));
return dto;
}).collect(Collectors.toList());
data.put("formson_2210",itemDTOList);
return data; return data;
} }
@ -319,6 +333,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
public Object doFinished(TbsAffairCommitBo param) { public Object doFinished(TbsAffairCommitBo param) {
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId()); OmsOrder omsOrder = omsOrderService.getById(param.getTargetId());
omsOrder.setOrderCheckState(OmsOrderCheckState.Finished.getCode()); omsOrder.setOrderCheckState(OmsOrderCheckState.Finished.getCode());
omsOrder.setOrderCheckFinishedTime(LocalDateTime.now());
omsOrderService.updateById(omsOrder); omsOrderService.updateById(omsOrder);
return null; return null;
} }

Loading…
Cancel
Save