yzc 2 лет назад
Родитель
Сommit
0a9e56de30

+ 5 - 0
sckw-common/sckw-common-mongo/src/main/java/com/sckw/mongo/model/SckwTradeOrder.java

@@ -1,5 +1,6 @@
 package com.sckw.mongo.model;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import lombok.AllArgsConstructor;
 import lombok.Data;
 import lombok.NoArgsConstructor;
@@ -77,11 +78,13 @@ public class SckwTradeOrder {
     /**
      * 订单开始日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate startTime;
 
     /**
      * 订单结束日期
      */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate endTime;
 
     /**
@@ -328,6 +331,7 @@ public class SckwTradeOrder {
     /**
      * 创建时间
      */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date createTime;
 
     /**
@@ -343,6 +347,7 @@ public class SckwTradeOrder {
     /**
      * 更新时间
      */
+    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
     private Date updateTime;
 
     /**

+ 0 - 12
sckw-modules/sckw-order/src/main/java/com/sckw/order/controller/KwoTradeOrderController.java

@@ -75,18 +75,6 @@ public class KwoTradeOrderController {
         return HttpResult.ok("代客下单提交成功");
     }
 
-    /**
-     * @desc: 订单详情
-     * @author: yzc
-     * @date: 2023-07-07 15:30
-     * @Param id:
-     * @return: com.sckw.core.web.response.HttpResult
-     */
-    @GetMapping("/detail")
-    public HttpResult detail(@RequestParam Long id) {
-        return HttpResult.ok(kwoTradeOrderService.detail(id));
-    }
-
     /**
      * @desc: 修改订单
      * @author: yzc

+ 7 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/model/KwoTradeOrderGoods.java

@@ -7,6 +7,8 @@ import lombok.Setter;
 import lombok.ToString;
 import lombok.experimental.Accessors;
 
+import java.math.BigDecimal;
+
 /**
  * @desc: 交易订单商品信息
  * @author: yzc
@@ -44,6 +46,11 @@ public class KwoTradeOrderGoods extends BaseModel {
      */
     private String unit;
 
+    /**
+     * 商品成交单价
+     */
+    private BigDecimal unitPrice;
+
     /**
      * kwp_goods_price_range表主键ID
      */

+ 15 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderGoodsService.java

@@ -1,5 +1,7 @@
 package com.sckw.order.serivce;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.core.model.constant.Global;
 import com.sckw.order.dao.KwoTradeOrderGoodsMapper;
 import com.sckw.order.model.KwoTradeOrderGoods;
 import lombok.RequiredArgsConstructor;
@@ -28,4 +30,17 @@ public class KwoTradeOrderGoodsService {
     public void insert(KwoTradeOrderGoods goods) {
         kwoTradeOrderGoodsMapper.insert(goods);
     }
+
+    /**
+     * @desc: 根据订单id获取
+     * @author: yzc
+     * @date: 2023-07-13 17:43
+     * @Param orderId:
+     * @return: com.sckw.order.model.KwoTradeOrderGoods
+     */
+    public KwoTradeOrderGoods getByOrderId(Long orderId) {
+        LambdaQueryWrapper<KwoTradeOrderGoods> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwoTradeOrderGoods::getTOrderId,orderId).eq(KwoTradeOrderGoods::getDelFlag, Global.NO).last("LIMIT 1");
+        return kwoTradeOrderGoodsMapper.selectOne(wrapper);
+    }
 }

+ 29 - 5
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderService.java

@@ -1,8 +1,10 @@
 package com.sckw.order.serivce;
 
 import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.sckw.core.common.enums.enums.DictEnum;
 import com.sckw.core.exception.BusinessException;
+import com.sckw.core.model.constant.Global;
 import com.sckw.core.model.vo.TableStatisticRes;
 import com.sckw.core.utils.BeanUtils;
 import com.sckw.core.utils.CollectionUtils;
@@ -89,7 +91,7 @@ public class KwoTradeOrderService {
         String tOrderNo = tradeOrder.getTOrderNo();
         SckwTradeOrder order = BeanUtils.copyProperties(tradeOrder, SckwTradeOrder.class);
         //todo: 当前线程获取企业名称
-        order.setFirmName(String.valueOf(LoginUserHolder.get().getEntId())).setTOrderId(id);
+        order.setFirmName(String.valueOf(LoginUserHolder.getEntId())).setTOrderId(id);
         //添加商品信息
         GoodsInfo goodsInfo = param.getGoodsInfo();
         KwoTradeOrderGoods goods = BeanUtils.copyProperties(goodsInfo, KwoTradeOrderGoods.class);
@@ -199,7 +201,7 @@ public class KwoTradeOrderService {
                 .setUnit(param.getGoodsInfo().getUnit()).setSource(DictEnum.TORDER_SOURCE_0.getValue())
                 .setStatus(Integer.valueOf(DictEnum.TORDER_STATUS_1.getValue()));
         kwoTradeOrderMapper.insert(order);
-        goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(),param.getAmount());
+        goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(), param.getAmount());
         addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class));
     }
 
@@ -210,7 +212,7 @@ public class KwoTradeOrderService {
             throw new BusinessException("商品不存在或已下架!");
         }
         if (Objects.equals(param.getTrading(), DictEnum.TRADE_TYPE_0.getValue())) {
-            if (param.getPrice().compareTo(goods.getAdvancePrice()) < 0){
+            if (param.getPrice().compareTo(goods.getAdvancePrice()) < 0) {
                 throw new BusinessException("采购订单金额不能小于商品最低预付款限额!");
             }
         }
@@ -242,7 +244,7 @@ public class KwoTradeOrderService {
             throw new BusinessException("Invalid contract status");
         }
         kwoTradeOrderMapper.insert(order);
-        goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(),param.getAmount());
+        goodsInfoService.updateGoodsAmount(param.getGoodsInfo().getGoodsId(), param.getAmount());
         addOtherOrderInfo(order, BeanUtils.copyProperties(param, ValetOrderParam.class));
     }
 
@@ -254,7 +256,16 @@ public class KwoTradeOrderService {
      * @return: com.sckw.order.model.vo.res.OrderDetail
      */
     public OrderDetailRes detail(Long id) {
-        return null;
+        if (kwoTradeOrderUnitService.entMatch(id, LoginUserHolder.getEntId())) {
+            throw new BusinessException("无权限查看数据!");
+        }
+        KwoTradeOrder order = getById(id);
+        if (Objects.isNull(order)) {
+            throw new BusinessException("不存在该订单!");
+        }
+        OrderDetailRes orderDetail = BeanUtils.copyProperties(order, OrderDetailRes.class);
+        KwoTradeOrderGoods tradeOrderGoods = kwoTradeOrderGoodsService.getByOrderId(id);
+        return orderDetail;
     }
 
     /**
@@ -301,4 +312,17 @@ public class KwoTradeOrderService {
     public void batchDelete(List<Long> ids) {
 
     }
+
+    /**
+     * @desc: 根据id获取订单
+     * @author: yzc
+     * @date: 2023-07-13 17:14
+     * @Param id:
+     * @return: com.sckw.order.model.KwoTradeOrder
+     */
+    public KwoTradeOrder getById(Long id) {
+        LambdaQueryWrapper<KwoTradeOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwoTradeOrder::getId, id).eq(KwoTradeOrder::getDelFlag, Global.NO).last("LIMIT 1");
+        return kwoTradeOrderMapper.selectOne(wrapper);
+    }
 }

+ 18 - 0
sckw-modules/sckw-order/src/main/java/com/sckw/order/serivce/KwoTradeOrderUnitService.java

@@ -1,5 +1,7 @@
 package com.sckw.order.serivce;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.sckw.core.model.constant.Global;
 import com.sckw.order.dao.KwoTradeOrderUnitMapper;
 import com.sckw.order.model.KwoTradeOrderUnit;
 import lombok.RequiredArgsConstructor;
@@ -7,6 +9,7 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
+import java.util.Objects;
 
 /**
  * @desc: 交易订单采购/销售企业信息service
@@ -30,4 +33,19 @@ public class KwoTradeOrderUnitService {
     public void insertBatch(List<KwoTradeOrderUnit> list) {
         kwoTradeOrderUnitMapper.insertBatch(list);
     }
+
+    /**
+     * @desc: 企业匹配
+     * @author: yzc
+     * @date: 2023-07-13 16:56
+     * @Param orderId:
+     * @Param entId:
+     * @return: void
+     */
+    public Boolean entMatch(Long orderId, Long entId) {
+        LambdaQueryWrapper<KwoTradeOrderUnit> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(KwoTradeOrderUnit::getTopEntId, entId).eq(KwoTradeOrderUnit::getTOrderId, orderId)
+                .eq(KwoTradeOrderUnit::getDelFlag, Global.NO).last("LIMIT 1");
+        return Objects.isNull(kwoTradeOrderUnitMapper.selectOne(wrapper));
+    }
 }

+ 9 - 3
sckw-modules/sckw-report/src/main/java/com/sckw/report/controller/KwOrderController.java

@@ -1,9 +1,11 @@
 package com.sckw.report.controller;
 
+import com.sckw.core.web.response.HttpResult;
 import com.sckw.report.service.KwOrderService;
 import lombok.AllArgsConstructor;
-import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
@@ -16,7 +18,11 @@ import org.springframework.web.bind.annotation.RestController;
 @RequestMapping("/kwOrder")
 public class KwOrderController {
 
-    @Autowired
-    KwOrderService orderService;
+    private final KwOrderService orderService;
+
+    @GetMapping("/tradeOrderDetail")
+    public HttpResult detail(@RequestParam Long id) {
+        return HttpResult.ok(orderService.tradeOrderDetail(id));
+    }
 
 }

+ 32 - 0
sckw-modules/sckw-report/src/main/java/com/sckw/report/service/KwOrderService.java

@@ -1,5 +1,13 @@
 package com.sckw.report.service;
 
+import com.sckw.core.web.context.LoginUserHolder;
+import com.sckw.mongo.model.SckwTradeOrder;
+import com.sckw.report.dao.SckwTradeOrderRepository;
+import lombok.AllArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.data.mongodb.core.MongoTemplate;
+import org.springframework.data.mongodb.core.query.Criteria;
+import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.stereotype.Service;
 
 /**
@@ -8,5 +16,29 @@ import org.springframework.stereotype.Service;
  * @date 2023/7/10 0010
  */
 @Service
+@Slf4j
+@AllArgsConstructor
 public class KwOrderService {
+
+    private final SckwTradeOrderRepository sckwOrderRepository;
+
+    private final MongoTemplate mongoTemplate;
+
+    /**
+     * @desc: 贸易订单详情
+     * @author: yzc
+     * @date: 2023-07-14 9:03
+     * @Param id:
+     * @return: com.sckw.mongo.model.SckwTradeOrder
+     */
+    public SckwTradeOrder tradeOrderDetail(Long id) {
+        Long entId = LoginUserHolder.getEntId();
+        Query query = new Query();
+        Criteria criteria = new Criteria();
+        criteria.andOperator(Criteria.where("_id").is(id).and("delFlag").is(0));
+        criteria.orOperator(Criteria.where("procureTopEntId").is(entId), Criteria.where("supplyTopEntId").is(entId));
+        query.addCriteria(criteria);
+        SckwTradeOrder tradeOrder = mongoTemplate.findOne(query, SckwTradeOrder.class);
+        return mongoTemplate.findOne(query, SckwTradeOrder.class);
+    }
 }