fix: 导入excel扩展到103表数据
parent
0b7f6ad62e
commit
b4842b444a
@ -0,0 +1,58 @@
|
||||
package com.xydl.cac.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author jignjing
|
||||
* @date 2024-01-31
|
||||
**/
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Entity
|
||||
@Table(name = "n_point")
|
||||
@ApiModel("装置点表")
|
||||
public class N103Point {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty("NPoint表的id")
|
||||
@Column(name = "npoint_id")
|
||||
private Integer npointId;
|
||||
|
||||
@ApiModelProperty("N103Sensor表的id")
|
||||
@Column(name = "sensor_103_id")
|
||||
private Integer sensor103Id;
|
||||
|
||||
@ApiModelProperty("信息体地址")
|
||||
@Column(name = "sadr")
|
||||
private String sadr;
|
||||
|
||||
@ApiModelProperty("条目号")
|
||||
@Column(name = "item_no")
|
||||
private String itemNo;
|
||||
|
||||
@ApiModelProperty("61850对象参引")
|
||||
@Column(name = "paramindex")
|
||||
private String paramindex;
|
||||
|
||||
@ApiModelProperty("名称后半部分")
|
||||
@Column(name = "part_name")
|
||||
private String partName;
|
||||
|
||||
@Transient
|
||||
NPoint nPoint;
|
||||
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.xydl.cac.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Entity
|
||||
@Table(name = "n_103_sensor")
|
||||
@ApiModel("装置和103关联表")
|
||||
public class N103Sensor {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||
@Column(name = "id")
|
||||
private Integer id;
|
||||
|
||||
@ApiModelProperty("关联表ID")
|
||||
@Column(name = "nsensor_id")
|
||||
private Integer nsensorId;
|
||||
|
||||
@ApiModelProperty("组号")
|
||||
@Column(name = "grp_no")
|
||||
private Integer grpNo;
|
||||
|
||||
@Transient
|
||||
NSensor nSensor;
|
||||
|
||||
@Transient
|
||||
private List<N103Point> points;
|
||||
|
||||
public String addPoint(N103Point point) {
|
||||
if (points == null) {
|
||||
points = new ArrayList<>();
|
||||
}
|
||||
for (N103Point item : points) {
|
||||
if (item.getNPoint().getField().equalsIgnoreCase(point.getNPoint().getField())) {
|
||||
return "第" + point.getNPoint().getRow() + "行和第" + item.getNPoint().getRow() +
|
||||
"行存在同一标识(" + nSensor.getSensorCode() + ")的相同字段(" + point.getNPoint().getField() + ")";
|
||||
}
|
||||
}
|
||||
points.add(point);
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.xydl.cac.repository;
|
||||
|
||||
import com.xydl.cac.entity.N103Point;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Repository
|
||||
public interface N103PointRepository extends JpaRepository<N103Point, Integer>, JpaSpecificationExecutor<N103Point> {
|
||||
|
||||
List<N103Point> findBySensor103Id(Integer sensor103Id);
|
||||
|
||||
void deleteBySensor103Id(Integer sensor103Id);
|
||||
}
|
@ -0,0 +1,15 @@
|
||||
package com.xydl.cac.repository;
|
||||
|
||||
import com.xydl.cac.entity.N103Sensor;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Repository
|
||||
public interface N103SensorRepository extends JpaRepository<N103Sensor, Integer>, JpaSpecificationExecutor<N103Sensor> {
|
||||
|
||||
List<N103Sensor> findByNsensorId(Integer nsensorId);
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.xydl.cac.service;
|
||||
|
||||
import com.xydl.cac.entity.N103Point;
|
||||
|
||||
public interface N103PointService {
|
||||
|
||||
void importOne(N103Point item);
|
||||
|
||||
void clearAll(Integer sensor103Id, Integer sensorId);
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
package com.xydl.cac.service;
|
||||
|
||||
import com.xydl.cac.entity.N103Sensor;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
public interface N103SensorService {
|
||||
|
||||
void importFrom(Collection<N103Sensor> collection);
|
||||
|
||||
void importOne(N103Sensor item);
|
||||
}
|
@ -0,0 +1,37 @@
|
||||
package com.xydl.cac.service.impl;
|
||||
|
||||
import com.xydl.cac.entity.N103Point;
|
||||
import com.xydl.cac.entity.NPoint;
|
||||
import com.xydl.cac.repository.N103PointRepository;
|
||||
import com.xydl.cac.repository.NPointRepository;
|
||||
import com.xydl.cac.service.N103PointService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class N103PointServiceImpl implements N103PointService {
|
||||
|
||||
@Resource
|
||||
N103PointRepository repository;
|
||||
@Resource
|
||||
NPointRepository nPointRepository;
|
||||
|
||||
@Override
|
||||
public void importOne(N103Point item) {
|
||||
NPoint nPoint = item.getNPoint();
|
||||
nPointRepository.save(nPoint);
|
||||
item.setNpointId(nPoint.getId());
|
||||
repository.save(item);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void clearAll(Integer sensor103Id, Integer sensorId) {
|
||||
repository.deleteBySensor103Id(sensor103Id);
|
||||
nPointRepository.deleteBySensorId(sensorId);
|
||||
}
|
||||
}
|
@ -0,0 +1,64 @@
|
||||
package com.xydl.cac.service.impl;
|
||||
|
||||
import com.xydl.cac.entity.N103Point;
|
||||
import com.xydl.cac.entity.N103Sensor;
|
||||
import com.xydl.cac.entity.NPoint;
|
||||
import com.xydl.cac.entity.NSensor;
|
||||
import com.xydl.cac.repository.N103SensorRepository;
|
||||
import com.xydl.cac.service.N103PointService;
|
||||
import com.xydl.cac.service.N103SensorService;
|
||||
import com.xydl.cac.service.NSensorService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
|
||||
@Service
|
||||
@Slf4j
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class N103SensorServiceImpl implements N103SensorService {
|
||||
@Resource
|
||||
N103SensorRepository repository;
|
||||
@Resource
|
||||
NSensorService nSensorService;
|
||||
@Resource
|
||||
N103PointService n103PointService;
|
||||
|
||||
|
||||
@Override
|
||||
public void importFrom(Collection<N103Sensor> collection) {
|
||||
for (N103Sensor item : collection) {
|
||||
this.importOne(item);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void importOne(N103Sensor item) {
|
||||
NSensor nSensor = item.getNSensor();
|
||||
nSensorService.importOne(nSensor);
|
||||
item.setNsensorId(nSensor.getId());
|
||||
|
||||
List<N103Sensor> list = repository.findByNsensorId(nSensor.getId());
|
||||
if (!CollectionUtils.isEmpty(list)) {
|
||||
item.setId(list.get(0).getId());
|
||||
}
|
||||
repository.save(item);
|
||||
|
||||
// 清空旧的全部属性
|
||||
n103PointService.clearAll(item.getId(), nSensor.getId());
|
||||
|
||||
List<N103Point> points = item.getPoints();
|
||||
if (points != null) {
|
||||
for (N103Point point : points) {
|
||||
point.setSensor103Id(item.getId());
|
||||
NPoint nPoint = point.getNPoint();
|
||||
nPoint.setSensorId(nSensor.getId());
|
||||
|
||||
n103PointService.importOne(point);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue