From 2e95aa30b09c8cf33b73278b4a8bf62cb13036b4 Mon Sep 17 00:00:00 2001 From: DOUDOU <877258667@qq.com> Date: Tue, 28 Feb 2023 15:55:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BE=9B=E8=AE=BE=E5=A4=87=E6=B8=85?= =?UTF-8?q?=E5=8D=95=E5=8A=9F=E8=83=BD=E7=9A=84=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pms/controller/EamObjectController.java | 57 +++++- .../java/com/xujie/pms/dao/ProcedureDao.java | 43 +++++ .../xujie/pms/dao/impl/ProcedureDaoImpl.java | 108 +++++++++++ .../com/xujie/pms/data/EamObjectData.java | 42 +---- .../com/xujie/pms/mapper/EamObjectMapper.java | 62 +++++++ .../xujie/pms/service/EamObjectService.java | 46 +++++ .../service/Impl/EamObjectServiceImpl.java | 167 ++++++++++++++++++ .../main/resources/mapper/EamObjectMapper.xml | 63 +++++++ 8 files changed, 552 insertions(+), 36 deletions(-) create mode 100644 xujie-pms/src/main/java/com/xujie/pms/dao/ProcedureDao.java create mode 100644 xujie-pms/src/main/java/com/xujie/pms/dao/impl/ProcedureDaoImpl.java create mode 100644 xujie-pms/src/main/java/com/xujie/pms/mapper/EamObjectMapper.java create mode 100644 xujie-pms/src/main/java/com/xujie/pms/service/EamObjectService.java create mode 100644 xujie-pms/src/main/java/com/xujie/pms/service/Impl/EamObjectServiceImpl.java create mode 100644 xujie-pms/src/main/resources/mapper/EamObjectMapper.xml diff --git a/xujie-pms/src/main/java/com/xujie/pms/controller/EamObjectController.java b/xujie-pms/src/main/java/com/xujie/pms/controller/EamObjectController.java index f35a256..c86c2a8 100644 --- a/xujie-pms/src/main/java/com/xujie/pms/controller/EamObjectController.java +++ b/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", "操作成功!"); + } diff --git a/xujie-pms/src/main/java/com/xujie/pms/dao/ProcedureDao.java b/xujie-pms/src/main/java/com/xujie/pms/dao/ProcedureDao.java new file mode 100644 index 0000000..2721cc9 --- /dev/null +++ b/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> 返回类型 + * @throws + */ + List> getProcedureData(String procedureName, List params); + + /** + * + * @Title: execProduceData + * @Description: 执行没有返回数据的存储过程 + * @author LR + * @date 2020年3月9日 + * @param @param procedureName + * @param @param params 参数 + * @return void 返回类型 + * @throws + */ + void execProduceData(String procedureName, List params); +} \ No newline at end of file diff --git a/xujie-pms/src/main/java/com/xujie/pms/dao/impl/ProcedureDaoImpl.java b/xujie-pms/src/main/java/com/xujie/pms/dao/impl/ProcedureDaoImpl.java new file mode 100644 index 0000000..2a16e9a --- /dev/null +++ b/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> getProcedureData(String procedureName, List 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> >() { + + @Override + public List> doInCallableStatement(CallableStatement cs) throws SQLException, DataAccessException { + List> resultList = new ArrayList<>(); + ResultSet rs = cs.executeQuery(); + ResultSetMetaData rsmd = rs.getMetaData(); + int columns = rsmd.getColumnCount(); + //处理列名 + Map columnMap = new HashMap<>(); + for(int i = 1; i <= columns; i++){ + columnMap.put(rsmd.getColumnName(i), null); + } + //循环处理数据 + while(rs.next()){ + Map resultMap = new HashMap(); + //循环出当前行的所有数据 + for(String str : columnMap.keySet()){ + resultMap.put(str, rs.getObject(str)); + } + resultList.add(resultMap); + } + return resultList; + } + }); + } + + @Override + public void execProduceData(String procedureName, List 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()); + } + +} \ No newline at end of file diff --git a/xujie-pms/src/main/java/com/xujie/pms/data/EamObjectData.java b/xujie-pms/src/main/java/com/xujie/pms/data/EamObjectData.java index d60b5e6..2f431fb 100644 --- a/xujie-pms/src/main/java/com/xujie/pms/data/EamObjectData.java +++ b/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; } } diff --git a/xujie-pms/src/main/java/com/xujie/pms/mapper/EamObjectMapper.java b/xujie-pms/src/main/java/com/xujie/pms/mapper/EamObjectMapper.java new file mode 100644 index 0000000..37df5a9 --- /dev/null +++ b/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 getEamObjectList(Page 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); + +} diff --git a/xujie-pms/src/main/java/com/xujie/pms/service/EamObjectService.java b/xujie-pms/src/main/java/com/xujie/pms/service/EamObjectService.java new file mode 100644 index 0000000..445b048 --- /dev/null +++ b/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); +} diff --git a/xujie-pms/src/main/java/com/xujie/pms/service/Impl/EamObjectServiceImpl.java b/xujie-pms/src/main/java/com/xujie/pms/service/Impl/EamObjectServiceImpl.java new file mode 100644 index 0000000..91bd60b --- /dev/null +++ b/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 resultList = this.eamObjectMapper.getEamObjectList( + new Page(inData.getPage(), inData.getLimit()), inData); + return new PageUtils(resultList); + } + + @Override + public void insertEamObject(EamObjectData inData) { + //调用存储过程 执行 + Map 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 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 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> resultList = procedureDao.getProcedureData("checkInsertEamObject", params); + return resultList.get(0); + } + + @Override + public void updateEamObject(EamObjectData inData) { + //调用存储过程 执行 + Map 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 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 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> resultList = procedureDao.getProcedureData("checkUpdateEamObject", params); + return resultList.get(0); + } + + @Override + public void deleteEamObject(EamObjectData inData) { + //调用存储过程 执行 + Map 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 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 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> resultList = procedureDao.getProcedureData("checkDeleteEamObject", params); + return resultList.get(0); + } +} diff --git a/xujie-pms/src/main/resources/mapper/EamObjectMapper.xml b/xujie-pms/src/main/resources/mapper/EamObjectMapper.xml new file mode 100644 index 0000000..56065fb --- /dev/null +++ b/xujie-pms/src/main/resources/mapper/EamObjectMapper.xml @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + 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}) + + + + + 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} + + + + + delete from eam_object + where site = #{site} AND ObjectID = #{objectID} + + + + \ No newline at end of file