Browse Source

Merge remote-tracking branch 'origin/master'

颜琼丽 1 day ago
parent
commit
a324736576
37 changed files with 938 additions and 106 deletions
  1. 4 1
      jd-logistics-auth/src/main/java/com/ruoyi/auth/controller/WxMiniController.java
  2. 19 6
      jd-logistics-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java
  3. 21 7
      jd-logistics-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java
  4. 86 0
      jd-logistics-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/ReportNumberUtils.java
  5. 1 0
      jd-logistics-common/ruoyi-common-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  6. 86 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/AddressBookController.java
  7. 40 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/BannerController.java
  8. 33 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/MonthQRCodeController.java
  9. 56 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/WaybillCostDetailsController.java
  10. 86 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/WaybillOrderController.java
  11. 13 6
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/WxMiniController.java
  12. 5 8
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderFeeCallback.java
  13. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderStatausCallback.java
  14. 8 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizAddressBookController.java
  15. 6 7
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizBannerController.java
  16. 6 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillCostDetailsController.java
  17. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizWaybillOrderController.java
  18. 1 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/RptFinancialMonthSummaryController.java
  19. 89 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/BizWaybillCostDetails.java
  20. 6 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/BizAddressBookMapper.java
  21. 2 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/BizWaybillCostDetailsMapper.java
  22. 6 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/IBizAddressBookService.java
  23. 2 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/IBizWaybillCostDetailsService.java
  24. 19 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/LogisticsOrderService.java
  25. 16 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/LogisticsService.java
  26. 10 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizAddressBookServiceImpl.java
  27. 13 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizWaybillCostDetailsServiceImpl.java
  28. 1 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/BizWaybillOrderServiceImpl.java
  29. 144 8
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/JDLogisticsService.java
  30. 3 1
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/RptFinancialMonthSummaryServiceImpl.java
  31. 15 0
      jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/SFLogisticsService.java
  32. 8 0
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizAddressBookMapper.xml
  33. 75 6
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillCostDetailsMapper.xml
  34. 7 6
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillOrderMapper.xml
  35. 9 5
      jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/RptFinancialMonthSummaryMapper.xml
  36. 27 27
      jd-logistics-ui-v3/src/views/system/dept/index.vue
  37. 13 13
      jd-logistics-ui-v3/src/views/system/user/index.vue

+ 4 - 1
jd-logistics-auth/src/main/java/com/ruoyi/auth/controller/WxMiniController.java

@@ -11,6 +11,9 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+/**
+ * WX-微信小程序登录
+ */
 @RestController
 @RestController
 @RequestMapping("/wxmini")
 @RequestMapping("/wxmini")
 public class WxMiniController {
 public class WxMiniController {
@@ -24,7 +27,7 @@ public class WxMiniController {
     @PostMapping("login")
     @PostMapping("login")
     public R<?> login(@RequestBody LoginBody form) {
     public R<?> login(@RequestBody LoginBody form) {
         // 用户登录
         // 用户登录
-        LoginUser userInfo = sysLoginService.openIdLogin(form.getUsername(), form.getOpenId());
+        LoginUser userInfo = sysLoginService.openIdLogin(form.getJsCode(), form.getCode());
         // 获取登录token
         // 获取登录token
         return R.ok(tokenService.createToken(userInfo));
         return R.ok(tokenService.createToken(userInfo));
     }
     }

+ 19 - 6
jd-logistics-auth/src/main/java/com/ruoyi/auth/form/LoginBody.java

@@ -18,9 +18,14 @@ public class LoginBody
     private String password;
     private String password;
 
 
     /**
     /**
-     * 微信小程序openId
+     * 微信openid获取jscode
      */
      */
-    private String openId;
+    private String jsCode;
+
+    /**
+     * 微信手机号获取code
+     */
+    private String code;
 
 
     public String getUsername()
     public String getUsername()
     {
     {
@@ -42,11 +47,19 @@ public class LoginBody
         this.password = password;
         this.password = password;
     }
     }
 
 
-    public String getOpenId() {
-        return openId;
+    public String getJsCode() {
+        return jsCode;
+    }
+
+    public void setJsCode(String jsCode) {
+        this.jsCode = jsCode;
+    }
+
+    public String getCode() {
+        return code;
     }
     }
 
 
-    public void setOpenId(String openId) {
-        this.openId = openId;
+    public void setCode(String code) {
+        this.code = code;
     }
     }
 }
 }

+ 21 - 7
jd-logistics-auth/src/main/java/com/ruoyi/auth/service/SysLoginService.java

@@ -158,25 +158,36 @@ public class SysLoginService
     /**
     /**
      * 登录
      * 登录
      */
      */
-    public LoginUser openIdLogin(String username, String openId)
+    public LoginUser openIdLogin(String jsCode, String code)
     {
     {
         // 用户名或密码为空 错误
         // 用户名或密码为空 错误
-        if (StringUtils.isAnyBlank(username, openId))
+        if (StringUtils.isAnyBlank(jsCode, code))
         {
         {
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "用户/openId必须填写");
-            throw new ServiceException("用户/openId必须填写");
+            recordLogService.recordLogininfor("", Constants.LOGIN_FAIL, "微信小程序登录失败");
+            throw new ServiceException("登录失败,请联系管理员");
         }
         }
         // IP黑名单校验
         // IP黑名单校验
         String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
         String blackStr = Convert.toStr(redisService.getCacheObject(CacheConstants.SYS_LOGIN_BLACKIPLIST));
         if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
         if (IpUtils.isMatchedIp(blackStr, IpUtils.getIpAddr()))
         {
         {
-            recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单");
+            recordLogService.recordLogininfor("", Constants.LOGIN_FAIL, "很遗憾,访问IP已被列入系统黑名单");
             throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
             throw new ServiceException("很遗憾,访问IP已被列入系统黑名单");
         }
         }
-        // 查询用户信息
+        R<String> openIdData = remoteUserService.getOpenId(jsCode, SecurityConstants.INNER);
+        if (StringUtils.isBlank(openIdData.getData())) {
+            throw new ServiceException("登录失败,请联系管理员");
+        }
+        R<String> phoneNumber = remoteUserService.getPhoneNumber(code, SecurityConstants.INNER);
+        if (StringUtils.isBlank(phoneNumber.getData())) {
+            throw new ServiceException("登录失败,请联系管理员");
+        }
+
         SysUser sysUser = new SysUser();
         SysUser sysUser = new SysUser();
-        sysUser.setUserName(username);
+        String username = phoneNumber.getData();
+        String openId = openIdData.getData();
         sysUser.setOpenId(openId);
         sysUser.setOpenId(openId);
+        sysUser.setUserName(username);
+        // 查询用户信息
         R<LoginUser> userResult = remoteUserService.getUserByOpenId(sysUser, SecurityConstants.INNER);
         R<LoginUser> userResult = remoteUserService.getUserByOpenId(sysUser, SecurityConstants.INNER);
 
 
         if (R.FAIL == userResult.getCode())
         if (R.FAIL == userResult.getCode())
@@ -198,6 +209,9 @@ public class SysLoginService
         }
         }
         recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功");
         recordLogService.recordLogininfor(username, Constants.LOGIN_SUCCESS, "登录成功");
         recordLoginInfo(user.getUserId());
         recordLoginInfo(user.getUserId());
+
         return userInfo;
         return userInfo;
     }
     }
+
+
 }
 }

+ 86 - 0
jd-logistics-common/ruoyi-common-redis/src/main/java/com/ruoyi/common/redis/service/ReportNumberUtils.java

@@ -0,0 +1,86 @@
+package com.ruoyi.common.redis.service;
+
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.data.redis.support.atomic.RedisAtomicLong;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.Objects;
+
+import static org.apache.commons.lang3.StringUtils.leftPad;
+
+@Component
+public class ReportNumberUtils {
+
+    @Resource
+    private RedisTemplate redisTemplate;
+
+    //传入制定的key和prefix
+    public String getSeqNo(String key, String prefix) {
+        return getSeqNoSize(key, prefix, 5);
+    }
+
+    public String getSeqNoSize(String key, String prefix, Integer size) {
+        if (Objects.isNull(size)) {
+            // size 序列号位数
+            size = 5;
+        }
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MILLISECOND, 999);
+        //设置过期时间,这里设置为当天的23:59:59
+        Date expireDate = calendar.getTime();
+        //返回当前redis中的key的最大值
+        Long seq = generate(redisTemplate, key, expireDate);
+        //获取当天的日期,格式为yyyyMMdd
+        String date = new SimpleDateFormat("yyyyMMdd").format(expireDate);
+        //生成八为的序列号,如果seq不够八位,seq前面补0,
+        //如果seq位数超过了八位,那么无需补0直接返回当前的seq
+        String sequence = leftPad(seq.toString(), size, "0");
+        if (prefix == null) {
+            prefix = "";
+        }
+        //拼接业务编号
+        String seqNo = prefix + date + sequence+"100";
+        return seqNo;
+    }
+
+    public String getOrderSeqNo(String key, String prefix, Integer size) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.HOUR_OF_DAY, 23);
+        calendar.set(Calendar.MINUTE, 59);
+        calendar.set(Calendar.SECOND, 59);
+        calendar.set(Calendar.MILLISECOND, 999);
+        //设置过期时间,这里设置为当天的23:59:59
+        Date expireDate = calendar.getTime();
+        //返回当前redis中的key的最大值
+        Long seq = generate(redisTemplate, key, expireDate);
+        //获取当天的日期,格式为yyyyMMdd
+        String date = new SimpleDateFormat("yyyyMMdd").format(expireDate);
+        //生成八为的序列号,如果seq不够八位,seq前面补0,
+        //如果seq位数超过了八位,那么无需补0直接返回当前的seq
+        String sequence = leftPad(seq.toString(), size, "0");
+        if (prefix == null) {
+            prefix = "";
+        }
+        //拼接业务编号
+        String seqNo = prefix + date + sequence;
+        return seqNo;
+    }
+
+    public static long generate(RedisTemplate<?,?> redisTemplate,String key,Date expireTime) {
+        //RedisAtomicLong为原子类,根据传入的key和redis链接工厂创建原子类
+        RedisAtomicLong counter = new RedisAtomicLong(key,redisTemplate.getConnectionFactory());
+        //设置过期时间
+        counter.expireAt(expireTime);
+        //返回redis中key的值,内部实现下面详细说明
+        return counter.incrementAndGet();
+    }
+}
+
+

+ 1 - 0
jd-logistics-common/ruoyi-common-redis/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1,5 +1,6 @@
 com.ruoyi.common.redis.configure.RedisConfig
 com.ruoyi.common.redis.configure.RedisConfig
 com.ruoyi.common.redis.service.RedisService
 com.ruoyi.common.redis.service.RedisService
+com.ruoyi.common.redis.service.ReportNumberUtils
 com.ruoyi.common.redis.service.RedisIdGenerator
 com.ruoyi.common.redis.service.RedisIdGenerator
 com.ruoyi.common.redis.configure.RedisConfigInfo
 com.ruoyi.common.redis.configure.RedisConfigInfo
 
 

+ 86 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/AddressBookController.java

@@ -0,0 +1,86 @@
+package com.ruoyi.front.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.logistics.domain.BizAddressBook;
+import com.ruoyi.logistics.service.IBizAddressBookService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * WX-地址簿管理
+ * 
+ * @author RuiJing
+ * @date 2026-01-29
+ */
+@RestController
+@RequestMapping("/front/book")
+public class AddressBookController extends BaseController
+{
+    @Autowired
+    private IBizAddressBookService bizAddressBookService;
+
+    /**
+     * 查询地址簿管理列表
+     */
+    @GetMapping("/list")
+    public TableDataInfo list(BizAddressBook bizAddressBook)
+    {
+        startPage();
+        List<BizAddressBook> list = bizAddressBookService.selectBizAddressBookList(bizAddressBook);
+        return getDataTable(list);
+    }
+
+    /**
+     * 获取地址簿管理详细信息
+     */
+    @GetMapping(value = "/{addressId}")
+    public AjaxResult getInfo(@PathVariable("addressId") Long addressId)
+    {
+        return success(bizAddressBookService.selectBizAddressBookByAddressId(addressId));
+    }
+
+    /**
+     * 新增地址簿管理
+     */
+    @Log(title = "地址簿管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BizAddressBook bizAddressBook)
+    {
+        return toAjax(bizAddressBookService.insertBizAddressBook(bizAddressBook));
+    }
+
+    /**
+     * 修改地址簿管理
+     */
+    @Log(title = "地址簿管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BizAddressBook bizAddressBook)
+    {
+        return toAjax(bizAddressBookService.updateBizAddressBook(bizAddressBook));
+    }
+
+    /**
+     * 删除地址簿管理
+     */
+    @Log(title = "地址簿管理", businessType = BusinessType.DELETE)
+	@DeleteMapping("/{addressIds}")
+    public AjaxResult remove(@PathVariable Long[] addressIds)
+    {
+        return toAjax(bizAddressBookService.deleteBizAddressBookByAddressIds(addressIds));
+    }
+
+    /**
+     * 获取登录用户默认地址
+     */
+    @GetMapping("/getDefaultAddress")
+    public AjaxResult getDefaultAddress() {
+        return success(bizAddressBookService.selectDefaultAddressBook());
+    }
+}

+ 40 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/BannerController.java

@@ -0,0 +1,40 @@
+package com.ruoyi.front.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.logistics.domain.BizBanner;
+import com.ruoyi.logistics.service.IBizBannerService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+
+/**
+ * WX-轮播图
+ * 
+ * @author RuiJing
+ * @date 2026-02-05
+ */
+@RestController
+@RequestMapping("/front/banner")
+public class BannerController extends BaseController
+{
+    @Autowired
+    private IBizBannerService bizBannerService;
+
+    /**
+     * 首页-轮播图列表
+     */
+    @GetMapping("/listByType")
+    public AjaxResult listByType()
+    {
+        BizBanner bizBanner = new BizBanner();
+        bizBanner.setSysType("1");
+        bizBanner.setIsActive("0");
+        List<BizBanner> list = bizBannerService.selectBizBannerList(bizBanner);
+        return success(list);
+    }
+}

+ 33 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/MonthQRCodeController.java

@@ -0,0 +1,33 @@
+package com.ruoyi.front.controller;
+
+import com.alibaba.fastjson.JSONObject;
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.logistics.service.LogisticsOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * WX-月结二维码生成
+ *
+ * @author lydgt
+ * @date 2026-02-04
+ */
+@RestController
+@RequestMapping("/front/qrcode")
+public class MonthQRCodeController {
+
+    @Autowired
+    private LogisticsOrderService logisticsOrderService;
+
+    @RequestMapping
+    public AjaxResult qrcode(@RequestParam("orderType") Integer orderType) {
+        JSONObject jsonObject = logisticsOrderService.getQRCode(orderType);
+        if(!jsonObject.getBooleanValue("success")){
+            throw new ServiceException("获取二维码失败! 原因:"+jsonObject.getString("msg"));
+        }
+        return AjaxResult.success(jsonObject.getString("msg"));
+    }
+}

+ 56 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/WaybillCostDetailsController.java

@@ -0,0 +1,56 @@
+package com.ruoyi.front.controller;
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.logistics.domain.BizWaybillCostDetails;
+import com.ruoyi.logistics.domain.BizWaybillOrder;
+import com.ruoyi.logistics.service.IBizWaybillCostDetailsService;
+import com.ruoyi.logistics.service.IBizWaybillOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * WX-运单费用明细
+ * 
+ * @author RuiJing
+ * @date 2026-01-29
+ */
+@RestController
+@RequestMapping("/front/costDetails")
+public class WaybillCostDetailsController extends BaseController
+{
+    @Autowired
+    private IBizWaybillCostDetailsService bizWaybillCostDetailsService;
+    @Autowired
+    private IBizWaybillOrderService bizWaybillOrderService;
+    /**
+     * 查询运单明细列表 这个需要返回运单和费用列表
+     */
+    @GetMapping("/list")
+    public AjaxResult list(BizWaybillCostDetails bizWaybillCostDetails)
+    {
+        Map result= new HashMap<>();
+        List<BizWaybillCostDetails> list = bizWaybillCostDetailsService.selectBizWaybillCostDetailsListByWx(bizWaybillCostDetails);
+        BizWaybillOrder orderInfo= bizWaybillOrderService.selectBizWaybillOrderByWaybillId(bizWaybillCostDetails.getWaybillId());
+        result.put("feeList",list);
+        result.put("orderInfo",orderInfo);
+        return AjaxResult.success(result);
+    }
+
+    /**
+     * 获取运单明细详细信息
+     */
+    @GetMapping(value = "/{waybillDetailId}")
+    public AjaxResult getInfo(@PathVariable("waybillDetailId") Long waybillDetailId)
+    {
+        return success(bizWaybillCostDetailsService.selectBizWaybillCostDetailsByWaybillDetailId(waybillDetailId));
+    }
+}

+ 86 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/WaybillOrderController.java

@@ -0,0 +1,86 @@
+package com.ruoyi.front.controller;
+
+import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.logistics.domain.BizWaybillOrder;
+import com.ruoyi.logistics.service.IBizWaybillOrderService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * WX-运单管理
+ *
+ * @author RuiJing
+ * @date 2026-01-29
+ */
+@RestController
+@RequestMapping("/front/order")
+public class WaybillOrderController extends BaseController {
+
+    @Autowired
+    private IBizWaybillOrderService bizWaybillOrderService;
+
+    /**
+     * 查询运单管理列表
+     */
+    @GetMapping("/list")
+
+    public TableDataInfo list(BizWaybillOrder bizWaybillOrder)
+    {
+        startPage();
+        List<BizWaybillOrder> list = bizWaybillOrderService.selectBizWaybillOrderList(bizWaybillOrder);
+        return getDataTable(list);
+    }
+
+    /**
+     * 获取运单管理详细信息
+     */
+    @GetMapping(value = "/{waybillId}")
+    public AjaxResult getInfo(@PathVariable("waybillId") Long waybillId)
+    {
+        return success(bizWaybillOrderService.selectBizWaybillOrderByWaybillId(waybillId));
+    }
+
+    /**
+     * 新增运单管理
+     */
+    @Log(title = "运单管理", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody BizWaybillOrder bizWaybillOrder) {
+        try{
+            return toAjax(bizWaybillOrderService.insertBizWaybillOrder(bizWaybillOrder));
+        }
+        catch(ServiceException e){
+            return AjaxResult.error("下单失败! 原因:"+e.getMessage());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+
+    }
+
+    /**
+     * 取消运单
+     */
+    @Log(title = "运单管理", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody BizWaybillOrder bizWaybillOrder)
+    {
+
+        try{
+            bizWaybillOrderService.canceleBizWaybillOrder(bizWaybillOrder);
+            return AjaxResult.success("运单取消成功!");
+        }
+        catch(ServiceException e){
+            return AjaxResult.error("取消运单失败! 原因:"+e.getMessage());
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+}

+ 13 - 6
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/front/controller/WxMiniController.java

@@ -29,9 +29,9 @@ public class WxMiniController {
 
 
     @InnerAuth
     @InnerAuth
     @GetMapping("/getOpenId")
     @GetMapping("/getOpenId")
-    public String getOpenId(@RequestParam("jsCode") String jsCode) {
+    public R<String> getOpenId(@RequestParam("jsCode") String jsCode) {
         try {
         try {
-            return wxService.getOpenId(jsCode);
+            return R.ok(wxService.getOpenId(jsCode));
         } catch (WxErrorException e) {
         } catch (WxErrorException e) {
             throw new RuntimeException(e);
             throw new RuntimeException(e);
         }
         }
@@ -39,9 +39,9 @@ public class WxMiniController {
 
 
     @InnerAuth
     @InnerAuth
     @GetMapping("/getPhoneNumber")
     @GetMapping("/getPhoneNumber")
-    public String getPhoneNumber(@RequestParam("code") String code) {
+    public R<String>  getPhoneNumber(@RequestParam("code") String code) {
         try {
         try {
-            return wxService.getPhoneNumber(code);
+            return R.ok(wxService.getPhoneNumber(code));
         } catch (WxErrorException e) {
         } catch (WxErrorException e) {
             throw new RuntimeException(e);
             throw new RuntimeException(e);
         }
         }
@@ -51,9 +51,16 @@ public class WxMiniController {
     @PostMapping("/getUserByOpenId")
     @PostMapping("/getUserByOpenId")
     public R<LoginUser> getUserByOpenId(@RequestBody SysUser sysUser) {
     public R<LoginUser> getUserByOpenId(@RequestBody SysUser sysUser) {
         SysUser currentUser = sysUserService.selectUserByOpenId(sysUser);
         SysUser currentUser = sysUserService.selectUserByOpenId(sysUser);
-        if (StringUtils.isNull(sysUser))
+        if (StringUtils.isNull(currentUser))
         {
         {
-            return R.fail("用户名或密码错误");
+            currentUser = sysUserService.selectUserByUserName(sysUser.getUserName());
+            if (StringUtils.isNull(currentUser))
+            {
+                return R.fail("用户不存在");
+            }
+            currentUser.setOpenId(sysUser.getOpenId());
+            // 更新用户openid
+            sysUserService.updateUser(currentUser);
         }
         }
         // 角色集合
         // 角色集合
         Set<String> roles = permissionService.getRolePermission(currentUser);
         Set<String> roles = permissionService.getRolePermission(currentUser);

+ 5 - 8
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderFeeCallback.java

@@ -1,6 +1,6 @@
 package com.ruoyi.logistics.callback;
 package com.ruoyi.logistics.callback;
 
 
-import com.alibaba.fastjson2.JSON;
+import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.logistics.domain.BizFinancialFeeItems;
 import com.ruoyi.logistics.domain.BizFinancialFeeItems;
 import com.ruoyi.logistics.domain.BizWaybillCostDetails;
 import com.ruoyi.logistics.domain.BizWaybillCostDetails;
@@ -13,7 +13,6 @@ import com.ruoyi.system.api.domain.SysDept;
 import com.ruoyi.system.service.ISysDeptService;
 import com.ruoyi.system.service.ISysDeptService;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.MediaType;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
@@ -39,11 +38,9 @@ public class JDPushOrderFeeCallback {
     @Autowired
     @Autowired
     private FeeItemsCacheService feeItemsCacheService;
     private FeeItemsCacheService feeItemsCacheService;
 
 
-    @RequestMapping(value = "/fee", consumes = MediaType.TEXT_PLAIN_VALUE)
-    public AjaxResult fee(@RequestBody String requestBody) {
-        log.info("京东物流运单费用回调,参数:{}", requestBody);
-
-        JDOrderFeeRequestDTO request = JSON.parseObject(requestBody, JDOrderFeeRequestDTO.class);
+    @RequestMapping("/fee")
+    public AjaxResult fee(@RequestBody JDOrderFeeRequestDTO request) {
+        log.info("京东物流运单费用回调,参数:{}", request);
 
 
         // 根据运单号查询订单
         // 根据运单号查询订单
         BizWaybillOrder query = new BizWaybillOrder();
         BizWaybillOrder query = new BizWaybillOrder();
@@ -67,7 +64,7 @@ public class JDPushOrderFeeCallback {
                 costDetail.setFeeItemName(feeItemByExtFeeCode.getFeeItemName());
                 costDetail.setFeeItemName(feeItemByExtFeeCode.getFeeItemName());
                 costDetail.setFeeName(item.getFeeTypeName());
                 costDetail.setFeeName(item.getFeeTypeName());
                 costDetail.setAmount(item.getStandardAmount());
                 costDetail.setAmount(item.getStandardAmount());
-                costDetail.setRateAmount(item.getStandardAmount().multiply(new BigDecimal(sysDept.getRateValue())).setScale(2, BigDecimal.ROUND_HALF_UP));
+                costDetail.setRateAmount(item.getStandardAmount().multiply(new BigDecimal(StringUtils.isNotBlank(sysDept.getRateValue()) ? sysDept.getRateValue() : "1")).setScale(2, BigDecimal.ROUND_HALF_UP));
                 costDetail.setDeptId(bizWaybillOrder.getDeptId());
                 costDetail.setDeptId(bizWaybillOrder.getDeptId());
                 costDetail.setUserId(bizWaybillOrder.getUserId());
                 costDetail.setUserId(bizWaybillOrder.getUserId());
             }
             }

+ 1 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/callback/JDPushOrderStatausCallback.java

@@ -40,7 +40,7 @@ public class JDPushOrderStatausCallback {
         Boolean update = Boolean.FALSE;
         Boolean update = Boolean.FALSE;
         switch (request.getOperationCode()) {
         switch (request.getOperationCode()) {
             case "200001"://揽收
             case "200001"://揽收
-                bizWaybillOrder.setOrderStatus(OrderStatusEnum.ORDER_STATUS_1.getCode());
+                bizWaybillOrder.setOrderStatus(OrderStatusEnum.ORDER_STATUS_2.getCode());
                 bizWaybillOrder.setPickupTime(DateUtils.getNowDate());
                 bizWaybillOrder.setPickupTime(DateUtils.getNowDate());
                 update = Boolean.TRUE;
                 update = Boolean.TRUE;
                 break;
                 break;

+ 8 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizAddressBookController.java

@@ -102,4 +102,12 @@ public class BizAddressBookController extends BaseController
     {
     {
         return toAjax(bizAddressBookService.deleteBizAddressBookByAddressIds(addressIds));
         return toAjax(bizAddressBookService.deleteBizAddressBookByAddressIds(addressIds));
     }
     }
+
+    /**
+     * 获取登录用户默认地址
+     */
+    @GetMapping("/getDefaultAddress")
+    public AjaxResult getDefaultAddress() {
+        return success(bizAddressBookService.selectDefaultAddressBook());
+    }
 }
 }

+ 6 - 7
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/controller/BizBannerController.java

@@ -38,7 +38,7 @@ public class BizBannerController extends BaseController
     /**
     /**
      * 查询轮播图列表
      * 查询轮播图列表
      */
      */
-    @RequiresPermissions("system:banner:list")
+    @RequiresPermissions("logistics:banner:list")
     @GetMapping("/list")
     @GetMapping("/list")
     public TableDataInfo list(BizBanner bizBanner)
     public TableDataInfo list(BizBanner bizBanner)
     {
     {
@@ -50,7 +50,7 @@ public class BizBannerController extends BaseController
     /**
     /**
      * 导出轮播图列表
      * 导出轮播图列表
      */
      */
-    @RequiresPermissions("system:banner:export")
+    @RequiresPermissions("logistics:banner:export")
     @Log(title = "轮播图", businessType = BusinessType.EXPORT)
     @Log(title = "轮播图", businessType = BusinessType.EXPORT)
     @PostMapping("/export")
     @PostMapping("/export")
     public void export(HttpServletResponse response, BizBanner bizBanner)
     public void export(HttpServletResponse response, BizBanner bizBanner)
@@ -63,7 +63,7 @@ public class BizBannerController extends BaseController
     /**
     /**
      * 获取轮播图详细信息
      * 获取轮播图详细信息
      */
      */
-    @RequiresPermissions("system:banner:query")
+    @RequiresPermissions("logistics:banner:query")
     @GetMapping(value = "/{bannerId}")
     @GetMapping(value = "/{bannerId}")
     public AjaxResult getInfo(@PathVariable("bannerId") Long bannerId)
     public AjaxResult getInfo(@PathVariable("bannerId") Long bannerId)
     {
     {
@@ -73,7 +73,7 @@ public class BizBannerController extends BaseController
     /**
     /**
      * 新增轮播图
      * 新增轮播图
      */
      */
-    @RequiresPermissions("system:banner:add")
+    @RequiresPermissions("logistics:banner:add")
     @Log(title = "轮播图", businessType = BusinessType.INSERT)
     @Log(title = "轮播图", businessType = BusinessType.INSERT)
     @PostMapping
     @PostMapping
     public AjaxResult add(@RequestBody BizBanner bizBanner)
     public AjaxResult add(@RequestBody BizBanner bizBanner)
@@ -84,7 +84,7 @@ public class BizBannerController extends BaseController
     /**
     /**
      * 修改轮播图
      * 修改轮播图
      */
      */
-    @RequiresPermissions("system:banner:edit")
+    @RequiresPermissions("logistics:banner:edit")
     @Log(title = "轮播图", businessType = BusinessType.UPDATE)
     @Log(title = "轮播图", businessType = BusinessType.UPDATE)
     @PutMapping
     @PutMapping
     public AjaxResult edit(@RequestBody BizBanner bizBanner)
     public AjaxResult edit(@RequestBody BizBanner bizBanner)
@@ -95,7 +95,7 @@ public class BizBannerController extends BaseController
     /**
     /**
      * 删除轮播图
      * 删除轮播图
      */
      */
-    @RequiresPermissions("system:banner:remove")
+    @RequiresPermissions("logistics:banner:remove")
     @Log(title = "轮播图", businessType = BusinessType.DELETE)
     @Log(title = "轮播图", businessType = BusinessType.DELETE)
 	@DeleteMapping("/{bannerIds}")
 	@DeleteMapping("/{bannerIds}")
     public AjaxResult remove(@PathVariable Long[] bannerIds)
     public AjaxResult remove(@PathVariable Long[] bannerIds)
@@ -107,7 +107,6 @@ public class BizBannerController extends BaseController
     /**
     /**
      * 首页-轮播图列表
      * 首页-轮播图列表
      */
      */
-    @RequiresPermissions("system:banner:list")
     @GetMapping("/listByType")
     @GetMapping("/listByType")
     public AjaxResult listByType()
     public AjaxResult listByType()
     {
     {

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

@@ -23,7 +23,7 @@ import com.ruoyi.common.core.utils.poi.ExcelUtil;
 import com.ruoyi.common.core.web.page.TableDataInfo;
 import com.ruoyi.common.core.web.page.TableDataInfo;
 
 
 /**
 /**
- * PC-运单明细
+ * PC-运单费用明细
  * 
  * 
  * @author RuiJing
  * @author RuiJing
  * @date 2026-01-29
  * @date 2026-01-29
@@ -37,6 +37,9 @@ public class BizWaybillCostDetailsController extends BaseController
 
 
     /**
     /**
      * 查询运单明细列表
      * 查询运单明细列表
+     * 这个在财务月度汇总需传入供应商id以及外部运单号  查询详情列表
+     * 参数:  月份--月度账单中的月份 格式2026.01
+     *        供应商--也叫部门id
      */
      */
     @RequiresPermissions("system:costDetails:list")
     @RequiresPermissions("system:costDetails:list")
     @GetMapping("/list")
     @GetMapping("/list")
@@ -82,6 +85,8 @@ public class BizWaybillCostDetailsController extends BaseController
     }
     }
 
 
     /**
     /**
+     * 这个只有部分人有修改运费明细的权限
+     *
      * 修改运单明细
      * 修改运单明细
      */
      */
     @RequiresPermissions("system:costDetails:edit")
     @RequiresPermissions("system:costDetails:edit")

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

@@ -44,7 +44,7 @@ public class BizWaybillOrderController extends BaseController
      */
      */
     @RequiresPermissions("system:order:list")
     @RequiresPermissions("system:order:list")
     @GetMapping("/list")
     @GetMapping("/list")
-    @DataScope(deptAlias = "bwo", userAlias = "u")
+
     public TableDataInfo list(BizWaybillOrder bizWaybillOrder)
     public TableDataInfo list(BizWaybillOrder bizWaybillOrder)
     {
     {
         startPage();
         startPage();

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

@@ -83,7 +83,7 @@ public class RptFinancialMonthSummaryController extends BaseController
     }
     }
 
 
     /**
     /**
-     * 月度账单汇总生成
+     * 月度账单汇总生成  定时任务定时生成
      */
      */
 
 
     @PostMapping("/creatMontSummary")
     @PostMapping("/creatMontSummary")

+ 89 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/domain/BizWaybillCostDetails.java

@@ -1,6 +1,9 @@
 package com.ruoyi.logistics.domain;
 package com.ruoyi.logistics.domain;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
+import java.util.Date;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
 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;
@@ -59,10 +62,95 @@ public class BizWaybillCostDetails extends BaseEntity
     @Excel(name = "用户id")
     @Excel(name = "用户id")
     private Long userId;
     private Long userId;
 
 
+
+
+
+
+
+    @Excel(name = "订单类型 1-非时效件(京东),2-时效件(顺丰)")
+    private Integer orderType;
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date signTime;
+    /** 寄件地区 */
+    @Excel(name = "寄件地区")
+    private String senderCity;
+    /** 到件地区 */
+    @Excel(name = "到件地区")
+    private String receiverCity;
+    /** 计费重量 */
+    @Excel(name = "计费重量")
+    private BigDecimal goodsWeight;
+    /** 产品类型 */
+    @Excel(name = "产品类型")
+    private String productCode;
+    /** 经手人 */
+    @Excel(name = "经手人")
+    private Long userName;
+
+
+
+
+
+
+
+
     /** 删除标志 (0代表存在 2代表删除) */
     /** 删除标志 (0代表存在 2代表删除) */
     private String delFlag;
     private String delFlag;
 
 
-    public void setWaybillDetailId(Long waybillDetailId) 
+    public void setOrderType(Integer orderType) {
+        this.orderType = orderType;
+    }
+
+    public void setSignTime(Date signTime) {
+        this.signTime = signTime;
+    }
+
+    public void setSenderCity(String senderCity) {
+        this.senderCity = senderCity;
+    }
+
+    public void setReceiverCity(String receiverCity) {
+        this.receiverCity = receiverCity;
+    }
+
+    public void setGoodsWeight(BigDecimal goodsWeight) {
+        this.goodsWeight = goodsWeight;
+    }
+
+    public void setProductCode(String productCode) {
+        this.productCode = productCode;
+    }
+
+    public Integer getOrderType() {
+        return orderType;
+    }
+
+    public Date getSignTime() {
+        return signTime;
+    }
+
+    public String getSenderCity() {
+        return senderCity;
+    }
+
+    public String getReceiverCity() {
+        return receiverCity;
+    }
+
+    public BigDecimal getGoodsWeight() {
+        return goodsWeight;
+    }
+
+    public String getProductCode() {
+        return productCode;
+    }
+
+    public Long getUserName() {
+        return userName;
+    }
+
+    public void setWaybillDetailId(Long waybillDetailId)
     {
     {
         this.waybillDetailId = waybillDetailId;
         this.waybillDetailId = waybillDetailId;
     }
     }

+ 6 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/BizAddressBookMapper.java

@@ -65,4 +65,10 @@ public interface BizAddressBookMapper
      * @return
      * @return
      */
      */
     public int updateBizAddressBookDefault(Long userId);
     public int updateBizAddressBookDefault(Long userId);
+
+    /**
+     * 获取登录用户默认地址
+     * @return
+     */
+    public BizAddressBook selectDefaultAddressBook(BizAddressBook bizAddressBook);
 }
 }

+ 2 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/mapper/BizWaybillCostDetailsMapper.java

@@ -58,4 +58,6 @@ public interface BizWaybillCostDetailsMapper
      * @return 结果
      * @return 结果
      */
      */
     public int deleteBizWaybillCostDetailsByWaybillDetailIds(Long[] waybillDetailIds);
     public int deleteBizWaybillCostDetailsByWaybillDetailIds(Long[] waybillDetailIds);
+
+    List<BizWaybillCostDetails> selectBizWaybillCostDetailsListByWx(BizWaybillCostDetails bizWaybillCostDetails);
 }
 }

+ 6 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/IBizAddressBookService.java

@@ -58,4 +58,10 @@ public interface IBizAddressBookService
      * @return 结果
      * @return 结果
      */
      */
     public int deleteBizAddressBookByAddressId(Long addressId);
     public int deleteBizAddressBookByAddressId(Long addressId);
+
+    /**
+     * 查询默认地址
+     * @return
+     */
+    public BizAddressBook selectDefaultAddressBook();
 }
 }

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

@@ -58,4 +58,6 @@ public interface IBizWaybillCostDetailsService
      * @return 结果
      * @return 结果
      */
      */
     public int deleteBizWaybillCostDetailsByWaybillDetailId(Long waybillDetailId);
     public int deleteBizWaybillCostDetailsByWaybillDetailId(Long waybillDetailId);
+
+    List<BizWaybillCostDetails> selectBizWaybillCostDetailsListByWx(BizWaybillCostDetails bizWaybillCostDetails);
 }
 }

+ 19 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/LogisticsOrderService.java

@@ -39,6 +39,25 @@ public class LogisticsOrderService {
         return cancelOrder;
         return cancelOrder;
     }
     }
 
 
+    public JSONObject getQRCode(Integer orderType) {
+        // 根据订单中的物流公司类型获取对应服务
+        LogisticsService logisticsService = logisticsFactory.getLogisticsService(orderType==1?"JD":"SF");
+        JSONObject qrCode = logisticsService.getMonthQRCode();
+        return qrCode;
+    }
 
 
+    public JSONObject queryOrderByQRCode(Integer orderType, String qrCode) {
+        // 根据订单中的物流公司类型获取对应服务
+        LogisticsService logisticsService = logisticsFactory.getLogisticsService(orderType==1?"JD":"SF");
+        JSONObject jsonObject = logisticsService.queryOrderByQRCode(qrCode);
+        return jsonObject;
+    }
+
+    public JSONObject queryOrderDetailByWaybillCode(Integer orderType, String waybillCode) {
+        // 根据订单中的物流公司类型获取对应服务
+        LogisticsService logisticsService = logisticsFactory.getLogisticsService(orderType==1?"JD":"SF");
+        JSONObject jsonObject = logisticsService.queryOrderDetailByWaybillCode(waybillCode);
+        return jsonObject;
+    }
 }
 }
 
 

+ 16 - 0
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/LogisticsService.java

@@ -41,4 +41,20 @@ public interface LogisticsService {
      * @date 2026-02-02
      * @date 2026-02-02
      */
      */
     JSONObject modifyOrder(BizWaybillOrder bizWaybillOrder) ;
     JSONObject modifyOrder(BizWaybillOrder bizWaybillOrder) ;
+
+    /**
+     * 获取月结二维码
+     */
+    JSONObject getMonthQRCode();
+
+    /**
+     * 根据二维码查询
+     */
+    JSONObject queryOrderByQRCode(String qrCode);
+
+    /**
+     * 根据运单号查询订单详情
+     */
+    JSONObject queryOrderDetailByWaybillCode(String waybillCode);
+
 }
 }

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

@@ -108,4 +108,14 @@ public class BizAddressBookServiceImpl implements IBizAddressBookService
     {
     {
         return bizAddressBookMapper.deleteBizAddressBookByAddressId(addressId);
         return bizAddressBookMapper.deleteBizAddressBookByAddressId(addressId);
     }
     }
+
+    @Override
+    public BizAddressBook selectDefaultAddressBook() {
+
+        BizAddressBook query = new BizAddressBook();
+        query.setUserId(SecurityUtils.getLoginUser().getUserid());
+        query.setDefaultFlag("1");
+        BizAddressBook bizAddressBook = bizAddressBookMapper.selectDefaultAddressBook(query);
+        return bizAddressBook;
+    }
 }
 }

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

@@ -1,7 +1,9 @@
 package com.ruoyi.logistics.service.impl;
 package com.ruoyi.logistics.service.impl;
 
 
+import java.util.Collections;
 import java.util.List;
 import java.util.List;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.datascope.annotation.DataScope;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 import com.ruoyi.logistics.mapper.BizWaybillCostDetailsMapper;
 import com.ruoyi.logistics.mapper.BizWaybillCostDetailsMapper;
@@ -39,6 +41,7 @@ public class BizWaybillCostDetailsServiceImpl implements IBizWaybillCostDetailsS
      * @return 运单明细
      * @return 运单明细
      */
      */
     @Override
     @Override
+    @DataScope(deptAlias = "d")
     public List<BizWaybillCostDetails> selectBizWaybillCostDetailsList(BizWaybillCostDetails bizWaybillCostDetails)
     public List<BizWaybillCostDetails> selectBizWaybillCostDetailsList(BizWaybillCostDetails bizWaybillCostDetails)
     {
     {
         return bizWaybillCostDetailsMapper.selectBizWaybillCostDetailsList(bizWaybillCostDetails);
         return bizWaybillCostDetailsMapper.selectBizWaybillCostDetailsList(bizWaybillCostDetails);
@@ -66,6 +69,11 @@ public class BizWaybillCostDetailsServiceImpl implements IBizWaybillCostDetailsS
     @Override
     @Override
     public int updateBizWaybillCostDetails(BizWaybillCostDetails bizWaybillCostDetails)
     public int updateBizWaybillCostDetails(BizWaybillCostDetails bizWaybillCostDetails)
     {
     {
+        //修改运费明细后  会向修改记录插入数据
+
+
+
+
         bizWaybillCostDetails.setUpdateTime(DateUtils.getNowDate());
         bizWaybillCostDetails.setUpdateTime(DateUtils.getNowDate());
         return bizWaybillCostDetailsMapper.updateBizWaybillCostDetails(bizWaybillCostDetails);
         return bizWaybillCostDetailsMapper.updateBizWaybillCostDetails(bizWaybillCostDetails);
     }
     }
@@ -93,4 +101,9 @@ public class BizWaybillCostDetailsServiceImpl implements IBizWaybillCostDetailsS
     {
     {
         return bizWaybillCostDetailsMapper.deleteBizWaybillCostDetailsByWaybillDetailId(waybillDetailId);
         return bizWaybillCostDetailsMapper.deleteBizWaybillCostDetailsByWaybillDetailId(waybillDetailId);
     }
     }
+
+    @Override
+    public List<BizWaybillCostDetails> selectBizWaybillCostDetailsListByWx(BizWaybillCostDetails bizWaybillCostDetails) {
+        return bizWaybillCostDetailsMapper.selectBizWaybillCostDetailsListByWx(bizWaybillCostDetails);
+    }
 }
 }

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

@@ -57,6 +57,7 @@ public class BizWaybillOrderServiceImpl implements IBizWaybillOrderService
      * @param bizWaybillOrder 运单管理
      * @param bizWaybillOrder 运单管理
      * @return 运单管理
      * @return 运单管理
      */
      */
+    @DataScope(deptAlias = "d", userAlias = "u")
     @Override
     @Override
     public List<BizWaybillOrder> selectBizWaybillOrderList(BizWaybillOrder bizWaybillOrder)
     public List<BizWaybillOrder> selectBizWaybillOrderList(BizWaybillOrder bizWaybillOrder)
     {
     {

+ 144 - 8
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/JDLogisticsService.java

@@ -4,21 +4,18 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.lop.open.api.sdk.DefaultDomainApiClient;
 import com.lop.open.api.sdk.DefaultDomainApiClient;
 import com.lop.open.api.sdk.LopException;
 import com.lop.open.api.sdk.LopException;
+import com.lop.open.api.sdk.domain.ECAP.CommonBusinessApi.commonGetQRCodeV1.CommonBusinessGetQRCodeRequest;
 import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCheckPreCreateOrderV1.CommonCreateOrderRequest;
 import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCheckPreCreateOrderV1.CommonCreateOrderRequest;
 import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCheckPreCreateOrderV1.CommonProductInfo;
 import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCheckPreCreateOrderV1.CommonProductInfo;
 import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCheckPreCreateOrderV1.Contact;
 import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCheckPreCreateOrderV1.Contact;
 import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCargoInfo;
 import com.lop.open.api.sdk.domain.ECAP.CommonCreateOrderApi.commonCreateOrderV1.CommonCargoInfo;
 import com.lop.open.api.sdk.domain.ECAP.CommonModifyCancelOrderApi.commonCancelOrderV1.CommonOrderCancelRequest;
 import com.lop.open.api.sdk.domain.ECAP.CommonModifyCancelOrderApi.commonCancelOrderV1.CommonOrderCancelRequest;
+import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderByMonthSettleQRV1.CommonMonthSettleQRQueryRequest;
+import com.lop.open.api.sdk.domain.ECAP.CommonQueryOrderApi.commonGetOrderInfoV1.CommonOrderInfoRequest;
 import com.lop.open.api.sdk.plugin.LopPlugin;
 import com.lop.open.api.sdk.plugin.LopPlugin;
 import com.lop.open.api.sdk.plugin.factory.OAuth2PluginFactory;
 import com.lop.open.api.sdk.plugin.factory.OAuth2PluginFactory;
-import com.lop.open.api.sdk.request.ECAP.EcapV1OrdersCancelLopRequest;
-import com.lop.open.api.sdk.request.ECAP.EcapV1OrdersCreateLopRequest;
-import com.lop.open.api.sdk.request.ECAP.EcapV1OrdersModifyLopRequest;
-import com.lop.open.api.sdk.request.ECAP.EcapV1OrdersPrecheckLopRequest;
-import com.lop.open.api.sdk.response.ECAP.EcapV1OrdersCancelLopResponse;
-import com.lop.open.api.sdk.response.ECAP.EcapV1OrdersCreateLopResponse;
-import com.lop.open.api.sdk.response.ECAP.EcapV1OrdersModifyLopResponse;
-import com.lop.open.api.sdk.response.ECAP.EcapV1OrdersPrecheckLopResponse;
+import com.lop.open.api.sdk.request.ECAP.*;
+import com.lop.open.api.sdk.response.ECAP.*;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.core.utils.StringUtils;
@@ -499,4 +496,143 @@ public class JDLogisticsService  implements LogisticsService {
         
         
         return productAttrs;
         return productAttrs;
     }
     }
+
+    @Override
+    public JSONObject getMonthQRCode() {
+        JSONObject result = new JSONObject();
+        try {
+            //设置接口域名(有的对接方案同时支持生产和沙箱环境,有的仅支持生产,具体以对接方案中的【API文档-请求地址】为准),生产域名:https://api.jdl.com 预发环境域名:https://uat-api.jdl.com
+            //DefaultDomainApiClient对象全局只需要创建一次
+            DefaultDomainApiClient client = new DefaultDomainApiClient(jdExpressConfig.getServerUrl(),500,15000);
+
+            //入参对象
+            EcapV1BusinessQrcodeLopRequest request = new EcapV1BusinessQrcodeLopRequest();
+
+            //取消订单入参对象
+            CommonBusinessGetQRCodeRequest requestDTO = new CommonBusinessGetQRCodeRequest();
+            requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+
+            request.setRequest(requestDTO);
+
+            //设置插件,必须的操作,不同类型的应用入参不同,请看入参注释,公共参数按顺序分别为AppKey、AppSecret、AccessToken
+            //使用开放平台ISV/自研商家应用调用接口
+            LopPlugin lopPlugin = OAuth2PluginFactory.produceLopPlugin(jdExpressConfig.getAppKey(), jdExpressConfig.getAppSecret(), jdExpressConfig.getAccessToken());
+            request.addLopPlugin(lopPlugin);
+
+            log.info("京东开放平台获取商家二维码接口,请求参数:{}", JSON.toJSONString(request));
+            EcapV1BusinessQrcodeLopResponse response = client.execute(request);
+            log.info("京东开放平台获取商家二维码接口,响应结果:{}", JSON.toJSONString(response));
+
+            if (response.getCode().equals("0")) {
+                if (response.getResponse().getCode() == 0) {
+                    result.put("success", true);
+                    result.put("msg", response.getResponse().getData().getVerifyMessage());
+                } else {
+                    result.put("success", false);
+                    result.put("msg", "京东开放平台获取商家二维码!失败原因:" + response.getResponse().getMsg());
+                }
+            } else {
+                result.put("success", false);
+                result.put("msg", "京东开放平台获取商家二维码!失败原因:" + response.getMsg());
+            }
+        } catch (LopException e) {
+            log.error("京东开放平台获取商家二维码接口异常:{}", e);
+            throw new ServiceException("京东开放平台获取商家二维码接口异常");
+        }
+        return result;
+    }
+
+    @Override
+    public JSONObject queryOrderByQRCode(String qrCode) {
+        log.info("京东开放平台根据二维码查询运单接口,入参:{}", qrCode);
+        JSONObject result = new JSONObject();
+        try {
+            //设置接口域名(有的对接方案同时支持生产和沙箱环境,有的仅支持生产,具体以对接方案中的【API文档-请求地址】为准),生产域名:https://api.jdl.com 预发环境域名:https://uat-api.jdl.com
+            //DefaultDomainApiClient对象全局只需要创建一次
+            DefaultDomainApiClient client = new DefaultDomainApiClient(jdExpressConfig.getServerUrl(),500,15000);
+
+            //入参对象
+            CommonqueryorderapiCommongetorderbymonthsettleqrv1LopRequest request = new CommonqueryorderapiCommongetorderbymonthsettleqrv1LopRequest();
+
+            CommonMonthSettleQRQueryRequest requestDTO = new CommonMonthSettleQRQueryRequest();
+            requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+            requestDTO.setMonthSettleQR(qrCode);
+            requestDTO.setAppKey(jdExpressConfig.getAppKey());
+
+            request.setRequest(requestDTO);
+
+            //设置插件,必须的操作,不同类型的应用入参不同,请看入参注释,公共参数按顺序分别为AppKey、AppSecret、AccessToken
+            //使用开放平台ISV/自研商家应用调用接口
+            LopPlugin lopPlugin = OAuth2PluginFactory.produceLopPlugin(jdExpressConfig.getAppKey(), jdExpressConfig.getAppSecret(), jdExpressConfig.getAccessToken());
+            request.addLopPlugin(lopPlugin);
+
+            log.info("京东开放平台根据二维码查询运单接口,请求参数:{}", JSON.toJSONString(request));
+            CommonqueryorderapiCommongetorderbymonthsettleqrv1LopResponse response = client.execute(request);
+            log.info("京东开放平台根据二维码查询运单接口,响应结果:{}", JSON.toJSONString(response));
+
+            if (response.getCode().equals("0")) {
+                if (response.getResponse().getCode() == 0) {
+                    result.put("success", true);
+                    result.put("msg", response.getResponse().getData().getWaybillQRVerifyInfoList());
+                } else {
+                    result.put("success", false);
+                    result.put("msg", "京东开放平台根据二维码查询运单接口!失败原因:" + response.getResponse().getMsg());
+                }
+            } else {
+                result.put("success", false);
+                result.put("msg", "京东开放平台根据二维码查询运单接口!失败原因:" + response.getMsg());
+            }
+        } catch (LopException e) {
+            log.error("京东开放平台根据二维码查询运单接口异常:{}", e);
+            throw new ServiceException("京东开放平台根据二维码查询运单接口异常");
+        }
+        return result;
+    }
+
+    @Override
+    public JSONObject queryOrderDetailByWaybillCode(String waybillCode) {
+        log.info("京东开放平台根据运单号查询运单详情接口,入参:{}", waybillCode);
+        JSONObject result = new JSONObject();
+        try {
+            //设置接口域名(有的对接方案同时支持生产和沙箱环境,有的仅支持生产,具体以对接方案中的【API文档-请求地址】为准),生产域名:https://api.jdl.com 预发环境域名:https://uat-api.jdl.com
+            //DefaultDomainApiClient对象全局只需要创建一次
+            DefaultDomainApiClient client = new DefaultDomainApiClient(jdExpressConfig.getServerUrl(),500,15000);
+
+            //入参对象
+            EcapV1OrdersDetailsQueryLopRequest request = new EcapV1OrdersDetailsQueryLopRequest();
+
+            CommonOrderInfoRequest requestDTO = new CommonOrderInfoRequest();
+            requestDTO.setCustomerCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_CUSTOMERCODE));
+            requestDTO.setBusinessUnitCode(sysConfigService.selectConfigByKey(SysConfigConstants.JD_LOGISTICS_BUSINESSUNITCODE));
+            requestDTO.setWaybillCode(waybillCode);
+
+            request.setRequest(requestDTO);
+
+            //设置插件,必须的操作,不同类型的应用入参不同,请看入参注释,公共参数按顺序分别为AppKey、AppSecret、AccessToken
+            //使用开放平台ISV/自研商家应用调用接口
+            LopPlugin lopPlugin = OAuth2PluginFactory.produceLopPlugin(jdExpressConfig.getAppKey(), jdExpressConfig.getAppSecret(), jdExpressConfig.getAccessToken());
+            request.addLopPlugin(lopPlugin);
+
+            log.info("京东开放平台根据运单号查询运单详情接口,请求参数:{}", JSON.toJSONString(request));
+            EcapV1OrdersDetailsQueryLopResponse response = client.execute(request);
+            log.info("京东开放平台根据运单号查询运单详情接口,响应结果:{}", JSON.toJSONString(response));
+
+            if (response.getCode().equals("0")) {
+                if (response.getResult().getCode() == 0) {
+                    result.put("success", true);
+                    result.put("msg", response.getResult().getData());
+                } else {
+                    result.put("success", false);
+                    result.put("msg", "京东开放平台根据运单号查询运单详情接口!失败原因:" + response.getResult().getMsg());
+                }
+            } else {
+                result.put("success", false);
+                result.put("msg", "京东开放平台根据运单号查询运单详情接口!失败原因:" + response.getMsg());
+            }
+        } catch (LopException e) {
+            log.error("京东开放平台根据运单号查询运单详情接口:{}", e);
+            throw new ServiceException("京东开放平台获取商家二维码接口异常");
+        }
+        return result;
+    }
 }
 }

+ 3 - 1
jd-logistics-modules/jd-logistics-system/src/main/java/com/ruoyi/logistics/service/impl/RptFinancialMonthSummaryServiceImpl.java

@@ -7,6 +7,7 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.datascope.annotation.DataScope;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.NotNull;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
@@ -45,6 +46,7 @@ public class RptFinancialMonthSummaryServiceImpl implements IRptFinancialMonthSu
      * @return 财务月度汇总
      * @return 财务月度汇总
      */
      */
     @Override
     @Override
+    @DataScope(deptAlias = "d")
     public List<RptFinancialMonthSummary> selectRptFinancialMonthSummaryList(RptFinancialMonthSummary rptFinancialMonthSummary)
     public List<RptFinancialMonthSummary> selectRptFinancialMonthSummaryList(RptFinancialMonthSummary rptFinancialMonthSummary)
     {
     {
         return rptFinancialMonthSummaryMapper.selectRptFinancialMonthSummaryList(rptFinancialMonthSummary);
         return rptFinancialMonthSummaryMapper.selectRptFinancialMonthSummaryList(rptFinancialMonthSummary);
@@ -121,8 +123,8 @@ public class RptFinancialMonthSummaryServiceImpl implements IRptFinancialMonthSu
         // 格式化上个月日期为字符串
         // 格式化上个月日期为字符串
         String formattedDate = lastMonth.format(formatter);
         String formattedDate = lastMonth.format(formatter);
         //按照传值条件查询统计账单情况
         //按照传值条件查询统计账单情况
-
         param.put("monthCode",formattedDate);
         param.put("monthCode",formattedDate);
+        param.put("deptId",null);
         List<Map<String,Object>> monthSummaryList=rptFinancialMonthSummaryMapper.selectMonthSummaryList(param);
         List<Map<String,Object>> monthSummaryList=rptFinancialMonthSummaryMapper.selectMonthSummaryList(param);
         return rptFinancialMonthSummaryMapper.insertBachRptFinancialMonthSummary(monthSummaryList);
         return rptFinancialMonthSummaryMapper.insertBachRptFinancialMonthSummary(monthSummaryList);
     }
     }

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

@@ -339,4 +339,19 @@ public class SFLogisticsService implements LogisticsService {
         String result= sfExpressHttpUtil.sendRequest(serviceCode,msgData.toJSONString());
         String result= sfExpressHttpUtil.sendRequest(serviceCode,msgData.toJSONString());
         return AjaxResult.success(result);
         return AjaxResult.success(result);
     }*/
     }*/
+
+    @Override
+    public JSONObject getMonthQRCode() {
+        return null;
+    }
+
+    @Override
+    public JSONObject queryOrderByQRCode(String qrCode) {
+        return null;
+    }
+
+    @Override
+    public JSONObject queryOrderDetailByWaybillCode(String waybillCode) {
+        return null;
+    }
 }
 }

+ 8 - 0
jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizAddressBookMapper.xml

@@ -130,4 +130,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateBizAddressBookDefault" parameterType="Long">
     <update id="updateBizAddressBookDefault" parameterType="Long">
         update biz_address_book set default_flag = '0' where user_id = #{userId} and default_flag = 1
         update biz_address_book set default_flag = '0' where user_id = #{userId} and default_flag = 1
     </update>
     </update>
+
+    <select id="selectDefaultAddressBook" parameterType="com.ruoyi.logistics.domain.BizAddressBook" resultMap="BizAddressBookResult">
+        <include refid="selectBizAddressBookVo"/>
+        <where>
+            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="defaultFlag != null "> and default_flag = #{defaultFlag}</if>
+        </where>
+    </select>
 </mapper>
 </mapper>

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

@@ -22,16 +22,65 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="delFlag"    column="del_flag"    />
         <result property="delFlag"    column="del_flag"    />
         <result property="createBy"    column="create_by"    />
         <result property="createBy"    column="create_by"    />
         <result property="updateBy"    column="update_by"    />
         <result property="updateBy"    column="update_by"    />
+
+
+        <result property="orderType"    column="order_type"    />
+        <result property="senderCity"    column="sender_city"    />
+        <result property="receiverCity"    column="receiver_city"    />
+        <result property="signTime"    column="sign_time"    />
+        <result property="goodsWeight"    column="goods_weight"    />
+        <result property="productCode"    column="product_code"    />
+        <result property="userName"    column="user_name"    />
+
+
+
+
+
     </resultMap>
     </resultMap>
 
 
     <sql id="selectBizWaybillCostDetailsVo">
     <sql id="selectBizWaybillCostDetailsVo">
-        select waybill_detail_id, waybill_id, external_waybill_no, fee_item_code, fee_item_name, fee_name, amount, rate_amount, adjust_amount, remark, create_time, update_time, dept_id, user_id, del_flag, create_by, update_by from biz_waybill_cost_details
-    </sql>
+        SELECT
+            a.waybill_detail_id,
+            b.sign_time,
+            b.external_waybill_no,
+            b.sender_city,
+            b.receiver_city,
+            b.goods_weight,
+            b.order_type,
+            b.product_code,
+            u.nick_name,
+            a.waybill_id,
+            a.external_waybill_no,
+            a.fee_item_code,
+            a.fee_item_name,
+            ifnull( a.adjust_amount, a.rate_amount ) rate_amount,
+            a.adjust_amount,
+            a.remark,
+            a.create_time,
+            a.update_time,
+            a.dept_id,
+            a.del_flag,
+            a.create_by,
+            a.update_by
+        FROM
+            biz_waybill_cost_details a
+                LEFT JOIN biz_waybill_order b ON a.waybill_id = b.waybill_id
+                LEFT JOIN sys_user u ON b.user_id = u.user_id
+                LEFT JOIN sys_dept d ON a.dept_id = d.dept_id
+                </sql>
 
 
     <select id="selectBizWaybillCostDetailsList" parameterType="com.ruoyi.logistics.domain.BizWaybillCostDetails" resultMap="BizWaybillCostDetailsResult">
     <select id="selectBizWaybillCostDetailsList" parameterType="com.ruoyi.logistics.domain.BizWaybillCostDetails" resultMap="BizWaybillCostDetailsResult">
         <include refid="selectBizWaybillCostDetailsVo"/>
         <include refid="selectBizWaybillCostDetailsVo"/>
-        <where>  
-            <if test="waybillId != null "> and waybill_id = #{waybillId}</if>
+        <where>
+            b.order_status = 6
+            <if test="monthCode != null "> AND DATE_FORMAT( b.sign_time, '%Y.%m' ) = #{monthCode}</if>
+            <if test="deptId != null "> AND a.dept_id = #{deptId}</if>
+
+
+            <!-- 数据范围过滤 -->
+            ${params.dataScope}
+
+           <!-- <if test="waybillId != null "> and waybill_id = #{waybillId}</if>
             <if test="externalWaybillNo != null  and externalWaybillNo != ''"> and external_waybill_no = #{externalWaybillNo}</if>
             <if test="externalWaybillNo != null  and externalWaybillNo != ''"> and external_waybill_no = #{externalWaybillNo}</if>
             <if test="feeItemCode != null  and feeItemCode != ''"> and fee_item_code = #{feeItemCode}</if>
             <if test="feeItemCode != null  and feeItemCode != ''"> and fee_item_code = #{feeItemCode}</if>
             <if test="feeItemName != null  and feeItemName != ''"> and fee_item_name like concat('%', #{feeItemName}, '%')</if>
             <if test="feeItemName != null  and feeItemName != ''"> and fee_item_name like concat('%', #{feeItemName}, '%')</if>
@@ -40,13 +89,33 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="rateAmount != null "> and rate_amount = #{rateAmount}</if>
             <if test="rateAmount != null "> and rate_amount = #{rateAmount}</if>
             <if test="adjustAmount != null "> and adjust_amount = #{adjustAmount}</if>
             <if test="adjustAmount != null "> and adjust_amount = #{adjustAmount}</if>
             <if test="deptId != null "> and dept_id = #{deptId}</if>
             <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="userId != null "> and user_id = #{userId}</if>
+            <if test="userId != null "> and user_id = #{userId}</if>-->
         </where>
         </where>
     </select>
     </select>
+
+
+
+    <select id="selectBizWaybillCostDetailsListByWx" parameterType="com.ruoyi.logistics.domain.BizWaybillCostDetails" resultMap="BizWaybillCostDetailsResult">
+        select waybill_detail_id, waybill_id, external_waybill_no, fee_item_code, fee_item_name, fee_name, amount, rate_amount, adjust_amount, remark, create_time, update_time, dept_id, user_id, del_flag, create_by, update_by from biz_waybill_cost_details
+
+    <where>
+
+     <if test="waybillId != null "> and waybill_id = #{waybillId}</if>
+        <!--  <if test="externalWaybillNo != null  and externalWaybillNo != ''"> and external_waybill_no = #{externalWaybillNo}</if>
+         <if test="feeItemCode != null  and feeItemCode != ''"> and fee_item_code = #{feeItemCode}</if>
+         <if test="feeItemName != null  and feeItemName != ''"> and fee_item_name like concat('%', #{feeItemName}, '%')</if>
+         <if test="feeName != null  and feeName != ''"> and fee_name like concat('%', #{feeName}, '%')</if>
+         <if test="amount != null "> and amount = #{amount}</if>
+         <if test="rateAmount != null "> and rate_amount = #{rateAmount}</if>
+         <if test="adjustAmount != null "> and adjust_amount = #{adjustAmount}</if>
+         <if test="deptId != null "> and dept_id = #{deptId}</if>
+         <if test="userId != null "> and user_id = #{userId}</if>-->
+    </where>
+    </select>
     
     
     <select id="selectBizWaybillCostDetailsByWaybillDetailId" parameterType="Long" resultMap="BizWaybillCostDetailsResult">
     <select id="selectBizWaybillCostDetailsByWaybillDetailId" parameterType="Long" resultMap="BizWaybillCostDetailsResult">
         <include refid="selectBizWaybillCostDetailsVo"/>
         <include refid="selectBizWaybillCostDetailsVo"/>
-        where waybill_detail_id = #{waybillDetailId}
+        where a.waybill_detail_id = #{waybillDetailId}
     </select>
     </select>
 
 
     <insert id="insertBizWaybillCostDetails" parameterType="com.ruoyi.logistics.domain.BizWaybillCostDetails" useGeneratedKeys="true" keyProperty="waybillDetailId">
     <insert id="insertBizWaybillCostDetails" parameterType="com.ruoyi.logistics.domain.BizWaybillCostDetails" useGeneratedKeys="true" keyProperty="waybillDetailId">

+ 7 - 6
jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/BizWaybillOrderMapper.xml

@@ -49,11 +49,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
     </resultMap>
 
 
     <sql id="selectBizWaybillOrderVo">
     <sql id="selectBizWaybillOrderVo">
-        select waybill_id, waybill_no, external_waybill_no, order_type, sender_name, sender_phone, sender_province, sender_city, sender_county, sender_address, receiver_name,
-        receiver_phone, receiver_province, receiver_city, receiver_county, receiver_address, goods_name, goods_weight, goods_volume, goods_qty, order_status, pickup_type,
-        send_start_time, send_end_time, pickup_time, delivery_time, sign_time, cancel_reason, parent_waybill_id, invoice_flag, adjust_flag, remark, create_time, update_time,
-        del_flag, create_by, update_by, dept_id, user_id, product_code, added_service
+        select bwo.waybill_id, bwo.waybill_no, bwo.external_waybill_no, bwo.order_type, bwo.sender_name, bwo.sender_phone, bwo.sender_province, bwo.sender_city, bwo.sender_county, bwo.sender_address, bwo.receiver_name,
+               bwo.receiver_phone, bwo.receiver_province, bwo.receiver_city, bwo.receiver_county, bwo.receiver_address, bwo.goods_name, bwo.goods_weight, bwo.goods_volume, bwo.goods_qty, bwo.order_status, bwo.pickup_type,
+               bwo.send_start_time, bwo.send_end_time, bwo.pickup_time, bwo.delivery_time, bwo.sign_time, bwo.cancel_reason, bwo.parent_waybill_id, bwo.invoice_flag, bwo.adjust_flag, bwo.remark, bwo.create_time, bwo.update_time,
+               bwo.del_flag, bwo.create_by, bwo.update_by, bwo.dept_id, bwo.user_id, bwo.product_code, bwo.added_service
         from biz_waybill_order bwo
         from biz_waybill_order bwo
+                 left join sys_user u on bwo.user_id = u.user_id
+                 left join sys_dept d on bwo.dept_id = d.dept_id
     </sql>
     </sql>
 
 
     <select id="selectBizWaybillOrderList" parameterType="com.ruoyi.logistics.domain.BizWaybillOrder" resultMap="BizWaybillOrderResult">
     <select id="selectBizWaybillOrderList" parameterType="com.ruoyi.logistics.domain.BizWaybillOrder" resultMap="BizWaybillOrderResult">
@@ -89,8 +91,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="parentWaybillId != null "> and parent_waybill_id = #{parentWaybillId}</if>
             <if test="parentWaybillId != null "> and parent_waybill_id = #{parentWaybillId}</if>
             <if test="invoiceFlag != null  and invoiceFlag != ''"> and invoice_flag = #{invoiceFlag}</if>
             <if test="invoiceFlag != null  and invoiceFlag != ''"> and invoice_flag = #{invoiceFlag}</if>
             <if test="adjustFlag != null  and adjustFlag != ''"> and adjust_flag = #{adjustFlag}</if>
             <if test="adjustFlag != null  and adjustFlag != ''"> and adjust_flag = #{adjustFlag}</if>
-            <if test="deptId != null "> and dept_id = #{deptId}</if>
-            <if test="userId != null "> and user_id = #{userId}</if>
+
             <!-- 数据范围过滤 -->
             <!-- 数据范围过滤 -->
             ${params.dataScope}
             ${params.dataScope}
         </where>
         </where>

+ 9 - 5
jd-logistics-modules/jd-logistics-system/src/main/resources/mapper/logistics/RptFinancialMonthSummaryMapper.xml

@@ -32,21 +32,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <select id="selectRptFinancialMonthSummaryList" parameterType="com.ruoyi.logistics.domain.RptFinancialMonthSummary" resultMap="RptFinancialMonthSummaryResult">
     <select id="selectRptFinancialMonthSummaryList" parameterType="com.ruoyi.logistics.domain.RptFinancialMonthSummary" resultMap="RptFinancialMonthSummaryResult">
         select a.summary_id, a.summary_month, a.payable_amount, a.transaction_count, a.status, a.create_time,
         select a.summary_id, a.summary_month, a.payable_amount, a.transaction_count, a.status, a.create_time,
         a.update_time, a.remark, a.del_flag, a.create_by, a.update_by, a.dept_id, a.user_id, a.bw_djbh,
         a.update_time, a.remark, a.del_flag, a.create_by, a.update_by, a.dept_id, a.user_id, a.bw_djbh,
-        a.bw_dzfp_pdf_url, a.bw_dzfp_ofd_url, a.bw_dzfp_xml_url,b.dept_name from rpt_financial_month_summary a
-               left join  sys_dept b on  a.dept_id=b.dept_id
+        a.bw_dzfp_pdf_url, a.bw_dzfp_ofd_url, a.bw_dzfp_xml_url,d.dept_name from rpt_financial_month_summary a
+               left join  sys_dept d on  a.dept_id=d.dept_id
         <where>  
         <where>  
             <if test="summaryMonth != null  and summaryMonth != ''"> and a.summary_month = #{summaryMonth}</if>
             <if test="summaryMonth != null  and summaryMonth != ''"> and a.summary_month = #{summaryMonth}</if>
             <if test="payableAmount != null  and payableAmount != ''"> and a.payable_amount = #{payableAmount}</if>
             <if test="payableAmount != null  and payableAmount != ''"> and a.payable_amount = #{payableAmount}</if>
             <if test="transactionCount != null  and transactionCount != ''"> a.and transaction_count = #{transactionCount}</if>
             <if test="transactionCount != null  and transactionCount != ''"> a.and transaction_count = #{transactionCount}</if>
             <if test="status != null  and status != ''"> and a.status = #{status}</if>
             <if test="status != null  and status != ''"> and a.status = #{status}</if>
-            <if test="deptId != null "> and a.dept_id = #{deptId}</if>
             <if test="deptName != null "> and b.dept_name = #{deptName}</if>
             <if test="deptName != null "> and b.dept_name = #{deptName}</if>
-            <if test="userId != null "> and a.user_id = #{userId}</if>
             <if test="bwDjbh != null  and bwDjbh != ''"> and a.bw_djbh = #{bwDjbh}</if>
             <if test="bwDjbh != null  and bwDjbh != ''"> and a.bw_djbh = #{bwDjbh}</if>
             <if test="bwDzfpPdfUrl != null  and bwDzfpPdfUrl != ''"> and a.bw_dzfp_pdf_url = #{bwDzfpPdfUrl}</if>
             <if test="bwDzfpPdfUrl != null  and bwDzfpPdfUrl != ''"> and a.bw_dzfp_pdf_url = #{bwDzfpPdfUrl}</if>
             <if test="bwDzfpOfdUrl != null  and bwDzfpOfdUrl != ''"> and a.bw_dzfp_ofd_url = #{bwDzfpOfdUrl}</if>
             <if test="bwDzfpOfdUrl != null  and bwDzfpOfdUrl != ''"> and a.bw_dzfp_ofd_url = #{bwDzfpOfdUrl}</if>
             <if test="bwDzfpXmlUrl != null  and bwDzfpXmlUrl != ''"> and a.bw_dzfp_xml_url = #{bwDzfpXmlUrl}</if>
             <if test="bwDzfpXmlUrl != null  and bwDzfpXmlUrl != ''"> and a.bw_dzfp_xml_url = #{bwDzfpXmlUrl}</if>
+
+            <!-- 数据范围过滤 -->
+            ${params.dataScope}
+
         </where>
         </where>
+
+
     </select>
     </select>
     
     
     <select id="selectRptFinancialMonthSummaryBySummaryId" parameterType="Long" resultMap="RptFinancialMonthSummaryResult">
     <select id="selectRptFinancialMonthSummaryBySummaryId" parameterType="Long" resultMap="RptFinancialMonthSummaryResult">
@@ -139,7 +143,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             sum(
             sum(
                     ifnull(adjust_amount, rate_amount  )) payable_amount
                     ifnull(adjust_amount, rate_amount  )) payable_amount
         FROM
         FROM
-            ( SELECT * FROM biz_waybill_order WHERE order_status = 6 AND DATE_FORMAT( sign_time, '%Y.%m' )= #{monthCode}  ) a
+            ( SELECT * FROM biz_waybill_order WHERE order_status = 6 AND DATE_FORMAT( sign_time, '%Y.%m' )= #{monthCode}  and  dept_id=#{deptId}  ) a
                 INNER JOIN biz_waybill_cost_details b ON a.external_waybill_no = b.external_waybill_no
                 INNER JOIN biz_waybill_cost_details b ON a.external_waybill_no = b.external_waybill_no
         WHERE
         WHERE
             1 = 1
             1 = 1

+ 27 - 27
jd-logistics-ui-v3/src/views/system/dept/index.vue

@@ -55,20 +55,20 @@
          :default-expand-all="isExpandAll"
          :default-expand-all="isExpandAll"
          :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
          :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
       >
       >
-         <el-table-column prop="deptName" label="部门名称" width="260"></el-table-column>
-         <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>
-         <el-table-column prop="status" label="状态" width="100">
-            <template #default="scope">
-               <dict-tag :options="sys_normal_disable" :value="scope.row.status" />
+         <el-table-column prop="deptName" label="供应商名称" width="180"></el-table-column>
+<!--         <el-table-column prop="orderNum" label="排序" width="200"></el-table-column>-->
+        <el-table-column prop="rateValue" label="费率" width="50"></el-table-column>
+        <el-table-column prop="status" label="状态" width="100">
+           <template #default="scope">
+              <dict-tag :options="sys_normal_disable" :value="scope.row.status" />
             </template>
             </template>
          </el-table-column>
          </el-table-column>
-         <el-table-column prop="invoiceName" label="开票名称" width="150"></el-table-column>
-         <el-table-column prop="invoiceNum" label="税号" width="200"></el-table-column>
-         <el-table-column prop="rateValue" label="费率" width="100"></el-table-column>
-         <el-table-column prop="openBank" label="开户银行" width="200"></el-table-column>
-         <el-table-column prop="bankAccount" label="银行账号" width="200"></el-table-column>
-         <el-table-column prop="companyAddress" label="公司地址" width="250"></el-table-column>
-         <el-table-column label="创建时间" align="center" prop="createTime" width="200">
+        <el-table-column prop="invoiceName" label="开票名称(抬头)" width="120" :show-overflow-tooltip="true"></el-table-column>
+        <el-table-column prop="invoiceNum" label="税号" width="100" :show-overflow-tooltip="true"></el-table-column>
+        <el-table-column prop="bankAccount" label="银行账号" width="100" :show-overflow-tooltip="true"></el-table-column>
+        <el-table-column prop="openBank" label="开户银行" width="100" :show-overflow-tooltip="true"></el-table-column>
+         <el-table-column prop="companyAddress" label="公司地址" width="150" :show-overflow-tooltip="true"></el-table-column>
+         <el-table-column label="创建时间" align="center" prop="createTime" width="180">
             <template #default="scope">
             <template #default="scope">
                <span>{{ parseTime(scope.row.createTime) }}</span>
                <span>{{ parseTime(scope.row.createTime) }}</span>
             </template>
             </template>
@@ -82,32 +82,32 @@
          </el-table-column>
          </el-table-column>
       </el-table>
       </el-table>
 
 
-      <!-- 添加或修改部门对话框 -->
-      <el-dialog :title="title" v-model="open" width="600px" append-to-body>
-         <el-form ref="deptRef" :model="form" :rules="rules" label-width="80px">
+      <!-- 添加或修改供应商对话框 -->
+      <el-dialog :title="title" v-model="open" width="700px" append-to-body>
+         <el-form ref="deptRef" :model="form" :rules="rules" label-width="110px">
             <el-row>
             <el-row>
                <el-col :span="24" v-if="form.parentId !== 0">
                <el-col :span="24" v-if="form.parentId !== 0">
-                  <el-form-item label="上级部门" prop="parentId">
+                  <el-form-item label="上级组织" prop="parentId">
                      <el-tree-select
                      <el-tree-select
                         v-model="form.parentId"
                         v-model="form.parentId"
                         :data="deptOptions"
                         :data="deptOptions"
                         :props="{ value: 'deptId', label: 'deptName', children: 'children' }"
                         :props="{ value: 'deptId', label: 'deptName', children: 'children' }"
                         value-key="deptId"
                         value-key="deptId"
-                        placeholder="选择上级部门"
+                        placeholder="选择上级组织"
                         check-strictly
                         check-strictly
                      />
                      />
                   </el-form-item>
                   </el-form-item>
                </el-col>
                </el-col>
                <el-col :span="12">
                <el-col :span="12">
-                  <el-form-item label="部门名称" prop="deptName">
-                     <el-input v-model="form.deptName" placeholder="请输入部门名称" />
+                  <el-form-item label="供应商名称" prop="deptName">
+                     <el-input v-model="form.deptName" placeholder="请输入供应商名称" />
                   </el-form-item>
                   </el-form-item>
                </el-col>
                </el-col>
-               <el-col :span="12">
+<!--               <el-col :span="12">
                   <el-form-item label="显示排序" prop="orderNum">
                   <el-form-item label="显示排序" prop="orderNum">
                      <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
                      <el-input-number v-model="form.orderNum" controls-position="right" :min="0" />
                   </el-form-item>
                   </el-form-item>
-               </el-col>
+               </el-col>-->
                <el-col :span="12">
                <el-col :span="12">
                   <el-form-item label="负责人" prop="leader">
                   <el-form-item label="负责人" prop="leader">
                      <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" />
                      <el-input v-model="form.leader" placeholder="请输入负责人" maxlength="20" />
@@ -124,7 +124,7 @@
                   </el-form-item>
                   </el-form-item>
                </el-col>
                </el-col>
                <el-col :span="12">
                <el-col :span="12">
-                  <el-form-item label="部门状态">
+                  <el-form-item label="供应商状态">
                      <el-radio-group v-model="form.status">
                      <el-radio-group v-model="form.status">
                         <el-radio
                         <el-radio
                            v-for="dict in sys_normal_disable"
                            v-for="dict in sys_normal_disable"
@@ -135,7 +135,7 @@
                   </el-form-item>
                   </el-form-item>
                </el-col>
                </el-col>
                <el-col :span="24">
                <el-col :span="24">
-                  <el-form-item label="开票名称" prop="invoiceName">
+                  <el-form-item label="开票名称(抬头)" prop="invoiceName">
                      <el-input v-model="form.invoiceName" placeholder="请输入开票名称" />
                      <el-input v-model="form.invoiceName" placeholder="请输入开票名称" />
                   </el-form-item>
                   </el-form-item>
                </el-col>
                </el-col>
@@ -198,8 +198,8 @@ const data = reactive({
     status: undefined
     status: undefined
   },
   },
   rules: {
   rules: {
-    parentId: [{ required: true, message: "上级部门不能为空", trigger: "blur" }],
-    deptName: [{ required: true, message: "部门名称不能为空", trigger: "blur" }],
+    parentId: [{ required: true, message: "上级组织不能为空", trigger: "blur" }],
+    deptName: [{ required: true, message: "供应商名称不能为空", trigger: "blur" }],
     orderNum: [{ required: true, message: "显示排序不能为空", trigger: "blur" }],
     orderNum: [{ required: true, message: "显示排序不能为空", trigger: "blur" }],
     email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
     email: [{ type: "email", message: "请输入正确的邮箱地址", trigger: ["blur", "change"] }],
     phone: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
     phone: [{ pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
@@ -266,7 +266,7 @@ function handleAdd(row) {
     form.value.parentId = row.deptId
     form.value.parentId = row.deptId
   }
   }
   open.value = true
   open.value = true
-  title.value = "添加部门"
+  title.value = "添加供应商"
 }
 }
 
 
 /** 展开/折叠操作 */
 /** 展开/折叠操作 */
@@ -287,7 +287,7 @@ function handleUpdate(row) {
   getDept(row.deptId).then(response => {
   getDept(row.deptId).then(response => {
     form.value = response.data
     form.value = response.data
     open.value = true
     open.value = true
-    title.value = "修改部门"
+    title.value = "修改供应商"
   })
   })
 }
 }
 
 

+ 13 - 13
jd-logistics-ui-v3/src/views/system/user/index.vue

@@ -6,7 +6,7 @@
         <pane size="16">
         <pane size="16">
           <el-col>
           <el-col>
             <div class="head-container">
             <div class="head-container">
-              <el-input v-model="deptName" placeholder="请输入部门名称" clearable prefix-icon="Search" style="margin-bottom: 20px" />
+              <el-input v-model="deptName" placeholder="请输入组织名称" clearable prefix-icon="Search" style="margin-bottom: 20px" />
             </div>
             </div>
             <div class="head-container">
             <div class="head-container">
               <el-tree :data="deptOptions" :props="{ label: 'label', children: 'children' }" :expand-on-click-node="false" :filter-node-method="filterNode" ref="deptTreeRef" node-key="id" highlight-current default-expand-all @node-click="handleNodeClick" />
               <el-tree :data="deptOptions" :props="{ label: 'label', children: 'children' }" :expand-on-click-node="false" :filter-node-method="filterNode" ref="deptTreeRef" node-key="id" highlight-current default-expand-all @node-click="handleNodeClick" />
@@ -47,12 +47,12 @@
               <el-col :span="1.5">
               <el-col :span="1.5">
                 <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:user:remove']">删除</el-button>
                 <el-button type="danger" plain icon="Delete" :disabled="multiple" @click="handleDelete" v-hasPermi="['system:user:remove']">删除</el-button>
               </el-col>
               </el-col>
-              <el-col :span="1.5">
+<!--              <el-col :span="1.5">
                 <el-button type="info" plain icon="Upload" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
                 <el-button type="info" plain icon="Upload" @click="handleImport" v-hasPermi="['system:user:import']">导入</el-button>
               </el-col>
               </el-col>
               <el-col :span="1.5">
               <el-col :span="1.5">
                 <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['system:user:export']">导出</el-button>
                 <el-button type="warning" plain icon="Download" @click="handleExport" v-hasPermi="['system:user:export']">导出</el-button>
-              </el-col>
+              </el-col>-->
               <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
               <right-toolbar v-model:showSearch="showSearch" @queryTable="getList" :columns="columns"></right-toolbar>
             </el-row>
             </el-row>
 
 
@@ -61,8 +61,8 @@
               <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns.userId.visible" />
               <el-table-column label="用户编号" align="center" key="userId" prop="userId" v-if="columns.userId.visible" />
               <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns.userName.visible" :show-overflow-tooltip="true" />
               <el-table-column label="用户名称" align="center" key="userName" prop="userName" v-if="columns.userName.visible" :show-overflow-tooltip="true" />
               <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns.nickName.visible" :show-overflow-tooltip="true" />
               <el-table-column label="用户昵称" align="center" key="nickName" prop="nickName" v-if="columns.nickName.visible" :show-overflow-tooltip="true" />
-              <el-table-column label="部门" align="center" key="deptName" prop="dept.deptName" v-if="columns.deptName.visible" :show-overflow-tooltip="true" />
-              <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns.phonenumber.visible" width="120" />
+              <el-table-column label="组织" align="center" key="deptName" prop="dept.deptName" v-if="columns.deptName.visible" :show-overflow-tooltip="true" />
+<!--              <el-table-column label="手机号码" align="center" key="phonenumber" prop="phonenumber" v-if="columns.phonenumber.visible" width="120" />-->
               <el-table-column label="状态" align="center" key="status" v-if="columns.status.visible">
               <el-table-column label="状态" align="center" key="status" v-if="columns.status.visible">
                 <template #default="scope">
                 <template #default="scope">
                   <el-switch
                   <el-switch
@@ -111,12 +111,12 @@
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
           <el-col :span="12">
           <el-col :span="12">
-            <el-form-item label="归属部门" prop="deptId">
-              <el-tree-select v-model="form.deptId" :data="enabledDeptOptions" :props="{ value: 'id', label: 'label', children: 'children' }" value-key="id" placeholder="请选择归属部门" clearable check-strictly />
+            <el-form-item label="归属组织" prop="deptId">
+              <el-tree-select v-model="form.deptId" :data="enabledDeptOptions" :props="{ value: 'id', label: 'label', children: 'children' }" value-key="id" placeholder="请选择归属组织" clearable check-strictly />
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
         </el-row>
         </el-row>
-        <el-row>
+<!--        <el-row>
           <el-col :span="12">
           <el-col :span="12">
             <el-form-item label="手机号码" prop="phonenumber">
             <el-form-item label="手机号码" prop="phonenumber">
               <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
               <el-input v-model="form.phonenumber" placeholder="请输入手机号码" maxlength="11" />
@@ -127,11 +127,11 @@
               <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
               <el-input v-model="form.email" placeholder="请输入邮箱" maxlength="50" />
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
-        </el-row>
+        </el-row>-->
         <el-row>
         <el-row>
           <el-col :span="12">
           <el-col :span="12">
-            <el-form-item v-if="form.userId == undefined" label="用户名称" prop="userName">
-              <el-input v-model="form.userName" placeholder="请输入用户名称" maxlength="30" />
+            <el-form-item v-if="form.userId == undefined" label="用户账号" prop="userName">
+              <el-input v-model="form.userName" placeholder="请输入用户账号" maxlength="30" />
             </el-form-item>
             </el-form-item>
           </el-col>
           </el-col>
           <el-col :span="12">
           <el-col :span="12">
@@ -259,9 +259,9 @@ const upload = reactive({
 // 列显隐信息
 // 列显隐信息
 const columns = ref({
 const columns = ref({
   userId: { label: '用户编号', visible: true },
   userId: { label: '用户编号', visible: true },
-  userName: { label: '用户名称', visible: true },
+  userName: { label: '用户账号', visible: true },
   nickName: { label: '用户昵称', visible: true },
   nickName: { label: '用户昵称', visible: true },
-  deptName: { label: '部门', visible: true },
+  deptName: { label: '组织', visible: true },
   phonenumber: { label: '手机号码', visible: true },
   phonenumber: { label: '手机号码', visible: true },
   status: { label: '状态', visible: true },
   status: { label: '状态', visible: true },
   createTime: { label: '创建时间', visible: true }
   createTime: { label: '创建时间', visible: true }