Browse Source

维多利亚

home 2 năm trước cách đây
mục cha
commit
4320e3b772
21 tập tin đã thay đổi với 716 bổ sung7 xóa
  1. 1 1
      hx-common/code-generator/src/main/java/com/fjhx/modular/Victoriatourist.java
  2. 5 2
      hx-common/common-client-util/src/main/java/com/fjhx/utils/RegionClientUtil.java
  3. 104 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/order/OrderSales.java
  4. 60 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/order/OrderSalesDetails.java
  5. 5 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/product/ProductInfo.java
  6. 22 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/order/OrderSalesDetailsEx.java
  7. 17 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/order/OrderSalesDetailsVo.java
  8. 30 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/order/OrderSalesEx.java
  9. 22 0
      hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/order/OrderSalesVo.java
  10. 57 0
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/order/OrderSalesController.java
  11. 62 0
      hx-service/victoriatourist/src/main/java/com/fjhx/controller/order/OrderSalesDetailsController.java
  12. 23 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/order/OrderSalesDetailsMapper.java
  13. 21 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/order/OrderSalesDetailsMapper.xml
  14. 22 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/order/OrderSalesMapper.java
  15. 28 0
      hx-service/victoriatourist/src/main/java/com/fjhx/mapper/order/OrderSalesMapper.xml
  16. 6 1
      hx-service/victoriatourist/src/main/java/com/fjhx/service/customer/impl/CustomerInfoServiceImpl.java
  17. 32 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/order/OrderSalesDetailsService.java
  18. 29 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/order/OrderSalesService.java
  19. 58 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/order/impl/OrderSalesDetailsServiceImpl.java
  20. 103 0
      hx-service/victoriatourist/src/main/java/com/fjhx/service/order/impl/OrderSalesServiceImpl.java
  21. 9 3
      hx-service/victoriatourist/src/main/java/com/fjhx/uitl/code/CodeEnum.java

+ 1 - 1
hx-common/code-generator/src/main/java/com/fjhx/modular/Victoriatourist.java

@@ -12,7 +12,7 @@ public class Victoriatourist {
         CodeGenerator.MODULAR_NAME = "victoriatourist";
 
         // 需要生成的表名称,多表用,隔开
-        CodeGenerator.INCLUDE = "customer_info";
+        CodeGenerator.INCLUDE = "order_sales_details";
 
         // mysql连接
         CodeGenerator.MYSQL_URL = "36.134.91.96:17330";

+ 5 - 2
hx-common/common-client-util/src/main/java/com/fjhx/utils/RegionClientUtil.java

@@ -49,7 +49,8 @@ public class RegionClientUtil {
     }
 
     public static void setEntityRegionName(List<? extends region> list) {
-        IRegionClient regionClient = getRegionClient();
+        if (list.size() == 0) return;
+
 
         HashSet<String> regionSet = new HashSet<>();
 
@@ -62,7 +63,9 @@ public class RegionClientUtil {
 
         regionSet.remove(null);
 
-        R<Map<String, String>> r = regionClient.getChineseNameById(regionSet);
+        if (regionSet.size() == 0) return;
+
+        R<Map<String, String>> r = getRegionClient().getChineseNameById(regionSet);
         Map<String, String> regionMap = Assert.result(r);
 
         for (region region : list) {

+ 104 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/order/OrderSales.java

@@ -0,0 +1,104 @@
+package com.fjhx.entity.order;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fjhx.base.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 销售订单
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OrderSales extends BaseEntity {
+
+
+    /**
+     * 客户id
+     */
+    private Long customerInfoId;
+
+    /**
+     * 订单类型(1线上 2线下)
+     */
+    private Integer type;
+
+    /**
+     * 编号
+     */
+    private String code;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal amountMoney;
+
+    /**
+     * 下单时间
+     */
+    private Date orderTime;
+
+    /**
+     * 订单状态
+     */
+    private Integer status;
+
+    /**
+     * 国家
+     */
+    private String countryId;
+
+    /**
+     * 省
+     */
+    private String provinceId;
+
+    /**
+     * 市
+     */
+    private String cityId;
+
+    /**
+     * 详细地址
+     */
+    private String detailedAddress;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private Long phone;
+
+    /**
+     * 联系电话前缀类型
+     */
+    private Integer phonePrefixType;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 逻辑删除 0未删除 1已删除
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer delFlag;
+
+
+}

+ 60 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/order/OrderSalesDetails.java

@@ -0,0 +1,60 @@
+package com.fjhx.entity.order;
+
+import java.math.BigDecimal;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.Version;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableLogic;
+import com.fjhx.base.BaseEntity;
+import com.baomidou.mybatisplus.annotation.TableField;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * 销售订单明细表
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OrderSalesDetails extends BaseEntity {
+
+
+    /**
+     * 销售订单id
+     */
+    private Long orderSalesId;
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 单价
+     */
+    private BigDecimal price;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 逻辑删除 0未删除 1已删除
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @TableLogic
+    private Integer delFlag;
+
+
+}

+ 5 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/entity/product/ProductInfo.java

@@ -61,6 +61,11 @@ public class ProductInfo extends BaseEntity {
     private String unit;
 
     /**
+     * 规格
+     */
+    private String specs;
+
+    /**
      * 采购价
      */
     private BigDecimal purchasePrice;

+ 22 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/order/OrderSalesDetailsEx.java

@@ -0,0 +1,22 @@
+package com.fjhx.params.order;
+
+import com.fjhx.entity.order.OrderSalesDetails;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 销售订单明细表
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OrderSalesDetailsEx extends OrderSalesDetails {
+
+    private String productName;
+    private String productCode;
+    private String productSpecs;
+    private String productUnit;
+
+}

+ 17 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/order/OrderSalesDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.params.order;
+
+import com.fjhx.entity.order.OrderSalesDetails;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 销售订单明细表
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OrderSalesDetailsVo extends OrderSalesDetails {
+
+}

+ 30 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/order/OrderSalesEx.java

@@ -0,0 +1,30 @@
+package com.fjhx.params.order;
+
+import com.fjhx.entity.order.OrderSales;
+import com.fjhx.utils.RegionClientUtil;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * 销售订单
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OrderSalesEx extends OrderSales implements RegionClientUtil.region {
+
+    /**
+     * 客户名称
+     */
+    private String customerName;
+
+    private String countryName;
+
+    private String provinceName;
+
+    private String cityName;
+
+
+}

+ 22 - 0
hx-service-api/victoriatourist-api/src/main/java/com/fjhx/params/order/OrderSalesVo.java

@@ -0,0 +1,22 @@
+package com.fjhx.params.order;
+
+import com.fjhx.entity.order.OrderSales;
+import com.fjhx.entity.order.OrderSalesDetails;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.util.List;
+
+/**
+ * 销售订单
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+public class OrderSalesVo extends OrderSales {
+
+    private List<OrderSalesDetails> orderSalesDetailsList;
+
+}

+ 57 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/controller/order/OrderSalesController.java

@@ -0,0 +1,57 @@
+package com.fjhx.controller.order;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.params.order.OrderSalesEx;
+import org.springblade.core.tool.api.R;
+import com.fjhx.entity.order.OrderSales;
+import com.fjhx.params.order.OrderSalesVo;
+import com.fjhx.service.order.OrderSalesService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 销售订单 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@RestController
+@RequestMapping("/orderSales")
+public class OrderSalesController {
+
+    @Autowired
+    private OrderSalesService orderSalesService;
+
+    @PostMapping("/page")
+    public R page(@RequestBody Map<String, Object> condition){
+        Page<OrderSalesEx> result = orderSalesService.getPage(condition);
+        return R.success(result);
+    }
+
+    @PostMapping("/add")
+    public R add(@RequestBody OrderSalesVo orderSalesVo){
+        orderSalesService.add(orderSalesVo);
+        return R.success();
+    }
+
+    @PostMapping("/edit")
+    public R edit(@RequestBody OrderSalesVo orderSalesVo){
+        orderSalesService.edit(orderSalesVo);
+        return R.success();
+    }
+
+//    @PostMapping("/delete")
+//    public R delete(@RequestBody OrderSalesVo orderSalesVo){
+//        orderSalesService.delete(orderSalesVo);
+//        return R.success();
+//    }
+
+}
+

+ 62 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/controller/order/OrderSalesDetailsController.java

@@ -0,0 +1,62 @@
+package com.fjhx.controller.order;
+
+import com.fjhx.params.order.OrderSalesDetailsEx;
+import com.fjhx.service.order.OrderSalesDetailsService;
+import org.springblade.core.tool.api.R;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 销售订单明细表 前端控制器
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@RestController
+@RequestMapping("/orderSalesDetails")
+public class OrderSalesDetailsController {
+
+    @Autowired
+    private OrderSalesDetailsService orderSalesDetailsService;
+
+//    @PostMapping("/page")
+//    public R page(@RequestBody Map<String, Object> condition){
+//        Page<OrderSalesDetails> result = orderSalesDetailsService.getPage(condition);
+//        return R.success(result);
+//    }
+//
+//    @PostMapping("/add")
+//    public R add(@RequestBody OrderSalesDetailsVo orderSalesDetailsVo){
+//        orderSalesDetailsService.add(orderSalesDetailsVo);
+//        return R.success();
+//    }
+//
+//    @PostMapping("/edit")
+//    public R edit(@RequestBody OrderSalesDetailsVo orderSalesDetailsVo){
+//        orderSalesDetailsService.edit(orderSalesDetailsVo);
+//        return R.success();
+//    }
+//
+//    @PostMapping("/delete")
+//    public R delete(@RequestBody OrderSalesDetailsVo orderSalesDetailsVo){
+//        orderSalesDetailsService.delete(orderSalesDetailsVo);
+//        return R.success();
+//    }
+
+
+    @PostMapping("/listByOrderSalesId")
+    public R listByOrderSalesId(@RequestBody Map<String, Object> condition) {
+        List<OrderSalesDetailsEx> result = orderSalesDetailsService.listByOrderSalesId(condition);
+        return R.success(result);
+    }
+
+}
+

+ 23 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/order/OrderSalesDetailsMapper.java

@@ -0,0 +1,23 @@
+package com.fjhx.mapper.order;
+
+import com.fjhx.entity.order.OrderSalesDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.params.order.OrderSalesDetailsEx;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+/**
+ * <p>
+ * 销售订单明细表 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+public interface OrderSalesDetailsMapper extends BaseMapper<OrderSalesDetails> {
+
+    List<OrderSalesDetailsEx> listByOrderSalesId(@Param("ew") IWrapper<Object> wrapper);
+
+}

+ 21 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/order/OrderSalesDetailsMapper.xml

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.order.OrderSalesDetailsMapper">
+
+    <select id="listByOrderSalesId" resultType="com.fjhx.params.order.OrderSalesDetailsEx">
+        select osd.id,
+               osd.order_sales_id,
+               osd.product_id,
+               osd.quantity,
+               osd.price,
+               osd.remark,
+               pi.name  productName,
+               pi.code  productCode,
+               pi.specs productSpecs,
+               pi.unit  productUnit
+        from order_sales_details osd
+                 left join product_info pi on osd.product_id = pi.id
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 22 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/order/OrderSalesMapper.java

@@ -0,0 +1,22 @@
+package com.fjhx.mapper.order;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.order.OrderSales;
+import com.fjhx.params.order.OrderSalesEx;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * <p>
+ * 销售订单 Mapper 接口
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+public interface OrderSalesMapper extends BaseMapper<OrderSales> {
+
+    Page<OrderSalesEx> getPage(@Param("page") Page<OrderSales> page, @Param("ew") IWrapper<Object> wrapper);
+
+}

+ 28 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/mapper/order/OrderSalesMapper.xml

@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.fjhx.mapper.order.OrderSalesMapper">
+
+    <select id="getPage" resultType="com.fjhx.params.order.OrderSalesEx">
+        select os.id,
+               os.customer_info_id,
+               os.type,
+               os.code,
+               os.amount_money,
+               os.order_time,
+               os.status,
+               os.country_id,
+               os.province_id,
+               os.city_id,
+               os.detailed_address,
+               os.contacts,
+               os.phone,
+               os.phone_prefix_type,
+               os.remark,
+               ci.name customerName
+        from order_sales os
+                 left join customer_info ci on os.customer_info_id = ci.id
+            ${ew.customSqlSegment}
+    </select>
+
+
+</mapper>

+ 6 - 1
hx-service/victoriatourist/src/main/java/com/fjhx/service/customer/impl/CustomerInfoServiceImpl.java

@@ -7,6 +7,7 @@ import com.fjhx.mapper.customer.CustomerInfoMapper;
 import com.fjhx.params.customer.CustomerInfoEx;
 import com.fjhx.params.customer.CustomerInfoVo;
 import com.fjhx.service.customer.CustomerInfoService;
+import com.fjhx.uitl.code.CodeEnum;
 import com.fjhx.utils.FileClientUtil;
 import com.fjhx.utils.PageUtil;
 import com.fjhx.utils.RegionClientUtil;
@@ -53,7 +54,11 @@ public class CustomerInfoServiceImpl extends ServiceImpl<CustomerInfoMapper, Cus
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void add(CustomerInfoVo customerInfoVo) {
-        save(customerInfoVo);
+        synchronized (this) {
+            customerInfoVo.setCode(CodeEnum.CUSTOMER.getCode(customerInfoVo.getCode()));
+            save(customerInfoVo);
+        }
+
         FileClientUtil.bindingFile(customerInfoVo.getId(), customerInfoVo.getFileInfoList());
     }
 

+ 32 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/order/OrderSalesDetailsService.java

@@ -0,0 +1,32 @@
+package com.fjhx.service.order;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.order.OrderSalesDetails;
+import com.fjhx.params.order.OrderSalesDetailsEx;
+import com.fjhx.params.order.OrderSalesDetailsVo;
+import com.fjhx.base.BaseService;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 销售订单明细表 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+public interface OrderSalesDetailsService extends BaseService<OrderSalesDetails> {
+
+    Page<OrderSalesDetails> getPage(Map<String, Object> condition);
+
+    void add(OrderSalesDetailsVo orderSalesDetailsVo);
+
+    void edit(OrderSalesDetailsVo orderSalesDetailsVo);
+
+    void delete(OrderSalesDetailsVo orderSalesDetailsVo);
+
+    List<OrderSalesDetailsEx> listByOrderSalesId(Map<String, Object> condition);
+
+}

+ 29 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/order/OrderSalesService.java

@@ -0,0 +1,29 @@
+package com.fjhx.service.order;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.entity.order.OrderSales;
+import com.fjhx.params.order.OrderSalesEx;
+import com.fjhx.params.order.OrderSalesVo;
+import com.fjhx.base.BaseService;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 销售订单 服务类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+public interface OrderSalesService extends BaseService<OrderSales> {
+
+    Page<OrderSalesEx> getPage(Map<String, Object> condition);
+
+    void add(OrderSalesVo orderSalesVo);
+
+    void edit(OrderSalesVo orderSalesVo);
+
+    void delete(OrderSalesVo orderSalesVo);
+
+}

+ 58 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/order/impl/OrderSalesDetailsServiceImpl.java

@@ -0,0 +1,58 @@
+package com.fjhx.service.order.impl;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.entity.order.OrderSalesDetails;
+import com.fjhx.mapper.order.OrderSalesDetailsMapper;
+import com.fjhx.params.order.OrderSalesDetailsEx;
+import com.fjhx.params.order.OrderSalesDetailsVo;
+import com.fjhx.service.order.OrderSalesDetailsService;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 销售订单明细表 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@Service
+public class OrderSalesDetailsServiceImpl extends ServiceImpl<OrderSalesDetailsMapper, OrderSalesDetails> implements OrderSalesDetailsService {
+
+    @Override
+    public Page<OrderSalesDetails> getPage(Map<String, Object> condition) {
+
+        IWrapper<OrderSalesDetails> wrapper = IWrapper.getWrapper(condition);
+
+        return page(condition, wrapper);
+    }
+
+    @Override
+    public void add(OrderSalesDetailsVo orderSalesDetailsVo) {
+        save(orderSalesDetailsVo);
+    }
+
+    @Override
+    public void edit(OrderSalesDetailsVo orderSalesDetailsVo) {
+        updateById(orderSalesDetailsVo);
+    }
+
+    @Override
+    public void delete(OrderSalesDetailsVo orderSalesDetailsVo) {
+        removeById(orderSalesDetailsVo.getId());
+    }
+
+    @Override
+    public List<OrderSalesDetailsEx> listByOrderSalesId(Map<String, Object> condition) {
+        IWrapper<Object> wrapper = IWrapper.getWrapper(condition)
+                .eq("osd", OrderSalesDetails::getOrderSalesId);
+
+        return baseMapper.listByOrderSalesId(wrapper);
+    }
+
+}

+ 103 - 0
hx-service/victoriatourist/src/main/java/com/fjhx/service/order/impl/OrderSalesServiceImpl.java

@@ -0,0 +1,103 @@
+package com.fjhx.service.order.impl;
+
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.entity.customer.CustomerInfo;
+import com.fjhx.entity.order.OrderSales;
+import com.fjhx.entity.order.OrderSalesDetails;
+import com.fjhx.mapper.order.OrderSalesMapper;
+import com.fjhx.params.order.OrderSalesEx;
+import com.fjhx.params.order.OrderSalesVo;
+import com.fjhx.service.order.OrderSalesDetailsService;
+import com.fjhx.service.order.OrderSalesService;
+import com.fjhx.uitl.code.CodeEnum;
+import com.fjhx.utils.Assert;
+import com.fjhx.utils.RegionClientUtil;
+import com.fjhx.utils.wrapperUtil.IWrapper;
+import com.fjhx.utils.wrapperUtil.KeywordData;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 销售订单 服务实现类
+ * </p>
+ *
+ * @author ${author}
+ * @since 2022-12-02
+ */
+@Service
+public class OrderSalesServiceImpl extends ServiceImpl<OrderSalesMapper, OrderSales> implements OrderSalesService {
+
+    @Autowired
+    private OrderSalesDetailsService orderSalesDetailsService;
+
+    @Override
+    public Page<OrderSalesEx> getPage(Map<String, Object> condition) {
+
+        IWrapper<Object> wrapper = IWrapper.getWrapper(condition)
+                .keyword(new KeywordData("os", OrderSales::getCode), new KeywordData("ci", CustomerInfo::getName))
+                .eq("os", OrderSales::getType)
+                .eq("os", OrderSales::getStatus)
+                .like("os", OrderSales::getCode)
+                .like("ci", CustomerInfo::getName, condition.get("customerName"))
+                .eq("os", OrderSales::getCountryId)
+                .eq("os", OrderSales::getProvinceId)
+                .eq("os", OrderSales::getCityId)
+                .ge("os", OrderSales::getAmountMoney, condition.get("minAmountMoney"))
+                .le("os", OrderSales::getAmountMoney, condition.get("maxAmountMoney"));
+
+        Page<OrderSalesEx> page = baseMapper.getPage(createPage(condition), wrapper);
+
+        // 赋值国省市
+        RegionClientUtil.setEntityRegionName(page.getRecords());
+
+        return page;
+    }
+
+    @Override
+    public void add(OrderSalesVo orderSalesVo) {
+        List<OrderSalesDetails> orderSalesDetailsList = orderSalesVo.getOrderSalesDetailsList();
+        Assert.notEmpty(orderSalesDetailsList, "产品列表不能为空");
+
+        // 订单时间
+        orderSalesVo.setOrderTime(ObjectUtil.defaultIfNull(orderSalesVo.getOrderTime(), new Date()));
+
+        // 统计订单金额
+        BigDecimal amountMoney = orderSalesDetailsList.stream()
+                .map(item -> item.getPrice().multiply(item.getQuantity())).reduce(BigDecimal.ZERO, BigDecimal::add);
+        orderSalesVo.setAmountMoney(amountMoney);
+
+        // 状态
+        orderSalesVo.setStatus(1);
+
+        // 添加订单
+        synchronized (this) {
+            orderSalesVo.setCode(CodeEnum.ORDER_SALES.getCode());
+            save(orderSalesVo);
+        }
+
+        // 添加订单明细
+        for (OrderSalesDetails orderSalesDetails : orderSalesDetailsList) {
+            orderSalesDetails.setOrderSalesId(orderSalesVo.getId());
+        }
+        orderSalesDetailsService.saveBatch(orderSalesDetailsList);
+    }
+
+    @Override
+    public void edit(OrderSalesVo orderSalesVo) {
+        updateById(orderSalesVo);
+    }
+
+    @Override
+    public void delete(OrderSalesVo orderSalesVo) {
+        removeById(orderSalesVo.getId());
+    }
+
+}

+ 9 - 3
hx-service/victoriatourist/src/main/java/com/fjhx/uitl/code/CodeEnum.java

@@ -6,7 +6,9 @@ import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.extra.spring.SpringUtil;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.fjhx.service.apply.ApplyPurchaseService;
+import com.fjhx.service.customer.CustomerInfoService;
 import com.fjhx.service.material.MaterialService;
+import com.fjhx.service.order.OrderSalesService;
 import com.fjhx.service.product.ProductInfoService;
 import com.fjhx.service.product.ProductSpuService;
 import com.fjhx.service.purchase.PurchaseService;
@@ -20,11 +22,11 @@ import java.util.Map;
 @Getter
 public enum CodeEnum {
 
-    // 供应商code
+    // 供应商
     SUPPLIER("GY", null, "code", 5, SupplierService.class),
-    // 物料code
+    // 物料
     MATERIAL("M", null, "code", 5, MaterialService.class),
-    // spu code
+    // spu
     SPU("SPU", null, "code", 5, ProductSpuService.class),
     //申购单
     APPLY_PURCHASE("AP", "yyyyMM-", "code", 5, ApplyPurchaseService.class),
@@ -32,6 +34,10 @@ public enum CodeEnum {
     PRODUCT("P", null, "code", 5, ProductInfoService.class),
     //采购
     PURCHASE("PO", "yyyyMM-", "code", 5, PurchaseService.class),
+    //客户
+    CUSTOMER("C", null, "code", 5, CustomerInfoService.class),
+    //销售订单
+    ORDER_SALES("SO", null, "code", 5, OrderSalesService.class),
 
     ;