diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmShippingTariff.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmShippingTariff.java index 994066ae..2e798677 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmShippingTariff.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/domain/CrmShippingTariff.java @@ -14,7 +14,7 @@ import java.math.BigDecimal; /** * 邮寄资费最优方案对象 crm_shipping_tariff * - * @author hm + * @author yangk * @date 2026-03-16 */ @Data diff --git a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmShippingTariffServiceImpl.java b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmShippingTariffServiceImpl.java index 879479b1..028327bf 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmShippingTariffServiceImpl.java +++ b/ruoyi-modules/ruoyi-oa/src/main/java/org/dromara/oa/crm/service/impl/CrmShippingTariffServiceImpl.java @@ -27,7 +27,7 @@ import java.util.List; /** * 邮寄资费最优方案Service业务层处理 * - * @author hm + * @author yangk * @date 2026-03-16 */ @RequiredArgsConstructor @@ -58,7 +58,8 @@ public class CrmShippingTariffServiceImpl implements ICrmShippingTariffService { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.like(StringUtils.isNotBlank(bo.getProvince()), CrmShippingTariff::getProvince, bo.getProvince()); lqw.eq(bo.getWeightKg() != null, CrmShippingTariff::getWeightKg, bo.getWeightKg()); - lqw.like(StringUtils.isNotBlank(bo.getSolutionName()), CrmShippingTariff::getSolutionName, bo.getSolutionName()); + lqw.like(StringUtils.isNotBlank(bo.getSolutionName()), CrmShippingTariff::getSolutionName, + bo.getSolutionName()); lqw.orderByAsc(CrmShippingTariff::getProvince).orderByAsc(CrmShippingTariff::getWeightKg); return lqw; } @@ -99,7 +100,7 @@ public class CrmShippingTariffServiceImpl implements ICrmShippingTariffService { // 判断是否存在同省份同公斤级的数据 LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.eq(CrmShippingTariff::getProvince, bo.getProvince()) - .eq(CrmShippingTariff::getWeightKg, bo.getWeightKg()); + .eq(CrmShippingTariff::getWeightKg, bo.getWeightKg()); CrmShippingTariff exist = baseMapper.selectOne(lqw); if (ObjectUtil.isNull(exist)) { @@ -111,7 +112,8 @@ public class CrmShippingTariffServiceImpl implements ICrmShippingTariffService { successNum++; } else { failureNum++; - failureMsg.append("
").append(failureNum).append("、记录 ").append(bo.getProvince()).append("-").append(bo.getWeightKg()).append(" 已存在"); + failureMsg.append("
").append(failureNum).append("、记录 ").append(bo.getProvince()).append("-") + .append(bo.getWeightKg()).append(" 已存在"); } } catch (Exception e) { failureNum++; @@ -138,10 +140,10 @@ public class CrmShippingTariffServiceImpl implements ICrmShippingTariffService { int targetWeightKg = weight.setScale(0, RoundingMode.UP).intValue(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - // 精确匹配省份,如果有需要也可以做前缀匹配(如"北京" -> "北京市"),为了严谨最好先用 like 进行容错 + // 精确匹配省份,如果有需要也可以做前缀匹配(如"北京" -> "北京市") lqw.like(CrmShippingTariff::getProvince, province) - .eq(CrmShippingTariff::getWeightKg, targetWeightKg) - .last("LIMIT 1"); + .eq(CrmShippingTariff::getWeightKg, targetWeightKg) + .last("LIMIT 1"); return baseMapper.selectVoOne(lqw); } diff --git a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ProjectLedgerReportMapper.xml b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ProjectLedgerReportMapper.xml index eb43a59d..1db3dd5d 100644 --- a/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ProjectLedgerReportMapper.xml +++ b/ruoyi-modules/ruoyi-oa/src/main/resources/mapper/oa/erp/ProjectLedgerReportMapper.xml @@ -12,7 +12,7 @@ p.project_category, p.project_status, p.payment_method, - p.contract_id, + c.contract_id, u1.nick_name AS manager_name, d.dept_name, CONCAT(t2.type_name, '/', t1.type_name) AS type_name, @@ -86,7 +86,11 @@ LEFT JOIN sys_dept d ON d.dept_id = p.dept_id LEFT JOIN sys_user u1 ON u1.user_id = p.manager_id - LEFT JOIN erp_contract_info c ON p.contract_id = c.contract_id AND c.del_flag = '0' + LEFT JOIN erp_contract_info c ON c.contract_id = ( + SELECT contract_id FROM erp_project_contracts + WHERE project_id = p.project_id AND del_flag = '0' + ORDER BY sort_order ASC LIMIT 1 + ) AND c.del_flag = '0' LEFT JOIN crm_customer_info cust ON c.one_customer_id = cust.customer_id AND cust.del_flag = '0' LEFT JOIN sys_user u2 ON c.contract_manager_id = u2.user_id @@ -112,7 +116,7 @@ FROM erp_contract_material WHERE del_flag = '0' GROUP BY contract_id - ) mat_sub ON p.contract_id = mat_sub.contract_id + ) mat_sub ON c.contract_id = mat_sub.contract_id LEFT JOIN ( SELECT