Browse Source

增加计量单位管理模块接口

chenwen 2 years ago
parent
commit
deaeb53da7

+ 1 - 1
src/main/java/com/hb/proj/base/controller/DeviceController.java

@@ -69,7 +69,7 @@ public class DeviceController {
 	
 	/**
 	 * 删除单个设备
-	 * @param id  待删除记录id
+	 * @param deviceId  待删除记录id
 	 * @return
 	 */
 	@RequestMapping("/delete")

+ 115 - 0
src/main/java/com/hb/proj/base/controller/UnitController.java

@@ -0,0 +1,115 @@
+package com.hb.proj.base.controller;
+
+import java.util.List;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.hb.proj.allconfig.AccessToken;
+import com.hb.proj.allconfig.SysLog;
+import com.hb.proj.base.service.UnitService;
+import com.hb.proj.model.UnitPO;
+import com.hb.proj.utils.RequestParams;
+import com.hb.proj.utils.RespVO;
+import com.hb.proj.utils.RespVOBuilder;
+import com.hb.xframework.dao.util.PageModel;
+
+import jakarta.validation.constraints.NotBlank;
+
+@RestController
+@RequestMapping("/base/unit")
+@Validated
+public class UnitController {
+
+	@Autowired
+	private UnitService  service;
+	
+	/**
+	 * 加载所有单位
+	 * @return
+	 */
+	@RequestMapping("/loadAll")
+	public RespVO<List<UnitPO>> loadAll(){
+		PageModel<UnitPO> pages=service.query(null,1,10000);
+		return RespVOBuilder.ok(pages!=null?pages.getData():null);
+	}
+	
+	/**
+	 * 查询单位列表
+	 * @apiNote 查询参数类型列表
+	 * @param params  查询参数
+	 * @param pageNum  页码
+	 * @param pageSize 每页记录数
+	 * @return
+	 */
+	@RequestMapping("/query")
+	public RespVO<PageModel<UnitPO>> query(RequestParams params,
+			@RequestParam(value = "currentPage", defaultValue = "1") Integer pageNum,
+			@RequestParam(value = "pageSize", defaultValue = "20") Integer pageSize) {
+		return RespVOBuilder.ok(service.query(params.getObjectMap(), pageNum, pageSize));
+	}
+	
+	
+	/**
+	 * 获得单个单位数据
+	 * @param unitId 单位记录id
+	 * @return
+	 */
+	@RequestMapping("/get")
+	public RespVO<UnitPO> get(@NotBlank(message = "缺少记录号") String unitId){
+		return RespVOBuilder.ok(service.get(unitId));
+	}
+	
+	
+	/**
+	 * 删除单个单位数据
+	 * @param unitId  待删除记录id
+	 * @return
+	 */
+	@RequestMapping("/delete")
+	@SysLog("删除单位信息:{arg0}")
+	public RespVO<Object> delete(String unitId){
+		service.delete(unitId);
+		return RespVOBuilder.ok();
+	}
+	
+
+	/**
+	 * 增加新单位
+	 * @param device 设备实体对象
+	 * @param token  当前登录实体
+	 * @return
+	 */
+	@RequestMapping("/add")
+	public RespVO<String> add(UnitPO unit,AccessToken token){
+		if(service.exist(unit.getUnitSymbol(),null)) {
+			return RespVOBuilder.error("该单位已存在,勿重复添加");
+		}
+		unit.setModifyBy(token.getUsName());
+		return RespVOBuilder.ok(service.add(unit));
+		
+	}
+	
+	
+	/**
+	 * 更新单位信息
+	 * @param device 单位实体对象
+	 * @param token  当前登录实体
+	 * @return
+	 */
+	@RequestMapping("/update")
+	public RespVO<Object> update(UnitPO unit,AccessToken token){
+		if(service.exist(unit.getUnitSymbol(),unit.getUnitId())) {
+			 return RespVOBuilder.error("该单位已存在,勿重复添加");
+		}
+		unit.setModifyBy(token.getUsName());
+		service.update(unit);
+		
+		return RespVOBuilder.ok();
+	  
+		
+	}
+}

+ 84 - 0
src/main/java/com/hb/proj/base/service/UnitService.java

@@ -0,0 +1,84 @@
+package com.hb.proj.base.service;
+
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import com.hb.proj.model.UnitPO;
+import com.hb.xframework.dao.core.SpringJdbcDAO;
+import com.hb.xframework.dao.util.PageModel;
+import com.hb.xframework.dao.util.UUIDHexGenerator;
+
+@Service
+public class UnitService {
+
+	@Autowired
+	private SpringJdbcDAO  dao;
+	
+	public PageModel<UnitPO> query(Map<String,Object> args,int pageNo,int pageSize){
+		List<Object> sqlParams=new ArrayList<Object>();
+		StringBuilder sql=new StringBuilder(100);
+		sql.append("select u.* ");
+		sql.append(" from tzl_unit u ");
+		sql.append(" where 1=1 ");
+		
+		if(args!=null&&StringUtils.isNotBlank((String)args.get("unitKey"))) {
+			sql.append(" and (unit_name like ? or unit_symbol like ?)");
+			sqlParams.add("%"+args.get("unitKey")+"%");
+			sqlParams.add("%"+args.get("unitKey")+"%");
+		}
+		
+		
+		
+		sql.append(" order by unit_symbol");
+		
+		Object[] sqlArgs=sqlParams.size()>0?sqlParams.toArray():null;
+		return dao.queryForPagedData(sql.toString(),pageNo, pageSize,UnitPO.class ,sqlArgs);
+	}
+	
+	public String add(UnitPO unit) {
+		UUIDHexGenerator uuid=UUIDHexGenerator.getInstance();
+		unit.setUnitId(uuid.generate());
+		unit.setModifyTime(new Date());
+		dao.insert(unit,"tzl_unit");
+		return unit.getUnitId();
+	}
+	
+	public boolean delete(String unitId) {
+		String sql="delete  from tzl_unit where unit_id=?";
+		dao.exeUpdate(sql,unitId);
+		return true;
+	}
+	
+	public UnitPO get(String unitId) {
+		String sql="""
+				 select u.* from tzl_unit u 
+				 where u.unit_id=?
+				""";
+		return dao.queryForPojo(sql,UnitPO.class,unitId);
+	}
+	
+	
+	
+	public boolean update(UnitPO unit) {
+		unit.setModifyTime(new Date());
+		return dao.update(unit, "tzl_unit", "unit_id")>0;
+	}
+	
+	public boolean exist(String unitSymbol,String unitId) {
+		String sql="select count(1) from tzl_unit where unit_symbol=?";
+		Object[] args= {unitSymbol};
+		if(StringUtils.isNotBlank(unitId)) {
+			sql+=" and unit_id!=?";
+			args=new Object[] {unitSymbol,unitId};
+		}
+		return dao.queryForObject(sql, Integer.class, args)>0;
+		
+	}
+	
+}

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

@@ -1,8 +1,11 @@
 package com.hb.proj.model;
 
 import java.util.Date;
+import java.util.Map;
 
 public class DeviceVO extends DevicePO {
+	
+	public static Map<String,String> devTypeMap=Map.of("gather","采集设备","mainctr","主控仪","liquid","动液面设备");
 
 	private String wellName;
 	
@@ -23,6 +26,11 @@ public class DeviceVO extends DevicePO {
 			this.onlineIf=	((new Date()).getTime()-this.getHeartbeatLast().getTime())<=(sec*1000);
 		}
 	}
+	
+	public void setDeviceType(String deviceType) {
+		super.setDeviceType(deviceType);
+		this.deviceTypeName=devTypeMap.get(deviceType);
+	}
 
 	public String getWellName() {
 		return wellName;

+ 27 - 0
src/main/java/com/hb/proj/model/UnitPO.java

@@ -0,0 +1,27 @@
+package com.hb.proj.model;
+
+import java.util.Date;
+
+import lombok.Data;
+
+@Data
+public class UnitPO {
+
+	private String unitId;
+	
+	private String unitName;
+	
+	private String unitSymbol;
+	
+	private String baseUnit;
+	
+	private Double baseScale;
+	
+	private String unitGroup;
+	
+	private Date modifyTime;
+	
+	private String modifyBy;
+	
+	
+}