zxf 4 дней назад
Родитель
Сommit
8f49dd5f72
14 измененных файлов с 130 добавлено и 11 удалено
  1. 3 0
      jd-logistics-common/ruoyi-common-core/pom.xml
  2. 13 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/annotation/Dict.java
  3. 65 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/annotation/SimpleDictExportUtil.java
  4. 7 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizFinancialAdjustmentRecordController.java
  5. 3 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillCostDetailsController.java
  6. 6 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/RptFinancialMonthSummaryController.java
  7. 2 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/BizFinancialAdjustmentRecord.java
  8. 3 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/RptFinancialMonthSummary.java
  9. 2 2
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/InvoiceServiceImpl.java
  10. 0 3
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/util/SignUtil.java
  11. 12 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java
  12. 2 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java
  13. 10 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
  14. 2 2
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillCostDetailsMapper.xml

+ 3 - 0
jd-logistics-common/ruoyi-common-core/pom.xml

@@ -83,6 +83,8 @@
             <artifactId>jaxb-api</artifactId>
             <artifactId>jaxb-api</artifactId>
         </dependency>
         </dependency>
 
 
+
+
         <!-- Apache Lang3 -->
         <!-- Apache Lang3 -->
         <dependency>
         <dependency>
             <groupId>org.apache.commons</groupId>
             <groupId>org.apache.commons</groupId>
@@ -140,6 +142,7 @@
             <artifactId>ECAP</artifactId>
             <artifactId>ECAP</artifactId>
             <version>6.9</version>
             <version>6.9</version>
         </dependency>
         </dependency>
+
     </dependencies>
     </dependencies>
 
 
 </project>
 </project>

+ 13 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/annotation/Dict.java

@@ -0,0 +1,13 @@
+package com.ruoyi.logistics.annotation;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+@Target(ElementType.FIELD) // 仅作用于字段
+@Retention(RetentionPolicy.RUNTIME) // 运行时可反射获取
+public @interface Dict {
+    // 仅需配置字典类型(如:sys_user_sex、order_status)
+    String value();
+}

+ 65 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/annotation/SimpleDictExportUtil.java

@@ -0,0 +1,65 @@
+package com.ruoyi.logistics.annotation;
+
+import cn.hutool.core.util.ReflectUtil;
+import com.ruoyi.system.service.ISysDictTypeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
+
+import java.lang.reflect.Field;
+import java.util.List;
+
+/**
+ * 极简版字典映射工具
+ * 仅处理导出DTO的字典注解字段
+ */
+@Component // 必须加!让Spring扫描并创建实例,@Autowired才会生效
+public class SimpleDictExportUtil {
+
+  /*  // 1. 非静态变量(静态变量无法直接@Autowired注入)
+    private final RemoteDictService dictFeignClient;
+
+    // 2. 构造器注入(推荐,比@Autowired字段注入更稳定)
+    @Autowired
+    public SimpleDictExportUtil(RemoteDictService dictFeignClient) {
+        this.dictFeignClient = dictFeignClient;
+    }*/
+
+    @Autowired
+    private ISysDictTypeService dictTypeService;
+
+
+    /**
+     * 处理单个对象的字典映射(非静态方法,通过Spring容器调用)
+     */
+    public void handleDict(Object obj) {
+        if (obj == null) return;
+        Field[] fields = ReflectUtil.getFields(obj.getClass());
+        for (Field field : fields) {
+            if (field.isAnnotationPresent(Dict.class)) {
+                Dict dictAnno = field.getAnnotation(Dict.class);
+                String dictType = dictAnno.value();
+
+                try {
+                    field.setAccessible(true);
+                    String dictCode = (String) field.get(obj);
+                    if (ObjectUtils.isEmpty(dictCode)) continue;
+
+                    // 调用Feign客户端获取字典名称(核心)
+                    String dictName = dictTypeService.getDictLabel(dictType, dictCode);
+                    field.set(obj, dictName);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+    }
+
+    /**
+     * 批量处理列表(非静态方法)
+     */
+    public void handleDictList(List<?> list) {
+        if (list == null || list.isEmpty()) return;
+        list.forEach(this::handleDict);
+    }
+}

+ 7 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizFinancialAdjustmentRecordController.java

@@ -2,7 +2,10 @@ package com.ruoyi.logistics.controller;
 
 
 import java.util.List;
 import java.util.List;
 import java.io.IOException;
 import java.io.IOException;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.logistics.annotation.SimpleDictExportUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -34,7 +37,8 @@ public class BizFinancialAdjustmentRecordController extends BaseController
 {
 {
     @Autowired
     @Autowired
     private IBizFinancialAdjustmentRecordService bizFinancialAdjustmentRecordService;
     private IBizFinancialAdjustmentRecordService bizFinancialAdjustmentRecordService;
-
+    @Resource
+    SimpleDictExportUtil simpleDictExportUtil;
     /**
     /**
      * 查询调账流水记录列表
      * 查询调账流水记录列表
      */
      */
@@ -56,6 +60,8 @@ public class BizFinancialAdjustmentRecordController extends BaseController
     public void export(HttpServletResponse response, BizFinancialAdjustmentRecord bizFinancialAdjustmentRecord)
     public void export(HttpServletResponse response, BizFinancialAdjustmentRecord bizFinancialAdjustmentRecord)
     {
     {
         List<BizFinancialAdjustmentRecord> list = bizFinancialAdjustmentRecordService.selectBizFinancialAdjustmentRecordList(bizFinancialAdjustmentRecord);
         List<BizFinancialAdjustmentRecord> list = bizFinancialAdjustmentRecordService.selectBizFinancialAdjustmentRecordList(bizFinancialAdjustmentRecord);
+        simpleDictExportUtil.handleDictList(list);
+
         ExcelUtil<BizFinancialAdjustmentRecord> util = new ExcelUtil<BizFinancialAdjustmentRecord>(BizFinancialAdjustmentRecord.class);
         ExcelUtil<BizFinancialAdjustmentRecord> util = new ExcelUtil<BizFinancialAdjustmentRecord>(BizFinancialAdjustmentRecord.class);
         util.exportExcel(response, list, "调账流水记录数据");
         util.exportExcel(response, list, "调账流水记录数据");
     }
     }

+ 3 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillCostDetailsController.java

@@ -1,7 +1,10 @@
 package com.ruoyi.logistics.controller;
 package com.ruoyi.logistics.controller;
 
 
 import java.util.List;
 import java.util.List;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.logistics.annotation.SimpleDictExportUtil;
 import com.ruoyi.logistics.domain.RptFinancialMonthSummary;
 import com.ruoyi.logistics.domain.RptFinancialMonthSummary;
 import com.ruoyi.logistics.service.IRptFinancialMonthSummaryService;
 import com.ruoyi.logistics.service.IRptFinancialMonthSummaryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -39,7 +42,6 @@ public class BizWaybillCostDetailsController extends BaseController
     private IRptFinancialMonthSummaryService rptFinancialMonthSummaryService;
     private IRptFinancialMonthSummaryService rptFinancialMonthSummaryService;
 
 
 
 
-
     /**
     /**
      * 查询运单明细列表
      * 查询运单明细列表
      * 这个在财务月度汇总需传入供应商id以及外部运单号  查询详情列表
      * 这个在财务月度汇总需传入供应商id以及外部运单号  查询详情列表

+ 6 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/RptFinancialMonthSummaryController.java

@@ -3,7 +3,10 @@ package com.ruoyi.logistics.controller;
 import java.util.List;
 import java.util.List;
 import java.io.IOException;
 import java.io.IOException;
 import java.util.Map;
 import java.util.Map;
+import javax.annotation.Resource;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.logistics.annotation.SimpleDictExportUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -35,7 +38,8 @@ public class RptFinancialMonthSummaryController extends BaseController
 {
 {
     @Autowired
     @Autowired
     private IRptFinancialMonthSummaryService rptFinancialMonthSummaryService;
     private IRptFinancialMonthSummaryService rptFinancialMonthSummaryService;
-
+    @Resource
+    SimpleDictExportUtil simpleDictExportUtil;
     /**
     /**
      * 查询财务月度汇总列表
      * 查询财务月度汇总列表
      */
      */
@@ -57,6 +61,7 @@ public class RptFinancialMonthSummaryController extends BaseController
     public void export(HttpServletResponse response, RptFinancialMonthSummary rptFinancialMonthSummary)
     public void export(HttpServletResponse response, RptFinancialMonthSummary rptFinancialMonthSummary)
     {
     {
         List<RptFinancialMonthSummary> list = rptFinancialMonthSummaryService.selectRptFinancialMonthSummaryList(rptFinancialMonthSummary);
         List<RptFinancialMonthSummary> list = rptFinancialMonthSummaryService.selectRptFinancialMonthSummaryList(rptFinancialMonthSummary);
+        simpleDictExportUtil.handleDictList(list);
         ExcelUtil<RptFinancialMonthSummary> util = new ExcelUtil<RptFinancialMonthSummary>(RptFinancialMonthSummary.class);
         ExcelUtil<RptFinancialMonthSummary> util = new ExcelUtil<RptFinancialMonthSummary>(RptFinancialMonthSummary.class);
         util.exportExcel(response, list, "财务月度汇总数据");
         util.exportExcel(response, list, "财务月度汇总数据");
     }
     }

+ 2 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/BizFinancialAdjustmentRecord.java

@@ -1,5 +1,6 @@
 package com.ruoyi.logistics.domain;
 package com.ruoyi.logistics.domain;
 
 
+import com.ruoyi.logistics.annotation.Dict;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.core.annotation.Excel;
 import com.ruoyi.common.core.annotation.Excel;
@@ -32,6 +33,7 @@ public class BizFinancialAdjustmentRecord extends BaseEntity
 
 
     /** 调账类型 */
     /** 调账类型 */
     @Excel(name = "调账类型")
     @Excel(name = "调账类型")
+    @Dict("adjustment_type")
     private String adjustmentType;
     private String adjustmentType;
 
 
     /** 原金额 */
     /** 原金额 */

+ 3 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/RptFinancialMonthSummary.java

@@ -1,5 +1,6 @@
 package com.ruoyi.logistics.domain;
 package com.ruoyi.logistics.domain;
 
 
+import com.ruoyi.logistics.annotation.Dict;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import org.apache.commons.lang3.builder.ToStringStyle;
 import com.ruoyi.common.core.annotation.Excel;
 import com.ruoyi.common.core.annotation.Excel;
@@ -33,7 +34,8 @@ public class RptFinancialMonthSummary extends BaseEntity
     private String transactionCount;
     private String transactionCount;
 
 
     /** 账单状态 1.待对账 2.已对账 3.待开票 4.已开票 */
     /** 账单状态 1.待对账 2.已对账 3.待开票 4.已开票 */
-    @Excel(name = "账单状态", readConverterExp = "1=待对账,2=已对账(待开票),3=已开票")
+    @Excel(name = "账单状态")
+    @Dict("monthly_report_status")
     private String status;
     private String status;
 
 
     /** 删除标志 */
     /** 删除标志 */

+ 2 - 2
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/InvoiceServiceImpl.java

@@ -72,14 +72,14 @@ public class InvoiceServiceImpl implements InvoiceService {
         JSONObject goodsItem = new JSONObject();
         JSONObject goodsItem = new JSONObject();
         goodsItem.put("djhh", "1"); // 单据行号
         goodsItem.put("djhh", "1"); // 单据行号
         goodsItem.put("fphxz", "0"); // 发票行性质:0=正常行
         goodsItem.put("fphxz", "0"); // 发票行性质:0=正常行
-        goodsItem.put("spmc", "测试商品"); // 商品名称
+        goodsItem.put("spmc", "*经纪代理服务*物流辅助服务代理服务费"); // 商品名称
         goodsItem.put("jldw", "月"); //计量单位
         goodsItem.put("jldw", "月"); //计量单位
         goodsItem.put("spsl", 1.00); // 商品数量
         goodsItem.put("spsl", 1.00); // 商品数量
         goodsItem.put("ssbm", "3040802010100000000"); // 19位税收编码
         goodsItem.put("ssbm", "3040802010100000000"); // 19位税收编码
         goodsItem.put("hsdj", invoiceRequest.getHsje()); // 含税单价
         goodsItem.put("hsdj", invoiceRequest.getHsje()); // 含税单价
         goodsItem.put("hsje", invoiceRequest.getHsje()); // 商品含税金额
         goodsItem.put("hsje", invoiceRequest.getHsje()); // 商品含税金额
         BigDecimal[] result =TaxAmountCalculator.calculateFromTaxIncluded(invoiceRequest.getHsje(), BigDecimal.valueOf(0.06));
         BigDecimal[] result =TaxAmountCalculator.calculateFromTaxIncluded(invoiceRequest.getHsje(), BigDecimal.valueOf(0.06));
-        goodsItem.put("tax", 0.06); // 税率13%
+        goodsItem.put("tax", 0.06); // 税率6%
         goodsItem.put("se", result[1]); // 商品税额
         goodsItem.put("se", result[1]); // 商品税额
         content.put("mxxx", new JSONObject[]{goodsItem});
         content.put("mxxx", new JSONObject[]{goodsItem});
         logger.info("开票参数组装完成  参数{}",content);
         logger.info("开票参数组装完成  参数{}",content);

+ 0 - 3
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/util/SignUtil.java

@@ -74,9 +74,6 @@ public class SignUtil {
             sb.append(SPE5);
             sb.append(SPE5);
             sb.append(sbParam);
             sb.append(sbParam);
         }
         }
-        System.out.println(">>>>>>>>>>>>>>>>>>>>");
-        System.out.println(sb.toString());
-        System.out.println(">>>>>>>>>>>>>>>>>>>>");
         return sb.toString();
         return sb.toString();
     }
     }
     private static String buildResource2(Map<String, String> querys) {
     private static String buildResource2(Map<String, String> querys) {

+ 12 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/system/controller/SysDictTypeController.java

@@ -1,8 +1,10 @@
 package com.ruoyi.system.controller;
 package com.ruoyi.system.controller;
 
 
 import java.util.List;
 import java.util.List;
+import java.util.Map;
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -35,6 +37,7 @@ public class SysDictTypeController extends BaseController
     @Autowired
     @Autowired
     private ISysDictTypeService dictTypeService;
     private ISysDictTypeService dictTypeService;
 
 
+
     @RequiresPermissions("system:dict:list")
     @RequiresPermissions("system:dict:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo list(SysDictType dictType)
     public TableDataInfo list(SysDictType dictType)
@@ -129,4 +132,13 @@ public class SysDictTypeController extends BaseController
         List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
         List<SysDictType> dictTypes = dictTypeService.selectDictTypeAll();
         return success(dictTypes);
         return success(dictTypes);
     }
     }
+
+
+    @GetMapping("/getDictLabel")
+    public String  getDictLabel(String dictType, String dictCode)
+    {
+      return dictTypeService.getDictLabel(dictType,dictCode);
+    }
+
+
 }
 }

+ 2 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java

@@ -95,4 +95,6 @@ public interface ISysDictTypeService
      * @return 结果
      * @return 结果
      */
      */
     public boolean checkDictTypeUnique(SysDictType dictType);
     public boolean checkDictTypeUnique(SysDictType dictType);
+
+    String getDictLabel(String dictType, String dictCode);
 }
 }

+ 10 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java

@@ -6,6 +6,7 @@ import java.util.Map;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 import javax.annotation.PostConstruct;
 import javax.annotation.PostConstruct;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import com.ruoyi.common.core.constant.UserConstants;
 import com.ruoyi.common.core.constant.UserConstants;
@@ -220,4 +221,13 @@ public class SysDictTypeServiceImpl implements ISysDictTypeService
         }
         }
         return UserConstants.UNIQUE;
         return UserConstants.UNIQUE;
     }
     }
+
+
+    @Autowired
+    JdbcTemplate jdbcTemplate;
+    @Override
+    public String getDictLabel(String dictType, String dictCode) {
+        List<Map<String,Object>>  dictList=jdbcTemplate.queryForList(" select dict_label from sys_dict_data  where dict_type=? and dict_value=?",dictType,dictCode);
+        return dictList.get(0).get("dict_label").toString();
+    }
 }
 }

+ 2 - 2
jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillCostDetailsMapper.xml

@@ -75,8 +75,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deptId != null "> AND a.dept_id = #{deptId}</if>
             <if test="deptId != null "> AND a.dept_id = #{deptId}</if>
             <if test="externalWaybillNo != null  and externalWaybillNo != ''"> and a.external_waybill_no = #{externalWaybillNo}</if>
             <if test="externalWaybillNo != null  and externalWaybillNo != ''"> and a.external_waybill_no = #{externalWaybillNo}</if>
 
 
-   <!--         &lt;!&ndash; 数据范围过滤 &ndash;&gt;
-            ${params.dataScope}-->
+
+            ${params.dataScope}
 
 
            <!-- <if test="waybillId != null "> and waybill_id = #{waybillId}</if>
            <!-- <if test="waybillId != null "> and waybill_id = #{waybillId}</if>