8 changed files with 552 additions and 36 deletions
-
57xujie-pms/src/main/java/com/xujie/pms/controller/EamObjectController.java
-
43xujie-pms/src/main/java/com/xujie/pms/dao/ProcedureDao.java
-
108xujie-pms/src/main/java/com/xujie/pms/dao/impl/ProcedureDaoImpl.java
-
42xujie-pms/src/main/java/com/xujie/pms/data/EamObjectData.java
-
62xujie-pms/src/main/java/com/xujie/pms/mapper/EamObjectMapper.java
-
46xujie-pms/src/main/java/com/xujie/pms/service/EamObjectService.java
-
167xujie-pms/src/main/java/com/xujie/pms/service/Impl/EamObjectServiceImpl.java
-
63xujie-pms/src/main/resources/mapper/EamObjectMapper.xml
@ -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); |
||||
|
} |
||||
@ -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()); |
||||
|
} |
||||
|
|
||||
|
} |
||||
@ -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); |
||||
|
|
||||
|
} |
||||
@ -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); |
||||
|
} |
||||
@ -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); |
||||
|
} |
||||
|
} |
||||
@ -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> |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue