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