diff --git a/pom.xml b/pom.xml index 8a211f15..1bc0e9c1 100644 --- a/pom.xml +++ b/pom.xml @@ -68,25 +68,39 @@ + + local + + + dev + 127.0.0.1:8848 + 127.0.0.1:4560 + DEFAULT_GROUP + DEFAULT_GROUP + nacos + nacos + + + + true + + dev dev - - + + 47.109.37.87:8848 47.109.37.87:4560 DEFAULT_GROUP DEFAULT_GROUP nacos nacos - + - - - true - + prod diff --git a/ruoyi-api/property-api/pom.xml b/ruoyi-api/property-api/pom.xml new file mode 100644 index 00000000..6b8bb865 --- /dev/null +++ b/ruoyi-api/property-api/pom.xml @@ -0,0 +1,29 @@ + + + + org.dromara + ruoyi-api + ${revision} + + 4.0.0 + + property-api + + + 物业api模块 + + + + + + + org.dromara + ruoyi-common-core + + + + + + diff --git a/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java new file mode 100644 index 00000000..6b735d26 --- /dev/null +++ b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/RemoteFloorService.java @@ -0,0 +1,24 @@ +package org.dromara.property.api; + +import org.dromara.common.core.domain.TreeNode; +import org.dromara.property.api.domain.vo.RemoteFloorVo; + +import java.util.List; + +/** + * 楼层的远程服务调用 + * + * @author lxj + */ +public interface RemoteFloorService { + + + RemoteFloorVo queryByFloorId(Long floorId); + + /** + * 获取 社区/楼栋/单元/楼栋 集合 + */ + List> queryTreeList(); + + +} diff --git a/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteFloorVo.java b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteFloorVo.java new file mode 100644 index 00000000..62adc36a --- /dev/null +++ b/ruoyi-api/property-api/src/main/java/org/dromara/property/api/domain/vo/RemoteFloorVo.java @@ -0,0 +1,57 @@ +package org.dromara.property.api.domain.vo; + +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; + +@Data +public class RemoteFloorVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + private Long id; + + /** + * 社区id + */ + private Long communityId; + + /** + * 建筑名称 + */ + private Long buildingId; + + /** + * 单元编码 + */ + private Long unitId; + + /** + * 楼层数名称 + */ + private String floorName; + + /** + * 楼层号 + */ + private Long floorNumber; + + /** + * 楼层类型 + */ + private Integer floorType; + + /** + * 房间数量 + */ + private Integer roomCount; + + /** + * 层高 + */ + private Integer floorHeight; + + +} diff --git a/ruoyi-api/ruoyi-api-bom/pom.xml b/ruoyi-api/ruoyi-api-bom/pom.xml index dc105a7e..06936e32 100644 --- a/ruoyi-api/ruoyi-api-bom/pom.xml +++ b/ruoyi-api/ruoyi-api-bom/pom.xml @@ -41,6 +41,13 @@ ${revision} + + + org.dromara + property-api + ${revision} + + diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java index 44a035a3..5588b193 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CodePrefixConstants.java @@ -4,10 +4,15 @@ public interface CodePrefixConstants { /** * 人像库编码前缀 */ - String PERSONLIB_CODE_PREFIX = "100"; + String PERSON_LIB_CODE_PREFIX = "100"; /** * 门禁设备编码前缀 */ String SIS_DEVICE_CODE_PREFIX = "101"; + + /** + * 人像编码前缀 + */ + String PERSON_LIB_IMAGE_CODE_PREFIX = "102"; } diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/TreeEntity.java b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/TreeEntity.java index 0ecdd17e..5d2cfeca 100644 --- a/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/TreeEntity.java +++ b/ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/domain/TreeEntity.java @@ -1,12 +1,14 @@ package org.dromara.common.core.domain; +import java.io.Serializable; import java.util.List; /** * 通用tree构建工具类 + * * @param */ -public interface TreeEntity { +public interface TreeEntity extends Serializable { T getId(); diff --git a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java index 538d932e..65525255 100644 --- a/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java +++ b/ruoyi-common/ruoyi-common-translation/src/main/java/org/dromara/common/translation/core/impl/DictTypeTranslationImpl.java @@ -1,11 +1,11 @@ package org.dromara.common.translation.core.impl; +import lombok.AllArgsConstructor; import org.dromara.common.core.service.DictService; import org.dromara.common.core.utils.StringUtils; import org.dromara.common.translation.annotation.TranslationType; import org.dromara.common.translation.constant.TransConstant; import org.dromara.common.translation.core.TranslationInterface; -import lombok.AllArgsConstructor; /** * 字典翻译实现 @@ -20,7 +20,7 @@ public class DictTypeTranslationImpl implements TranslationInterface { @Override public String translation(Object key, String other) { - if (key instanceof String && StringUtils.isNotBlank(other)) { + if (key != null && StringUtils.isNotBlank(other)) { return dictService.getDictLabel(other, key.toString()); } return null; diff --git a/ruoyi-modules/Property/pom.xml b/ruoyi-modules/Property/pom.xml index ae6ad895..40ad288a 100644 --- a/ruoyi-modules/Property/pom.xml +++ b/ruoyi-modules/Property/pom.xml @@ -110,6 +110,11 @@ ruoyi-api-workflow + + org.dromara + property-api + + diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderChargeController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderChargeController.java new file mode 100644 index 00000000..7745a328 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderChargeController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.PlantsOrderChargeVo; +import org.dromara.property.domain.bo.PlantsOrderChargeBo; +import org.dromara.property.service.IPlantsOrderChargeService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 绿植租赁-订单收费 + * 前端访问路由地址为:/property/orderCharge + * + * @author mocheng + * @date 2025-06-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/orderCharge") +public class PlantsOrderChargeController extends BaseController { + + private final IPlantsOrderChargeService plantsOrderChargeService; + + /** + * 查询绿植租赁-订单收费列表 + */ + @SaCheckPermission("property:orderCharge:list") + @GetMapping("/list") + public TableDataInfo list(PlantsOrderChargeBo bo, PageQuery pageQuery) { + return plantsOrderChargeService.queryPageList(bo, pageQuery); + } + + /** + * 导出绿植租赁-订单收费列表 + */ + @SaCheckPermission("property:orderCharge:export") + @Log(title = "绿植租赁-订单收费", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PlantsOrderChargeBo bo, HttpServletResponse response) { + List list = plantsOrderChargeService.queryList(bo); + ExcelUtil.exportExcel(list, "绿植租赁-订单收费", PlantsOrderChargeVo.class, response); + } + + /** + * 获取绿植租赁-订单收费详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:orderCharge:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(plantsOrderChargeService.queryById(id)); + } + + /** + * 新增绿植租赁-订单收费 + */ + @SaCheckPermission("property:orderCharge:add") + @Log(title = "绿植租赁-订单收费", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PlantsOrderChargeBo bo) { + return toAjax(plantsOrderChargeService.insertByBo(bo)); + } + + /** + * 修改绿植租赁-订单收费 + */ + @SaCheckPermission("property:orderCharge:edit") + @Log(title = "绿植租赁-订单收费", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PlantsOrderChargeBo bo) { + return toAjax(plantsOrderChargeService.updateByBo(bo)); + } + + /** + * 删除绿植租赁-订单收费 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:orderCharge:remove") + @Log(title = "绿植租赁-订单收费", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(plantsOrderChargeService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderMaintainController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderMaintainController.java new file mode 100644 index 00000000..0f0239a3 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsOrderMaintainController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.PlantsOrderMaintainVo; +import org.dromara.property.domain.bo.PlantsOrderMaintainBo; +import org.dromara.property.service.IPlantsOrderMaintainService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 绿植租赁-订单养护管理 + * 前端访问路由地址为:/property/orderMaintain + * + * @author mocheng + * @date 2025-06-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/orderMaintain") +public class PlantsOrderMaintainController extends BaseController { + + private final IPlantsOrderMaintainService plantsOrderMaintainService; + + /** + * 查询绿植租赁-订单养护管理列表 + */ + @SaCheckPermission("property:orderMaintain:list") + @GetMapping("/list") + public TableDataInfo list(PlantsOrderMaintainBo bo, PageQuery pageQuery) { + return plantsOrderMaintainService.queryPageList(bo, pageQuery); + } + + /** + * 导出绿植租赁-订单养护管理列表 + */ + @SaCheckPermission("property:orderMaintain:export") + @Log(title = "绿植租赁-订单养护管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PlantsOrderMaintainBo bo, HttpServletResponse response) { + List list = plantsOrderMaintainService.queryList(bo); + ExcelUtil.exportExcel(list, "绿植租赁-订单养护管理", PlantsOrderMaintainVo.class, response); + } + + /** + * 获取绿植租赁-订单养护管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:orderMaintain:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(plantsOrderMaintainService.queryById(id)); + } + + /** + * 新增绿植租赁-订单养护管理 + */ + @SaCheckPermission("property:orderMaintain:add") + @Log(title = "绿植租赁-订单养护管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PlantsOrderMaintainBo bo) { + return toAjax(plantsOrderMaintainService.insertByBo(bo)); + } + + /** + * 修改绿植租赁-订单养护管理 + */ + @SaCheckPermission("property:orderMaintain:edit") + @Log(title = "绿植租赁-订单养护管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PlantsOrderMaintainBo bo) { + return toAjax(plantsOrderMaintainService.updateByBo(bo)); + } + + /** + * 删除绿植租赁-订单养护管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:orderMaintain:remove") + @Log(title = "绿植租赁-订单养护管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(plantsOrderMaintainService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsRentalOrderController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsRentalOrderController.java new file mode 100644 index 00000000..dbf57f53 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/PlantsRentalOrderController.java @@ -0,0 +1,106 @@ +package org.dromara.property.controller; + +import java.util.List; + +import lombok.RequiredArgsConstructor; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.*; +import cn.dev33.satoken.annotation.SaCheckPermission; +import org.springframework.web.bind.annotation.*; +import org.springframework.validation.annotation.Validated; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.web.core.BaseController; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.property.domain.vo.PlantsRentalOrderVo; +import org.dromara.property.domain.bo.PlantsRentalOrderBo; +import org.dromara.property.service.IPlantsRentalOrderService; +import org.dromara.common.mybatis.core.page.TableDataInfo; + +/** + * 绿植租赁-订单管理 + * 前端访问路由地址为:/property/rentalOrder + * + * @author mocheng + * @date 2025-06-30 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/rentalOrder") +public class PlantsRentalOrderController extends BaseController { + + private final IPlantsRentalOrderService plantsRentalOrderService; + + /** + * 查询绿植租赁-订单管理列表 + */ + @SaCheckPermission("property:rentalOrder:list") + @GetMapping("/list") + public TableDataInfo list(PlantsRentalOrderBo bo, PageQuery pageQuery) { + return plantsRentalOrderService.queryPageList(bo, pageQuery); + } + + /** + * 导出绿植租赁-订单管理列表 + */ + @SaCheckPermission("property:rentalOrder:export") + @Log(title = "绿植租赁-订单管理", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(PlantsRentalOrderBo bo, HttpServletResponse response) { + List list = plantsRentalOrderService.queryList(bo); + ExcelUtil.exportExcel(list, "绿植租赁-订单管理", PlantsRentalOrderVo.class, response); + } + + /** + * 获取绿植租赁-订单管理详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("property:rentalOrder:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(plantsRentalOrderService.queryById(id)); + } + + /** + * 新增绿植租赁-订单管理 + */ + @SaCheckPermission("property:rentalOrder:add") + @Log(title = "绿植租赁-订单管理", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping() + public R add(@Validated(AddGroup.class) @RequestBody PlantsRentalOrderBo bo) { + return toAjax(plantsRentalOrderService.insertByBo(bo)); + } + + /** + * 修改绿植租赁-订单管理 + */ + @SaCheckPermission("property:rentalOrder:edit") + @Log(title = "绿植租赁-订单管理", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody PlantsRentalOrderBo bo) { + return toAjax(plantsRentalOrderService.updateByBo(bo)); + } + + /** + * 删除绿植租赁-订单管理 + * + * @param ids 主键串 + */ + @SaCheckPermission("property:rentalOrder:remove") + @Log(title = "绿植租赁-订单管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(plantsRentalOrderService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java index 0b0ba788..3bcd85df 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/controller/TbCommunityController.java @@ -62,11 +62,11 @@ public class TbCommunityController extends BaseController { * @return 树结构数据 */ @GetMapping("/tree/{level}") - public List> tree(@PathVariable("level") Integer level) { + public R>> tree(@PathVariable("level") Integer level) { LoginUser loginUser = LoginHelper.getLoginUser(); Assert.notNull(loginUser, "获取账户信息失败!"); Assert.notEmpty(loginUser.getTenantId(), "获取租户信息失败"); - return tbCommunityService.tree(level, loginUser.getTenantId()); + return R.ok(tbCommunityService.tree(level, loginUser.getTenantId())); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderCharge.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderCharge.java new file mode 100644 index 00000000..1da70d92 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderCharge.java @@ -0,0 +1,93 @@ +package org.dromara.property.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 绿植租赁-订单收费对象 plants_order_charge + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("plants_order_charge") +public class PlantsOrderCharge extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 订单id + */ + private Long orderId; + + /** + * 租赁人id(系统用户) + */ + private Long userId; + + /** + * 租赁人名称 + */ + private String userName; + + /** + * 租金 + */ + private Long rent; + + /** + * 押金 + */ + private Long deposit; + + /** + * 违约金 + */ + private Long penalty; + + /** + * 总金额 + */ + private Long totalAmount; + + /** + * 收费日期 + */ + private Date chargeDate; + + /** + * 支付方式 + */ + private Long paymentMethod; + + /** + * 开票状态 + */ + private Long invoiceStatus; + + /** + * 发票类型 + */ + private Long invoiceType; + + /** + * 收费状态 + */ + private Long chargeStatus; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderMaintain.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderMaintain.java new file mode 100644 index 00000000..15d61301 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsOrderMaintain.java @@ -0,0 +1,108 @@ +package org.dromara.property.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 绿植租赁-订单养护管理对象 plants_order_maintain + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("plants_order_maintain") +public class PlantsOrderMaintain extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 养护名称 + */ + private String maintainName; + + /** + * 小区id + */ + private Long communityId; + + /** + * 建筑id + */ + private Long buildingId; + + /** + * 楼层id + */ + private Long floorId; + + /** + * 服务类型 + */ + private Long serveType; + + /** + * 养护周期类型 + */ + private Long periodType; + + /** + * 养护周期频次 + */ + private Long periodFrequency; + + /** + * 订单id + */ + private Long orderId; + + /** + * 计划执行时间 + */ + private Date startTime; + + /** + * 计划完成时间 + */ + private Date endTime; + + /** + * 巡检结果 + */ + private Long inspectResult; + + /** + * 处理措施 + */ + private String measure; + + /** + * 客户评分 + */ + private Long customerScore; + + /** + * 客户反馈 + */ + private String customerAdvice; + + /** + * 处理状态 + */ + private Long state; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsRentalOrder.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsRentalOrder.java new file mode 100644 index 00000000..a40eddbd --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/PlantsRentalOrder.java @@ -0,0 +1,108 @@ +package org.dromara.property.domain; + +import org.dromara.common.mybatis.core.domain.BaseEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +import java.io.Serial; + +/** + * 绿植租赁-订单管理对象 plants_rental_order + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("plants_rental_order") +public class PlantsRentalOrder extends BaseEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 订单号 + */ + private String orderNo; + + /** + * 客户名称 + */ + private String customerName; + + /** + * 客户类型 + */ + private Long customerType; + + /** + * 租赁周期 + */ + private Long rentalPeriod; + + /** + * 租赁开始时间 + */ + private Date startTime; + + /** + * 租赁结束时间 + */ + private Date endTime; + + /** + * 应付总额 + */ + private Long totalAmount; + + /** + * 租赁方式 + */ + private Long rentalType; + + /** + * 租赁方案id + */ + private Long planId; + + /** + * 绿植产品id + */ + private Long productId; + + /** + * 租赁产品数量 + */ + private Long productNum; + + /** + * 支付状态 + */ + private Long paymentStatus; + + /** + * 是否续租 + */ + private Long isRelet; + + /** + * 合同状态 + */ + private Long contractStatus; + + /** + * 签署时间 + */ + private Date signTime; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/SysCityArea.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/SysCityArea.java index 48d8a6e2..6bfd5bcd 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/SysCityArea.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/SysCityArea.java @@ -62,9 +62,4 @@ public class SysCityArea implements Serializable { */ private String lat; - /** - * 数据状态:1有效,0无效 - */ - private Long dataState; - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java index 95c5bf6b..6c64de2a 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbBuilding.java @@ -1,19 +1,19 @@ package org.dromara.property.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; +import java.util.Date; /** * 建筑对象 tb_building * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -32,52 +32,32 @@ public class TbBuilding extends TenantEntity { /** * 园区编码 */ - private String communityCode; - - /** - * 建筑编码 - */ - private String buildingCode; + private Long communityId; /** * 建筑名称 */ private String buildingName; - /** - * 省 - */ - private String province; - - /** - * 市 - */ - private String city; - - /** - * 区 - */ - private String district; - /** * 总层数 */ - private Long floorCount; + private Integer floorCount; /** * 单元数 */ - private Long unitCount; + private Integer unitCount; /** * 建筑类型('1:住宅','2:商业','3:混合') */ - private Long buildType; + private Integer buildType; /** * 电梯数量 */ - private Long elevatorCount; + private Integer elevatorCount; /** * 竣工日期 @@ -99,70 +79,10 @@ public class TbBuilding extends TenantEntity { */ private String lat; - /** - * 产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用) - */ - private Long cqxz; - - /** - * 不动产编号 - */ - private String bdcbh; - - /** - * 产权编号 - */ - private String cqbh; - - /** - * 图地编号 - */ - private String tdbh; - - /** - * 建筑面积 - */ - private Long jzmj; - - /** - * 产权面积 - */ - private Long cqmj; - - /** - * 可租面积 - */ - private Long kzmj; - - /** - * 自用面积 - */ - private Long zymj; - - /** - * 配套面积 - */ - private Long ptmj; - - /** - * 车位面积 - */ - private Long cwmj; - - /** - * 标准层高 - */ - private Long bzcg; - /** * 排序字段 */ - private Long sort; - - /** - * 修改时间 - */ - private Date modifyTime; + private Integer sort; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java index 97a5aa93..084fc4c6 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbCommunity.java @@ -1,19 +1,19 @@ package org.dromara.property.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; +import java.util.Date; /** * 小区对象 tb_community * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -34,15 +34,14 @@ public class TbCommunity extends TenantEntity { */ private String communityName; - /** - * 社区编码 - */ - private String communityCode; - /** * 社区类型 1:园区,2:小区 */ - private Long communityType; + private Integer communityType; + + private String cityFullCode; + + private String cityFullName; /** * 省 @@ -77,7 +76,7 @@ public class TbCommunity extends TenantEntity { /** * 占地面积(平方米) */ - private Long area; + private Float area; /** * diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java index e351aad8..7f6accc1 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbFloor.java @@ -11,7 +11,7 @@ import java.io.Serial; * 楼层对象 tb_floor * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -28,14 +28,19 @@ public class TbFloor extends TenantEntity { private Long id; /** - * 单元编码 + * 园区id */ - private String unitCode; + private Long communityId; /** - * 楼层编码 + * 建筑id */ - private String floorCode; + private Long buildingId; + + /** + * 单元编码 + */ + private Long unitId; /** * 楼层数名称 @@ -45,22 +50,22 @@ public class TbFloor extends TenantEntity { /** * 楼层号 */ - private Long floorNumber; + private Integer floorNumber; /** * 楼层类型 */ - private Long floorType; + private Integer floorType; /** * 房间数量 */ - private Long roomCount; + private Integer roomCount; /** * 层高 */ - private Long floorHeight; + private Integer floorHeight; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java index e3e04f5d..72c3820c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbRoom.java @@ -1,9 +1,10 @@ package org.dromara.property.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; @@ -11,7 +12,7 @@ import java.io.Serial; * 房间信息对象 tb_room * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -21,21 +22,29 @@ public class TbRoom extends TenantEntity { @Serial private static final long serialVersionUID = 1L; - /** - * - */ + @TableId(value = "id") private Long id; /** - * 所属楼层ID + * 园区id */ - private String floorCode; + private Long communityId; /** - * 房间编码 + * 建筑id */ - private String roomCode; + private Long buildingId; + + /** + * 单元编码 + */ + private Long unitId; + + /** + * 所属楼层ID + */ + private Long floorId; /** * 房间号(如101,202) @@ -45,12 +54,12 @@ public class TbRoom extends TenantEntity { /** * 房间类型('住宅','商铺','办公室','设备间','公共区域') */ - private Long roomType; + private Integer roomType; /** * 面积(平方米) */ - private Long area; + private Float area; /** * 户型(如2室1厅1卫) @@ -60,17 +69,17 @@ public class TbRoom extends TenantEntity { /** * 朝向('东','南','西','北','东南','东北','西南','西北') */ - private Long orientation; + private Integer orientation; /** * 是否可售 */ - private Long isForSale; + private Integer isForSale; /** * 状态('空置','已售','已租','自用') */ - private Long status; + private Integer status; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java index 5a7efb46..9b1ebf97 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TbUnit.java @@ -11,7 +11,7 @@ import java.io.Serial; * 单元对象 tb_unit * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -28,14 +28,14 @@ public class TbUnit extends TenantEntity { private Long id; /** - * 建筑名称 + * 园区id */ - private String buildingCode; + private Long communityId; /** - * 单元编码 + * 建筑id */ - private String unitCode; + private Long buildingId; /** * 单元名称 @@ -45,17 +45,17 @@ public class TbUnit extends TenantEntity { /** * 单元层数 */ - private Long floorCount; + private Integer floorCount; /** * 单元户数 */ - private Long householdCount; + private Integer householdCount; /** * 楼梯数量 */ - private Long stairCount; + private Integer stairCount; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TdFactory.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TdFactory.java index c3f37e8c..776989fc 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TdFactory.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/TdFactory.java @@ -22,7 +22,7 @@ public class TdFactory extends TenantEntity { private static final long serialVersionUID = 1L; /** - * + * */ @TableId(value = "id") private Long id; @@ -42,15 +42,4 @@ public class TdFactory extends TenantEntity { */ private String remark; - /** - * 数据状态:1有效,0无效 - */ - private Long dataState; - - /** - * 搜索值 - */ - private String searchValue; - - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderChargeBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderChargeBo.java new file mode 100644 index 00000000..4bcf0a0b --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderChargeBo.java @@ -0,0 +1,103 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.PlantsOrderCharge; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 绿植租赁-订单收费业务对象 plants_order_charge + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PlantsOrderCharge.class, reverseConvertGenerate = false) +public class PlantsOrderChargeBo extends BaseEntity { + + /** + * 主键 + */ + private Long id; + + /** + * 订单id + */ + @NotNull(message = "订单id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long orderId; + + /** + * 租赁人id(系统用户) + */ + @NotNull(message = "租赁人id(系统用户)不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long userId; + + /** + * 租赁人名称 + */ + @NotBlank(message = "租赁人名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String userName; + + /** + * 租金 + */ + @NotNull(message = "租金不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long rent; + + /** + * 押金 + */ + @NotNull(message = "押金不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long deposit; + + /** + * 违约金 + */ + @NotNull(message = "违约金不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long penalty; + + /** + * 总金额 + */ + @NotNull(message = "总金额不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long totalAmount; + + /** + * 收费日期 + */ + @NotNull(message = "收费日期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date chargeDate; + + /** + * 支付方式 + */ + @NotNull(message = "支付方式不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long paymentMethod; + + /** + * 开票状态 + */ + @NotNull(message = "开票状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long invoiceStatus; + + /** + * 发票类型 + */ + @NotNull(message = "发票类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long invoiceType; + + /** + * 收费状态 + */ + @NotNull(message = "收费状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long chargeStatus; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderMaintainBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderMaintainBo.java new file mode 100644 index 00000000..a1877554 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsOrderMaintainBo.java @@ -0,0 +1,116 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.PlantsOrderMaintain; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 绿植租赁-订单养护管理业务对象 plants_order_maintain + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PlantsOrderMaintain.class, reverseConvertGenerate = false) +public class PlantsOrderMaintainBo extends BaseEntity { + + /** + * 主键 + */ + private Long id; + + /** + * 养护名称 + */ + @NotBlank(message = "养护名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String maintainName; + + /** + * 小区id + */ + @NotNull(message = "小区id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long communityId; + + /** + * 建筑id + */ + @NotNull(message = "建筑id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long buildingId; + + /** + * 楼层id + */ + @NotNull(message = "楼层id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long floorId; + + /** + * 服务类型 + */ + @NotNull(message = "服务类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long serveType; + + /** + * 养护周期类型 + */ + @NotNull(message = "养护周期类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long periodType; + + /** + * 养护周期频次 + */ + @NotNull(message = "养护周期频次不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long periodFrequency; + + /** + * 订单id + */ + @NotNull(message = "订单id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long orderId; + + /** + * 计划执行时间 + */ + @NotNull(message = "计划执行时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date startTime; + + /** + * 计划完成时间 + */ + @NotNull(message = "计划完成时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date endTime; + + /** + * 巡检结果 + */ + private Long inspectResult; + + /** + * 处理措施 + */ + private String measure; + + /** + * 客户评分 + */ + private Long customerScore; + + /** + * 客户反馈 + */ + private String customerAdvice; + + /** + * 处理状态 + */ + private Long state; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsRentalOrderBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsRentalOrderBo.java new file mode 100644 index 00000000..03bc4897 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/PlantsRentalOrderBo.java @@ -0,0 +1,115 @@ +package org.dromara.property.domain.bo; + +import org.dromara.property.domain.PlantsRentalOrder; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; +import lombok.EqualsAndHashCode; +import jakarta.validation.constraints.*; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; + +/** + * 绿植租赁-订单管理业务对象 plants_rental_order + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = PlantsRentalOrder.class, reverseConvertGenerate = false) +public class PlantsRentalOrderBo extends BaseEntity { + + /** + * 主键 + */ + private Long id; + + /** + * 订单号 + */ + @NotBlank(message = "订单号不能为空", groups = { AddGroup.class, EditGroup.class }) + private String orderNo; + + /** + * 客户名称 + */ + @NotBlank(message = "客户名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private String customerName; + + /** + * 客户类型 + */ + @NotNull(message = "客户类型不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long customerType; + + /** + * 租赁周期 + */ + @NotNull(message = "租赁周期不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long rentalPeriod; + + /** + * 租赁开始时间 + */ + @NotNull(message = "租赁开始时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date startTime; + + /** + * 租赁结束时间 + */ + @NotNull(message = "租赁结束时间不能为空", groups = { AddGroup.class, EditGroup.class }) + private Date endTime; + + /** + * 应付总额 + */ + @NotNull(message = "应付总额不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long totalAmount; + + /** + * 租赁方式 + */ + @NotNull(message = "租赁方式不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long rentalType; + + /** + * 租赁方案id + */ + private Long planId; + + /** + * 绿植产品id + */ + private Long productId; + + /** + * 租赁产品数量 + */ + private Long productNum; + + /** + * 支付状态 + */ + @NotNull(message = "支付状态不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long paymentStatus; + + /** + * 是否续租 + */ + private Long isRelet; + + /** + * 合同状态 + */ + private Long contractStatus; + + /** + * 签署时间 + */ + private Date signTime; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/SysCityAreaBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/SysCityAreaBo.java index 97a11f32..530ad9c3 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/SysCityAreaBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/SysCityAreaBo.java @@ -70,11 +70,5 @@ public class SysCityAreaBo extends BaseEntity { @NotBlank(message = "维度不能为空", groups = { AddGroup.class, EditGroup.class }) private String lat; - /** - * 数据状态:1有效,0无效 - */ - @NotNull(message = "数据状态:1有效,0无效不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long dataState; - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbBuildingBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbBuildingBo.java index 23253ed9..2205ff6b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbBuildingBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbBuildingBo.java @@ -1,21 +1,22 @@ package org.dromara.property.domain.bo; -import org.dromara.property.domain.TbBuilding; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.property.domain.TbBuilding; + import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; /** * 建筑业务对象 tb_building * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -25,64 +26,40 @@ public class TbBuildingBo extends BaseEntity { /** * */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) + @NotNull(message = "不能为空", groups = {EditGroup.class}) private Long id; /** * 园区编码 */ - @NotBlank(message = "园区编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String communityCode; - - /** - * 建筑编码 - */ - @NotBlank(message = "建筑编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String buildingCode; + @NotNull(message = "园区id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long communityId; /** * 建筑名称 */ - @NotBlank(message = "建筑名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "建筑名称不能为空", groups = {AddGroup.class, EditGroup.class}) private String buildingName; - /** - * 省 - */ - @NotBlank(message = "省不能为空", groups = { AddGroup.class, EditGroup.class }) - private String province; - - /** - * 市 - */ - @NotBlank(message = "市不能为空", groups = { AddGroup.class, EditGroup.class }) - private String city; - - /** - * 区 - */ - @NotBlank(message = "区不能为空", groups = { AddGroup.class, EditGroup.class }) - private String district; - /** * 总层数 */ - private Long floorCount; + private Integer floorCount; /** * 单元数 */ - private Long unitCount; + private Integer unitCount; /** * 建筑类型('1:住宅','2:商业','3:混合') */ - private Long buildType; + private Integer buildType; /** * 电梯数量 */ - private Long elevatorCount; + private Integer elevatorCount; /** * 竣工日期 @@ -92,87 +69,24 @@ public class TbBuildingBo extends BaseEntity { /** * 地址 */ - @NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "地址不能为空", groups = {AddGroup.class, EditGroup.class}) private String addr; /** * 经度 */ - @NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "经度不能为空", groups = {AddGroup.class, EditGroup.class}) private String lon; /** * 维度 */ - @NotBlank(message = "维度不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "维度不能为空", groups = {AddGroup.class, EditGroup.class}) private String lat; - /** - * 产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用) - */ - private Long cqxz; - - /** - * 不动产编号 - */ - private String bdcbh; - - /** - * 产权编号 - */ - private String cqbh; - - /** - * 图地编号 - */ - private String tdbh; - - /** - * 建筑面积 - */ - @NotNull(message = "建筑面积不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long jzmj; - - /** - * 产权面积 - */ - @NotNull(message = "产权面积不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long cqmj; - - /** - * 可租面积 - */ - private Long kzmj; - - /** - * 自用面积 - */ - private Long zymj; - - /** - * 配套面积 - */ - private Long ptmj; - - /** - * 车位面积 - */ - private Long cwmj; - - /** - * 标准层高 - */ - private Long bzcg; - /** * 排序字段 */ - private Long sort; - - /** - * 修改时间 - */ - private Date modifyTime; - + private Integer sort; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java index 347f45f8..8cb9e33e 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbCommunityBo.java @@ -1,21 +1,22 @@ package org.dromara.property.domain.bo; -import org.dromara.property.domain.TbCommunity; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.property.domain.TbCommunity; + import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; /** * 小区业务对象 tb_community * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -25,61 +26,57 @@ public class TbCommunityBo extends BaseEntity { /** * */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) + @NotNull(message = "不能为空", groups = {EditGroup.class}) private Long id; /** * 社区名称 */ - @NotBlank(message = "社区名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "社区名称不能为空", groups = {AddGroup.class, EditGroup.class}) private String communityName; - /** - * 社区编码 - */ - @NotBlank(message = "社区编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String communityCode; - /** * 社区类型 1:园区,2:小区 */ - @NotNull(message = "社区类型 1:园区,2:小区不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long communityType; + @NotNull(message = "社区类型 1:园区,2:小区不能为空", groups = {AddGroup.class, EditGroup.class}) + private Integer communityType; + + @NotBlank(message = "城市不能为null", groups = {AddGroup.class, EditGroup.class}) + private String cityFullCode; + + private String cityFullName; /** * 省 */ - @NotBlank(message = "省不能为空", groups = { AddGroup.class, EditGroup.class }) private String province; /** * 市 */ - @NotBlank(message = "市不能为空", groups = { AddGroup.class, EditGroup.class }) private String city; /** * 区 */ - @NotBlank(message = "区不能为空", groups = { AddGroup.class, EditGroup.class }) private String district; /** * 地址 */ - @NotBlank(message = "地址不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "地址不能为空", groups = {AddGroup.class, EditGroup.class}) private String addr; /** * 经度 */ - @NotBlank(message = "经度不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "经度不能为空", groups = {AddGroup.class, EditGroup.class}) private String lon; /** * 维度 */ - @NotBlank(message = "维度不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "维度不能为空", groups = {AddGroup.class, EditGroup.class}) private String lat; /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java index 41330c30..65e65bc4 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbFloorBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 楼层业务对象 tb_floor * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -29,14 +29,8 @@ public class TbFloorBo extends BaseEntity { /** * 单元编码 */ - @NotBlank(message = "单元编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String unitCode; - - /** - * 楼层编码 - */ - @NotNull(message = "楼层编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String floorCode; + @NotNull(message = "单元编码不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long unitId; /** * 楼层数名称 @@ -48,22 +42,22 @@ public class TbFloorBo extends BaseEntity { * 楼层号 */ @NotNull(message = "楼层号不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long floorNumber; + private Integer floorNumber; /** * 楼层类型 */ - private Long floorType; + private Integer floorType; /** * 房间数量 */ - private Long roomCount; + private Integer roomCount; /** * 层高 */ - private Long floorHeight; + private Integer floorHeight; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java index db7e5997..13163106 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbRoomBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 房间信息业务对象 tb_room * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -21,7 +21,7 @@ import jakarta.validation.constraints.*; public class TbRoomBo extends BaseEntity { /** - * + * */ @NotNull(message = "不能为空", groups = { EditGroup.class }) private Long id; @@ -29,13 +29,8 @@ public class TbRoomBo extends BaseEntity { /** * 所属楼层ID */ - @NotBlank(message = "所属楼层ID不能为空", groups = { AddGroup.class, EditGroup.class }) - private String floorCode; - - /** - * 房间编码 - */ - private String roomCode; + @NotNull(message = "所属楼层ID不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long floorId; /** * 房间号(如101,202) @@ -46,12 +41,12 @@ public class TbRoomBo extends BaseEntity { /** * 房间类型('住宅','商铺','办公室','设备间','公共区域') */ - private Long roomType; + private Integer roomType; /** * 面积(平方米) */ - private Long area; + private Float area; /** * 户型(如2室1厅1卫) @@ -61,17 +56,17 @@ public class TbRoomBo extends BaseEntity { /** * 朝向('东','南','西','北','东南','东北','西南','西北') */ - private Long orientation; + private Integer orientation; /** * 是否可售 */ - private Long isForSale; + private Integer isForSale; /** * 状态('空置','已售','已租','自用') */ - private Long status; + private Integer status; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java index effc1627..557eec3b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TbUnitBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 单元业务对象 tb_unit * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @EqualsAndHashCode(callSuper = true) @@ -29,14 +29,8 @@ public class TbUnitBo extends BaseEntity { /** * 建筑名称 */ - @NotBlank(message = "建筑名称不能为空", groups = { AddGroup.class, EditGroup.class }) - private String buildingCode; - - /** - * 单元编码 - */ - @NotBlank(message = "单元编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String unitCode; + @NotNull(message = "建筑名称不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long buildingId; /** * 单元名称 @@ -47,17 +41,17 @@ public class TbUnitBo extends BaseEntity { /** * 单元层数 */ - private Long floorCount; + private Integer floorCount; /** * 单元户数 */ - private Long householdCount; + private Integer householdCount; /** * 楼梯数量 */ - private Long stairCount; + private Integer stairCount; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TdFactoryBo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TdFactoryBo.java index dff83014..daf5704f 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TdFactoryBo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/bo/TdFactoryBo.java @@ -21,7 +21,7 @@ import jakarta.validation.constraints.*; public class TdFactoryBo extends BaseEntity { /** - * + * */ @NotNull(message = "不能为空", groups = { EditGroup.class }) private Long id; @@ -43,16 +43,5 @@ public class TdFactoryBo extends BaseEntity { */ private String remark; - /** - * 数据状态:1有效,0无效 - */ - @NotNull(message = "数据状态:1有效,0无效不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long dataState; - - /** - * 搜索值 - */ - private String searchValue; - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/convert/SysCityAreaCovert.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/convert/SysCityAreaCovert.java index 704bf2d8..a905f734 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/convert/SysCityAreaCovert.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/convert/SysCityAreaCovert.java @@ -2,6 +2,7 @@ package org.dromara.property.domain.convert; import org.dromara.property.domain.SysCityArea; import org.dromara.property.domain.vo.CityAreaTreeVo; +import org.dromara.property.domain.vo.SysCityAreaVo; import org.mapstruct.Mapper; import org.mapstruct.MappingConstants; import org.mapstruct.ReportingPolicy; @@ -21,4 +22,6 @@ public interface SysCityAreaCovert { List entity2Vo(List cityAreas); + List vo2TreeVo(List cityAreas); + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CityAreaTreeVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CityAreaTreeVo.java index 7800fedd..7fff38a7 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CityAreaTreeVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/CityAreaTreeVo.java @@ -1,11 +1,14 @@ package org.dromara.property.domain.vo; +import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import org.dromara.common.core.domain.TreeEntity; +import org.dromara.property.domain.SysCityArea; import java.util.List; @Data +@AutoMapper(target = SysCityArea.class) public class CityAreaTreeVo implements TreeEntity { /** diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderChargeVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderChargeVo.java new file mode 100644 index 00000000..61e18d89 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderChargeVo.java @@ -0,0 +1,116 @@ +package org.dromara.property.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.property.domain.PlantsOrderCharge; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 绿植租赁-订单收费视图对象 plants_order_charge + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PlantsOrderCharge.class) +public class PlantsOrderChargeVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 订单id + */ + @ExcelProperty(value = "订单id") + private Long orderId; + + /** + * 租赁人id(系统用户) + */ + @ExcelProperty(value = "租赁人id", converter = ExcelDictConvert.class) + @ExcelDictFormat(readConverterExp = "系=统用户") + private Long userId; + + /** + * 租赁人名称 + */ + @ExcelProperty(value = "租赁人名称") + private String userName; + + /** + * 租金 + */ + @ExcelProperty(value = "租金") + private Long rent; + + /** + * 押金 + */ + @ExcelProperty(value = "押金") + private Long deposit; + + /** + * 违约金 + */ + @ExcelProperty(value = "违约金") + private Long penalty; + + /** + * 总金额 + */ + @ExcelProperty(value = "总金额") + private Long totalAmount; + + /** + * 收费日期 + */ + @ExcelProperty(value = "收费日期") + private Date chargeDate; + + /** + * 支付方式 + */ + @ExcelProperty(value = "支付方式", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "pro_payment_method") + private Long paymentMethod; + + /** + * 开票状态 + */ + @ExcelProperty(value = "开票状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "pro_invoice_status") + private Long invoiceStatus; + + /** + * 发票类型 + */ + @ExcelProperty(value = "发票类型") + private Long invoiceType; + + /** + * 收费状态 + */ + @ExcelProperty(value = "收费状态", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "pro_charging_status") + private Long chargeStatus; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderMaintainVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderMaintainVo.java new file mode 100644 index 00000000..f98bdb0d --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsOrderMaintainVo.java @@ -0,0 +1,131 @@ +package org.dromara.property.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.property.domain.PlantsOrderMaintain; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 绿植租赁-订单养护管理视图对象 plants_order_maintain + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PlantsOrderMaintain.class) +public class PlantsOrderMaintainVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 养护名称 + */ + @ExcelProperty(value = "养护名称") + private String maintainName; + + /** + * 小区id + */ + @ExcelProperty(value = "小区id") + private Long communityId; + + /** + * 建筑id + */ + @ExcelProperty(value = "建筑id") + private Long buildingId; + + /** + * 楼层id + */ + @ExcelProperty(value = "楼层id") + private Long floorId; + + /** + * 服务类型 + */ + @ExcelProperty(value = "服务类型") + private Long serveType; + + /** + * 养护周期类型 + */ + @ExcelProperty(value = "养护周期类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wy_time_unit") + private Long periodType; + + /** + * 养护周期频次 + */ + @ExcelProperty(value = "养护周期频次") + private Long periodFrequency; + + /** + * 订单id + */ + @ExcelProperty(value = "订单id") + private Long orderId; + + /** + * 计划执行时间 + */ + @ExcelProperty(value = "计划执行时间") + private Date startTime; + + /** + * 计划完成时间 + */ + @ExcelProperty(value = "计划完成时间") + private Date endTime; + + /** + * 巡检结果 + */ + @ExcelProperty(value = "巡检结果") + private Long inspectResult; + + /** + * 处理措施 + */ + @ExcelProperty(value = "处理措施") + private String measure; + + /** + * 客户评分 + */ + @ExcelProperty(value = "客户评分") + private Long customerScore; + + /** + * 客户反馈 + */ + @ExcelProperty(value = "客户反馈") + private String customerAdvice; + + /** + * 处理状态 + */ + @ExcelProperty(value = "处理状态") + private Long state; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsRentalOrderVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsRentalOrderVo.java new file mode 100644 index 00000000..73c6cf31 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/PlantsRentalOrderVo.java @@ -0,0 +1,132 @@ +package org.dromara.property.domain.vo; + +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.dromara.property.domain.PlantsRentalOrder; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; + + + +/** + * 绿植租赁-订单管理视图对象 plants_rental_order + * + * @author mocheng + * @date 2025-06-30 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = PlantsRentalOrder.class) +public class PlantsRentalOrderVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 订单号 + */ + @ExcelProperty(value = "订单号") + private String orderNo; + + /** + * 客户名称 + */ + @ExcelProperty(value = "客户名称") + private String customerName; + + /** + * 客户类型 + */ + @ExcelProperty(value = "客户类型", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wy_khlx") + private Long customerType; + + /** + * 租赁周期 + */ + @ExcelProperty(value = "租赁周期", converter = ExcelDictConvert.class) + @ExcelDictFormat(dictType = "wy_time_unit") + private Long rentalPeriod; + + /** + * 租赁开始时间 + */ + @ExcelProperty(value = "租赁开始时间") + private Date startTime; + + /** + * 租赁结束时间 + */ + @ExcelProperty(value = "租赁结束时间") + private Date endTime; + + /** + * 应付总额 + */ + @ExcelProperty(value = "应付总额") + private Long totalAmount; + + /** + * 租赁方式 + */ + @ExcelProperty(value = "租赁方式") + private Long rentalType; + + /** + * 租赁方案id + */ + @ExcelProperty(value = "租赁方案id") + private Long planId; + + /** + * 绿植产品id + */ + @ExcelProperty(value = "绿植产品id") + private Long productId; + + /** + * 租赁产品数量 + */ + @ExcelProperty(value = "租赁产品数量") + private Long productNum; + + /** + * 支付状态 + */ + @ExcelProperty(value = "支付状态") + private Long paymentStatus; + + /** + * 是否续租 + */ + @ExcelProperty(value = "是否续租") + private Long isRelet; + + /** + * 合同状态 + */ + @ExcelProperty(value = "合同状态") + private Long contractStatus; + + /** + * 签署时间 + */ + @ExcelProperty(value = "签署时间") + private Date signTime; + + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/SysCityAreaVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/SysCityAreaVo.java index b71cc605..3109990a 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/SysCityAreaVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/SysCityAreaVo.java @@ -77,11 +77,4 @@ public class SysCityAreaVo implements Serializable { @ExcelProperty(value = "维度") private String lat; - /** - * 数据状态:1有效,0无效 - */ - @ExcelProperty(value = "数据状态:1有效,0无效") - private Long dataState; - - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java index 351a0fa2..3f892373 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbBuildingVo.java @@ -1,26 +1,23 @@ package org.dromara.property.domain.vo; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.property.domain.TbBuilding; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.property.domain.TbBuilding; import java.io.Serial; import java.io.Serializable; import java.util.Date; - /** * 建筑视图对象 tb_building * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -30,23 +27,14 @@ public class TbBuildingVo implements Serializable { @Serial private static final long serialVersionUID = 1L; - /** - * - */ - @ExcelProperty(value = "") + @ExcelProperty(value = "主键id") private Long id; /** * 园区编码 */ @ExcelProperty(value = "园区编码") - private String communityCode; - - /** - * 建筑编码 - */ - @ExcelProperty(value = "建筑编码") - private String buildingCode; + private Long communityId; /** * 建筑名称 @@ -54,24 +42,6 @@ public class TbBuildingVo implements Serializable { @ExcelProperty(value = "建筑名称") private String buildingName; - /** - * 省 - */ - @ExcelProperty(value = "省") - private String province; - - /** - * 市 - */ - @ExcelProperty(value = "市") - private String city; - - /** - * 区 - */ - @ExcelProperty(value = "区") - private String district; - /** * 总层数 */ @@ -82,19 +52,22 @@ public class TbBuildingVo implements Serializable { * 单元数 */ @ExcelProperty(value = "单元数") - private Long unitCount; + private Integer unitCount; /** * 建筑类型('1:住宅','2:商业','3:混合') */ @ExcelProperty(value = "建筑类型('1:住宅','2:商业','3:混合')") - private Long buildType; + private Integer buildType; + + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "buildType", other = "sis_build_use_type") + private String buildTypeName; /** * 电梯数量 */ @ExcelProperty(value = "电梯数量") - private Long elevatorCount; + private Integer elevatorCount; /** * 竣工日期 @@ -120,83 +93,10 @@ public class TbBuildingVo implements Serializable { @ExcelProperty(value = "维度") private String lat; - /** - * 产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用) - */ - @ExcelProperty(value = "产权性质(1:自持,2:承租,3:自持+承租,4:政府免费使用)") - private Long cqxz; - - /** - * 不动产编号 - */ - @ExcelProperty(value = "不动产编号") - private String bdcbh; - - /** - * 产权编号 - */ - @ExcelProperty(value = "产权编号") - private String cqbh; - - /** - * 图地编号 - */ - @ExcelProperty(value = "图地编号") - private String tdbh; - - /** - * 建筑面积 - */ - @ExcelProperty(value = "建筑面积") - private Long jzmj; - - /** - * 产权面积 - */ - @ExcelProperty(value = "产权面积") - private Long cqmj; - - /** - * 可租面积 - */ - @ExcelProperty(value = "可租面积") - private Long kzmj; - - /** - * 自用面积 - */ - @ExcelProperty(value = "自用面积") - private Long zymj; - - /** - * 配套面积 - */ - @ExcelProperty(value = "配套面积") - private Long ptmj; - - /** - * 车位面积 - */ - @ExcelProperty(value = "车位面积") - private Long cwmj; - - /** - * 标准层高 - */ - @ExcelProperty(value = "标准层高") - private Long bzcg; - /** * 排序字段 */ @ExcelProperty(value = "排序字段") private Long sort; - /** - * 修改时间 - */ - @ExcelProperty(value = "修改时间") - private Date modifyTime; - - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java index dc07a34d..9e4853f9 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbCommunityVo.java @@ -1,26 +1,21 @@ package org.dromara.property.domain.vo; -import java.util.Date; -import com.fasterxml.jackson.annotation.JsonFormat; -import org.dromara.property.domain.TbCommunity; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.property.domain.TbCommunity; import java.io.Serial; import java.io.Serializable; import java.util.Date; - /** * 小区视图对象 tb_community * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -42,18 +37,16 @@ public class TbCommunityVo implements Serializable { @ExcelProperty(value = "社区名称") private String communityName; - /** - * 社区编码 - */ - @ExcelProperty(value = "社区编码") - private String communityCode; - /** * 社区类型 1:园区,2:小区 */ @ExcelProperty(value = "社区类型 1:园区,2:小区") private Long communityType; + private String cityFullCode; + + private String cityFullName; + /** * 省 */ diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java index c91a155d..69802b65 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbFloorVo.java @@ -18,7 +18,7 @@ import java.util.Date; * 楼层视图对象 tb_floor * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -34,17 +34,22 @@ public class TbFloorVo implements Serializable { @ExcelProperty(value = "") private Long id; + /** + * 社区id + */ + private Long communityId; + + /** + * 建筑名称 + */ + @ExcelProperty(value = "建筑名称") + private Long buildingId; + /** * 单元编码 */ @ExcelProperty(value = "单元编码") - private String unitCode; - - /** - * 楼层编码 - */ - @ExcelProperty(value = "楼层编码") - private String floorCode; + private Long unitId; /** * 楼层数名称 @@ -62,19 +67,19 @@ public class TbFloorVo implements Serializable { * 楼层类型 */ @ExcelProperty(value = "楼层类型") - private Long floorType; + private Integer floorType; /** * 房间数量 */ @ExcelProperty(value = "房间数量") - private Long roomCount; + private Integer roomCount; /** * 层高 */ @ExcelProperty(value = "层高") - private Long floorHeight; + private Integer floorHeight; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java index 4e15fe32..90b87bf2 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbRoomVo.java @@ -1,24 +1,24 @@ package org.dromara.property.domain.vo; -import org.dromara.property.domain.TbRoom; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import org.dromara.common.translation.annotation.Translation; +import org.dromara.common.translation.constant.TransConstant; +import org.dromara.property.domain.TbRoom; import java.io.Serial; import java.io.Serializable; -import java.util.Date; - /** * 房间信息视图对象 tb_room * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -29,22 +29,33 @@ public class TbRoomVo implements Serializable { private static final long serialVersionUID = 1L; /** - * + * */ @ExcelProperty(value = "") private Long id; + /** + * 社区id + */ + private Long communityId; + + /** + * 建筑名称 + */ + @ExcelProperty(value = "建筑名称") + private Long buildingId; + + /** + * 单元编码 + */ + @ExcelProperty(value = "单元编码") + private Long unitId; + /** * 所属楼层ID */ @ExcelProperty(value = "所属楼层ID") - private String floorCode; - - /** - * 房间编码 - */ - @ExcelProperty(value = "房间编码") - private String roomCode; + private Long floorId; /** * 房间号(如101,202) @@ -56,7 +67,10 @@ public class TbRoomVo implements Serializable { * 房间类型('住宅','商铺','办公室','设备间','公共区域') */ @ExcelProperty(value = "房间类型('住宅','商铺','办公室','设备间','公共区域')") - private Long roomType; + private Integer roomType; + + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "roomType", other = "room_type") + private String roomTypeName; /** * 面积(平方米) @@ -73,21 +87,27 @@ public class TbRoomVo implements Serializable { /** * 朝向('东','南','西','北','东南','东北','西南','西北') */ + @ExcelProperty(value = "朝向('东','南','西','北','东南','东北','西南','西北')") - private Long orientation; + private Integer orientation; + + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "orientation", other = "direction_towards") + private Integer orientationName; /** * 是否可售 */ @ExcelProperty(value = "是否可售") - private Long isForSale; + private Integer isForSale; /** * 状态('空置','已售','已租','自用') */ @ExcelProperty(value = "状态", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "'=空置','已售','已租','自用'") - private Long status; + private Integer status; + @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "status", other = "wy_fjzt") + private String statusName; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java index 246c37b7..0afc4b55 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbUnitVo.java @@ -18,7 +18,7 @@ import java.util.Date; * 单元视图对象 tb_unit * * @author mocheng - * @date 2025-06-26 + * @date 2025-06-28 */ @Data @ExcelIgnoreUnannotated @@ -34,17 +34,13 @@ public class TbUnitVo implements Serializable { @ExcelProperty(value = "主键id") private Long id; + private Long communityId; + /** * 建筑名称 */ @ExcelProperty(value = "建筑名称") - private String buildingCode; - - /** - * 单元编码 - */ - @ExcelProperty(value = "单元编码") - private String unitCode; + private Long buildingId; /** * 单元名称 @@ -56,19 +52,19 @@ public class TbUnitVo implements Serializable { * 单元层数 */ @ExcelProperty(value = "单元层数") - private Long floorCount; + private Integer floorCount; /** * 单元户数 */ @ExcelProperty(value = "单元户数") - private Long householdCount; + private Integer householdCount; /** * 楼梯数量 */ @ExcelProperty(value = "楼梯数量") - private Long stairCount; + private Integer stairCount; } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java index 9afc469f..9f4fb19b 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TbVisitorManagementVo.java @@ -1,6 +1,9 @@ package org.dromara.property.domain.vo; import java.util.Date; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import org.dromara.property.domain.TbVisitorManagement; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; @@ -116,5 +119,18 @@ public class TbVisitorManagementVo implements Serializable { @ExcelDictFormat(dictType = "wy_appointment_tatus") private Long serveStatus; + /** + * 创建时间 + */ + @ExcelProperty(value = "创建时间") + private Date createTime; + + /** + * 更新时间 + */ + @ExcelProperty(value = "更新时间") + private Date updateTime; + + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TdFactoryVo.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TdFactoryVo.java index b0fc9ad6..2ad4ae35 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TdFactoryVo.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/domain/vo/TdFactoryVo.java @@ -29,7 +29,7 @@ public class TdFactoryVo implements Serializable { private static final long serialVersionUID = 1L; /** - * + * */ @ExcelProperty(value = "") private Long id; @@ -52,17 +52,5 @@ public class TdFactoryVo implements Serializable { @ExcelProperty(value = "备注") private String remark; - /** - * 数据状态:1有效,0无效 - */ - @ExcelProperty(value = "数据状态:1有效,0无效") - private Long dataState; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java new file mode 100644 index 00000000..b78d6e81 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/dubbo/RemoteFloorServiceImpl.java @@ -0,0 +1,104 @@ +package org.dromara.property.dubbo; + +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.apache.dubbo.config.annotation.DubboService; +import org.dromara.common.core.domain.TreeNode; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.property.api.RemoteFloorService; +import org.dromara.property.api.domain.vo.RemoteFloorVo; +import org.dromara.property.domain.vo.TbBuildingVo; +import org.dromara.property.domain.vo.TbCommunityVo; +import org.dromara.property.domain.vo.TbFloorVo; +import org.dromara.property.domain.vo.TbUnitVo; +import org.dromara.property.service.ITbBuildingService; +import org.dromara.property.service.ITbCommunityService; +import org.dromara.property.service.ITbFloorService; +import org.dromara.property.service.ITbUnitService; + +import java.util.ArrayList; +import java.util.List; + +/** + * 楼层服务远程调用实现 + * + * @author lxj + */ +@Slf4j +@RequiredArgsConstructor +@DubboService +public class RemoteFloorServiceImpl implements RemoteFloorService { + + private final ITbCommunityService tbCommunityService; + private final ITbBuildingService tbBuildingService; + private final ITbUnitService unitService; + private final ITbFloorService floorService; + + + @Override + public RemoteFloorVo queryByFloorId(Long floorId) { + TbFloorVo tbFloorVo = floorService.queryById(floorId); + return MapstructUtils.convert(tbFloorVo, RemoteFloorVo.class); + } + + + @Override + public List> queryTreeList() { + + List> treeList = new ArrayList<>(); + List tbCommunityVos = tbCommunityService.queryAll(); + if (tbCommunityVos == null || tbCommunityVos.isEmpty()) { + return treeList; + } + List> l1 = tbCommunityVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(1); + node.setCode(item.getId()); + node.setParentCode(0L); + node.setLabel(item.getCommunityName()); + return node; + }).toList(); + treeList.addAll(l1); + List tbBuildingVos = tbBuildingService.queryAll(); + if (tbBuildingVos == null || tbBuildingVos.isEmpty()) { + return treeList; + } + List> l2 = tbBuildingVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(2); + node.setCode(item.getId()); + node.setParentCode(item.getCommunityId()); + node.setLabel(item.getBuildingName()); + return node; + }).toList(); + treeList.addAll(l2); + + List tbUnitVos = unitService.queryAll(); + if (tbUnitVos == null || tbUnitVos.isEmpty()) { + return treeList; + } + List> l3 = tbUnitVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(3); + node.setCode(item.getId()); + node.setParentCode(item.getBuildingId()); + node.setLabel(item.getUnitName()); + return node; + }).toList(); + treeList.addAll(l3); + List tbFloorVos = floorService.queryAll(); + if (tbFloorVos == null || tbFloorVos.isEmpty()) { + return treeList; + } + List> l4 = tbFloorVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(4); + node.setCode(item.getId()); + node.setParentCode(item.getUnitId()); + node.setLabel(item.getFloorName()); + return node; + }).toList(); + treeList.addAll(l4); + return treeList; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderChargeMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderChargeMapper.java new file mode 100644 index 00000000..ea6c22ee --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderChargeMapper.java @@ -0,0 +1,15 @@ +package org.dromara.property.mapper; + +import org.dromara.property.domain.PlantsOrderCharge; +import org.dromara.property.domain.vo.PlantsOrderChargeVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 绿植租赁-订单收费Mapper接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface PlantsOrderChargeMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderMaintainMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderMaintainMapper.java new file mode 100644 index 00000000..4ab6ad0a --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsOrderMaintainMapper.java @@ -0,0 +1,15 @@ +package org.dromara.property.mapper; + +import org.dromara.property.domain.PlantsOrderMaintain; +import org.dromara.property.domain.vo.PlantsOrderMaintainVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 绿植租赁-订单养护管理Mapper接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface PlantsOrderMaintainMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsRentalOrderMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsRentalOrderMapper.java new file mode 100644 index 00000000..e804b256 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/PlantsRentalOrderMapper.java @@ -0,0 +1,15 @@ +package org.dromara.property.mapper; + +import org.dromara.property.domain.PlantsRentalOrder; +import org.dromara.property.domain.vo.PlantsRentalOrderVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 绿植租赁-订单管理Mapper接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface PlantsRentalOrderMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/SysCityAreaMapper.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/SysCityAreaMapper.java index 385368da..786b1815 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/SysCityAreaMapper.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/mapper/SysCityAreaMapper.java @@ -1,16 +1,23 @@ package org.dromara.property.mapper; -import org.dromara.property.domain.SysCityArea; -import org.dromara.property.domain.vo.SysCityAreaVo; +import org.apache.ibatis.annotations.Select; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import org.dromara.property.domain.SysCityArea; +import org.dromara.property.domain.vo.CityAreaTreeVo; +import org.dromara.property.domain.vo.SysCityAreaVo; + +import java.util.List; /** * 行政区划 -Mapper接口 + * Mapper接口 * * @author mocheng * @date 2025-06-18 */ public interface SysCityAreaMapper extends BaseMapperPlus { + @Select("select * from sys_city_area") + List seleAll(); + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderChargeService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderChargeService.java new file mode 100644 index 00000000..4ad298a2 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderChargeService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.PlantsOrderCharge; +import org.dromara.property.domain.vo.PlantsOrderChargeVo; +import org.dromara.property.domain.bo.PlantsOrderChargeBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 绿植租赁-订单收费Service接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface IPlantsOrderChargeService { + + /** + * 查询绿植租赁-订单收费 + * + * @param id 主键 + * @return 绿植租赁-订单收费 + */ + PlantsOrderChargeVo queryById(Long id); + + /** + * 分页查询绿植租赁-订单收费列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单收费分页列表 + */ + TableDataInfo queryPageList(PlantsOrderChargeBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的绿植租赁-订单收费列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单收费列表 + */ + List queryList(PlantsOrderChargeBo bo); + + /** + * 新增绿植租赁-订单收费 + * + * @param bo 绿植租赁-订单收费 + * @return 是否新增成功 + */ + Boolean insertByBo(PlantsOrderChargeBo bo); + + /** + * 修改绿植租赁-订单收费 + * + * @param bo 绿植租赁-订单收费 + * @return 是否修改成功 + */ + Boolean updateByBo(PlantsOrderChargeBo bo); + + /** + * 校验并批量删除绿植租赁-订单收费信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderMaintainService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderMaintainService.java new file mode 100644 index 00000000..18ac94d6 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsOrderMaintainService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.PlantsOrderMaintain; +import org.dromara.property.domain.vo.PlantsOrderMaintainVo; +import org.dromara.property.domain.bo.PlantsOrderMaintainBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 绿植租赁-订单养护管理Service接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface IPlantsOrderMaintainService { + + /** + * 查询绿植租赁-订单养护管理 + * + * @param id 主键 + * @return 绿植租赁-订单养护管理 + */ + PlantsOrderMaintainVo queryById(Long id); + + /** + * 分页查询绿植租赁-订单养护管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单养护管理分页列表 + */ + TableDataInfo queryPageList(PlantsOrderMaintainBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的绿植租赁-订单养护管理列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单养护管理列表 + */ + List queryList(PlantsOrderMaintainBo bo); + + /** + * 新增绿植租赁-订单养护管理 + * + * @param bo 绿植租赁-订单养护管理 + * @return 是否新增成功 + */ + Boolean insertByBo(PlantsOrderMaintainBo bo); + + /** + * 修改绿植租赁-订单养护管理 + * + * @param bo 绿植租赁-订单养护管理 + * @return 是否修改成功 + */ + Boolean updateByBo(PlantsOrderMaintainBo bo); + + /** + * 校验并批量删除绿植租赁-订单养护管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsRentalOrderService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsRentalOrderService.java new file mode 100644 index 00000000..d724b2e2 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/IPlantsRentalOrderService.java @@ -0,0 +1,69 @@ +package org.dromara.property.service; + +import org.dromara.property.domain.PlantsRentalOrder; +import org.dromara.property.domain.vo.PlantsRentalOrderVo; +import org.dromara.property.domain.bo.PlantsRentalOrderBo; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; + +import java.util.Collection; +import java.util.List; + +/** + * 绿植租赁-订单管理Service接口 + * + * @author mocheng + * @date 2025-06-30 + */ +public interface IPlantsRentalOrderService { + + /** + * 查询绿植租赁-订单管理 + * + * @param id 主键 + * @return 绿植租赁-订单管理 + */ + PlantsRentalOrderVo queryById(Long id); + + /** + * 分页查询绿植租赁-订单管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单管理分页列表 + */ + TableDataInfo queryPageList(PlantsRentalOrderBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的绿植租赁-订单管理列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单管理列表 + */ + List queryList(PlantsRentalOrderBo bo); + + /** + * 新增绿植租赁-订单管理 + * + * @param bo 绿植租赁-订单管理 + * @return 是否新增成功 + */ + Boolean insertByBo(PlantsRentalOrderBo bo); + + /** + * 修改绿植租赁-订单管理 + * + * @param bo 绿植租赁-订单管理 + * @return 是否修改成功 + */ + Boolean updateByBo(PlantsRentalOrderBo bo); + + /** + * 校验并批量删除绿植租赁-订单管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbBuildingService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbBuildingService.java index 4703ad03..3e5f07f2 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbBuildingService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbBuildingService.java @@ -66,10 +66,6 @@ public interface ITbBuildingService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - /** - * 加载当前租户下的所有建筑 - * @param tenantId 租户编码 - * @return 返回建筑列表 - */ - List queryByTenantId(String tenantId); + + List queryAll(); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbCommunityService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbCommunityService.java index a5f9b86b..3fa46629 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbCommunityService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbCommunityService.java @@ -25,13 +25,8 @@ public interface ITbCommunityService { */ TbCommunityVo queryById(Long id); - /** - * 查询小区列表 - * - * @param tenantId 租户编码 - * @return 小区 - */ - List queryByTenantId(String tenantId); + + List queryAll(); /** * 分页查询小区列表 @@ -77,9 +72,10 @@ public interface ITbCommunityService { /** * 加载社区树结构 + * * @param level 加载等级 * @return 树结构 */ - List> tree(Integer level,String tenantId); + List> tree(Integer level, String tenantId); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java index 47c7d8d4..6849e8bd 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbFloorService.java @@ -67,5 +67,7 @@ public interface ITbFloorService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List queryByTenantId(String tenantId); + + List queryAll(); + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbRoomService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbRoomService.java index d2a56ce8..0fc5768c 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbRoomService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbRoomService.java @@ -68,5 +68,6 @@ public interface ITbRoomService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List queryByTenantId(String tenantId); + List queryAll(); + } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbUnitService.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbUnitService.java index 839e76de..6016471e 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbUnitService.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/ITbUnitService.java @@ -66,6 +66,7 @@ public interface ITbUnitService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List queryByTenantId(String tenantId); + + List queryAll(); } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderChargeServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderChargeServiceImpl.java new file mode 100644 index 00000000..7105a3bf --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderChargeServiceImpl.java @@ -0,0 +1,143 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.PlantsOrderChargeBo; +import org.dromara.property.domain.vo.PlantsOrderChargeVo; +import org.dromara.property.domain.PlantsOrderCharge; +import org.dromara.property.mapper.PlantsOrderChargeMapper; +import org.dromara.property.service.IPlantsOrderChargeService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 绿植租赁-订单收费Service业务层处理 + * + * @author mocheng + * @date 2025-06-30 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class PlantsOrderChargeServiceImpl implements IPlantsOrderChargeService { + + private final PlantsOrderChargeMapper baseMapper; + + /** + * 查询绿植租赁-订单收费 + * + * @param id 主键 + * @return 绿植租赁-订单收费 + */ + @Override + public PlantsOrderChargeVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询绿植租赁-订单收费列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单收费分页列表 + */ + @Override + public TableDataInfo queryPageList(PlantsOrderChargeBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的绿植租赁-订单收费列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单收费列表 + */ + @Override + public List queryList(PlantsOrderChargeBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PlantsOrderChargeBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(PlantsOrderCharge::getId); + lqw.eq(bo.getOrderId() != null, PlantsOrderCharge::getOrderId, bo.getOrderId()); + lqw.eq(bo.getUserId() != null, PlantsOrderCharge::getUserId, bo.getUserId()); + lqw.like(StringUtils.isNotBlank(bo.getUserName()), PlantsOrderCharge::getUserName, bo.getUserName()); + lqw.eq(bo.getRent() != null, PlantsOrderCharge::getRent, bo.getRent()); + lqw.eq(bo.getDeposit() != null, PlantsOrderCharge::getDeposit, bo.getDeposit()); + lqw.eq(bo.getPenalty() != null, PlantsOrderCharge::getPenalty, bo.getPenalty()); + lqw.eq(bo.getTotalAmount() != null, PlantsOrderCharge::getTotalAmount, bo.getTotalAmount()); + lqw.eq(bo.getChargeDate() != null, PlantsOrderCharge::getChargeDate, bo.getChargeDate()); + lqw.eq(bo.getPaymentMethod() != null, PlantsOrderCharge::getPaymentMethod, bo.getPaymentMethod()); + lqw.eq(bo.getInvoiceStatus() != null, PlantsOrderCharge::getInvoiceStatus, bo.getInvoiceStatus()); + lqw.eq(bo.getInvoiceType() != null, PlantsOrderCharge::getInvoiceType, bo.getInvoiceType()); + lqw.eq(bo.getChargeStatus() != null, PlantsOrderCharge::getChargeStatus, bo.getChargeStatus()); + return lqw; + } + + /** + * 新增绿植租赁-订单收费 + * + * @param bo 绿植租赁-订单收费 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PlantsOrderChargeBo bo) { + PlantsOrderCharge add = MapstructUtils.convert(bo, PlantsOrderCharge.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改绿植租赁-订单收费 + * + * @param bo 绿植租赁-订单收费 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PlantsOrderChargeBo bo) { + PlantsOrderCharge update = MapstructUtils.convert(bo, PlantsOrderCharge.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PlantsOrderCharge entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除绿植租赁-订单收费信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderMaintainServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderMaintainServiceImpl.java new file mode 100644 index 00000000..fc462187 --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsOrderMaintainServiceImpl.java @@ -0,0 +1,146 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.PlantsOrderMaintainBo; +import org.dromara.property.domain.vo.PlantsOrderMaintainVo; +import org.dromara.property.domain.PlantsOrderMaintain; +import org.dromara.property.mapper.PlantsOrderMaintainMapper; +import org.dromara.property.service.IPlantsOrderMaintainService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 绿植租赁-订单养护管理Service业务层处理 + * + * @author mocheng + * @date 2025-06-30 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class PlantsOrderMaintainServiceImpl implements IPlantsOrderMaintainService { + + private final PlantsOrderMaintainMapper baseMapper; + + /** + * 查询绿植租赁-订单养护管理 + * + * @param id 主键 + * @return 绿植租赁-订单养护管理 + */ + @Override + public PlantsOrderMaintainVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询绿植租赁-订单养护管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单养护管理分页列表 + */ + @Override + public TableDataInfo queryPageList(PlantsOrderMaintainBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的绿植租赁-订单养护管理列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单养护管理列表 + */ + @Override + public List queryList(PlantsOrderMaintainBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PlantsOrderMaintainBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(PlantsOrderMaintain::getId); + lqw.like(StringUtils.isNotBlank(bo.getMaintainName()), PlantsOrderMaintain::getMaintainName, bo.getMaintainName()); + lqw.eq(bo.getCommunityId() != null, PlantsOrderMaintain::getCommunityId, bo.getCommunityId()); + lqw.eq(bo.getBuildingId() != null, PlantsOrderMaintain::getBuildingId, bo.getBuildingId()); + lqw.eq(bo.getFloorId() != null, PlantsOrderMaintain::getFloorId, bo.getFloorId()); + lqw.eq(bo.getServeType() != null, PlantsOrderMaintain::getServeType, bo.getServeType()); + lqw.eq(bo.getPeriodType() != null, PlantsOrderMaintain::getPeriodType, bo.getPeriodType()); + lqw.eq(bo.getPeriodFrequency() != null, PlantsOrderMaintain::getPeriodFrequency, bo.getPeriodFrequency()); + lqw.eq(bo.getOrderId() != null, PlantsOrderMaintain::getOrderId, bo.getOrderId()); + lqw.eq(bo.getStartTime() != null, PlantsOrderMaintain::getStartTime, bo.getStartTime()); + lqw.eq(bo.getEndTime() != null, PlantsOrderMaintain::getEndTime, bo.getEndTime()); + lqw.eq(bo.getInspectResult() != null, PlantsOrderMaintain::getInspectResult, bo.getInspectResult()); + lqw.eq(StringUtils.isNotBlank(bo.getMeasure()), PlantsOrderMaintain::getMeasure, bo.getMeasure()); + lqw.eq(bo.getCustomerScore() != null, PlantsOrderMaintain::getCustomerScore, bo.getCustomerScore()); + lqw.eq(StringUtils.isNotBlank(bo.getCustomerAdvice()), PlantsOrderMaintain::getCustomerAdvice, bo.getCustomerAdvice()); + lqw.eq(bo.getState() != null, PlantsOrderMaintain::getState, bo.getState()); + return lqw; + } + + /** + * 新增绿植租赁-订单养护管理 + * + * @param bo 绿植租赁-订单养护管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PlantsOrderMaintainBo bo) { + PlantsOrderMaintain add = MapstructUtils.convert(bo, PlantsOrderMaintain.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改绿植租赁-订单养护管理 + * + * @param bo 绿植租赁-订单养护管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PlantsOrderMaintainBo bo) { + PlantsOrderMaintain update = MapstructUtils.convert(bo, PlantsOrderMaintain.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PlantsOrderMaintain entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除绿植租赁-订单养护管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsRentalOrderServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsRentalOrderServiceImpl.java new file mode 100644 index 00000000..2f44be2d --- /dev/null +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/PlantsRentalOrderServiceImpl.java @@ -0,0 +1,146 @@ +package org.dromara.property.service.impl; + +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.mybatis.core.page.PageQuery; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.dromara.property.domain.bo.PlantsRentalOrderBo; +import org.dromara.property.domain.vo.PlantsRentalOrderVo; +import org.dromara.property.domain.PlantsRentalOrder; +import org.dromara.property.mapper.PlantsRentalOrderMapper; +import org.dromara.property.service.IPlantsRentalOrderService; + +import java.util.List; +import java.util.Map; +import java.util.Collection; + +/** + * 绿植租赁-订单管理Service业务层处理 + * + * @author mocheng + * @date 2025-06-30 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class PlantsRentalOrderServiceImpl implements IPlantsRentalOrderService { + + private final PlantsRentalOrderMapper baseMapper; + + /** + * 查询绿植租赁-订单管理 + * + * @param id 主键 + * @return 绿植租赁-订单管理 + */ + @Override + public PlantsRentalOrderVo queryById(Long id){ + return baseMapper.selectVoById(id); + } + + /** + * 分页查询绿植租赁-订单管理列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 绿植租赁-订单管理分页列表 + */ + @Override + public TableDataInfo queryPageList(PlantsRentalOrderBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的绿植租赁-订单管理列表 + * + * @param bo 查询条件 + * @return 绿植租赁-订单管理列表 + */ + @Override + public List queryList(PlantsRentalOrderBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(PlantsRentalOrderBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(PlantsRentalOrder::getId); + lqw.eq(StringUtils.isNotBlank(bo.getOrderNo()), PlantsRentalOrder::getOrderNo, bo.getOrderNo()); + lqw.like(StringUtils.isNotBlank(bo.getCustomerName()), PlantsRentalOrder::getCustomerName, bo.getCustomerName()); + lqw.eq(bo.getCustomerType() != null, PlantsRentalOrder::getCustomerType, bo.getCustomerType()); + lqw.eq(bo.getRentalPeriod() != null, PlantsRentalOrder::getRentalPeriod, bo.getRentalPeriod()); + lqw.eq(bo.getStartTime() != null, PlantsRentalOrder::getStartTime, bo.getStartTime()); + lqw.eq(bo.getEndTime() != null, PlantsRentalOrder::getEndTime, bo.getEndTime()); + lqw.eq(bo.getTotalAmount() != null, PlantsRentalOrder::getTotalAmount, bo.getTotalAmount()); + lqw.eq(bo.getRentalType() != null, PlantsRentalOrder::getRentalType, bo.getRentalType()); + lqw.eq(bo.getPlanId() != null, PlantsRentalOrder::getPlanId, bo.getPlanId()); + lqw.eq(bo.getProductId() != null, PlantsRentalOrder::getProductId, bo.getProductId()); + lqw.eq(bo.getProductNum() != null, PlantsRentalOrder::getProductNum, bo.getProductNum()); + lqw.eq(bo.getPaymentStatus() != null, PlantsRentalOrder::getPaymentStatus, bo.getPaymentStatus()); + lqw.eq(bo.getIsRelet() != null, PlantsRentalOrder::getIsRelet, bo.getIsRelet()); + lqw.eq(bo.getContractStatus() != null, PlantsRentalOrder::getContractStatus, bo.getContractStatus()); + lqw.eq(bo.getSignTime() != null, PlantsRentalOrder::getSignTime, bo.getSignTime()); + return lqw; + } + + /** + * 新增绿植租赁-订单管理 + * + * @param bo 绿植租赁-订单管理 + * @return 是否新增成功 + */ + @Override + public Boolean insertByBo(PlantsRentalOrderBo bo) { + PlantsRentalOrder add = MapstructUtils.convert(bo, PlantsRentalOrder.class); + validEntityBeforeSave(add); + boolean flag = baseMapper.insert(add) > 0; + if (flag) { + bo.setId(add.getId()); + } + return flag; + } + + /** + * 修改绿植租赁-订单管理 + * + * @param bo 绿植租赁-订单管理 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(PlantsRentalOrderBo bo) { + PlantsRentalOrder update = MapstructUtils.convert(bo, PlantsRentalOrder.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(PlantsRentalOrder entity){ + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除绿植租赁-订单管理信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if(isValid){ + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/SysCityAreaServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/SysCityAreaServiceImpl.java index 037cb0b8..90648fa8 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/SysCityAreaServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/SysCityAreaServiceImpl.java @@ -91,7 +91,6 @@ public class SysCityAreaServiceImpl implements ISysCityAreaService { lqw.like(StringUtils.isNotBlank(bo.getParentAreaName()), SysCityArea::getParentAreaName, bo.getParentAreaName()); lqw.eq(StringUtils.isNotBlank(bo.getLon()), SysCityArea::getLon, bo.getLon()); lqw.eq(StringUtils.isNotBlank(bo.getLat()), SysCityArea::getLat, bo.getLat()); - lqw.eq(bo.getDataState() != null, SysCityArea::getDataState, bo.getDataState()); return lqw; } @@ -150,12 +149,7 @@ public class SysCityAreaServiceImpl implements ISysCityAreaService { @Override public List queryTreeList() { - // 查询所有的行政区划数据 - List cityAreas = baseMapper.selectList(null); - if (CollectionUtil.isEmpty(cityAreas)) { - return new ArrayList<>(); - } - List vo = SysCityAreaCovert.INSTANCE.entity2Vo(cityAreas); + List vo = baseMapper.seleAll(); return TreeUtils.build(vo, "0"); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbBuildingServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbBuildingServiceImpl.java index 7dd1bbb4..e8eafa08 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbBuildingServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbBuildingServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.property.service.impl; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -12,7 +13,9 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.domain.TbBuilding; import org.dromara.property.domain.bo.TbBuildingBo; import org.dromara.property.domain.vo.TbBuildingVo; +import org.dromara.property.domain.vo.TbCommunityVo; import org.dromara.property.mapper.TbBuildingMapper; +import org.dromara.property.mapper.TbCommunityMapper; import org.dromara.property.service.ITbBuildingService; import org.springframework.stereotype.Service; @@ -32,6 +35,7 @@ import java.util.Map; public class TbBuildingServiceImpl implements ITbBuildingService { private final TbBuildingMapper baseMapper; + private final TbCommunityMapper communityMapper; /** * 查询建筑 @@ -74,12 +78,8 @@ public class TbBuildingServiceImpl implements ITbBuildingService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbBuilding::getId); - lqw.eq(StringUtils.isNotBlank(bo.getCommunityCode()), TbBuilding::getCommunityCode, bo.getCommunityCode()); - lqw.eq(StringUtils.isNotBlank(bo.getBuildingCode()), TbBuilding::getBuildingCode, bo.getBuildingCode()); + lqw.eq(bo.getCommunityId() != null, TbBuilding::getCommunityId, bo.getCommunityId()); lqw.like(StringUtils.isNotBlank(bo.getBuildingName()), TbBuilding::getBuildingName, bo.getBuildingName()); - lqw.eq(StringUtils.isNotBlank(bo.getProvince()), TbBuilding::getProvince, bo.getProvince()); - lqw.eq(StringUtils.isNotBlank(bo.getCity()), TbBuilding::getCity, bo.getCity()); - lqw.eq(StringUtils.isNotBlank(bo.getDistrict()), TbBuilding::getDistrict, bo.getDistrict()); lqw.eq(bo.getFloorCount() != null, TbBuilding::getFloorCount, bo.getFloorCount()); lqw.eq(bo.getUnitCount() != null, TbBuilding::getUnitCount, bo.getUnitCount()); lqw.eq(bo.getBuildType() != null, TbBuilding::getBuildType, bo.getBuildType()); @@ -88,19 +88,7 @@ public class TbBuildingServiceImpl implements ITbBuildingService { lqw.eq(StringUtils.isNotBlank(bo.getAddr()), TbBuilding::getAddr, bo.getAddr()); lqw.eq(StringUtils.isNotBlank(bo.getLon()), TbBuilding::getLon, bo.getLon()); lqw.eq(StringUtils.isNotBlank(bo.getLat()), TbBuilding::getLat, bo.getLat()); - lqw.eq(bo.getCqxz() != null, TbBuilding::getCqxz, bo.getCqxz()); - lqw.eq(StringUtils.isNotBlank(bo.getBdcbh()), TbBuilding::getBdcbh, bo.getBdcbh()); - lqw.eq(StringUtils.isNotBlank(bo.getCqbh()), TbBuilding::getCqbh, bo.getCqbh()); - lqw.eq(StringUtils.isNotBlank(bo.getTdbh()), TbBuilding::getTdbh, bo.getTdbh()); - lqw.eq(bo.getJzmj() != null, TbBuilding::getJzmj, bo.getJzmj()); - lqw.eq(bo.getCqmj() != null, TbBuilding::getCqmj, bo.getCqmj()); - lqw.eq(bo.getKzmj() != null, TbBuilding::getKzmj, bo.getKzmj()); - lqw.eq(bo.getZymj() != null, TbBuilding::getZymj, bo.getZymj()); - lqw.eq(bo.getPtmj() != null, TbBuilding::getPtmj, bo.getPtmj()); - lqw.eq(bo.getCwmj() != null, TbBuilding::getCwmj, bo.getCwmj()); - lqw.eq(bo.getBzcg() != null, TbBuilding::getBzcg, bo.getBzcg()); lqw.eq(bo.getSort() != null, TbBuilding::getSort, bo.getSort()); - lqw.eq(bo.getModifyTime() != null, TbBuilding::getModifyTime, bo.getModifyTime()); return lqw; } @@ -112,6 +100,9 @@ public class TbBuildingServiceImpl implements ITbBuildingService { */ @Override public Boolean insertByBo(TbBuildingBo bo) { + // 检验社区是否存在 + TbCommunityVo tbCommunityVo = communityMapper.selectVoById(bo.getCommunityId()); + Assert.notNull(tbCommunityVo, "社区:{},不存在。", bo.getCommunityId()); TbBuilding add = MapstructUtils.convert(bo, TbBuilding.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; @@ -156,10 +147,9 @@ public class TbBuildingServiceImpl implements ITbBuildingService { return baseMapper.deleteByIds(ids) > 0; } + @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(TbBuilding::getTenantId, tenantId); - return baseMapper.selectVoList(lqw); + public List queryAll() { + return baseMapper.selectVoList(null); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbCommunityServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbCommunityServiceImpl.java index a555fc9a..81aae67e 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbCommunityServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbCommunityServiceImpl.java @@ -1,5 +1,7 @@ package org.dromara.property.service.impl; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -41,18 +43,18 @@ public class TbCommunityServiceImpl implements ITbCommunityService { private final ITbRoomService roomService; @Override - public List> tree(Integer level, String tenantId) { + public List> tree(Integer level, String tenantId) { // 默认加载社区树 - List tbCommunityVos = queryByTenantId(tenantId); + List tbCommunityVos = queryAll(); if (tbCommunityVos == null || tbCommunityVos.isEmpty()) { return new ArrayList<>(); } - List> community = new ArrayList<>(tbCommunityVos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> community = new ArrayList<>(tbCommunityVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getCommunityCode()); + node.setCode(item.getId()); node.setLabel(item.getCommunityName()); - node.setParentCode(""); + node.setParentCode(0L); node.setLevel(1); return node; }).toList()); @@ -60,14 +62,14 @@ public class TbCommunityServiceImpl implements ITbCommunityService { return community; } if (level >= 2) { - List vos = buildingService.queryByTenantId(tenantId); + List vos = buildingService.queryAll(); if (vos != null && !vos.isEmpty()) { - List> list = vos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> list = vos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getBuildingCode()); + node.setCode(item.getId()); node.setLabel(item.getBuildingName()); - node.setParentCode(item.getCommunityCode()); + node.setParentCode(item.getCommunityId()); node.setLevel(2); return node; }).toList(); @@ -75,14 +77,14 @@ public class TbCommunityServiceImpl implements ITbCommunityService { } } if (level >= 3) { - List vos = unitService.queryByTenantId(tenantId); + List vos = unitService.queryAll(); if (vos != null && !vos.isEmpty()) { - List> list = vos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> list = vos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getUnitCode()); + node.setCode(item.getId()); node.setLabel(item.getUnitName()); - node.setParentCode(item.getBuildingCode()); + node.setParentCode(item.getBuildingId()); node.setLevel(3); return node; }).toList(); @@ -90,14 +92,14 @@ public class TbCommunityServiceImpl implements ITbCommunityService { } } if (level >= 4) { - List vos = floorService.queryByTenantId(tenantId); + List vos = floorService.queryAll(); if (vos != null && !vos.isEmpty()) { - List> list = vos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> list = vos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getFloorCode()); + node.setCode(item.getId()); node.setLabel(item.getFloorName()); - node.setParentCode(item.getUnitCode()); + node.setParentCode(item.getUnitId()); node.setLevel(4); return node; }).toList(); @@ -106,28 +108,27 @@ public class TbCommunityServiceImpl implements ITbCommunityService { } if (level >= 5) { - List vos = roomService.queryByTenantId(tenantId); + List vos = roomService.queryAll(); if (vos != null && !vos.isEmpty()) { - List> list = vos.stream().map(item -> { - TreeNode node = new TreeNode<>(); + List> list = vos.stream().map(item -> { + TreeNode node = new TreeNode<>(); node.setChildren(new ArrayList<>()); - node.setCode(item.getRoomCode()); + node.setCode(item.getId()); node.setLabel(item.getRoomNumber()); - node.setParentCode(item.getFloorCode()); + node.setParentCode(item.getFloorId()); node.setLevel(5); return node; }).toList(); community.addAll(list); } } - return TreeUtils.build(community, ""); + return TreeUtils.build(community, 0L); } + @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(TbCommunity::getTenantId, tenantId); - return baseMapper.selectVoList(queryWrapper); + public List queryAll() { + return baseMapper.selectVoList(); } /** @@ -172,7 +173,6 @@ public class TbCommunityServiceImpl implements ITbCommunityService { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbCommunity::getId); lqw.like(StringUtils.isNotBlank(bo.getCommunityName()), TbCommunity::getCommunityName, bo.getCommunityName()); - lqw.eq(StringUtils.isNotBlank(bo.getCommunityCode()), TbCommunity::getCommunityCode, bo.getCommunityCode()); lqw.eq(bo.getCommunityType() != null, TbCommunity::getCommunityType, bo.getCommunityType()); lqw.eq(StringUtils.isNotBlank(bo.getProvince()), TbCommunity::getProvince, bo.getProvince()); lqw.eq(StringUtils.isNotBlank(bo.getCity()), TbCommunity::getCity, bo.getCity()); @@ -197,6 +197,12 @@ public class TbCommunityServiceImpl implements ITbCommunityService { */ @Override public Boolean insertByBo(TbCommunityBo bo) { + // 处理cityFullCode + String[] split = bo.getCityFullCode().split("/"); + Assert.isTrue(split.length == 3, "获取城市信息失败"); + bo.setProvince(split[0]); + bo.setCity(split[1]); + bo.setDistrict(split[2]); TbCommunity add = MapstructUtils.convert(bo, TbCommunity.class); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; @@ -214,6 +220,11 @@ public class TbCommunityServiceImpl implements ITbCommunityService { */ @Override public Boolean updateByBo(TbCommunityBo bo) { + String[] split = bo.getCityFullCode().split("/"); + Assert.isTrue(split.length == 3, "获取城市信息失败"); + bo.setProvince(split[0]); + bo.setCity(split[1]); + bo.setDistrict(split[2]); TbCommunity update = MapstructUtils.convert(bo, TbCommunity.class); validEntityBeforeSave(update); return baseMapper.updateById(update) > 0; diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java index 8e527889..29e9a4af 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbFloorServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.property.service.impl; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -12,8 +13,10 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.domain.TbFloor; import org.dromara.property.domain.bo.TbFloorBo; import org.dromara.property.domain.vo.TbFloorVo; +import org.dromara.property.domain.vo.TbUnitVo; import org.dromara.property.mapper.TbFloorMapper; import org.dromara.property.service.ITbFloorService; +import org.dromara.property.service.ITbUnitService; import org.springframework.stereotype.Service; import java.util.Collection; @@ -32,6 +35,7 @@ import java.util.Map; public class TbFloorServiceImpl implements ITbFloorService { private final TbFloorMapper baseMapper; + private final ITbUnitService tbUnitService; /** * 查询楼层 @@ -74,10 +78,9 @@ public class TbFloorServiceImpl implements ITbFloorService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbFloor::getId); - lqw.eq(StringUtils.isNotBlank(bo.getUnitCode()), TbFloor::getUnitCode, bo.getUnitCode()); - lqw.eq(bo.getFloorCode() != null, TbFloor::getFloorCode, bo.getFloorCode()); lqw.like(StringUtils.isNotBlank(bo.getFloorName()), TbFloor::getFloorName, bo.getFloorName()); lqw.eq(bo.getFloorNumber() != null, TbFloor::getFloorNumber, bo.getFloorNumber()); + lqw.eq(bo.getUnitId() != null, TbFloor::getUnitId, bo.getUnitId()); lqw.eq(bo.getFloorType() != null, TbFloor::getFloorType, bo.getFloorType()); lqw.eq(bo.getRoomCount() != null, TbFloor::getRoomCount, bo.getRoomCount()); lqw.eq(bo.getFloorHeight() != null, TbFloor::getFloorHeight, bo.getFloorHeight()); @@ -92,7 +95,12 @@ public class TbFloorServiceImpl implements ITbFloorService { */ @Override public Boolean insertByBo(TbFloorBo bo) { + // 验证单元是否存在 + TbUnitVo tbUnitVo = tbUnitService.queryById(bo.getUnitId()); + Assert.notNull(tbUnitVo, "单元:{},不存在。", bo.getUnitId()); TbFloor add = MapstructUtils.convert(bo, TbFloor.class); + add.setCommunityId(tbUnitVo.getCommunityId()); + add.setBuildingId(tbUnitVo.getBuildingId()); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -137,9 +145,7 @@ public class TbFloorServiceImpl implements ITbFloorService { } @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(TbFloor::getTenantId, tenantId); - return baseMapper.selectVoList(lqw); + public List queryAll() { + return baseMapper.selectVoList(); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbRoomServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbRoomServiceImpl.java index 932024a4..89555f05 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbRoomServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbRoomServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.property.service.impl; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,8 +12,10 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.domain.TbRoom; import org.dromara.property.domain.bo.TbRoomBo; +import org.dromara.property.domain.vo.TbFloorVo; import org.dromara.property.domain.vo.TbRoomVo; import org.dromara.property.mapper.TbRoomMapper; +import org.dromara.property.service.ITbFloorService; import org.dromara.property.service.ITbRoomService; import org.springframework.stereotype.Service; @@ -32,6 +35,7 @@ import java.util.Map; public class TbRoomServiceImpl implements ITbRoomService { private final TbRoomMapper baseMapper; + private final ITbFloorService tbFloorService; /** * 查询房间信息 @@ -74,10 +78,9 @@ public class TbRoomServiceImpl implements ITbRoomService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbRoom::getId); - lqw.eq(StringUtils.isNotBlank(bo.getFloorCode()), TbRoom::getFloorCode, bo.getFloorCode()); - lqw.eq(StringUtils.isNotBlank(bo.getRoomCode()), TbRoom::getRoomCode, bo.getRoomCode()); lqw.eq(StringUtils.isNotBlank(bo.getRoomNumber()), TbRoom::getRoomNumber, bo.getRoomNumber()); lqw.eq(bo.getRoomType() != null, TbRoom::getRoomType, bo.getRoomType()); + lqw.eq(bo.getFloorId() != null, TbRoom::getFloorId, bo.getFloorId()); lqw.eq(bo.getArea() != null, TbRoom::getArea, bo.getArea()); lqw.eq(StringUtils.isNotBlank(bo.getLayout()), TbRoom::getLayout, bo.getLayout()); lqw.eq(bo.getOrientation() != null, TbRoom::getOrientation, bo.getOrientation()); @@ -94,8 +97,12 @@ public class TbRoomServiceImpl implements ITbRoomService { */ @Override public Boolean insertByBo(TbRoomBo bo) { + TbFloorVo tbFloorVo = tbFloorService.queryById(bo.getFloorId()); + Assert.notNull(tbFloorVo, "楼层:{},不存在。", bo.getFloorId()); TbRoom add = MapstructUtils.convert(bo, TbRoom.class); - validEntityBeforeSave(add); + add.setCommunityId(tbFloorVo.getCommunityId()); + add.setBuildingId(tbFloorVo.getBuildingId()); + add.setUnitId(tbFloorVo.getUnitId()); boolean flag = baseMapper.insert(add) > 0; if (flag) { bo.setId(add.getId()); @@ -139,9 +146,7 @@ public class TbRoomServiceImpl implements ITbRoomService { } @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); - lqw.eq(TbRoom::getTenantId, tenantId); - return baseMapper.selectVoList(lqw); + public List queryAll() { + return baseMapper.selectVoList(); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbUnitServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbUnitServiceImpl.java index 37d759ef..cc474ac4 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbUnitServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TbUnitServiceImpl.java @@ -1,5 +1,6 @@ package org.dromara.property.service.impl; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -11,8 +12,10 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.property.domain.TbUnit; import org.dromara.property.domain.bo.TbUnitBo; +import org.dromara.property.domain.vo.TbBuildingVo; import org.dromara.property.domain.vo.TbUnitVo; import org.dromara.property.mapper.TbUnitMapper; +import org.dromara.property.service.ITbBuildingService; import org.dromara.property.service.ITbUnitService; import org.springframework.stereotype.Service; @@ -32,6 +35,7 @@ import java.util.Map; public class TbUnitServiceImpl implements ITbUnitService { private final TbUnitMapper baseMapper; + private final ITbBuildingService buildingService; /** * 查询单元 @@ -74,10 +78,9 @@ public class TbUnitServiceImpl implements ITbUnitService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(TbUnit::getId); - lqw.eq(StringUtils.isNotBlank(bo.getBuildingCode()), TbUnit::getBuildingCode, bo.getBuildingCode()); - lqw.eq(StringUtils.isNotBlank(bo.getUnitCode()), TbUnit::getUnitCode, bo.getUnitCode()); lqw.like(StringUtils.isNotBlank(bo.getUnitName()), TbUnit::getUnitName, bo.getUnitName()); lqw.eq(bo.getFloorCount() != null, TbUnit::getFloorCount, bo.getFloorCount()); + lqw.eq(bo.getBuildingId() != null, TbUnit::getBuildingId, bo.getBuildingId()); lqw.eq(bo.getHouseholdCount() != null, TbUnit::getHouseholdCount, bo.getHouseholdCount()); lqw.eq(bo.getStairCount() != null, TbUnit::getStairCount, bo.getStairCount()); return lqw; @@ -91,7 +94,11 @@ public class TbUnitServiceImpl implements ITbUnitService { */ @Override public Boolean insertByBo(TbUnitBo bo) { + // 检验建筑是否存在 + TbBuildingVo tbBuildingVo = buildingService.queryById(bo.getBuildingId()); + Assert.notNull(tbBuildingVo, "建筑:{},不存在。", bo.getBuildingId()); TbUnit add = MapstructUtils.convert(bo, TbUnit.class); + add.setCommunityId(tbBuildingVo.getCommunityId()); validEntityBeforeSave(add); boolean flag = baseMapper.insert(add) > 0; if (flag) { @@ -136,9 +143,7 @@ public class TbUnitServiceImpl implements ITbUnitService { } @Override - public List queryByTenantId(String tenantId) { - LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery(); - queryWrapper.eq(TbUnit::getTenantId, tenantId); - return baseMapper.selectVoList(queryWrapper); + public List queryAll() { + return baseMapper.selectVoList(); } } diff --git a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TdFactoryServiceImpl.java b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TdFactoryServiceImpl.java index b848bb91..6cd40a47 100644 --- a/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TdFactoryServiceImpl.java +++ b/ruoyi-modules/Property/src/main/java/org/dromara/property/service/impl/TdFactoryServiceImpl.java @@ -76,7 +76,6 @@ public class TdFactoryServiceImpl implements ITdFactoryService { lqw.orderByAsc(TdFactory::getId); lqw.eq(StringUtils.isNotBlank(bo.getFactoryNo()), TdFactory::getFactoryNo, bo.getFactoryNo()); lqw.like(StringUtils.isNotBlank(bo.getFactoryName()), TdFactory::getFactoryName, bo.getFactoryName()); - lqw.eq(bo.getDataState() != null, TdFactory::getDataState, bo.getDataState()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), TdFactory::getSearchValue, bo.getSearchValue()); return lqw; } diff --git a/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderChargeMapper.xml b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderChargeMapper.xml new file mode 100644 index 00000000..493c49a2 --- /dev/null +++ b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderChargeMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderMaintainMapper.xml b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderMaintainMapper.xml new file mode 100644 index 00000000..b9ad899e --- /dev/null +++ b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsOrderMaintainMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsRentalOrderMapper.xml b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsRentalOrderMapper.xml new file mode 100644 index 00000000..71f103e8 --- /dev/null +++ b/ruoyi-modules/Property/src/main/resources/mapper/Property/PlantsRentalOrderMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/Sis/pom.xml b/ruoyi-modules/Sis/pom.xml index f8f3f877..1a005cda 100644 --- a/ruoyi-modules/Sis/pom.xml +++ b/ruoyi-modules/Sis/pom.xml @@ -106,6 +106,10 @@ org.dromara ruoyi-api-workflow + + org.dromara + property-api + diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAccessControlController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAccessControlController.java index b818c26d..41950254 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAccessControlController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAccessControlController.java @@ -1,26 +1,28 @@ package org.dromara.sis.controller; -import java.util.List; - -import lombok.RequiredArgsConstructor; -import jakarta.servlet.http.HttpServletResponse; -import jakarta.validation.constraints.*; import cn.dev33.satoken.annotation.SaCheckPermission; -import org.springframework.web.bind.annotation.*; -import org.springframework.validation.annotation.Validated; -import org.dromara.common.idempotent.annotation.RepeatSubmit; -import org.dromara.common.log.annotation.Log; -import org.dromara.common.web.core.BaseController; -import org.dromara.common.mybatis.core.page.PageQuery; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; import org.dromara.common.core.domain.R; +import org.dromara.common.core.domain.TreeNode; import org.dromara.common.core.validate.AddGroup; import org.dromara.common.core.validate.EditGroup; -import org.dromara.common.log.enums.BusinessType; import org.dromara.common.excel.utils.ExcelUtil; -import org.dromara.sis.domain.vo.SisAccessControlVo; -import org.dromara.sis.domain.bo.SisAccessControlBo; -import org.dromara.sis.service.ISisAccessControlService; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.sis.domain.bo.SisAccessControlBo; +import org.dromara.sis.domain.vo.SisAccessControlVo; +import org.dromara.sis.service.ISisAccessControlService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; /** * 门禁设备 @@ -65,7 +67,7 @@ public class SisAccessControlController extends BaseController { @SaCheckPermission("sis:accessControl:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable("id") Long id) { + @PathVariable("id") Long id) { return R.ok(sisAccessControlService.queryById(id)); } @@ -75,7 +77,7 @@ public class SisAccessControlController extends BaseController { @SaCheckPermission("sis:accessControl:add") @Log(title = "门禁设备", businessType = BusinessType.INSERT) @RepeatSubmit() - @PostMapping() + @PostMapping("add") public R add(@Validated(AddGroup.class) @RequestBody SisAccessControlBo bo) { return toAjax(sisAccessControlService.insertByBo(bo)); } @@ -103,4 +105,16 @@ public class SisAccessControlController extends BaseController { @PathVariable("ids") Long[] ids) { return toAjax(sisAccessControlService.deleteWithValidByIds(List.of(ids), true)); } + + /** + * 生成 社区/建组/单元/楼栋/门禁树结构 + * + * @return 返回门禁树 + */ + @GetMapping("/tree") + public R>> queryAcTree() { + return R.ok(sisAccessControlService.queryAcTree()); + } + + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java new file mode 100644 index 00000000..d7fca73f --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisAuthRecordController.java @@ -0,0 +1,120 @@ +package org.dromara.sis.controller; + +import cn.dev33.satoken.annotation.SaCheckPermission; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.NotNull; +import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.R; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.excel.utils.ExcelUtil; +import org.dromara.common.idempotent.annotation.RepeatSubmit; +import org.dromara.common.log.annotation.Log; +import org.dromara.common.log.enums.BusinessType; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.web.core.BaseController; +import org.dromara.sis.domain.bo.SingleAuthRecordBo; +import org.dromara.sis.domain.bo.SisAuthRecordBo; +import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.sis.service.ISisAuthRecordService; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 授权记录 + * 前端访问路由地址为:/sis/authRecord + * + * @author lsm + * @since 2025-06-28 + */ +@Validated +@RequiredArgsConstructor +@RestController +@RequestMapping("/authRecord") +public class SisAuthRecordController extends BaseController { + + private final ISisAuthRecordService sisAuthRecordService; + + /** + * 查询授权记录列表 + */ + @SaCheckPermission("sis:authRecord:list") + @GetMapping("/list") + public TableDataInfo list(SisAuthRecordBo bo, PageQuery pageQuery) { + return sisAuthRecordService.queryPageList(bo, pageQuery); + } + + /** + * 导出授权记录列表 + */ + @SaCheckPermission("sis:authRecord:export") + @Log(title = "授权记录", businessType = BusinessType.EXPORT) + @PostMapping("/export") + public void export(SisAuthRecordBo bo, HttpServletResponse response) { + List list = sisAuthRecordService.queryList(bo); + ExcelUtil.exportExcel(list, "授权记录", SisAuthRecordVo.class, response); + } + + /** + * 获取授权记录详细信息 + * + * @param id 主键 + */ + @SaCheckPermission("sis:authRecord:query") + @GetMapping("/{id}") + public R getInfo(@NotNull(message = "主键不能为空") + @PathVariable("id") Long id) { + return R.ok(sisAuthRecordService.queryById(id)); + } + + /** + * 新增授权记录 + */ + @SaCheckPermission("sis:authRecord:add") + @Log(title = "授权记录", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/add") + public R add(@Validated(AddGroup.class) @RequestBody SisAuthRecordBo bo) { + return toAjax(sisAuthRecordService.insertByBo(bo)); + } + + /** + * 新增授权记录 + */ + @SaCheckPermission("sis:authRecord:add") + @Log(title = "单个人像授权", businessType = BusinessType.INSERT) + @RepeatSubmit() + @PostMapping("/auth/single") + public R singleAuth(@Validated(AddGroup.class) @RequestBody SingleAuthRecordBo bo) { + return toAjax(sisAuthRecordService.singleAuth(bo)); + } + + + /** + * 修改授权记录 + */ + @SaCheckPermission("sis:authRecord:edit") + @Log(title = "授权记录", businessType = BusinessType.UPDATE) + @RepeatSubmit() + @PutMapping() + public R edit(@Validated(EditGroup.class) @RequestBody SisAuthRecordBo bo) { + return toAjax(sisAuthRecordService.updateByBo(bo)); + } + + /** + * 删除授权记录 + * + * @param ids 主键串 + */ + @SaCheckPermission("sis:authRecord:remove") + @Log(title = "授权记录", businessType = BusinessType.DELETE) + @DeleteMapping("/{ids}") + public R remove(@NotEmpty(message = "主键不能为空") + @PathVariable("ids") Long[] ids) { + return toAjax(sisAuthRecordService.deleteWithValidByIds(List.of(ids), true)); + } +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDeviceManageController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDeviceManageController.java index 1b438c16..2320f961 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDeviceManageController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisDeviceManageController.java @@ -40,7 +40,7 @@ public class SisDeviceManageController extends BaseController { /** * 查询设备管理列表 */ - @SaCheckPermission("system:deviceManage:list") + @SaCheckPermission("sis:deviceManage:list") @GetMapping("/list") public TableDataInfo list(SisDeviceManageBo bo, PageQuery pageQuery) { return sisDeviceManageService.queryPageList(bo, pageQuery); @@ -49,7 +49,7 @@ public class SisDeviceManageController extends BaseController { /** * 导出设备管理列表 */ - @SaCheckPermission("system:deviceManage:export") + @SaCheckPermission("sis:deviceManage:export") @Log(title = "设备管理", businessType = BusinessType.EXPORT) @PostMapping("/export") public void export(SisDeviceManageBo bo, HttpServletResponse response) { @@ -62,7 +62,7 @@ public class SisDeviceManageController extends BaseController { * * @param id 主键 */ - @SaCheckPermission("system:deviceManage:query") + @SaCheckPermission("sis:deviceManage:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) { @@ -72,7 +72,7 @@ public class SisDeviceManageController extends BaseController { /** * 新增设备管理 */ - @SaCheckPermission("system:deviceManage:add") + @SaCheckPermission("sis:deviceManage:add") @Log(title = "设备管理", businessType = BusinessType.INSERT) @RepeatSubmit() @PostMapping() @@ -83,7 +83,7 @@ public class SisDeviceManageController extends BaseController { /** * 修改设备管理 */ - @SaCheckPermission("system:deviceManage:edit") + @SaCheckPermission("sis:deviceManage:edit") @Log(title = "设备管理", businessType = BusinessType.UPDATE) @RepeatSubmit() @PutMapping() @@ -96,7 +96,7 @@ public class SisDeviceManageController extends BaseController { * * @param ids 主键串 */ - @SaCheckPermission("system:deviceManage:remove") + @SaCheckPermission("sis:deviceManage:remove") @Log(title = "设备管理", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public R remove(@NotEmpty(message = "主键不能为空") diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java index 1dcc6d37..a7adc2ba 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibController.java @@ -75,7 +75,7 @@ public class SisPersonLibController extends BaseController { @SaCheckPermission("sis:personLib:add") @Log(title = "人像库", businessType = BusinessType.INSERT) @RepeatSubmit() - @PostMapping() + @PostMapping("add") public R add(@Validated(AddGroup.class) @RequestBody SisPersonLibBo bo) { return toAjax(tbPersonLibService.insertByBo(bo)); } @@ -98,7 +98,7 @@ public class SisPersonLibController extends BaseController { */ @SaCheckPermission("sis:personLib:remove") @Log(title = "人像库", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") + @DeleteMapping("del/{ids}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) { return toAjax(tbPersonLibService.deleteWithValidByIds(List.of(ids), true)); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibImgController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibImgController.java index f4c6bbb8..66905c2a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibImgController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/SisPersonLibImgController.java @@ -27,7 +27,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo; * 前端访问路由地址为:/sis/personLibImg * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Validated @RequiredArgsConstructor @@ -65,7 +65,7 @@ public class SisPersonLibImgController extends BaseController { @SaCheckPermission("sis:personLibImg:query") @GetMapping("/{id}") public R getInfo(@NotNull(message = "主键不能为空") - @PathVariable("id") Long id) { + @PathVariable("id") Long id) { return R.ok(tbPersonLibImgService.queryById(id)); } @@ -75,7 +75,7 @@ public class SisPersonLibImgController extends BaseController { @SaCheckPermission("sis:personLibImg:add") @Log(title = "人像信息", businessType = BusinessType.INSERT) @RepeatSubmit() - @PostMapping() + @PostMapping("add") public R add(@Validated(AddGroup.class) @RequestBody SisPersonLibImgBo bo) { return toAjax(tbPersonLibImgService.insertByBo(bo)); } @@ -98,7 +98,7 @@ public class SisPersonLibImgController extends BaseController { */ @SaCheckPermission("sis:personLibImg:remove") @Log(title = "人像信息", businessType = BusinessType.DELETE) - @DeleteMapping("/{ids}") + @DeleteMapping("del/{ids}") public R remove(@NotEmpty(message = "主键不能为空") @PathVariable("ids") Long[] ids) { return toAjax(tbPersonLibImgService.deleteWithValidByIds(List.of(ids), true)); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/VideoAlarmController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/VideoAlarmController.java index a38b9ed9..73ab4dce 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/VideoAlarmController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/VideoAlarmController.java @@ -7,6 +7,7 @@ import org.dromara.sis.sdk.unview.model.UvModel; import org.dromara.sis.sdk.unview.service.VideoAlarmService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; /** @@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.RestController; */ @RestController @RequiredArgsConstructor +@RequestMapping("/uniview") public class VideoAlarmController { @Resource diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/AccessControlController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/AccessControlController.java index 1b35a4b7..de96e188 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/AccessControlController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/AccessControlController.java @@ -5,10 +5,10 @@ import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.domain.R; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.sdk.e8.AccessControlService; +import org.dromara.sis.sdk.e8.domain.QueryDto; import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq; import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq; import org.dromara.sis.sdk.e8.domain.accessControl.res.AccessRecordFindRes; -import org.dromara.sis.sdk.e8.domain.QueryDto; import org.dromara.sis.sdk.e8.domain.accessControl.res.CustomerAuthFindRes; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/VoucherControlController.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/VoucherControlController.java index 5b1ad5ad..dc12c600 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/VoucherControlController.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/controller/e8/VoucherControlController.java @@ -35,9 +35,9 @@ public class VoucherControlController { public R issueVoucher(@RequestBody IssueVoucherReq req) { log.info("E8发行凭证入参:{}", req); - Boolean flag = voucherControlService.issueVoucher(req); + Long flag = voucherControlService.issueVoucher(req); - if (flag) { + if (flag != null) { return R.ok(); } else { return R.fail("E8发行凭证,调用失败!"); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java index 0b51fa9f..74491b7d 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControl.java @@ -1,9 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; @@ -40,12 +41,22 @@ public class SisAccessControl extends TenantEntity { /** * 园区编码 */ - private String communityCode; + private Long communityId; /** * 建筑编码 */ - private String buildingCode; + private Long buildingId; + + /** + * 园区编码 + */ + private Long unitId; + + /** + * 建筑编码 + */ + private Long floorId; /** * 门禁设备ip @@ -55,12 +66,12 @@ public class SisAccessControl extends TenantEntity { /** * */ - private Long accessPort; + private Integer accessPort; /** * 门禁设备类型 */ - private Long accessType; + private Integer accessType; /** * @@ -70,7 +81,7 @@ public class SisAccessControl extends TenantEntity { /** * 控制卡类型:1-系统,2-E8 */ - private Long controlType; + private Integer controlType; /** * 控制卡类型编码 @@ -83,14 +94,14 @@ public class SisAccessControl extends TenantEntity { private String outCode; /** - * 组织编码 + * 绑定设备id */ - private String orgCode; + private Long bindDeviceId; /** - * 搜索值 + * 绑定设备ip */ - private String searchValue; + private String bindDeviceIp; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControlDevice.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControlDevice.java index 50b62d4a..44b5a1a7 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControlDevice.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAccessControlDevice.java @@ -60,7 +60,7 @@ public class SisAccessControlDevice extends TenantEntity { /** * 设备端口 */ - private Long eqpPort; + private Integer eqpPort; /** * 设备账号 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java new file mode 100644 index 00000000..04794110 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisAuthRecord.java @@ -0,0 +1,66 @@ +package org.dromara.sis.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * 授权记录对象 sis_auth_record + * + * @author lsm + * @since 2025-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sis_auth_record") +public class SisAuthRecord extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @TableId(value = "id") + private Long id; + + /** + * 图像库id + */ + private Long libId; + + /** + * 图片id + */ + private Long imgId; + + /** + * 门禁id + */ + private Long acId; + + /** + * 设备id + */ + private Long eqbId; + + /** + * E8权限ID + */ + private Long remoteAuthId; + + /* + 门id + */ + private Long doorId; + + /** + * 设备id + */ + private Long deviceId; + + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java index 8b5e1dac..09015a2a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDeviceManage.java @@ -1,9 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serial; @@ -27,11 +28,6 @@ public class SisDeviceManage extends BaseEntity { @TableId(value = "id") private Long id; - /** - * 设备编码 - */ - private String deviceNo; - /** * 设备名称 */ @@ -55,7 +51,7 @@ public class SisDeviceManage extends BaseEntity { /** * 设备在线状态 0:离线 1:在线 2:未知 */ - private Long deviceStatus; + private Integer deviceStatus; /** * 父级设备id @@ -70,12 +66,37 @@ public class SisDeviceManage extends BaseEntity { /** * 录像机端口 */ - private Long vcrPort; + private Integer vcrPort; /** * 门禁id */ private Long accessControlId; + /** + * 设备账号 + */ + private String deviceAccount; + + /** + * 设备密码 + */ + private String devicePwd; + + /** + * 录像机账号 + */ + private String vcrAccount; + + /** + * 录像机密码 + */ + private String vcrPwd; + + /** + * 设备在录像机的通道编码 + */ + private String channelNo; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDevicePoint.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDevicePoint.java index 3d44867b..e77ff14a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDevicePoint.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisDevicePoint.java @@ -35,12 +35,12 @@ public class SisDevicePoint extends TenantEntity { /** * 视频协议 1:onvif 2:rtsp */ - private Long video; + private Integer video; /** * 传输协议(AIBOX 需要,一体机不需要) 1: tcp 2:udp */ - private Long transportType; + private Integer transportType; /** * 点位名称 @@ -60,7 +60,7 @@ public class SisDevicePoint extends TenantEntity { /** * 端口 */ - private Long port; + private Integer port; /** * 通道相机账号 @@ -75,7 +75,7 @@ public class SisDevicePoint extends TenantEntity { /** * onvif 设备码流添加方式:1:主码流 2:自定义码流 */ - private Long videoType; + private Integer videoType; /** * 码流 id:当选择自定义码流时,该字段必填, diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisEEightRef.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisEEightRef.java new file mode 100644 index 00000000..e3c3dead --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisEEightRef.java @@ -0,0 +1,69 @@ +package org.dromara.sis.domain; + +import org.dromara.common.tenant.core.TenantEntity; +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import java.io.Serial; + +/** + * E8平台对应关系对象 sis_e_eight_ref + * + * @author lsm + * @date 2025-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@TableName("sis_e_eight_ref") +public class SisEEightRef extends TenantEntity { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id") + private Long id; + + /** + * 系统用户ID + */ + private Long userId; + + /** + * 门禁id,逗号分隔 + */ + private String acId; + + /** + * 图片id + */ + private Long imgId; + + /** + * 物理卡no + */ + private String cardNo; + + /** + * E8用户ID + */ + private Long remoteUserId; + + /** + * E8图片URL + */ + private String remoteImgUrl; + + /** + * E8凭证ID + */ + private Long remoteVoucherId; + + /** + * E8权限ID + */ + private Long remoteAuthId; +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java index 292c40bd..da57319d 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceImgRef.java @@ -28,19 +28,19 @@ public class SisLibDeviceImgRef extends TenantEntity { private Long id; /** - * 库编码 + * 库Id */ - private String libCode; + private Long libId; /** - * 图片编码 + * 图片Id */ - private String imgCode; + private Long imgId; /** - * 设备编码 + * 设备Id */ - private String eqpCode; + private Long eqpId; /** * 设备库id diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java index ebb9fb20..610c61c4 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisLibDeviceRef.java @@ -12,7 +12,7 @@ import java.io.Serial; * 系统库与设备库的关联对象 tb_lib_device_ref * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Data @EqualsAndHashCode(callSuper = true) @@ -29,24 +29,29 @@ public class SisLibDeviceRef extends TenantEntity { private Long id; /** - * 人员库编码 + * 库Id */ private Long libId; /** - * 设备编码 + * 设备Id */ private Long eqpId; /** * 设备上的库id */ - private Long eqpLibCode; + private Long eqpLibId; + + /** + * 设备上的库类型 + */ + private Integer eqpLibType; /** * 第三方设备库添加状态 1: 成功,2:失败 */ - private Long eqpLibState; + private Integer eqpLibState; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java index 36b4ea41..566e8a81 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLib.java @@ -1,9 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.tenant.core.TenantEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.tenant.core.TenantEntity; import java.io.Serial; @@ -27,11 +28,6 @@ public class SisPersonLib extends TenantEntity { @TableId(value = "id") private Long id; - /** - * 人员库编码 - */ - private String libCode; - /** * 人员库名称 */ @@ -45,12 +41,10 @@ public class SisPersonLib extends TenantEntity { /** * 库类型,1:人员库,2:工服库 */ - private Long libType; + private Integer libType; /** * 库的业务类型 1: 门禁库,2: 黑名单库 */ - private Long busiType; - - + private Integer busiType; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java index f584aa95..0332d134 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/SisPersonLibImg.java @@ -31,28 +31,22 @@ public class SisPersonLibImg extends TenantEntity { /** * 人员库编码 */ - private String libCode; + private Long libId; /** * 人像名称 */ private String imgName; - /** - * 图片编码 - */ - private String imgCode; - /** * 图片的存储地址 */ private String imgUrl; /** - * 性别 1:男 -2:女 99:未说明 + * 性别 1:男 2:女 99:未说明 */ - private Long sex; + private Integer sex; /** * 邮箱 @@ -65,11 +59,9 @@ public class SisPersonLibImg extends TenantEntity { private String tel; /** - * 证件类型 -1:身份证 2:护照 -3:行驶证 99:其它 + * 证件类型 1:身份证 2:护照3:行驶证 99:其它 */ - private Long certificateType; + private Integer certificateType; /** * 证件号码 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdFactory.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdFactory.java index a67d4104..e72a2927 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdFactory.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdFactory.java @@ -1,10 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; -import java.util.Date; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serial; @@ -43,15 +43,5 @@ public class TdFactory extends BaseEntity { */ private String remark; - /** - * 数据状态:1有效,0无效 - */ - private Long dataState; - - /** - * 修改时间 - */ - private Date modifyTime; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeter.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeter.java index b5378d7b..45618bfc 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeter.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeter.java @@ -46,12 +46,12 @@ public class TdMeter extends BaseEntity { /** * 设备类型(1-电表,2-水表,3-气表) */ - private Long meterType; + private Integer meterType; /** * 表用途(1-分表,2-总表,3-公摊表) */ - private Long meterPurpose; + private Integer meterPurpose; /** * 分摊类型 @@ -61,12 +61,12 @@ public class TdMeter extends BaseEntity { * 4-按房源数量 * 5-按固定比例 */ - private Long shareType; + private Integer shareType; /** * 付费类型(1-先付费,2-后付费) */ - private Long payType; + private Integer payType; /** * 当前表显示读数 @@ -91,12 +91,12 @@ public class TdMeter extends BaseEntity { /** * 通信状态 */ - private Long communicationState; + private Integer communicationState; /** * 运行状态 */ - private Long runningState; + private Integer runningState; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterConfig.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterConfig.java index 4e8e275c..221f0be7 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterConfig.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterConfig.java @@ -30,27 +30,27 @@ public class TdMeterConfig extends BaseEntity { /** * 设备类型(1-电表,2-水表,3-气表) */ - private Long meterType; + private Integer meterType; /** * 付费类型(1-先付费,2-后付费) */ - private Long payType; + private Integer payType; /** * 欠费是否断电/水/气(0-是,1-否) */ - private Long arrearsOutage; + private Integer arrearsOutage; /** * 后付费模式下是否自动断电/水/气(0-是,1-否) */ - private Long autoOutage; + private Integer autoOutage; /** * 当auto_outage=0的时候生效,逾期多少天自动断水/电/气 */ - private Long overdueDay; + private Integer overdueDay; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterRoom.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterRoom.java index f62aeb04..ff13e5e3 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterRoom.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/TdMeterRoom.java @@ -1,9 +1,10 @@ package org.dromara.sis.domain; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import lombok.EqualsAndHashCode; +import org.dromara.common.mybatis.core.domain.BaseEntity; import java.io.Serial; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/AccessControlLibDeviceBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/AccessControlLibDeviceBo.java new file mode 100644 index 00000000..a39a7208 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/AccessControlLibDeviceBo.java @@ -0,0 +1,21 @@ +package org.dromara.sis.domain.bo; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + * 门禁控制设备和库关联的对象 + * + * @author lxj + */ +@EqualsAndHashCode(callSuper = true) +@Data +public class AccessControlLibDeviceBo extends SisAccessControlDeviceBo { + + private Integer eqpLibId; + + private Integer eqpLibType; + + private Long libId; + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SingleAuthRecordBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SingleAuthRecordBo.java new file mode 100644 index 00000000..9c71ee8b --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SingleAuthRecordBo.java @@ -0,0 +1,44 @@ +package org.dromara.sis.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.sis.domain.SisAuthRecord; + +import java.util.List; + +/** + * 授权记录业务对象 sis_auth_record + * + * @author lxj + * @since 2025-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SisAuthRecord.class, reverseConvertGenerate = false) +public class SingleAuthRecordBo extends BaseEntity { + + + /** + * 图像库Id + */ + @NotNull(message = "图像库Id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long libId; + + /** + * 图像id列表 + */ + @NotNull(message = "图像id列表不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long imgId; + + /** + * 门禁id列表 + */ + @NotNull(message = "门禁id列表能为空", groups = {AddGroup.class, EditGroup.class}) + private List acIds; + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlBo.java index 1b357c45..4e7fe717 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlBo.java @@ -1,19 +1,20 @@ package org.dromara.sis.domain.bo; -import org.dromara.sis.domain.SisAccessControl; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.sis.domain.SisAccessControl; /** * 门禁设备业务对象 sis_access_control * * @author lxj - * @since 2025-06-25 + * @since 2025-06-25 */ @Data @EqualsAndHashCode(callSuper = true) @@ -23,61 +24,69 @@ public class SisAccessControlBo extends BaseEntity { /** * */ - @NotNull(message = "不能为空", groups = { EditGroup.class }) + @NotNull(message = "不能为空", groups = {EditGroup.class}) private Long id; /** * 门禁设备编码 */ - @NotBlank(message = "门禁设备编码不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "门禁设备编码不能为空", groups = {AddGroup.class, EditGroup.class}) private String accessCode; /** * 门禁名称 */ - @NotBlank(message = "门禁名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "门禁名称不能为空", groups = {AddGroup.class, EditGroup.class}) private String accessName; /** * 园区编码 */ - @NotBlank(message = "园区编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String communityCode; + private Long communityId; /** * 建筑编码 */ - @NotBlank(message = "建筑编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String buildingCode; + private Long buildingId; + + /** + * 园区编码 + */ + private Long unitId; + + /** + * 建筑编码 + */ + private Long floorId; /** * 门禁设备ip */ - @NotBlank(message = "门禁设备ip不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "门禁设备ip不能为空", groups = {AddGroup.class, EditGroup.class}) private String accessIp; /** * */ - @NotNull(message = "不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long accessPort; + @NotNull(message = "不能为空", groups = {AddGroup.class, EditGroup.class}) + private Integer accessPort; /** * 门禁设备类型 */ - @NotNull(message = "门禁设备类型不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "门禁设备类型不能为空", groups = {AddGroup.class, EditGroup.class}) private Long accessType; /** * */ - @NotBlank(message = "不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "不能为空", groups = {AddGroup.class, EditGroup.class}) private String factoryCode; /** * 控制卡类型:1-系统,2-E8 */ - @NotNull(message = "控制卡类型:1-系统,2-E8不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotNull(message = "控制卡类型:1-系统,2-E8不能为空", groups = {AddGroup.class, EditGroup.class}) private Long controlType; /** @@ -90,26 +99,14 @@ public class SisAccessControlBo extends BaseEntity { */ private String outCode; - /** - * 组织编码 - */ - @NotBlank(message = "组织编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String orgCode; - - /** - * 数据状态:1有效,0无效 - */ - @NotNull(message = "数据状态:1有效,0无效不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long dataState; - - /** - * 搜索值 - */ - private String searchValue; - /** * 绑定设备Id */ - private Long deviceId; + private Long bindDeviceId; + + /** + * 绑定设备ip + */ + private String bindDeviceIp; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlDeviceBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlDeviceBo.java index c8fe4a0d..a2b729d0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlDeviceBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAccessControlDeviceBo.java @@ -41,12 +41,12 @@ public class SisAccessControlDeviceBo extends BaseEntity { /** * 设备类型 */ - private Long eqpType; + private Integer eqpType; /** * 接入类型(1: 平台接入,2:设备接入) */ - private Long accessType; + private Integer accessType; /** * 设备ip @@ -58,7 +58,7 @@ public class SisAccessControlDeviceBo extends BaseEntity { * 设备端口 */ @NotNull(message = "设备端口不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long eqpPort; + private Integer eqpPort; /** * 设备账号 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java new file mode 100644 index 00000000..053bdc05 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisAuthRecordBo.java @@ -0,0 +1,42 @@ +package org.dromara.sis.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.sis.domain.SisAuthRecord; + +import java.util.List; + +/** + * 授权记录业务对象 sis_auth_record + * + * @author lsm + * @since 2025-06-28 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SisAuthRecord.class, reverseConvertGenerate = false) +public class SisAuthRecordBo extends BaseEntity { + + /** + * 图像库Id + */ + @NotNull(message = "图像库Id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long libId; + + /** + * 图像id列表 + */ + @NotNull(message = "图像id列表不能为空", groups = {AddGroup.class, EditGroup.class}) + private List imgIds; + + /** + * 门禁id列表 + */ + @NotNull(message = "门禁id列表能为空", groups = {AddGroup.class, EditGroup.class}) + private List acIds; +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java index 57ddffe7..7ae514ec 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDeviceManageBo.java @@ -1,13 +1,14 @@ package org.dromara.sis.domain.bo; -import org.dromara.sis.domain.SisDeviceManage; -import org.dromara.common.mybatis.core.domain.BaseEntity; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import jakarta.validation.constraints.*; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.sis.domain.SisDeviceManage; /** * 设备管理业务对象 sis_device_manage @@ -26,12 +27,6 @@ public class SisDeviceManageBo extends BaseEntity { @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) private Long id; - /** - * 设备编码 - */ - @NotBlank(message = "设备编码不能为空", groups = {AddGroup.class, EditGroup.class}) - private String deviceNo; - /** * 设备名称 */ @@ -48,22 +43,17 @@ public class SisDeviceManageBo extends BaseEntity { * 设备端口 */ @NotNull(message = "设备端口不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long devicePort; + private Integer devicePort; /** * 设备 */ private String deviceMac; - /** - * 设备在线状态 0:离线 1:在线 2:未知 - */ - private Long deviceStatus; - /** * 父级设备id */ - @NotNull(message = "父级设备id不能为空", groups = {AddGroup.class, EditGroup.class}) +// @NotNull(message = "父级设备id不能为空", groups = {AddGroup.class, EditGroup.class}) private Long parentId; /** @@ -81,5 +71,32 @@ public class SisDeviceManageBo extends BaseEntity { */ private Long accessControlId; + /** + * 设备账号 + */ + @NotBlank(message = "设备账号不能为空", groups = {AddGroup.class, EditGroup.class}) + private String deviceAccount; + + /** + * 设备密码 + */ + @NotBlank(message = "设备密码不能为空", groups = {AddGroup.class, EditGroup.class}) + private String devicePwd; + + /** + * 录像机账号 + */ + private String vcrAccount; + + /** + * 录像机密码 + */ + private String vcrPwd; + + /** + * 设备在录像机的通道编码 + */ + private String channelNo; + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDevicePointBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDevicePointBo.java index c18cab5d..0d796e4c 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDevicePointBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisDevicePointBo.java @@ -36,14 +36,14 @@ public class SisDevicePointBo extends BaseEntity { * 视频协议 1:onvif 2: rtsp */ - private Long video; + private Integer video; /** * 传输协议(AIBOX 需要,一 -体机不需要) 1: tcp 2: +体机不需要) 1: tcp 2: udp */ - private Long transportType; + private Integer transportType; /** * 点位名称 @@ -64,7 +64,7 @@ rtsp 时,该字段必填) /** * 端口 */ - private Long port; + private Integer port; /** * 通道相机账号 @@ -81,7 +81,7 @@ rtsp 时,该字段必填) 式:1:主码流 2:自定 义码流 */ - private Long videoType; + private Integer videoType; /** * 码流 id:当选择自定义码 @@ -89,22 +89,6 @@ rtsp 时,该字段必填) 获取设备码流信息接口返 回的码流 id */ - private Long videoId; - - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - + private Integer videoId; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisEEightRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisEEightRefBo.java new file mode 100644 index 00000000..fcf80fc9 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisEEightRefBo.java @@ -0,0 +1,70 @@ +package org.dromara.sis.domain.bo; + +import io.github.linpeilie.annotations.AutoMapper; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import org.dromara.common.mybatis.core.domain.BaseEntity; +import org.dromara.sis.domain.SisEEightRef; + +import java.util.List; + +/** + * E8平台对应关系业务对象 sis_e_eight_ref + * + * @author lsm + * @date 2025-06-29 + */ +@Data +@EqualsAndHashCode(callSuper = true) +@AutoMapper(target = SisEEightRef.class, reverseConvertGenerate = false) +public class SisEEightRefBo extends BaseEntity { + + /** + * 主键 + */ + @NotNull(message = "主键不能为空", groups = {EditGroup.class}) + private Long id; + + /** + * 系统用户ID + */ + @NotNull(message = "系统用户ID不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long userId; + + /** + * 门禁id列表 + */ + @NotBlank(message = "门禁id列表不能为空", groups = {AddGroup.class, EditGroup.class}) + private List acIds; + + /** + * 图片id + */ + private Long imgId; + + /** + * 物理卡no + */ + private String cardNo; + + /** + * E8用户ID + */ + @NotNull(message = "E8用户ID不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long remoteUserId; + + /** + * E8图片URL + */ + private String remoteImgUrl; + + /** + * E8凭证ID + */ + private Long remoteVoucherId; + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java index 4a3fd114..1d05bf2a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceImgRefBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 系统图片和设备图片的关联业务对象 tb_lib_device_img_ref * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Data @EqualsAndHashCode(callSuper = true) @@ -29,20 +29,20 @@ public class SisLibDeviceImgRefBo extends BaseEntity { /** * 库编码 */ - @NotBlank(message = "库编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String libCode; + @NotNull(message = "库Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long libId; /** - * 图片编码 + * 图片Id */ - @NotBlank(message = "图片编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String imgCode; + @NotNull(message = "图片Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long imgId; /** * 设备编码 */ - @NotBlank(message = "设备编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String eqpCode; + @NotNull(message = "设备Id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long eqpId; /** * 设备库id @@ -56,20 +56,4 @@ public class SisLibDeviceImgRefBo extends BaseEntity { @NotNull(message = "设备库图片id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long eqpLibImgId; - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java index 68c9d890..669701a1 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisLibDeviceRefBo.java @@ -1,14 +1,13 @@ package org.dromara.sis.domain.bo; import io.github.linpeilie.annotations.AutoMapper; -import jakarta.validation.constraints.NotBlank; -import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.EqualsAndHashCode; -import org.dromara.common.core.validate.AddGroup; -import org.dromara.common.core.validate.EditGroup; import org.dromara.common.mybatis.core.domain.BaseEntity; import org.dromara.sis.domain.SisLibDeviceRef; +import org.dromara.common.core.validate.AddGroup; +import org.dromara.common.core.validate.EditGroup; +import jakarta.validation.constraints.*; /** * 系统库与设备库的关联业务对象 tb_lib_device_ref @@ -24,47 +23,31 @@ public class SisLibDeviceRefBo extends BaseEntity { /** * 主键id */ - @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) + @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) private Long id; /** * 人员库编码 */ - @NotBlank(message = "人员库id不能为空", groups = {AddGroup.class, EditGroup.class}) + @NotNull(message = "库Id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long libId; /** * 设备编码 */ - @NotBlank(message = "设备id不能为空", groups = {AddGroup.class, EditGroup.class}) + @NotNull(message = "设备Id不能为空", groups = { AddGroup.class, EditGroup.class }) private Long eqpId; /** * 设备上的库id */ - @NotNull(message = "设备上的库id不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long eqpLibCode; + @NotNull(message = "设备上的库id不能为空", groups = { AddGroup.class, EditGroup.class }) + private Long eqpLibId; /** * 第三方设备库添加状态 1: 成功,2:失败 */ - @NotNull(message = "第三方设备库添加状态 1: 成功,2:失败不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long eqpLibState; - - /** - * 创建人id - */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - + @NotNull(message = "第三方设备库添加状态 1: 成功,2:失败不能为空", groups = { AddGroup.class, EditGroup.class }) + private Integer eqpLibState; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java index 67681060..472e76a0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibBo.java @@ -18,7 +18,7 @@ import java.util.List; * 人像库业务对象 tb_person_lib * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Data @EqualsAndHashCode(callSuper = true) @@ -30,9 +30,6 @@ public class SisPersonLibBo extends BaseEntity { */ @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) private Long id; - - private String libCode; - /** * 人员库名称 */ @@ -42,7 +39,7 @@ public class SisPersonLibBo extends BaseEntity { /** * 设备编码,需要同步创建到设备中 */ - @NotBlank(message = "人像设备不能为空", groups = {AddGroup.class, EditGroup.class}) + @NotNull(message = "人像设备不能为空", groups = {AddGroup.class, EditGroup.class}) private List eqpIds; /** @@ -53,7 +50,7 @@ public class SisPersonLibBo extends BaseEntity { /** * 库类型,1:人员库,2:工服库 */ - private Long libType; + private Integer libType; /** * 库类型名称 @@ -61,11 +58,15 @@ public class SisPersonLibBo extends BaseEntity { @Translation(type = TransConstant.DICT_TYPE_TO_LABEL, mapper = "libType", other = "sis_lib_type") private String libTypeName; - /** * 库的业务类型 1: 门禁库,2: 黑名单库 */ - private Long busiType = 1L; + private Integer busiType = 1; + + /** + * 门禁设备id + */ + private Long eqbId; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java index 3aaa337d..fb586c11 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/SisPersonLibImgBo.java @@ -13,7 +13,7 @@ import jakarta.validation.constraints.*; * 人像信息业务对象 tb_person_lib_img * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Data @EqualsAndHashCode(callSuper = true) @@ -23,37 +23,31 @@ public class SisPersonLibImgBo extends BaseEntity { /** * 主键id */ - @NotNull(message = "主键id不能为空", groups = { EditGroup.class }) + @NotNull(message = "主键id不能为空", groups = {EditGroup.class}) private Long id; /** * 人员库编码 */ - @NotBlank(message = "人员库编码不能为空", groups = { AddGroup.class, EditGroup.class }) - private String libCode; + @NotNull(message = "人像库id不能为空", groups = {AddGroup.class, EditGroup.class}) + private Long libId; /** * 人像名称 */ - @NotBlank(message = "人像名称不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "人像名称不能为空", groups = {AddGroup.class, EditGroup.class}) private String imgName; - /** - * 图片编码 - */ - private String imgCode; - /** * 图片的存储地址 */ - @NotBlank(message = "图片的存储地址不能为空", groups = { AddGroup.class, EditGroup.class }) + @NotBlank(message = "图片的存储地址不能为空", groups = {AddGroup.class, EditGroup.class}) private String imgUrl; /** - * 性别 1:男 -2:女 99:未说明 + * 性别 1:男2:女 99:未说明 */ - private Long sex; + private Integer sex; /** * 邮箱 @@ -66,11 +60,9 @@ public class SisPersonLibImgBo extends BaseEntity { private String tel; /** - * 证件类型 -1:身份证 2:护照 -3:行驶证 99:其它 + * 证件类型、1:身份证 2:护照、3:行驶证 99:其它 */ - private Long certificateType; + private Integer certificateType; /** * 证件号码 @@ -83,19 +75,8 @@ public class SisPersonLibImgBo extends BaseEntity { private String birthDate; /** - * 创建人id + * 同步E8 */ - private Long createById; - - /** - * 更新人id - */ - private Long updateById; - - /** - * 搜索值 - */ - private String searchValue; - + private Boolean isSyncE8; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdFactoryBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdFactoryBo.java index 2cd84c79..c26c2304 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdFactoryBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdFactoryBo.java @@ -43,12 +43,4 @@ public class TdFactoryBo extends BaseEntity { * 备注 */ private String remark; - - /** - * 数据状态:1有效,0无效 - */ - @NotNull(message = "数据状态:1有效,0无效不能为空", groups = {AddGroup.class, EditGroup.class}) - private Long dataState; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterBo.java index 376bf344..fba940f0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterBo.java @@ -49,12 +49,12 @@ public class TdMeterBo extends BaseEntity { /** * 设备类型(1-电表,2-水表,3-气表) */ - private Long meterType; + private Integer meterType; /** * 表用途(1-分表,2-总表,3-公摊表) */ - private Long meterPurpose; + private Integer meterPurpose; /** * 分摊类型 @@ -64,17 +64,17 @@ public class TdMeterBo extends BaseEntity { * 4-按房源数量 * 5-按固定比例 */ - private Long shareType; + private Integer shareType; /** * 付费类型(1-先付费,2-后付费) */ - private Long payType; + private Integer payType; /** * 最大表显读数(超过归0) */ - private Long maxDisplay; + private Integer maxDisplay; /** * 计费倍率 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterConfigBo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterConfigBo.java index 13b52169..5c12b794 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterConfigBo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/bo/TdMeterConfigBo.java @@ -29,31 +29,31 @@ public class TdMeterConfigBo extends BaseEntity { /** * 设备类型(1-电表,2-水表,3-气表) */ - private Long meterType; + private Integer meterType; /** * 付费类型(1-先付费,2-后付费) */ @NotNull(message = "付费类型(1-先付费,2-后付费)不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long payType; + private Integer payType; /** * 欠费是否断电/水/气(0-是,1-否) */ @NotNull(message = "欠费是否断电/水/气(0-是,1-否)不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long arrearsOutage; + private Integer arrearsOutage; /** * 后付费模式下是否自动断电/水/气(0-是,1-否) */ @NotNull(message = "后付费模式下是否自动断电/水/气(0-是,1-否)不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long autoOutage; + private Integer autoOutage; /** * 当auto_outage=0的时候生效,逾期多少天自动断水/电/气 */ @NotNull(message = "当auto_outage=0的时候生效,逾期多少天自动断水/电/气不能为空", groups = { AddGroup.class, EditGroup.class }) - private Long overdueDay; + private Integer overdueDay; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java index fd567768..6913aac6 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlDeviceVo.java @@ -76,7 +76,7 @@ public class SisAccessControlDeviceVo implements Serializable { * 设备端口 */ @ExcelProperty(value = "设备端口") - private Long eqpPort; + private Integer eqpPort; /** * 设备账号 @@ -90,23 +90,5 @@ public class SisAccessControlDeviceVo implements Serializable { @ExcelProperty(value = "设备密码") private String eqpPwd; - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlVo.java index 866e6b60..553a6c32 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAccessControlVo.java @@ -3,14 +3,11 @@ package org.dromara.sis.domain.vo; import org.dromara.sis.domain.SisAccessControl; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; -import org.dromara.common.excel.annotation.ExcelDictFormat; -import org.dromara.common.excel.convert.ExcelDictConvert; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; import java.io.Serial; import java.io.Serializable; -import java.util.Date; @@ -18,7 +15,7 @@ import java.util.Date; * 门禁设备视图对象 sis_access_control * * @author lxj - * @date 2025-06-25 + * @since 2025-06-25 */ @Data @ExcelIgnoreUnannotated @@ -29,7 +26,7 @@ public class SisAccessControlVo implements Serializable { private static final long serialVersionUID = 1L; /** - * + * */ @ExcelProperty(value = "") private Long id; @@ -49,14 +46,22 @@ public class SisAccessControlVo implements Serializable { /** * 园区编码 */ - @ExcelProperty(value = "园区编码") - private String communityCode; + private Long communityId; /** * 建筑编码 */ - @ExcelProperty(value = "建筑编码") - private String buildingCode; + private Long buildingId; + + /** + * 园区编码 + */ + private Long unitId; + + /** + * 建筑编码 + */ + private Long floorId; /** * 门禁设备ip @@ -65,19 +70,19 @@ public class SisAccessControlVo implements Serializable { private String accessIp; /** - * + * */ @ExcelProperty(value = "") - private Long accessPort; + private Integer accessPort; /** * 门禁设备类型 */ @ExcelProperty(value = "门禁设备类型") - private Long accessType; + private Integer accessType; /** - * + * */ @ExcelProperty(value = "") private String factoryCode; @@ -86,7 +91,7 @@ public class SisAccessControlVo implements Serializable { * 控制卡类型:1-系统,2-E8 */ @ExcelProperty(value = "控制卡类型:1-系统,2-E8") - private Long controlType; + private Integer controlType; /** * 控制卡类型编码 @@ -100,23 +105,11 @@ public class SisAccessControlVo implements Serializable { @ExcelProperty(value = "外部编码") private String outCode; - /** - * 组织编码 - */ - @ExcelProperty(value = "组织编码") - private String orgCode; + private Long bindDeviceId; /** - * 数据状态:1有效,0无效 + * 绑定设备ip */ - @ExcelProperty(value = "数据状态:1有效,0无效") - private Long dataState; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - + private String bindDeviceIp; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java new file mode 100644 index 00000000..07a231a9 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisAuthRecordVo.java @@ -0,0 +1,72 @@ +package org.dromara.sis.domain.vo; + +import org.dromara.sis.domain.SisAuthRecord; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.List; + + +/** + * 授权记录视图对象 sis_auth_record + * + * @author lsm + * @since 2025-06-28 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SisAuthRecord.class) +public class SisAuthRecordVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键id + */ + @ExcelProperty(value = "主键id") + private Long id; + + /** + * 图像库Id + */ + @ExcelProperty(value = "图像库Id") + private Long libId; + + /** + * 人像id + */ + @ExcelProperty(value = "人像id") + private Long imgId; + + /** + * 门禁id + */ + @ExcelProperty(value = "门禁id") + private Long acId; + + /** + * 设备id + */ + @ExcelProperty(value = "设备id") + private Long eqbId; + + /** + * E8权限ID + */ + private Long remoteAuthId; + + /* + 门id + */ + private Long doorId; + + /** + * 设备id + */ + private Long deviceId; +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java index 1c8d099a..7b4c4ea5 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDeviceManageVo.java @@ -31,12 +31,6 @@ public class SisDeviceManageVo implements Serializable { @ExcelProperty(value = "主键id") private Long id; - /** - * 设备编码 - */ - @ExcelProperty(value = "设备编码") - private String deviceNo; - /** * 设备名称 */ @@ -53,7 +47,7 @@ public class SisDeviceManageVo implements Serializable { * 设备端口 */ @ExcelProperty(value = "设备端口") - private Long devicePort; + private Integer devicePort; /** * 设备 @@ -61,12 +55,6 @@ public class SisDeviceManageVo implements Serializable { @ExcelProperty(value = "设备") private String deviceMac; - /** - * 设备在线状态 0:离线 1:在线 2:未知 - */ - @ExcelProperty(value = "设备在线状态 0:离线 1:在线 2:未知") - private Long deviceStatus; - /** * 父级设备id */ @@ -83,7 +71,7 @@ public class SisDeviceManageVo implements Serializable { * 录像机端口 */ @ExcelProperty(value = "录像机端口") - private Long vcrPort; + private Integer vcrPort; /** * 门禁id @@ -91,5 +79,29 @@ public class SisDeviceManageVo implements Serializable { @ExcelProperty(value = "门禁id") private Long accessControlId; + /** + * 设备账号 + */ + private String deviceAccount; + + /** + * 设备密码 + */ + private String devicePwd; + + /** + * 录像机账号 + */ + private String vcrAccount; + + /** + * 录像机密码 + */ + private String vcrPwd; + + /** + * 设备在录像机的通道编码 + */ + private String channelNo; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDevicePointVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDevicePointVo.java index c1b0eb52..a453e8d3 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDevicePointVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisDevicePointVo.java @@ -43,7 +43,7 @@ public class SisDevicePointVo implements Serializable { * rtsp */ @ExcelProperty(value = "视频协议") - private Long video; + private Integer video; /** * 传输协议(AIBOX 需要,一 @@ -51,7 +51,7 @@ public class SisDevicePointVo implements Serializable { * udp */ @ExcelProperty(value = "传输协议") - private Long transportType; + private Integer transportType; /** * 点位名称 @@ -77,7 +77,7 @@ public class SisDevicePointVo implements Serializable { * 端口 */ @ExcelProperty(value = "端口") - private Long port; + private Integer port; /** * 通道相机账号 @@ -97,7 +97,7 @@ public class SisDevicePointVo implements Serializable { * 义码流 */ @ExcelProperty(value = "码流") - private Long videoType; + private Integer videoType; /** * 码流 id:当选择自定义码 @@ -108,11 +108,4 @@ public class SisDevicePointVo implements Serializable { @ExcelProperty(value = "码流id") private Long videoId; - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisEEightRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisEEightRefVo.java new file mode 100644 index 00000000..3f664f1f --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisEEightRefVo.java @@ -0,0 +1,85 @@ +package org.dromara.sis.domain.vo; + +import org.dromara.sis.domain.SisEEightRef; +import cn.idev.excel.annotation.ExcelIgnoreUnannotated; +import cn.idev.excel.annotation.ExcelProperty; +import org.dromara.common.excel.annotation.ExcelDictFormat; +import org.dromara.common.excel.convert.ExcelDictConvert; +import io.github.linpeilie.annotations.AutoMapper; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.util.Date; +import java.util.List; + + +/** + * E8平台对应关系视图对象 sis_e_eight_ref + * + * @author lsm + * @date 2025-06-29 + */ +@Data +@ExcelIgnoreUnannotated +@AutoMapper(target = SisEEightRef.class) +public class SisEEightRefVo implements Serializable { + + @Serial + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @ExcelProperty(value = "主键") + private Long id; + + /** + * 系统用户ID + */ + @ExcelProperty(value = "系统用户ID") + private Long userId; + + /** + * 门禁id列表 + */ + @ExcelProperty(value = "门禁id列表") + private List acIds; + + /** + * 图片id + */ + @ExcelProperty(value = "图片id") + private Long imgId; + + /** + * 物理卡no + */ + @ExcelProperty(value = "物理卡no") + private String cardNo; + + /** + * E8用户ID + */ + @ExcelProperty(value = "E8用户ID") + private Long remoteUserId; + + /** + * E8图片URL + */ + @ExcelProperty(value = "E8图片URL") + private String remoteImgUrl; + + /** + * E8凭证ID + */ + @ExcelProperty(value = "E8凭证ID") + private Long remoteVoucherId; + + /** + * E8权限ID + */ + @ExcelProperty(value = "E8权限ID") + private Long remoteAuthId; + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java index 8a5344e1..74e2945b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceImgRefVo.java @@ -14,7 +14,7 @@ import java.io.Serializable; * 系统图片和设备图片的关联视图对象 tb_lib_device_img_ref * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Data @ExcelIgnoreUnannotated @@ -33,20 +33,20 @@ public class SisLibDeviceImgRefVo implements Serializable { /** * 库编码 */ - @ExcelProperty(value = "库编码") - private String libCode; + @ExcelProperty(value = "库Id") + private Long libId; /** * 图片编码 */ - @ExcelProperty(value = "图片编码") - private String imgCode; + @ExcelProperty(value = "图片Id") + private Long imgId; /** * 设备编码 */ - @ExcelProperty(value = "设备编码") - private String eqpCode; + @ExcelProperty(value = "设备id") + private Long eqpId; /** * 设备库id @@ -60,23 +60,4 @@ public class SisLibDeviceImgRefVo implements Serializable { @ExcelProperty(value = "设备库图片id") private Long eqpLibImgId; - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java index 166019f0..07bc69d2 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisLibDeviceRefVo.java @@ -1,10 +1,10 @@ package org.dromara.sis.domain.vo; +import org.dromara.sis.domain.SisLibDeviceRef; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; -import org.dromara.sis.domain.SisLibDeviceRef; import java.io.Serial; import java.io.Serializable; @@ -14,7 +14,7 @@ import java.io.Serializable; * 系统库与设备库的关联视图对象 tb_lib_device_ref * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Data @ExcelIgnoreUnannotated @@ -33,20 +33,22 @@ public class SisLibDeviceRefVo implements Serializable { /** * 人员库id */ - @ExcelProperty(value = "人员库id") + @ExcelProperty(value = "库Id") private Long libId; /** * 设备表id */ - @ExcelProperty(value = "设备表id") + @ExcelProperty(value = "设备Id") private Long eqpId; /** * 设备上的库id */ @ExcelProperty(value = "设备上的库id") - private Long eqpLibCode; + private Long eqpLibId; + + private Integer eqpLibType; /** * 第三方设备库添加状态 1: 成功,2:失败 @@ -54,23 +56,6 @@ public class SisLibDeviceRefVo implements Serializable { @ExcelProperty(value = "第三方设备库添加状态 1: 成功,2:失败") private Long eqpLibState; - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java index 15068b33..3e110128 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibImgVo.java @@ -34,8 +34,8 @@ public class SisPersonLibImgVo implements Serializable { /** * 人员库编码 */ - @ExcelProperty(value = "人员库编码") - private String libCode; + @ExcelProperty(value = "人员库Id") + private Long libId; /** * 人像名称 @@ -43,12 +43,6 @@ public class SisPersonLibImgVo implements Serializable { @ExcelProperty(value = "人像名称") private String imgName; - /** - * 图片编码 - */ - @ExcelProperty(value = "图片编码") - private String imgCode; - /** * 图片的存储地址 */ @@ -60,7 +54,7 @@ public class SisPersonLibImgVo implements Serializable { 2:女 99:未说明 */ @ExcelProperty(value = "性别 1") - private Long sex; + private Integer sex; /** * 邮箱 @@ -80,7 +74,7 @@ public class SisPersonLibImgVo implements Serializable { 3:行驶证 99:其它 */ @ExcelProperty(value = "证件类型") - private Long certificateType; + private Integer certificateType; /** * 证件号码 @@ -94,23 +88,4 @@ public class SisPersonLibImgVo implements Serializable { @ExcelProperty(value = "出生日期") private String birthDate; - /** - * 创建人id - */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java index c5384e01..569928c0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/SisPersonLibVo.java @@ -1,13 +1,14 @@ package org.dromara.sis.domain.vo; -import org.dromara.sis.domain.SisPersonLib; import cn.idev.excel.annotation.ExcelIgnoreUnannotated; import cn.idev.excel.annotation.ExcelProperty; import io.github.linpeilie.annotations.AutoMapper; import lombok.Data; +import org.dromara.sis.domain.SisPersonLib; import java.io.Serial; import java.io.Serializable; +import java.util.List; /** @@ -30,12 +31,6 @@ public class SisPersonLibVo implements Serializable { @ExcelProperty(value = "主键id") private Long id; - /** - * 人员库编码 - */ - @ExcelProperty(value = "人员库编码") - private String libCode; - /** * 人员库名称 */ @@ -52,31 +47,17 @@ public class SisPersonLibVo implements Serializable { * 库类型,1:人员库,2:工服库 */ @ExcelProperty(value = "库类型,1:人员库,2:工服库") - private Long libType; + private Integer libType; /** * 库的业务类型 1: 门禁库,2: 黑名单库 */ @ExcelProperty(value = "库的业务类型 1: 门禁库,2: 黑名单库") - private Long busiType; + private Integer busiType; /** - * 创建人id + * 库关联的设备id列表 */ - @ExcelProperty(value = "创建人id") - private Long createById; - - /** - * 更新人id - */ - @ExcelProperty(value = "更新人id") - private Long updateById; - - /** - * 搜索值 - */ - @ExcelProperty(value = "搜索值") - private String searchValue; - + List eqpIds; } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdFactoryVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdFactoryVo.java index 534a75e1..1e59c43b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdFactoryVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdFactoryVo.java @@ -48,11 +48,4 @@ public class TdFactoryVo implements Serializable { @ExcelProperty(value = "备注") private String remark; - /** - * 数据状态:1有效,0无效 - */ - @ExcelProperty(value = "数据状态:1有效,0无效") - private Long dataState; - - } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterConfigVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterConfigVo.java index ca4d7e19..4a44e605 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterConfigVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterConfigVo.java @@ -36,32 +36,32 @@ public class TdMeterConfigVo implements Serializable { * 设备类型(1-电表,2-水表,3-气表) */ @ExcelProperty(value = "设备类型(1-电表,2-水表,3-气表)") - private Long meterType; + private Integer meterType; /** * 付费类型(1-先付费,2-后付费) */ @ExcelProperty(value = "付费类型(1-先付费,2-后付费)") - private Long payType; + private Integer payType; /** * 欠费是否断电/水/气(0-是,1-否) */ @ExcelProperty(value = "欠费是否断电/水/气(0-是,1-否)") - private Long arrearsOutage; + private Integer arrearsOutage; /** * 后付费模式下是否自动断电/水/气(0-是,1-否) */ @ExcelProperty(value = "后付费模式下是否自动断电/水/气", converter = ExcelDictConvert.class) @ExcelDictFormat(readConverterExp = "0=-是,1-否") - private Long autoOutage; + private Integer autoOutage; /** * 当auto_outage=0的时候生效,逾期多少天自动断水/电/气 */ @ExcelProperty(value = "当auto_outage=0的时候生效,逾期多少天自动断水/电/气") - private Long overdueDay; + private Integer overdueDay; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterVo.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterVo.java index ab703497..dcb2a9aa 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterVo.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/domain/vo/TdMeterVo.java @@ -53,13 +53,13 @@ public class TdMeterVo implements Serializable { * 设备类型(1-电表,2-水表,3-气表) */ @ExcelProperty(value = "设备类型(1-电表,2-水表,3-气表)") - private Long meterType; + private Integer meterType; /** * 表用途(1-分表,2-总表,3-公摊表) */ @ExcelProperty(value = "表用途(1-分表,2-总表,3-公摊表)") - private Long meterPurpose; + private Integer meterPurpose; /** * 分摊类型 @@ -70,13 +70,13 @@ public class TdMeterVo implements Serializable { * 5-按固定比例 */ @ExcelProperty(value = "分摊类型 1-不公摊 2-按分表用量 3-按租客面积 4-按房源数量 5-按固定比例") - private Long shareType; + private Integer shareType; /** * 付费类型(1-先付费,2-后付费) */ @ExcelProperty(value = "付费类型(1-先付费,2-后付费)") - private Long payType; + private Integer payType; /** * 当前表显示读数 @@ -94,13 +94,13 @@ public class TdMeterVo implements Serializable { * 通信状态 */ @ExcelProperty(value = "通信状态") - private Long communicationState; + private Integer communicationState; /** * 运行状态 */ @ExcelProperty(value = "运行状态") - private Long runningState; + private Integer runningState; /** * 备注 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java new file mode 100644 index 00000000..abfef87a --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisAuthRecordMapper.java @@ -0,0 +1,17 @@ +package org.dromara.sis.mapper; + +import org.apache.ibatis.annotations.Param; +import org.dromara.sis.domain.SisAuthRecord; +import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * 授权记录Mapper接口 + * + * @author lsm + * @date 2025-06-28 + */ +public interface SisAuthRecordMapper extends BaseMapperPlus { + + SisAuthRecordVo checkAuth(@Param("personId") Integer personId,@Param("accessControlId") Long accessControlId); +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisEEightRefMapper.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisEEightRefMapper.java new file mode 100644 index 00000000..090a6be1 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisEEightRefMapper.java @@ -0,0 +1,15 @@ +package org.dromara.sis.mapper; + +import org.dromara.sis.domain.SisEEightRef; +import org.dromara.sis.domain.vo.SisEEightRefVo; +import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; + +/** + * E8平台对应关系Mapper接口 + * + * @author lsm + * @date 2025-06-29 + */ +public interface SisEEightRefMapper extends BaseMapperPlus { + +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java index 52ed2f75..96e0ce70 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/mapper/SisLibDeviceRefMapper.java @@ -1,9 +1,14 @@ package org.dromara.sis.mapper; +import org.apache.ibatis.annotations.Param; import org.dromara.sis.domain.SisLibDeviceRef; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; +import java.util.Collection; +import java.util.List; + /** * 系统库与设备库的关联Mapper接口 * @@ -12,4 +17,5 @@ import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; */ public interface SisLibDeviceRefMapper extends BaseMapperPlus { + List queryDeviceListByLibIds(@Param("ids") Collection ids); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/AccessControlService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/AccessControlService.java index 60979379..c991ffdb 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/AccessControlService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/AccessControlService.java @@ -1,10 +1,10 @@ package org.dromara.sis.sdk.e8; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.sdk.e8.domain.QueryDto; import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq; import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq; import org.dromara.sis.sdk.e8.domain.accessControl.res.AccessRecordFindRes; -import org.dromara.sis.sdk.e8.domain.QueryDto; import org.dromara.sis.sdk.e8.domain.accessControl.res.CustomerAuthFindRes; /** @@ -46,4 +46,6 @@ public interface AccessControlService { * @return TableDataInfo */ TableDataInfo getPageCustomerAuth(QueryDto dto); + + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/DoorDeviceService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/DoorDeviceService.java index aa70d856..6a6e7177 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/DoorDeviceService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/DoorDeviceService.java @@ -3,10 +3,13 @@ package org.dromara.sis.sdk.e8; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceUpdateReq; +import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes; import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes; import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceFindRes; import org.dromara.sis.sdk.e8.domain.QueryDto; +import java.util.List; + /** * @author lsm * @apiNote DoorDeviceService @@ -53,4 +56,11 @@ public interface DoorDeviceService { * @return Boolean */ Boolean deleteDoorDevice(Integer id); + + /** + * 分页获取授权门信息 + * + * @return TableDataInfo + */ + List getPageAuthDoorDeviceList(); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/VoucherControlService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/VoucherControlService.java index 73fc0b49..c1e59723 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/VoucherControlService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/VoucherControlService.java @@ -17,7 +17,7 @@ public interface VoucherControlService { * @param req 凭证数据 * @return Boolean */ - Boolean issueVoucher(IssueVoucherReq req); + Long issueVoucher(IssueVoucherReq req); /** * 操作凭证 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/AccessRecordFindReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/AccessRecordFindReq.java similarity index 100% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/AccessRecordFindReq.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/AccessRecordFindReq.java diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthAddReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/CustomerAuthAddReq.java similarity index 99% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthAddReq.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/CustomerAuthAddReq.java index 9d7c66cb..7c1d6ab0 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthAddReq.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/CustomerAuthAddReq.java @@ -1,5 +1,4 @@ package org.dromara.sis.sdk.e8.domain.accessControl.req; - import lombok.Data; import java.util.List; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthFindReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/CustomerAuthFindReq.java similarity index 100% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/CustomerAuthFindReq.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/CustomerAuthFindReq.java diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/RemoteOpenDoorReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/RemoteOpenDoorReq.java similarity index 100% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/req/RemoteOpenDoorReq.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/req/RemoteOpenDoorReq.java diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/AccessRecordFindRes.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/res/AccessRecordFindRes.java similarity index 100% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/AccessRecordFindRes.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/res/AccessRecordFindRes.java diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/CustomerAuthFindRes.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/res/CustomerAuthFindRes.java similarity index 100% rename from ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accesscontrol/res/CustomerAuthFindRes.java rename to ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/accessControl/res/CustomerAuthFindRes.java diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/req/DoorDeviceAddReq.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/req/DoorDeviceAddReq.java index b2e66904..a7496060 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/req/DoorDeviceAddReq.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/req/DoorDeviceAddReq.java @@ -28,7 +28,7 @@ public class DoorDeviceAddReq { /** * 设备端口 */ - private Long port; + private Integer port; /** * 设备MAC @@ -56,7 +56,7 @@ public class DoorDeviceAddReq { * 2201:一体式门禁 2202:分体式门禁 2203:人脸门禁 2204:梯控 2207:人脸盒子终端 * 2208:人脸盒子面板机 2209:一体式读头 2211:梯控读头 2102:电子哨兵 */ - private Long type; + private Integer type; /** * 业务逻辑设备类 diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/res/AuthDoorDeviceFindRes.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/res/AuthDoorDeviceFindRes.java new file mode 100644 index 00000000..f2cf2d63 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/door/res/AuthDoorDeviceFindRes.java @@ -0,0 +1,22 @@ +package org.dromara.sis.sdk.e8.domain.door.res; + +import lombok.Data; + +/** + * @author lsm + * @apiNote AuthDoorDeviceFindRes + * @since 2025/6/29 + */ +@Data +public class AuthDoorDeviceFindRes { + + /** + * id + */ + private Long id; + + /** + * deviceId + */ + private Long deviceId; +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/res/IssueVoucherRes.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/res/IssueVoucherRes.java new file mode 100644 index 00000000..010a89ab --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/domain/voucher/res/IssueVoucherRes.java @@ -0,0 +1,14 @@ +package org.dromara.sis.sdk.e8.domain.voucher.res; + +import lombok.Data; + +/** + * @author lsm + * @apiNote IssueVoucherRes + * @since 2025/6/29 + */ +@Data +public class IssueVoucherRes { + + private Long id; +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/AccessControlServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/AccessControlServiceImpl.java index ff58738e..c5f84ac4 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/AccessControlServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/AccessControlServiceImpl.java @@ -7,13 +7,13 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.sdk.e8.AccessControlService; +import org.dromara.sis.sdk.e8.domain.ApiResp; +import org.dromara.sis.sdk.e8.domain.QueryDto; import org.dromara.sis.sdk.e8.domain.accessControl.req.AccessRecordFindReq; import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq; import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthFindReq; import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq; import org.dromara.sis.sdk.e8.domain.accessControl.res.AccessRecordFindRes; -import org.dromara.sis.sdk.e8.domain.ApiResp; -import org.dromara.sis.sdk.e8.domain.QueryDto; import org.dromara.sis.sdk.e8.domain.accessControl.res.CustomerAuthFindRes; import org.dromara.sis.sdk.e8.utils.E8ApiUtil; import org.springframework.stereotype.Service; diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/DoorDeviceServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/DoorDeviceServiceImpl.java index 060151cb..b299a095 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/DoorDeviceServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/DoorDeviceServiceImpl.java @@ -11,6 +11,7 @@ import org.dromara.sis.sdk.e8.domain.ApiResp; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceFindReq; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceUpdateReq; +import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes; import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes; import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceFindRes; import org.dromara.sis.sdk.e8.domain.QueryDto; @@ -18,6 +19,7 @@ import org.dromara.sis.sdk.e8.utils.E8ApiUtil; import org.springframework.stereotype.Service; import java.util.HashMap; +import java.util.List; import java.util.Map; /** @@ -35,6 +37,7 @@ public class DoorDeviceServiceImpl implements DoorDeviceService { private final static String DOOR_DEVICE_CREATE = "/api/E8Door/man-device-info"; private final static String DOOR_DEVICE_UPDATE = "/api/E8Door/man-device-info/{id}/update"; private final static String DOOR_DEVICE_DELETE = "/api/E8Door/man-device-info/{id}"; + private final static String AUTH_DOOR_DEVICE_GET_LIST = "/api/E8Door/man-auth-info/get-page-list-auth-data"; private final E8ApiUtil e8ApiUtil; @@ -170,4 +173,34 @@ public class DoorDeviceServiceImpl implements DoorDeviceService { return apiResp.getSuccess(); } + /** + * 分页获取授权门信息 + * + * @return TableDataInfo + */ + public List getPageAuthDoorDeviceList() { + Map queryDto = new HashMap<>(); + queryDto.put("type", -1); + queryDto.put("matchString", ""); + + // 创建一个参数映射,用于存储API请求所需的参数 + Map params = new HashMap<>(); + params.put("PageIndex", 1); + params.put("MaxResultCount", 100000); + params.put("QueryDto", queryDto); + + ApiResp apiResp = e8ApiUtil.doPost(params, AUTH_DOOR_DEVICE_GET_LIST); + + // 如果API调用不成功,则返回null + if (!apiResp.getSuccess()) { + log.error("分页获取授权门信息失败 errorMsg:{}", apiResp); + // 如果响应不成功,则返回null + return null; + } + // 将API响应结果转换为Map对象,以便后续处理 + Map result = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), new TypeReference<>() { + }, false); + // 返回list + return JSONUtil.toList(JSONUtil.toJsonStr(result.get("item")), AuthDoorDeviceFindRes.class); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java index df36201f..a87494cd 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/e8/impl/VoucherControlServiceImpl.java @@ -1,6 +1,7 @@ package org.dromara.sis.sdk.e8.impl; import cn.hutool.core.bean.BeanUtil; +import cn.hutool.json.JSONUtil; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.dromara.sis.sdk.e8.VoucherControlService; @@ -8,6 +9,7 @@ import org.dromara.sis.sdk.e8.domain.ApiResp; import org.dromara.sis.sdk.e8.domain.voucher.req.ChangeCardReq; import org.dromara.sis.sdk.e8.domain.voucher.req.IssueVoucherReq; import org.dromara.sis.sdk.e8.domain.voucher.req.OperateVoucherReq; +import org.dromara.sis.sdk.e8.domain.voucher.res.IssueVoucherRes; import org.dromara.sis.sdk.e8.utils.E8ApiUtil; import org.springframework.stereotype.Service; @@ -37,16 +39,21 @@ public class VoucherControlServiceImpl implements VoucherControlService { * @return 是否成功 */ @Override - public Boolean issueVoucher(IssueVoucherReq req) { + public Long issueVoucher(IssueVoucherReq req) { // 封装入参 Map params = BeanUtil.beanToMap(req); // 调用API ApiResp apiResp = e8ApiUtil.doPost(params, ISSUANCE_VOUCHER); - if (!apiResp.getSuccess()) log.error("E8发行凭证失败,errorMsg:{}", apiResp); + if (!apiResp.getSuccess()) { + log.error("E8发行凭证失败,errorMsg:{}", apiResp); + return null; + } - return apiResp.getSuccess(); + IssueVoucherRes res = JSONUtil.toBean(JSONUtil.toJsonStr(apiResp.getResult()), IssueVoucherRes.class); + + return res.getId(); } /** diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/UnViewAiBoxApi.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/UnViewAiBoxApi.java index 5b2f3384..5b39585e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/UnViewAiBoxApi.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/UnViewAiBoxApi.java @@ -220,7 +220,7 @@ public interface UnViewAiBoxApi { * @param imageBase64 工服图片base64 * @return 返回工服的人员id */ - Integer addWorkClothes(UvSystemInfo systemInfo, Integer libId, String imageBase64); + WorkClothesInfo addWorkClothes(UvSystemInfo systemInfo, Integer libId, String imageBase64); /** diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/model/UvModel.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/model/UvModel.java index ee146362..c55fbb46 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/model/UvModel.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/model/UvModel.java @@ -259,9 +259,9 @@ public class UvModel { */ private Integer lib_id; /** - * 性别 + * 性别 1:男2:女 99:未说明 */ - private String sex; + private Integer sex; /** * 邮件 */ @@ -275,7 +275,7 @@ public class UvModel { * 证件类型 * 1:身份证 2:护照 3:行驶证 99:其它 */ - private String certificate_type; + private Integer certificate_type; /** * 证件号码 */ diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java index 4434119f..186fc6ed 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/UnViewAiBoxApiService.java @@ -7,6 +7,7 @@ import org.dromara.sis.sdk.unview.UnViewAiBoxApi; import org.dromara.sis.sdk.unview.model.enums.UniViewApiEnum; import org.dromara.sis.sdk.unview.utils.UniViewHttp; import org.springframework.stereotype.Component; + import javax.annotation.Resource; import java.util.Arrays; import java.util.HashMap; @@ -29,11 +30,13 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { @Resource private UniViewHttp uniViewHttp; + @Override public SearchBehaviorResult searchBehavior(UvSystemInfo uvSystemInfo, SearchBehaviorParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.SEARCH_BEHAVIOR, params, SearchBehaviorResult.class); return request.getData(); } + @Override public AddLibResult addPersonLib(UvSystemInfo systemInfo, String libName) { Map params = new HashMap<>(1); params.put("lib_name", libName); @@ -41,6 +44,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.getData(); } + @Override public boolean deletePersonLib(UvSystemInfo systemInfo, Integer... libIds) { if (libIds.length == 0) { log.info("libIds 不能为空"); @@ -52,6 +56,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public boolean updatePersonLib(UvSystemInfo systemInfo, Integer libId, String LibName) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -60,6 +65,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public QueryLibResult findPagePersonLib(UvSystemInfo systemInfo, String libName, Integer current, Integer size) { JSONObject params = new JSONObject(); if (StrUtil.isNotBlank(libName)) { @@ -77,17 +83,19 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.getData(); } - + @Override public AddPersonResult addPerson(UvSystemInfo uvSystemInfo, AddPersonParams addPersonParams) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.PERSON_ADD, addPersonParams, AddPersonResult.class); return request.result(); } + @Override public BatchAddPersonResult batchAddPerson(UvSystemInfo uvSystemInfo, BatchAddPersonParams personParams) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.PERSON_BATCH_ADD, personParams, BatchAddPersonResult.class); return request.result(); } + @Override public Boolean batchDeletePerson(UvSystemInfo uvSystemInfo, Integer[] personIds) { JSONObject params = new JSONObject(); params.put("person_id_list", personIds); @@ -95,24 +103,26 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public Boolean updatePerson(UvSystemInfo uvSystemInfo, UpdatePersonParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.PERSON_UPDATE, params, String.class); return request.success(); } - + @Override public queryPersonPageResult findPersonPage(UvSystemInfo uvSystemInfo, queryPersonPageParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.PERSON_FIND, params, queryPersonPageResult.class); return request.result(); } /*--------------------------------------------------------------------- 点位管理 -------------------------------------------------------------------------*/ - + @Override public GetPublickeyResult getPublickey(UvSystemInfo uvSystemInfo) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_RAS, null, GetPublickeyResult.class); return request.result(); } + @Override public QueryOnvifResult getOnvif(UvSystemInfo uvSystemInfo) { JSONObject params = new JSONObject(); params.put("ip", uvSystemInfo.getIp()); @@ -123,11 +133,13 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.result(); } + @Override public AddPointResult addPoint(UvSystemInfo uvSystemInfo, PointParams req) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_ADD, req, AddPointResult.class); return request.result(); } + @Override public Boolean deletePoint(UvSystemInfo uvSystemInfo, List channelIds) { JSONObject params = new JSONObject(); params.put("channel_id_list", channelIds); @@ -135,26 +147,31 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public Boolean updatePoint(UvSystemInfo uvSystemInfo, UpdatePointParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_UPDATE, params, String.class); return request.success(); } + @Override public QueryPointResult queryPoint(UvSystemInfo uvSystemInfo, QueryPointParams req) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_FIND, req, QueryPointResult.class); return request.result(); } + @Override public BatchAddPersonResult batchAddPoint(UvSystemInfo uvSystemInfo, BatchAddPointParams params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_BATCH_ADD, params, BatchAddPersonResult.class); return request.result(); } + @Override public Boolean pointControlTimeUpdate(UvSystemInfo uvSystemInfo, ModifyControlTime params) { UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.POINT_CONTROL_TIME_UPDATE, params, String.class); return request.success(); } + @Override public ControlTime queryControlTime(UvSystemInfo uvSystemInfo, Integer channel_id, Integer algo_model) { JSONObject params = new JSONObject(); params.put("channel_id", channel_id); @@ -164,6 +181,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { } /*---------------------------------------------------------------- 工服库 ---------------------------------------------------------------------------*/ + @Override public AddLibResult addWorkClothesLib(UvSystemInfo uvSystemInfo, String libName) { JSONObject params = new JSONObject(); params.put("lib_name", libName); @@ -171,6 +189,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.result(); } + @Override public Boolean updateWorkClothesLib(UvSystemInfo uvSystemInfo, Integer libId, String libName) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -179,6 +198,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public Boolean deleteWorkClothesLib(UvSystemInfo uvSystemInfo, Integer libId) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -186,6 +206,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public QueryLibResult findPageWorkClothesLib(UvSystemInfo uvSystemInfo, String libName, Integer page, Integer pageSize) { JSONObject params = new JSONObject(); params.put("lib_name", libName); @@ -196,15 +217,16 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { } /*--------------------------------------------------------------------工服 ---------------------------------------------------------------------------*/ - - public Integer addWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, String imageBase64) { + @Override + public WorkClothesInfo addWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, String imageBase64) { JSONObject params = new JSONObject(); params.put("lib_id", libId); params.put("image_base64", imageBase64); - UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.WORK_CLOTHES_ADD, params, Integer.class); + UniViewResult request = uniViewHttp.request(uvSystemInfo, UniViewApiEnum.WORK_CLOTHES_ADD, params, WorkClothesInfo.class); return request.result(); } + @Override public BatchAddWorkClothesResult batchAddWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, List imageBase64s) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -213,6 +235,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.result(); } + @Override public Boolean deleteWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, List workClothesIds) { JSONObject params = new JSONObject(); params.put("lib_id", libId); @@ -221,6 +244,7 @@ public class UnViewAiBoxApiService implements UnViewAiBoxApi { return request.success(); } + @Override public FindWorkClothesResult findPageWorkClothes(UvSystemInfo uvSystemInfo, Integer libId, Integer page, Integer size, Integer status) { JSONObject params = new JSONObject(); params.put("lib_id", libId); diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/VideoAlarmService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/VideoAlarmService.java index 5e0dd56c..10b07caa 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/VideoAlarmService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/service/VideoAlarmService.java @@ -1,11 +1,21 @@ package org.dromara.sis.sdk.unview.service; import com.alibaba.fastjson.JSONObject; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.dromara.sis.domain.vo.SisAccessControlVo; +import org.dromara.sis.domain.vo.SisAuthRecordVo; +import org.dromara.sis.sdk.e8.AccessControlService; +import org.dromara.sis.sdk.e8.domain.accessControl.req.RemoteOpenDoorReq; import org.dromara.sis.sdk.unview.model.UvModel; import org.dromara.sis.sdk.unview.model.enums.AlarmTypeEnum; +import org.dromara.sis.service.ISisAccessControlService; +import org.dromara.sis.service.ISisAuthRecordService; +import org.dromara.sis.service.ISisDeviceManageService; import org.springframework.stereotype.Service; +import java.util.List; + /** * 宇视人体设备告警数据处理 * @@ -13,8 +23,14 @@ import org.springframework.stereotype.Service; */ @Slf4j @Service +@RequiredArgsConstructor public class VideoAlarmService { + private final ISisDeviceManageService deviceManageService; + private final ISisAuthRecordService authRecordService; + private final AccessControlService accessControlService; + private final ISisAccessControlService sisAccessControlService; + public void handleAlarmData(UvModel.AlarmReportInfo alarmReportData) { Integer type = alarmReportData.getType(); @@ -90,7 +106,49 @@ public class VideoAlarmService { * @param alarmReportData 告警数据 */ private void handleFacialCapture(UvModel.AlarmReportInfo alarmReportData) { - //TODO + List compareResults = alarmReportData.getCompare_results(); + if (compareResults == null) { + log.info("无比对结果,不处理此条数据。"); + return; + } + UvModel.ChannelInfo channelInfo = alarmReportData.getChannel_info(); + if (channelInfo == null) { + log.info("上报设备信息不存在,不处理词条数据。"); + return; + } + compareResults.forEach(result -> { + // 查询设备是偶绑定门径 +// SisDeviceManageVo sisDeviceManageVo = deviceManageService.queryVoByDeviceIp(deviceInfo.getDevice_code()); + SisAccessControlVo controlVo = sisAccessControlService.queryByBindDeviceIp(channelInfo.getIpc_addr()); + if (controlVo == null) { + log.info("设备[{}]未和门禁绑定,不处理此条数据。", channelInfo.getIpc_addr()); + return; + } + // 人像库id +// Integer libId = result.getLib_id(); + // 宇视人员id + Integer personId = result.getPerson_id(); + // 门禁id + Long accessControlId = controlVo.getId(); + // 校验人脸是偶有同行此门禁的权限 + SisAuthRecordVo recordVo = authRecordService.checkAuth(personId, accessControlId); + // 如果有通行权限,则打开门禁 + if (recordVo == null) { + log.info("此人像[{}]没有门禁[{}]的通行权限。", personId, accessControlId); + } + // 打开门禁 + RemoteOpenDoorReq remoteOpenDoorReq = new RemoteOpenDoorReq(); + remoteOpenDoorReq.setType(0); + remoteOpenDoorReq.setReason("宇视人像识别,人像id=" + recordVo.getImgId()); + remoteOpenDoorReq.setOperatorId(0L); + RemoteOpenDoorReq.ControlData data = new RemoteOpenDoorReq.ControlData(); + data.setDoorId(recordVo.getDoorId()); + data.setDeviceId(recordVo.getDeviceId()); + remoteOpenDoorReq.setControlList(List.of(data)); + log.info("远程开门参数,params={}", JSONObject.toJSONString(remoteOpenDoorReq)); + Boolean b = accessControlService.remoteOpenDoor(remoteOpenDoorReq); + log.info("远程开门完成, result={}", b); + }); } /** diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/utils/UniViewHttp.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/utils/UniViewHttp.java index 81b4ea8c..e859fa34 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/utils/UniViewHttp.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/sdk/unview/utils/UniViewHttp.java @@ -106,14 +106,13 @@ public class UniViewHttp { if (data == null) { requestEntity = new HttpEntity<>(null, headers); } - if (data instanceof JSONObject) { - JSONObject obj = (JSONObject) data; + if (data instanceof JSONObject obj) { requestEntity = new HttpEntity<>(obj.toJSONString(), headers); } else { requestEntity = new HttpEntity<>(JSONObject.toJSONString(data), headers); } ResponseEntity exchange = restTemplate.exchange(requestUrl, api.getMethod(), requestEntity, String.class); - int statusCode = exchange.getStatusCodeValue(); + int statusCode = exchange.getStatusCode().value(); String body = exchange.getBody(); if (HttpStatus.HTTP_UNAUTHORIZED == statusCode) { diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAccessControlService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAccessControlService.java index 3bff785d..0a077f74 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAccessControlService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAccessControlService.java @@ -1,5 +1,6 @@ package org.dromara.sis.service; +import org.dromara.common.core.domain.TreeNode; import org.dromara.sis.domain.SisAccessControl; import org.dromara.sis.domain.vo.SisAccessControlVo; import org.dromara.sis.domain.bo.SisAccessControlBo; @@ -13,7 +14,7 @@ import java.util.List; * 门禁设备Service接口 * * @author lxj - * @date 2025-06-25 + * @since 2025-06-25 */ public interface ISisAccessControlService { @@ -66,4 +67,28 @@ public interface ISisAccessControlService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据查询列表 + * + * @param ids 门禁id + * @return 列表 + */ + List queryListByIds(Collection ids); + + + + /** + * 通过绑定设备ip查询门禁 + * @param deviceCode 设备ip + * @return + */ + SisAccessControlVo queryByBindDeviceIp(String deviceCode); + + /** + * 查询门禁树 + * @return + */ + List> queryAcTree(); + } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java new file mode 100644 index 00000000..ed1cb45a --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisAuthRecordService.java @@ -0,0 +1,86 @@ +package org.dromara.sis.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.bo.SingleAuthRecordBo; +import org.dromara.sis.domain.bo.SisAuthRecordBo; +import org.dromara.sis.domain.vo.SisAuthRecordVo; + +import java.util.Collection; +import java.util.List; + +/** + * 授权记录Service接口 + * + * @author lsm + * @date 2025-06-28 + */ +public interface ISisAuthRecordService { + + /** + * 查询授权记录 + * + * @param id 主键 + * @return 授权记录 + */ + SisAuthRecordVo queryById(Long id); + + /** + * 分页查询授权记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 授权记录分页列表 + */ + TableDataInfo queryPageList(SisAuthRecordBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的授权记录列表 + * + * @param bo 查询条件 + * @return 授权记录列表 + */ + List queryList(SisAuthRecordBo bo); + + /** + * 新增授权记录 + * + * @param bo 授权记录 + * @return 是否新增成功 + */ + Boolean insertByBo(SisAuthRecordBo bo); + + /** + * 修改授权记录 + * + * @param bo 授权记录 + * @return 是否修改成功 + */ + Boolean updateByBo(SisAuthRecordBo bo); + + /** + * 校验并批量删除授权记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 通过宇视图片id和门禁id校验此图像是否有通行权限 + * + * @param personId 人像id + * @param accessControlId 门禁id + * @return 返回授权记录 + */ + SisAuthRecordVo checkAuth(Integer personId, Long accessControlId); + + /** + * 单个人像授权 + * + * @param bo 授权信息 + * @return 是否授权成功 + */ + Boolean singleAuth(SingleAuthRecordBo bo); +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceManageService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceManageService.java index acf0cc91..3d8859d9 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceManageService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisDeviceManageService.java @@ -1,9 +1,9 @@ package org.dromara.sis.service; -import org.dromara.sis.domain.vo.SisDeviceManageVo; -import org.dromara.sis.domain.bo.SisDeviceManageBo; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.bo.SisDeviceManageBo; +import org.dromara.sis.domain.vo.SisDeviceManageVo; import java.util.Collection; import java.util.List; @@ -65,4 +65,12 @@ public interface ISisDeviceManageService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 通过设备ip查询设备信息 + * + * @param deviceCode 设备编码 + * @return 设备信息 + */ + SisDeviceManageVo queryVoByDeviceIp(Integer deviceCode); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisEEightRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisEEightRefService.java new file mode 100644 index 00000000..c892b84e --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisEEightRefService.java @@ -0,0 +1,72 @@ +package org.dromara.sis.service; + +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.bo.SisEEightRefBo; +import org.dromara.sis.domain.vo.SisEEightRefVo; + +import java.util.Collection; +import java.util.List; + +/** + * E8平台对应关系Service接口 + * + * @author lsm + * @date 2025-06-29 + */ +public interface ISisEEightRefService { + + /** + * 查询E8平台对应关系 + * + * @param id 主键 + * @return E8平台对应关系 + */ + SisEEightRefVo queryById(Long id); + + /** + * 分页查询E8平台对应关系列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return E8平台对应关系分页列表 + */ + TableDataInfo queryPageList(SisEEightRefBo bo, PageQuery pageQuery); + + /** + * 查询符合条件的E8平台对应关系列表 + * + * @param bo 查询条件 + * @return E8平台对应关系列表 + */ + List queryList(SisEEightRefBo bo); + + /** + * 新增E8平台对应关系 + * + * @param bo E8平台对应关系 + * @return 是否新增成功 + */ + Boolean insertByBo(SisEEightRefBo bo); + + + Boolean batchInsert(List bos); + + + /** + * 修改E8平台对应关系 + * + * @param bo E8平台对应关系 + * @return 是否修改成功 + */ + Boolean updateByBo(SisEEightRefBo bo); + + /** + * 校验并批量删除E8平台对应关系信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + Boolean deleteWithValidByIds(Collection ids, Boolean isValid); +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceImgRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceImgRefService.java index 281935ae..3666689f 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceImgRefService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceImgRefService.java @@ -12,7 +12,7 @@ import java.util.List; * 系统图片和设备图片的关联Service接口 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ public interface ISisLibDeviceImgRefService { @@ -65,4 +65,12 @@ public interface ISisLibDeviceImgRefService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据系统图片id列表,获取设备图片列表 + * + * @param imgIds 系统图片id列表 + * @return 设备图片列表 + */ + List queryListByImgIds(Collection imgIds); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java index b077bbd9..f04edb1b 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisLibDeviceRefService.java @@ -1,10 +1,11 @@ package org.dromara.sis.service; -import org.dromara.sis.domain.SisLibDeviceRef; -import org.dromara.sis.domain.vo.SisLibDeviceRefVo; -import org.dromara.sis.domain.bo.SisLibDeviceRefBo; -import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.SisLibDeviceRef; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; +import org.dromara.sis.domain.bo.SisLibDeviceRefBo; +import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import java.util.Collection; import java.util.List; @@ -13,7 +14,7 @@ import java.util.List; * 系统库与设备库的关联Service接口 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ public interface ISisLibDeviceRefService { @@ -75,5 +76,27 @@ public interface ISisLibDeviceRefService { */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); - List queryByIds(Collection ids); + /** + * 通过personlIB id 查询关联关系 + * + * @param ids id列表 + * @return 返回关联记录 + */ + List queryByLibIds(Collection ids); + + /** + * 通过 personLibid 列表删除关联关系 + * + * @param ids id 列表 + * @return 返回删除数量 + */ + Integer deleteByLibIds(Collection ids); + + /** + * 通过libIds 查询控制设备列表 + * + * @param ids libIds + * @return 返回设备列表 + */ + List queryDeviceListByLibIds(Collection ids); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisPersonLibImgService.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisPersonLibImgService.java index 429f9e4c..8926a3e1 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisPersonLibImgService.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/ISisPersonLibImgService.java @@ -12,7 +12,7 @@ import java.util.List; * 人像信息Service接口 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ public interface ISisPersonLibImgService { @@ -65,4 +65,12 @@ public interface ISisPersonLibImgService { * @return 是否删除成功 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + /** + * 根据查询列表 + * + * @param ids 图片id + * @return 列表 + */ + List queryListByIds(Collection ids); } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java index cc6e19f1..304bbff9 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAccessControlServiceImpl.java @@ -1,29 +1,37 @@ package org.dromara.sis.service.impl; -import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import cn.hutool.core.lang.Assert; +import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.dromara.sis.domain.SisDeviceManage; -import org.dromara.sis.mapper.SisDeviceManageMapper; +import org.apache.dubbo.config.annotation.DubboReference; +import org.dromara.common.core.domain.TreeNode; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.core.utils.TreeUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.property.api.RemoteFloorService; +import org.dromara.property.api.domain.vo.RemoteFloorVo; +import org.dromara.sis.domain.SisAccessControl; +import org.dromara.sis.domain.bo.SisAccessControlBo; +import org.dromara.sis.domain.vo.SisAccessControlVo; +import org.dromara.sis.domain.vo.SisDeviceManageVo; +import org.dromara.sis.mapper.SisAccessControlMapper; import org.dromara.sis.sdk.e8.DoorDeviceService; import org.dromara.sis.sdk.e8.domain.door.req.DoorDeviceAddReq; import org.dromara.sis.sdk.e8.domain.door.res.DoorDeviceAddRes; -import org.springframework.stereotype.Service; -import org.dromara.sis.domain.bo.SisAccessControlBo; -import org.dromara.sis.domain.vo.SisAccessControlVo; -import org.dromara.sis.domain.SisAccessControl; -import org.dromara.sis.mapper.SisAccessControlMapper; import org.dromara.sis.service.ISisAccessControlService; +import org.dromara.sis.service.ISisDeviceManageService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.Collection; /** * 门禁设备Service业务层处理 @@ -38,7 +46,11 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { private final SisAccessControlMapper baseMapper; private final DoorDeviceService doorDeviceService; - private final SisDeviceManageMapper sisDeviceManageMapper; + private final ISisDeviceManageService sisDeviceManageService; + + @DubboReference + private RemoteFloorService remoteFloorService; + /** * 查询门禁设备 @@ -47,7 +59,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { * @return 门禁设备 */ @Override - public SisAccessControlVo queryById(Long id){ + public SisAccessControlVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -83,8 +95,6 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { lqw.orderByAsc(SisAccessControl::getId); lqw.eq(StringUtils.isNotBlank(bo.getAccessCode()), SisAccessControl::getAccessCode, bo.getAccessCode()); lqw.like(StringUtils.isNotBlank(bo.getAccessName()), SisAccessControl::getAccessName, bo.getAccessName()); - lqw.eq(StringUtils.isNotBlank(bo.getCommunityCode()), SisAccessControl::getCommunityCode, bo.getCommunityCode()); - lqw.eq(StringUtils.isNotBlank(bo.getBuildingCode()), SisAccessControl::getBuildingCode, bo.getBuildingCode()); lqw.eq(StringUtils.isNotBlank(bo.getAccessIp()), SisAccessControl::getAccessIp, bo.getAccessIp()); lqw.eq(bo.getAccessPort() != null, SisAccessControl::getAccessPort, bo.getAccessPort()); lqw.eq(bo.getAccessType() != null, SisAccessControl::getAccessType, bo.getAccessType()); @@ -92,8 +102,12 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { lqw.eq(bo.getControlType() != null, SisAccessControl::getControlType, bo.getControlType()); lqw.eq(StringUtils.isNotBlank(bo.getControlCode()), SisAccessControl::getControlCode, bo.getControlCode()); lqw.eq(StringUtils.isNotBlank(bo.getOutCode()), SisAccessControl::getOutCode, bo.getOutCode()); - lqw.eq(StringUtils.isNotBlank(bo.getOrgCode()), SisAccessControl::getOrgCode, bo.getOrgCode()); - lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisAccessControl::getSearchValue, bo.getSearchValue()); + if (StrUtil.isNotEmpty(bo.getSearchValue())) { + lqw.or().eq(SisAccessControl::getCommunityId, bo.getSearchValue()); + lqw.or().eq(SisAccessControl::getBuildingId, bo.getSearchValue()); + lqw.or().eq(SisAccessControl::getUnitId, bo.getSearchValue()); + lqw.or().eq(SisAccessControl::getFloorId, bo.getSearchValue()); + } return lqw; } @@ -104,50 +118,63 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SisAccessControlBo bo) { + // 校验楼层是否存在 + RemoteFloorVo remoteFloorVo = remoteFloorService.queryByFloorId(bo.getFloorId()); + Assert.notNull(remoteFloorVo, "当前楼层信息不存在。"); + // 检验设备是否存在 + SisDeviceManageVo sisDeviceManageVo = sisDeviceManageService.queryById(bo.getBindDeviceId()); + Assert.notNull(sisDeviceManageVo, "绑定设备不存在。"); SisAccessControl add = MapstructUtils.convert(bo, SisAccessControl.class); - validEntityBeforeSave(add); - - // 添加E8门禁设备 - if (add.getControlType() == 2L){ - DoorDeviceAddReq e8DoorReq = new DoorDeviceAddReq(); - // 设备类型 - e8DoorReq.setType(add.getAccessType()); - // 设备名称 - e8DoorReq.setName(add.getAccessName()); - // 通讯类型 - e8DoorReq.setCommType(0); - // cpuid - e8DoorReq.setCpuID(add.getFactoryCode()); - // ip - e8DoorReq.setIp(add.getAccessIp()); - // 端口 - e8DoorReq.setPort(add.getAccessPort()); - // 网关ip - e8DoorReq.setGatewayIP(""); - // 子网掩码 - e8DoorReq.setNetMask("255.255.255.0"); - - DoorDeviceAddRes e8DoorRes = doorDeviceService.addDoorDevice(e8DoorReq); - - if (e8DoorRes != null) { - add.setOutCode(e8DoorRes.getId().toString()); - } else { - return false; - } - } - + add.setCommunityId(remoteFloorVo.getCommunityId()); + add.setBuildingId(remoteFloorVo.getBuildingId()); + add.setUnitId(remoteFloorVo.getUnitId()); + add.setFloorId(remoteFloorVo.getId()); + add.setBindDeviceIp(sisDeviceManageVo.getDeviceIp()); + Assert.notNull(add, "数据处理失败"); boolean flag = baseMapper.insert(add) > 0; if (flag) { - bo.setId(add.getId()); + // 添加E8门禁设备 + if (add.getControlType() == 2L) { + log.info("开始同步写入E8门禁"); + DoorDeviceAddReq e8DoorReq = new DoorDeviceAddReq(); + // 设备类型 + e8DoorReq.setType(add.getAccessType()); + // 设备名称 + e8DoorReq.setName(add.getAccessName()); + // 通讯类型 + e8DoorReq.setCommType(0); + // cpuid + e8DoorReq.setCpuID(""); + // ip + e8DoorReq.setIp(add.getAccessIp()); + // 端口 + e8DoorReq.setPort(add.getAccessPort()); + // 网关ip + e8DoorReq.setGatewayIP(""); + // 子网掩码 + e8DoorReq.setNetMask("255.255.255.0"); - // 判断是否绑定摄像头 - if (bo.getDeviceId() != null){ - SisDeviceManage device = new SisDeviceManage(); - device.setId(bo.getDeviceId()); - device.setAccessControlId(add.getId()); - sisDeviceManageMapper.updateById(device); + DoorDeviceAddRes e8DoorRes = doorDeviceService.addDoorDevice(e8DoorReq); + Assert.notNull(e8DoorRes, "写入E8平台失败"); + + log.info("E8平台写入成功,将返回值:{},回写到{}门禁中!", e8DoorRes.getId(), add.getAccessName()); + SisAccessControlBo wbBo = new SisAccessControlBo(); + wbBo.setId(add.getId()); + wbBo.setOutCode(e8DoorRes.getId().toString()); + Boolean update = this.updateByBo(wbBo); + Assert.isTrue(update, "外部编码回写失败"); + log.info("E8平台写入完成!"); } + + // 摄像头不绑定门禁,让门禁去绑定摄像头 + /*if (bo.getBindDeviceId() != null) { + SisDeviceManageBo device = new SisDeviceManageBo(); + device.setId(bo.getBindDeviceId()); + device.setAccessControlId(add.getId()); + sisDeviceManageService.updateByBo(device); + }*/ } return flag; } @@ -168,7 +195,7 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SisAccessControl entity){ + private void validEntityBeforeSave(SisAccessControl entity) { //TODO 做一些数据校验,如唯一约束 } @@ -181,9 +208,45 @@ public class SisAccessControlServiceImpl implements ISisAccessControlService { */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 根据查询列表 + * + * @param ids 门禁id + * @return 列表 + */ + @Override + public List queryListByIds(Collection ids) { + return baseMapper.selectVoByIds(ids); + } + + @Override + public SisAccessControlVo queryByBindDeviceIp(String deviceCode) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + return baseMapper.selectVoOne(wrapper); + } + + @Override + public List> queryAcTree() { + List> treeNodes = remoteFloorService.queryTreeList(); + // 查询所有的门禁 + List sisAccessControlVos = baseMapper.selectVoList(); + if (sisAccessControlVos != null && !sisAccessControlVos.isEmpty()) { + List> l1 = sisAccessControlVos.stream().map(item -> { + TreeNode node = new TreeNode<>(); + node.setLevel(4); + node.setCode(item.getId()); + node.setParentCode(item.getFloorId()); + node.setLabel(item.getAccessName()); + return node; + }).toList(); + treeNodes.addAll(l1); + } + return TreeUtils.build(treeNodes, 0L); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java new file mode 100644 index 00000000..6f4f07db --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisAuthRecordServiceImpl.java @@ -0,0 +1,328 @@ +package org.dromara.sis.service.impl; + +import cn.hutool.core.lang.Assert; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.SisAuthRecord; +import org.dromara.sis.domain.bo.SingleAuthRecordBo; +import org.dromara.sis.domain.bo.SisAuthRecordBo; +import org.dromara.sis.domain.bo.SisLibDeviceImgRefBo; +import org.dromara.sis.domain.bo.SisLibDeviceRefBo; +import org.dromara.sis.domain.vo.*; +import org.dromara.sis.mapper.SisAuthRecordMapper; +import org.dromara.sis.sdk.e8.AccessControlService; +import org.dromara.sis.sdk.e8.DoorDeviceService; +import org.dromara.sis.sdk.e8.VoucherControlService; +import org.dromara.sis.sdk.e8.domain.accessControl.req.CustomerAuthAddReq; +import org.dromara.sis.sdk.e8.domain.door.res.AuthDoorDeviceFindRes; +import org.dromara.sis.sdk.e8.domain.voucher.req.IssueVoucherReq; +import org.dromara.sis.sdk.unview.UnViewAiBoxApi; +import org.dromara.sis.sdk.unview.model.UvModel; +import org.dromara.sis.service.*; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.*; +import java.util.stream.Collectors; + +/** + * 授权记录Service业务层处理 + * + * @author lsm + * @since 2025-06-28 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class SisAuthRecordServiceImpl implements ISisAuthRecordService { + + private final UnViewAiBoxApi unViewAiBoxApi; + private final SisAuthRecordMapper baseMapper; + private final VoucherControlService e8VouchService; + private final DoorDeviceService e8DoorDeviceService; + private final ISisPersonLibService sisPersonLibService; + private final ISisEEightRefService sisEEightRefService; + private final AccessControlService e8AccessControlService; + private final ISisPersonLibImgService sisPersonLibImgService; + private final ISisLibDeviceRefService sisLibDeviceRefService; + private final ISisAccessControlService sisAccessControlService; + private final ISisLibDeviceImgRefService sisLibDeviceImgRefService; + private final ISisAccessControlDeviceService sisAccessControlDeviceService; + + /** + * 查询授权记录 + * + * @param id 主键 + * @return 授权记录 + */ + @Override + public SisAuthRecordVo queryById(Long id) { + return baseMapper.selectVoById(id); + } + + /** + * 分页查询授权记录列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return 授权记录分页列表 + */ + @Override + public TableDataInfo queryPageList(SisAuthRecordBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的授权记录列表 + * + * @param bo 查询条件 + * @return 授权记录列表 + */ + @Override + public List queryList(SisAuthRecordBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SisAuthRecordBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(SisAuthRecord::getId); + lqw.eq(bo.getLibId() != null, SisAuthRecord::getLibId, bo.getLibId()); + return lqw; + } + + /** + * 新增授权记录 + * + * @param bo 授权记录 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(SisAuthRecordBo bo) { + List refVos = sisLibDeviceRefService.queryByLibIds(Collections.singleton(bo.getLibId())); + Assert.notEmpty(refVos, "图像库与设备关联关系不存在"); + List eqpIds = refVos.stream().map(SisLibDeviceRefVo::getEqpId).toList(); + + + /* boolean flag = false; + log.info("开始写入授权记录,图片:{}、门禁:{}、设备:{}", bo.getImgIds(), bo.getAcIds(), eqpIds); + for (Long imgId : bo.getImgIds()) { + for (Long acId : bo.getAcIds()) { + for (Long eqpId : eqpIds) { + SisAuthRecord add = MapstructUtils.convert(bo, SisAuthRecord.class); + Assert.notNull(add, "数据处理失败"); + add.setAcId(acId); + add.setImgId(imgId); + add.setEqbId(eqpId); + flag = baseMapper.insert(add) > 0; + Assert.isTrue(flag, "授权记录写入失败"); + } + } + } + log.info("授权记录写入完成");*/ + + SisPersonLibVo libVo = sisPersonLibService.queryById(bo.getLibId()); + Assert.notNull(libVo, "图像库不存在,id=" + (bo.getLibId())); + + List imgList = sisPersonLibImgService.queryListByIds(bo.getImgIds()); + Assert.notEmpty(imgList, "图片不存在"); + + List acList = sisAccessControlService.queryListByIds(bo.getAcIds()); + Assert.notEmpty(acList, "门禁设备不存在!"); + + try { + log.info("开始对宇视盒子下发照片,图片:{}、设备:{}", bo.getImgIds(), eqpIds); + + for (SisPersonLibImgVo imgVo : imgList) { + for (Long eqpId : eqpIds) { + long eqp_lib_id; + Integer eqp_lib_img_id; + byte[] imageByte = Files.readAllBytes(Paths.get(imgVo.getImgUrl())); + + SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId); + Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId); + log.info(libVo.getLibType() == 1 ? "准备写入人像设备,code={}" : "准备写入工服设备,code={}", vo.getEqpNo()); + + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount(vo.getEqpAccount()); + systemInfo.setPassword(vo.getEqpPwd()); + systemInfo.setIp(vo.getEqpIp()); + systemInfo.setPort(vo.getEqpPort()); + + // 获取宇视线上库ID + SisLibDeviceRefBo refBo = new SisLibDeviceRefBo(); + refBo.setEqpId(eqpId); + refBo.setLibId(libVo.getId()); + List refVo = sisLibDeviceRefService.queryList(refBo); + Assert.notNull(refVo, "系统库与设备库关联关系不存在!libId:{},eqpId:{}", libVo.getId(), eqpId); + eqp_lib_id = refVo.get(0).getEqpLibId(); + + if (libVo.getLibType() == 1) { + // 宇视添加人像 + UvModel.AddPersonParams addPersonParams = new UvModel.AddPersonParams(); + addPersonParams.setPerson_name(imgVo.getImgName()); + addPersonParams.setImage_base64(Base64.getEncoder().encodeToString(imageByte)); + addPersonParams.setLib_id(Math.toIntExact(eqp_lib_id)); + addPersonParams.setSex(imgVo.getSex()); + addPersonParams.setEmail(imgVo.getEmail()); + addPersonParams.setTel(imgVo.getTel()); + addPersonParams.setCertificate_type(imgVo.getCertificateType()); + addPersonParams.setCertificate_no(imgVo.getCertificateNo()); + addPersonParams.setBirth_date(imgVo.getBirthDate()); + // 发起请求获取响应 + UvModel.AddPersonResult addResult = unViewAiBoxApi.addPerson(systemInfo, addPersonParams); + eqp_lib_img_id = addResult.getPerson_id(); + + } else { + UvModel.WorkClothesInfo addResult = unViewAiBoxApi.addWorkClothes(systemInfo, Math.toIntExact(eqp_lib_id), Base64.getEncoder().encodeToString(imageByte)); + eqp_lib_img_id = addResult.getWorkclothes_id(); + } + Assert.notNull(eqp_lib_img_id, "图片上传宇视盒子失败"); + log.info("图片上传宇视盒子完成,eqp_lib_img_id = {}", eqp_lib_img_id); + + SisLibDeviceImgRefBo ref = new SisLibDeviceImgRefBo(); + ref.setLibId(libVo.getId()); + ref.setImgId(imgVo.getId()); + ref.setEqpId(eqpId); + ref.setEqpLibId(eqp_lib_id); + ref.setEqpLibImgId(eqp_lib_img_id.longValue()); + Boolean insert = sisLibDeviceImgRefService.insertByBo(ref); + Assert.isTrue(insert, "写入图片关联关系表失败!"); + + } + } + log.info("图片开始下发完成!"); + + log.info("开始写入E8平台,图片:{}、门禁:{}", bo.getImgIds(), bo.getAcIds()); + for (SisPersonLibImgVo imgVo : imgList) { + byte[] imageByte = Files.readAllBytes(Paths.get(imgVo.getImgUrl())); + + log.info("E8平台上传图片,{}", imgVo.getId()); + String url = e8VouchService.uploadFace(imageByte); + Assert.notNull(url, "E8平台上传图片失败"); + log.info("E8平台上传图片完成!"); + + log.info("E8平台发行凭证"); + IssueVoucherReq req = new IssueVoucherReq(); + // 34:普通用户卡 + req.setCardType(34); + // 70:人脸凭证 + req.setVoucherType(70); + // TODO 临时默认人员 + req.setPersonID(539696740646981L); + req.setTxtData(url); + Long vId = e8VouchService.issueVoucher(req); + Assert.notNull(vId, "E8平台发行凭证失败"); + log.info("E8平台发行凭证完成!"); + + log.info("E8平台授权凭证"); + // 查询所有e8设备并分组 + List authDoor = e8DoorDeviceService.getPageAuthDoorDeviceList(); + Map authDoorMap = authDoor.stream().collect(Collectors.toMap(AuthDoorDeviceFindRes::getDeviceId, authDoorRes -> authDoorRes)); + + // E8 授权列表 + List authList = new ArrayList<>(acList.size()); + // 授权记录 + List recordList = new ArrayList<>(acList.size()); + for (SisAccessControlVo sisAccessControlVo : acList) { + if (sisAccessControlVo.getControlType() != 1 && sisAccessControlVo.getAccessType() != 2) { + SisAuthRecord authRecord = new SisAuthRecord(); + CustomerAuthAddReq.AuthGroupData door = new CustomerAuthAddReq.AuthGroupData(); + door.setType(0); + door.setGatewayType(1); + Long id = Long.parseLong(sisAccessControlVo.getOutCode()); + door.setId(id); + + authRecord.setDoorId(id); + // 如果 authDoorMap 中存在对应的 deviceId,则更新 id + AuthDoorDeviceFindRes authDoorRes = authDoorMap.get(id); + if (authDoorRes != null) { + door.setId(authDoorRes.getId()); + authRecord.setDeviceId(authDoorRes.getDeviceId()); + } + authRecord.setLibId(imgVo.getLibId()); + authRecord.setImgId(imgVo.getId()); + authRecord.setAcId(sisAccessControlVo.getId()); + recordList.add(authRecord); + } + } + + CustomerAuthAddReq authReq = new CustomerAuthAddReq(); + authReq.setAuthType(0); + authReq.setScheduleId(1L); + authReq.setPersonIds(Collections.singletonList(539696740646981L)); + authReq.setStartTime("2025-06-25 11: 23: 39"); + authReq.setEndTime("2025-07-25 11: 23: 39"); + authReq.setAuthData(authList); + Boolean auth = e8AccessControlService.addCustomerAuth(authReq); + Assert.isTrue(auth, "E8平台授权失败"); + log.info("E8平台授权完成!"); + boolean insert = baseMapper.insertBatch(recordList); + Assert.isTrue(insert, "写入E8关联关系表失败!"); + } + log.info("写入E8平台完成!"); + + } catch (Exception e) { + throw new RuntimeException(e.getMessage()); + } + + return true; + } + + @Override + public Boolean singleAuth(SingleAuthRecordBo bo) { + return null; + } + + /** + * 修改授权记录 + * + * @param bo 授权记录 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SisAuthRecordBo bo) { + SisAuthRecord update = MapstructUtils.convert(bo, SisAuthRecord.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SisAuthRecord entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除授权记录信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } + + @Override + public SisAuthRecordVo checkAuth(Integer personId, Long accessControlId) { + return baseMapper.checkAuth(personId, accessControlId); + } +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceManageServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceManageServiceImpl.java index a7d4ba10..7b01fa22 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceManageServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisDeviceManageServiceImpl.java @@ -74,12 +74,10 @@ public class SisDeviceManageServiceImpl implements ISisDeviceManageService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisDeviceManage::getId); - lqw.eq(StringUtils.isNotBlank(bo.getDeviceNo()), SisDeviceManage::getDeviceNo, bo.getDeviceNo()); lqw.like(StringUtils.isNotBlank(bo.getDeviceName()), SisDeviceManage::getDeviceName, bo.getDeviceName()); lqw.eq(StringUtils.isNotBlank(bo.getDeviceIp()), SisDeviceManage::getDeviceIp, bo.getDeviceIp()); lqw.eq(bo.getDevicePort() != null, SisDeviceManage::getDevicePort, bo.getDevicePort()); lqw.eq(StringUtils.isNotBlank(bo.getDeviceMac()), SisDeviceManage::getDeviceMac, bo.getDeviceMac()); - lqw.eq(bo.getDeviceStatus() != null, SisDeviceManage::getDeviceStatus, bo.getDeviceStatus()); lqw.eq(bo.getParentId() != null, SisDeviceManage::getParentId, bo.getParentId()); lqw.eq(StringUtils.isNotBlank(bo.getVcrIp()), SisDeviceManage::getVcrIp, bo.getVcrIp()); lqw.eq(bo.getVcrPort() != null, SisDeviceManage::getVcrPort, bo.getVcrPort()); @@ -138,4 +136,11 @@ public class SisDeviceManageServiceImpl implements ISisDeviceManageService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public SisDeviceManageVo queryVoByDeviceIp(Integer deviceCode) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.eq(SisDeviceManage::getDeviceIp, deviceCode); + return baseMapper.selectVoById(lqw); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisEEightRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisEEightRefServiceImpl.java new file mode 100644 index 00000000..7e82e9eb --- /dev/null +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisEEightRefServiceImpl.java @@ -0,0 +1,147 @@ +package org.dromara.sis.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.sis.domain.SisEEightRef; +import org.dromara.sis.domain.bo.SisEEightRefBo; +import org.dromara.sis.domain.vo.SisEEightRefVo; +import org.dromara.sis.mapper.SisEEightRefMapper; +import org.dromara.sis.service.ISisEEightRefService; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Arrays; +import java.util.Collection; +import java.util.List; +import java.util.Map; + +/** + * E8平台对应关系Service业务层处理 + * + * @author lsm + * @since 2025-06-29 + */ +@Slf4j +@RequiredArgsConstructor +@Service +public class SisEEightRefServiceImpl implements ISisEEightRefService { + + private final SisEEightRefMapper baseMapper; + + /** + * 查询E8平台对应关系 + * + * @param id 主键 + * @return E8平台对应关系 + */ + @Override + public SisEEightRefVo queryById(Long id) { + SisEEightRef sisEEightRef = baseMapper.selectById(id); + List acIds = Arrays.stream(sisEEightRef.getAcId().split(",")).map(Long::parseLong).toList(); + + SisEEightRefVo vo = MapstructUtils.convert(sisEEightRef, SisEEightRefVo.class); + vo.setAcIds(acIds); + return vo; + } + + /** + * 分页查询E8平台对应关系列表 + * + * @param bo 查询条件 + * @param pageQuery 分页参数 + * @return E8平台对应关系分页列表 + */ + @Override + public TableDataInfo queryPageList(SisEEightRefBo bo, PageQuery pageQuery) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + return TableDataInfo.build(result); + } + + /** + * 查询符合条件的E8平台对应关系列表 + * + * @param bo 查询条件 + * @return E8平台对应关系列表 + */ + @Override + public List queryList(SisEEightRefBo bo) { + LambdaQueryWrapper lqw = buildQueryWrapper(bo); + return baseMapper.selectVoList(lqw); + } + + private LambdaQueryWrapper buildQueryWrapper(SisEEightRefBo bo) { + Map params = bo.getParams(); + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.orderByAsc(SisEEightRef::getId); + lqw.eq(bo.getUserId() != null, SisEEightRef::getUserId, bo.getUserId()); + lqw.eq(bo.getImgId() != null, SisEEightRef::getImgId, bo.getImgId()); + lqw.eq(StringUtils.isNotBlank(bo.getCardNo()), SisEEightRef::getCardNo, bo.getCardNo()); + lqw.eq(bo.getRemoteUserId() != null, SisEEightRef::getRemoteUserId, bo.getRemoteUserId()); + lqw.eq(StringUtils.isNotBlank(bo.getRemoteImgUrl()), SisEEightRef::getRemoteImgUrl, bo.getRemoteImgUrl()); + lqw.eq(bo.getRemoteVoucherId() != null, SisEEightRef::getRemoteVoucherId, bo.getRemoteVoucherId()); + return lqw; + } + + /** + * 新增E8平台对应关系 + * + * @param bo E8平台对应关系 + * @return 是否新增成功 + */ + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean insertByBo(SisEEightRefBo bo) { + SisEEightRef add = MapstructUtils.convert(bo, SisEEightRef.class); + add.setAcId(StringUtils.join(bo.getAcIds(), ",")); + return baseMapper.insert(add) > 0; + } + + @Override + public Boolean batchInsert(List bos) { + List convert = MapstructUtils.convert(bos, SisEEightRef.class); + return baseMapper.insertBatch(convert); + } + + /** + * 修改E8平台对应关系 + * + * @param bo E8平台对应关系 + * @return 是否修改成功 + */ + @Override + public Boolean updateByBo(SisEEightRefBo bo) { + SisEEightRef update = MapstructUtils.convert(bo, SisEEightRef.class); + validEntityBeforeSave(update); + return baseMapper.updateById(update) > 0; + } + + /** + * 保存前的数据校验 + */ + private void validEntityBeforeSave(SisEEightRef entity) { + //TODO 做一些数据校验,如唯一约束 + } + + /** + * 校验并批量删除E8平台对应关系信息 + * + * @param ids 待删除的主键集合 + * @param isValid 是否进行有效性校验 + * @return 是否删除成功 + */ + @Override + public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + if (isValid) { + //TODO 做一些业务上的校验,判断是否需要校验 + } + return baseMapper.deleteByIds(ids) > 0; + } +} diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceImgRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceImgRefServiceImpl.java index ab563b6e..4f52040a 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceImgRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceImgRefServiceImpl.java @@ -40,7 +40,7 @@ public class SisLibDeviceImgRefServiceImpl implements ISisLibDeviceImgRefService * @return 系统图片和设备图片的关联 */ @Override - public SisLibDeviceImgRefVo queryById(Long id){ + public SisLibDeviceImgRefVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -74,12 +74,11 @@ public class SisLibDeviceImgRefServiceImpl implements ISisLibDeviceImgRefService Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisLibDeviceImgRef::getId); - lqw.eq(StringUtils.isNotBlank(bo.getLibCode()), SisLibDeviceImgRef::getLibCode, bo.getLibCode()); - lqw.eq(StringUtils.isNotBlank(bo.getImgCode()), SisLibDeviceImgRef::getImgCode, bo.getImgCode()); - lqw.eq(StringUtils.isNotBlank(bo.getEqpCode()), SisLibDeviceImgRef::getEqpCode, bo.getEqpCode()); + lqw.eq(bo.getLibId() != null, SisLibDeviceImgRef::getLibId, bo.getLibId()); + lqw.eq(bo.getImgId() != null, SisLibDeviceImgRef::getImgId, bo.getImgId()); + lqw.eq(bo.getEqpId() != null, SisLibDeviceImgRef::getEqpId, bo.getEqpId()); lqw.eq(bo.getEqpLibId() != null, SisLibDeviceImgRef::getEqpLibId, bo.getEqpLibId()); lqw.eq(bo.getEqpLibImgId() != null, SisLibDeviceImgRef::getEqpLibImgId, bo.getEqpLibImgId()); - lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisLibDeviceImgRef::getSearchValue, bo.getSearchValue()); return lqw; } @@ -116,7 +115,7 @@ public class SisLibDeviceImgRefServiceImpl implements ISisLibDeviceImgRefService /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SisLibDeviceImgRef entity){ + private void validEntityBeforeSave(SisLibDeviceImgRef entity) { //TODO 做一些数据校验,如唯一约束 } @@ -129,9 +128,22 @@ public class SisLibDeviceImgRefServiceImpl implements ISisLibDeviceImgRefService */ @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ + if (isValid) { //TODO 做一些业务上的校验,判断是否需要校验 } return baseMapper.deleteByIds(ids) > 0; } + + /** + * 根据系统图片id列表,获取设备图片列表 + * + * @param imgIds 系统图片id列表 + * @return 设备图片列表 + */ + @Override + public List queryListByImgIds(Collection imgIds){ + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(SisLibDeviceImgRef::getImgId, imgIds); + return baseMapper.selectVoList(lqw); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java index 33684bf7..6f69e22e 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisLibDeviceRefServiceImpl.java @@ -10,7 +10,9 @@ import org.dromara.common.core.utils.StringUtils; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.domain.SisLibDeviceRef; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; import org.dromara.sis.domain.bo.SisLibDeviceRefBo; +import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import org.dromara.sis.mapper.SisLibDeviceRefMapper; import org.dromara.sis.service.ISisLibDeviceRefService; @@ -24,7 +26,7 @@ import java.util.Map; * 系统库与设备库的关联Service业务层处理 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Slf4j @RequiredArgsConstructor @@ -74,9 +76,9 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisLibDeviceRef::getId); - lqw.eq(bo.getLibId() !=null, SisLibDeviceRef::getLibId, bo.getLibId()); - lqw.eq(bo.getEqpId() !=null, SisLibDeviceRef::getEqpId, bo.getEqpId()); - lqw.eq(bo.getEqpLibCode() != null, SisLibDeviceRef::getEqpLibCode, bo.getEqpLibCode()); + lqw.eq(bo.getLibId() != null, SisLibDeviceRef::getLibId, bo.getLibId()); + lqw.eq(bo.getEqpId() != null, SisLibDeviceRef::getEqpId, bo.getEqpId()); + lqw.eq(bo.getEqpLibId() != null, SisLibDeviceRef::getEqpLibId, bo.getEqpLibId()); lqw.eq(bo.getEqpLibState() != null, SisLibDeviceRef::getEqpLibState, bo.getEqpLibState()); lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), SisLibDeviceRef::getSearchValue, bo.getSearchValue()); return lqw; @@ -138,4 +140,23 @@ public class SisLibDeviceRefServiceImpl implements ISisLibDeviceRefService { } return baseMapper.deleteByIds(ids) > 0; } + + @Override + public List queryByLibIds(Collection ids) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(SisLibDeviceRef::getLibId, ids); + return baseMapper.selectVoList(lqw); + } + + @Override + public Integer deleteByLibIds(Collection ids) { + LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); + lqw.in(SisLibDeviceRef::getLibId, ids); + return baseMapper.delete(lqw); + } + + @Override + public List queryDeviceListByLibIds(Collection ids) { + return baseMapper.queryDeviceListByLibIds(ids); + } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java index 09d0298c..9d4ca824 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibImgServiceImpl.java @@ -1,30 +1,33 @@ package org.dromara.sis.service.impl; -import org.dromara.common.core.utils.MapstructUtils; -import org.dromara.common.core.utils.StringUtils; -import org.dromara.common.mybatis.core.page.TableDataInfo; -import org.dromara.common.mybatis.core.page.PageQuery; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import org.dromara.sis.domain.bo.SisPersonLibImgBo; -import org.dromara.sis.domain.vo.SisPersonLibImgVo; +import org.dromara.common.core.utils.MapstructUtils; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.common.mybatis.core.page.PageQuery; +import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.domain.SisPersonLibImg; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; +import org.dromara.sis.domain.bo.SisPersonLibImgBo; +import org.dromara.sis.domain.vo.*; import org.dromara.sis.mapper.SisPersonLibImgMapper; -import org.dromara.sis.service.ISisPersonLibImgService; +import org.dromara.sis.sdk.unview.UnViewAiBoxApi; +import org.dromara.sis.sdk.unview.model.UvModel; +import org.dromara.sis.service.*; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; -import java.util.List; -import java.util.Map; -import java.util.Collection; +import java.util.*; /** * 人像信息Service业务层处理 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Slf4j @RequiredArgsConstructor @@ -32,6 +35,9 @@ import java.util.Collection; public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { private final SisPersonLibImgMapper baseMapper; + private final UnViewAiBoxApi unViewAiBoxApi; + private final ISisLibDeviceRefService libDeviceRefService; + private final ISisLibDeviceImgRefService libDeviceImgRefService; /** * 查询人像信息 @@ -40,7 +46,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { * @return 人像信息 */ @Override - public SisPersonLibImgVo queryById(Long id){ + public SisPersonLibImgVo queryById(Long id) { return baseMapper.selectVoById(id); } @@ -74,9 +80,8 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisPersonLibImg::getId); - lqw.eq(StringUtils.isNotBlank(bo.getLibCode()), SisPersonLibImg::getLibCode, bo.getLibCode()); + lqw.eq(bo.getLibId() != null, SisPersonLibImg::getLibId, bo.getLibId()); lqw.like(StringUtils.isNotBlank(bo.getImgName()), SisPersonLibImg::getImgName, bo.getImgName()); - lqw.eq(StringUtils.isNotBlank(bo.getImgCode()), SisPersonLibImg::getImgCode, bo.getImgCode()); lqw.eq(StringUtils.isNotBlank(bo.getImgUrl()), SisPersonLibImg::getImgUrl, bo.getImgUrl()); lqw.eq(bo.getSex() != null, SisPersonLibImg::getSex, bo.getSex()); lqw.eq(StringUtils.isNotBlank(bo.getEmail()), SisPersonLibImg::getEmail, bo.getEmail()); @@ -95,14 +100,11 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { * @return 是否新增成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean insertByBo(SisPersonLibImgBo bo) { SisPersonLibImg add = MapstructUtils.convert(bo, SisPersonLibImg.class); - validEntityBeforeSave(add); - boolean flag = baseMapper.insert(add) > 0; - if (flag) { - bo.setId(add.getId()); - } - return flag; + Assert.notNull(add, "数据处理失败"); + return baseMapper.insert(add) > 0; } /** @@ -121,7 +123,7 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { /** * 保存前的数据校验 */ - private void validEntityBeforeSave(SisPersonLibImg entity){ + private void validEntityBeforeSave(SisPersonLibImg entity) { //TODO 做一些数据校验,如唯一约束 } @@ -133,10 +135,53 @@ public class SisPersonLibImgServiceImpl implements ISisPersonLibImgService { * @return 是否删除成功 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { - if(isValid){ - //TODO 做一些业务上的校验,判断是否需要校验 - } - return baseMapper.deleteByIds(ids) > 0; + boolean del = baseMapper.deleteByIds(ids) > 0; + Assert.isTrue(del, "删除失败"); + + List list = libDeviceImgRefService.queryListByImgIds(ids); + Assert.notEmpty(list, "图片关联关系不存在"); + Collection refIds = list.stream().map(SisLibDeviceImgRefVo::getId).toList(); + Collection refLibIds = list.stream().map(SisLibDeviceImgRefVo::getLibId).toList(); + Integer[] refImgIds = list.stream().map(SisLibDeviceImgRefVo::getEqpLibImgId).map(Long::intValue).toArray(Integer[]::new); + + List ls = libDeviceRefService.queryDeviceListByLibIds(refLibIds); + Assert.notEmpty(ls, "库与设备关联关系不存在"); + + ls.forEach(item -> { + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount(item.getEqpAccount()); + systemInfo.setPassword(item.getEqpPwd()); + systemInfo.setIp(item.getEqpIp()); + systemInfo.setPort(item.getEqpPort()); + + Boolean b; + if (item.getEqpLibType() == 1) { + b = unViewAiBoxApi.batchDeletePerson(systemInfo, refImgIds); + log.info("删除宇视图片[{}]完成,result={}", refImgIds, b); + } else { + b = unViewAiBoxApi.deleteWorkClothes(systemInfo, item.getEqpLibId(), Arrays.stream(refImgIds).toList()); + log.info("删除宇视服装[{}]完成,result={}", refImgIds, b); + } + + Assert.isTrue(b, "删除图片失败"); + }); + + Boolean refFlag = libDeviceImgRefService.deleteWithValidByIds(refIds, true); + Assert.isTrue(refFlag, "删除图片关联关系失败"); + + return true; + } + + /** + * 查询列表 + * + * @param Ids 图片id + * @return 列表 + */ + @Override + public List queryListByIds(Collection Ids) { + return baseMapper.selectVoByIds(Ids); } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java index 021f3cb7..f6d10532 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/SisPersonLibServiceImpl.java @@ -1,7 +1,8 @@ package org.dromara.sis.service.impl; -import cn.hutool.core.lang.Assert; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.IdUtil; +import cn.hutool.core.lang.Assert; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -14,8 +15,10 @@ import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.sis.domain.SisLibDeviceRef; import org.dromara.sis.domain.SisPersonLib; +import org.dromara.sis.domain.bo.AccessControlLibDeviceBo; import org.dromara.sis.domain.bo.SisPersonLibBo; import org.dromara.sis.domain.vo.SisAccessControlDeviceVo; +import org.dromara.sis.domain.vo.SisLibDeviceRefVo; import org.dromara.sis.domain.vo.SisPersonLibVo; import org.dromara.sis.mapper.SisPersonLibMapper; import org.dromara.sis.sdk.unview.UnViewAiBoxApi; @@ -27,6 +30,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Map; @@ -34,7 +38,7 @@ import java.util.Map; * 人像库Service业务层处理 * * @author mocheng - * @date 2025-06-24 + * @since 2025-06-24 */ @Slf4j @Service @@ -42,10 +46,9 @@ import java.util.Map; public class SisPersonLibServiceImpl implements ISisPersonLibService { private final SisPersonLibMapper baseMapper; + private final UnViewAiBoxApi unViewAiBoxApi; private final ISisLibDeviceRefService sisLibDeviceRefService; private final ISisAccessControlDeviceService sisAccessControlDeviceService; - private final UnViewAiBoxApi unViewAiBoxApi; - /** * 查询人像库 @@ -55,7 +58,13 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { */ @Override public SisPersonLibVo queryById(Long id) { - return baseMapper.selectVoById(id); + SisPersonLibVo sisPersonLibVo = baseMapper.selectVoById(id); + List sisLibDeviceRefVos = sisLibDeviceRefService.queryByLibIds(Collections.singleton(id)); + if (CollUtil.isNotEmpty(sisLibDeviceRefVos)) { + List list = sisLibDeviceRefVos.stream().map(SisLibDeviceRefVo::getEqpId).toList(); + sisPersonLibVo.setEqpIds(list); + } + return sisPersonLibVo; } /** @@ -88,7 +97,6 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { Map params = bo.getParams(); LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.orderByAsc(SisPersonLib::getId); - lqw.eq(StringUtils.isNotBlank(bo.getLibCode()), SisPersonLib::getLibCode, bo.getLibCode()); lqw.like(StringUtils.isNotBlank(bo.getLibName()), SisPersonLib::getLibName, bo.getLibName()); lqw.eq(StringUtils.isNotBlank(bo.getLibDesc()), SisPersonLib::getLibDesc, bo.getLibDesc()); lqw.eq(bo.getLibType() != null, SisPersonLib::getLibType, bo.getLibType()); @@ -108,21 +116,20 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { public Boolean insertByBo(SisPersonLibBo bo) { SisPersonLib add = MapstructUtils.convert(bo, SisPersonLib.class); Assert.notNull(add, "数据处理失败"); - add.setLibCode(CodePrefixConstants.PERSONLIB_CODE_PREFIX + IdUtil.getSnowflakeNextIdStr()); boolean flag = baseMapper.insert(add) > 0; - log.info("库[{}]开始写入系统,result={}", add.getLibCode(), flag); + log.info("库[{}]开始写入系统,result={}", add.getLibName(), flag); if (flag) { bo.setId(add.getId()); for (Long eqpId : bo.getEqpIds()) { // 查询设备信息 - SisAccessControlDeviceVo sisAccessControlDeviceVo = sisAccessControlDeviceService.queryById(eqpId); - Assert.notNull(sisAccessControlDeviceVo, "门禁控制设备不存在,id=" + eqpId); - log.info("准备写入门禁设备,code={}", sisAccessControlDeviceVo.getEqpNo()); + SisAccessControlDeviceVo vo = sisAccessControlDeviceService.queryById(eqpId); + Assert.notNull(vo, "门禁控制设备不存在,id=" + eqpId); + log.info("准备写入门禁设备,code={}", vo.getEqpNo()); UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); - systemInfo.setAccount(sisAccessControlDeviceVo.getEqpAccount()); - systemInfo.setPassword(sisAccessControlDeviceVo.getEqpPwd()); - systemInfo.setIp(sisAccessControlDeviceVo.getEqpIp()); - systemInfo.setPort(systemInfo.getPort()); + systemInfo.setAccount(vo.getEqpAccount()); + systemInfo.setPassword(vo.getEqpPwd()); + systemInfo.setIp(vo.getEqpIp()); + systemInfo.setPort(vo.getEqpPort()); // libType =1 人像库,否则工服库 Integer outLibCode = null; if (bo.getLibType() == 1) { @@ -136,9 +143,10 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { Assert.notNull(outLibCode, "写入宇视盒子失败"); SisLibDeviceRef ref = new SisLibDeviceRef(); ref.setLibId(add.getId()); - ref.setEqpId(sisAccessControlDeviceVo.getId()); - ref.setEqpLibCode(Long.valueOf(outLibCode)); - ref.setEqpLibState(1L); + ref.setEqpId(vo.getId()); + ref.setEqpLibId(Long.valueOf(outLibCode)); + ref.setEqpLibState(1); + ref.setEqpLibType(bo.getLibType()); Boolean insert = sisLibDeviceRefService.insert(ref); Assert.isTrue(insert, "写入库关联关系表失败!"); log.info("同步建库完成!"); @@ -174,10 +182,30 @@ public class SisPersonLibServiceImpl implements ISisPersonLibService { * @param isValid 是否进行有效性校验 * @return 是否删除成功 */ + @Transactional(rollbackFor = Exception.class) @Override public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) { + // 查询关联的设备信息,先删除设备上的库 + List ls = sisLibDeviceRefService.queryDeviceListByLibIds(ids); + // 删除关联关系 + ls.forEach(item -> { + UvModel.UvSystemInfo systemInfo = new UvModel.UvSystemInfo(); + systemInfo.setAccount(item.getEqpAccount()); + systemInfo.setPassword(item.getEqpPwd()); + systemInfo.setIp(item.getEqpIp()); + systemInfo.setPort(item.getEqpPort()); + // 实际上这里需要根据厂商不同去不同的设备删除 + if (item.getEqpLibType() == 1) { + Boolean b = unViewAiBoxApi.deletePersonLib(systemInfo, item.getEqpLibId()); + log.info("删除宇试人像库[{}]完成,result={}", item.getEqpLibId(), b); + } else { + Boolean b = unViewAiBoxApi.deleteWorkClothesLib(systemInfo, item.getEqpLibId()); + log.info("删除宇试工服库[{}]完成,result={}", item.getEqpLibId(), b); + } + }); // 查询当前库是否绑定 - sisLibDeviceRefService.queryByIds(ids); + sisLibDeviceRefService.deleteByLibIds(ids); + log.info("删除personLibRef关联关系完成!"); return baseMapper.deleteByIds(ids) > 0; } } diff --git a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/TdFactoryServiceImpl.java b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/TdFactoryServiceImpl.java index 5920ca6f..c070bf48 100644 --- a/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/TdFactoryServiceImpl.java +++ b/ruoyi-modules/Sis/src/main/java/org/dromara/sis/service/impl/TdFactoryServiceImpl.java @@ -76,7 +76,6 @@ public class TdFactoryServiceImpl implements ITdFactoryService { lqw.orderByAsc(TdFactory::getId); lqw.eq(StringUtils.isNotBlank(bo.getFactoryNo()), TdFactory::getFactoryNo, bo.getFactoryNo()); lqw.like(StringUtils.isNotBlank(bo.getFactoryName()), TdFactory::getFactoryName, bo.getFactoryName()); - lqw.eq(bo.getDataState() != null, TdFactory::getDataState, bo.getDataState()); return lqw; } diff --git a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml new file mode 100644 index 00000000..27bad1ae --- /dev/null +++ b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisAuthRecordMapper.xml @@ -0,0 +1,14 @@ + + + + + + diff --git a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisEEightRefMapper.xml b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisEEightRefMapper.xml new file mode 100644 index 00000000..7708dd14 --- /dev/null +++ b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisEEightRefMapper.xml @@ -0,0 +1,7 @@ + + + + + diff --git a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisLibDeviceRefMapper.xml b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisLibDeviceRefMapper.xml index 4e939ba4..3d71bdf7 100644 --- a/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisLibDeviceRefMapper.xml +++ b/ruoyi-modules/Sis/src/main/resources/mapper/sis/SisLibDeviceRefMapper.xml @@ -4,4 +4,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +