fix: 优化自动过鱼数据接口
This commit is contained in:
parent
aa8013fdb4
commit
a167b41404
@ -117,4 +117,9 @@ public class SdFpssrlRAiRequest {
|
||||
* 备注
|
||||
*/
|
||||
private String remark;
|
||||
|
||||
/**
|
||||
* 附件ID(多个以逗号分隔),通过上传图片接口获取
|
||||
*/
|
||||
private String fid;
|
||||
}
|
||||
|
||||
@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.yfd.platform.qgc_base.domain.SdFpssrlR;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 过鱼设施自动数据表 Mapper 接口
|
||||
@ -11,4 +13,10 @@ import org.apache.ibatis.annotations.Mapper;
|
||||
*/
|
||||
@Mapper
|
||||
public interface SdFpssrlRMapper extends BaseMapper<SdFpssrlR> {
|
||||
|
||||
/**
|
||||
* 批量合并过鱼自动数据(基于 STCD + TM + FTP 唯一)
|
||||
* 存在则更新,不存在则新增
|
||||
*/
|
||||
int mergeFishRecords(List<SdFpssrlR> list);
|
||||
}
|
||||
|
||||
@ -131,14 +131,40 @@ public class SdFpssrlRServiceImpl extends ServiceImpl<SdFpssrlRMapper, SdFpssrlR
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public List<SdFpssrlR> processAiReportBatch(List<SdFpssrlRAiRequest> requests) {
|
||||
List<SdFpssrlR> results = new ArrayList<>();
|
||||
List<SdFpssrlR> entities = new ArrayList<>();
|
||||
Date now = new Date();
|
||||
for (SdFpssrlRAiRequest req : requests) {
|
||||
SdFpssrlR entity = processAiReport(req);
|
||||
if (entity != null) {
|
||||
results.add(entity);
|
||||
}
|
||||
SdFpssrlR entity = new SdFpssrlR();
|
||||
entity.setStcd(req.getStcd());
|
||||
entity.setTm(req.getTm());
|
||||
entity.setFtp(req.getFtp());
|
||||
entity.setFcnt(req.getFcnt() != null ? req.getFcnt() : 1);
|
||||
entity.setFsz(req.getFsz());
|
||||
entity.setLength(req.getLength());
|
||||
entity.setWidth(req.getWidth());
|
||||
entity.setFishspeed(req.getFishspeed());
|
||||
entity.setDirection(req.getDirection());
|
||||
entity.setFishposition(req.getFishposition());
|
||||
entity.setFirstImgUrl(req.getFirstImgUrl());
|
||||
entity.setSecondImgUrl(req.getSecondImgUrl());
|
||||
entity.setVideoUrl(req.getVideoUrl());
|
||||
entity.setTemperature(req.getTemperature());
|
||||
entity.setWaterlevel(req.getWaterlevel());
|
||||
entity.setSpeed(req.getSpeed());
|
||||
entity.setQ(req.getQ());
|
||||
entity.setDox(req.getDox());
|
||||
entity.setTu(req.getTu());
|
||||
entity.setChannelno(StrUtil.isNotBlank(req.getChannelno()) ? req.getChannelno() : "主通道");
|
||||
entity.setFid(req.getFid());
|
||||
entity.setRemark(req.getRemark());
|
||||
entity.setRecordUser("AI_SYSTEM");
|
||||
entity.setRecordTime(now);
|
||||
entity.setModifyUser("AI_SYSTEM");
|
||||
entity.setModifyTime(now);
|
||||
entity.setIsDeleted(0);
|
||||
entities.add(entity);
|
||||
}
|
||||
this.saveBatch(results);
|
||||
return results;
|
||||
baseMapper.mergeFishRecords(entities);
|
||||
return entities;
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,80 @@
|
||||
<?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.yfd.platform.qgc_base.mapper.SdFpssrlRMapper">
|
||||
|
||||
<!-- 批量合并过鱼自动数据(基于 STCD + TM + FTP 唯一) -->
|
||||
<insert id="mergeFishRecords" parameterType="java.util.List">
|
||||
MERGE INTO SD_FPSSRL_R T
|
||||
USING (
|
||||
<foreach collection="list" item="obj" index="index" separator="UNION ALL">
|
||||
SELECT
|
||||
#{obj.stcd, jdbcType=VARCHAR} AS STCD,
|
||||
#{obj.tm, jdbcType=TIMESTAMP} AS TM,
|
||||
#{obj.ftp, jdbcType=VARCHAR} AS FTP,
|
||||
#{obj.fcnt, jdbcType=INTEGER} AS FCNT,
|
||||
#{obj.fsz, jdbcType=VARCHAR} AS FSZ,
|
||||
#{obj.length, jdbcType=DECIMAL} AS LENGTH,
|
||||
#{obj.width, jdbcType=DECIMAL} AS WIDTH,
|
||||
#{obj.fishspeed, jdbcType=VARCHAR} AS FISHSPEED,
|
||||
#{obj.direction, jdbcType=INTEGER} AS DIRECTION,
|
||||
#{obj.fishposition, jdbcType=DECIMAL} AS FISHPOSITION,
|
||||
#{obj.firstImgUrl, jdbcType=VARCHAR} AS FIRSTIMGURL,
|
||||
#{obj.secondImgUrl, jdbcType=VARCHAR} AS SECONDIMGURL,
|
||||
#{obj.videoUrl, jdbcType=VARCHAR} AS VIDEOURL,
|
||||
#{obj.temperature, jdbcType=DECIMAL} AS TEMPERATURE,
|
||||
#{obj.waterlevel, jdbcType=DECIMAL} AS WATERLEVEL,
|
||||
#{obj.speed, jdbcType=DECIMAL} AS SPEED,
|
||||
#{obj.q, jdbcType=DECIMAL} AS Q,
|
||||
#{obj.dox, jdbcType=DECIMAL} AS DOX,
|
||||
#{obj.tu, jdbcType=INTEGER} AS TU,
|
||||
#{obj.channelno, jdbcType=VARCHAR} AS CHANNELNO,
|
||||
#{obj.fid, jdbcType=VARCHAR} AS FID,
|
||||
#{obj.remark, jdbcType=VARCHAR} AS REMARK,
|
||||
#{obj.recordUser, jdbcType=VARCHAR} AS RECORD_USER,
|
||||
#{obj.modifyUser, jdbcType=VARCHAR} AS MODIFY_USER
|
||||
FROM DUAL
|
||||
</foreach>
|
||||
) S
|
||||
ON (T.STCD = S.STCD AND T.TM = S.TM AND T.FTP = S.FTP AND T.IS_DELETED = 0)
|
||||
WHEN MATCHED THEN
|
||||
UPDATE SET
|
||||
T.FCNT = S.FCNT,
|
||||
T.FSZ = S.FSZ,
|
||||
T.LENGTH = S.LENGTH,
|
||||
T.WIDTH = S.WIDTH,
|
||||
T.FISHSPEED = S.FISHSPEED,
|
||||
T.DIRECTION = S.DIRECTION,
|
||||
T.FISHPOSITION = S.FISHPOSITION,
|
||||
T.FIRSTIMGURL = S.FIRSTIMGURL,
|
||||
T.SECONDIMGURL = S.SECONDIMGURL,
|
||||
T.VIDEOURL = S.VIDEOURL,
|
||||
T.TEMPERATURE = S.TEMPERATURE,
|
||||
T.WATERLEVEL = S.WATERLEVEL,
|
||||
T.SPEED = S.SPEED,
|
||||
T.Q = S.Q,
|
||||
T.DOX = S.DOX,
|
||||
T.TU = S.TU,
|
||||
T.CHANNELNO = S.CHANNELNO,
|
||||
T.FID = S.FID,
|
||||
T.REMARK = S.REMARK,
|
||||
T.MODIFY_USER = S.MODIFY_USER,
|
||||
T.MODIFY_TIME = SYSDATE
|
||||
WHEN NOT MATCHED THEN
|
||||
INSERT (
|
||||
ID, STCD, TM, FTP, FCNT, FSZ, LENGTH, WIDTH, FISHSPEED,
|
||||
DIRECTION, FISHPOSITION, FIRSTIMGURL, SECONDIMGURL, VIDEOURL,
|
||||
TEMPERATURE, WATERLEVEL, SPEED, Q, DOX, TU, CHANNELNO,
|
||||
FID, REMARK, RECORD_USER, RECORD_TIME, MODIFY_USER, MODIFY_TIME,
|
||||
IS_DELETED
|
||||
) VALUES (
|
||||
SYS_GUID(),
|
||||
S.STCD, S.TM, S.FTP, S.FCNT, S.FSZ, S.LENGTH, S.WIDTH, S.FISHSPEED,
|
||||
S.DIRECTION, S.FISHPOSITION, S.FIRSTIMGURL, S.SECONDIMGURL, S.VIDEOURL,
|
||||
S.TEMPERATURE, S.WATERLEVEL, S.SPEED, S.Q, S.DOX, S.TU, S.CHANNELNO,
|
||||
S.FID, S.REMARK, S.RECORD_USER, SYSDATE, S.MODIFY_USER, SYSDATE,
|
||||
0
|
||||
)
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
Loading…
Reference in New Issue
Block a user