瀏覽代碼

调整井模板关联逻辑,由井表关联字段改为单独的表存储,及单井相关模板的逻辑调整

chenwen 1 年之前
父節點
當前提交
7f7e743135

+ 17 - 0
src/main/java/com/hb/proj/base/controller/PatrolTempController.java

@@ -1,6 +1,8 @@
 package com.hb.proj.base.controller;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.annotation.Validated;
@@ -25,6 +27,21 @@ public class PatrolTempController {
 	private PatrolTempService  service;
 	
 	
+	/**
+	 * 通过多模板类型加载模板记录
+	 * @param tempType
+	 * @return
+	 */
+	@RequestMapping("/loadTempByTypes")
+	public RespVO<Object>  loadTempByTypes(@NotBlank(message="模板类型不应为空") String tempType){
+		String[] types=tempType.split(",");
+		Map<String,List<TempPO>> temps=new HashMap<>(types.length);
+		for(String type : types) {
+			temps.put(type, service.loadTypeAll(type));
+		}
+		return RespVOBuilder.ok(temps);
+	}
+	
 	/**
 	 * 加载某类型的模板基础信息
 	 * @param tempType

+ 32 - 13
src/main/java/com/hb/proj/base/controller/WellController.java

@@ -14,9 +14,12 @@ import org.springframework.web.bind.annotation.RestController;
 import com.hb.proj.allconfig.AccessToken;
 import com.hb.proj.base.service.DeviceService;
 import com.hb.proj.base.service.WellService;
+import com.hb.proj.base.service.WellTempService;
 import com.hb.proj.model.BatchWell;
 import com.hb.proj.model.DevicePO;
+import com.hb.proj.model.TempPO;
 import com.hb.proj.model.Well;
+import com.hb.proj.model.WellTempPO;
 import com.hb.proj.model.WellVO;
 import com.hb.proj.utils.RespVO;
 import com.hb.proj.utils.RespVOBuilder;
@@ -34,6 +37,9 @@ public class WellController {
 	@Autowired
 	private DeviceService deviceService;
 	
+	@Autowired
+	private WellTempService  wellTempService;
+	
 	
 	
 	/**
@@ -43,19 +49,24 @@ public class WellController {
 	 */
 	@RequestMapping("/get")
 	public RespVO<WellVO> get(@NotBlank(message = "井编号不能为空") String wellId){
-		return RespVOBuilder.ok(service.get(wellId));
+		WellVO well=service.get(wellId);
+		WellTempPO temp=wellTempService.getWellTemp(wellId, TempPO.TYPE_SINGLE);
+		well.setPatrolStdTemp(temp!=null?temp.getTempId():null);
+		temp=wellTempService.getWellTemp(wellId, TempPO.TYPE_SINGLE_GROUP);
+		well.setPatrolGrpcurveTemp(temp!=null?temp.getTempId():null);
+		return RespVOBuilder.ok(well);
 	}
 	
 	
 	/**
 	 * 增加新井
-	 * @param well  新井实体
-	 * @param  deviceCode 采集设备编码
+	 * @param wellVO  新井实体
 	 * @param token 登录人信息,自动从请求获取
 	 * @return
 	 */
 	@PostMapping("/add")
-	public RespVO<String> add(@Validated Well  well,String deviceCode,AccessToken token){
+	public RespVO<String> add(@Validated WellVO  wellVO,AccessToken token){
+		Well well=wellVO.toWell();
 		if(service.existWellName(well.getWellName(),null)) {
 			return RespVOBuilder.error("该井名已存在");
 		}
@@ -63,33 +74,43 @@ public class WellController {
 		well.setCreateBy(well.getModifyBy());
 		String wellId=service.insert(well);
 		
-		deviceService.updateBindWell(deviceCode,DevicePO.GATHER_DEV, wellId);
+		//设备关联
+		deviceService.updateBindWell(wellVO.getDeviceCode(),DevicePO.GATHER, wellId);
+		
+		//模板关联
+		wellTempService.saveWellTemp(wellVO.getWellId(),wellVO.getPatrolStdTemp(),TempPO.TYPE_SINGLE);
+		wellTempService.saveWellTemp(wellVO.getWellId(),wellVO.getPatrolGrpcurveTemp(),TempPO.TYPE_SINGLE_GROUP);
 		return RespVOBuilder.ok(wellId);
 	}
 	
 	/**
 	 * 更新井数据
-	 * @param org  井实体
-	 * @param  deviceCode 采集设备编码
+	 * @param wellVO  井实体
 	 * @param token 登录人信息,自动从请求获取
 	 * @return
 	 */
 	@PostMapping("/update")
-	public RespVO<Object> update(@Validated Well  well,String deviceCode,AccessToken token){
+	public RespVO<Object> update(@Validated WellVO  wellVO,AccessToken token){
+		Well well=wellVO.toWell();
 		if(service.existWellName(well.getWellName(),well.getWellId())) {
 			return RespVOBuilder.error("更换的新井名已存在");
 		}
 		well.setModifyBy(token!=null?token.getTokenId():"unknow");
 		service.update(well);
 		
-		deviceService.updateBindWell(deviceCode,DevicePO.GATHER_DEV, well.getWellId());
+		//设备关联
+		deviceService.updateBindWell(wellVO.getDeviceCode(),DevicePO.GATHER, well.getWellId());
+		
+		//模板关联
+		wellTempService.saveWellTemp(wellVO.getWellId(),wellVO.getPatrolStdTemp(),TempPO.TYPE_SINGLE);
+		wellTempService.saveWellTemp(wellVO.getWellId(),wellVO.getPatrolGrpcurveTemp(),TempPO.TYPE_SINGLE_GROUP);
 		return RespVOBuilder.ok();
 	}
 	
 	
 	/**
 	 * 删除单个井数据
-	 * @param orgId  被删除井id
+	 * @param wellId  被删除井id
 	 * @return
 	 */
 	@RequestMapping("/delete")
@@ -101,9 +122,7 @@ public class WellController {
 	
 	/**
 	 * 批量加井
-	 * @param tempWellId  模板井号
-	 * @param orgId  新井所属井站
-	 * @param newWellJson  
+	 * @param batchWell  批量井信息
 	 * @param token 登录人信息,自动从请求获取
 	 * @return
 	 * @throws Exception 

+ 6 - 8
src/main/java/com/hb/proj/base/controller/WellParamController.java

@@ -20,11 +20,11 @@ import com.hb.proj.allconfig.SysLog;
 import com.hb.proj.base.service.DeviceService;
 import com.hb.proj.base.service.UnitService;
 import com.hb.proj.base.service.WellParamService;
-import com.hb.proj.base.service.WellService;
+import com.hb.proj.model.DevicePO;
 import com.hb.proj.model.DeviceParamPO;
+import com.hb.proj.model.DeviceVO;
 import com.hb.proj.model.UnitPO;
 import com.hb.proj.model.WellParamPO;
-import com.hb.proj.model.WellVO;
 import com.hb.proj.utils.RequestParams;
 import com.hb.proj.utils.RespVO;
 import com.hb.proj.utils.RespVOBuilder;
@@ -40,9 +40,6 @@ public class WellParamController {
 	@Autowired
 	private WellParamService  service;
 	
-	@Autowired
-	private WellService  wellService;
-	
 	@Autowired
 	private DeviceService  deviceService;
 	
@@ -188,12 +185,13 @@ public class WellParamController {
 	}
 	
 	private DeviceParamPO  buildDeviceParam(WellParamPO wparam) {
-		WellVO well=wellService.get(wparam.getWellId());
-		if(StringUtils.isBlank(well.getDeviceCode())) {
+		
+		DeviceVO device=deviceService.getByWell(wparam.getWellId(), DevicePO.GATHER);
+		if(device==null) {
 			return null;
 		}
 		DeviceParamPO dparam=new DeviceParamPO();
-		dparam.setDeviceCode(well.getDeviceCode());
+		dparam.setDeviceCode(device.getDeviceCode());
 		dparam.setParamCode(wparam.getParamCode());
 		dparam.setCalibrateA(wparam.getCalibrateA());
 		dparam.setCalibrateB(wparam.getCalibrateB());

+ 69 - 0
src/main/java/com/hb/proj/base/service/WellTempService.java

@@ -0,0 +1,69 @@
+package com.hb.proj.base.service;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.hb.proj.model.TempPO;
+import com.hb.proj.model.WellTempPO;
+import com.hb.xframework.dao.core.SpringJdbcDAO;
+import com.hb.xframework.dao.util.UUIDHexGenerator;
+
+@Service
+public class WellTempService {
+
+	@Autowired
+	private SpringJdbcDAO  dao;
+	
+	/**
+	 * 覆盖方式保存井的某类型模板关联
+	 * @param wellId
+	 * @param tempId
+	 * @param tempType
+	 */
+	public void saveWellTemp(String wellId,String tempId,String tempType) {
+		dao.exeUpdate("delete from tzl_well_temp where well_id=? and temp_type=?",wellId,tempType);
+		
+		UUIDHexGenerator  uuid=UUIDHexGenerator.getInstance();
+		
+		dao.exeUpdate("insert into tzl_well_temp(record_id,well_id,temp_id,temp_type) values(?,?,?,?)", uuid.generate(),wellId,tempId,tempType);
+	}
+	
+	
+	/**
+	 * 获取井的某类模板明细
+	 * @param wellId
+	 * @param tempType
+	 * @return
+	 */
+	public TempPO getWellTempDtl(String wellId,String tempType){
+		String sql="""
+				 select *  from tzl_temp p
+				 where p.del_if=false and p.temp_id=(
+				   select temp_id from tzl_well_type wt where well_id=? and wt.temp_type=?
+				 )
+				""";
+		
+		return dao.queryForObject(sql, TempPO.class, wellId,tempType);
+	}
+	
+	/**
+	 * 获取井的某类模板id
+	 * @param wellId
+	 * @param tempType
+	 * @return
+	 */
+	public WellTempPO  getWellTemp(String  wellId,String tempType) {
+		return dao.queryForPojo("select * from tzl_well_temp where well_id=? and temp_type=? limit 1", WellTempPO.class, wellId,tempType);
+	}
+	
+	/**
+	 * 查询井的所有关联模板信息
+	 * @param wellId
+	 * @return
+	 */
+	public List<WellTempPO> loadWellTemp(String wellId){
+		return dao.queryForList("select * from tzl_well_temp where well_id=?", WellTempPO.class, wellId);
+	}
+}

+ 22 - 10
src/main/java/com/hb/proj/data/controller/SinglePatrolController.java

@@ -12,9 +12,9 @@ import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
-import com.hb.proj.base.service.PatrolTempService;
 import com.hb.proj.base.service.WellParamService;
 import com.hb.proj.base.service.WellService;
+import com.hb.proj.base.service.WellTempService;
 import com.hb.proj.model.TempPO;
 import com.hb.proj.model.WellParamPO;
 import com.hb.proj.model.WellVO;
@@ -30,8 +30,6 @@ import jakarta.validation.constraints.NotBlank;
 @Validated
 public class SinglePatrolController {
 
-	@Autowired
-	private PatrolTempService  tempService;
 	
 	@Autowired
 	private RedisTemplate<String,Object> redisTemplate;
@@ -42,25 +40,39 @@ public class SinglePatrolController {
 	@Autowired
 	private WellParamService  wpService;
 	
+	@Autowired
+	private WellTempService   wtService;
 	
 	/**
-	 * 获取单个井的巡查模板(附加该井参数单位配置)
+	 * 通过井id,模板类型加载模板明细(单井巡查其它模式)
+	 * 一般都需要模板明细、该井的参数单位
+	 * @param wellId
+	 * @param tempType
+	 * @return
+	 */
+	@RequestMapping("/getTempByType")
+	public RespVO<Object> getTempByType(@NotBlank(message = "缺少井记录号") String wellId,@NotBlank(message = "缺少模板类型") String tempType){
+		TempPO  temp=wtService.getWellTempDtl(wellId, tempType);
+		Map<String,Object> units=wpService.loadParamDisUnit(wellId);
+		return RespVOBuilder.ok(MapUtils.build("temp",temp,"units",units));
+	}
+	
+	/**
+	 * 获取单个井的巡查标准模板(附加该井参数单位配置)
 	 * @param wellId
 	 * @return
 	 */
 	@RequestMapping("/getTemp")
 	public RespVO<Object> getTemp(@NotBlank(message = "缺少井记录号") String wellId){
-		WellVO well=wellService.get(wellId);
-		if(well==null||StringUtils.isBlank(well.getPatrolStdTemp())) {
-			return RespVOBuilder.error("该井已不存在或未配置模板");
-		}
-		Map<String,Object> units=wpService.loadParamDisUnit(wellId);
-		TempPO  temp=tempService.get(well.getPatrolStdTemp());
+		
+		TempPO  temp=wtService.getWellTempDtl(wellId, TempPO.TYPE_SINGLE);
 		if(temp==null||StringUtils.isBlank(temp.getTempContent())) {
 			return RespVOBuilder.error("未找到模板数据");
 		}
 		List<Map<String,Object>> tempELs=JacksonUtils.getMaps(temp.getTempContent());
 		
+		
+		Map<String,Object> units=wpService.loadParamDisUnit(wellId);
 		if(units==null||units.size()==0) {
 			return RespVOBuilder.ok(tempELs);
 		}

+ 8 - 0
src/main/java/com/hb/proj/model/TempPO.java

@@ -8,6 +8,14 @@ import lombok.Data;
 
 @Data
 public class TempPO {
+	
+	public static final String TYPE_SINGLE="single";
+	
+	public static final String TYPE_MULTI="multi";
+	
+	public static final String TYPE_SINGLE_GROUP="singleGroup";
+	
+	public static final String TYPE_MULTI_GROUP="multiGroup";
 
 	private String tempId;
 	

+ 0 - 5
src/main/java/com/hb/proj/model/Well.java

@@ -56,11 +56,6 @@ public class Well {
      */
     private String orgId;
     
-    /**
-     * 巡查标准显示模板
-     */
-    private String patrolStdTemp;
-    
     /**
      * 显示序号
      */

+ 16 - 0
src/main/java/com/hb/proj/model/WellTempPO.java

@@ -0,0 +1,16 @@
+package com.hb.proj.model;
+
+import lombok.Data;
+
+@Data
+public class WellTempPO {
+
+	private String recordId;
+	
+	private String wellId;
+	
+	private String tempId;
+	
+	private String tempType;
+	
+}

+ 35 - 0
src/main/java/com/hb/proj/model/WellVO.java

@@ -1,5 +1,7 @@
 package com.hb.proj.model;
 
+import org.springframework.beans.BeanUtils;
+
 public class WellVO extends Well {
 
 	private String belongOrgName;
@@ -7,6 +9,23 @@ public class WellVO extends Well {
 	private String deviceCode;
 	
 	private String patrolStdTempName;
+	
+	/**
+     * 巡查标准显示模板
+     */
+    private String patrolStdTemp;
+    
+    /**
+     * 巡查分组曲线显示模板
+     */
+    private String patrolGrpcurveTemp;
+	
+	
+	public Well toWell() {
+		Well well=new Well();
+		BeanUtils.copyProperties(this, well);
+		return well;
+	}
 
 	public String getBelongOrgName() {
 		return belongOrgName;
@@ -31,4 +50,20 @@ public class WellVO extends Well {
 	public void setPatrolStdTempName(String patrolStdTempName) {
 		this.patrolStdTempName = patrolStdTempName;
 	}
+
+	public String getPatrolStdTemp() {
+		return patrolStdTemp;
+	}
+
+	public void setPatrolStdTemp(String patrolStdTemp) {
+		this.patrolStdTemp = patrolStdTemp;
+	}
+
+	public String getPatrolGrpcurveTemp() {
+		return patrolGrpcurveTemp;
+	}
+
+	public void setPatrolGrpcurveTemp(String patrolGrpcurveTemp) {
+		this.patrolGrpcurveTemp = patrolGrpcurveTemp;
+	}
 }