Explorar el Código

修改bug:
bug1207,任务管理 出单明细数据导出,导出的数据大部分信息都没有显示,订单状态也是数字

jiakai hace 1 semana
padre
commit
27bdedc7bc

+ 10 - 0
commons/src/main/java/com/jzg/commons/constants/dict/InsOrderStatusEnum.java

@@ -46,5 +46,15 @@ public enum InsOrderStatusEnum implements IBaseEnum {
         return result;
     }
 
+    /**
+     * 根据code获取描述
+     * @param code 状态码
+     * @return desc,找不到返回null
+     */
+    public static String getDescByCode(String code) {
+        InsOrderStatusEnum statusEnum = matchKey(code);
+        return statusEnum != null ? statusEnum.getDesc() : null;
+    }
+
 
 }

+ 4 - 0
commons/src/main/java/com/jzg/commons/entity/dto/InsOrdersParamVO.java

@@ -6,6 +6,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 
 import java.util.Date;
+import java.util.List;
 
 
 @Data
@@ -61,6 +62,9 @@ public class InsOrdersParamVO extends PageRequest {
     @Schema(description = "主订单标识")
     private String parentId;
 
+    @Schema(description = "主订单标识")
+    private List<String> parentIds;
+
     @Schema(description = "投保人")
     private String policyholder;
 

+ 3 - 0
commons/src/main/java/com/jzg/commons/entity/orders/vo/OrderListVo.java

@@ -38,6 +38,9 @@ public class OrderListVo {
     //订单状态
     @ExcelProperty("订单状态")
     private String orderStatus;
+    //订单状态
+    @ExcelProperty("订单状态值")
+    private String orderStatusName;
     //车牌号
     @ExcelProperty("车牌号")
     private String licenseNo;

+ 22 - 2
tenant/insurance/quotation-summary/src/main/java/com/jzg/quotation/summary/service/impl/InsOrdersServiceImpl.java

@@ -1151,11 +1151,17 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         if (CollUtil.isNotEmpty(records)) {
             Map<String, String> attrTypeMap = orgClient.queryAllTypeAttrMap();
             List<OrderListVo> list = records.stream().peek(action -> {
+                // 转换状态的值
+                String descByCode = InsOrderStatusEnum.getDescByCode(action.getOrderStatus());
+                action.setOrderStatusName(descByCode);
+
                 String jzgInfoId1 = action.getJzgInfoId();
                 if (StrUtil.isNotEmpty(jzgInfoId1)) {
                     action.setSalesmanType(attrTypeMap.get(jzgInfoId1));
                 }
             }).toList();
+
+
             orderListVoPage.setRecords(list);
         }
         if (StringUtils.equals("1", insOrdersParam.getIsLargeOrder())) {
@@ -1536,15 +1542,29 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         }
         insOrdersParam.setSystemCode(systemCode);
         Page<OrderListVo> orderListVoPage = queryMainOrderList(insOrdersParam);
+        if (null == orderListVoPage){
+            throw new SystemException("数据为空,导出失败!");
+        }
         List<OrderListVo> orderListVos = orderListVoPage.getRecords();
+        if (CollUtil.isEmpty(orderListVos)){
+            throw new SystemException("数据为空,导出失败!");
+        }
+
+        insOrdersParam.setParentIds(orderListVos.stream().map(OrderListVo::getOrderNo).toList());
+        Page<OrderListVo> orderListVoPageVos = queryList(insOrdersParam);
+        List<OrderListVo> records = orderListVoPageVos.getRecords();
 
-        log.info("导出订单列表,导出[{}]条记录", CollUtil.size(orderListVos));
+        log.info("导出订单列表,导出[{}]条记录", CollUtil.size(records));
         // 动态设置要导出的字段
         String exportDynamicFields = insOrdersParam.getExportDynamicFields();
+        // 把订单状态的枚举值,转换成订单状态的名称
+        if (exportDynamicFields.contains("orderStatus")){
+            exportDynamicFields = exportDynamicFields.replace("orderStatus", "orderStatusName");
+        }
         Set<String> exportFields = new LinkedHashSet<>(Arrays.asList(exportDynamicFields.split(";")));
 
         // 调用动态导出
-        return exportBaseService.upLoadFileDynamic(OrderListVo.class, orderListVos, exportFields, "车险出单-订单管理-动态导出-" + Instant.now());
+        return exportBaseService.upLoadFileDynamic(OrderListVo.class, records, exportFields, "车险出单-订单管理-动态导出-" + Instant.now());
     }
 
 

+ 6 - 0
tenant/insurance/quotation-summary/src/main/resources/mapper/InsOrdersMapper.xml

@@ -952,6 +952,12 @@
             <if test="insOrdersParam.parentId != null and insOrdersParam.parentId != ''">
                 AND io.parent_id = #{insOrdersParam.parentId}
             </if>
+            <if test="insOrdersParam.parentIds != null and insOrdersParam.parentIds.size() > 0">
+                AND io.parent_id IN
+                <foreach collection="insOrdersParam.parentIds" item="pid" open="(" separator="," close=")">
+                    #{pid}
+                </foreach>
+            </if>
             <if test="insOrdersParam.licenseNo != null and insOrdersParam.licenseNo != ''">
                 AND ioci.license_no = #{insOrdersParam.licenseNo}
             </if>