Просмотр исходного кода

Merge remote-tracking branch 'origin/master' into master

肖路 1 неделя назад
Родитель
Сommit
2a77245d70
25 измененных файлов с 429 добавлено и 107 удалено
  1. 8 0
      ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/RemoteCustomerContactService.java
  2. 77 0
      ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/domain/vo/RemoteCustomerContactVo.java
  3. 6 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierAddressController.java
  4. 7 2
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierContactController.java
  5. 2 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/CustomerContactBo.java
  6. 1 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/SupplierAddressBo.java
  7. 2 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/CustomerContactVo.java
  8. 26 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/dubbo/RemoteCustomerContactServiceImpl.java
  9. 8 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ICustomerContactService.java
  10. 8 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplierAddressService.java
  11. 5 1
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplierContactService.java
  12. 27 9
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/CustomerContactServiceImpl.java
  13. 62 21
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierAddressServiceImpl.java
  14. 77 30
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierContactServiceImpl.java
  15. 2 0
      ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierInfoServiceImpl.java
  16. 9 1
      ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/OrderMainController.java
  17. 23 14
      ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/OrderReturnController.java
  18. 23 7
      ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/pc/PcOrderController.java
  19. 3 0
      ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/IOrderMainService.java
  20. 7 4
      ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/IOrderReturnService.java
  21. 22 3
      ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderMainServiceImpl.java
  22. 12 5
      ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderReturnServiceImpl.java
  23. 7 5
      ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMainMapper.xml
  24. 0 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteErpDeptServiceImpl.java
  25. 5 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java

+ 8 - 0
ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/RemoteCustomerContactService.java

@@ -0,0 +1,8 @@
+package org.dromara.customer.api;
+
+import org.dromara.customer.api.domain.vo.RemoteCustomerContactVo;
+
+public interface RemoteCustomerContactService {
+
+    RemoteCustomerContactVo selectCustomerContactByCustomerIdAndUserId(Long customerId, Long userId);
+}

+ 77 - 0
ruoyi-api/ruoyi-api-customer/src/main/java/org/dromara/customer/api/domain/vo/RemoteCustomerContactVo.java

@@ -0,0 +1,77 @@
+package org.dromara.customer.api.domain.vo;
+
+import lombok.Data;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+@Data
+public class RemoteCustomerContactVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 联系人ID
+     */
+    private Long id;
+
+    /*联系人编号*/
+    private String contactNo;
+
+    /*系统用户id*/
+    private Long userId;
+
+    /**
+     * 所属客户ID
+     */
+    private Long customerId;
+
+
+    /**
+     * 联系人姓名
+     */
+    private String contactName;
+
+    private String wechat;
+
+    /*自定义登录名*/
+    private String customLoginName;
+
+    /**
+     * 手机号码
+     */
+    private String phone;
+
+    /**
+     * 办公电话
+     */
+    private String officePhone;
+
+    /**
+     * 办公电话2
+     */
+    private String officePhoneTwo;
+
+    /**
+     * 性别
+     */
+    private String gender;
+
+    /**
+     * 采购角色(如:采购经理、财务)
+     */
+    private Long roleId;
+
+    private String roleName;
+
+    private Long deptId;
+
+    private String deptName;
+
+    /**
+     * 是否主联系人:0=是,1=否
+     */
+    private String isPrimary;
+
+}

+ 6 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierAddressController.java

@@ -8,6 +8,7 @@ import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.customer.domain.bo.CustomerShippingAddressBo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -118,4 +119,9 @@ public class SupplierAddressController extends BaseController {
                           @PathVariable("ids") Long[] ids) {
         return toAjax(supplierAddressService.deleteWithValidByIds(List.of(ids), true));
     }
+
+    @PutMapping("/changeDefaultAddress")
+    public R<Void> changeDefaultAddress(@RequestBody SupplierAddressBo bo) {
+        return toAjax(supplierAddressService.changeDefaultAddress(bo));
+    }
 }

+ 7 - 2
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/controller/SupplierContactController.java

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.customer.domain.bo.CustomerShippingAddressBo;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.validation.annotation.Validated;
 import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -57,7 +58,6 @@ public class SupplierContactController extends BaseController {
     }
 
 
-
     /**
      * 导出联系人列表
      */
@@ -77,7 +77,7 @@ public class SupplierContactController extends BaseController {
     //@SaCheckPermission("supplier:contact:query")
     @GetMapping("/{id}")
     public R<SupplierContactVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable("id") Long id) {
+                                        @PathVariable("id") Long id) {
         return R.ok(supplierContactService.queryById(id));
     }
 
@@ -115,4 +115,9 @@ public class SupplierContactController extends BaseController {
                           @PathVariable("ids") Long[] ids) {
         return toAjax(supplierContactService.deleteWithValidByIds(List.of(ids), true));
     }
+
+    @PutMapping("/changeIsPrimaryContact")
+    public R<Void> changeDefaultAddress(@RequestBody SupplierContactBo bo) {
+        return toAjax(supplierContactService.changeIsPrimaryContact(bo));
+    }
 }

+ 2 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/CustomerContactBo.java

@@ -122,5 +122,7 @@ public class CustomerContactBo extends BaseEntity {
      */
     private String remark;
 
+    private String customerName;
+
 
 }

+ 1 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/bo/SupplierAddressBo.java

@@ -81,7 +81,7 @@ public class SupplierAddressBo extends BaseEntity {
     private String pushStatus;
 
     /**
-     * 是否为自身地址(1-是, 0-否
+     * 是否为自身地址(1-否, 0-是
      */
     private String isSelf;
 

+ 2 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/domain/vo/CustomerContactVo.java

@@ -148,5 +148,7 @@ public class CustomerContactVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    private String customerName;
 
+    private Date createTime;
 }

+ 26 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/dubbo/RemoteCustomerContactServiceImpl.java

@@ -0,0 +1,26 @@
+package org.dromara.customer.dubbo;
+
+import cn.hutool.core.bean.BeanUtil;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.dubbo.config.annotation.DubboService;
+import org.dromara.customer.api.RemoteCustomerContactService;
+import org.dromara.customer.api.domain.vo.RemoteCustomerContactVo;
+import org.dromara.customer.domain.vo.CustomerContactVo;
+import org.dromara.customer.service.ICustomerContactService;
+import org.springframework.stereotype.Service;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+@DubboService
+public class RemoteCustomerContactServiceImpl implements RemoteCustomerContactService {
+
+    private final ICustomerContactService customerContactService;
+
+    @Override
+    public RemoteCustomerContactVo selectCustomerContactByCustomerIdAndUserId(Long customerId, Long userId) {
+        CustomerContactVo customerContactVo = customerContactService.selectCustomerContactByCustomerIdAndUserId(customerId, userId);
+        return BeanUtil.toBean(customerContactVo, RemoteCustomerContactVo.class);
+    }
+}

+ 8 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ICustomerContactService.java

@@ -27,6 +27,14 @@ public interface ICustomerContactService extends IService<CustomerContact> {
      */
     CustomerContactVo queryById(Long id);
 
+
+    /**
+     * 根据客户id和用户id查询
+     *
+     * @return 客户联系人信息
+     */
+    CustomerContactVo selectCustomerContactByCustomerIdAndUserId(Long customerId, Long userId);
+
     /**
      * 分页查询客户联系人信息列表
      *

+ 8 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplierAddressService.java

@@ -2,6 +2,7 @@ package org.dromara.customer.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.dromara.customer.domain.SupplierAddress;
+import org.dromara.customer.domain.bo.CustomerShippingAddressBo;
 import org.dromara.customer.domain.vo.SupplierAddressVo;
 import org.dromara.customer.domain.bo.SupplierAddressBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -16,7 +17,7 @@ import java.util.List;
  * @author LJY
  * @date 2026-01-19
  */
-public interface ISupplierAddressService extends IService<SupplierAddress>{
+public interface ISupplierAddressService extends IService<SupplierAddress> {
 
     /**
      * 查询供应商地址
@@ -66,6 +67,12 @@ public interface ISupplierAddressService extends IService<SupplierAddress>{
      * @param isValid 是否进行有效性校验
      * @return 是否删除成功
      */
+
+    /**
+     * 设置默认地址
+     */
+    int changeDefaultAddress(SupplierAddressBo bo);
+
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
 
     List<SupplierAddressVo> getSupplierAddressById(SupplierAddressBo bo);

+ 5 - 1
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/ISupplierContactService.java

@@ -2,6 +2,7 @@ package org.dromara.customer.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.dromara.customer.domain.SupplierContact;
+import org.dromara.customer.domain.bo.CustomerShippingAddressBo;
 import org.dromara.customer.domain.vo.SupplierContactVo;
 import org.dromara.customer.domain.bo.SupplierContactBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -16,7 +17,7 @@ import java.util.List;
  * @author LJY
  * @date 2026-01-13
  */
-public interface ISupplierContactService extends IService<SupplierContact>{
+public interface ISupplierContactService extends IService<SupplierContact> {
 
     /**
      * 查询联系人
@@ -59,6 +60,9 @@ public interface ISupplierContactService extends IService<SupplierContact>{
      */
     Boolean updateByBo(SupplierContactBo bo);
 
+    int changeIsPrimaryContact(SupplierContactBo bo);
+
+
     /**
      * 校验并批量删除联系人信息
      *

+ 27 - 9
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/CustomerContactServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.customer.service.impl;
 
+import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.crypto.digest.BCrypt;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -9,7 +10,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
-import org.dromara.common.core.enums.IsDefault;
 import org.dromara.common.core.enums.SysPlatformYesNo;
 import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.utils.MapstructUtils;
@@ -19,12 +19,10 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.redis.utils.SequenceUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.customer.domain.CustomerContact;
-import org.dromara.customer.domain.CustomerShippingAddress;
+import org.dromara.customer.domain.CustomerInfo;
 import org.dromara.customer.domain.bo.CustomerContactBo;
-import org.dromara.customer.domain.bo.CustomerShippingAddressBo;
 import org.dromara.customer.domain.vo.CustomerContactVo;
 import org.dromara.customer.domain.vo.CustomerInfoVo;
-import org.dromara.customer.domain.vo.CustomerShippingAddressVo;
 import org.dromara.customer.mapper.CustomerContactMapper;
 import org.dromara.customer.mapper.CustomerInfoMapper;
 import org.dromara.customer.service.ICustomerContactService;
@@ -35,10 +33,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.Duration;
-import java.util.Collection;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -74,6 +69,11 @@ public class CustomerContactServiceImpl extends ServiceImpl<CustomerContactMappe
         return baseMapper.selectVoById(id);
     }
 
+    @Override
+    public CustomerContactVo selectCustomerContactByCustomerIdAndUserId(Long customerId, Long userId) {
+        return baseMapper.selectVoOne(new LambdaQueryWrapper<CustomerContact>().eq(CustomerContact::getCustomerId, customerId).eq(CustomerContact::getUserId, userId).last("limit 1"));
+    }
+
     /**
      * 分页查询客户联系人信息列表
      *
@@ -85,7 +85,16 @@ public class CustomerContactServiceImpl extends ServiceImpl<CustomerContactMappe
     public TableDataInfo<CustomerContactVo> queryPageList(CustomerContactBo bo, PageQuery pageQuery) {
         LambdaQueryWrapper<CustomerContact> lqw = buildQueryWrapper(bo);
         Page<CustomerContactVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-
+        List<CustomerContactVo> records = result.getRecords();
+        if (ObjectUtil.isNotEmpty(records)) {
+            Set<Long> customerIds = records.stream().map(CustomerContactVo::getCustomerId).collect(Collectors.toSet());
+            List<CustomerInfo> customerInfos = customerInfoMapper.selectByIds(customerIds);
+            Map<Long, String> customerNameMap = customerInfos.stream().collect(Collectors.toMap(CustomerInfo::getId, CustomerInfo::getCustomerName));
+
+            records.forEach(item -> {
+                item.setCustomerName(customerNameMap.get(item.getCustomerId()));
+            });
+        }
         return TableDataInfo.build(result);
     }
 
@@ -106,6 +115,7 @@ public class CustomerContactServiceImpl extends ServiceImpl<CustomerContactMappe
         LambdaQueryWrapper<CustomerContact> lqw = Wrappers.lambdaQuery();
         lqw.orderByDesc(CustomerContact::getId);
         lqw.eq(bo.getCustomerId() != null, CustomerContact::getCustomerId, bo.getCustomerId());
+        lqw.like(StringUtils.isNotBlank(bo.getContactNo()), CustomerContact::getContactNo, bo.getContactNo());
         lqw.like(StringUtils.isNotBlank(bo.getContactName()), CustomerContact::getContactName, bo.getContactName());
         lqw.eq(StringUtils.isNotBlank(bo.getPhone()), CustomerContact::getPhone, bo.getPhone());
         lqw.eq(StringUtils.isNotBlank(bo.getOfficePhone()), CustomerContact::getOfficePhone, bo.getOfficePhone());
@@ -120,6 +130,14 @@ public class CustomerContactServiceImpl extends ServiceImpl<CustomerContactMappe
         lqw.eq(StringUtils.isNotBlank(bo.getProvincialCityCounty()), CustomerContact::getProvincialCityCounty, bo.getProvincialCityCounty());
         lqw.eq(StringUtils.isNotBlank(bo.getStatus()), CustomerContact::getStatus, bo.getStatus());
 
+        if (ObjectUtil.isNotEmpty(bo.getCustomerName())) {
+            CustomerInfoVo customerInfoVo = customerInfoMapper.selectVoOne(new LambdaQueryWrapper<CustomerInfo>().eq(CustomerInfo::getCustomerName, bo.getCustomerName()));
+            if (ObjectUtil.isNotEmpty(customerInfoVo)) {
+                lqw.eq(CustomerContact::getCustomerId, customerInfoVo.getId());
+            } else {
+                lqw.eq(CustomerContact::getCustomerId, 0);
+            }
+        }
         if (bo.getDeptId() != null) {
             // 1. 获取当前部门及所有子部门的 ID 列表
             List<Long> deptIds = remoteDeptService.selectDeptChildrenIds(bo.getDeptId());

+ 62 - 21
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierAddressServiceImpl.java

@@ -1,26 +1,26 @@
 package org.dromara.customer.service.impl;
 
 import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.core.enums.IsDefault;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.dromara.customer.domain.SupplierInfo;
-import org.dromara.customer.domain.vo.SupplierInfoVo;
-import org.dromara.customer.mapper.SupplierInfoMapper;
-import org.springframework.stereotype.Service;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.customer.domain.SupplierAddress;
 import org.dromara.customer.domain.bo.SupplierAddressBo;
 import org.dromara.customer.domain.vo.SupplierAddressVo;
-import org.dromara.customer.domain.SupplierAddress;
+import org.dromara.customer.domain.vo.SupplierInfoVo;
 import org.dromara.customer.mapper.SupplierAddressMapper;
+import org.dromara.customer.mapper.SupplierInfoMapper;
 import org.dromara.customer.service.ISupplierAddressService;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
@@ -35,7 +35,7 @@ import java.util.stream.Collectors;
 @Slf4j
 @RequiredArgsConstructor
 @Service
-public class SupplierAddressServiceImpl  extends ServiceImpl<SupplierAddressMapper, SupplierAddress> implements ISupplierAddressService {
+public class SupplierAddressServiceImpl extends ServiceImpl<SupplierAddressMapper, SupplierAddress> implements ISupplierAddressService {
 
     private final SupplierAddressMapper baseMapper;
 
@@ -48,7 +48,7 @@ public class SupplierAddressServiceImpl  extends ServiceImpl<SupplierAddressMapp
      * @return 供应商地址
      */
     @Override
-    public SupplierAddressVo queryById(Long id){
+    public SupplierAddressVo queryById(Long id) {
         return baseMapper.selectVoById(id);
     }
 
@@ -140,12 +140,12 @@ public class SupplierAddressServiceImpl  extends ServiceImpl<SupplierAddressMapp
         SupplierAddress add = MapstructUtils.convert(bo, SupplierAddress.class);
         validEntityBeforeSave(add);
         // 如果设置为自身地址
-        if ("1".equals(add.getIsSelf())) {
+        if (IsDefault.Yes.getCode().equals(add.getIsSelf())) {
 
-            // 把该供应商下其他地址全部改为0
+            // 把该供应商下其他地址全部改为
             LambdaUpdateWrapper<SupplierAddress> updateWrapper = Wrappers.lambdaUpdate();
             updateWrapper.eq(SupplierAddress::getSupplierId, add.getSupplierId())
-                .set(SupplierAddress::getIsSelf, "0");
+                .set(SupplierAddress::getIsSelf, IsDefault.No.getCode());
 
             baseMapper.update(null, updateWrapper);
         }
@@ -156,7 +156,7 @@ public class SupplierAddressServiceImpl  extends ServiceImpl<SupplierAddressMapp
         SupplierAddress supplierAddress = baseMapper.selectOne(lqw);
         String addressNo = supplierAddress.getAddressNo();
         Long maxNo = Long.parseLong(addressNo);
-        String newAddressNo = String.valueOf(maxNo+1);
+        String newAddressNo = String.valueOf(maxNo + 1);
         add.setAddressNo(newAddressNo);
         boolean flag = baseMapper.insert(add) > 0;
         if (flag) {
@@ -177,22 +177,63 @@ public class SupplierAddressServiceImpl  extends ServiceImpl<SupplierAddressMapp
         SupplierAddress update = MapstructUtils.convert(bo, SupplierAddress.class);
         validEntityBeforeSave(update);
         // 如果本次修改设置为自身地址
-        if ("1".equals(update.getIsSelf())) {
+        if (IsDefault.Yes.getCode().equals(update.getIsSelf())) {
 
             LambdaUpdateWrapper<SupplierAddress> updateWrapper = Wrappers.lambdaUpdate();
             updateWrapper.eq(SupplierAddress::getSupplierId, update.getSupplierId())
                 .ne(SupplierAddress::getId, update.getId()) // 排除自己
-                .set(SupplierAddress::getIsSelf, "0");
+                .set(SupplierAddress::getIsSelf, IsDefault.No.getCode());
 
             baseMapper.update(null, updateWrapper);
         }
         return baseMapper.updateById(update) > 0;
     }
 
+    @Override
+    public int changeDefaultAddress(SupplierAddressBo bo) {
+        try {
+            if (bo == null || bo.getId() == null) {
+                return 0;
+            }
+            SupplierAddressVo supplierAddressVo = baseMapper.selectVoById(bo.getId());
+            log.info("修改默认地址:" + supplierAddressVo);
+            if (IsDefault.Yes.getCode().equals(bo.getIsSelf())) {
+                // 1. 清除该供应商下所有默认地址
+                SupplierAddress updateObj = new SupplierAddress();
+                updateObj.setIsSelf(IsDefault.No.getCode()); //
+
+                baseMapper.update(
+                    updateObj,
+                    new LambdaUpdateWrapper<SupplierAddress>()
+                        .eq(SupplierAddress::getSupplierId, supplierAddressVo.getSupplierId()) //
+                        .eq(SupplierAddress::getIsSelf, IsDefault.Yes.getCode())
+                );
+
+                // 2. 设置当前地址为默认
+                SupplierAddress current = new SupplierAddress();
+                current.setId(bo.getId());
+                current.setIsSelf(IsDefault.Yes.getCode());
+                baseMapper.updateById(current);
+
+                return 1;
+            } else {
+                // 取消默认
+                SupplierAddress current = new SupplierAddress();
+                current.setId(bo.getId());
+                current.setIsSelf(IsDefault.No.getCode());
+                baseMapper.updateById(current);
+                return 1;
+            }
+        } catch (Exception e) {
+            log.error("修改默认地址失败:" + e.getMessage(), e);
+            throw new RuntimeException(e);
+        }
+    }
+
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(SupplierAddress entity){
+    private void validEntityBeforeSave(SupplierAddress entity) {
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -205,7 +246,7 @@ public class SupplierAddressServiceImpl  extends ServiceImpl<SupplierAddressMapp
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
+        if (isValid) {
             //TODO 做一些业务上的校验,判断是否需要校验
         }
         return baseMapper.deleteByIds(ids) > 0;

+ 77 - 30
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierContactServiceImpl.java

@@ -2,37 +2,36 @@ package org.dromara.customer.service.impl;
 
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.crypto.digest.BCrypt;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
 import org.apache.dubbo.config.annotation.DubboReference;
+import org.dromara.common.core.enums.SysPlatformYesNo;
 import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.satoken.utils.LoginHelper;
-import org.dromara.customer.controller.SupplierInfoController;
+import org.dromara.customer.domain.SupplierContact;
 import org.dromara.customer.domain.SupplierInfo;
-import org.dromara.customer.domain.vo.SupplierInformationVo;
-import org.dromara.customer.service.ISupplierInfoService;
-import org.dromara.system.api.RemoteUserService;
-import org.dromara.system.api.domain.bo.RemoteUserBo;
-import org.springframework.stereotype.Service;
 import org.dromara.customer.domain.bo.SupplierContactBo;
 import org.dromara.customer.domain.vo.SupplierContactVo;
-import org.dromara.customer.domain.SupplierContact;
 import org.dromara.customer.mapper.SupplierContactMapper;
 import org.dromara.customer.service.ISupplierContactService;
+import org.dromara.customer.service.ISupplierInfoService;
+import org.dromara.system.api.RemoteUserService;
+import org.dromara.system.api.domain.bo.RemoteUserBo;
+import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.Collection;
 import java.util.List;
 import java.util.Map;
-import java.util.Collection;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
@@ -178,14 +177,21 @@ public class SupplierContactServiceImpl extends ServiceImpl<SupplierContactMappe
         //4.如果是待修改审核  能登录  user是能登录的 status = 0
         SupplierContact add = MapstructUtils.convert(bo, SupplierContact.class);
         // ====== 主联系人唯一控制 ======
-        if ("1".equals(add.getIsPrimaryContact())) {
-
-            LambdaUpdateWrapper<SupplierContact> updateWrapper = Wrappers.lambdaUpdate();
-            updateWrapper.eq(SupplierContact::getSupplierId, add.getSupplierId())
-                .set(SupplierContact::getIsPrimaryContact, "0");
-
-            baseMapper.update(null, updateWrapper);
+//        if ("1".equals(add.getIsPrimaryContact())) {
+//
+//            LambdaUpdateWrapper<SupplierContact> updateWrapper = Wrappers.lambdaUpdate();
+//            updateWrapper.eq(SupplierContact::getSupplierId, add.getSupplierId())
+//                .set(SupplierContact::getIsPrimaryContact, "0");
+//
+//            baseMapper.update(null, updateWrapper);
+//        }
+        List<SupplierContact> supplierContacts = baseMapper.selectList(new LambdaQueryWrapper<SupplierContact>().eq(SupplierContact::getSupplierId, add.getSupplierId()).eq(SupplierContact::getIsPrimaryContact, SysPlatformYesNo.YES.getCode()));
+        if (ObjectUtil.isNotEmpty(supplierContacts) && supplierContacts.size() > 0) {
+            add.setIsPrimaryContact(SysPlatformYesNo.NO.getCode());
+        } else {
+            add.setIsPrimaryContact(SysPlatformYesNo.YES.getCode());
         }
+
         RemoteUserBo remoteUserBo = new RemoteUserBo();
         remoteUserBo.setNickName(bo.getUserName());
         remoteUserBo.setUserName(bo.getPhone());
@@ -227,15 +233,15 @@ public class SupplierContactServiceImpl extends ServiceImpl<SupplierContactMappe
     public Boolean updateByBo(SupplierContactBo bo) {
         SupplierContact update = MapstructUtils.convert(bo, SupplierContact.class);
         // ====== 主联系人唯一控制 ======
-        if ("1".equals(update.getIsPrimaryContact())) {
-
-            LambdaUpdateWrapper<SupplierContact> updateWrapper = Wrappers.lambdaUpdate();
-            updateWrapper.eq(SupplierContact::getSupplierId, update.getSupplierId())
-                .ne(SupplierContact::getId, update.getId()) // 排除自己
-                .set(SupplierContact::getIsPrimaryContact, "0");
-
-            baseMapper.update(null, updateWrapper);
-        }
+//        if ("1".equals(update.getIsPrimaryContact())) {
+//
+//            LambdaUpdateWrapper<SupplierContact> updateWrapper = Wrappers.lambdaUpdate();
+//            updateWrapper.eq(SupplierContact::getSupplierId, update.getSupplierId())
+//                .ne(SupplierContact::getId, update.getId()) // 排除自己
+//                .set(SupplierContact::getIsPrimaryContact, "0");
+//
+//            baseMapper.update(null, updateWrapper);
+//        }
         if (update.getUserId() != null) {
             RemoteUserBo remoteUserBo = new RemoteUserBo();
             remoteUserBo.setNickName(bo.getUserName());
@@ -252,6 +258,47 @@ public class SupplierContactServiceImpl extends ServiceImpl<SupplierContactMappe
         return baseMapper.updateById(update) > 0;
     }
 
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public int changeIsPrimaryContact(SupplierContactBo bo) {
+        try {
+            if (bo == null || bo.getId() == null) {
+                return 0;
+            }
+            SupplierContactVo supplierContactVo = baseMapper.selectVoById(bo.getId());
+            log.info("修改主联系人:" + supplierContactVo);
+            if (SysPlatformYesNo.YES.getCode().equals(bo.getIsPrimaryContact())) {
+                // 1. 清除该供应商下默认联系人
+                SupplierContact updateObj = new SupplierContact();
+                updateObj.setIsPrimaryContact(SysPlatformYesNo.NO.getCode()); //
+
+                baseMapper.update(
+                    updateObj,
+                    new LambdaUpdateWrapper<SupplierContact>()
+                        .eq(SupplierContact::getSupplierId, supplierContactVo.getSupplierId()) //
+                        .eq(SupplierContact::getIsPrimaryContact, SysPlatformYesNo.YES.getCode())
+                );
+
+                // 2. 设置当前为默认
+                SupplierContact current = new SupplierContact();
+                current.setId(bo.getId());
+                current.setIsPrimaryContact(SysPlatformYesNo.YES.getCode());
+                baseMapper.updateById(current);
+
+                return 1;
+            } else {
+                // 取消默认
+                SupplierContact current = new SupplierContact();
+                current.setId(bo.getId());
+                current.setIsPrimaryContact(SysPlatformYesNo.NO.getCode());
+                baseMapper.updateById(current);
+                return 1;
+            }
+        } catch (Exception e) {
+            log.error("修改失败:" + e.getMessage(), e);
+            throw new RuntimeException(e);
+        }
+    }
 
     /**
      * 校验并批量删除联系人信息

+ 2 - 0
ruoyi-modules/ruoyi-customer/src/main/java/org/dromara/customer/service/impl/SupplierInfoServiceImpl.java

@@ -193,6 +193,7 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
         if (supplierInfoVo.getSupplyStatus() == SupplierStatusEnum.OFFICIAL_SUPPLIER.getCode() && bo.getSupplyStatus() == SupplierStatusEnum.DISABLED.getCode()) {
             SupplierInfo update = MapstructUtils.convert(bo, SupplierInfo.class);
             update.setCooperative(0l);
+
             return baseMapper.updateById(update) > 0;
         }
         //正式供应商 -> 修改待审核
@@ -2283,6 +2284,7 @@ public class SupplierInfoServiceImpl extends ServiceImpl<SupplierInfoMapper, Sup
     @Override
     public int scmUpdateByBo(SupplierInfoBo bo) {
         SupplierInfo update = MapstructUtils.convert(bo, SupplierInfo.class);
+        saveSupplierBusinessInfoFromJson(bo.getOtherCustomers(), bo.getId());
         return baseMapper.updateById(update);
     }
 

+ 9 - 1
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/OrderMainController.java

@@ -19,7 +19,6 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.tenant.helper.PlatformHelper;
 import org.dromara.common.web.core.BaseController;
-import org.dromara.order.domain.OrderProduct;
 import org.dromara.order.domain.bo.OrderMainBo;
 import org.dromara.order.domain.bo.OrderProductBo;
 import org.dromara.order.domain.vo.OrderMainVo;
@@ -217,4 +216,13 @@ public class OrderMainController extends BaseController {
     public R<Void> checkStatus(@RequestBody OrderMainBo bo) {
         return toAjax(orderMainService.updateCheckStatus(bo));
     }
+
+    /**
+     * 状态修改
+     */
+    @Log(title = "订单主信息", businessType = BusinessType.UPDATE)
+    @PutMapping("/changePayStatus")
+    public R<Void> changePayStatus(@RequestBody OrderMainBo bo) {
+        return toAjax(orderMainService.updatePayStatus(bo));
+    }
 }

+ 23 - 14
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/OrderReturnController.java

@@ -1,26 +1,26 @@
 package org.dromara.order.controller;
 
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
+import jakarta.validation.constraints.NotEmpty;
+import jakarta.validation.constraints.NotNull;
+import lombok.RequiredArgsConstructor;
 import org.dromara.common.core.domain.R;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
-import org.dromara.order.domain.vo.OrderReturnVo;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.web.core.BaseController;
 import org.dromara.order.domain.bo.OrderReturnBo;
+import org.dromara.order.domain.vo.OrderReturnVo;
 import org.dromara.order.service.IOrderReturnService;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
 
 /**
  * 退货主
@@ -103,4 +103,13 @@ public class OrderReturnController extends BaseController {
                           @PathVariable("ids") Long[] ids) {
         return toAjax(orderReturnService.deleteWithValidByIds(List.of(ids), true));
     }
+
+    /**
+     * 状态修改
+     */
+    @Log(title = "退货主", businessType = BusinessType.UPDATE)
+    @PutMapping("/changeReturnStatus")
+    public R<Void> changeReturnStatus(@RequestBody OrderReturnBo bo) {
+        return toAjax(orderReturnService.updateReturnStatus(bo));
+    }
 }

+ 23 - 7
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/controller/pc/PcOrderController.java

@@ -1,6 +1,7 @@
 package org.dromara.order.controller.pc;
 
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import jakarta.validation.constraints.NotNull;
@@ -10,20 +11,18 @@ import org.dromara.common.core.domain.R;
 import org.dromara.common.core.enums.OrderSourceEnum;
 import org.dromara.common.core.enums.OrderStatus;
 import org.dromara.common.core.enums.SysPlatformYesNo;
-import org.dromara.common.core.exception.ServiceException;
 import org.dromara.common.log.annotation.Log;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.redis.utils.SequenceUtils;
 import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.common.web.core.BaseController;
+import org.dromara.customer.api.RemoteCustomerContactService;
 import org.dromara.customer.api.RemoteCustomerService;
 import org.dromara.customer.api.domain.CustomerApiVo;
+import org.dromara.customer.api.domain.vo.RemoteCustomerContactVo;
 import org.dromara.order.domain.OrderCustomerFlowLink;
-import org.dromara.order.domain.OrderCustomerFlowNode;
 import org.dromara.order.domain.OrderCustomerFlowNodeLink;
-import org.dromara.order.domain.OrderMain;
 import org.dromara.order.domain.bo.*;
 import org.dromara.order.domain.dto.OrderPayDto;
 import org.dromara.order.domain.vo.OrderCountVo;
@@ -38,14 +37,12 @@ import org.dromara.product.api.RemoteProductService;
 import org.dromara.product.api.RemoteProductShoppingCartService;
 import org.dromara.product.api.domain.ProductVo;
 import org.dromara.product.api.domain.RemoteProductShoppingCartVo;
-import org.springframework.dao.DuplicateKeyException;
+import org.dromara.system.api.RemoteUserService;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
 import java.math.BigDecimal;
-import java.time.Duration;
 import java.time.LocalDate;
-import java.time.ZoneOffset;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -65,12 +62,18 @@ import static org.dromara.common.mybatis.core.mapper.BaseMapperPlus.log;
 @RequestMapping("/pcOrder")
 public class PcOrderController extends BaseController {
 
+    @DubboReference
+    private RemoteUserService remoteUserService;
+
     @DubboReference
     private RemoteCustomerService remoteCustomerService;
 
     @DubboReference
     private RemoteProductService remoteProductService;
 
+    @DubboReference
+    private RemoteCustomerContactService remoteCustomerContactService;
+
     @DubboReference
     private RemoteProductShoppingCartService remoteProductShoppingCartService;
 
@@ -99,6 +102,13 @@ public class PcOrderController extends BaseController {
         bo.setUserId(userId);
         bo.setIsSplitChild(SysPlatformYesNo.NO.getCode());
 
+        RemoteCustomerContactVo remoteCustomerContactVo = remoteCustomerContactService.selectCustomerContactByCustomerIdAndUserId(customerId, userId);
+        if (ObjectUtil.isNotEmpty(remoteCustomerContactVo)) {
+            if (Long.valueOf(1).equals(remoteCustomerContactVo.getRoleId())) {
+                bo.setUserId(null);
+            }
+        }
+
         return orderMainService.queryPageList(bo, pageQuery);
     }
 
@@ -108,6 +118,12 @@ public class PcOrderController extends BaseController {
         Long customerId = LoginHelper.getLoginUser().getCustomerId();
 
         Long userId = LoginHelper.getLoginUser().getUserId();
+        RemoteCustomerContactVo remoteCustomerContactVo = remoteCustomerContactService.selectCustomerContactByCustomerIdAndUserId(customerId, userId);
+        if (ObjectUtil.isNotEmpty(remoteCustomerContactVo)) {
+            if (Long.valueOf(1).equals(remoteCustomerContactVo.getRoleId())) {
+                userId = null;
+            }
+        }
         return R.ok(orderMainService.countOrderNum(customerId, userId));
     }
 

+ 3 - 0
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/IOrderMainService.java

@@ -85,6 +85,9 @@ public interface IOrderMainService extends IService<OrderMain> {
 
     int updateStatus(OrderMainBo bo);
 
+    /*修改支付状态*/
+    int updatePayStatus(OrderMainBo bo);
+
 
     Boolean orderPay(Long customerId, Long orderId, String payType);
 

+ 7 - 4
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/IOrderReturnService.java

@@ -2,12 +2,12 @@ package org.dromara.order.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
 import jakarta.validation.constraints.NotNull;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.order.domain.OrderReturn;
 import org.dromara.order.domain.OrderReturnPickCrrc;
-import org.dromara.order.domain.vo.OrderReturnVo;
 import org.dromara.order.domain.bo.OrderReturnBo;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.order.domain.vo.OrderReturnVo;
 
 import java.util.Collection;
 import java.util.List;
@@ -18,7 +18,7 @@ import java.util.List;
  * @author LionLi
  * @date 2026-01-05
  */
-public interface IOrderReturnService extends IService<OrderReturn>{
+public interface IOrderReturnService extends IService<OrderReturn> {
 
     /**
      * 查询退货主
@@ -61,6 +61,8 @@ public interface IOrderReturnService extends IService<OrderReturn>{
      */
     Boolean updateByBo(OrderReturnBo bo);
 
+    int updateReturnStatus(OrderReturnBo bo);
+
     /**
      * 校验并批量删除退货主信息
      *
@@ -72,6 +74,7 @@ public interface IOrderReturnService extends IService<OrderReturn>{
 
     /**
      * 查询中车售后订单
+     *
      * @param bo
      * @param pageQuery
      * @return

+ 22 - 3
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderMainServiceImpl.java

@@ -94,6 +94,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
     @DubboReference
     private RemoteComDeptService remoteComDeptService;
 
+    private RemoteErpStaffService remoteErpStaffService;
+
+    @DubboReference
+    private RemoteErpDeptService remoteErpDeptService;
+
     //客户订单流程
     private final IOrderCustomerFlowService orderCustomerFlowService;
 
@@ -589,11 +594,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
 
             Map<Long, String> staffMap = staffIds.isEmpty()
                 ? Collections.emptyMap()
-                : remoteComStaffService.selectStaffNameByIds(staffIds);
+                : remoteErpStaffService.selectStaffNameByIds(staffIds);
 
             Map<Long, String> deptMap = deptIds.isEmpty()
                 ? Collections.emptyMap()
-                : remoteDeptService.selectDeptNameByIds(deptIds);
+                : remoteErpDeptService.selectDeptNameByIds(deptIds);
 
             mainBo.setBusinessStaff(staffMap.get(salesPersonId));
             mainBo.setCustomerService(staffMap.get(serviceStaffId));
@@ -612,7 +617,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
                 this.update(Wrappers.lambdaUpdate(OrderMain.class)
                     .eq(OrderMain::getId, orderId)
                     .set(OrderMain::getOrderStatus, 1)); // 假设 1 代表某种特定状态,需确认枚举值
-            }else {
+            } else {
                 log.info("失败初始化审批流程,订单ID: {}", orderId);
                 this.update(Wrappers.lambdaUpdate(OrderMain.class)
                     .eq(OrderMain::getId, orderId)
@@ -862,6 +867,20 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
         return baseMapper.updateById(order);
     }
 
+    /**
+     * 修改支付状态
+     *
+     * @param bo 信息
+     * @return 结果
+     */
+    @Override
+    public int updatePayStatus(OrderMainBo bo) {
+        OrderMain order = new OrderMain();
+        order.setId(bo.getId());
+        order.setPaymentStatus(bo.getPaymentStatus());
+        return baseMapper.updateById(order);
+    }
+
     /**
      * 修改审核状态
      *

+ 12 - 5
ruoyi-modules/ruoyi-order/src/main/java/org/dromara/order/service/impl/OrderReturnServiceImpl.java

@@ -20,7 +20,6 @@ import org.dromara.order.domain.OrderReturnItem;
 import org.dromara.order.domain.OrderReturnPickCrrc;
 import org.dromara.order.domain.bo.OrderReturnBo;
 import org.dromara.order.domain.bo.OrderReturnItemBo;
-import org.dromara.order.domain.vo.OrderMainCrrcExtVo;
 import org.dromara.order.domain.vo.OrderReturnVo;
 import org.dromara.order.mapper.OrderReturnItemMapper;
 import org.dromara.order.mapper.OrderReturnMapper;
@@ -312,6 +311,14 @@ public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, Order
         }
     }
 
+    @Override
+    public int updateReturnStatus(OrderReturnBo bo) {
+        OrderReturn orderReturn = new OrderReturn();
+        orderReturn.setId(bo.getId());
+        orderReturn.setReturnStatus(bo.getReturnStatus());
+        return baseMapper.updateById(orderReturn);
+    }
+
     /**
      * 保存前的数据校验
      */
@@ -340,7 +347,7 @@ public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, Order
         lqw.eq(OrderReturn::getDataSource, "zhongche");
         Page<OrderReturnVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
         List<OrderReturnVo> records = result.getRecords();
-        if (CollUtil.isNotEmpty( records)){
+        if (CollUtil.isNotEmpty(records)) {
             // 2. 提取所有orderId组成集合(去重,减少查询次数)
             Set<Long> orderIdSet = records.stream()
                 .map(OrderReturnVo::getOrderId) // 假设orderId是Long类型,根据实际类型调整
@@ -397,8 +404,8 @@ public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, Order
                     String buyerName = ext.getBuyerName();    // 获取买家姓名
                     String buyerMobile = ext.getBuyerMobile();// 获取买家手机号
                     // 业务处理:比如赋值给订单对象、组装VO等
-                     orderReturnVo.setBuyerName(buyerName);
-                     orderReturnVo.setBuyerMobile(buyerMobile);
+                    orderReturnVo.setBuyerName(buyerName);
+                    orderReturnVo.setBuyerMobile(buyerMobile);
                 }
 
                 // 2. 赋值pick_type(新增逻辑)
@@ -409,7 +416,7 @@ public class OrderReturnServiceImpl extends ServiceImpl<OrderReturnMapper, Order
                 }
             }
 
-            }
+        }
         return TableDataInfo.build(result);
     }
 

+ 7 - 5
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMainMapper.xml

@@ -47,12 +47,14 @@
 
     <select id="countOrderNum" resultType="org.dromara.order.domain.vo.OrderCountVo">
         SELECT SUM(CASE WHEN order_status = '0' THEN 1 ELSE 0 END) AS pendingPaymentCount,
-               SUM(CASE WHEN order_status = '2' THEN 1 ELSE 0 END) AS pendingShipmentCount,
-               SUM(CASE WHEN order_status = '4' THEN 1 ELSE 0 END) AS pendingReceiptCount
+        SUM(CASE WHEN order_status = '2' THEN 1 ELSE 0 END) AS pendingShipmentCount,
+        SUM(CASE WHEN order_status = '4' THEN 1 ELSE 0 END) AS pendingReceiptCount
         FROM order_main
         WHERE customer_id = #{customerId}
-          AND user_id = #{userId}
-          AND is_split_child = '1'
-          AND del_flag = '0'
+        <if test="userId != null ">
+            AND user_id = #{userId}
+        </if>
+        AND is_split_child = '1'
+        AND del_flag = '0'
     </select>
 </mapper>

+ 0 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/dubbo/RemoteErpDeptServiceImpl.java

@@ -33,7 +33,6 @@ public class RemoteErpDeptServiceImpl implements RemoteErpDeptService {
     /**
      * 通过部门ID查询部门名称
      *
-     * @param deptIds 部门ID串逗号分隔
      * @return 部门名称串逗号分隔
      */
     @Override

+ 5 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysDeptServiceImpl.java

@@ -341,14 +341,17 @@ public class SysDeptServiceImpl extends ServiceImpl<SysDeptMapper, SysDept> impl
     public int insertDept(SysDeptBo bo) {
         SysDept info = baseMapper.selectById(bo.getParentId());
         // 如果父节点不为正常状态,则不允许新增子节点
-        if (!SystemConstants.NORMAL.equals(info.getStatus())) {
+        if (ObjectUtil.isNotEmpty(info) && !SystemConstants.NORMAL.equals(info.getStatus())) {
             throw new ServiceException("部门停用,不允许新增");
         }
         if (bo.getOrderNum() == null || bo.getOrderNum() < 0) {
             bo.setOrderNum(baseMapper.selectMaxOrderNumByParentId(bo.getParentId()));
         }
         SysDept dept = MapstructUtils.convert(bo, SysDept.class);
-        dept.setAncestors(info.getAncestors() + StringUtils.SEPARATOR + dept.getParentId());
+        if (ObjectUtil.isNotEmpty(info)) {
+            dept.setAncestors(info.getAncestors() + StringUtils.SEPARATOR + dept.getParentId());
+        }
+//        dept.setAncestors(info.getAncestors() + StringUtils.SEPARATOR + dept.getParentId());
         // 1. 校验当前是否为总控平台(main),否则不能指定 platformCode
         String currentPlatform = PlatformContext.getPlatform();
         if (StringUtils.isEmpty(currentPlatform)) {