diff --git a/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTempCreditSalesmenController.java b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTempCreditSalesmenController.java
new file mode 100644
index 000000000..96aeee90f
--- /dev/null
+++ b/emis-biz-web/src/main/java/com/xdadan/erp/web/emis/EmisTempCreditSalesmenController.java
@@ -0,0 +1,104 @@
+
+/**
+ * @Project: emis
+ * @Title: EmisTempCreditSalesmenController.java
+ * @author linfso
+ * @date 2025-03-08 16:17:56
+ * @Copyright: ShangHai Duta 2022 All rights reserved.
+ * @version v1.0
+ * @Description:
销售临时额度 控制器
+ */
+
+package com.xdadan.erp.web.emis;
+
+import com.xdadan.erp.common.annotation.Log;
+import com.xdadan.erp.common.core.controller.BaseController;
+import com.xdadan.erp.common.core.domain.AjaxResult;
+import com.xdadan.erp.common.core.page.TableDataInfo;
+import com.xdadan.erp.common.enums.BusinessType;
+import com.xdadan.erp.emis.domain.EmisTempCreditSalesmen;
+import com.xdadan.erp.emis.domain.exception.EmisBizError;
+import com.xdadan.erp.emis.service.IEmisTempCreditSalesmenService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.List;
+
+/**
+ * 销售临时额度Controller
+ *
+ * @author heyu
+ * @date 2025-04-15 16:17:56
+ */
+@RestController
+@RequestMapping("/emis/emisTempCreditSalesmen")
+public class EmisTempCreditSalesmenController extends BaseController
+{
+ @Autowired
+ private IEmisTempCreditSalesmenService emisTempCreditSalesmenService;
+
+ /**
+ * 查询销售临时额度列表
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTempCreditSalesmen:list')")
+ @GetMapping("/list")
+ public TableDataInfo list(EmisTempCreditSalesmen emisTempCreditSalesmen)
+ {
+ startPage();
+ List list = emisTempCreditSalesmenService.selectEmisTempCreditSalesmenList(emisTempCreditSalesmen);
+ return getDataTable(list);
+ }
+
+ /**
+ * 新增销售临时额度
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTempCreditSalesmen:add')")
+ @Log(title = "销售临时额度", businessType = BusinessType.INSERT)
+ @PostMapping
+ public AjaxResult add(@RequestBody EmisTempCreditSalesmen emisTempCreditSalesmen)
+ {
+ try {
+ return toAjax(emisTempCreditSalesmenService.insertEmisTempCreditSalesmen(emisTempCreditSalesmen));
+ }catch (Exception ex){
+ ex.printStackTrace();
+ // 返回子定义异常
+ if(ex instanceof EmisBizError){
+ return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
+ }
+ return AjaxResult.error("服务器异常,联系客服");
+ }
+
+ }
+
+ /**
+ * 修改销售临时额度
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTempCreditSalesmen:edit')")
+ @Log(title = "销售临时额度", businessType = BusinessType.UPDATE)
+ @PutMapping
+ public AjaxResult edit(@RequestBody EmisTempCreditSalesmen emisTempCreditSalesmen)
+ {
+ try {
+ return toAjax(emisTempCreditSalesmenService.updateEmisTempCreditSalesmen(emisTempCreditSalesmen));
+ }catch (Exception ex){
+ ex.printStackTrace();
+ // 返回子定义异常
+ if(ex instanceof EmisBizError){
+ return AjaxResult.error(ex.getMessage(),((EmisBizError)ex).getErrorCode());
+ }
+ return AjaxResult.error("服务器异常,联系客服");
+ }
+ }
+
+ /**
+ * 删除销售临时额度
+ */
+ @PreAuthorize("@ss.hasPermi('emis:emisTempCreditSalesmen:remove')")
+ @Log(title = "销售临时额度", businessType = BusinessType.DELETE)
+ @DeleteMapping("/{ids}")
+ public AjaxResult remove(@PathVariable Long[] ids)
+ {
+ return toAjax(emisTempCreditSalesmenService.deleteEmisTempCreditSalesmenByIds(ids));
+ }
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCreditSalesmen.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCreditSalesmen.java
index 237f5ede2..8c9331b91 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCreditSalesmen.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisCreditSalesmen.java
@@ -41,6 +41,8 @@ public class EmisCreditSalesmen extends BaseEntity
private String salesmen;
/* 信用额度 */
private BigDecimal creditMoney;
+ /* 临时额度 */
+ private BigDecimal tempCreditMoney;
/* 使用额度 */
private BigDecimal useMoney;
/* 超期额度 */
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTempCreditSalesmen.java b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTempCreditSalesmen.java
new file mode 100644
index 000000000..d36c1b7e5
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/domain/EmisTempCreditSalesmen.java
@@ -0,0 +1,45 @@
+package com.xdadan.erp.emis.domain;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import lombok.Data;
+import com.xdadan.erp.common.annotation.Excel;
+import com.xdadan.erp.common.core.domain.BaseEntity;
+
+/**
+ * 销售临时额度对象 emis_temp_credit_salesmen
+ *
+ * @author heyu
+ * @date 2025-04-15 16:17:56
+ */
+@Data
+public class EmisTempCreditSalesmen extends BaseEntity {
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 客户编码 */
+ private String accCode;
+
+ /** 销售员 */
+ private String salesmen;
+
+ /** 临时额度调整金额 */
+ private BigDecimal tempCreditMoneyAdjust;
+
+ /** 运输方式 **/
+ private String transType;
+
+ /** 临时额度总额 */
+ private BigDecimal tempCreditMoney;
+
+ /** 开始日期 */
+ @Excel(name = "开始日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date startDate;
+
+ /** 结束日期 */
+ @Excel(name = "结束日期", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+ private Date endDate;
+
+}
\ No newline at end of file
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTempCreditSalesmenMapper.java b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTempCreditSalesmenMapper.java
new file mode 100644
index 000000000..6d0d5ea50
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/mapper/EmisTempCreditSalesmenMapper.java
@@ -0,0 +1,46 @@
+package com.xdadan.erp.emis.mapper;
+
+import com.xdadan.erp.emis.domain.EmisCreditSalesmen;
+import com.xdadan.erp.emis.domain.EmisTempCreditSalesmen;
+import org.apache.ibatis.annotations.Param;
+
+import java.math.BigDecimal;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 销售临时额度Mapper接口
+ *
+ * @author heyu
+ * @date 2025-04-15
+ */
+public interface EmisTempCreditSalesmenMapper {
+ /**
+ * 新增销售临时额度
+ */
+ public int insertEmisTempCreditSalesmen(EmisTempCreditSalesmen emisTempCreditSalesmen);
+
+ /**
+ * 查询销售临时额度列表
+ */
+ public List selectEmisTempCreditSalesmenList(EmisTempCreditSalesmen emisTempCreditSalesmen);
+
+ /**
+ * 修改销售临时额度
+ */
+ public int updateEmisTempCreditSalesmen(EmisTempCreditSalesmen emisTempCreditSalesmen);
+
+ /**
+ * 删除销售临时额度
+ */
+ public int deleteEmisTempCreditSalesmenByIds(Long[] ids);
+
+ /**
+ * 查询销售信用额度信息
+ *
+ * @param query 查询条件
+ * @return 销售信用额度信息
+ */
+ public EmisCreditSalesmen selectCreditSalesmenInfo(EmisCreditSalesmen query);
+
+}
\ No newline at end of file
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTempCreditSalesmenService.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTempCreditSalesmenService.java
new file mode 100644
index 000000000..b18973950
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/IEmisTempCreditSalesmenService.java
@@ -0,0 +1,56 @@
+/**
+* @Project: emis
+* @Title: EmisTempCreditSalesmenService.java
+* @author heyu
+* @date 2025-04-15 16:17:56
+* @version v1.0
+* @Description: 销售临时额度 服务类接口
+*/
+package com.xdadan.erp.emis.service;
+
+import com.xdadan.erp.emis.domain.EmisTempCreditSalesmen;
+import com.xdadan.erp.emis.domain.exception.EmisBizError;
+
+import java.util.List;
+
+/**
+ * @ClassName EmisTempCreditSalesmenService
+ * @Description 销售临时额度
+ * @author heyu
+ * @date 2025-04-15 16:17:56
+ */
+public interface IEmisTempCreditSalesmenService {
+
+ /**
+ * 新增销售临时额度
+ *
+ * @param emisTempCreditSalesmen 销售临时额度
+ * @return 结果
+ */
+ int insertEmisTempCreditSalesmen(EmisTempCreditSalesmen emisTempCreditSalesmen) throws EmisBizError;
+
+ /**
+ * 查询销售临时额度列表
+ *
+ * @param emisTempCreditSalesmen 销售临时额度
+ * @return 销售临时额度集合
+ */
+ List selectEmisTempCreditSalesmenList(EmisTempCreditSalesmen emisTempCreditSalesmen);
+
+ /**
+ * 修改销售临时额度
+ *
+ * @param emisTempCreditSalesmen 销售临时额度
+ * @return 结果
+ */
+ int updateEmisTempCreditSalesmen(EmisTempCreditSalesmen emisTempCreditSalesmen) throws EmisBizError;
+
+ /**
+ * 批量删除销售临时额度
+ *
+ * @param ids 需要删除的销售临时额度主键集合
+ * @return 结果
+ */
+ int deleteEmisTempCreditSalesmenByIds(Long[] ids);
+
+}
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditSalesmenServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditSalesmenServiceImpl.java
index 5d766d1a1..ee9be4899 100644
--- a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditSalesmenServiceImpl.java
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisCreditSalesmenServiceImpl.java
@@ -1,4 +1,4 @@
- /**
+/**
* @Project: emis
* @Title: EmisCreditSalesmenServiceImpl.java
* @author linfso
@@ -11,14 +11,16 @@
package com.xdadan.erp.emis.service.impl;
import java.math.BigDecimal;
+import java.util.Date;
import java.util.List;
import java.util.Map;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.fastjson.JSON;
-import com.xdadan.erp.emis.domain.EmisCreditCustomer;
+import com.xdadan.erp.emis.domain.EmisTempCreditSalesmen;
import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
import com.xdadan.erp.emis.domain.exception.EmisBizError;
+import com.xdadan.erp.emis.mapper.EmisTempCreditSalesmenMapper;
import com.xdadan.erp.emis.utils.WaybillHelper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -39,6 +41,9 @@ public class EmisCreditSalesmenServiceImpl implements IEmisCreditSalesmenService
@Autowired
private EmisCreditSalesmenMapper emisCreditSalesmenMapper;
+ @Autowired
+ private EmisTempCreditSalesmenMapper emisTempCreditSalesmenMapper;
+
/**
* 查询销售信用额度
* @param id 销售信用额度主键
@@ -52,13 +57,59 @@ public class EmisCreditSalesmenServiceImpl implements IEmisCreditSalesmenService
/**
* 查询销售信用额度列表
+ *
* @param emisCreditSalesmen 销售信用额度
* @return 销售信用额度
*/
@Override
- public List selectEmisCreditSalesmenList(EmisCreditSalesmen emisCreditSalesmen)
- {
- return emisCreditSalesmenMapper.selectEmisCreditSalesmenList(emisCreditSalesmen);
+ public List selectEmisCreditSalesmenList(EmisCreditSalesmen emisCreditSalesmen) {
+ log.info("开始查询销售信用额度列表");
+ List list = emisCreditSalesmenMapper.selectEmisCreditSalesmenList(emisCreditSalesmen);
+
+ // 计算每个记录的临时额度总额
+ for (EmisCreditSalesmen item : list) {
+ calculateAndSetTempCreditMoney(item);
+ }
+
+ return list;
+ }
+
+ /**
+ * 计算并设置临时额度总额
+ * tempCreditMoney = creditMoney + tempCreditMoneyAdjust
+ * tempCreditMoneyAdjust取自emis_temp_credit_salesmen,有多条时取当前时间在范围内的一条,没有则为0
+ *
+ * @param creditSalesmen 销售信用额度记录
+ */
+ private void calculateAndSetTempCreditMoney(EmisCreditSalesmen creditSalesmen) {
+ log.info("开始计算客户[{}]的临时额度总额", creditSalesmen.getAccCode());
+
+ // 获取基础信用额度
+ BigDecimal baseCreditMoney = creditSalesmen.getCreditMoney() != null ? creditSalesmen.getCreditMoney()
+ : BigDecimal.ZERO;
+
+ // 查询当前有效的临时额度调整
+ EmisTempCreditSalesmen tempQuery = new EmisTempCreditSalesmen();
+ tempQuery.setAccCode(creditSalesmen.getAccCode());
+ List tempList = emisTempCreditSalesmenMapper
+ .selectEmisTempCreditSalesmenList(tempQuery);
+
+ BigDecimal tempAdjust = BigDecimal.ZERO;
+ Date now = new Date();
+
+ for (EmisTempCreditSalesmen temp : tempList) {
+ if (temp.getStartDate() != null && temp.getEndDate() != null
+ && now.after(temp.getStartDate()) && now.before(temp.getEndDate())) {
+ tempAdjust = temp.getTempCreditMoneyAdjust() != null ? temp.getTempCreditMoneyAdjust()
+ : BigDecimal.ZERO;
+ break;
+ }
+ }
+
+ BigDecimal totalCreditMoney = baseCreditMoney.add(tempAdjust);
+ creditSalesmen.setTempCreditMoney(totalCreditMoney);
+ log.info("客户[{}]的临时额度总额计算完成: 基础额度[{}] + 临时调整[{}] = 总额[{}]",
+ creditSalesmen.getAccCode(), baseCreditMoney, tempAdjust, totalCreditMoney);
}
/**
diff --git a/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTempCreditSalesmenServiceImpl.java b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTempCreditSalesmenServiceImpl.java
new file mode 100644
index 000000000..7689ad7f5
--- /dev/null
+++ b/emis-biz/src/main/java/com/xdadan/erp/emis/service/impl/EmisTempCreditSalesmenServiceImpl.java
@@ -0,0 +1,202 @@
+/**
+ * @Project: emis
+ * @Title: EmisTempCreditSalesmenServiceImpl.java
+ * @author heyu
+ * @date 2025-04-15 16:17:56
+ * @version v1.0
+ * @Description: 销售临时额度 实体类
+ */
+
+package com.xdadan.erp.emis.service.impl;
+
+import java.math.BigDecimal;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+
+import com.xdadan.erp.common.utils.DateUtils;
+import com.xdadan.erp.emis.domain.EmisTempCreditSalesmen;
+import com.xdadan.erp.emis.domain.EmisCreditSalesmen;
+import com.xdadan.erp.emis.domain.enumtype.EmisBizErrorType;
+import com.xdadan.erp.emis.domain.exception.EmisBizError;
+import com.xdadan.erp.emis.mapper.EmisCreditSalesmenMapper;
+import com.xdadan.erp.emis.mapper.EmisTempCreditSalesmenMapper;
+import com.xdadan.erp.emis.service.IEmisTempCreditSalesmenService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * 销售临时额度Service业务层处理
+ *
+ * @author heyu
+ * @date 2025-04-15 16:17:56
+ */
+@Slf4j
+@Service
+public class EmisTempCreditSalesmenServiceImpl implements IEmisTempCreditSalesmenService {
+
+ @Autowired
+ private EmisTempCreditSalesmenMapper emisTempCreditSalesmenMapper;
+
+ @Override
+ public int insertEmisTempCreditSalesmen(EmisTempCreditSalesmen emisTempCreditSalesmen) throws EmisBizError {
+ // 获取销售信用额度信息
+ EmisCreditSalesmen query = new EmisCreditSalesmen();
+ query.setAccCode(emisTempCreditSalesmen.getAccCode());
+ EmisCreditSalesmen creditInfo = emisTempCreditSalesmenMapper.selectCreditSalesmenInfo(query);
+ if (creditInfo == null) {
+ log.error("未找到客户[{}]对应的销售信用额度记录", emisTempCreditSalesmen.getAccCode());
+ throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "未找到对应的销售信用额度记录");
+ }
+
+ // 校验临时额度日期范围
+ validateTempCreditDateRange(emisTempCreditSalesmen, creditInfo);
+
+ // 校验临时额度时间连续性
+ validateTempCreditTimeContinuity(emisTempCreditSalesmen);
+
+ // 设置销售员
+ emisTempCreditSalesmen.setSalesmen(creditInfo.getSalesmen());
+
+ int rows = emisTempCreditSalesmenMapper.insertEmisTempCreditSalesmen(emisTempCreditSalesmen);
+ return rows;
+ }
+
+ @Override
+ public List selectEmisTempCreditSalesmenList(
+ EmisTempCreditSalesmen emisTempCreditSalesmen) {
+ List list = emisTempCreditSalesmenMapper
+ .selectEmisTempCreditSalesmenList(emisTempCreditSalesmen);
+ log.info("查询到{}条临时额度记录", list.size());
+ return list;
+ }
+
+ @Override
+ public int updateEmisTempCreditSalesmen(EmisTempCreditSalesmen emisTempCreditSalesmen) throws EmisBizError {
+ // 获取原记录的临时额度
+ EmisTempCreditSalesmen oldRecord = new EmisTempCreditSalesmen();
+ oldRecord.setId(emisTempCreditSalesmen.getId());
+ List list = selectEmisTempCreditSalesmenList(oldRecord);
+ if (!list.isEmpty()) {
+ EmisTempCreditSalesmen original = list.get(0);
+
+ // 获取当前信用额度
+ EmisCreditSalesmen query = new EmisCreditSalesmen();
+ query.setAccCode(original.getAccCode());
+ EmisCreditSalesmen creditInfo = emisTempCreditSalesmenMapper.selectCreditSalesmenInfo(query);
+ if (creditInfo == null) {
+ log.error("未找到客户[{}]对应的销售信用额度记录", original.getAccCode());
+ throw new EmisBizError(EmisBizErrorType.NOT_EXISTS, "未找到对应的销售信用额度记录");
+ }
+
+ // 校验临时额度日期范围
+ validateTempCreditDateRange(emisTempCreditSalesmen, creditInfo);
+
+ // 校验临时额度时间连续性
+ validateTempCreditTimeContinuity(emisTempCreditSalesmen);
+
+ int rows = emisTempCreditSalesmenMapper.updateEmisTempCreditSalesmen(emisTempCreditSalesmen);
+
+ return rows;
+ }
+ return 0;
+ }
+
+ /**
+ * 校验临时额度日期范围是否在销售信用额度日期范围内
+ *
+ * @param tempCredit 临时额度信息
+ * @param creditInfo 销售信用额度信息
+ */
+ private void validateTempCreditDateRange(EmisTempCreditSalesmen tempCredit, EmisCreditSalesmen creditInfo)
+ throws EmisBizError {
+ if (tempCredit.getStartDate() == null || tempCredit.getEndDate() == null) {
+ throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "临时额度的开始日期和结束日期不能为空");
+ }
+
+ // 获取当前日期(年月日)
+ Calendar calendar = Calendar.getInstance();
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ calendar.set(Calendar.MILLISECOND, 0);
+ Date currentDate = calendar.getTime();
+
+ // 校验开始日期不能早于当前日期
+ if (tempCredit.getStartDate().before(currentDate)) {
+ throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "临时额度的开始日期不能早于当前日期");
+ }
+
+ if (tempCredit.getStartDate().after(tempCredit.getEndDate())) {
+ throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "临时额度的开始日期不能晚于结束日期");
+ }
+
+ if (creditInfo.getStartDate() != null && tempCredit.getStartDate().before(creditInfo.getStartDate())) {
+ throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "临时额度的开始日期不能早于销售信用额度的开始日期");
+ }
+
+ if (creditInfo.getEndDate() != null && tempCredit.getEndDate().after(creditInfo.getEndDate())) {
+ throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1, "临时额度的结束日期不能晚于销售信用额度的结束日期");
+ }
+ }
+
+ /**
+ * 校验临时额度时间连续性
+ * 同一个acc_code对应的多个start_date、end_date不能有交叉
+ *
+ * @param tempCredit 临时额度信息
+ */
+ private void validateTempCreditTimeContinuity(EmisTempCreditSalesmen tempCredit) throws EmisBizError {
+ log.info("开始校验客户[{}]的临时额度时间范围", tempCredit.getAccCode());
+
+ // 查询该客户的所有临时额度记录
+ EmisTempCreditSalesmen query = new EmisTempCreditSalesmen();
+ query.setAccCode(tempCredit.getAccCode());
+ List existingCredits = selectEmisTempCreditSalesmenList(query);
+
+ // 检查新记录的时间范围是否与现有记录有交叉
+ for (EmisTempCreditSalesmen credit : existingCredits) {
+ if (credit.getId().equals(tempCredit.getId())) {
+ continue; // 跳过当前正在修改的记录
+ }
+
+ // 检查时间范围是否有交叉
+ if (isDateRangeOverlap(tempCredit.getStartDate(), tempCredit.getEndDate(),
+ credit.getStartDate(), credit.getEndDate())) {
+ throw new EmisBizError(EmisBizErrorType.PARAM_ERROR1,
+ String.format("临时额度时间范围与现有记录交叉: 新记录[%s-%s], 现有记录[%s-%s]",
+ DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", tempCredit.getStartDate()),
+ DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", tempCredit.getEndDate()),
+ DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", credit.getStartDate()),
+ DateUtils.parseDateToStr("yyyy-MM-dd HH:mm:ss", credit.getEndDate())));
+ }
+ }
+
+ log.info("客户[{}]的临时额度时间范围校验通过", tempCredit.getAccCode());
+ }
+
+ /**
+ * 检查两个时间范围是否有交叉
+ *
+ * @param start1 第一个时间范围的开始时间
+ * @param end1 第一个时间范围的结束时间
+ * @param start2 第二个时间范围的开始时间
+ * @param end2 第二个时间范围的结束时间
+ * @return true表示有交叉,false表示无交叉
+ */
+ private boolean isDateRangeOverlap(Date start1, Date end1, Date start2, Date end2) {
+ if (start1 == null || end1 == null || start2 == null || end2 == null) {
+ return false;
+ }
+
+ // 检查是否有交叉
+ return !(end1.before(start2) || start1.after(end2));
+ }
+
+ @Override
+ public int deleteEmisTempCreditSalesmenByIds(Long[] ids) {
+ return emisTempCreditSalesmenMapper.deleteEmisTempCreditSalesmenByIds(ids);
+ }
+}
diff --git a/emis-biz/src/main/resources/mapper/EmisTempCreditSalesmenMapper.xml b/emis-biz/src/main/resources/mapper/EmisTempCreditSalesmenMapper.xml
new file mode 100644
index 000000000..11e84f58f
--- /dev/null
+++ b/emis-biz/src/main/resources/mapper/EmisTempCreditSalesmenMapper.xml
@@ -0,0 +1,127 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select t.id, t.acc_code, t.salesmen, t.temp_credit_money_adjust,
+ t.start_date, t.end_date, t.del_flag, t.create_by, t.create_time,
+ t.update_by, t.update_time, t.remark, t.create_site, t.update_site,c.trans_type
+ from emis_temp_credit_salesmen t
+ left join emis_credit_salesmen c on t.acc_code = c.acc_code and c.del_flag = '0'
+
+
+
+
+
+
+
+
+
+ insert into emis_temp_credit_salesmen
+
+ acc_code,
+ salesmen,
+ temp_credit_money_adjust,
+ start_date,
+ end_date,
+ del_flag,
+ create_by,
+ create_time,
+ update_by,
+ update_time,
+ remark,
+ create_site,
+ update_site,
+
+
+ #{accCode},
+ #{salesmen},
+ #{tempCreditMoneyAdjust},
+ #{startDate},
+ #{endDate},
+ #{delFlag},
+ #{createBy},
+ #{createTime},
+ #{updateBy},
+ #{updateTime},
+ #{remark},
+ #{createSite},
+ #{updateSite},
+
+
+
+
+ update emis_temp_credit_salesmen
+
+ acc_code = #{accCode},
+ salesmen = #{salesmen},
+ temp_credit_money_adjust = #{tempCreditMoneyAdjust},
+ start_date = #{startDate},
+ end_date = #{endDate},
+ del_flag = #{delFlag},
+ create_by = #{createBy},
+ create_time = #{createTime},
+ update_by = #{updateBy},
+ update_time = #{updateTime},
+ remark = #{remark},
+ create_site = #{createSite},
+ update_site = #{updateSite},
+
+ where id = #{id}
+
+
+
+ update emis_temp_credit_salesmen set del_flag = '1' where id in
+
+ #{id}
+
+
+
+
\ No newline at end of file