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
* @return
*/
@PostMapping("submit")
@PostMapping("submit/{id}")
@SysLog(module = SystemModule.BIZ, title = "临期订单", biz = BizType.SUBMIT)
public R<?> submit(@PathVariable("id") Long 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审批状态,订单审批状态 */
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;
/** 供应商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.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.HashMap;
@ -81,6 +83,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
private final SeeYonRequestService seeYonService;
@Override
@Transactional(rollbackFor = Exception.class)
public Object submitExpiredOrder(String orderId) {
OmsOrder omsOrder = omsOrderService.getById(orderId);
String userId = AuthContextUtils.getSysUserId();
@ -99,7 +102,8 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
Assert.throwEx("该功能只针对临期品订单");
}
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("订单状态不支持下单");
}
List<OmsOrderItem> orderItemList = omsOrderItemService.listByOrderId(Long.parseLong(orderId));
@ -171,15 +175,39 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
BmsRegion2 bizRegion = region2Mapper.selectById(bizRegionId);
String bizBizNames = bizRegion!=null?bizRegion.getPathNames():"null_申请时未录入";
Map<String, Object> newWayData = new HashMap<>();
// 构建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);
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();
mainProcess.setTargetId(orderId);
mainProcess.setUploadFiles(new ArrayList<>());
mainProcess.setTableName("formmain_2206");
mainProcess.setData(data);
mainProcess.setData(newWayData);
mainProcess.setTemplateCode(templateCode);
mainProcess.setUserId(sysUser.getId());
mainProcess.setSenderLoginName(sysUser.getAccount());
@ -203,6 +231,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
}
omsOrder.setSyFormId(formId);
omsOrder.setOrderCheckState(OmsOrderCheckState.Commiting.getCode());
omsOrder.setOrderCheckSubmitTime(LocalDateTime.now());
omsOrderService.updateById(omsOrder);
return R.ok();
}
@ -225,7 +254,6 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
List<Long> spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList());
List<GoodsSpu> goodsSpuList = goodsSpuMapper.selectBatchIds(spuIds);
List<String> cateIds = goodsSpuList.stream().map(GoodsSpu::getCategoryLast).collect(Collectors.toList());
cateIds.add("0");
List<GoodsCategory> categoryList = goodsCategoryMapper.selectBatchIds(cateIds);
String bs = categoryList.stream().map(GoodsCategory::getName).collect(Collectors.joining(","));
//写入到ERP中间表
@ -237,7 +265,6 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
* 构建DATA
* @param omsOrder
* @param sysUser
* @param orderItemList
* @param supplierAddress
* @param supplier
* @param totalOrderAmt
@ -246,9 +273,8 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
* @param bizBizNames
* @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<>();
data.put("title", omsOrder.getOrderSn());
data.put("orgId", omsOrder.getId());
data.put("targetId", omsOrder.getId());
data.put("targetCode", omsOrder.getOrderSn());
@ -257,15 +283,17 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
data.put("supplierName", supplier.getName());
data.put("supplierCode", supplier.getCode());
data.put("exsp1", templateCode);
data.put("exsp2", saleBizNames);
data.put("biz_region", bizBizNames);
data.put("exsp2", bizBizNames);
data.put("exsp3", saleBizNames);
// title
data.put("exsp4", "临期订单-"+omsOrder.getOrderSn());
//添加跳转地址业务
String baseJumpUrl = "https://shop.gdjsl.com/pcOrder/#/";
data.put("cmsLink",baseJumpUrl);
data.put("rowDate", DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","00");
data.put("templateId", "");
data.put("templateName", "");
//data.put("templateId", "");
//data.put("templateName", "");
//添加客户标签
List<String> tags = tagInfoMapper.lisTagsBySupplierCode(supplier.getCode());
data.put("tags",tags);
@ -275,27 +303,13 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
data.put("cdNumber", omsOrder.getCdOrderRemark());
data.put("remark", omsOrder.getRemark());
data.put("mainRemark", omsOrder.getRemark());
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());
data.put("formson_2210",itemDTOList);
// 折扣率
data.put("ext1", omsOrder.getDiscountRate());
// 折扣最终金额
data.put("ext2",
totalOrderAmt.multiply(omsOrder.getDiscountRate())
.divide(new BigDecimal("100"),2, RoundingMode.DOWN)
);
return data;
}
@ -319,6 +333,7 @@ public class OmsOrderOptionsServiceImpl implements OmsOrderOptionsService {
public Object doFinished(TbsAffairCommitBo param) {
OmsOrder omsOrder = omsOrderService.getById(param.getTargetId());
omsOrder.setOrderCheckState(OmsOrderCheckState.Finished.getCode());
omsOrder.setOrderCheckFinishedTime(LocalDateTime.now());
omsOrderService.updateById(omsOrder);
return null;
}

Loading…
Cancel
Save