From 771efdc0ec3478e2b576deabe6a7835cd3db977a Mon Sep 17 00:00:00 2001 From: mh Date: Thu, 9 Jan 2025 17:33:47 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=BA=8C=E7=BB=B4=E7=A0=81?= =?UTF-8?q?=E3=80=81=E8=AE=BE=E5=A4=87=E5=87=BA=E5=85=A5=E5=BA=93=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=8E=A5=E5=8F=A3=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../device/DeviceInOutManageController.java | 87 ++++++++++ .../device/DeviceQrManageController.java | 95 +++++++++++ .../device/SparePartsManageController.java | 88 ++++++++++ .../core/domain/entity/DeviceInOutManage.java | 106 ++++++++++++ .../core/domain/entity/DeviceQrManage.java | 122 ++++++++++++++ .../core/domain/entity/SparePartsManage.java | 154 ++++++++++++++++++ .../device/DeviceInOutManageMapper.java | 16 ++ .../mapper/device/DeviceQrManageMapper.java | 16 ++ .../mapper/device/SparePartsManageMapper.java | 23 +++ .../device/IDeviceInOutManageService.java | 26 +++ .../device/IDeviceQrManageService.java | 27 +++ .../device/ISparePartsManageService.java | 24 +++ .../impl/DeviceInOutManageServiceImpl.java | 92 +++++++++++ .../impl/DeviceQrManageServiceImpl.java | 71 ++++++++ .../impl/SparePartsManageServiceImpl.java | 73 +++++++++ sql/表结构设计.sql | 13 ++ 16 files changed, 1033 insertions(+) create mode 100644 mh-admin/src/main/java/com/mh/web/controller/device/DeviceInOutManageController.java create mode 100644 mh-admin/src/main/java/com/mh/web/controller/device/DeviceQrManageController.java create mode 100644 mh-admin/src/main/java/com/mh/web/controller/device/SparePartsManageController.java create mode 100644 mh-common/src/main/java/com/mh/common/core/domain/entity/DeviceInOutManage.java create mode 100644 mh-common/src/main/java/com/mh/common/core/domain/entity/DeviceQrManage.java create mode 100644 mh-common/src/main/java/com/mh/common/core/domain/entity/SparePartsManage.java create mode 100644 mh-system/src/main/java/com/mh/system/mapper/device/DeviceInOutManageMapper.java create mode 100644 mh-system/src/main/java/com/mh/system/mapper/device/DeviceQrManageMapper.java create mode 100644 mh-system/src/main/java/com/mh/system/mapper/device/SparePartsManageMapper.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/IDeviceInOutManageService.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/IDeviceQrManageService.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/ISparePartsManageService.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/impl/DeviceInOutManageServiceImpl.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/impl/DeviceQrManageServiceImpl.java create mode 100644 mh-system/src/main/java/com/mh/system/service/device/impl/SparePartsManageServiceImpl.java diff --git a/mh-admin/src/main/java/com/mh/web/controller/device/DeviceInOutManageController.java b/mh-admin/src/main/java/com/mh/web/controller/device/DeviceInOutManageController.java new file mode 100644 index 0000000..b99ba08 --- /dev/null +++ b/mh-admin/src/main/java/com/mh/web/controller/device/DeviceInOutManageController.java @@ -0,0 +1,87 @@ +package com.mh.web.controller.device; + +import com.mh.common.annotation.Log; +import com.mh.common.core.controller.BaseController; +import com.mh.common.core.domain.AjaxResult; +import com.mh.common.core.domain.entity.DeviceInOutManage; +import com.mh.common.core.page.TableDataInfo; +import com.mh.common.enums.BusinessType; +import com.mh.system.service.device.IDeviceInOutManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备出入库流水表记录 + * @date 2025-01-09 15:24:24 + */ +@RestController +@RequestMapping("/device/spareInOut") +public class DeviceInOutManageController extends BaseController { + @Autowired + private IDeviceInOutManageService deviceInOutManageService; + + /** + * 获取备品/备件出入库管理流水记录列表内容数据 + */ + @PreAuthorize("@ss.hasPermi('system:spareInOut:list')") + @GetMapping("/list") + public TableDataInfo list(DeviceInOutManage deviceInOutManage) + { + startPage(); + List list = deviceInOutManageService.selectDeviceInOutManageList(deviceInOutManage); + return getDataTable(list); + } + + /** + * 根据备品/备件出入库管理流水记录id获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:spareInOut:query')") + @GetMapping(value = "/{spareId}") + public AjaxResult getInfo(@PathVariable String spareId) + { + return success(deviceInOutManageService.selectDeviceInOutManageById(spareId)); + } + + /** + * 新增备品/备件出入库管理流水记录 + */ + @PreAuthorize("@ss.hasPermi('system:spareInOut:add')") + @Log(title = "备品/备件出入库管理流水记录管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody DeviceInOutManage deviceInOutManage) + { + deviceInOutManage.setCreateBy(getUsername()); + return toAjax(deviceInOutManageService.insertDeviceInOutManage(deviceInOutManage)); + } + +// /** +// * 修改备品/备件出入库管理流水记录信息 +// */ +// @PreAuthorize("@ss.hasPermi('system:spareInOut:edit')") +// @Log(title = "备品/备件出入库管理流水记录管理", businessType = BusinessType.UPDATE) +// @PutMapping +// public AjaxResult edit(@Validated @RequestBody DeviceInOutManage deviceInOutManage) +// { +// deviceInOutManage.setUpdateBy(getUsername()); +// return toAjax(deviceInOutManageService.updateDeviceInOutManage(deviceInOutManage)); +// } +// +// /** +// * 删除备品/备件出入库管理流水记录管理 +// */ +// @PreAuthorize("@ss.hasPermi('system:spareInOut:remove')") +// @Log(title = "备品/备件出入库管理流水记录管理", businessType = BusinessType.DELETE) +// @DeleteMapping("/{spareIds}") +// public AjaxResult remove(@PathVariable String[] spareIds) +// { +// return toAjax(deviceInOutManageService.deleteDeviceInOutManageByIds(spareIds)); +// } + +} diff --git a/mh-admin/src/main/java/com/mh/web/controller/device/DeviceQrManageController.java b/mh-admin/src/main/java/com/mh/web/controller/device/DeviceQrManageController.java new file mode 100644 index 0000000..a0bdc4b --- /dev/null +++ b/mh-admin/src/main/java/com/mh/web/controller/device/DeviceQrManageController.java @@ -0,0 +1,95 @@ +package com.mh.web.controller.device; + +import com.mh.common.annotation.Log; +import com.mh.common.core.controller.BaseController; +import com.mh.common.core.domain.AjaxResult; +import com.mh.common.core.domain.entity.DeviceQrManage; +import com.mh.common.core.page.TableDataInfo; +import com.mh.common.enums.BusinessType; +import com.mh.system.service.device.IDeviceQrManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备二维码维护管理 + * @date 2025-01-09 16:48:30 + */ +@RestController +@RequestMapping("/device/qr") +public class DeviceQrManageController extends BaseController { + + @Autowired + private IDeviceQrManageService deviceQrManageService; + + @PreAuthorize("@ss.hasPermi('system:qr:create')") + @GetMapping("/create") + public AjaxResult create(@RequestParam String qrNum) { + return success(deviceQrManageService.createQrCode(qrNum)); + } + + + /** + * 获取二维码维护记录列表内容数据 + */ + @PreAuthorize("@ss.hasPermi('system:qr:list')") + @GetMapping("/list") + public TableDataInfo list(DeviceQrManage deviceQrManage) + { + startPage(); + List list = deviceQrManageService.selectDeviceQrManageList(deviceQrManage); + return getDataTable(list); + } + + /** + * 根据二维码维护记录id获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:qr:query')") + @GetMapping(value = "/{qrId}") + public AjaxResult getInfo(@PathVariable String qrId) + { + return success(deviceQrManageService.selectDeviceQrManageById(qrId)); + } + + /** + * 新增二维码维护记录 + */ + @PreAuthorize("@ss.hasPermi('system:qr:add')") + @Log(title = "二维码维护记录管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody DeviceQrManage deviceQrManage) + { + deviceQrManage.setCreateBy(getUsername()); + return toAjax(deviceQrManageService.insertDeviceQrManage(deviceQrManage)); + } + + /** + * 修改二维码维护记录信息 + */ + @PreAuthorize("@ss.hasPermi('system:qr:edit')") + @Log(title = "二维码维护记录管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody DeviceQrManage deviceQrManage) + { + deviceQrManage.setUpdateBy(getUsername()); + return toAjax(deviceQrManageService.updateDeviceQrManage(deviceQrManage)); + } + + /** + * 删除二维码维护记录管理 + */ + @PreAuthorize("@ss.hasPermi('system:qr:remove')") + @Log(title = "二维码维护记录管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{qrIds}") + public AjaxResult remove(@PathVariable String[] qrIds) + { + return toAjax(deviceQrManageService.deleteDeviceQrManageByIds(qrIds)); + } + +} diff --git a/mh-admin/src/main/java/com/mh/web/controller/device/SparePartsManageController.java b/mh-admin/src/main/java/com/mh/web/controller/device/SparePartsManageController.java new file mode 100644 index 0000000..55a8ce7 --- /dev/null +++ b/mh-admin/src/main/java/com/mh/web/controller/device/SparePartsManageController.java @@ -0,0 +1,88 @@ +package com.mh.web.controller.device; + +import com.mh.common.annotation.Log; +import com.mh.common.core.controller.BaseController; +import com.mh.common.core.domain.AjaxResult; +import com.mh.common.core.domain.entity.SparePartsManage; +import com.mh.common.core.page.TableDataInfo; +import com.mh.common.enums.BusinessType; +import com.mh.system.service.device.ISparePartsManageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 备品/备件出入库管理 + * @date 2025-01-09 11:40:25 + */ +@RestController +@RequestMapping("/device/spare") +public class SparePartsManageController extends BaseController { + + @Autowired + private ISparePartsManageService sparePartsManageService; + + /** + * 获取备品/备件出入库管理列表内容数据 + */ + @PreAuthorize("@ss.hasPermi('system:spare:list')") + @GetMapping("/list") + public TableDataInfo list(SparePartsManage sparePartsManage) + { + startPage(); + List list = sparePartsManageService.selectSparePartsManageList(sparePartsManage); + return getDataTable(list); + } + + /** + * 根据备品/备件出入库管理id获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:spare:query')") + @GetMapping(value = "/{spareId}") + public AjaxResult getInfo(@PathVariable String spareId) + { + return success(sparePartsManageService.selectSparePartsManageById(spareId)); + } + + /** + * 新增备品/备件出入库管理 + */ + @PreAuthorize("@ss.hasPermi('system:spare:add')") + @Log(title = "备品/备件出入库管理管理", businessType = BusinessType.INSERT) + @PostMapping + public AjaxResult add(@Validated @RequestBody SparePartsManage sparePartsManage) + { + sparePartsManage.setCreateBy(getUsername()); + return toAjax(sparePartsManageService.insertSparePartsManage(sparePartsManage)); + } + + /** + * 修改备品/备件出入库管理信息 + */ + @PreAuthorize("@ss.hasPermi('system:spare:edit')") + @Log(title = "备品/备件出入库管理管理", businessType = BusinessType.UPDATE) + @PutMapping + public AjaxResult edit(@Validated @RequestBody SparePartsManage sparePartsManage) + { + sparePartsManage.setUpdateBy(getUsername()); + return toAjax(sparePartsManageService.updateSparePartsManage(sparePartsManage)); + } + + /** + * 删除备品/备件出入库管理管理 + */ + @PreAuthorize("@ss.hasPermi('system:spare:remove')") + @Log(title = "备品/备件出入库管理管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{spareIds}") + public AjaxResult remove(@PathVariable String[] spareIds) + { + return toAjax(sparePartsManageService.deleteSparePartsManageByIds(spareIds)); + } + +} diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/DeviceInOutManage.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/DeviceInOutManage.java new file mode 100644 index 0000000..04191e2 --- /dev/null +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/DeviceInOutManage.java @@ -0,0 +1,106 @@ +package com.mh.common.core.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mh.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 配件出入库流水记录表 + * @date 2025-01-09 15:07:33 + */ +@TableName("device_in_out_manage") +public class DeviceInOutManage extends BaseEntity { + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 关联到备件的唯一标识符,用于标识具体的备件 + */ + private String sparePartsId; + + /** + * 备件的名称,便于快速识别 + */ + private String sparePartsName; + + /** + * 出入库操作类型,0表示入库,1表示出库 + */ + private Integer operaType; + + /** + * 本次出入库操作的数量,正值表示入库,负值表示出库 + */ + private Integer intOutNum; + + /** + * 当前备件的库存数量,在每次出入库操作后更新 + */ + private Integer inventoryLevels; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getSparePartsId() { + return sparePartsId; + } + + public void setSparePartsId(String sparePartsId) { + this.sparePartsId = sparePartsId; + } + + public String getSparePartsName() { + return sparePartsName; + } + + public void setSparePartsName(String sparePartsName) { + this.sparePartsName = sparePartsName; + } + + public Integer getOperaType() { + return operaType; + } + + public void setOperaType(Integer operaType) { + this.operaType = operaType; + } + + public Integer getIntOutNum() { + return intOutNum; + } + + public void setIntOutNum(Integer intOutNum) { + this.intOutNum = intOutNum; + } + + public Integer getInventoryLevels() { + return inventoryLevels; + } + + public void setInventoryLevels(Integer inventoryLevels) { + this.inventoryLevels = inventoryLevels; + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("sparePartsId", sparePartsId) + .append("sparePartsName", sparePartsName) + .append("operaType", operaType) + .append("intOutNum", intOutNum) + .append("inventoryLevels", inventoryLevels) + .toString(); + } +} diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/DeviceQrManage.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/DeviceQrManage.java new file mode 100644 index 0000000..719433f --- /dev/null +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/DeviceQrManage.java @@ -0,0 +1,122 @@ +package com.mh.common.core.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mh.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; + +import java.util.Date; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备二维码维护管理 + * @date 2025-01-09 16:42:51 + */ +@TableName("device_qr_manage") +public class DeviceQrManage extends BaseEntity { + + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 二维码序列号 + */ + private String serialNum; + + /** + * 二维码内容或者文件路径 + */ + private String picContent; + + /** + * 设备台账id + */ + private String deviceLedgerId; + + /** + * 设备名称 + */ + private String deviceName; + + /** + * 绑定时间 + */ + private Date bindTime; + + /** + * 二维码状态:0:已绑定,1:未绑定 + */ + private Integer status; + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getSerialNum() { + return serialNum; + } + + public void setSerialNum(String serialNum) { + this.serialNum = serialNum; + } + + public String getPicContent() { + return picContent; + } + + public void setPicContent(String picContent) { + this.picContent = picContent; + } + + public String getDeviceLedgerId() { + return deviceLedgerId; + } + + public void setDeviceLedgerId(String deviceLedgerId) { + this.deviceLedgerId = deviceLedgerId; + } + + public String getDeviceName() { + return deviceName; + } + + public void setDeviceName(String deviceName) { + this.deviceName = deviceName; + } + + public Date getBindTime() { + return bindTime; + } + + public void setBindTime(Date bindTime) { + this.bindTime = bindTime; + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("serialNum", serialNum) + .append("picContent", picContent) + .append("deviceLedgerId", deviceLedgerId) + .append("deviceName", deviceName) + .append("bindTime", bindTime) + .append("status", status) + .toString(); + } +} diff --git a/mh-common/src/main/java/com/mh/common/core/domain/entity/SparePartsManage.java b/mh-common/src/main/java/com/mh/common/core/domain/entity/SparePartsManage.java new file mode 100644 index 0000000..ec42d80 --- /dev/null +++ b/mh-common/src/main/java/com/mh/common/core/domain/entity/SparePartsManage.java @@ -0,0 +1,154 @@ +package com.mh.common.core.domain.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.mh.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 备品/备件出入库管理表,用于记录备件的出入库操作及当前库存情况 + * @date 2025-01-09 11:24:02 + */ +@TableName("spare_parts_manage") +public class SparePartsManage extends BaseEntity { + + /** + * id + */ + @TableId(value = "id", type = IdType.ASSIGN_UUID) + private String id; + + /** + * 备件的序列号,用于唯一识别每个备件 + */ + private String serialNum; + + /** + * 备件的名称,便于快速识别 + */ + private String spareName; + + /** + * 备件的规格和型号 + */ + private String modelSpecs; + + /** + * 关联到设备类型的ID,标识备件适用于哪种设备类型 + */ + private String deviceTypeId; + + /** + * 当前备件的库存数量,在每次出入库操作后更新 + */ + private Integer inventoryLevels; + + /** + * 最低库存量阈值,当库存低于此值时需要补货 + */ + private Integer minInventoryLevels; + + /** + * 备件的预计使用年限,单位为年 + */ + private Integer serviceLife; + + /** + * 备件的单价,保留三位小数 + */ + private BigDecimal unitPrice; + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getSerialNum() { + return serialNum; + } + + public void setSerialNum(String serialNum) { + this.serialNum = serialNum; + } + + public String getSpareName() { + return spareName; + } + + public void setSpareName(String spareName) { + this.spareName = spareName; + } + + public String getModelSpecs() { + return modelSpecs; + } + + public void setModelSpecs(String modelSpecs) { + this.modelSpecs = modelSpecs; + } + + public String getDeviceTypeId() { + return deviceTypeId; + } + + public void setDeviceTypeId(String deviceTypeId) { + this.deviceTypeId = deviceTypeId; + } + + public Integer getInventoryLevels() { + return inventoryLevels; + } + + public void setInventoryLevels(Integer inventoryLevels) { + this.inventoryLevels = inventoryLevels; + } + + public Integer getMinInventoryLevels() { + return minInventoryLevels; + } + + public void setMinInventoryLevels(Integer minInventoryLevels) { + this.minInventoryLevels = minInventoryLevels; + } + + public Integer getServiceLife() { + return serviceLife; + } + + public void setServiceLife(Integer serviceLife) { + this.serviceLife = serviceLife; + } + + public BigDecimal getUnitPrice() { + return unitPrice; + } + + public void setUnitPrice(BigDecimal unitPrice) { + this.unitPrice = unitPrice; + } + + @Override + public String toString() { + return new ToStringBuilder(this) + .append("id", id) + .append("serialNum", serialNum) + .append("spareName", spareName) + .append("modelSpecs", modelSpecs) + .append("deviceTypeId", deviceTypeId) + .append("inventoryLevels", inventoryLevels) + .append("minInventoryLevels", minInventoryLevels) + .append("serviceLife", serviceLife) + .append("unitPrice", unitPrice) + .toString(); + } +} diff --git a/mh-system/src/main/java/com/mh/system/mapper/device/DeviceInOutManageMapper.java b/mh-system/src/main/java/com/mh/system/mapper/device/DeviceInOutManageMapper.java new file mode 100644 index 0000000..46faa2e --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/mapper/device/DeviceInOutManageMapper.java @@ -0,0 +1,16 @@ +package com.mh.system.mapper.device; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.common.core.domain.entity.DeviceInOutManage; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 设备出入库流水管理Mapper + * @date 2025-01-09 15:43:52 + */ +@Mapper +public interface DeviceInOutManageMapper extends BaseMapper { +} diff --git a/mh-system/src/main/java/com/mh/system/mapper/device/DeviceQrManageMapper.java b/mh-system/src/main/java/com/mh/system/mapper/device/DeviceQrManageMapper.java new file mode 100644 index 0000000..7981d6f --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/mapper/device/DeviceQrManageMapper.java @@ -0,0 +1,16 @@ +package com.mh.system.mapper.device; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.common.core.domain.entity.DeviceQrManage; +import org.apache.ibatis.annotations.Mapper; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 二维码管理mapper类 + * @date 2025-01-09 17:14:26 + */ +@Mapper +public interface DeviceQrManageMapper extends BaseMapper { +} diff --git a/mh-system/src/main/java/com/mh/system/mapper/device/SparePartsManageMapper.java b/mh-system/src/main/java/com/mh/system/mapper/device/SparePartsManageMapper.java new file mode 100644 index 0000000..a3d51db --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/mapper/device/SparePartsManageMapper.java @@ -0,0 +1,23 @@ +package com.mh.system.mapper.device; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.mh.common.core.domain.entity.SparePartsManage; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Update; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 物品配件管理 + * @date 2025-01-09 14:52:08 + */ +@Mapper +public interface SparePartsManageMapper extends BaseMapper { + + @Update("update spare_parts_manage set inventory_levels = #{inventoryLevels} where id = #{sparePartsId}") + void updateInventoryLevels(@Param("sparePartsId") String sparePartsId, + @Param("inventoryLevels") int inventoryLevels); + +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/IDeviceInOutManageService.java b/mh-system/src/main/java/com/mh/system/service/device/IDeviceInOutManageService.java new file mode 100644 index 0000000..416e000 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/IDeviceInOutManageService.java @@ -0,0 +1,26 @@ +package com.mh.system.service.device; + +import com.mh.common.core.domain.entity.DeviceInOutManage; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 配件设备出入库流水管理 + * @date 2025-01-09 15:39:45 + */ +public interface IDeviceInOutManageService { + + List selectDeviceInOutManageList(DeviceInOutManage deviceInOutManage); + + DeviceInOutManage selectDeviceInOutManageById(String spareId); + + int insertDeviceInOutManage(DeviceInOutManage deviceInOutManage); + + int updateDeviceInOutManage(DeviceInOutManage deviceInOutManage); + + int deleteDeviceInOutManageByIds(String[] spareIds); + +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/IDeviceQrManageService.java b/mh-system/src/main/java/com/mh/system/service/device/IDeviceQrManageService.java new file mode 100644 index 0000000..e1b3dae --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/IDeviceQrManageService.java @@ -0,0 +1,27 @@ +package com.mh.system.service.device; + +import com.mh.common.core.domain.entity.DeviceQrManage; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 二维码管理 + * @date 2025-01-09 17:12:56 + */ +public interface IDeviceQrManageService { + + List selectDeviceQrManageList(DeviceQrManage deviceQrManage); + + DeviceQrManage selectDeviceQrManageById(String qrId); + + int updateDeviceQrManage(DeviceQrManage deviceQrManage); + + int insertDeviceQrManage(DeviceQrManage deviceQrManage); + + int deleteDeviceQrManageByIds(String[] qrIds); + + int createQrCode(String qrNum); +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/ISparePartsManageService.java b/mh-system/src/main/java/com/mh/system/service/device/ISparePartsManageService.java new file mode 100644 index 0000000..00e42f0 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/ISparePartsManageService.java @@ -0,0 +1,24 @@ +package com.mh.system.service.device; + +import com.mh.common.core.domain.entity.SparePartsManage; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 备件管理 + * @date 2025-01-09 11:46:24 + */ +public interface ISparePartsManageService { + List selectSparePartsManageList(SparePartsManage sparePartsManage); + + SparePartsManage selectSparePartsManageById(String spareId); + + int insertSparePartsManage(SparePartsManage sparePartsManage); + + int updateSparePartsManage(SparePartsManage sparePartsManage); + + int deleteSparePartsManageByIds(String[] spareIds); +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/impl/DeviceInOutManageServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/device/impl/DeviceInOutManageServiceImpl.java new file mode 100644 index 0000000..dcb72a9 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/impl/DeviceInOutManageServiceImpl.java @@ -0,0 +1,92 @@ +package com.mh.system.service.device.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mh.common.core.domain.entity.DeviceInOutManage; +import com.mh.common.core.domain.entity.SparePartsManage; +import com.mh.common.utils.StringUtils; +import com.mh.system.mapper.device.DeviceInOutManageMapper; +import com.mh.system.mapper.device.SparePartsManageMapper; +import com.mh.system.service.device.IDeviceInOutManageService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 配件设备出入库流水管理 + * @date 2025-01-09 15:39:45 + */ +@Service +public class DeviceInOutManageServiceImpl implements IDeviceInOutManageService { + + @Resource + private DeviceInOutManageMapper deviceInOutManageMapper; + + @Resource + private SparePartsManageMapper sparePartsManageMapper; + + @Override + public List selectDeviceInOutManageList(DeviceInOutManage deviceInOutManage) { + if (deviceInOutManage == null) { + return List.of(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (!StringUtils.isEmpty(deviceInOutManage.getSparePartsId())) { + queryWrapper.eq("spare_parts_id", deviceInOutManage.getSparePartsId()); + } + if (!StringUtils.isEmpty(deviceInOutManage.getSparePartsName())) { + queryWrapper.like("spare_parts_name", deviceInOutManage.getSparePartsName()); + } + if (deviceInOutManage.getOperaType() != null) { + queryWrapper.eq("opera_type", deviceInOutManage.getOperaType()); + } + // 出入库时间范围 + if (!deviceInOutManage.getParams().isEmpty()) { + queryWrapper.between("create_time", deviceInOutManage.getParams().get("beginTime"), deviceInOutManage.getParams().get("endTime")); + } + queryWrapper.orderByDesc("create_time"); + return deviceInOutManageMapper.selectList(queryWrapper); + } + + @Override + public DeviceInOutManage selectDeviceInOutManageById(String spareId) { + return deviceInOutManageMapper.selectById(spareId); + } + + @Transactional + @Override + public int insertDeviceInOutManage(DeviceInOutManage deviceInOutManage) { + // 获取当前库存量 + String sparePartsId = deviceInOutManage.getSparePartsId(); + SparePartsManage sparePartsManage = sparePartsManageMapper.selectById(sparePartsId); + int inventoryLevels = 0; + if (sparePartsManage != null) { + inventoryLevels = sparePartsManage.getInventoryLevels(); + } + // 修改配件的库存:operaType=0:入库;operaType=1:出库 + int intOutNum = deviceInOutManage.getIntOutNum(); + if (deviceInOutManage.getOperaType() == 0) { + inventoryLevels = inventoryLevels + intOutNum; + sparePartsManageMapper.updateInventoryLevels(deviceInOutManage.getSparePartsId(), inventoryLevels); + } else if (deviceInOutManage.getOperaType() == 1) { + inventoryLevels = inventoryLevels - intOutNum; + sparePartsManageMapper.updateInventoryLevels(deviceInOutManage.getSparePartsId(), -intOutNum); + } + deviceInOutManage.setInventoryLevels(inventoryLevels); + return deviceInOutManageMapper.insert(deviceInOutManage); + } + + @Override + public int updateDeviceInOutManage(DeviceInOutManage deviceInOutManage) { + return 0; + } + + @Override + public int deleteDeviceInOutManageByIds(String[] spareIds) { + return 0; + } +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/impl/DeviceQrManageServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/device/impl/DeviceQrManageServiceImpl.java new file mode 100644 index 0000000..c585b1d --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/impl/DeviceQrManageServiceImpl.java @@ -0,0 +1,71 @@ +package com.mh.system.service.device.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mh.common.core.domain.entity.DeviceQrManage; +import com.mh.system.mapper.device.DeviceQrManageMapper; +import com.mh.system.service.device.IDeviceQrManageService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 二维码管理 + * @date 2025-01-09 17:13:21 + */ +@Service +public class DeviceQrManageServiceImpl implements IDeviceQrManageService { + + @Resource + private DeviceQrManageMapper deviceQrManageMapper; + + @Override + public List selectDeviceQrManageList(DeviceQrManage deviceQrManage) { + if (deviceQrManage == null) { + return List.of(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + if (deviceQrManage.getStatus() != null) { + queryWrapper.eq("status", deviceQrManage.getStatus()); + } + queryWrapper.orderByAsc("create_time"); + return deviceQrManageMapper.selectList(queryWrapper); + } + + @Override + public DeviceQrManage selectDeviceQrManageById(String qrId) { + return deviceQrManageMapper.selectById(qrId); + } + + @Override + public int updateDeviceQrManage(DeviceQrManage deviceQrManage) { + return deviceQrManageMapper.updateById(deviceQrManage); + } + + @Override + public int insertDeviceQrManage(DeviceQrManage deviceQrManage) { + return deviceQrManageMapper.insert(deviceQrManage); + } + + @Transactional + @Override + public int deleteDeviceQrManageByIds(String[] qrIds) { + if (qrIds != null) { + for (String qrId : qrIds) { + deviceQrManageMapper.deleteById(qrId); + } + return qrIds.length; + } + return 0; + } + + @Override + public int createQrCode(String qrNum) { + + return 0; + } +} diff --git a/mh-system/src/main/java/com/mh/system/service/device/impl/SparePartsManageServiceImpl.java b/mh-system/src/main/java/com/mh/system/service/device/impl/SparePartsManageServiceImpl.java new file mode 100644 index 0000000..317ce37 --- /dev/null +++ b/mh-system/src/main/java/com/mh/system/service/device/impl/SparePartsManageServiceImpl.java @@ -0,0 +1,73 @@ +package com.mh.system.service.device.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.mh.common.core.domain.entity.SparePartsManage; +import com.mh.common.utils.StringUtils; +import com.mh.system.mapper.device.SparePartsManageMapper; +import com.mh.system.service.device.ISparePartsManageService; +import jakarta.annotation.Resource; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @author LJF + * @version 1.0 + * @project EEMCS + * @description 备件管理 + * @date 2025-01-09 11:47:05 + */ +@Service +public class SparePartsManageServiceImpl implements ISparePartsManageService { + + @Resource + private SparePartsManageMapper sparePartsManageMapper; + + @Override + public List selectSparePartsManageList(SparePartsManage sparePartsManage) { + if (sparePartsManage == null) { + return List.of(); + } + QueryWrapper queryWrapper = new QueryWrapper<>(); + // 序列号 + if (!StringUtils.isEmpty(sparePartsManage.getSerialNum())) { + queryWrapper.like("serial_num", sparePartsManage.getSerialNum()); + } + // 配件名称 + if (!StringUtils.isEmpty(sparePartsManage.getSpareName())) { + queryWrapper.like("spare_name", sparePartsManage.getSpareName()); + } + // 入库时间范围 + if (sparePartsManage.getCreateTime() != null) { + queryWrapper.between("create_time", sparePartsManage.getParams().get("beginTime"), sparePartsManage.getParams().get("endTime")); + } + queryWrapper.orderByDesc("create_time"); + return sparePartsManageMapper.selectList(queryWrapper); + } + + @Override + public SparePartsManage selectSparePartsManageById(String spareId) { + return sparePartsManageMapper.selectById(spareId); + } + + @Override + public int insertSparePartsManage(SparePartsManage sparePartsManage) { + return sparePartsManageMapper.insert(sparePartsManage); + } + + @Override + public int updateSparePartsManage(SparePartsManage sparePartsManage) { + return sparePartsManageMapper.updateById(sparePartsManage); + } + + @Override + public int deleteSparePartsManageByIds(String[] spareIds) { + if (spareIds != null) { + for (String spareId : spareIds) { + sparePartsManageMapper.deleteById(spareId); + } + return spareIds.length; + } + return 0; + } +} diff --git a/sql/表结构设计.sql b/sql/表结构设计.sql index 70fde1d..425436f 100644 --- a/sql/表结构设计.sql +++ b/sql/表结构设计.sql @@ -79,6 +79,14 @@ CREATE INDEX idx_device_qr_manage_device_ledger_id ON device_qr_manage (device_l -- 为 device_qr_manage 表的 create_time 字段添加索引(倒序) CREATE INDEX idx_device_qr_manage_create_time_desc ON device_qr_manage (create_time DESC); +ALTER TABLE public.device_qr_manage ADD update_by varchar(100) NULL; +COMMENT ON COLUMN public.device_qr_manage.update_by IS '更新者'; + +ALTER TABLE public.device_qr_manage ADD status int NULL; +COMMENT ON COLUMN public.device_qr_manage.status IS '二维码状态:0:已绑定,1:未绑定'; + + + --3、采集参数管理表 collection_params_manage 表 CREATE TABLE collection_params_manage ( id varchar(36) NOT NULL, -- 主键 @@ -192,6 +200,9 @@ COMMENT ON COLUMN spare_parts_manage.create_by IS '创建该记录的用户'; CREATE INDEX idx_spare_parts_device_type_id ON spare_parts_manage (device_type_id); CREATE INDEX idx_spare_parts_create_time_desc ON spare_parts_manage (create_time DESC); +ALTER TABLE public.spare_parts_manage ADD update_by varchar NULL; +COMMENT ON COLUMN public.spare_parts_manage.update_by IS '更新者'; + --5、创建出入库管理device_in_out_manage CREATE TABLE device_in_out_manage ( @@ -204,6 +215,7 @@ CREATE TABLE device_in_out_manage ( create_time TIMESTAMP NULL, -- 记录创建的时间戳 update_time TIMESTAMP NULL, -- 记录最后一次更新的时间戳 create_by VARCHAR(100) NULL, -- 创建该记录的用户 + update_by VARCHAR(100) NULL, -- 更新该记录的用户 PRIMARY KEY (id) ); @@ -225,6 +237,7 @@ CREATE INDEX idx_device_in_out_manage_opera_type ON device_in_out_manage (opera_ CREATE INDEX idx_device_in_out_manage_spare_parts_id ON device_in_out_manage (spare_parts_id); CREATE INDEX idx_device_in_out_manage_create_time_desc ON device_in_out_manage (create_time DESC); + -- 6、创建网关管理 gateway_manage 表 CREATE TABLE gateway_manage ( id varchar(36) NOT NULL, -- 自增主键