Browse Source

改动过的

huanglizhi 1 year ago
parent
commit
3587bab989

+ 8 - 0
module-erp/src/main/java/com/hys/app/controller/erp/use/OrderController.java

@@ -79,6 +79,14 @@ public class OrderController {
         orderManager.submit(id);
         orderManager.submit(id);
     }
     }
 
 
+
+    @ApiOperation(value = "撤销")
+    @PostMapping("/{id}/revoke")
+    @Log(client = LogClient.admin, detail = "撤销ID为[${id}]的订单")
+    public void returnOrder(@PathVariable Long id) {
+        orderManager.returnOrder(id);
+    }
+
     @ApiOperation(value = "删除")
     @ApiOperation(value = "删除")
     @DeleteMapping("/{id}")
     @DeleteMapping("/{id}")
     @Log(client = LogClient.admin, detail = "删除id为[${id}]的订单")
     @Log(client = LogClient.admin, detail = "删除id为[${id}]的订单")

+ 1 - 0
module-erp/src/main/java/com/hys/app/model/erp/dto/ProductDTO.java

@@ -35,6 +35,7 @@ public class ProductDTO {
     private String barCode;
     private String barCode;
 
 
     @ApiModelProperty(name = "sku", value = "sku")
     @ApiModelProperty(name = "sku", value = "sku")
+    @Min(value = 5)
     private String sku;
     private String sku;
 
 
     @ApiModelProperty(name = "price", value = "售价")
     @ApiModelProperty(name = "price", value = "售价")

+ 3 - 2
module-erp/src/main/java/com/hys/app/model/erp/enums/SaleOrderStatusEnum.java

@@ -14,13 +14,14 @@ import lombok.Getter;
 public enum SaleOrderStatusEnum {
 public enum SaleOrderStatusEnum {
 
 
     TO_BE_COMMIT("TO_BE_COMMIT", "待确认"),
     TO_BE_COMMIT("TO_BE_COMMIT", "待确认"),
-    TO_BE_SEND("TO_BE_SEND", "已确认"),
+    TO_BE_SEND("TO_BE_SEND", "待发货"),
     SENDING("SENDING", "已发货"),
     SENDING("SENDING", "已发货"),
     ORDER_END("ORDER_END", "已完成"),
     ORDER_END("ORDER_END", "已完成"),
     TO_BE_RETURN("TO_BE_RETURN", "待返回"),
     TO_BE_RETURN("TO_BE_RETURN", "待返回"),
     SALE_AFTER_ING("SALE_AFTER_ING", "售后中"),
     SALE_AFTER_ING("SALE_AFTER_ING", "售后中"),
     SALE_AFTER_END("SALE_AFTER_END", "售后完成"),
     SALE_AFTER_END("SALE_AFTER_END", "售后完成"),
-    SALE_AFTER_CANCEL("SALE_AFTER_CANCEL", "售后关闭");
+    SALE_AFTER_CANCEL("SALE_AFTER_CANCEL", "售后关闭"),
+    REVOKE("REVOKE", "已撤销");
 
 
     SaleOrderStatusEnum(String value, String label) {
     SaleOrderStatusEnum(String value, String label) {
         this.value = value;
         this.value = value;

+ 7 - 0
module-erp/src/main/java/com/hys/app/service/erp/OrderManager.java

@@ -122,5 +122,12 @@ public interface OrderManager extends BaseService<OrderDO> {
      * @param orderSendDO
      * @param orderSendDO
      */
      */
     void saveOrderSend(Long orderSendId, PreOrderModelDTO orderSendDO);
     void saveOrderSend(Long orderSendId, PreOrderModelDTO orderSendDO);
+
+    /**
+     * 撤销未发货的订单
+     *
+     * @param id
+     */
+    void returnOrder(Long id);
 }
 }
 
 

+ 1 - 1
module-erp/src/main/java/com/hys/app/service/erp/impl/GoodsSnManagerImpl.java

@@ -161,7 +161,7 @@ public class GoodsSnManagerImpl extends BaseServiceImpl<GoodsSnMapper, GoodsSnDO
             aDo.setGoodsId(byId.getGoodsId());
             aDo.setGoodsId(byId.getGoodsId());
             aDo.setSku(byId.getSku());
             aDo.setSku(byId.getSku());
             aDo.setProductId(goodsDTO.getProductId());
             aDo.setProductId(goodsDTO.getProductId());
-            aDo.setSnCode(byId.getSku() + DateUtil.format(LocalDateTime.now(), "yyyyMMddHHmmss") + String.format("%04d", num));
+            aDo.setSnCode(byId.getSku().substring(0,3) + DateUtil.format(LocalDateTime.now(), "yyyyMMdd") + String.format("%04d", num));
             list.add(aDo);
             list.add(aDo);
         }
         }
         saveBatch(list);
         saveBatch(list);

+ 22 - 3
module-erp/src/main/java/com/hys/app/service/erp/impl/OrderManagerImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.StrUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.injector.methods.UpdateById;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.hys.app.converter.erp.OrderConverter;
 import com.hys.app.converter.erp.OrderConverter;
@@ -260,9 +261,9 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
                 break;
                 break;
             case "to_be_return":
             case "to_be_return":
                 wrapper.eq(OrderSendDO::getOrderType, OrderTypeEnum.TO_C);
                 wrapper.eq(OrderSendDO::getOrderType, OrderTypeEnum.TO_C);
-                wrapper.and(item->item.eq(OrderSendDO::getStatus, SaleOrderSendStatusEnum.SENDING)
+                wrapper.and(item -> item.eq(OrderSendDO::getStatus, SaleOrderSendStatusEnum.SENDING)
                         .or()
                         .or()
-                        .eq(OrderSendDO::getStatus, SaleOrderSendStatusEnum.TO_BE_SINGE)   );
+                        .eq(OrderSendDO::getStatus, SaleOrderSendStatusEnum.TO_BE_SINGE));
                 break;
                 break;
         }
         }
         Page<OrderSendDO> paged = orderSendManager.page(page, wrapper);
         Page<OrderSendDO> paged = orderSendManager.page(page, wrapper);
@@ -341,7 +342,7 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
                 throw new ServiceException("未找到冻结记录");
                 throw new ServiceException("未找到冻结记录");
             }
             }
             one.setUnLockedTime(new Date());
             one.setUnLockedTime(new Date());
-            if (one.getLockedNum() == (sendItemVO.getNum()+one.getUnLockedNum())){
+            if (one.getLockedNum() == (sendItemVO.getNum() + one.getUnLockedNum())) {
                 one.setStatus(true);
                 one.setStatus(true);
             }
             }
             one.setUnLockedNum(one.getUnLockedNum() + sendItemVO.getNum());
             one.setUnLockedNum(one.getUnLockedNum() + sendItemVO.getNum());
@@ -488,6 +489,9 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
         if (ObjectUtil.isNull(aDo)) {
         if (ObjectUtil.isNull(aDo)) {
             throw new ServiceException("未找到订单");
             throw new ServiceException("未找到订单");
         }
         }
+        if (!aDo.getType().equals(OrderTypeEnum.TO_C)) {
+            throw new ServiceException("租赁订单才能做延期");
+        }
         //订单延期次数+1
         //订单延期次数+1
         aDo.setExtension(aDo.getExtension() + 1);
         aDo.setExtension(aDo.getExtension() + 1);
         aDo.setRealPrice(orderDTO.getRealPrice());
         aDo.setRealPrice(orderDTO.getRealPrice());
@@ -568,5 +572,20 @@ public class OrderManagerImpl extends BaseServiceImpl<OrderMapper, OrderDO> impl
         //保存序列号和子表的关系
         //保存序列号和子表的关系
         itemSnCodeManager.saveBatch(itemSnCodeDOS);
         itemSnCodeManager.saveBatch(itemSnCodeDOS);
     }
     }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public void returnOrder(Long id) {
+        OrderDO aDo = getById(id);
+        if (ObjectUtil.isNull(aDo)) {
+            throw new ServiceException("订单不存在");
+        }
+        if (!SaleOrderStatusEnum.TO_BE_SEND.equals(aDo.getStatus())) {
+            throw new ServiceException("订单已发货不可撤销,有问题做售后");
+        }
+        aDo.setStatus(SaleOrderStatusEnum.REVOKE);
+        updateById(aDo);
+        orderSendManager.remove(new LambdaQueryWrapper<OrderSendDO>().eq(OrderSendDO::getOrderId, id));
+    }
 }
 }
 
 

+ 5 - 5
server/src/main/resources/application.yml

@@ -53,19 +53,19 @@ shop-tnt:
 
 
 alipay:
 alipay:
   #APPID
   #APPID
-  appId: 2021004108689494
+  appId: 2021004149672278
   #沙箱应用-->应用信息-->开发信息-->接口加签方式-->系统默认密钥-->公钥模式-->查看-->应用私钥
   #沙箱应用-->应用信息-->开发信息-->接口加签方式-->系统默认密钥-->公钥模式-->查看-->应用私钥
-  appPrivateKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwjbDKtCtW9OHHGfOfbDV0Jn5cVSjTZglJpbRqmVLnWs1U51QQuOoB1ilriqWJDpmd0YApslxw13eGCAgdIuSwo2fBJiDdG8fLYzHuopQVNxIENK1WNL8ispnBuo8z+HrwheR2sTfFPXxEqTYyMQdtkbNu1PJ9GJD1EuJRXlvCkieFFlNklulzCCmOtzR2gFRoDaccTqBddbI8E4fpTAK9vDkrinRAbQsoWs6vdfth0qfMZFyvQFQtSRiX8JPfsMVgNsqOErPu0HqFrKPvhf3ZLJylRkEiY5+AzRO91OxsmhmQcNsdz+fpFCz2hJ5igVhssG0hHWn3o6cH5nqw4E7MwIDAQAB
+  appPrivateKey: MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDXZL28wSR7KNn55tvi0GsPg2rNTNsSnXAV3CxTYUMVS58r7FxOZ0Abite9iavMK7LxImnh321G86yACEuEMBp6D6ArfI0Ww7bApm2OKQRIQXhLaz9+uFpirBhXn5OM3T4aWggBQLXLMg1UMhqky1dtMzi++8GjY0twPcY4hfuA/iRpl9L+4hHeTbh9BHH30HJAKSfZJhTBJiSyOEYXPBdH7ztiLobCRClEsdTT6zQE1x35jQF0y+2KDxvHPxsqMDn/DtJ5mLq/6w7S+AvwOONABGaOj2b5nuHKWPEUod3NBHiPRdgXa1JRyLof/2YYN5pLm48kA0nYeHVOLA+yhHxhAgMBAAECggEAIJEd0w1M68Y4dv1936Rtm5HeMx5cvUrKqLN6jDzXfL/LWEPLjRs1aTSr+/9111AAJU9zvPAgQKsVOOKIMHtpdW0pZYnWd0uuNSC0zdrLx/UGMDkOB6XuHJ8yqwT4tUK6YhecwDu9gPSXaVSODL6mAF/PQ6kjFQYtYNImR2OSrGT5rvQsjlDUNE2GBXWnuEB1m94CNnMCZqF1YN913wKFYLrsr2GVpPik+mpnwofsOft8l6Cyar7m7bITZCItb7cuiJ1qlFODc0o4gFyr5QaNmSz5/5ux8WlPxSujXQC5/u6XHAjhtCBEP96pwjZ8KQeqgtwj7bkpuNYydexIxeVyJQKBgQDtYWyR8hj6yw0EdJElcXTaq9VemXSmwUo7GD/MB3mZbiUN63SCbsiYbVQJxBmsurKE61o/l/MQadwzQyHlrDtmS+bgsoQcL1rIjjxvkfM/TjsUe8/o01OxxFY2H4/WKzbnft07BKvDgI7ZE2mG6HBzShSyF26e5dqmiHxD9KTLEwKBgQDoSdHTXgbmbJ+WUrV1PkyPRyRTMkdoA9ddg9WHTYV1hn1VUcaFOpiUdOYe2L8JbGhf0+gk9GaGqoUWZNAnaiaUM9DtQ17tShFt9kRmqjc1U1nJNai+X3XPkY+y2rdf3iN+PXCAAjBRgc+uPBcDCE5v0k8rIFeboKTNJDlS7p51OwKBgHNlX/UW3sPUP7DBxemQ3QCMdf411TpXTnGp2SGjJJ7Mp6C7rHjXyBYpV6gjt2N7otrw2n99q4B4Jb6ZzPmsn3ecQFFNFuHot1Y1pvWJ2tkUe636flitmssZKdvHvhGcEmW5C2zsWV+BuG+Yez1E851oDuWAdJs0G/XG9bnHTPEXAoGBANLfiPtwRaVTgQDvbsnT157Of7yDTW2w5wd/Eg51oq2RfSBCT41NJ4zGHs5sB+lfH9W2wu0hbh3cmVs+A/V0GTe7XnS2D2wtLGt+AJSO+/WOCFlwPBMvB/16cFB227fNKr2EuyeKVSD5TncnF+Dp3oMHElXdU4r1qAaPVvbhprpXAoGBAKBgXA57BTSvD/NvN/Rkni7jhL8ob6JJKzD7o9pzh32TaF9YiSA/7L5G9wr7NsYpFyWEOuk91mUNp0xVbglASXWayUgfUEJ8UdkPJQfDTITGvVVF4QQ1w5BRxuDT1a4W/b9ECSWbpkqAg2R53R78m2seyKeiIQbQdr4lRSy/XYTP
   #沙箱应用-->应用信息-->开发信息-->接口加签方式-->系统默认密钥-->公钥模式-->查看-->支付宝公钥
   #沙箱应用-->应用信息-->开发信息-->接口加签方式-->系统默认密钥-->公钥模式-->查看-->支付宝公钥
-  alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwjbDKtCtW9OHHGfOfbDV0Jn5cVSjTZglJpbRqmVLnWs1U51QQuOoB1ilriqWJDpmd0YApslxw13eGCAgdIuSwo2fBJiDdG8fLYzHuopQVNxIENK1WNL8ispnBuo8z+HrwheR2sTfFPXxEqTYyMQdtkbNu1PJ9GJD1EuJRXlvCkieFFlNklulzCCmOtzR2gFRoDaccTqBddbI8E4fpTAK9vDkrinRAbQsoWs6vdfth0qfMZFyvQFQtSRiX8JPfsMVgNsqOErPu0HqFrKPvhf3ZLJylRkEiY5+AzRO91OxsmhmQcNsdz+fpFCz2hJ5igVhssG0hHWn3o6cH5nqw4E7MwIDAQAB
+  alipayPublicKey: MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA12S9vMEkeyjZ+ebb4tBrD4NqzUzbEp1wFdwsU2FDFUufK+xcTmdAG4rXvYmrzCuy8SJp4d9tRvOsgAhLhDAaeg+gK3yNFsO2wKZtjikESEF4S2s/frhaYqwYV5+TjN0+GloIAUC1yzINVDIapMtXbTM4vvvBo2NLcD3GOIX7gP4kaZfS/uIR3k24fQRx99ByQCkn2SYUwSYksjhGFzwXR+87Yi6GwkQpRLHU0+s0BNcd+Y0BdMvtig8bxz8bKjA5/w7SeZi6v+sO0vgL8DjjQARmjo9m+Z7hyljxFKHdzQR4j0XYF2tSUci6H/9mGDeaS5uPJANJ2Hh1TiwPsoR8YQIDAQAB
   #回调地址
   #回调地址
   notifyUrl:
   notifyUrl:
   #网关地址
   #网关地址
-  serverUrl: https://openapi-sandbox.dl.alipaydev.com/gateway.do
+  serverUrl: https://openapi.alipay.com/gateway.do
   #数据格式,推荐:json
   #数据格式,推荐:json
   format: json
   format: json
   #编码格式 推荐:utf-8
   #编码格式 推荐:utf-8
-  charset: UTF8
+  charset: UTF-8
   #签名方式,签名算法,推荐:RSA2
   #签名方式,签名算法,推荐:RSA2
   signType: RSA2
   signType: RSA2