From e97f4409cddeda02364c878154805ffe313f090b Mon Sep 17 00:00:00 2001 From: Yen Date: Thu, 15 Aug 2024 11:59:44 +0800 Subject: [PATCH] =?UTF-8?q?fix=EF=BC=9A=E8=AE=A2=E5=8D=95=E6=8B=93?= =?UTF-8?q?=E5=B1=95=E5=AE=A1=E6=89=B9=E5=9B=9E=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/OmsOrderExpiredController.java | 2 +- .../qs/serve/modules/oms/entity/OmsOrder.java | 10 +++ .../impl/OmsOrderOptionsServiceImpl.java | 79 +++++++++++-------- 3 files changed, 58 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderExpiredController.java b/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderExpiredController.java index 5204d88b..bce4dfce 100644 --- a/src/main/java/com/qs/serve/modules/oms/controller/OmsOrderExpiredController.java +++ b/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+""); diff --git a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java b/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java index 6536f3ca..b8807884 100644 --- a/src/main/java/com/qs/serve/modules/oms/entity/OmsOrder.java +++ b/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 */ diff --git a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java b/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java index e282800e..03ef87d3 100644 --- a/src/main/java/com/qs/serve/modules/oms/service/impl/OmsOrderOptionsServiceImpl.java +++ b/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 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 newWayData = new HashMap<>(); + // 构建DATA - Map data = this.buildSeeyonData(omsOrder, sysUser, orderItemList, supplierAddress, supplier, + Map mainTableData = this.buildSeeyonData(omsOrder, sysUser, supplierAddress, supplier, totalOrderAmt, templateCode, saleBizNames, bizBizNames); + newWayData.put("formmain_2206",mainTableData); + + List 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 spuIds = orderItemList.stream().map(OmsOrderItem::getSpuId).collect(Collectors.toList()); List goodsSpuList = goodsSpuMapper.selectBatchIds(spuIds); List cateIds = goodsSpuList.stream().map(GoodsSpu::getCategoryLast).collect(Collectors.toList()); - cateIds.add("0"); List 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 buildSeeyonData(OmsOrder omsOrder, SysUser sysUser, List orderItemList, BmsSupplierAddress supplierAddress, BmsSupplier supplier, BigDecimal totalOrderAmt, String templateCode, String saleBizNames, String bizBizNames) { + private Map buildSeeyonData(OmsOrder omsOrder, SysUser sysUser, BmsSupplierAddress supplierAddress, BmsSupplier supplier, BigDecimal totalOrderAmt, String templateCode, String saleBizNames, String bizBizNames) { Map 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 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 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; }