Browse Source

提供设备清单功能的代码

master
DOUDOU 3 years ago
parent
commit
2e95aa30b0
  1. 57
      xujie-pms/src/main/java/com/xujie/pms/controller/EamObjectController.java
  2. 43
      xujie-pms/src/main/java/com/xujie/pms/dao/ProcedureDao.java
  3. 108
      xujie-pms/src/main/java/com/xujie/pms/dao/impl/ProcedureDaoImpl.java
  4. 42
      xujie-pms/src/main/java/com/xujie/pms/data/EamObjectData.java
  5. 62
      xujie-pms/src/main/java/com/xujie/pms/mapper/EamObjectMapper.java
  6. 46
      xujie-pms/src/main/java/com/xujie/pms/service/EamObjectService.java
  7. 167
      xujie-pms/src/main/java/com/xujie/pms/service/Impl/EamObjectServiceImpl.java
  8. 63
      xujie-pms/src/main/resources/mapper/EamObjectMapper.xml

57
xujie-pms/src/main/java/com/xujie/pms/controller/EamObjectController.java

@ -4,6 +4,7 @@ package com.xujie.pms.controller;
import com.xujie.common.utils.PageUtils;
import com.xujie.common.utils.R;
import com.xujie.pms.data.*;
import com.xujie.pms.service.EamObjectService;
import com.xujie.pms.service.EamService;
import com.xujie.pms.util.ResponseData;
import org.springframework.beans.factory.annotation.Autowired;
@ -24,7 +25,61 @@ import java.util.Map;
public class EamObjectController {
@Autowired
private EamService eamService;
private EamObjectService eamObjectService;
/**
* @description: 查询当前设备清单的列表
* @author LR
* @date 2023/2/26 15:37
* @version 1.0
*/
@RequestMapping(value = "getEamObjectList")
public R getEamObjectList(@RequestBody EamObjectData inData){
PageUtils page = eamObjectService.getEamObjectList(inData);
return R.ok().put("page", page);
}
/**
* @description: 插入设备清单数据
* @author LR
* @date 2023/2/26 16:17
* @version 1.0
*/
@RequestMapping(value = "insertEamObject")
public R insertEamObject(@RequestBody EamObjectData inData) {
eamObjectService.insertEamObject(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}
/**
* @description: 修改设备清单数据
* @author LR
* @date 2023/2/26 16:22
* @version 1.0
*/
@RequestMapping(value = "updateEamObject")
public R updateEamObject(@RequestBody EamObjectData inData) {
eamObjectService.updateEamObject(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}
/**
* @description: 删除设备清单数据
* @author LR
* @date 2023/2/26 16:23
* @version 1.0
*/
@RequestMapping(value = "deleteEamObject")
public R deleteEamObject(@RequestBody EamObjectData inData) {
eamObjectService.deleteEamObject(inData);
return R.ok()
.put("code", 200)
.put("msg", "操作成功!");
}

43
xujie-pms/src/main/java/com/xujie/pms/dao/ProcedureDao.java

@ -0,0 +1,43 @@
package com.xujie.pms.dao;
import java.util.List;
import java.util.Map;
/**
*
* @ClassName: ProcedureDao
* @Description: 存储过程专用dao
* @author lirui
* @date 2019年5月11日
*
*/
public interface ProcedureDao {
/**
*
* @Title: getProcedureData
* @Description: 通用存储过程方法
* @author LR
* @date 2020年1月31日
* @param @param procedureName
* @param @param params
* @param @return 参数
* @return List<Map<String,Object>> 返回类型
* @throws
*/
List<Map<String, Object>> getProcedureData(String procedureName, List<Object> params);
/**
*
* @Title: execProduceData
* @Description: 执行没有返回数据的存储过程
* @author LR
* @date 2020年3月9日
* @param @param procedureName
* @param @param params 参数
* @return void 返回类型
* @throws
*/
void execProduceData(String procedureName, List<Object> params);
}

108
xujie-pms/src/main/java/com/xujie/pms/dao/impl/ProcedureDaoImpl.java

@ -0,0 +1,108 @@
package com.xujie.pms.dao.impl;
import com.xujie.pms.dao.ProcedureDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.dao.DataAccessException;
import org.springframework.jdbc.core.CallableStatementCallback;
import org.springframework.jdbc.core.CallableStatementCreator;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Repository;
import java.math.BigDecimal;
import java.sql.Date;
import java.sql.*;
import java.util.*;
/**
*
* @ClassName: ProcedureDaoImpl
* @Description: 存储过程dao实现
* @author lirui
* @date 2019年5月11日
*
*/
@Repository
public class ProcedureDaoImpl implements ProcedureDao {
@Autowired
private JdbcTemplate jdbcTemplate;
@Override
public List<Map<String, Object>> getProcedureData(String procedureName, List<Object> params) {
return jdbcTemplate.execute(new CallableStatementCreator() {
@Override
public CallableStatement createCallableStatement(Connection con) throws SQLException {
StringBuilder sql = new StringBuilder("EXEC "+procedureName+" ");
//拼好sql语句
for(int i = 0; i < params.size(); i++) {
//判断是否是最后一个参数
if(i == params.size() - 1) {
sql.append(" ?");
}else {
sql.append(" ?,");
}
}
CallableStatement cs = con.prepareCall(sql.toString());
//循环设置参数
for(int i = 1; i <= params.size(); i++) {
Object tempParam = params.get(i - 1);
if(tempParam instanceof String) {
cs.setString(i, String.valueOf(tempParam));
}else if(tempParam instanceof Integer) {
cs.setInt(i, Integer.parseInt(String.valueOf(tempParam)));
}else if(tempParam instanceof Float) {
cs.setFloat(i, Float.parseFloat(String.valueOf(tempParam)));
}else if(tempParam instanceof Double) {
cs.setDouble(i, Double.parseDouble(String.valueOf(tempParam)));
}else if(tempParam instanceof BigDecimal) {
cs.setBigDecimal(i, (BigDecimal) tempParam);
}else if(tempParam instanceof Date) {
cs.setDate(i, (Date) tempParam, Calendar.getInstance());
}
}
return cs;
}
}, new CallableStatementCallback<List<Map<String, Object>> >() {
@Override
public List<Map<String, Object>> doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException {
List<Map<String, Object>> resultList = new ArrayList<>();
ResultSet rs = cs.executeQuery();
ResultSetMetaData rsmd = rs.getMetaData();
int columns = rsmd.getColumnCount();
//处理列名
Map<String, Object> columnMap = new HashMap<>();
for(int i = 1; i <= columns; i++){
columnMap.put(rsmd.getColumnName(i), null);
}
//循环处理数据
while(rs.next()){
Map<String, Object> resultMap = new HashMap<String, Object>();
//循环出当前行的所有数据
for(String str : columnMap.keySet()){
resultMap.put(str, rs.getObject(str));
}
resultList.add(resultMap);
}
return resultList;
}
});
}
@Override
public void execProduceData(String procedureName, List<Object> params) {
StringBuilder sql = new StringBuilder("EXEC "+procedureName+" ");
//拼好sql语句
for(int i = 0; i < params.size(); i++) {
//判断是否是最后一个参数
if(i == params.size() - 1) {
sql.append("'" + params.get(i) + "'");
}else {
sql.append("'" + params.get(i) + "', ");
}
}
jdbcTemplate.execute(sql.toString());
}
}

42
xujie-pms/src/main/java/com/xujie/pms/data/EamObjectData.java

@ -6,7 +6,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
public class EamObjectData extends QueryPage {
public class EamObjectData extends QueryPage {
/**
*
*/
@ -42,9 +42,6 @@ public class EamObjectData extends QueryPage {
*/
private String supplierID;
/**
*
*/
private String manufacturerID;
/**
@ -55,8 +52,8 @@ public class EamObjectData extends QueryPage {
/**
*
*/
@DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date purchessDate;
/**
@ -88,15 +85,6 @@ public class EamObjectData extends QueryPage {
*/
private String closedBy;
/**
*
*/
private Integer propertiesModelID;
/**
*
*/
private Double maintenancePeriod;
public String getSite() {
return site;
@ -154,14 +142,6 @@ public class EamObjectData extends QueryPage {
this.supplierID = supplierID;
}
public String getManufacturerID() {
return manufacturerID;
}
public void setManufacturerID(String manufacturerID) {
this.manufacturerID = manufacturerID;
}
public String getSeqNo() {
return seqNo;
}
@ -218,20 +198,12 @@ public class EamObjectData extends QueryPage {
this.closedBy = closedBy;
}
public Integer getPropertiesModelID() {
return propertiesModelID;
}
public void setPropertiesModelID(Integer propertiesModelID) {
this.propertiesModelID = propertiesModelID;
}
public Double getMaintenancePeriod() {
return maintenancePeriod;
public String getManufacturerID() {
return manufacturerID;
}
public void setMaintenancePeriod(Double maintenancePeriod) {
this.maintenancePeriod = maintenancePeriod;
public void setManufacturerID(String manufacturerID) {
this.manufacturerID = manufacturerID;
}
}

62
xujie-pms/src/main/java/com/xujie/pms/mapper/EamObjectMapper.java

@ -0,0 +1,62 @@
package com.xujie.pms.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xujie.pms.data.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import java.util.List;
/**
* @description: 设备清单的dao实现
* @author LR
* @date 2023/2/26 15:33
* @version 1.0
*/
@Mapper
@Repository
public interface EamObjectMapper {
/**
* @description: 查询设备清单的列表
* @author LR
* @date 2023/2/26 15:45
* @version 1.0
*/
IPage<EamObjectData> getEamObjectList(Page<EamObjectData> eamObjectDataPage, @Param("query") EamObjectData inData);
/**
* @description: 按照设备编码查询设备的相关信息
* @author LR
* @date 2023/2/26 16:43
* @version 1.0
*/
EamObjectData getEamObjectByObjectId(EamObjectData inData);
/**
* @description: 插入设备清单数据
* @author LR
* @date 2023/2/26 16:21
* @version 1.0
*/
void insertEamObject(EamObjectData inData);
/**
* @description: 修改设备清单数据
* @author LR
* @date 2023/2/26 16:24
* @version 1.0
*/
void updateEamObject(EamObjectData inData);
/**
* @description: 删除设备清单数据
* @author LR
* @date 2023/2/26 16:24
* @version 1.0
*/
void deleteEamObject(EamObjectData inData);
}

46
xujie-pms/src/main/java/com/xujie/pms/service/EamObjectService.java

@ -0,0 +1,46 @@
package com.xujie.pms.service;
import com.xujie.common.utils.PageUtils;
import com.xujie.pms.data.EamObjectData;
/**
* @description: 设备清单接口
* @author LR
* @date 2023/2/26 15:28
* @version 1.0
*/
public interface EamObjectService {
/**
* @description: 查询当前设备清单的列表
* @author LR
* @date 2023/2/26 15:38
* @version 1.0
* @return
*/
PageUtils getEamObjectList(EamObjectData inData);
/**
* @description: 插入设备清单数据
* @author LR
* @date 2023/2/26 16:18
* @version 1.0
*/
void insertEamObject(EamObjectData inData);
/**
* @description: 修改设备清单数据
* @author LR
* @date 2023/2/26 16:22
* @version 1.0
*/
void updateEamObject(EamObjectData inData);
/**
* @description: 修改设备清单数据
* @author LR
* @date 2023/2/26 16:23
* @version 1.0
*/
void deleteEamObject(EamObjectData inData);
}

167
xujie-pms/src/main/java/com/xujie/pms/service/Impl/EamObjectServiceImpl.java

@ -0,0 +1,167 @@
package com.xujie.pms.service.Impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xujie.common.exception.XJException;
import com.xujie.common.utils.PageUtils;
import com.xujie.pms.dao.ProcedureDao;
import com.xujie.pms.data.EamObjectData;
import com.xujie.pms.data.EamPropertiesModelHeaderData;
import com.xujie.pms.mapper.EamObjectMapper;
import com.xujie.pms.service.EamObjectService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @description: 设备清单接口实现
* @author LR
* @date 2023/2/26 15:29
* @version 1.0
*/
@Service
public class EamObjectServiceImpl implements EamObjectService {
@Autowired
private EamObjectMapper eamObjectMapper;
@Autowired
private ProcedureDao procedureDao;
@Override
public PageUtils getEamObjectList(EamObjectData inData) {
IPage<EamObjectData> resultList = this.eamObjectMapper.getEamObjectList(
new Page<EamObjectData>(inData.getPage(), inData.getLimit()), inData);
return new PageUtils(resultList);
}
@Override
public void insertEamObject(EamObjectData inData) {
//调用存储过程 执行
Map<String, Object> resultMap = this.checkInsertEamObject(inData);
//判断是否检验成功
String code = String.valueOf(resultMap.get("resultCode"));
if ("400".equalsIgnoreCase(code)) {
String msg = String.valueOf(resultMap.get("resultMsg"));
throw new XJException(msg, Integer.parseInt(code));
}
//设置创建的日期
inData.setCreateDate(new Date());
eamObjectMapper.insertEamObject(inData);
}
/**
* @description: 调用存储过程校验是否可以插入设备数据
* @author LR
* @date 2023/2/28 11:03
* @version 1.0
*/
public Map<String, Object> checkInsertEamObject(EamObjectData inData){
//公共参数
String site = inData.getSite();
String objectId = inData.getObjectID();
String locationId = inData.getLocationID();
String familyId = inData.getFamilyID();
String groupId = inData.getGroupID();
String supplierId = inData.getSupplierID();
String manufacturerId = inData.getManufacturerID();
List<Object> params = new ArrayList<>();
params.add(site);
params.add(objectId);
params.add(locationId);
params.add(familyId);
params.add(groupId);
params.add(supplierId);
params.add(manufacturerId);
//执行方法
List<Map<String, Object>> resultList = procedureDao.getProcedureData("checkInsertEamObject", params);
return resultList.get(0);
}
@Override
public void updateEamObject(EamObjectData inData) {
//调用存储过程 执行
Map<String, Object> resultMap = this.checkUpdateEamObject(inData);
//判断是否检验成功
String code = String.valueOf(resultMap.get("resultCode"));
if ("400".equalsIgnoreCase(code)) {
String msg = String.valueOf(resultMap.get("resultMsg"));
throw new XJException(msg, Integer.parseInt(code));
}
eamObjectMapper.updateEamObject(inData);
}
/**
* @description: 调用存储过程检查是否修改当前的设备数据
* @author LR
* @date 2023/2/28 11:06
* @version 1.0
*/
public Map<String, Object> checkUpdateEamObject(EamObjectData inData){
//公共参数
String site = inData.getSite();
String objectId = inData.getObjectID();
String locationId = inData.getLocationID();
String familyId = inData.getFamilyID();
String groupId = inData.getGroupID();
String supplierId = inData.getSupplierID();
String manufacturerId = inData.getManufacturerID();
List<Object> params = new ArrayList<>();
params.add(site);
params.add(objectId);
params.add(locationId);
params.add(familyId);
params.add(groupId);
params.add(supplierId);
params.add(manufacturerId);
//执行方法
List<Map<String, Object>> resultList = procedureDao.getProcedureData("checkUpdateEamObject", params);
return resultList.get(0);
}
@Override
public void deleteEamObject(EamObjectData inData) {
//调用存储过程 执行
Map<String, Object> resultMap = this.checkDeleteEamObject(inData);
//判断是否检验成功
String code = String.valueOf(resultMap.get("resultCode"));
if ("400".equalsIgnoreCase(code)) {
String msg = String.valueOf(resultMap.get("resultMsg"));
throw new XJException(msg, Integer.parseInt(code));
}
eamObjectMapper.deleteEamObject(inData);
}
/**
* @description: 调用存储过程检查是否删除当前的设备数据
* @author LR
* @date 2023/2/28 11:06
* @version 1.0
*/
public Map<String, Object> checkDeleteEamObject(EamObjectData inData){
//公共参数
String site = inData.getSite();
String objectId = inData.getObjectID();
String locationId = inData.getLocationID();
String familyId = inData.getFamilyID();
String groupId = inData.getGroupID();
String supplierId = inData.getSupplierID();
String manufacturerId = inData.getManufacturerID();
List<Object> params = new ArrayList<>();
params.add(site);
params.add(objectId);
params.add(locationId);
params.add(familyId);
params.add(groupId);
params.add(supplierId);
params.add(manufacturerId);
//执行方法
List<Map<String, Object>> resultList = procedureDao.getProcedureData("checkDeleteEamObject", params);
return resultList.get(0);
}
}

63
xujie-pms/src/main/resources/mapper/EamObjectMapper.xml

@ -0,0 +1,63 @@
<?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.xujie.pms.mapper.EamObjectMapper">
<!--查询设备清单的接口-->
<select id="getEamObjectList" parameterType="EamObjectData" resultType="EamObjectData">
SELECT Site, ObjectID, ObjectDesc, LocationID, FamilyID, GroupID, SupplierID, manufacturerID, SeqNo,
PurchessDate, Active, CreateDate, CreateBy, ClosedDate, ClosedBy
FROM eam_object
<where>
AND site = #{query.site}
<if test="query.objectID != null and query.objectID != ''">
AND ObjectID like '%' + #{objectID} +'%'
</if>
<if test="query.objectDesc != null and query.objectDesc != ''">
AND ObjectDesc like '%' + #{query.objectDesc} +'%'
</if>
<if test="query.locationID != null and query.locationID != ''">
AND LocationID like '%' + #{query.locationID} +'%'
</if>
<if test="query.familyID != null and query.familyID != ''">
AND FamilyID like '%' + #{query.familyID} +'%'
</if>
<if test="query.active != null and query.active != ''">
AND active = #{query.active}
</if>
</where>
</select>
<!--查询设备清单按照设备的id-->
<select id="getEamObjectByObjectId" parameterType="EamObjectData" resultType="EamObjectData">
SELECT Site, ObjectID, ObjectDesc, LocationID, FamilyID, GroupID, SupplierID, manufacturerID, SeqNo,
PurchessDate, Active, CreateDate, CreateBy, ClosedDate, ClosedBy
FROM eam_object
<where>
AND site = #{site} AND ObjectID = #{objectID}
</where>
</select>
<!--插入设备清单的数据-->
<insert id="insertEamObject">
insert into eam_object(Site, ObjectID, ObjectDesc, LocationID, FamilyID, GroupID, SupplierID, ManufacturerID, SeqNo,
PurchessDate, Active, CreateDate, CreateBy)
values(#{site}, #{objectID}, #{objectDesc}, #{locationID}, #{familyID}, #{groupID}, #{supplierID}, #{manufacturerID}, #{seqNo},
#{purchessDate}, #{active}, #{createDate}, #{createBy})
</insert>
<!--修改设备清单的数据-->
<update id="updateEamObject">
update eam_object set ObjectDesc = #{objectDesc}, LocationID = #{locationID}, FamilyID = #{familyID}, GroupID = #{groupID},
SupplierID = #{supplierID}, ManufacturerID = #{manufacturerID}, SeqNo = #{seqNo}, PurchessDate = #{purchessDate}, Active = #{active}
where site = #{site} AND ObjectID = #{objectID}
</update>
<!--删除设备清单的信息-->
<delete id="deleteEamObject">
delete from eam_object
where site = #{site} AND ObjectID = #{objectID}
</delete>
</mapper>
Loading…
Cancel
Save