瀏覽代碼

Merge remote-tracking branch 'origin/master'

wxf 2 年之前
父節點
當前提交
3df175b241
共有 100 個文件被更改,包括 3381 次插入17 次删除
  1. 2 1
      hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountPaymentServiceImpl.java
  2. 44 0
      hx-common/src/main/java/com/fjhx/common/controller/coding/CodingRuleController.java
  3. 36 0
      hx-common/src/main/java/com/fjhx/common/controller/country/CountryController.java
  4. 24 0
      hx-common/src/main/java/com/fjhx/common/entity/coding/dto/CodingRuleDto.java
  5. 17 0
      hx-common/src/main/java/com/fjhx/common/entity/coding/dto/CodingRuleSelectDto.java
  6. 32 0
      hx-common/src/main/java/com/fjhx/common/entity/coding/dto/DefaultRule.java
  7. 20 0
      hx-common/src/main/java/com/fjhx/common/entity/coding/dto/RuleVo.java
  8. 37 0
      hx-common/src/main/java/com/fjhx/common/entity/coding/po/CodingRule.java
  9. 55 0
      hx-common/src/main/java/com/fjhx/common/entity/coding/vo/CodingRulePageVo.java
  10. 26 0
      hx-common/src/main/java/com/fjhx/common/entity/country/po/Country.java
  11. 59 0
      hx-common/src/main/java/com/fjhx/common/enums/CodingRuleEnum.java
  12. 21 0
      hx-common/src/main/java/com/fjhx/common/enums/RuleTypeEnum.java
  13. 17 0
      hx-common/src/main/java/com/fjhx/common/mapper/coding/CodingRuleMapper.java
  14. 17 0
      hx-common/src/main/java/com/fjhx/common/mapper/country/CountryMapper.java
  15. 31 0
      hx-common/src/main/java/com/fjhx/common/service/coding/CodingRuleService.java
  16. 110 0
      hx-common/src/main/java/com/fjhx/common/service/coding/impl/CodingRuleServiceImpl.java
  17. 17 0
      hx-common/src/main/java/com/fjhx/common/service/country/CountryService.java
  18. 21 0
      hx-common/src/main/java/com/fjhx/common/service/country/impl/CountryServiceImpl.java
  19. 5 0
      hx-common/src/main/resources/mapper/coding/CodingRuleMapper.xml
  20. 5 0
      hx-common/src/main/resources/mapper/country/CountryMapper.xml
  21. 4 3
      hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java
  22. 4 3
      hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionProcessesServiceImpl.java
  23. 26 3
      hx-oa/src/main/java/com/fjhx/oa/entity/schedule/dto/ScheduleInfoSelectDto.java
  24. 1 1
      hx-oa/src/main/java/com/fjhx/oa/entity/schedule/po/ScheduleInfo.java
  25. 3 2
      hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportServiceImpl.java
  26. 6 1
      hx-oa/src/main/java/com/fjhx/oa/service/schedule/impl/ScheduleInfoServiceImpl.java
  27. 1 1
      hx-oa/src/main/java/com/fjhx/oa/service/work/impl/WorkTasksServiceImpl.java
  28. 2 1
      hx-oa/src/main/resources/mapper/schedule/ScheduleInfoMapper.xml
  29. 72 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/invoice/InvoiceController.java
  30. 71 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/invoice/InvoiceDetailsController.java
  31. 68 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/pay/PayController.java
  32. 68 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/pay/PayDetailController.java
  33. 11 0
      hx-purchase/src/main/java/com/fjhx/purchase/controller/purchase/PurchaseController.java
  34. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/dto/InvoiceDetailsDto.java
  35. 21 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/dto/InvoiceDetailsSelectDto.java
  36. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/dto/InvoiceDto.java
  37. 21 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/dto/InvoiceSelectDto.java
  38. 59 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/po/Invoice.java
  39. 43 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/po/InvoiceDetails.java
  40. 49 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/vo/InvoiceDetailsVo.java
  41. 37 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/vo/InvoiceVo.java
  42. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PayDetailDto.java
  43. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PayDetailSelectDto.java
  44. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PayDto.java
  45. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PaySelectDto.java
  46. 58 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/po/Pay.java
  47. 38 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/po/PayDetail.java
  48. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/vo/PayDetailVo.java
  49. 17 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/vo/PayVo.java
  50. 7 0
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/Purchase.java
  51. 12 1
      hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java
  52. 88 0
      hx-purchase/src/main/java/com/fjhx/purchase/flow/PayFlow.java
  53. 42 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/invoice/InvoiceDetailsMapper.java
  54. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/invoice/InvoiceMapper.java
  55. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/pay/PayDetailMapper.java
  56. 26 0
      hx-purchase/src/main/java/com/fjhx/purchase/mapper/pay/PayMapper.java
  57. 62 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/invoice/InvoiceDetailsService.java
  58. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/invoice/InvoiceService.java
  59. 118 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/invoice/impl/InvoiceDetailsServiceImpl.java
  60. 164 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/invoice/impl/InvoiceServiceImpl.java
  61. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/pay/PayDetailService.java
  62. 46 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/pay/PayService.java
  63. 57 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayDetailServiceImpl.java
  64. 57 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayServiceImpl.java
  65. 8 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/PurchaseService.java
  66. 32 0
      hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java
  67. 44 0
      hx-purchase/src/main/resources/mapper/invoice/InvoiceDetailsMapper.xml
  68. 22 0
      hx-purchase/src/main/resources/mapper/invoice/InvoiceMapper.xml
  69. 18 0
      hx-purchase/src/main/resources/mapper/pay/PayDetailMapper.xml
  70. 22 0
      hx-purchase/src/main/resources/mapper/pay/PayMapper.xml
  71. 4 0
      hx-supply/src/main/java/com/fjhx/supply/service/supplier/impl/SupplierInfoServiceImpl.java
  72. 9 0
      hx-victoriatourist/pom.xml
  73. 0 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/OrderDetailsApi.json
  74. 0 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/OrderInfoApi.json
  75. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsDetailsController.java
  76. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsInfoController.java
  77. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/order/OrderDetailsController.java
  78. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/order/OrderInfoController.java
  79. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsDto.java
  80. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsSelectDto.java
  81. 22 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfoDto.java
  82. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfoSelectDto.java
  83. 63 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsDetails.java
  84. 72 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsInfo.java
  85. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsDetailsVo.java
  86. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsInfoVo.java
  87. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderDetailsDto.java
  88. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderDetailsSelectDto.java
  89. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderInfoDto.java
  90. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderInfoSelectDto.java
  91. 68 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/po/OrderDetails.java
  92. 118 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/po/OrderInfo.java
  93. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/vo/OrderDetailsVo.java
  94. 17 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/vo/OrderInfoVo.java
  95. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/LogisticsDetailsMapper.java
  96. 32 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/MyLogisticsInfoMapper.java
  97. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/order/OrderDetailsMapper.java
  98. 26 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/order/OrderInfoMapper.java
  99. 46 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/LogisticsDetailsService.java
  100. 46 0
      hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/MyLogisticsInfoService.java

+ 2 - 1
hx-account/src/main/java/com/fjhx/account/service/account/impl/AccountPaymentServiceImpl.java

@@ -23,6 +23,7 @@ import com.ruoyi.common.core.domain.BasePo;
 import com.ruoyi.common.core.domain.entity.SysDept;
 import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.utils.UserUtil;
+import io.seata.spring.annotation.GlobalTransactional;
 import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -117,7 +118,7 @@ public class AccountPaymentServiceImpl extends ServiceImpl<AccountPaymentMapper,
      * @param accountPaymentDto
      */
     @Override
-    @Transactional(rollbackFor = {Exception.class})
+    @GlobalTransactional(rollbackFor = Exception.class)
     public void add(AccountPaymentDto accountPaymentDto) {
         AccountRemainder accountRemainder = accountRemainderService.getOne(Wrappers.<AccountRemainder>lambdaQuery()
                 .eq(AccountRemainder::getAccountManagementId, accountPaymentDto.getAccountManagementId())

+ 44 - 0
hx-common/src/main/java/com/fjhx/common/controller/coding/CodingRuleController.java

@@ -0,0 +1,44 @@
+package com.fjhx.common.controller.coding;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.common.entity.coding.vo.CodingRulePageVo;
+import com.fjhx.common.entity.coding.dto.CodingRuleSelectDto;
+import com.fjhx.common.entity.coding.dto.CodingRuleDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.common.service.coding.CodingRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 编码规则 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@RestController
+@RequestMapping("/codingRule")
+public class CodingRuleController {
+
+    @Autowired
+    private CodingRuleService codingRuleService;
+
+    /**
+     * 编码规则分页
+     */
+    @PostMapping("/page")
+    public Page<CodingRulePageVo> page(@RequestBody CodingRuleSelectDto dto) {
+        return codingRuleService.getPage(dto);
+    }
+
+    /**
+     * 编码规则编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody CodingRuleDto codingRuleDto) {
+        codingRuleService.edit(codingRuleDto);
+    }
+
+}

+ 36 - 0
hx-common/src/main/java/com/fjhx/common/controller/country/CountryController.java

@@ -0,0 +1,36 @@
+package com.fjhx.common.controller.country;
+
+import com.fjhx.common.entity.country.po.Country;
+import com.fjhx.common.service.country.CountryService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 国家代码 前端控制器
+ * </p>
+ *
+ * @author
+ * @since 2023-04-12
+ */
+@RestController
+@RequestMapping("/country")
+public class CountryController {
+
+    @Autowired
+    private CountryService countryService;
+
+    /**
+     * 国家代码列表
+     */
+    @PostMapping("/list")
+    public List<Country> list() {
+        return countryService.list();
+    }
+
+}

+ 24 - 0
hx-common/src/main/java/com/fjhx/common/entity/coding/dto/CodingRuleDto.java

@@ -0,0 +1,24 @@
+package com.fjhx.common.entity.coding.dto;
+
+import com.fjhx.common.entity.coding.po.CodingRule;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 编码规则新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class CodingRuleDto extends CodingRule {
+
+    /**
+     * 编码配置规则
+     */
+    private List<RuleVo> ruleVoList;
+
+}

+ 17 - 0
hx-common/src/main/java/com/fjhx/common/entity/coding/dto/CodingRuleSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.common.entity.coding.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 编码规则列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class CodingRuleSelectDto extends BaseSelectDto {
+
+}

+ 32 - 0
hx-common/src/main/java/com/fjhx/common/entity/coding/dto/DefaultRule.java

@@ -0,0 +1,32 @@
+package com.fjhx.common.entity.coding.dto;
+
+import cn.hutool.core.util.ArrayUtil;
+import com.fjhx.common.enums.CodingRuleEnum;
+import com.fjhx.common.enums.RuleTypeEnum;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class DefaultRule {
+
+    /**
+     * 编码规则
+     */
+    private RuleTypeEnum ruleTypeEnum;
+
+    /**
+     * 值
+     */
+    private Object value;
+
+    public DefaultRule(RuleTypeEnum ruleTypeEnum) {
+        this.ruleTypeEnum = ruleTypeEnum;
+    }
+
+    public DefaultRule(RuleTypeEnum ruleTypeEnum, Object value) {
+        this.ruleTypeEnum = ruleTypeEnum;
+        this.value = value;
+    }
+
+}

+ 20 - 0
hx-common/src/main/java/com/fjhx/common/entity/coding/dto/RuleVo.java

@@ -0,0 +1,20 @@
+package com.fjhx.common.entity.coding.dto;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class RuleVo {
+
+    /**
+     * 编码规则
+     */
+    private Integer ruleType;
+
+    /**
+     * 值
+     */
+    private Object value;
+
+}

+ 37 - 0
hx-common/src/main/java/com/fjhx/common/entity/coding/po/CodingRule.java

@@ -0,0 +1,37 @@
+package com.fjhx.common.entity.coding.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 编码规则
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+@TableName("coding_rule")
+public class CodingRule extends BasePo {
+
+    /**
+     * 规则key
+     */
+    private String codingKey;
+
+    /**
+     * 功能名称
+     */
+    private String codingName;
+
+    /**
+     * 规则json
+     */
+    private String ruleJson;
+
+}

+ 55 - 0
hx-common/src/main/java/com/fjhx/common/entity/coding/vo/CodingRulePageVo.java

@@ -0,0 +1,55 @@
+package com.fjhx.common.entity.coding.vo;
+
+import com.fjhx.common.entity.coding.dto.RuleVo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 编码规则列表查询返回值实体
+ *
+ * @author
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class CodingRulePageVo {
+
+    /**
+     * 编码规则id
+     */
+    private Long id;
+
+    /**
+     * 规则key
+     */
+    private String codingKey;
+
+    /**
+     * 功能名称
+     */
+    private String codingName;
+
+    /**
+     * 编码配置规则
+     */
+    private List<RuleVo> ruleVoList;
+
+    /**
+     * 更新人
+     */
+    private Long updateUser;
+
+    /**
+     * 更新人名称
+     */
+    private String updateUserName;
+
+    /**
+     * 更新时间
+     */
+    private Date updateTime;
+
+}

+ 26 - 0
hx-common/src/main/java/com/fjhx/common/entity/country/po/Country.java

@@ -0,0 +1,26 @@
+package com.fjhx.common.entity.country.po;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 国家代码
+ * </p>
+ *
+ * @author
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+@TableName("country")
+public class Country {
+
+    @TableId
+    private String countryCode;
+
+    private String countryName;
+
+}

+ 59 - 0
hx-common/src/main/java/com/fjhx/common/enums/CodingRuleEnum.java

@@ -0,0 +1,59 @@
+package com.fjhx.common.enums;
+
+import com.fjhx.common.entity.coding.dto.DefaultRule;
+import com.fjhx.common.entity.coding.dto.RuleVo;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+import java.util.Arrays;
+import java.util.List;
+import java.util.stream.Collectors;
+
+@Getter
+@AllArgsConstructor
+public enum CodingRuleEnum {
+
+    test("test", "aaa", Arrays.asList(
+            getDefaultRule(RuleTypeEnum.CUSTOMIZE, "TEST"),
+            getDefaultRule(RuleTypeEnum.DATE_FORMAT, "yyyyMM"),
+            getDefaultRule(RuleTypeEnum.COUNTRY_CODE),
+            getDefaultRule(RuleTypeEnum.CUSTOMER_CODE),
+            getDefaultRule(RuleTypeEnum.AUTOINCREMENT, 5)
+    )),
+
+
+    ;
+
+    /**
+     * 编码规则key
+     */
+    private final String key;
+
+    /**
+     * 功能名称
+     */
+    private final String name;
+
+    /**
+     * 默认规则
+     */
+    private final List<DefaultRule> defaultRule;
+
+    private static DefaultRule getDefaultRule(RuleTypeEnum ruleTypeEnum) {
+        return new DefaultRule(ruleTypeEnum);
+    }
+
+    private static DefaultRule getDefaultRule(RuleTypeEnum ruleTypeEnum, Object value) {
+        return new DefaultRule(ruleTypeEnum, value);
+    }
+
+    public List<RuleVo> getDefaultRuleVoList() {
+        return defaultRule.stream().map(item -> {
+            RuleVo ruleVo = new RuleVo();
+            ruleVo.setRuleType(item.getRuleTypeEnum().getType());
+            ruleVo.setValue(item.getValue());
+            return ruleVo;
+        }).collect(Collectors.toList());
+    }
+
+}

+ 21 - 0
hx-common/src/main/java/com/fjhx/common/enums/RuleTypeEnum.java

@@ -0,0 +1,21 @@
+package com.fjhx.common.enums;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+
+@Getter
+@AllArgsConstructor
+public enum RuleTypeEnum {
+
+    CUSTOMIZE(1, "自定义字符"),
+    COUNTRY_CODE(2, "客户国家编码"),
+    SALESMAN_CODE(3, "业务员代码"),
+    CUSTOMER_CODE(4, "客户编码"),
+    AUTOINCREMENT(5, "自增编号"),
+    DATE_FORMAT(6, "日期");
+
+    private final Integer type;
+
+    private final String name;
+
+}

+ 17 - 0
hx-common/src/main/java/com/fjhx/common/mapper/coding/CodingRuleMapper.java

@@ -0,0 +1,17 @@
+package com.fjhx.common.mapper.coding;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.common.entity.coding.po.CodingRule;
+
+
+/**
+ * <p>
+ * 编码规则 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-04-13
+ */
+public interface CodingRuleMapper extends BaseMapper<CodingRule> {
+
+}

+ 17 - 0
hx-common/src/main/java/com/fjhx/common/mapper/country/CountryMapper.java

@@ -0,0 +1,17 @@
+package com.fjhx.common.mapper.country;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.fjhx.common.entity.country.po.Country;
+
+
+/**
+ * <p>
+ * 国家代码 Mapper 接口
+ * </p>
+ *
+ * @author
+ * @since 2023-04-12
+ */
+public interface CountryMapper extends BaseMapper<Country> {
+
+}

+ 31 - 0
hx-common/src/main/java/com/fjhx/common/service/coding/CodingRuleService.java

@@ -0,0 +1,31 @@
+package com.fjhx.common.service.coding;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.common.entity.coding.dto.CodingRuleDto;
+import com.fjhx.common.entity.coding.dto.CodingRuleSelectDto;
+import com.fjhx.common.entity.coding.po.CodingRule;
+import com.fjhx.common.entity.coding.vo.CodingRulePageVo;
+import com.ruoyi.common.core.service.BaseService;
+
+
+/**
+ * <p>
+ * 编码规则 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-13
+ */
+public interface CodingRuleService extends BaseService<CodingRule> {
+
+    /**
+     * 编码规则分页
+     */
+    Page<CodingRulePageVo> getPage(CodingRuleSelectDto dto);
+
+    /**
+     * 编码规则编辑
+     */
+    void edit(CodingRuleDto codingRuleDto);
+
+}

+ 110 - 0
hx-common/src/main/java/com/fjhx/common/service/coding/impl/CodingRuleServiceImpl.java

@@ -0,0 +1,110 @@
+package com.fjhx.common.service.coding.impl;
+
+import cn.hutool.core.util.StrUtil;
+import com.alibaba.fastjson2.JSON;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.entity.coding.dto.CodingRuleDto;
+import com.fjhx.common.entity.coding.dto.CodingRuleSelectDto;
+import com.fjhx.common.entity.coding.dto.RuleVo;
+import com.fjhx.common.entity.coding.po.CodingRule;
+import com.fjhx.common.entity.coding.vo.CodingRulePageVo;
+import com.fjhx.common.enums.CodingRuleEnum;
+import com.fjhx.common.mapper.coding.CodingRuleMapper;
+import com.fjhx.common.service.coding.CodingRuleService;
+import com.ruoyi.system.utils.UserUtil;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * <p>
+ * 编码规则 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-13
+ */
+@Service
+public class CodingRuleServiceImpl extends ServiceImpl<CodingRuleMapper, CodingRule> implements CodingRuleService {
+
+    @Override
+    public Page<CodingRulePageVo> getPage(CodingRuleSelectDto dto) {
+
+        Integer pageNum = dto.getPageNum();
+        Integer pageSize = dto.getPageSize();
+
+        int startIndex = (pageNum - 1) * pageSize;
+        int endIndex = pageNum * pageSize;
+
+        int tempIndex = 0;
+
+        List<CodingRulePageVo> codingRulePageVoList = new ArrayList<>();
+        List<String> keyList = new ArrayList<>();
+
+        for (CodingRuleEnum codingRuleEnum : CodingRuleEnum.values()) {
+            if (StrUtil.isNotBlank(dto.getKeyword())) {
+
+                if (codingRuleEnum.getName().contains(dto.getKeyword())) {
+                    tempIndex = getTempIndex(startIndex, endIndex, tempIndex, codingRulePageVoList, keyList, codingRuleEnum);
+                }
+
+            } else {
+                tempIndex = getTempIndex(startIndex, endIndex, tempIndex, codingRulePageVoList, keyList, codingRuleEnum);
+            }
+
+        }
+
+        Page<CodingRulePageVo> page = dto.getPage();
+        page.setRecords(codingRulePageVoList);
+        page.setTotal(tempIndex);
+
+        if (keyList.size() == 0) {
+            return page;
+        }
+
+        Map<String, CodingRule> kEntity = mapKEntity(CodingRule::getCodingKey, q -> q.in(CodingRule::getCodingKey, keyList));
+
+        for (CodingRulePageVo codingRulePageVo : codingRulePageVoList) {
+            CodingRule codingRule = kEntity.get(codingRulePageVo.getCodingKey());
+            if (codingRule == null) {
+                continue;
+            }
+            codingRulePageVo.setId(codingRule.getId());
+            codingRulePageVo.setRuleVoList(JSON.parseArray(codingRule.getRuleJson(), RuleVo.class));
+            codingRulePageVo.setUpdateTime(codingRule.getUpdateTime());
+            codingRulePageVo.setUpdateUser(codingRule.getUpdateUser());
+        }
+
+        UserUtil.assignmentNickName(codingRulePageVoList, CodingRulePageVo::getUpdateUser, CodingRulePageVo::setUpdateUserName);
+
+        return page;
+    }
+
+    @Override
+    public void edit(CodingRuleDto codingRuleDto) {
+        codingRuleDto.setRuleJson(JSON.toJSONString(codingRuleDto.getRuleVoList()));
+        this.saveOrUpdate(codingRuleDto);
+    }
+
+    private int getTempIndex(int startIndex, int endIndex, int tempIndex,
+                             List<CodingRulePageVo> codingRulePageVoList,
+                             List<String> keyList,
+                             CodingRuleEnum codingRuleEnum) {
+
+        if (tempIndex >= startIndex && tempIndex < endIndex) {
+            CodingRulePageVo codingRulePageVo = new CodingRulePageVo();
+            codingRulePageVo.setCodingKey(codingRuleEnum.getKey());
+            codingRulePageVo.setCodingName(codingRuleEnum.getName());
+            codingRulePageVo.setRuleVoList(codingRuleEnum.getDefaultRuleVoList());
+            codingRulePageVoList.add(codingRulePageVo);
+            keyList.add(codingRuleEnum.getKey());
+        }
+
+        return ++tempIndex;
+    }
+
+}

+ 17 - 0
hx-common/src/main/java/com/fjhx/common/service/country/CountryService.java

@@ -0,0 +1,17 @@
+package com.fjhx.common.service.country;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.fjhx.common.entity.country.po.Country;
+
+
+/**
+ * <p>
+ * 国家代码 服务类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-12
+ */
+public interface CountryService extends IService<Country> {
+
+}

+ 21 - 0
hx-common/src/main/java/com/fjhx/common/service/country/impl/CountryServiceImpl.java

@@ -0,0 +1,21 @@
+package com.fjhx.common.service.country.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.common.entity.country.po.Country;
+import com.fjhx.common.mapper.country.CountryMapper;
+import com.fjhx.common.service.country.CountryService;
+import org.springframework.stereotype.Service;
+
+
+/**
+ * <p>
+ * 国家代码 服务实现类
+ * </p>
+ *
+ * @author
+ * @since 2023-04-12
+ */
+@Service
+public class CountryServiceImpl extends ServiceImpl<CountryMapper, Country> implements CountryService {
+
+}

+ 5 - 0
hx-common/src/main/resources/mapper/coding/CodingRuleMapper.xml

@@ -0,0 +1,5 @@
+<?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.common.mapper.coding.CodingRuleMapper">
+
+</mapper>

+ 5 - 0
hx-common/src/main/resources/mapper/country/CountryMapper.xml

@@ -0,0 +1,5 @@
+<?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.common.mapper.country.CountryMapper">
+
+</mapper>

+ 4 - 3
hx-item/src/main/java/com/fjhx/item/service/product/impl/ProductInfoServiceImpl.java

@@ -25,6 +25,7 @@ import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
 import com.ruoyi.system.service.ISysDeptService;
+import io.seata.spring.annotation.GlobalTransactional;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -138,7 +139,7 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         return result;
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void add(ProductInfoDto productInfoDto) {
         // 赋值产品编号
@@ -154,7 +155,7 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         productInfoDto.setVictoriatouristJson(json.toJSONString());
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void edit(ProductInfoDto productInfoDto) {
         // 禁止产品编号修改
@@ -165,7 +166,7 @@ public class ProductInfoServiceImpl extends ServiceImpl<ProductInfoMapper, Produ
         ObsFileUtil.editFile(productInfoDto.getFileList(), productInfoDto.getId());
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void delete(Long id) {
         this.removeById(id);

+ 4 - 3
hx-mes/src/main/java/com/fjhx/mes/service/production/impl/ProductionProcessesServiceImpl.java

@@ -9,6 +9,7 @@ import com.fjhx.mes.entity.production.po.ProductionProcesses;
 import com.fjhx.mes.mapper.production.ProductionProcessesMapper;
 import com.fjhx.mes.service.production.ProductionProcessesService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import io.seata.spring.annotation.GlobalTransactional;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -57,7 +58,7 @@ public class ProductionProcessesServiceImpl extends ServiceImpl<ProductionProces
         return result;
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void add(ProductionProcessesDto productionProcessesDto) {
         ObsFile obsFile = productionProcessesDto.getFileList().get(0);
@@ -66,7 +67,7 @@ public class ProductionProcessesServiceImpl extends ServiceImpl<ProductionProces
         ObsFileUtil.saveFile(productionProcessesDto.getFileList(), productionProcessesDto.getId());
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void edit(ProductionProcessesDto productionProcessesDto) {
         ObsFile obsFile = productionProcessesDto.getFileList().get(0);
@@ -75,7 +76,7 @@ public class ProductionProcessesServiceImpl extends ServiceImpl<ProductionProces
         ObsFileUtil.editFile(productionProcessesDto.getFileList(), productionProcessesDto.getId());
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void delete(Long id) {
         this.removeById(id);

+ 26 - 3
hx-oa/src/main/java/com/fjhx/oa/entity/schedule/dto/ScheduleInfoSelectDto.java

@@ -10,15 +10,38 @@ import java.util.Date;
 /**
  * 日程信息表列表查询入参实体
  *
- * @author 
+ * @author
  * @since 2023-04-03
  */
 @Getter
 @Setter
 public class ScheduleInfoSelectDto extends BaseSelectDto {
 
-    /**按月份过滤*/
-    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
+    /**
+     * 按月份过滤
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
     private Date date;
 
+    /**
+     * 创建用户过滤
+     */
+    private String createUser;
+    /**
+     * 参与人id
+     */
+    private Long participantId;
+
+    /**
+     * 按月份过滤 开始日期
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date startDate;
+
+    /**
+     * 按月份过滤 结束日期
+     */
+    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
+    private Date endDate;
+
 }

+ 1 - 1
hx-oa/src/main/java/com/fjhx/oa/entity/schedule/po/ScheduleInfo.java

@@ -47,7 +47,7 @@ public class ScheduleInfo extends BasePo {
     /**
      * 颜色
      */
-    private String colour;
+    private String color;
 
     /**
      * 地点

+ 3 - 2
hx-oa/src/main/java/com/fjhx/oa/service/daily/impl/DailyReportServiceImpl.java

@@ -18,6 +18,7 @@ import com.fjhx.socket.service.WebSocketServer;
 import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.system.utils.UserUtil;
+import io.seata.spring.annotation.GlobalTransactional;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -91,7 +92,7 @@ public class DailyReportServiceImpl extends ServiceImpl<DailyReportMapper, Daily
         return result;
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void add(DailyReportDto dailyReportDto) {
         this.save(dailyReportDto);
@@ -116,7 +117,7 @@ public class DailyReportServiceImpl extends ServiceImpl<DailyReportMapper, Daily
         }
     }
 
-    @Transactional(rollbackFor = Exception.class)
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void edit(DailyReportDto dailyReportDto) {
         this.updateById(dailyReportDto);

+ 6 - 1
hx-oa/src/main/java/com/fjhx/oa/service/schedule/impl/ScheduleInfoServiceImpl.java

@@ -48,9 +48,14 @@ public class ScheduleInfoServiceImpl extends ServiceImpl<ScheduleInfoMapper, Sch
     public Page<ScheduleInfoVo> getPage(ScheduleInfoSelectDto dto) {
         IWrapper<ScheduleInfo> wrapper = getWrapper();
         wrapper.orderByDesc("si", ScheduleInfo::getId);
-        if(ObjectUtil.isNotEmpty(dto.getDate())) {
+        if (ObjectUtil.isNotEmpty(dto.getDate())) {
             wrapper.apply("date_format(si.start_date,'%Y-%m') = date_format('" + sdf.format(dto.getDate()) + "','%Y-%m')");
         }
+        wrapper.eq("si", ScheduleInfoVo::getCreateUser, dto.getCreateUser());
+        wrapper.eq("sd", ScheduleInfoVo::getParticipantId, dto.getParticipantId());
+        if (ObjectUtil.isNotEmpty(dto.getStartDate())) {
+            wrapper.apply("date_format(si.start_date,'%Y-%m-%d') BETWEEN date_format('" + sdf.format(dto.getStartDate()) + "','%Y-%m-%d') AND date_format('" + sdf.format(dto.getEndDate()) + "','%Y-%m-%d')");
+        }
         Page<ScheduleInfoVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
         return page;
     }

+ 1 - 1
hx-oa/src/main/java/com/fjhx/oa/service/work/impl/WorkTasksServiceImpl.java

@@ -57,7 +57,7 @@ public class WorkTasksServiceImpl extends ServiceImpl<WorkTasksMapper, WorkTasks
         return result;
     }
 
-    @GlobalTransactional
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void add(WorkTasksDto workTasksDto) {
         List<ObsFile> fileList = workTasksDto.getFileList();

+ 2 - 1
hx-oa/src/main/resources/mapper/schedule/ScheduleInfoMapper.xml

@@ -9,7 +9,7 @@
             si.end_date,
             si.repeat_type,
             si.is_all_day,
-            si.colour,
+            si.color,
             si.place,
             si.notice_type,
             si.task_permissions,
@@ -19,6 +19,7 @@
             si.update_user,
             si.update_time
         from schedule_info si
+                 left JOIN schedule_details sd ON sd.schedule_info_id = si.id
             ${ew.customSqlSegment}
     </select>
     <select id="mySchedule" resultType="com.fjhx.oa.entity.schedule.vo.ScheduleInfoVo">

+ 72 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/invoice/InvoiceController.java

@@ -0,0 +1,72 @@
+package com.fjhx.purchase.controller.invoice;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.purchase.entity.invoice.po.Invoice;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceVo;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceSelectDto;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.invoice.InvoiceService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 发票管理 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@DS(SourceConstant.PURCHASE)
+@RestController
+@RequestMapping("/invoice")
+public class InvoiceController {
+
+    @Autowired
+    private InvoiceService invoiceService;
+
+    /**
+     * 发票管理分页
+     */
+    @PostMapping("/page")
+    public Page<InvoiceVo> page(@RequestBody InvoiceSelectDto dto) {
+        return invoiceService.getPage(dto);
+    }
+
+    /**
+     * 发票管理明细
+     */
+    @PostMapping("/detail")
+    public InvoiceVo detail(@RequestBody BaseSelectDto dto) {
+        return invoiceService.detail(dto.getId());
+    }
+
+    /**
+     * 发票管理新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody Invoice invoice) {
+        invoiceService.add(invoice);
+    }
+
+    /**
+     * 发票管理编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody Invoice invoice) {
+        invoiceService.edit(invoice);
+    }
+
+    /**
+     * 发票管理删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        invoiceService.delete(dto.getId());
+    }
+
+}

+ 71 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/invoice/InvoiceDetailsController.java

@@ -0,0 +1,71 @@
+package com.fjhx.purchase.controller.invoice;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.fjhx.common.constant.SourceConstant;
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceDetailsSelectDto;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceDetailsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.invoice.InvoiceDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 发票明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@DS(SourceConstant.PURCHASE)
+@RestController
+@RequestMapping("/invoiceDetails")
+public class InvoiceDetailsController {
+
+    @Autowired
+    private InvoiceDetailsService invoiceDetailsService;
+
+    /**
+     * 发票明细分页
+     */
+    @PostMapping("/page")
+    public Page<InvoiceDetailsVo> page(@RequestBody InvoiceDetailsSelectDto dto) {
+        return invoiceDetailsService.getPage(dto);
+    }
+
+    /**
+     * 发票明细明细
+     */
+    @PostMapping("/detail")
+    public InvoiceDetailsVo detail(@RequestBody BaseSelectDto dto) {
+        return invoiceDetailsService.detail(dto.getId());
+    }
+
+    /**
+     * 发票明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody InvoiceDetailsDto invoiceDetailsDto) {
+        invoiceDetailsService.add(invoiceDetailsDto);
+    }
+
+    /**
+     * 发票明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody InvoiceDetailsDto invoiceDetailsDto) {
+        invoiceDetailsService.edit(invoiceDetailsDto);
+    }
+
+    /**
+     * 发票明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        invoiceDetailsService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/pay/PayController.java

@@ -0,0 +1,68 @@
+package com.fjhx.purchase.controller.pay;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.pay.vo.PayVo;
+import com.fjhx.purchase.entity.pay.dto.PaySelectDto;
+import com.fjhx.purchase.entity.pay.dto.PayDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.pay.PayService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 采购付款 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@RestController
+@RequestMapping("/pay")
+public class PayController {
+
+    @Autowired
+    private PayService payService;
+
+    /**
+     * 采购付款分页
+     */
+    @PostMapping("/page")
+    public Page<PayVo> page(@RequestBody PaySelectDto dto) {
+        return payService.getPage(dto);
+    }
+
+    /**
+     * 采购付款明细
+     */
+    @PostMapping("/detail")
+    public PayVo detail(@RequestBody BaseSelectDto dto) {
+        return payService.detail(dto.getId());
+    }
+
+    /**
+     * 采购付款新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody PayDto payDto) {
+        payService.add(payDto);
+    }
+
+    /**
+     * 采购付款编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody PayDto payDto) {
+        payService.edit(payDto);
+    }
+
+    /**
+     * 采购付款删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        payService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/pay/PayDetailController.java

@@ -0,0 +1,68 @@
+package com.fjhx.purchase.controller.pay;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
+import com.fjhx.purchase.entity.pay.dto.PayDetailSelectDto;
+import com.fjhx.purchase.entity.pay.dto.PayDetailDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.purchase.service.pay.PayDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 发票明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@RestController
+@RequestMapping("/payDetail")
+public class PayDetailController {
+
+    @Autowired
+    private PayDetailService payDetailService;
+
+    /**
+     * 发票明细分页
+     */
+    @PostMapping("/page")
+    public Page<PayDetailVo> page(@RequestBody PayDetailSelectDto dto) {
+        return payDetailService.getPage(dto);
+    }
+
+    /**
+     * 发票明细明细
+     */
+    @PostMapping("/detail")
+    public PayDetailVo detail(@RequestBody BaseSelectDto dto) {
+        return payDetailService.detail(dto.getId());
+    }
+
+    /**
+     * 发票明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody PayDetailDto payDetailDto) {
+        payDetailService.add(payDetailDto);
+    }
+
+    /**
+     * 发票明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody PayDetailDto payDetailDto) {
+        payDetailService.edit(payDetailDto);
+    }
+
+    /**
+     * 发票明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        payDetailService.delete(dto.getId());
+    }
+
+}

+ 11 - 0
hx-purchase/src/main/java/com/fjhx/purchase/controller/purchase/PurchaseController.java

@@ -12,6 +12,8 @@ import com.ruoyi.common.core.domain.BaseSelectDto;
 import com.fjhx.purchase.service.purchase.PurchaseService;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -69,4 +71,13 @@ public class PurchaseController {
         purchaseService.delete(dto.getId());
     }
 
+    /**
+     * 根据供应商查询采购合同
+     */
+    @GetMapping("/getListBySupplyId")
+    public List<Purchase> getListBySupplyId(@RequestParam("supplyId") String supplyId) {
+        return purchaseService.getListBySupplyId(supplyId);
+    }
+
+
 }

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/dto/InvoiceDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.invoice.dto;
+
+import com.fjhx.purchase.entity.invoice.po.InvoiceDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 发票明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class InvoiceDetailsDto extends InvoiceDetails {
+
+}

+ 21 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/dto/InvoiceDetailsSelectDto.java

@@ -0,0 +1,21 @@
+package com.fjhx.purchase.entity.invoice.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 发票明细列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class InvoiceDetailsSelectDto extends BaseSelectDto {
+
+    /**
+     * 发票类型
+     */
+    private Integer invoiceType;
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/dto/InvoiceDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.invoice.dto;
+
+import com.fjhx.purchase.entity.invoice.po.Invoice;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 发票管理新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class InvoiceDto extends Invoice {
+
+}

+ 21 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/dto/InvoiceSelectDto.java

@@ -0,0 +1,21 @@
+package com.fjhx.purchase.entity.invoice.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 发票管理列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class InvoiceSelectDto extends BaseSelectDto {
+
+    /**
+     * 发票类型
+     */
+    private Integer invoiceType;
+}

+ 59 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/po/Invoice.java

@@ -0,0 +1,59 @@
+package com.fjhx.purchase.entity.invoice.po;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fjhx.file.entity.ObsFile;
+import com.ruoyi.common.core.domain.BasePo;
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 发票管理
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+@TableName("invoice")
+public class Invoice extends BasePo {
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 开票金额
+     */
+    private BigDecimal money;
+
+    /**
+     * 发票类型
+     */
+    private Integer type;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 发票明细列表
+     */
+    @TableField(exist = false)
+    private List<InvoiceDetails> invoiceDetailsList;
+
+    /**
+     * 附件列表
+     */
+    @TableField(exist = false)
+    private List<ObsFile> fileList;
+
+}

+ 43 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/po/InvoiceDetails.java

@@ -0,0 +1,43 @@
+package com.fjhx.purchase.entity.invoice.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 发票明细
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+@TableName("invoice_details")
+public class InvoiceDetails extends BasePo {
+
+    /**
+     * 发票管理id
+     */
+    private Long invoiceId;
+
+    /**
+     * 合同id
+     */
+    private Long purchaseId;
+
+    /**
+     * 关联金额
+     */
+    private BigDecimal money;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 49 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/vo/InvoiceDetailsVo.java

@@ -0,0 +1,49 @@
+package com.fjhx.purchase.entity.invoice.vo;
+
+import com.fjhx.purchase.entity.invoice.po.InvoiceDetails;
+import lombok.Getter;
+import lombok.Setter;
+import sun.nio.cs.ext.Big5;
+
+import java.math.BigDecimal;
+
+/**
+ * 发票明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class InvoiceDetailsVo extends InvoiceDetails {
+
+    /**
+     * 供应商名称
+     */
+    private String supplyName;
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 发票类型
+     */
+    private Integer invoiceType;
+
+    /**
+     * 总发票金额
+     */
+    private BigDecimal sumMoney;
+
+    /**
+     * 采购编码
+     */
+    private String purchaseCode;
+
+    /**
+     * 采购总金额
+     */
+    private BigDecimal purchaseAmount;
+}

+ 37 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/invoice/vo/InvoiceVo.java

@@ -0,0 +1,37 @@
+package com.fjhx.purchase.entity.invoice.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fjhx.file.entity.ObsFile;
+import com.fjhx.purchase.entity.invoice.po.Invoice;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 发票管理列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class InvoiceVo extends Invoice {
+
+
+    /**
+     * 采购合同编码集合
+     */
+    private String purchaseCodes;
+
+    /**
+     * 供应商名称
+     */
+    private String supplyName;
+
+    /**
+     * 发票列表
+     */
+    private List<InvoiceDetailsVo> invoiceDetailsVoList;
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PayDetailDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.pay.dto;
+
+import com.fjhx.purchase.entity.pay.po.PayDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 发票明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class PayDetailDto extends PayDetail {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PayDetailSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.pay.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 发票明细列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class PayDetailSelectDto extends BaseSelectDto {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PayDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.pay.dto;
+
+import com.fjhx.purchase.entity.pay.po.Pay;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采购付款新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class PayDto extends Pay {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/dto/PaySelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.pay.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采购付款列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class PaySelectDto extends BaseSelectDto {
+
+}

+ 58 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/po/Pay.java

@@ -0,0 +1,58 @@
+package com.fjhx.purchase.entity.pay.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 采购付款
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+@TableName("pay")
+public class Pay extends BasePo {
+
+    /**
+     * 供应商ID
+     */
+    private Long supplyId;
+
+    /**
+     * 付款总额
+     */
+    private BigDecimal amount;
+
+    /**
+     * 发票类型 字典invoice_type
+     */
+    private Integer invoiceType;
+
+    /**
+     * 付款说明
+     */
+    private String remark;
+
+    /**
+     * 付款期限
+     */
+    private String deadline;
+
+    /**
+     * 单据数量
+     */
+    private Integer receiptsNum;
+
+    /**
+     * 付款方式 funds_payment_method
+     */
+    private Integer payType;
+
+}

+ 38 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/po/PayDetail.java

@@ -0,0 +1,38 @@
+package com.fjhx.purchase.entity.pay.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 发票明细
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+@TableName("pay_detail")
+public class PayDetail extends BasePo {
+
+    /**
+     * 采购合同id
+     */
+    private Long purchaseId;
+
+    /**
+     * 付款金额
+     */
+    private BigDecimal money;
+
+    /**
+     * 款项说明
+     */
+    private String remark;
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/vo/PayDetailVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.pay.vo;
+
+import com.fjhx.purchase.entity.pay.po.PayDetail;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 发票明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class PayDetailVo extends PayDetail {
+
+}

+ 17 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/pay/vo/PayVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.purchase.entity.pay.vo;
+
+import com.fjhx.purchase.entity.pay.po.Pay;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 采购付款列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class PayVo extends Pay {
+
+}

+ 7 - 0
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/po/Purchase.java

@@ -88,6 +88,13 @@ public class Purchase extends BasePo {
     @TableField(exist = false)
     private List<PurchaseDetail> purchaseDetailList;
 
+
+    /**
+     * 发票总金额
+     */
+    @TableField(exist = false)
+    private BigDecimal sumInvoiceMoney;
+
     /**
      * 维多利亚扩展json
      */

+ 12 - 1
hx-purchase/src/main/java/com/fjhx/purchase/entity/purchase/vo/PurchaseDetailVo.java

@@ -4,14 +4,25 @@ import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
+
 /**
  * 申购单列表查询返回值实体
  *
- * @author 
+ * @author
  * @since 2023-04-06
  */
 @Getter
 @Setter
 public class PurchaseDetailVo extends PurchaseDetail {
 
+    /**
+     * 质检合格数量
+     */
+    private BigDecimal qualifiedCount;
+    /**
+     * 质检不合格数量
+     */
+    private BigDecimal noQualifiedCount;
+
 }

+ 88 - 0
hx-purchase/src/main/java/com/fjhx/purchase/flow/PayFlow.java

@@ -0,0 +1,88 @@
+package com.fjhx.purchase.flow;
+
+import cn.hutool.extra.spring.SpringUtil;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.flow.core.FlowDelegate;
+import com.fjhx.purchase.entity.purchase.enums.PurchaseDetailStatusEnum;
+import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
+import com.fjhx.purchase.service.purchase.PurchaseDetailService;
+import com.fjhx.purchase.service.purchase.PurchaseService;
+import com.fjhx.purchase.util.code.CodeEnum;
+import com.obs.services.internal.ServiceException;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 采购付款流程
+ * @Author:caozj
+ * @DATE:2023/4/3 17:38
+ */
+@DS(SourceConstant.PURCHASE)
+@Component
+public class PayFlow extends FlowDelegate {
+
+    @Override
+    public String getFlowKey() {
+        return "pay_flow";
+    }
+
+
+    /**
+     * 发起流程
+     * @param flowId 流程ID
+     * @param submitData 采购付款数据
+     * @return
+     */
+    @Override
+    public Long start(Long flowId, JSONObject submitData) {
+        PurchaseService purchaseService = SpringUtil.getBean(PurchaseService.class);
+        PurchaseDetailService purchaseDetailService = SpringUtil.getBean(PurchaseDetailService.class);
+        Purchase purchase = submitData.toJavaObject(Purchase.class);
+        purchase.setCode(CodeEnum.PURCHASE.getCode());
+        purchase.setPurchaseStatus(PurchaseStatusEnum.UNDER_REVIEW.getKey());
+        purchaseService.save(purchase);
+        List<PurchaseDetail> purchaseDetailList = purchase.getPurchaseDetailList();
+        if(CollectionUtils.isNotEmpty(purchaseDetailList)){
+            for(PurchaseDetail s : purchaseDetailList){
+                s.setPurchaseId(purchase.getId());
+            }
+            purchaseDetailService.saveBatch(purchaseDetailList);
+        }
+        return purchase.getId();
+    }
+
+    /**
+     * 结束流程
+     * @param flowId 流程ID
+     * @param businessId 业务ID
+     * @param submitData 数据
+     */
+    @Override
+    public void end(Long flowId, Long businessId, JSONObject submitData) {
+        PurchaseService purchaseService = SpringUtil.getBean(PurchaseService.class);
+        PurchaseDetailService purchaseDetailService = SpringUtil.getBean(PurchaseDetailService.class);
+        //通过业务ID查询申购数据
+        Purchase purchase = purchaseService.getById(businessId);
+        if(ObjectUtils.isEmpty(purchase)){
+            throw new ServiceException("采购单不存在");
+        }
+        //修改采购状态为审批通过
+        purchase.setPurchaseStatus(PurchaseStatusEnum.PASS.getKey());
+        purchase.setApprovedDate(new Date());
+        purchaseService.updateById(purchase);
+        //修改采购明细为待采购
+        PurchaseDetail detail = new PurchaseDetail();
+        detail.setStatus(PurchaseDetailStatusEnum.PASS.getKey());
+        purchaseDetailService.update(detail,Wrappers.<PurchaseDetail>query()
+                .lambda().eq(PurchaseDetail::getPurchaseId,purchase.getId()));
+    }
+}

+ 42 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/invoice/InvoiceDetailsMapper.java

@@ -0,0 +1,42 @@
+package com.fjhx.purchase.mapper.invoice;
+
+import com.fjhx.purchase.entity.invoice.po.InvoiceDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * <p>
+ * 发票明细 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+public interface InvoiceDetailsMapper extends BaseMapper<InvoiceDetails> {
+
+    /**
+     * 发票明细分页
+     */
+    Page<InvoiceDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<InvoiceDetails> wrapper);
+
+    /**
+     * 根据采购单ids查询总发票金额
+     * @param purchaseIds
+     * @return
+     */
+    List<InvoiceDetailsVo> getSumMoneyByPurchaseIds(@Param("purchaseIds") List<Long> purchaseIds);
+
+    /**
+     * 根据发票ID查询明细
+     * @param invoiceId
+     * @return
+     */
+    List<InvoiceDetailsVo> getDetail(@Param("invoiceId")Long invoiceId);
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/invoice/InvoiceMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.invoice;
+
+import com.fjhx.purchase.entity.invoice.po.Invoice;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 发票管理 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+public interface InvoiceMapper extends BaseMapper<Invoice> {
+
+    /**
+     * 发票管理分页
+     */
+    Page<InvoiceVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Invoice> wrapper);
+
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/pay/PayDetailMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.pay;
+
+import com.fjhx.purchase.entity.pay.po.PayDetail;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 发票明细 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface PayDetailMapper extends BaseMapper<PayDetail> {
+
+    /**
+     * 发票明细分页
+     */
+    Page<PayDetailVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<PayDetail> wrapper);
+
+}

+ 26 - 0
hx-purchase/src/main/java/com/fjhx/purchase/mapper/pay/PayMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.purchase.mapper.pay;
+
+import com.fjhx.purchase.entity.pay.po.Pay;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.pay.vo.PayVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 采购付款 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface PayMapper extends BaseMapper<Pay> {
+
+    /**
+     * 采购付款分页
+     */
+    Page<PayVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<Pay> wrapper);
+
+}

+ 62 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/invoice/InvoiceDetailsService.java

@@ -0,0 +1,62 @@
+package com.fjhx.purchase.service.invoice;
+
+import com.fjhx.purchase.entity.invoice.po.InvoiceDetails;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceDetailsSelectDto;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceDetailsDto;
+
+import java.util.List;
+import java.util.Map;
+
+
+/**
+ * <p>
+ * 发票明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+public interface InvoiceDetailsService extends BaseService<InvoiceDetails> {
+
+    /**
+     * 发票明细分页
+     */
+    Page<InvoiceDetailsVo> getPage(InvoiceDetailsSelectDto dto);
+
+    /**
+     * 发票明细明细
+     */
+    InvoiceDetailsVo detail(Long id);
+
+    /**
+     * 发票明细新增
+     */
+    void add(InvoiceDetailsDto invoiceDetailsDto);
+
+    /**
+     * 发票明细编辑
+     */
+    void edit(InvoiceDetailsDto invoiceDetailsDto);
+
+    /**
+     * 发票明细删除
+     */
+    void delete(Long id);
+
+    /**
+     * 根据采购单ids查询总发票金额
+     * @param purchaseIds
+     * @return
+     */
+    List<InvoiceDetailsVo> getSumMoneyByPurchaseIds(List<Long> purchaseIds);
+
+    /**
+     * 根据发票ID查询明细
+     * @param invoiceId
+     * @return
+     */
+    List<InvoiceDetailsVo> getDetail(Long invoiceId);
+}

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/invoice/InvoiceService.java

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.invoice;
+
+import com.fjhx.purchase.entity.invoice.po.Invoice;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceVo;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceSelectDto;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceDto;
+
+
+/**
+ * <p>
+ * 发票管理 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+public interface InvoiceService extends BaseService<Invoice> {
+
+    /**
+     * 发票管理分页
+     */
+    Page<InvoiceVo> getPage(InvoiceSelectDto dto);
+
+    /**
+     * 发票管理明细
+     */
+    InvoiceVo detail(Long id);
+
+    /**
+     * 发票管理新增
+     */
+    void add(Invoice invoice);
+
+    /**
+     * 发票管理编辑
+     */
+    void edit(Invoice invoice);
+
+    /**
+     * 发票管理删除
+     */
+    void delete(Long id);
+
+}

+ 118 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/invoice/impl/InvoiceDetailsServiceImpl.java

@@ -0,0 +1,118 @@
+package com.fjhx.purchase.service.invoice.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.purchase.entity.invoice.po.Invoice;
+import com.fjhx.purchase.entity.invoice.po.InvoiceDetails;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.mapper.invoice.InvoiceDetailsMapper;
+import com.fjhx.purchase.service.invoice.InvoiceDetailsService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.wrapper.SqlField;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceDetailsSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceDetailsDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 发票明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@DS(SourceConstant.PURCHASE)
+@Service
+public class InvoiceDetailsServiceImpl extends ServiceImpl<InvoiceDetailsMapper, InvoiceDetails> implements InvoiceDetailsService {
+
+    @Autowired
+    private SupplierInfoService supplierInfoService;
+
+
+    @Override
+    public Page<InvoiceDetailsVo> getPage(InvoiceDetailsSelectDto dto) {
+        IWrapper<InvoiceDetails> wrapper = getWrapper();
+        wrapper.orderByDesc("t1", InvoiceDetails::getCreateTime);
+        if(ObjectUtils.isNotEmpty(dto.getInvoiceType())){
+            wrapper.eq("t2", Invoice::getType,dto.getInvoiceType());
+        }
+        if(StringUtils.isNotEmpty(dto.getKeyword())){
+            wrapper.keyword(dto.getKeyword(), new SqlField("t3", Purchase::getCode));
+        }
+        Page<InvoiceDetailsVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<InvoiceDetailsVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            List<Long> supplyIds = list.stream().map(InvoiceDetailsVo::getSupplyId).collect(Collectors.toList());
+            List<SupplierInfo> supplierInfoList = supplierInfoService.list(Wrappers.<SupplierInfo>query().lambda().in(SupplierInfo::getId,supplyIds));
+            Map<Long,List<SupplierInfo>> supplyMap = supplierInfoList.stream().distinct().collect(Collectors.groupingBy(SupplierInfo::getId));
+            if(MapUtils.isNotEmpty(supplyMap)){
+                for(InvoiceDetailsVo p:list){
+                    List<SupplierInfo> supplys = supplyMap.getOrDefault(p.getSupplyId(),null);
+                    p.setSupplyName(supplys==null?null:supplys.get(0).getName());
+                }
+            }
+        }
+        return page;
+    }
+
+    @Override
+    public InvoiceDetailsVo detail(Long id) {
+        InvoiceDetails InvoiceDetails = this.getById(id);
+        InvoiceDetailsVo result = BeanUtil.toBean(InvoiceDetails, InvoiceDetailsVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(InvoiceDetailsDto invoiceDetailsDto) {
+        this.save(invoiceDetailsDto);
+    }
+
+    @Override
+    public void edit(InvoiceDetailsDto invoiceDetailsDto) {
+        this.updateById(invoiceDetailsDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+    /**
+     * 根据采购单ids查询总发票金额
+     * @param purchaseIds
+     * @return
+     */
+    @Override
+    public List<InvoiceDetailsVo> getSumMoneyByPurchaseIds(List<Long> purchaseIds) {
+        return baseMapper.getSumMoneyByPurchaseIds(purchaseIds);
+    }
+
+    /**
+     * 根据发票ID查询明细
+     * @param invoiceId
+     * @return
+     */
+    @Override
+    public List<InvoiceDetailsVo> getDetail(Long invoiceId) {
+        return baseMapper.getDetail(invoiceId);
+    }
+
+
+}

+ 164 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/invoice/impl/InvoiceServiceImpl.java

@@ -0,0 +1,164 @@
+package com.fjhx.purchase.service.invoice.impl;
+
+import com.baomidou.dynamic.datasource.annotation.DS;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
+import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.fjhx.common.constant.SourceConstant;
+import com.fjhx.file.utils.ObsFileUtil;
+import com.fjhx.purchase.entity.invoice.po.Invoice;
+import com.fjhx.purchase.entity.invoice.po.InvoiceDetails;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
+import com.fjhx.purchase.entity.purchase.po.Purchase;
+import com.fjhx.purchase.mapper.invoice.InvoiceMapper;
+import com.fjhx.purchase.service.invoice.InvoiceDetailsService;
+import com.fjhx.purchase.service.invoice.InvoiceService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.fjhx.supply.entity.supplier.po.SupplierInfo;
+import com.fjhx.supply.service.supplier.SupplierInfoService;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.common.utils.wrapper.SqlField;
+import io.seata.spring.annotation.GlobalTransactional;
+import org.apache.commons.collections4.MapUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceVo;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.invoice.dto.InvoiceDto;
+import cn.hutool.core.bean.BeanUtil;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+
+/**
+ * <p>
+ * 发票管理 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@DS(SourceConstant.PURCHASE)
+@Service
+public class InvoiceServiceImpl extends ServiceImpl<InvoiceMapper, Invoice> implements InvoiceService {
+
+    @Autowired
+    private InvoiceDetailsService invoiceDetailsService;
+
+    @Autowired
+    private SupplierInfoService supplierInfoService;
+
+    /**
+     * 分页
+     * @param dto
+     * @return
+     */
+    @Override
+    public Page<InvoiceVo> getPage(InvoiceSelectDto dto) {
+        IWrapper<Invoice> wrapper = getWrapper();
+        wrapper.orderByDesc("t1", Invoice::getCreateTime);
+        if(ObjectUtils.isNotEmpty(dto.getInvoiceType())){
+            wrapper.eq("t1", Invoice::getType,dto.getInvoiceType());
+        }
+        if(StringUtils.isNotEmpty(dto.getKeyword())){
+            wrapper.keyword(dto.getKeyword(), new SqlField("t1.purchaseCodes"));
+        }
+        Page<InvoiceVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        List<InvoiceVo> list = page.getRecords();
+        if(CollectionUtils.isNotEmpty(list)){
+            List<Long> supplyIds = list.stream().map(InvoiceVo::getSupplyId).collect(Collectors.toList());
+            List<SupplierInfo> supplierInfoList = supplierInfoService.list(Wrappers.<SupplierInfo>query().lambda().in(SupplierInfo::getId,supplyIds));
+            Map<Long,List<SupplierInfo>> supplyMap = supplierInfoList.stream().distinct().collect(Collectors.groupingBy(SupplierInfo::getId));
+            if(MapUtils.isNotEmpty(supplyMap)){
+                for(InvoiceVo p:list){
+                    List<SupplierInfo> supplys = supplyMap.getOrDefault(p.getSupplyId(),null);
+                    p.setSupplyName(supplys==null?null:supplys.get(0).getName());
+                }
+            }
+        }
+        return page;
+    }
+
+    /**
+     * 详情
+     * @param id
+     * @return
+     */
+    @Override
+    public InvoiceVo detail(Long id) {
+        Invoice Invoice = this.getById(id);
+        InvoiceVo result = BeanUtil.toBean(Invoice, InvoiceVo.class);
+        List<InvoiceDetailsVo> invoiceDetailsVos = invoiceDetailsService.getDetail(id);
+        List<Long> ids = invoiceDetailsVos.stream().distinct().map(InvoiceDetailsVo::getPurchaseId).collect(Collectors.toList());
+        List<InvoiceDetailsVo> invoiceDetailsList = invoiceDetailsService.getSumMoneyByPurchaseIds(ids);
+        Map<Long, BigDecimal> invoiceMap = invoiceDetailsList.stream().collect(Collectors.toMap(InvoiceDetailsVo::getPurchaseId,InvoiceDetailsVo::getSumMoney));
+        for(InvoiceDetailsVo p:invoiceDetailsVos){
+            if(MapUtils.isNotEmpty(invoiceMap)){
+                p.setSumMoney(invoiceMap.getOrDefault(p.getPurchaseId(),null));
+            }else{
+                p.setSumMoney(BigDecimal.ZERO);
+            }
+        }
+        result.setInvoiceDetailsVoList(invoiceDetailsVos);
+        return result;
+    }
+
+    /**
+     * 新增
+     * @param invoice
+     */
+    @Override
+    @GlobalTransactional(rollbackFor = Exception.class)
+    public void add(Invoice invoice) {
+        this.save(invoice);
+        List<InvoiceDetails> invoiceDetailsList = invoice.getInvoiceDetailsList();
+        if(CollectionUtils.isNotEmpty(invoiceDetailsList)){
+            for(InvoiceDetails d:invoiceDetailsList){
+                d.setInvoiceId(invoice.getId());
+            }
+            invoiceDetailsService.saveBatch(invoiceDetailsList);
+        }
+        ObsFileUtil.saveFile(invoice.getFileList(),invoice.getId());
+    }
+
+    /**
+     * 修改
+     * @param invoice
+     */
+    @Override
+    @GlobalTransactional(rollbackFor = Exception.class)
+    public void edit(Invoice invoice) {
+        this.updateById(invoice);
+        invoiceDetailsService.remove(Wrappers.<InvoiceDetails>query().lambda().eq(InvoiceDetails::getInvoiceId,invoice.getId()));
+        List<InvoiceDetails> invoiceDetailsList = invoice.getInvoiceDetailsList();
+        if(CollectionUtils.isNotEmpty(invoiceDetailsList)){
+            for(InvoiceDetails d:invoiceDetailsList){
+                d.setInvoiceId(invoice.getId());
+            }
+            invoiceDetailsService.saveBatch(invoiceDetailsList);
+        }
+        //清空文件和明细
+        ObsFileUtil.removeFile(invoice.getId());
+        //重新添加
+        ObsFileUtil.saveFile(invoice.getFileList(),invoice.getId());
+    }
+
+    /**
+     * 删除
+     * @param id
+     */
+    @Override
+    @GlobalTransactional(rollbackFor = Exception.class)
+    public void delete(Long id) {
+        this.removeById(id);
+        invoiceDetailsService.remove(Wrappers.<InvoiceDetails>query().lambda().eq(InvoiceDetails::getInvoiceId,id));
+        ObsFileUtil.removeFile(id);
+    }
+
+}

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/PayDetailService.java

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.pay;
+
+import com.fjhx.purchase.entity.pay.po.PayDetail;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
+import com.fjhx.purchase.entity.pay.dto.PayDetailSelectDto;
+import com.fjhx.purchase.entity.pay.dto.PayDetailDto;
+
+
+/**
+ * <p>
+ * 发票明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface PayDetailService extends BaseService<PayDetail> {
+
+    /**
+     * 发票明细分页
+     */
+    Page<PayDetailVo> getPage(PayDetailSelectDto dto);
+
+    /**
+     * 发票明细明细
+     */
+    PayDetailVo detail(Long id);
+
+    /**
+     * 发票明细新增
+     */
+    void add(PayDetailDto payDetailDto);
+
+    /**
+     * 发票明细编辑
+     */
+    void edit(PayDetailDto payDetailDto);
+
+    /**
+     * 发票明细删除
+     */
+    void delete(Long id);
+
+}

+ 46 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/PayService.java

@@ -0,0 +1,46 @@
+package com.fjhx.purchase.service.pay;
+
+import com.fjhx.purchase.entity.pay.po.Pay;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.pay.vo.PayVo;
+import com.fjhx.purchase.entity.pay.dto.PaySelectDto;
+import com.fjhx.purchase.entity.pay.dto.PayDto;
+
+
+/**
+ * <p>
+ * 采购付款 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface PayService extends BaseService<Pay> {
+
+    /**
+     * 采购付款分页
+     */
+    Page<PayVo> getPage(PaySelectDto dto);
+
+    /**
+     * 采购付款明细
+     */
+    PayVo detail(Long id);
+
+    /**
+     * 采购付款新增
+     */
+    void add(PayDto payDto);
+
+    /**
+     * 采购付款编辑
+     */
+    void edit(PayDto payDto);
+
+    /**
+     * 采购付款删除
+     */
+    void delete(Long id);
+
+}

+ 57 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayDetailServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.purchase.service.pay.impl;
+
+import com.fjhx.purchase.entity.pay.po.PayDetail;
+import com.fjhx.purchase.mapper.pay.PayDetailMapper;
+import com.fjhx.purchase.service.pay.PayDetailService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.pay.vo.PayDetailVo;
+import com.fjhx.purchase.entity.pay.dto.PayDetailSelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.pay.dto.PayDetailDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 发票明细 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Service
+public class PayDetailServiceImpl extends ServiceImpl<PayDetailMapper, PayDetail> implements PayDetailService {
+
+    @Override
+    public Page<PayDetailVo> getPage(PayDetailSelectDto dto) {
+        IWrapper<PayDetail> wrapper = getWrapper();
+        wrapper.orderByDesc("pd", PayDetail::getId);
+        Page<PayDetailVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public PayDetailVo detail(Long id) {
+        PayDetail PayDetail = this.getById(id);
+        PayDetailVo result = BeanUtil.toBean(PayDetail, PayDetailVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(PayDetailDto payDetailDto) {
+        this.save(payDetailDto);
+    }
+
+    @Override
+    public void edit(PayDetailDto payDetailDto) {
+        this.updateById(payDetailDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 57 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/pay/impl/PayServiceImpl.java

@@ -0,0 +1,57 @@
+package com.fjhx.purchase.service.pay.impl;
+
+import com.fjhx.purchase.entity.pay.po.Pay;
+import com.fjhx.purchase.mapper.pay.PayMapper;
+import com.fjhx.purchase.service.pay.PayService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.purchase.entity.pay.vo.PayVo;
+import com.fjhx.purchase.entity.pay.dto.PaySelectDto;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import com.fjhx.purchase.entity.pay.dto.PayDto;
+import cn.hutool.core.bean.BeanUtil;
+
+
+/**
+ * <p>
+ * 采购付款 服务实现类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Service
+public class PayServiceImpl extends ServiceImpl<PayMapper, Pay> implements PayService {
+
+    @Override
+    public Page<PayVo> getPage(PaySelectDto dto) {
+        IWrapper<Pay> wrapper = getWrapper();
+        wrapper.orderByDesc("p", Pay::getId);
+        Page<PayVo> page = this.baseMapper.getPage(dto.getPage(), wrapper);
+        return page;
+    }
+
+    @Override
+    public PayVo detail(Long id) {
+        Pay Pay = this.getById(id);
+        PayVo result = BeanUtil.toBean(Pay, PayVo.class);
+        return result;
+    }
+
+    @Override
+    public void add(PayDto payDto) {
+        this.save(payDto);
+    }
+
+    @Override
+    public void edit(PayDto payDto) {
+        this.updateById(payDto);
+    }
+
+    @Override
+    public void delete(Long id) {
+        this.removeById(id);
+    }
+
+}

+ 8 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/PurchaseService.java

@@ -7,6 +7,8 @@ import com.fjhx.purchase.entity.purchase.vo.PurchaseVo;
 import com.fjhx.purchase.entity.purchase.dto.PurchaseSelectDto;
 import com.fjhx.purchase.entity.purchase.dto.PurchaseDto;
 
+import java.util.List;
+
 
 /**
  * <p>
@@ -43,4 +45,10 @@ public interface PurchaseService extends BaseService<Purchase> {
      */
     void delete(Long id);
 
+    /**
+     * 根据供应商查询采购合同
+     * @param supplyId
+     * @return
+     */
+    List<Purchase> getListBySupplyId(String supplyId);
 }

+ 32 - 0
hx-purchase/src/main/java/com/fjhx/purchase/service/purchase/impl/PurchaseServiceImpl.java

@@ -9,11 +9,15 @@ import com.fjhx.common.constant.SourceConstant;
 import com.fjhx.item.entity.product.po.ProductInfo;
 import com.fjhx.item.entity.product.vo.ProductInfoVo;
 import com.fjhx.item.service.product.ProductInfoService;
+import com.fjhx.purchase.entity.invoice.po.Invoice;
+import com.fjhx.purchase.entity.invoice.po.InvoiceDetails;
+import com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo;
 import com.fjhx.purchase.entity.purchase.enums.PurchaseStatusEnum;
 import com.fjhx.purchase.entity.purchase.po.Purchase;
 import com.fjhx.purchase.entity.purchase.po.PurchaseDetail;
 import com.fjhx.purchase.mapper.purchase.PurchaseMapper;
 import com.fjhx.purchase.service.arrival.ArrivalDetailService;
+import com.fjhx.purchase.service.invoice.InvoiceDetailsService;
 import com.fjhx.purchase.service.purchase.PurchaseDetailService;
 import com.fjhx.purchase.service.purchase.PurchaseService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -21,6 +25,7 @@ import com.fjhx.purchase.util.code.CodeEnum;
 import com.fjhx.supply.entity.supplier.po.SupplierInfo;
 import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.obs.services.internal.ServiceException;
+import com.ruoyi.common.utils.StringUtils;
 import io.seata.spring.annotation.GlobalTransactional;
 import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -54,6 +59,9 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
     private SupplierInfoService supplierInfoService;
 
     @Autowired
+    private InvoiceDetailsService invoiceDetailsService;
+
+    @Autowired
     private PurchaseDetailService purchaseDetailService;
 
     @Autowired
@@ -167,4 +175,28 @@ public class PurchaseServiceImpl extends ServiceImpl<PurchaseMapper, Purchase> i
         this.removeById(id);
     }
 
+    /**
+     * 根据供应商查询采购合同
+     * @param supplyId
+     * @return
+     */
+    @Override
+    public List<Purchase> getListBySupplyId(String supplyId) {
+        if(StringUtils.isEmpty(supplyId)){
+            throw new ServiceException("供应商ID不能为空");
+        }
+        List<Purchase> list = this.list(Wrappers.<Purchase>query().lambda().eq(Purchase::getSupplyId,supplyId));
+        List<Long> ids = list.stream().distinct().map(Purchase::getId).collect(Collectors.toList());
+        List<InvoiceDetailsVo> invoiceDetailsList = invoiceDetailsService.getSumMoneyByPurchaseIds(ids);
+        Map<Long,BigDecimal> invoiceMap = invoiceDetailsList.stream().collect(Collectors.toMap(InvoiceDetailsVo::getPurchaseId,InvoiceDetailsVo::getSumMoney));
+        for(Purchase p:list){
+            if(MapUtils.isNotEmpty(invoiceMap)){
+                p.setSumInvoiceMoney(invoiceMap.getOrDefault(p.getId(),null));
+            }else{
+                p.setSumInvoiceMoney(BigDecimal.ZERO);
+            }
+        }
+        return list;
+    }
+
 }

+ 44 - 0
hx-purchase/src/main/resources/mapper/invoice/InvoiceDetailsMapper.xml

@@ -0,0 +1,44 @@
+<?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.purchase.mapper.invoice.InvoiceDetailsMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo">
+        SELECT
+            t1.*,
+            t2.supply_id AS supplyId,
+            t2.type  AS invoiceType,
+            t3.`code` AS purchaseCode
+        FROM
+            invoice_details t1
+        LEFT JOIN invoice t2 ON t1.invoice_id = t2.id
+        LEFT JOIN purchase t3 ON t3.id = t1.purchase_id
+            ${ew.customSqlSegment}
+    </select>
+
+    <select id="getSumMoneyByPurchaseIds" resultType="com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo">
+        SELECT
+            purchase_id,
+            IFNULL(SUM(money),0) AS sumMoney
+        FROM
+            invoice_details
+        <where>
+            <if test="purchaseIds neq null and purchaseIds.size() > 0">
+                <foreach collection="purchaseIds" item="purchaseId" open="purchase_id IN (" separator="," close=")">
+                    #{purchaseId}
+                </foreach>
+            </if>
+        </where>
+        GROUP BY
+            purchase_id
+    </select>
+
+    <select id="getDetail" resultType="com.fjhx.purchase.entity.invoice.vo.InvoiceDetailsVo">
+        SELECT
+            t1.*,
+            t2.`code` AS purchaseCode,
+            t2.amount AS purchaseAmount
+        FROM
+            invoice_details t1
+            LEFT JOIN purchase t2 ON t1.purchase_id = t2.id
+        WHERE invoice_id = #{invoiceId}
+    </select>
+</mapper>

+ 22 - 0
hx-purchase/src/main/resources/mapper/invoice/InvoiceMapper.xml

@@ -0,0 +1,22 @@
+<?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.purchase.mapper.invoice.InvoiceMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.invoice.vo.InvoiceVo">
+        SELECT
+            *
+        FROM
+            (
+                SELECT
+                    t1.*,
+                    GROUP_CONCAT( t3.`code` ) AS purchaseCodes
+                FROM
+                    invoice t1
+                        LEFT JOIN invoice_details t2 ON t1.id = t2.invoice_id
+                        LEFT JOIN purchase t3 ON t2.purchase_id = t3.id
+                GROUP BY
+                    t1.id
+            ) t1
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 18 - 0
hx-purchase/src/main/resources/mapper/pay/PayDetailMapper.xml

@@ -0,0 +1,18 @@
+<?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.purchase.mapper.pay.PayDetailMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.pay.vo.PayDetailVo">
+        select
+            pd.id,
+            pd.purchase_id,
+            pd.money,
+            pd.remark,
+            pd.create_user,
+            pd.create_time,
+            pd.update_user,
+            pd.update_time
+        from pay_detail pd
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 22 - 0
hx-purchase/src/main/resources/mapper/pay/PayMapper.xml

@@ -0,0 +1,22 @@
+<?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.purchase.mapper.pay.PayMapper">
+    <select id="getPage" resultType="com.fjhx.purchase.entity.pay.vo.PayVo">
+        select
+            p.id,
+            p.supply_id,
+            p.amount,
+            p.invoice_type,
+            p.remark,
+            p.deadline,
+            p.receipts_num,
+            p.pay_type,
+            p.create_user,
+            p.create_time,
+            p.update_user,
+            p.update_time
+        from pay p
+            ${ew.customSqlSegment}
+    </select>
+
+</mapper>

+ 4 - 0
hx-supply/src/main/java/com/fjhx/supply/service/supplier/impl/SupplierInfoServiceImpl.java

@@ -16,6 +16,7 @@ import com.fjhx.supply.service.supplier.SupplierInfoService;
 import com.fjhx.supply.utils.CodeEnum;
 import com.ruoyi.common.utils.wrapper.IWrapper;
 import com.ruoyi.common.utils.wrapper.SqlField;
+import io.seata.spring.annotation.GlobalTransactional;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
@@ -82,6 +83,7 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
         return result;
     }
 
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void add(SupplierInfoDto supplierInfoDto) {
         supplierInfoDto.setCode(CodeEnum.SUPPLIER_INFO.getCode());
@@ -89,6 +91,7 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
         ObsFileUtil.saveFile(supplierInfoDto.getFileList(), supplierInfoDto.getId());
     }
 
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void edit(SupplierInfoDto supplierInfoDto) {
         supplierInfoDto.setCode(null);
@@ -96,6 +99,7 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
         ObsFileUtil.editFile(supplierInfoDto.getFileList(), supplierInfoDto.getId());
     }
 
+    @GlobalTransactional(rollbackFor = Exception.class)
     @Override
     public void delete(Long id) {
         this.removeById(id);

+ 9 - 0
hx-victoriatourist/pom.xml

@@ -20,6 +20,15 @@
             <groupId>com.fjhx</groupId>
             <artifactId>hx-common</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.fjhx</groupId>
+            <artifactId>hx-purchase</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>hx-kd100</artifactId>
+            <version>3.8.5</version>
+        </dependency>
     </dependencies>
 
 </project>

文件差異過大導致無法顯示
+ 0 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/OrderDetailsApi.json


文件差異過大導致無法顯示
+ 0 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/a-json/OrderInfoApi.json


+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsDetailsController.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.controller.logistics;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsDetailsVo;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.logistics.LogisticsDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 物流明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@RestController
+@RequestMapping("/logisticsDetails")
+public class LogisticsDetailsController {
+
+    @Autowired
+    private LogisticsDetailsService logisticsDetailsService;
+
+    /**
+     * 物流明细分页
+     */
+    @PostMapping("/page")
+    public Page<LogisticsDetailsVo> page(@RequestBody LogisticsDetailsSelectDto dto) {
+        return logisticsDetailsService.getPage(dto);
+    }
+
+    /**
+     * 物流明细明细
+     */
+    @PostMapping("/detail")
+    public LogisticsDetailsVo detail(@RequestBody BaseSelectDto dto) {
+        return logisticsDetailsService.detail(dto.getId());
+    }
+
+    /**
+     * 物流明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody LogisticsDetailsDto logisticsDetailsDto) {
+        logisticsDetailsService.add(logisticsDetailsDto);
+    }
+
+    /**
+     * 物流明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody LogisticsDetailsDto logisticsDetailsDto) {
+        logisticsDetailsService.edit(logisticsDetailsDto);
+    }
+
+    /**
+     * 物流明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        logisticsDetailsService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/logistics/LogisticsInfoController.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.controller.logistics;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfoVo;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfoSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfoDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.logistics.MyLogisticsInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 物流信息 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@RestController
+@RequestMapping("/logisticsInfo")
+public class LogisticsInfoController {
+
+    @Autowired
+    private MyLogisticsInfoService logisticsInfoService;
+
+    /**
+     * 物流信息分页
+     */
+    @PostMapping("/page")
+    public Page<LogisticsInfoVo> page(@RequestBody LogisticsInfoSelectDto dto) {
+        return logisticsInfoService.getPage(dto);
+    }
+
+    /**
+     * 物流信息明细
+     */
+    @PostMapping("/detail")
+    public LogisticsInfoVo detail(@RequestBody BaseSelectDto dto) {
+        return logisticsInfoService.detail(dto.getId());
+    }
+
+    /**
+     * 物流信息新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody LogisticsInfoDto logisticsInfoDto) {
+        logisticsInfoService.add(logisticsInfoDto);
+    }
+
+    /**
+     * 物流信息编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody LogisticsInfoDto logisticsInfoDto) {
+        logisticsInfoService.edit(logisticsInfoDto);
+    }
+
+    /**
+     * 物流信息删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        logisticsInfoService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/order/OrderDetailsController.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.controller.order;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.order.vo.OrderDetailsVo;
+import com.fjhx.victoriatourist.entity.order.dto.OrderDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.order.dto.OrderDetailsDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.order.OrderDetailsService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 订单明细 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@RestController
+@RequestMapping("/orderDetails")
+public class OrderDetailsController {
+
+    @Autowired
+    private OrderDetailsService orderDetailsService;
+
+    /**
+     * 订单明细分页
+     */
+    @PostMapping("/page")
+    public Page<OrderDetailsVo> page(@RequestBody OrderDetailsSelectDto dto) {
+        return orderDetailsService.getPage(dto);
+    }
+
+    /**
+     * 订单明细明细
+     */
+    @PostMapping("/detail")
+    public OrderDetailsVo detail(@RequestBody BaseSelectDto dto) {
+        return orderDetailsService.detail(dto.getId());
+    }
+
+    /**
+     * 订单明细新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody OrderDetailsDto orderDetailsDto) {
+        orderDetailsService.add(orderDetailsDto);
+    }
+
+    /**
+     * 订单明细编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody OrderDetailsDto orderDetailsDto) {
+        orderDetailsService.edit(orderDetailsDto);
+    }
+
+    /**
+     * 订单明细删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        orderDetailsService.delete(dto.getId());
+    }
+
+}

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/controller/order/OrderInfoController.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.controller.order;
+
+import org.springframework.web.bind.annotation.*;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.order.vo.OrderInfoVo;
+import com.fjhx.victoriatourist.entity.order.dto.OrderInfoSelectDto;
+import com.fjhx.victoriatourist.entity.order.dto.OrderInfoDto;
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import com.fjhx.victoriatourist.service.order.OrderInfoService;
+import org.springframework.beans.factory.annotation.Autowired;
+
+
+/**
+ * <p>
+ * 订单 前端控制器
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@RestController
+@RequestMapping("/orderInfo")
+public class OrderInfoController {
+
+    @Autowired
+    private OrderInfoService orderInfoService;
+
+    /**
+     * 订单分页
+     */
+    @PostMapping("/page")
+    public Page<OrderInfoVo> page(@RequestBody OrderInfoSelectDto dto) {
+        return orderInfoService.getPage(dto);
+    }
+
+    /**
+     * 订单明细
+     */
+    @PostMapping("/detail")
+    public OrderInfoVo detail(@RequestBody BaseSelectDto dto) {
+        return orderInfoService.detail(dto.getId());
+    }
+
+    /**
+     * 订单新增
+     */
+    @PostMapping("/add")
+    public void add(@RequestBody OrderInfoDto orderInfoDto) {
+        orderInfoService.add(orderInfoDto);
+    }
+
+    /**
+     * 订单编辑
+     */
+    @PostMapping("/edit")
+    public void edit(@RequestBody OrderInfoDto orderInfoDto) {
+        orderInfoService.edit(orderInfoDto);
+    }
+
+    /**
+     * 订单删除
+     */
+    @PostMapping("/delete")
+    public void delete(@RequestBody BaseSelectDto dto) {
+        orderInfoService.delete(dto.getId());
+    }
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.logistics.dto;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class LogisticsDetailsDto extends LogisticsDetails {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.logistics.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流明细列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class LogisticsDetailsSelectDto extends BaseSelectDto {
+
+}

+ 22 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfoDto.java

@@ -0,0 +1,22 @@
+package com.fjhx.victoriatourist.entity.logistics.dto;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.List;
+
+/**
+ * 物流信息新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class LogisticsInfoDto extends LogisticsInfo {
+
+    List<LogisticsDetails> details;
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/dto/LogisticsInfoSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.logistics.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流信息列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class LogisticsInfoSelectDto extends BaseSelectDto {
+
+}

+ 63 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsDetails.java

@@ -0,0 +1,63 @@
+package com.fjhx.victoriatourist.entity.logistics.po;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.ruoyi.common.core.domain.BasePo;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 物流明细
+ * </p>
+ *
+ * @author
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+@TableName("logistics_details")
+public class LogisticsDetails extends BasePo {
+
+    /**
+     * 物流信息id
+     */
+    private Long logisticsInfoId;
+
+    /**
+     * 物流信息编码
+     */
+    private String logisticsInfoCode;
+
+    /**
+     * 采购单id
+     */
+    private Long purchaseId;
+
+    /**
+     * 申购单id
+     */
+    private Long applyPurchaseId;
+
+    /**
+     * 发货数量
+     */
+    private BigDecimal shipmentQuantity;
+
+    /**
+     * 已入库数量
+     */
+    private BigDecimal receiptQuantity;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 采购明细id
+     */
+    private Long purchaseDetailId;
+
+}

+ 72 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/po/LogisticsInfo.java

@@ -0,0 +1,72 @@
+package com.fjhx.victoriatourist.entity.logistics.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 物流信息
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+@TableName("logistics_info")
+public class LogisticsInfo extends BasePo {
+
+    /**
+     * 业务id
+     */
+    private Long businessId;
+
+    /**
+     * 业务编码
+     */
+    private String businessCode;
+
+    /**
+     * 业务类型(1采购进货(入库) 2京东订单出货(出库) 3销售订单出货(出库) 4(京东退货))
+     */
+    private Integer businessType;
+
+    /**
+     * 仓库id
+     */
+    private Long warehouseId;
+
+    /**
+     * 采购进货 完成状态:0、未完成 / 未到货;1、已完成 / 已到货
+     */
+    private Integer status;
+
+    /**
+     * 采购进货 入库状态:10、未入库;20、部分入库;30、已入库
+     */
+    private Integer inStockStatus;
+
+    /**
+     * 物流单号
+     */
+    private String code;
+
+    /**
+     * 物流公司编码
+     */
+    private String logisticsCompanyCode;
+
+    /**
+     * 物流状态 -1未查询到快递信息 0在途,1揽收,2疑难,3签收,4退签,5派件,6退回,7转投,8清关,14拒签,15完成
+     */
+    private Integer logisticsStatus;
+
+    /**
+     * 是否是快递100 1是 0不是
+     */
+    private Integer isKd100;
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.logistics.vo;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class LogisticsDetailsVo extends LogisticsDetails {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/logistics/vo/LogisticsInfoVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.logistics.vo;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 物流信息列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+@Getter
+@Setter
+public class LogisticsInfoVo extends LogisticsInfo {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderDetailsDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.dto;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单明细新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderDetailsDto extends OrderDetails {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderDetailsSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单明细列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderDetailsSelectDto extends BaseSelectDto {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderInfoDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.dto;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单新增编辑入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderInfoDto extends OrderInfo {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/dto/OrderInfoSelectDto.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.dto;
+
+import com.ruoyi.common.core.domain.BaseSelectDto;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单列表查询入参实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderInfoSelectDto extends BaseSelectDto {
+
+}

+ 68 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/po/OrderDetails.java

@@ -0,0 +1,68 @@
+package com.fjhx.victoriatourist.entity.order.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 订单明细
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+@TableName("order_details")
+public class OrderDetails extends BasePo {
+
+    /**
+     * 订单id
+     */
+    private Long orderId;
+
+    /**
+     * 产品id
+     */
+    private Long productId;
+
+    /**
+     * 数量
+     */
+    private BigDecimal quantity;
+
+    /**
+     * 单价
+     */
+    private BigDecimal price;
+
+    /**
+     * 未出库数量
+     */
+    private BigDecimal notIssuedQuantity;
+
+    /**
+     * 版本号
+     */
+    @TableField(fill = FieldFill.INSERT)
+    @Version
+    private Integer version;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+    /**
+     * 预约号
+     */
+    private Long reservationNumber;
+
+}

+ 118 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/po/OrderInfo.java

@@ -0,0 +1,118 @@
+package com.fjhx.victoriatourist.entity.order.po;
+
+import com.ruoyi.common.core.domain.BasePo;
+import com.baomidou.mybatisplus.annotation.TableName;
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * <p>
+ * 订单
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+@TableName("order_info")
+public class OrderInfo extends BasePo {
+
+    /**
+     * 订单类型(1线上 2线下 3京东订单 4补偿 5补发 6线下退换货 7采购退货)
+     */
+    private Integer type;
+
+    /**
+     * 客户id
+     */
+    private Long customerInfoId;
+
+    /**
+     * 编号
+     */
+    private String code;
+
+    /**
+     * 订单金额
+     */
+    private BigDecimal amountMoney;
+
+    /**
+     * 下单时间
+     */
+    private Date orderTime;
+
+    /**
+     * 订单状态 1进行中 2已完成 3已取消
+     */
+    private Integer status;
+
+    /**
+     * 出库状态 1未出库 2进行中 3已出库
+     */
+    private Integer issueStatus;
+
+    /**
+     * 售后状态 1跟进中(补发中、未补发未收到退货) 2已补发 3未补发收到退货 4已补发收到退货 5已补发未收到退货 6结束
+     */
+    private Integer afterSalesStatus;
+
+    /**
+     * 国家
+     */
+    private String countryId;
+
+    /**
+     * 省
+     */
+    private String provinceId;
+
+    /**
+     * 市
+     */
+    private String cityId;
+
+    /**
+     * 详细地址
+     */
+    private String detailedAddress;
+
+    /**
+     * 联系人
+     */
+    private String contacts;
+
+    /**
+     * 联系电话
+     */
+    private String phone;
+
+    /**
+     * 联系电话前缀类型
+     */
+    private Integer phonePrefixType;
+
+    /**
+     * 导入excel关联id
+     */
+    private Long excelImportId;
+
+    /**
+     * 配送中心
+     */
+    private String distributionCenter;
+
+    /**
+     * 京东仓库
+     */
+    private String jdWarehouse;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/vo/OrderDetailsVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.vo;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderDetails;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单明细列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderDetailsVo extends OrderDetails {
+
+}

+ 17 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/entity/order/vo/OrderInfoVo.java

@@ -0,0 +1,17 @@
+package com.fjhx.victoriatourist.entity.order.vo;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderInfo;
+import lombok.Getter;
+import lombok.Setter;
+
+/**
+ * 订单列表查询返回值实体
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+@Getter
+@Setter
+public class OrderInfoVo extends OrderInfo {
+
+}

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/LogisticsDetailsMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.victoriatourist.mapper.logistics;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsDetailsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 物流明细 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+public interface LogisticsDetailsMapper extends BaseMapper<LogisticsDetails> {
+
+    /**
+     * 物流明细分页
+     */
+    Page<LogisticsDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<LogisticsDetails> wrapper);
+
+}

+ 32 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/logistics/MyLogisticsInfoMapper.java

@@ -0,0 +1,32 @@
+package com.fjhx.victoriatourist.mapper.logistics;
+
+import com.fjhx.purchase.entity.purchase.vo.PurchaseDetailVo;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfoVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+
+/**
+ * <p>
+ * 物流信息 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+public interface MyLogisticsInfoMapper extends BaseMapper<LogisticsInfo> {
+
+    /**
+     * 物流信息分页
+     */
+    Page<LogisticsInfoVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<LogisticsInfo> wrapper);
+
+    List<PurchaseDetailVo> getQualityDetailByPurchaseDetailId(@Param("ew") IWrapper<LogisticsDetails> wrapper);
+
+}

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/order/OrderDetailsMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.victoriatourist.mapper.order;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderDetails;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.order.vo.OrderDetailsVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 订单明细 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface OrderDetailsMapper extends BaseMapper<OrderDetails> {
+
+    /**
+     * 订单明细分页
+     */
+    Page<OrderDetailsVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<OrderDetails> wrapper);
+
+}

+ 26 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/mapper/order/OrderInfoMapper.java

@@ -0,0 +1,26 @@
+package com.fjhx.victoriatourist.mapper.order;
+
+import com.fjhx.victoriatourist.entity.order.po.OrderInfo;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.order.vo.OrderInfoVo;
+import com.ruoyi.common.utils.wrapper.IWrapper;
+import org.apache.ibatis.annotations.Param;
+
+
+/**
+ * <p>
+ * 订单 Mapper 接口
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-13
+ */
+public interface OrderInfoMapper extends BaseMapper<OrderInfo> {
+
+    /**
+     * 订单分页
+     */
+    Page<OrderInfoVo> getPage(@Param("page") Page<Object> page, @Param("ew") IWrapper<OrderInfo> wrapper);
+
+}

+ 46 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/LogisticsDetailsService.java

@@ -0,0 +1,46 @@
+package com.fjhx.victoriatourist.service.logistics;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsDetails;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsDetailsVo;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsDetailsDto;
+
+
+/**
+ * <p>
+ * 物流明细 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+public interface LogisticsDetailsService extends BaseService<LogisticsDetails> {
+
+    /**
+     * 物流明细分页
+     */
+    Page<LogisticsDetailsVo> getPage(LogisticsDetailsSelectDto dto);
+
+    /**
+     * 物流明细明细
+     */
+    LogisticsDetailsVo detail(Long id);
+
+    /**
+     * 物流明细新增
+     */
+    void add(LogisticsDetailsDto logisticsDetailsDto);
+
+    /**
+     * 物流明细编辑
+     */
+    void edit(LogisticsDetailsDto logisticsDetailsDto);
+
+    /**
+     * 物流明细删除
+     */
+    void delete(Long id);
+
+}

+ 46 - 0
hx-victoriatourist/src/main/java/com/fjhx/victoriatourist/service/logistics/MyLogisticsInfoService.java

@@ -0,0 +1,46 @@
+package com.fjhx.victoriatourist.service.logistics;
+
+import com.fjhx.victoriatourist.entity.logistics.po.LogisticsInfo;
+import com.ruoyi.common.core.service.BaseService;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.fjhx.victoriatourist.entity.logistics.vo.LogisticsInfoVo;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfoSelectDto;
+import com.fjhx.victoriatourist.entity.logistics.dto.LogisticsInfoDto;
+
+
+/**
+ * <p>
+ * 物流信息 服务类
+ * </p>
+ *
+ * @author 
+ * @since 2023-04-12
+ */
+public interface MyLogisticsInfoService extends BaseService<LogisticsInfo> {
+
+    /**
+     * 物流信息分页
+     */
+    Page<LogisticsInfoVo> getPage(LogisticsInfoSelectDto dto);
+
+    /**
+     * 物流信息明细
+     */
+    LogisticsInfoVo detail(Long id);
+
+    /**
+     * 物流信息新增
+     */
+    void add(LogisticsInfoDto logisticsInfoDto);
+
+    /**
+     * 物流信息编辑
+     */
+    void edit(LogisticsInfoDto logisticsInfoDto);
+
+    /**
+     * 物流信息删除
+     */
+    void delete(Long id);
+
+}

部分文件因文件數量過多而無法顯示