fix(mapper): 修复批量插入和时间查询逻辑

- 修改 DmsBillsMaintDetail 批量插入语句为标准 insert into 格式并移除多余字段
- 为批量插入操作添加空集合检查避免无效执行
- 修复关机记录查询中时间范围条件的日期转换逻辑
- 添加参数非空验证防止查询异常
master
zangch@mesnac.com 2 days ago
parent aa6320e363
commit 26fcb8cc09

@ -131,7 +131,9 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS
billsMaintDetails.add(dmsBillsMaintDetail); billsMaintDetails.add(dmsBillsMaintDetail);
}); });
dmsBillsMaintInstanceMapper.batchDmsBillsMaintDetail(billsMaintDetails); if (!billsMaintDetails.isEmpty()) {
dmsBillsMaintInstanceMapper.batchDmsBillsMaintDetail(billsMaintDetails);
}
ArrayList<DmsBillsMaintDetailProject> list1 = new ArrayList<>(); ArrayList<DmsBillsMaintDetailProject> list1 = new ArrayList<>();
List<DmsBillsMaintDetail> list = dmsBillsMaintDetailMapper.selectDetailList(maintInstanceId); List<DmsBillsMaintDetail> list = dmsBillsMaintDetailMapper.selectDetailList(maintInstanceId);
for (DmsBillsMaintDetail detail : list) { for (DmsBillsMaintDetail detail : list) {
@ -148,7 +150,9 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS
} }
} }
dmsBillsMaintInstanceMapper.batchDmsProject(list1); if (!list1.isEmpty()) {
dmsBillsMaintInstanceMapper.batchDmsProject(list1);
}
} }
@Override @Override
@ -509,7 +513,9 @@ public class DmsBillsMaintInstanceServiceImpl implements IDmsBillsMaintInstanceS
detail.setCreateTime(now); detail.setCreateTime(now);
billsMaintDetails.add(detail); billsMaintDetails.add(detail);
} }
dmsBillsMaintInstanceMapper.batchDmsBillsMaintDetail(billsMaintDetails); if (!billsMaintDetails.isEmpty()) {
dmsBillsMaintInstanceMapper.batchDmsBillsMaintDetail(billsMaintDetails);
}
// 创建保养工单明细项目(所有项目均为已完成状态) // 创建保养工单明细项目(所有项目均为已完成状态)
List<DmsBillsMaintDetail> insertedDetails = dmsBillsMaintDetailMapper.selectDetailList(instance.getMaintInstanceId()); List<DmsBillsMaintDetail> insertedDetails = dmsBillsMaintDetailMapper.selectDetailList(instance.getMaintInstanceId());

@ -165,12 +165,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<insert id="batchDmsBillsMaintDetail"> <insert id="batchDmsBillsMaintDetail">
insert all insert into dms_bills_maint_detail(
<foreach item="item" index="index" collection="list"> bills_maint_detail_id, maint_instance_id, machine_id, maint_station_id, maint_standard_id,
into dms_bills_maint_detail( operation_description, maint_status, remark, create_by, create_time, update_by, update_time
bills_maint_detail_id, maint_instance_id, device_id, station_id, maint_standard_id, )
operation_description, maint_status, is_flag, remark, create_by, create_time, update_by, update_time <foreach item="item" index="index" collection="list" separator="union all">
) values ( select
HAIWEI.SEQ_DMS_MAINT_DETAIL.NEXTVAL, HAIWEI.SEQ_DMS_MAINT_DETAIL.NEXTVAL,
#{item.maintInstanceId,jdbcType=NUMERIC}, #{item.maintInstanceId,jdbcType=NUMERIC},
#{item.deviceId,jdbcType=NUMERIC}, #{item.deviceId,jdbcType=NUMERIC},
@ -178,15 +178,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{item.maintStandardId,jdbcType=NUMERIC}, #{item.maintStandardId,jdbcType=NUMERIC},
#{item.operationDescription,jdbcType=VARCHAR}, #{item.operationDescription,jdbcType=VARCHAR},
#{item.maintStatus,jdbcType=NUMERIC}, #{item.maintStatus,jdbcType=NUMERIC},
#{item.isFlag,jdbcType=NUMERIC},
#{item.remark,jdbcType=VARCHAR}, #{item.remark,jdbcType=VARCHAR},
#{item.createBy,jdbcType=NUMERIC}, #{item.createBy,jdbcType=NUMERIC},
#{item.createTime,jdbcType=TIMESTAMP}, #{item.createTime,jdbcType=TIMESTAMP},
#{item.updateBy,jdbcType=NUMERIC}, #{item.updateBy,jdbcType=NUMERIC},
#{item.updateTime,jdbcType=TIMESTAMP} #{item.updateTime,jdbcType=TIMESTAMP}
) from dual
</foreach> </foreach>
select 1 from dual
</insert> </insert>
<insert id="batchDmsProject"> <insert id="batchDmsProject">
insert all insert all

@ -57,8 +57,9 @@
<if test="beginTime != null and endTime != null"> <if test="beginTime != null and endTime != null">
and r.shut_begin_time between #{beginTime} and #{endTime} and r.shut_begin_time between #{beginTime} and #{endTime}
</if> </if>
<if test="params != null and params.beginTime != null and params.endTime != null"> <if test="params != null and params.beginTime != null and params.beginTime != '' and params.endTime != null and params.endTime != ''">
and r.shut_begin_time between #{params.beginTime} and #{params.endTime} and r.shut_begin_time between to_date(#{params.beginTime}, 'yyyy-MM-dd HH24:mi:ss')
and to_date(#{params.endTime}, 'yyyy-MM-dd HH24:mi:ss')
</if> </if>
<if test="shutBeginTime != null ">and r.shut_begin_time &gt;= #{shutBeginTime}</if> <if test="shutBeginTime != null ">and r.shut_begin_time &gt;= #{shutBeginTime}</if>
<if test="shutEndTime != null ">and #{shutEndTime} &gt;= r.shut_end_time</if> <if test="shutEndTime != null ">and #{shutEndTime} &gt;= r.shut_end_time</if>

Loading…
Cancel
Save