demand: 客户管理新增现金客户临时额度操作界面对应增删改查逻辑,现金额度管理查询额度列表新增查询临时额度对应逻辑处理

committer: heyu
This commit is contained in:
aike 2025-04-16 19:06:29 +08:00
parent 92438e9d16
commit 6d879fceb6
8 changed files with 638 additions and 5 deletions

View File

@ -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: <p> 销售临时额度 控制器 </p>
*/
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<EmisTempCreditSalesmen> 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));
}
}

View File

@ -41,6 +41,8 @@ public class EmisCreditSalesmen extends BaseEntity
private String salesmen;
/* 信用额度 */
private BigDecimal creditMoney;
/* 临时额度 */
private BigDecimal tempCreditMoney;
/* 使用额度 */
private BigDecimal useMoney;
/* 超期额度 */

View File

@ -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;
}

View File

@ -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<EmisTempCreditSalesmen> selectEmisTempCreditSalesmenList(EmisTempCreditSalesmen emisTempCreditSalesmen);
/**
* 修改销售临时额度
*/
public int updateEmisTempCreditSalesmen(EmisTempCreditSalesmen emisTempCreditSalesmen);
/**
* 删除销售临时额度
*/
public int deleteEmisTempCreditSalesmenByIds(Long[] ids);
/**
* 查询销售信用额度信息
*
* @param query 查询条件
* @return 销售信用额度信息
*/
public EmisCreditSalesmen selectCreditSalesmenInfo(EmisCreditSalesmen query);
}

View File

@ -0,0 +1,56 @@
/**
* @Project: emis
* @Title: EmisTempCreditSalesmenService.java
* @author heyu
* @date 2025-04-15 16:17:56
* @version v1.0
* @Description: <p> 销售临时额度 服务类接口 </p>
*/
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<EmisTempCreditSalesmen> selectEmisTempCreditSalesmenList(EmisTempCreditSalesmen emisTempCreditSalesmen);
/**
* 修改销售临时额度
*
* @param emisTempCreditSalesmen 销售临时额度
* @return 结果
*/
int updateEmisTempCreditSalesmen(EmisTempCreditSalesmen emisTempCreditSalesmen) throws EmisBizError;
/**
* 批量删除销售临时额度
*
* @param ids 需要删除的销售临时额度主键集合
* @return 结果
*/
int deleteEmisTempCreditSalesmenByIds(Long[] ids);
}

View File

@ -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<EmisCreditSalesmen> selectEmisCreditSalesmenList(EmisCreditSalesmen emisCreditSalesmen)
{
return emisCreditSalesmenMapper.selectEmisCreditSalesmenList(emisCreditSalesmen);
public List<EmisCreditSalesmen> selectEmisCreditSalesmenList(EmisCreditSalesmen emisCreditSalesmen) {
log.info("开始查询销售信用额度列表");
List<EmisCreditSalesmen> 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<EmisTempCreditSalesmen> 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);
}
/**

View File

@ -0,0 +1,202 @@
/**
* @Project: emis
* @Title: EmisTempCreditSalesmenServiceImpl.java
* @author heyu
* @date 2025-04-15 16:17:56
* @version v1.0
* @Description: <p> 销售临时额度 实体类 </p>
*/
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<EmisTempCreditSalesmen> selectEmisTempCreditSalesmenList(
EmisTempCreditSalesmen emisTempCreditSalesmen) {
List<EmisTempCreditSalesmen> 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<EmisTempCreditSalesmen> 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<EmisTempCreditSalesmen> 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);
}
}

View File

@ -0,0 +1,127 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xdadan.erp.emis.mapper.EmisTempCreditSalesmenMapper">
<resultMap type="com.xdadan.erp.emis.domain.EmisTempCreditSalesmen" id="EmisTempCreditSalesmenResult" extends="com.xdadan.erp.emis.mapper.EmisBaseMapper.EmisBaseResult">
<result property="id" column="id"/>
<result property="accCode" column="acc_code"/>
<result property="salesmen" column="salesmen"/>
<result property="tempCreditMoneyAdjust" column="temp_credit_money_adjust"/>
<result property="startDate" column="start_date"/>
<result property="endDate" column="end_date"/>
<result property="transType" column="trans_type"/>
<result property="tempCreditMoney" column="temp_credit_money"/>
</resultMap>
<sql id="selectEmisTempCreditSalesmenVo">
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'
</sql>
<select id="selectCreditSalesmenInfo" parameterType="com.xdadan.erp.emis.domain.EmisCreditSalesmen" resultType="com.xdadan.erp.emis.domain.EmisCreditSalesmen">
select id, acc_code, salesmen, credit_money, use_money, over_term_money,
in_term_money, currency, trans_type, start_date, end_date, bl_open,
remark, tenant_id, del_flag, create_by, create_time, update_by,
update_time, create_site, update_site
from emis_credit_salesmen
where acc_code = #{accCode}
and del_flag = '0'
order by create_time desc
limit 1
</select>
<select id="selectEmisTempCreditSalesmenList" parameterType="com.xdadan.erp.emis.domain.EmisTempCreditSalesmen"
resultMap="EmisTempCreditSalesmenResult">
<include refid="selectEmisTempCreditSalesmenVo"/>
<where>
<if test="accCode != null and accCode != ''">
AND t.acc_code = #{accCode}
</if>
<if test="salesmen != null and salesmen != ''">
AND t.salesmen = #{salesmen}
</if>
<if test="tempCreditMoneyAdjust != null ">
AND t.temp_credit_money_adjust = #{tempCreditMoneyAdjust}
</if>
<if test="transType != null and transType != ''">
AND FIND_IN_SET(#{transType},c.trans_type)</if>
<if test="startDate != null">
AND t.start_date = #{startDate}
</if>
<if test="endDate != null">
AND t.end_date = #{endDate}
</if>
AND t.del_flag = '0'
</where>
</select>
<select id="selectEmisTempCreditSalesmenById" parameterType="Long" resultMap="EmisTempCreditSalesmenResult">
<include refid="selectEmisTempCreditSalesmenVo"/>
where id = #{id} and del_flag = '0'
</select>
<insert id="insertEmisTempCreditSalesmen" parameterType="com.xdadan.erp.emis.domain.EmisTempCreditSalesmen" useGeneratedKeys="true" keyProperty="id">
insert into emis_temp_credit_salesmen
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="accCode != null">acc_code,</if>
<if test="salesmen != null">salesmen,</if>
<if test="tempCreditMoneyAdjust != null">temp_credit_money_adjust,</if>
<if test="startDate != null">start_date,</if>
<if test="endDate != null">end_date,</if>
<if test="delFlag != null">del_flag,</if>
<if test="createBy != null">create_by,</if>
<if test="createTime != null">create_time,</if>
<if test="updateBy != null">update_by,</if>
<if test="updateTime != null">update_time,</if>
<if test="remark != null">remark,</if>
<if test="createSite != null and createSite != ''">create_site,</if>
<if test="updateSite != null and updateSite != ''">update_site,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="accCode != null">#{accCode},</if>
<if test="salesmen != null">#{salesmen},</if>
<if test="tempCreditMoneyAdjust != null">#{tempCreditMoneyAdjust},</if>
<if test="startDate != null">#{startDate},</if>
<if test="endDate != null">#{endDate},</if>
<if test="delFlag != null">#{delFlag},</if>
<if test="createBy != null">#{createBy},</if>
<if test="createTime != null">#{createTime},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="remark != null">#{remark},</if>
<if test="createSite != null and createSite != ''">#{createSite},</if>
<if test="updateSite != null and updateSite != ''">#{updateSite},</if>
</trim>
</insert>
<update id="updateEmisTempCreditSalesmen" parameterType="com.xdadan.erp.emis.domain.EmisTempCreditSalesmen">
update emis_temp_credit_salesmen
<trim prefix="SET" suffixOverrides=",">
<if test="accCode != null">acc_code = #{accCode},</if>
<if test="salesmen != null">salesmen = #{salesmen},</if>
<if test="tempCreditMoneyAdjust != null">temp_credit_money_adjust = #{tempCreditMoneyAdjust},</if>
<if test="startDate != null">start_date = #{startDate},</if>
<if test="endDate != null">end_date = #{endDate},</if>
<if test="delFlag != null">del_flag = #{delFlag},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="createTime != null">create_time = #{createTime},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="createSite != null and createSite != ''">create_site = #{createSite},</if>
<if test="updateSite != null and updateSite != ''">update_site = #{updateSite},</if>
</trim>
where id = #{id}
</update>
<update id="deleteEmisTempCreditSalesmenByIds" parameterType="String">
update emis_temp_credit_salesmen set del_flag = '1' where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</update>
</mapper>