Переглянути джерело

增加与ai大模型对话

wwh 23 годин тому
батько
коміт
b19d68cc93

+ 2 - 1
huimv-employment/fe-api/src/main/java/com/huimv/employment/controller/mp/EmploymentOrderController.java

@@ -77,7 +77,8 @@ public class EmploymentOrderController {
77 77
 
78 78
     @GetMapping("/{orderId}/settlement")
79 79
     @Operation(summary = "查询订单结算信息",
80
-            description = "返回该订单当前有效结算单(非 cancelled)摘要,含明细与费用分项。"
80
+            description = "返回该订单当前有效结算单(非 cancelled)摘要,含明细、费用分项,"
81
+                    + "以及 worker_groups(来自 fe_order_work_item,字段同草稿)。"
81 82
                     + "尚未生成结算单时返回 404。仅可查询本企业订单。")
82 83
     public R<SettlementSummaryResponse> getSettlement(@PathVariable("orderId") Long orderId) {
83 84
         LoginUser loginUser = requireEnterprise();

+ 38 - 0
huimv-employment/fe-service/src/main/java/com/huimv/employment/service/order/OrderWorkItemService.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
4 4
 import com.huimv.employment.dao.entity.FeDraftWorkItem;
5 5
 import com.huimv.employment.dao.entity.FeOrderWorkItem;
6 6
 import com.huimv.employment.dao.mapper.FeOrderWorkItemMapper;
7
+import com.huimv.employment.service.draft.dto.DraftWorkerGroupItem;
7 8
 import org.springframework.stereotype.Service;
8 9
 import org.springframework.util.StringUtils;
9 10
 
@@ -36,6 +37,43 @@ public class OrderWorkItemService {
36 37
                 .orderByAsc(FeOrderWorkItem::getId));
37 38
     }
38 39
 
40
+    /**
41
+     * 转为与草稿详情一致的 {@code worker_groups} 结构(字段名 work_type / work_location / settlement_mode)。
42
+     */
43
+    public List<DraftWorkerGroupItem> toApiGroups(List<FeOrderWorkItem> items) {
44
+        List<DraftWorkerGroupItem> groups = new ArrayList<>();
45
+        if (items == null) {
46
+            return groups;
47
+        }
48
+        for (FeOrderWorkItem item : items) {
49
+            groups.add(toApiGroup(item));
50
+        }
51
+        return groups;
52
+    }
53
+
54
+    public List<DraftWorkerGroupItem> toApiGroupsByOrderId(Long orderId) {
55
+        return toApiGroups(listByOrderId(orderId));
56
+    }
57
+
58
+    public DraftWorkerGroupItem toApiGroup(FeOrderWorkItem item) {
59
+        DraftWorkerGroupItem group = new DraftWorkerGroupItem();
60
+        if (item == null) {
61
+            return group;
62
+        }
63
+        group.setGroupId(item.getGroupNo());
64
+        group.setJobType(item.getJobType());
65
+        group.setWorkerCount(item.getWorkerCount());
66
+        group.setWorkDays(item.getWorkDays());
67
+        group.setRegion(item.getWorkLocation());
68
+        group.setSettlementCycle(item.getSettlementCycle());
69
+        group.setUnitAmount(item.getUnitAmount());
70
+        group.setTotalAmount(item.getTotalAmount());
71
+        group.setWorkContent(item.getWorkContent());
72
+        group.setWorkStartDate(item.getWorkStartDate());
73
+        group.setWorkEndDate(item.getWorkEndDate());
74
+        return group;
75
+    }
76
+
39 77
     /**
40 78
      * 草稿确认时将用工明细复制到订单快照表。
41 79
      */

+ 7 - 4
huimv-employment/fe-service/src/main/java/com/huimv/employment/service/settlement/SettlementService.java

@@ -152,7 +152,9 @@ public class SettlementService {
152 152
         if (settlement == null) {
153 153
             throw new BizException(ErrorCode.NOT_FOUND, "尚未发起结算");
154 154
         }
155
-        return toSummary(order, settlement, false, "结算单详情");
155
+        SettlementSummaryResponse response = toSummary(order, settlement, false, "结算单详情");
156
+        response.setWorkerGroups(orderWorkItemService.toApiGroupsByOrderId(order.getId()));
157
+        return response;
156 158
     }
157 159
 
158 160
     /**
@@ -703,6 +705,8 @@ public class SettlementService {
703 705
                                                 FeSettlementOrder settlement,
704 706
                                                 boolean created,
705 707
                                                 String message) {
708
+        List<FeOrderWorkItem> orderItems = orderWorkItemService.listByOrderId(order.getId());
709
+
706 710
         SettlementSummaryResponse response = new SettlementSummaryResponse();
707 711
         response.setSettlementId(settlement.getId());
708 712
         response.setSettlementNo(settlement.getSettlementNo());
@@ -711,9 +715,8 @@ public class SettlementService {
711 715
         response.setCurrentStepCode(order.getCurrentStepCode());
712 716
         response.setSettlementStatus(settlement.getSettlementStatus());
713 717
         response.setWorkerCount(settlement.getWorkerCount());
714
-        response.setPlannedCount(orderWorkItemService.sumWorkerCountByOrderId(order.getId()));
715
-        response.setWorkEndDate(orderWorkItemService.maxWorkEndDate(
716
-                orderWorkItemService.listByOrderId(order.getId())));
718
+        response.setPlannedCount(orderWorkItemService.sumWorkerCount(orderItems));
719
+        response.setWorkEndDate(orderWorkItemService.maxWorkEndDate(orderItems));
717 720
         response.setGrossAmount(settlement.getGrossAmount());
718 721
         response.setDeductionAmount(settlement.getDeductionAmount());
719 722
         response.setNetAmount(settlement.getNetAmount());

+ 15 - 0
huimv-employment/fe-service/src/main/java/com/huimv/employment/service/settlement/dto/SettlementSummaryResponse.java

@@ -1,6 +1,8 @@
1 1
 package com.huimv.employment.service.settlement.dto;
2 2
 
3
+import com.fasterxml.jackson.annotation.JsonInclude;
3 4
 import com.fasterxml.jackson.annotation.JsonProperty;
5
+import com.huimv.employment.service.draft.dto.DraftWorkerGroupItem;
4 6
 import io.swagger.v3.oas.annotations.media.Schema;
5 7
 
6 8
 import java.math.BigDecimal;
@@ -96,6 +98,11 @@ public class SettlementSummaryResponse {
96 98
 
97 99
     private List<SettlementFeeResponse> fees = new ArrayList<>();
98 100
 
101
+    @JsonProperty("worker_groups")
102
+    @JsonInclude(JsonInclude.Include.NON_NULL)
103
+    @Schema(description = "订单用工明细组(仅 GET /orders/{id}/settlement 返回;来自 fe_order_work_item)")
104
+    private List<DraftWorkerGroupItem> workerGroups;
105
+
99 106
     public Long getSettlementId() {
100 107
         return settlementId;
101 108
     }
@@ -327,4 +334,12 @@ public class SettlementSummaryResponse {
327 334
     public void setFees(List<SettlementFeeResponse> fees) {
328 335
         this.fees = fees != null ? fees : new ArrayList<>();
329 336
     }
337
+
338
+    public List<DraftWorkerGroupItem> getWorkerGroups() {
339
+        return workerGroups;
340
+    }
341
+
342
+    public void setWorkerGroups(List<DraftWorkerGroupItem> workerGroups) {
343
+        this.workerGroups = workerGroups;
344
+    }
330 345
 }