瀏覽代碼

增加与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
     @GetMapping("/{orderId}/settlement")
78
     @GetMapping("/{orderId}/settlement")
79
     @Operation(summary = "查询订单结算信息",
79
     @Operation(summary = "查询订单结算信息",
80
-            description = "返回该订单当前有效结算单(非 cancelled)摘要,含明细与费用分项。"
80
+            description = "返回该订单当前有效结算单(非 cancelled)摘要,含明细、费用分项,"
81
+                    + "以及 worker_groups(来自 fe_order_work_item,字段同草稿)。"
81
                     + "尚未生成结算单时返回 404。仅可查询本企业订单。")
82
                     + "尚未生成结算单时返回 404。仅可查询本企业订单。")
82
     public R<SettlementSummaryResponse> getSettlement(@PathVariable("orderId") Long orderId) {
83
     public R<SettlementSummaryResponse> getSettlement(@PathVariable("orderId") Long orderId) {
83
         LoginUser loginUser = requireEnterprise();
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
 import com.huimv.employment.dao.entity.FeDraftWorkItem;
4
 import com.huimv.employment.dao.entity.FeDraftWorkItem;
5
 import com.huimv.employment.dao.entity.FeOrderWorkItem;
5
 import com.huimv.employment.dao.entity.FeOrderWorkItem;
6
 import com.huimv.employment.dao.mapper.FeOrderWorkItemMapper;
6
 import com.huimv.employment.dao.mapper.FeOrderWorkItemMapper;
7
+import com.huimv.employment.service.draft.dto.DraftWorkerGroupItem;
7
 import org.springframework.stereotype.Service;
8
 import org.springframework.stereotype.Service;
8
 import org.springframework.util.StringUtils;
9
 import org.springframework.util.StringUtils;
9
 
10
 
@@ -36,6 +37,43 @@ public class OrderWorkItemService {
36
                 .orderByAsc(FeOrderWorkItem::getId));
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
         if (settlement == null) {
152
         if (settlement == null) {
153
             throw new BizException(ErrorCode.NOT_FOUND, "尚未发起结算");
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
                                                 FeSettlementOrder settlement,
705
                                                 FeSettlementOrder settlement,
704
                                                 boolean created,
706
                                                 boolean created,
705
                                                 String message) {
707
                                                 String message) {
708
+        List<FeOrderWorkItem> orderItems = orderWorkItemService.listByOrderId(order.getId());
709
+
706
         SettlementSummaryResponse response = new SettlementSummaryResponse();
710
         SettlementSummaryResponse response = new SettlementSummaryResponse();
707
         response.setSettlementId(settlement.getId());
711
         response.setSettlementId(settlement.getId());
708
         response.setSettlementNo(settlement.getSettlementNo());
712
         response.setSettlementNo(settlement.getSettlementNo());
@@ -711,9 +715,8 @@ public class SettlementService {
711
         response.setCurrentStepCode(order.getCurrentStepCode());
715
         response.setCurrentStepCode(order.getCurrentStepCode());
712
         response.setSettlementStatus(settlement.getSettlementStatus());
716
         response.setSettlementStatus(settlement.getSettlementStatus());
713
         response.setWorkerCount(settlement.getWorkerCount());
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
         response.setGrossAmount(settlement.getGrossAmount());
720
         response.setGrossAmount(settlement.getGrossAmount());
718
         response.setDeductionAmount(settlement.getDeductionAmount());
721
         response.setDeductionAmount(settlement.getDeductionAmount());
719
         response.setNetAmount(settlement.getNetAmount());
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
 package com.huimv.employment.service.settlement.dto;
1
 package com.huimv.employment.service.settlement.dto;
2
 
2
 
3
+import com.fasterxml.jackson.annotation.JsonInclude;
3
 import com.fasterxml.jackson.annotation.JsonProperty;
4
 import com.fasterxml.jackson.annotation.JsonProperty;
5
+import com.huimv.employment.service.draft.dto.DraftWorkerGroupItem;
4
 import io.swagger.v3.oas.annotations.media.Schema;
6
 import io.swagger.v3.oas.annotations.media.Schema;
5
 
7
 
6
 import java.math.BigDecimal;
8
 import java.math.BigDecimal;
@@ -96,6 +98,11 @@ public class SettlementSummaryResponse {
96
 
98
 
97
     private List<SettlementFeeResponse> fees = new ArrayList<>();
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
     public Long getSettlementId() {
106
     public Long getSettlementId() {
100
         return settlementId;
107
         return settlementId;
101
     }
108
     }
@@ -327,4 +334,12 @@ public class SettlementSummaryResponse {
327
     public void setFees(List<SettlementFeeResponse> fees) {
334
     public void setFees(List<SettlementFeeResponse> fees) {
328
         this.fees = fees != null ? fees : new ArrayList<>();
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
 }