diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/MaDevInfoController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/MaDevInfoController.java index 1dfccdd..350f1f9 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/MaDevInfoController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/controller/MaDevInfoController.java @@ -3,10 +3,7 @@ package com.bonus.material.devchange.controller; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.contract.domain.BmContract; -import com.bonus.material.devchange.domain.DeviceCountBean; -import com.bonus.material.devchange.domain.DeviceTreeBean; -import com.bonus.material.devchange.domain.MaDevInfo; -import com.bonus.material.devchange.domain.MapBean; +import com.bonus.material.devchange.domain.*; import com.bonus.material.devchange.service.MaDevInfoService; import com.bonus.material.devchange.service.MaDevInfoServiceImpl; import com.bonus.material.device.domain.vo.DevMergeVo; @@ -51,6 +48,7 @@ public class MaDevInfoController extends BaseController { } } + @ApiOperation(value = "设备台账-上下架") @PostMapping("/updateDeviceStatus") public AjaxResult updateDeviceStatus(@RequestBody DevMergeVo o) { @@ -84,6 +82,12 @@ public class MaDevInfoController extends BaseController { } } + @ApiOperation(value = "设备台账-获取单个设备详情") + @GetMapping("/getDevice/{maId}") + public AjaxResult getDevice(@PathVariable Integer maId) { + return AjaxResult.success(service.getDevice(maId)); + } + @ApiOperation(value = "设备台账-删除") @PostMapping("/delDevice/{ids}") public AjaxResult delDevice(@PathVariable("ids") String[] ids) { diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/Equipment.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/Equipment.java new file mode 100644 index 0000000..87d162c --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/Equipment.java @@ -0,0 +1,197 @@ +package com.bonus.material.devchange.domain; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 装备实体类 + * 存储装备的详细信息,包括基本属性、状态、使用情况、文档资料等 + */ +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Equipment { + /** + * 设备id + */ + private Integer maId; + /** + * 所属省份 + * 说明:装备当前所在的省份 + */ + private String province; + + /** + * 专业 + * 说明:装备所属的专业领域(如机械、电子、建筑等) + */ + private String major; + + /** + * 主工序 + * 说明:装备主要参与的工序环节 + */ + private String mainProcess; + + /** + * 子工序 + * 说明:装备参与的具体子工序 + */ + private String subProcess; + + /** + * 装备大类目 + * 说明:装备所属的一级分类(如工程机械、仪器仪表等) + */ + private String mainCategory; + + /** + * 装备小类目 + * 说明:装备所属的二级分类,主类目下的细分分类 + */ + private String subCategory; + + /** + * 装备分支 + * 说明:小类目下的更细分类,代表具体的装备类型分支 + */ + private String branch; + + /** + * 装备名称 + * 说明:装备的具体名称,用于标识和展示 + */ + private String name; + + /** + * 规格型号 + * 说明:装备的规格和型号信息,反映装备的技术参数 + */ + private String specificationModel; + + /** + * 装备编码 + * 说明:系统内部为装备分配的唯一编码,用于管理和识别 + */ + private String code; + + /** + * 装备状态 + * 说明:装备当前的状态(如在用、闲置、维修中、报废等) + */ + private String status; + + /** + * 使用年限 + * 说明:装备已使用的年限 + */ + private String serviceLife; + + /** + * 使用项目 + * 说明:装备当前正在使用的项目名称 + */ + private String usingProject; + + /** + * 使用到期时间 + * 说明:装备预计的使用到期时间或租赁到期时间 + */ + private Date expirationTime; + + /** + * 使用次数 + * 说明:装备累计的使用次数统计 + */ + private Integer usageCount; + + /** + * 维修次数 + * 说明:装备累计的维修次数统计 + */ + private Integer repairCount; + + /** + * 装备原始编码 + * 说明:装备出厂时厂家赋予的原始编码,用于溯源 + */ + private String originalCode; + + /** + * 计量单位 + * 说明:装备的计量单位(如台、套、个等) + */ + private String unit; + + /** + * 生产厂家 + * 说明:装备的生产制造厂商名称 + */ + private String manufacturer; + + /** + * 出厂日期 + * 说明:装备从厂家生产出厂的日期 + */ + private Date productionDate; + + /** + * 采购日期 + * 说明:装备被采购入库的日期 + */ + private Date purchaseDate; + + /** + * 资产原值(元) + * 说明:装备的原始采购价值,以元为单位 + */ + private BigDecimal originalValue; + + /** + * 最大使用年限(年) + * 说明:装备设计的最大可使用年限 + */ + private Integer maxServiceLifeYears; + + /** + * 下次维保日期 + * 说明:装备下一次需要进行维护保养的日期 + */ + private Date nextMaintenanceDate; + + /** + * 产权单位 + * 说明:装备的所有权所属单位 + */ + private String propertyUnit; + + /** + * 装备外观 + * 说明:装备外观图片的URL列表,存储装备的外观照片 + */ + private List appearanceImages; + + /** + * 合格证 + * 说明:装备合格证的URL列表,存储合格证扫描件或照片 + */ + private List certificates; + + /** + * 定期检验报告 + * 说明:装备定期检验报告的URL列表 + */ + private List inspectionReports; + + /** + * 采购发票 + * 说明:装备采购发票的URL列表,存储发票扫描件或照片 + */ + private List purchaseInvoices; +} + \ No newline at end of file diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/MaDevFile.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/MaDevFile.java new file mode 100644 index 0000000..56a7cb1 --- /dev/null +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/MaDevFile.java @@ -0,0 +1,74 @@ +package com.bonus.material.devchange.domain; + +import lombok.Data; + +import java.util.Date; + +/** + * 设备文件实体类 + * 对应数据库表:ma_dev_file + * 功能描述:存储设备相关的图片及附件信息,如装备主图、详情图、合格证等文件的元数据 + */ +@Data +public class MaDevFile { + /** + * 主键ID + * 数据库字段:id + * 特性:自增唯一,无业务含义,仅用于数据唯一标识 + */ + private Integer id; + + /** + * 设备ID + * 数据库字段:ma_id + * 关联关系:外键关联设备表的主键,标识当前文件属于哪个设备 + * 可为null:允许存在未关联设备的文件(特殊业务场景) + */ + private Integer maId; + + /** + * 文件类型编码 + * 数据库字段:file_type + * 取值范围:1-装备主图、2-装备详情图、3-合格证、4-发票、5-检验报告 + * 建议使用DevFileType枚举进行类型管理,避免硬编码 + */ + private Integer fileType; + + /** + * 文件名称 + * 数据库字段:file_name + * 长度限制:最大120字符 + * 用途:存储文件的原始名称,用于前端展示 + */ + private String fileName; + + /** + * 文件存储路径 + * 数据库字段:file_url + * 长度限制:最大255字符 + * 格式:通常为相对路径或完整URL,用于访问实际文件资源 + */ + private String fileUrl; + + /** + * 创建人ID + * 数据库字段:creator + * 关联关系:关联用户表的主键,记录文件的上传者 + */ + private Integer creator; + + /** + * 创建时间 + * 数据库字段:create_time + * 特性:通常为文件上传成功时的系统时间,不可手动修改 + */ + private Date createTime; + + /** + * 数据状态标识 + * 数据库字段:is_active + * 取值说明:1-启用(正常显示)、0-删除(逻辑删除,不显示) + * 默认值:1(新创建的文件默认为启用状态) + */ + private Integer isActive = 1; +} \ No newline at end of file diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/MaDevInfo.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/MaDevInfo.java index 77205d1..18cce58 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/MaDevInfo.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/domain/MaDevInfo.java @@ -5,12 +5,14 @@ import java.util.Date; import java.util.List; import com.bonus.material.device.domain.vo.DevInfoPropertyVo; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; /** - * 设备信息表 + * 装备实体类 + * 存储装备的详细信息,包括基本属性、状态、使用情况、文档资料等 */ @Data @AllArgsConstructor @@ -20,300 +22,292 @@ public class MaDevInfo { * 设备id */ private Integer maId; - - /** - * 装备名称 - */ - private String deviceName; - - /** - * 装备整机重量 - */ - private Double deviceWeight; - - /** - * 设备数量 - */ - private Double deviceCount; - - /** - * 装备编号 - */ - private String code; - - /** - * 唯一标识符(如车架号等) - */ - private String identifyCode; - /** * 类型id */ private Integer typeId; + /** + * 订单id + */ + private Integer orderId; + /** + * 所属省份 + * 说明:装备当前所在的省份 + */ + private String province; + /** + * 专业Id + * 说明:装备所属的专业领域(如机械、电子、建筑等) + */ + private Integer majorId; + /** + * 专业 + * 说明:装备所属的专业领域(如机械、电子、建筑等) + */ + private String major; + /** + * 管理模式 + */ + private String manageType; + /** + * 数量 + */ + private Integer count; + /** + * 主工序id + */ + private Integer mainProcessId; + /** + * 主工序 + * 说明:装备主要参与的工序环节 + */ + private String mainProcess; + /** + * 子工序id + * 说明:装备参与的具体子工序 + */ + private String subProcessId; + /** + * 子工序 + * 说明:装备参与的具体子工序 + */ + private String subProcess; /** - * 设备状态(0:草稿 1:下架 2:上架 3:在租 4:自有)考虑数据字典 + * 装备大类目id + * 说明:装备所属的一级分类(如工程机械、仪器仪表等) */ - private String maStatus; + private String mainCategoryId; + /** + * 装备大类目 + * 说明:装备所属的一级分类(如工程机械、仪器仪表等) + */ + private String mainCategory; + /** + * 装备小类目id + * 说明:装备所属的二级分类,主类目下的细分分类 + */ + private Integer subCategoryId; + /** + * 装备小类目 + * 说明:装备所属的二级分类,主类目下的细分分类 + */ + private String subCategory; + /** + * 装备分支id + * 说明:小类目下的更细分类,代表具体的装备类型分支 + */ + private String branchId; + /** + * 装备分支 + * 说明:小类目下的更细分类,代表具体的装备类型分支 + */ + private String branch; /** - * 租赁范围 + * 装备名称 + * 说明:装备的具体名称,用于标识和展示 */ - private Integer leaseScope; + private String name; /** - * 设备所在地 + * 规格型号 + * 说明:装备的规格和型号信息,反映装备的技术参数 */ - private String location; + private String specificationModel; /** - * 装备品牌 + * 装备编码 + * 说明:系统内部为装备分配的唯一编码,用于管理和识别 */ - private String brand; + private String code; /** - * 装备型号(分类四级名称,新增可不添加) + * 装备状态 + * 说明:装备当前的状态(如在用、闲置、维修中、报废等) */ - private String modelName; + private String status; /** - * 出厂日期 + * 使用年限 + * 说明:装备已使用的年限 */ - private String productionDate; + private String serviceLife; /** - * 设备使用年限 + * 使用项目Id + * 说明:装备当前正在使用的项目名称 */ - private String workingHours; + private String usingProjectId; + /** + * 使用项目 + * 说明:装备当前正在使用的项目名称 + */ + private String usingProject; /** - * 整机序列号 - */ - private String serialNumber; - - /** - * 设备月租价 - */ - private BigDecimal monthLeasePrice; - - /** - * 设备天租价 - */ - private BigDecimal dayLeasePrice; - - /** - * 设备主照片 - */ - private String picUrl; - - /** - * 机手月租金 - */ - private BigDecimal jsMonthPrice; - - /** - * 机手天租金 - */ - private BigDecimal jsDayPrice; - - /** - * 详细描述 - */ - private String description; - - /** - * gps编号 - */ - private String gpsCode; - - /** - * 设备所属公司 - */ - private Integer ownCo; - - /** - * 联系人 - */ - private String person; - - /** - * 联系电话 - */ - private String personPhone; - - /** - * 创建时间 - */ - private String createTime; - - /** - * 创建人 - */ - private Integer creator; - - /** - * 订金 - */ - private BigDecimal deposit; - - /** - * 是否删除(0 是, 1否) - */ - private String isActive; - - /** - * 修改时间 - */ - private Date updateTime; - - /** - * 修改人 - */ - private Integer updateBy; - - /** - * 是否配置机手 - */ - private String isOperator; - - /** - * 设备规格 - */ - private String specification; - - /** - * 设备所在省id - */ - private Integer provinceId; - - /** - * 设备所在市id - */ - private Integer cityId; - - /** - * 设备所在区id - */ - private Integer areaId; - - /** - * 设备视频URL - */ - private String videoUrl; - - /** - * 上传人id - */ - private Integer ownId; - - /** - * 校验日期 - */ - private Date checkDate; - - /** - * 检验周期 - */ - private Integer checkCycle; - - /** - * 是否上传质检证书(0:否 1:是) - */ - private Integer isQc; - - /** - * 是否上传安全证书(0:否 1:是) - */ - private Integer isSafeBook; - - /** - * 是否上架专区 0:否 1:是 - */ - private Boolean isZone; - - /** - * 专区id - */ - private Integer zoneId; - - private Integer totalUpDay; - - private Integer totalLeaseDay; - - private String originaValue; - - /** - * 默认 1 变更状态 变更类型 1入库 2、3 出库(2是自用3共享) 3 4 退役 4 维修 - */ - private String changeStatus; - - /** - * 标准使用到期时间(和出粗和那个日期做对比) + * 使用到期时间 + * 说明:装备预计的使用到期时间或租赁到期时间 */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") private Date expirationTime; /** - * 设备录入状态 0待审核 1审核通过 2审核驳回 + * 使用次数 + * 说明:装备累计的使用次数统计 */ - private String entryStatus; + private Integer usageCount; /** - * 是否上下架 1上架 0下架 + * 维修次数 + * 说明:装备累计的维修次数统计 */ - private String upDownStatus; + private Integer repairCount; /** - * 特征值json + * 装备原始编码 + * 说明:装备出厂时厂家赋予的原始编码,用于溯源 */ - private String jsonData; + private String originalCode; /** - * 设备原值 + * 计量单位 + * 说明:装备的计量单位(如台、套、个等) */ - private BigDecimal buyPrice; + private String unit; + /** + * 生产厂家id + * 说明:装备的生产制造厂商名称 + */ + private String manufacturerId; + /** + * 生产厂家 + * 说明:装备的生产制造厂商名称 + */ + private String manufacturer; /** - * 装备类型名称--录入数据用 + * 出厂日期 + * 说明:装备从厂家生产出厂的日期 */ - private String itemTypeModel; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date productionDate; + + // 新增:开始出厂时间(查询条件,用于筛选 >= 该日期的记录) + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date startProductionDate; + + // 新增:结束出厂时间(查询条件,用于筛选 <= 该日期的记录) + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date endProductionDate; + /** - * 所在项目 + * 采购日期 + * 说明:装备被采购入库的日期 */ - private String onProject; + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date purchaseDate; + /** + * 开始采购日期 + * 说明:装备被采购入库的日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date startPurchaseDate; + /** + * 结束采购日期 + * 说明:装备被采购入库的日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date endPurchaseDate; - private String companyName; + /** + * 资产原值(元) + * 说明:装备的原始采购价值,以元为单位 + */ + private BigDecimal originalValue; - private String proType; - private String mainGx; - private String childGx; - private String devCategory; - private String devSubcategory; - private String devName; - private String devModel; - private String nextCheckTime; + /** + * 最小资产原值(元) + * 说明:装备的原始采购价值,以元为单位 + */ + private BigDecimal minOriginalValue; + + /** + * 最大资产原值(元) + * 说明:装备的原始采购价值,以元为单位 + */ + private BigDecimal maxOriginalValue; + + /** + * 最大使用年限(年) + * 说明:装备设计的最大可使用年限 + */ + private Integer maxServiceLifeYears; + + /** + * 下次维保日期 + * 说明:装备下一次需要进行维护保养的日期 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date nextMaintenanceDate; + + /** + * 产权单位id + * 说明:装备的所有权所属单位 + */ + private Integer propertyUnitId; + /** + * 产权单位 + * 说明:装备的所有权所属单位 + */ + private String propertyUnit; + + /** + * 装备外观 + * 说明:装备外观图片的URL列表,存储装备的外观照片 + */ + private List appearanceImages; + + /** + * 合格证 + * 说明:装备合格证的URL列表,存储合格证扫描件或照片 + */ + private List certificates; + + /** + * 定期检验报告 + * 说明:装备定期检验报告的URL列表 + */ + private List inspectionReports; + + /** + * 采购发票 + * 说明:装备采购发票的URL列表,存储发票扫描件或照片 + */ + private List purchaseInvoices; + /** + * 特征项列表 + */ private List propertyVoList; + /** + * 订单编号 + */ + private String orderNumber; + /** + * 订单创建人 + */ + private String orderCreateUser; + /** + * 订单时间 + */ + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date orderCreateTime; + /** + * 订单时间 + */ - private String daysDiff; - private String deviceStatus; - private String remainingDays; - private String remainingYears; - private String yearsDiff; - - private String unitName; - - private String expirationYears; - - - private String actualStartYear; - private String actualStopYear; - private String remainingStartYear; - private String remainingStopYear; - - private String isWarn; - - private String proName; - + private String orderStatus; } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/MaDevInfoMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/MaDevInfoMapper.java index 61773db..da98004 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/MaDevInfoMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/mapper/MaDevInfoMapper.java @@ -1,10 +1,8 @@ package com.bonus.material.devchange.mapper; -import com.bonus.material.devchange.domain.DeviceCountBean; -import com.bonus.material.devchange.domain.DeviceTreeBean; -import com.bonus.material.devchange.domain.MaDevInfo; -import com.bonus.material.devchange.domain.MapBean; +import com.bonus.material.devchange.domain.*; import com.bonus.material.device.domain.vo.DevInfoPropertyVo; +import io.swagger.models.auth.In; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -20,6 +18,9 @@ public interface MaDevInfoMapper { */ List list(MaDevInfo o); + + List getFileList(@Param("maId") Integer maId, @Param("fileType") Integer fileType); + Integer updateDeviceStatus(List list); Integer delDevice(String[] list); @@ -40,5 +41,6 @@ public interface MaDevInfoMapper { void insertDevInfoProperties(@Param("list") List item, @Param("maId") Integer maId); + MaDevInfo getDevice(Integer maId); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/MaDevInfoService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/MaDevInfoService.java index bfb8eb5..4897e1c 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/MaDevInfoService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/MaDevInfoService.java @@ -8,7 +8,7 @@ import com.bonus.material.device.domain.vo.DevMergeVo; import java.util.List; -public interface MaDevInfoService{ +public interface MaDevInfoService { List list(MaDevInfo o); @@ -25,4 +25,6 @@ public interface MaDevInfoService{ List companySel(String id); Integer updateDeviceApi(MaDevInfo o); + + MaDevInfo getDevice(Integer maId); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/MaDevInfoServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/MaDevInfoServiceImpl.java index b2e5849..5e24bec 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/MaDevInfoServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/devchange/service/MaDevInfoServiceImpl.java @@ -25,13 +25,17 @@ public class MaDevInfoServiceImpl implements MaDevInfoService { @Override public List list(MaDevInfo o) { Long thisLoginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); - o.setOwnCo(Math.toIntExact(thisLoginUserDeptId)); + o.setPropertyUnitId(Math.toIntExact(thisLoginUserDeptId)); List list = mapper.list(o); list.forEach(item -> { List propertiiesList = mapper.getProperties(item); if (propertiiesList != null && !propertiiesList.isEmpty()) { item.setPropertyVoList(propertiiesList); } + item.setAppearanceImages(mapper.getFileList(item.getMaId(), 1)); + item.setCertificates(mapper.getFileList(item.getMaId(), 2)); + item.setInspectionReports(mapper.getFileList(item.getMaId(), 3)); + item.setPurchaseInvoices(mapper.getFileList(item.getMaId(), 4)); }); return list; } @@ -87,6 +91,24 @@ public class MaDevInfoServiceImpl implements MaDevInfoService { return mapper.updateDeviceApi(o); } + /** + * @param maId + * @return + */ + @Override + public MaDevInfo getDevice(Integer maId) { + MaDevInfo item = mapper.getDevice(maId); + List propertiiesList = mapper.getProperties(item); + if (propertiiesList != null && !propertiiesList.isEmpty()) { + item.setPropertyVoList(propertiiesList); + } + item.setAppearanceImages(mapper.getFileList(item.getMaId(), 1)); + item.setCertificates(mapper.getFileList(item.getMaId(), 2)); + item.setInspectionReports(mapper.getFileList(item.getMaId(), 3)); + item.setPurchaseInvoices(mapper.getFileList(item.getMaId(), 4)); + return item; + } + /** * 将扁平列表构建成树,并添加一个总的根节点 */ diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/controller/DevMergeController.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/controller/DevMergeController.java index 096c701..1810ebd 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/controller/DevMergeController.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/controller/DevMergeController.java @@ -7,6 +7,7 @@ import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.page.TableDataInfo; +import com.bonus.material.devchange.domain.MaDevInfo; import com.bonus.material.device.domain.DevInfo; import com.bonus.material.device.domain.dto.InfoMotionDto; import com.bonus.material.device.domain.vo.DevInfoVo; @@ -48,7 +49,6 @@ public class DevMergeController extends BaseController { /** * 查询设备信息列表(首页装备共享大厅查询列表专用) */ -// @RequiresPermissions("equip:info:list") @ApiOperation(value = "装备新增台账-列表") @GetMapping("/orderList") public AjaxResult orderList(DevMergeVo devInfo) { @@ -58,19 +58,6 @@ public class DevMergeController extends BaseController { return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list)); } - - /** - * 获取台账中设备信息详细信息 - */ - @ApiOperation(value = "装备台账-单个台账设备列表") - @GetMapping("/devList") - public AjaxResult devList(DevInfoVo devInfo) { - List list = service.devList(devInfo); - Integer pageIndex = Convert.toInt(devInfo.getPageNum(), 1); - Integer pageSize = Convert.toInt(devInfo.getPageSize(), 10); - return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list)); - } - /** * 获取台账中设备信息详细信息 */ @@ -86,24 +73,64 @@ public class DevMergeController extends BaseController { } /** - * 获取台账中设备信息详细信息 + * 提交设备台账 */ - @ApiOperation(value = "装备台账-新增单个设备草稿") - @PostMapping("/addDevice") - public AjaxResult addDevice(@RequestBody @Valid DevInfo devInfo) { + @ApiOperation(value = "装备台账-提交设备台账") + @PostMapping("/submitOrder") + public AjaxResult submitOrder(@RequestBody DevMergeVo o) { try { - devInfo.setEntryStatus("3"); - AjaxResult ajaxResult = devInfoService.insertDevInfo(devInfo); - if (ajaxResult.isSuccess()) { - service.insertOrderDevReal(devInfo.getOrderId(), devInfo.getMaId()); - } - return ajaxResult; + return service.submitOrder(o); } catch (Exception e) { logger.error("报错啦", e); return AjaxResult.error("调用异常,请联系管理员"); } } + + /** + * 提交设备台账 + */ + @ApiOperation(value = "装备台账-删除") + @PostMapping("/delOrder") + public AjaxResult delOrder(@RequestBody DevMergeVo o) { + try { + return service.delOrder(o); + } catch (Exception e) { + logger.error("报错啦", e); + return AjaxResult.error("调用异常,请联系管理员"); + } + } + + + /** + * cha + * + * @param o + * @return + */ + @ApiOperation(value = "设备台账") + @GetMapping("/getDevice") + public AjaxResult getDevice(MaDevInfo o) { + try { + startPage(); + List list = service.getDevice(o); + return AjaxResult.success(getDataTable(list)); + } catch (Exception e) { + logger.error("报错啦", e); + return AjaxResult.error("调用异常,请联系管理员"); + } + } + + + /** + * 获取台账中设备信息详细信息 + */ + @ApiOperation(value = "装备台账-新增单个设备草稿") + @PostMapping("/interDevice") + public AjaxResult interDevice(@RequestBody MaDevInfo maDevInfo) { + return service.interDevice(maDevInfo); + } + /** * 获取台账中设备信息详细信息 */ @@ -118,6 +145,20 @@ public class DevMergeController extends BaseController { } } + + /** + * 获取台账中设备信息详细信息 + */ + @ApiOperation(value = "装备台账-单个台账设备列表") + @GetMapping("/devList") + public AjaxResult devList(DevInfoVo devInfo) { + List list = service.devList(devInfo); + Integer pageIndex = Convert.toInt(devInfo.getPageNum(), 1); + Integer pageSize = Convert.toInt(devInfo.getPageSize(), 10); + return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list)); + } + + @ApiOperation(value = "装备台账-删除增单个设备草稿") @PostMapping("/delDevice") public AjaxResult delDevice(@RequestBody Long[] maIds) { @@ -129,34 +170,6 @@ public class DevMergeController extends BaseController { } } - /** - * 提交设备台账 - */ - @ApiOperation(value = "装备台账-提交设备台账") - @PostMapping("/submitOrder") - public AjaxResult submitOrder(@RequestBody DevMergeVo o) { - try { - return service.submitOrder(o); - } catch (Exception e) { - logger.error("报错啦", e); - return AjaxResult.error("调用异常,请联系管理员"); - } - } - - /** - * 提交设备台账 - */ - @ApiOperation(value = "装备台账-删除") - @PostMapping("/delOrder") - public AjaxResult delOrder(@RequestBody DevMergeVo o) { - try { - return service.delOrder(o); - } catch (Exception e) { - logger.error("报错啦", e); - return AjaxResult.error("调用异常,请联系管理员"); - } - } - /** * 提交设备台账 @@ -172,6 +185,35 @@ public class DevMergeController extends BaseController { } } + + + + + /** + * 获取台账中设备信息详细信息 + */ + @ApiOperation(value = "装备台账-新增单个设备草稿") + @PostMapping("/addDevice") + public AjaxResult addDevice(@RequestBody @Valid DevInfo devInfo) { + try { + devInfo.setEntryStatus("3"); + AjaxResult ajaxResult = devInfoService.insertDevInfo(devInfo); + if (ajaxResult.isSuccess()) { + service.insertOrderDevReal(devInfo.getOrderId(), devInfo.getMaId()); + } + return ajaxResult; + } catch (Exception e) { + logger.error("报错啦", e); + return AjaxResult.error("调用异常,请联系管理员"); + } + } + + + + + + + /** * 查询所有一级类型(顶级类型) * diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevMergeMapper.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevMergeMapper.java index ab8ee95..320778b 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevMergeMapper.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/mapper/DevMergeMapper.java @@ -4,6 +4,7 @@ package com.bonus.material.device.mapper; import com.bonus.common.biz.domain.*; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.material.book.domain.BookCarInfoDto; +import com.bonus.material.devchange.domain.MaDevInfo; import com.bonus.material.devchange.domain.MapBean; import com.bonus.material.device.domain.DevInfo; import com.bonus.material.device.domain.MaDevQc; @@ -66,5 +67,12 @@ public interface DevMergeMapper { @MapKey("value") List> getSecondToFifthLevelTypes(Long firstLevelId); + + Integer interDevice(MaDevInfo maDevInfo); + + List getDevice(MaDevInfo o); + + + List getDeviceByOrderId(MaDevInfo o); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/DevMergeService.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/DevMergeService.java index a5bff4f..6bccf30 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/DevMergeService.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/DevMergeService.java @@ -3,6 +3,7 @@ package com.bonus.material.device.service; import com.bonus.common.biz.domain.BmCompanyInfo; import com.bonus.common.core.web.domain.AjaxResult; +import com.bonus.material.devchange.domain.MaDevInfo; import com.bonus.material.device.domain.DevInfo; import com.bonus.material.device.domain.dto.DevInfoImpDto; import com.bonus.material.device.domain.dto.InfoMotionDto; @@ -60,4 +61,8 @@ public interface DevMergeService { * @return 四、五、六级类型列表 */ AjaxResult getFourthToSixthLevelTypes(Long thirdLevelId); + + AjaxResult interDevice(MaDevInfo maDevInfo); + + List getDevice(MaDevInfo o); } diff --git a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/impl/DevMergeServiceImpl.java b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/impl/DevMergeServiceImpl.java index 5a54163..8a2d8ab 100644 --- a/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/impl/DevMergeServiceImpl.java +++ b/bonus-modules/bonus-material-mall/src/main/java/com/bonus/material/device/service/impl/DevMergeServiceImpl.java @@ -16,7 +16,9 @@ import com.bonus.common.core.utils.poi.ExcelUtil; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.book.domain.BookCarInfoDto; +import com.bonus.material.devchange.domain.MaDevInfo; import com.bonus.material.devchange.domain.MapBean; +import com.bonus.material.devchange.mapper.MaDevInfoMapper; import com.bonus.material.device.domain.DevInfo; import com.bonus.material.device.domain.MaDevQc; import com.bonus.material.device.domain.Table; @@ -38,6 +40,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -74,6 +77,8 @@ public class DevMergeServiceImpl implements DevMergeService { @Resource private DevMergeMapper devMergeMapper; + @Autowired + private MaDevInfoMapper mapper; @Override public List list(DevMergeVo devInfo) { @@ -211,6 +216,43 @@ public class DevMergeServiceImpl implements DevMergeService { } } + /** + * @param maDevInfo + * @return + */ + @Override + public AjaxResult interDevice(MaDevInfo maDevInfo) { + try { + Integer i = devMergeMapper.interDevice(maDevInfo); + return i > 0 ? AjaxResult.success() : AjaxResult.error(); + } catch (Exception e) { + log.error(e.getMessage()); + return AjaxResult.error(); + } + } + + /** + * @param o + * @return + */ + @Override + public List getDevice(MaDevInfo o) { + Long thisLoginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId(); + o.setPropertyUnitId(Math.toIntExact(thisLoginUserDeptId)); + List list = devMergeMapper.getDevice(o); + list.forEach(item -> { + List propertiiesList = mapper.getProperties(item); + if (propertiiesList != null && !propertiiesList.isEmpty()) { + item.setPropertyVoList(propertiiesList); + } + item.setAppearanceImages(mapper.getFileList(item.getMaId(), 1)); + item.setCertificates(mapper.getFileList(item.getMaId(), 2)); + item.setInspectionReports(mapper.getFileList(item.getMaId(), 3)); + item.setPurchaseInvoices(mapper.getFileList(item.getMaId(), 4)); + }); + return list; + } + private static final DateTimeFormatter DATE_FORMATTER = DateTimeFormatter.ofPattern("yyMMdd"); private static final String SEPARATOR = "-"; diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/MaDevInfoMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/MaDevInfoMapper.xml index afb1146..e142ac6 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/MaDevInfoMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/devchange/MaDevInfoMapper.xml @@ -4,6 +4,7 @@ + @@ -12,16 +13,18 @@ + + - + @@ -68,10 +71,10 @@ - ma_id, device_name, device_count, code, identify_code, type_id, ma_status, - lease_scope, `location`, brand, production_date, working_hours, serial_number, - month_lease_price, day_lease_price, js_month_price, js_day_price, description, - gps_code, on_company, person, person_phone, create_time, creator, deposit, is_active, + ma_id, device_name, device_weight, device_count, code, identify_code, type_id, ma_status, + lease_scope, `location`, brand, model_name, production_date, working_hours, serial_number, + month_lease_price, day_lease_price, pic_url, js_month_price, js_day_price, description, + gps_code, own_co, person, person_phone, create_time, creator, deposit, is_active, update_time, update_by, is_operator, specification, province_id, city_id, area_id, video_url, own_id, check_date, check_cycle, is_qc, is_safe_book, is_zone, zone_id, total_up_day, total_lease_day, origina_value, change_status, expiration_time, entry_status, @@ -82,6 +85,7 @@ from ma_dev_info_properties where ma_id = #{maId} + insert into ma_dev_info_properties(ma_id, property_name, property_value, create_time) @@ -95,88 +99,6 @@ ) - @@ -191,6 +113,10 @@ device_name = #{deviceName}, + + + device_weight = #{deviceWeight}, + device_count = #{deviceCount}, @@ -217,6 +143,9 @@ brand = #{brand}, + + model_name = #{modelName}, + production_date = #{productionDate}, @@ -265,6 +194,9 @@ + + pic_url = #{picUrl}, + video_url = #{videoUrl}, @@ -363,4 +295,146 @@ + + + diff --git a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevMergeMapper.xml b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevMergeMapper.xml index e355d0b..7798419 100644 --- a/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevMergeMapper.xml +++ b/bonus-modules/bonus-material-mall/src/main/resources/mapper/material/device/DevMergeMapper.xml @@ -80,6 +80,61 @@ INSERT INTO cs_device_real_dev (cs_id, dev_id) VALUES (#{orderId}, #{maId}) + + INSERT INTO ma_dev_info ( + + ma_id, + + device_name, + device_count, + item_type_model, + manage_type, + code, + + identify_code, + type_id, + ma_status, + brand, + production_date, + max_working_hours, + expiration_time, + buy_price, + device_type, + purchase_date, + create_time, + creator, + update_time, + update_by, + + is_active + ) + VALUES ( + #{maId}, + + #{name}, + #{count}, + #{specificationModel}, + #{manageType}, + #{code}, + + #{originalCode}, + #{typeId}, + #{manufacturerId}, + #{productionDate}, + #{maxServiceLifeYears}, + #{changeStatus}, + #{expirationTime}, + #{originalValue}, + #{deviceType}, + #{purchaseDate}, + #{createTime}, + #{creator}, + #{updateTime}, + #{updateBy}, + + #{isActive,jdbcType=VARCHAR,defaultValue='1'} + ) + UPDATE cs_device_status @@ -138,7 +193,7 @@ OR t1.type_id = (SELECT parent_id FROM ma_type WHERE type_id = t2.parent_id) WHERE t1.type_id = #{firstLevelId} -- 一级类型ID AND t1.parent_id IS NULL -- 确保t1是一级类型 - AND t2.del_flag = '0'; + AND t2.del_flag = '0' + +