Merge remote-tracking branch 'origin/master'
All checks were successful
Build and Push to Target Registry / 构建并推送镜像到目标仓库 (push) Successful in 6m51s

This commit is contained in:
2025-08-24 16:58:14 +08:00
82 changed files with 540 additions and 236 deletions

View File

@@ -202,4 +202,9 @@ jobs:
push: true
cache-from: type=gha
cache-to: type=gha,mode=max
- name: 重启服务
id: dockerfile-path
run: |
kubectl rollout restart deployment sis -n smartparks
kubectl rollout restart deployment property -n smartparks

View File

@@ -87,3 +87,8 @@ jobs:
echo "===== 清理操作 ====="
docker system prune -f
echo "===== 所有操作完成 ===="
- name: 重启服务
run: |
kubectl rollout restart deployment sis -n smartparks
kubectl rollout restart deployment property -n smartparks

21
pom.xml
View File

@@ -69,6 +69,23 @@
</properties>
<profiles>
<profile>
<id>local</id>
<properties>
<!-- 环境标识,需要与配置文件的名称相对应 -->
<profiles.active>dev</profiles.active>
<nacos.server>10.20.1.65:8848</nacos.server>
<logstash.address>10.20.1.65:4560</logstash.address>
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<nacos.config.group>DEFAULT_GROUP</nacos.config.group>
<nacos.username>nacos</nacos.username>
<nacos.password>nacos</nacos.password>
</properties>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>dev</id>
<properties>
@@ -108,10 +125,6 @@
<nacos.username>nacos</nacos.username>
<nacos.password>nacos</nacos.password>
</properties>
<activation>
<!-- 默认环境 -->
<activeByDefault>true</activeByDefault>
</activation>
</profile>
</profiles>

View File

@@ -24,7 +24,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 资产申请
* 前端访问路由地址为:/domain/application
* 前端访问路由地址为:/domain/procurementApplication
*
* @author mocheng
* @date 2025-07-25
@@ -40,7 +40,7 @@ public class CapitalApplicationController extends BaseController {
/**
* 查询资产申请列表
*/
// @SaCheckPermission("domain:application:list")
@SaCheckPermission("domain:procurementApplication:list")
@GetMapping("/list")
public TableDataInfo<CapitalApplicationVo> list(CapitalApplicationBo bo, PageQuery pageQuery) {
return capitalApplicationService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class CapitalApplicationController extends BaseController {
/**
* 导出资产申请列表
*/
@SaCheckPermission("domain:application:export")
@SaCheckPermission("domain:procurementApplication:export")
@Log(title = "资产申请", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CapitalApplicationBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class CapitalApplicationController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("domain:application:query")
@SaCheckPermission("domain:procurementApplication:query")
@GetMapping("/{id}")
public R<CapitalApplicationVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class CapitalApplicationController extends BaseController {
/**
* 新增资产申请
*/
// @SaCheckPermission("domain:application:add")
// @SaCheckPermission("domain:procurementApplication:add")
@Log(title = "资产申请", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class CapitalApplicationController extends BaseController {
/**
* 修改资产申请
*/
@SaCheckPermission("domain:application:edit")
@SaCheckPermission("domain:procurementApplication:edit")
@Log(title = "资产申请", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class CapitalApplicationController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("domain:application:remove")
@SaCheckPermission("domain:procurementApplication:remove")
@Log(title = "资产申请", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class CostPayFeeAuditController extends BaseController {
/**
* 查询费用-缴费审核列表
*/
// @SaCheckPermission("system:payFeeAudit:list")
@SaCheckPermission("property:payFeeAudit:list")
@GetMapping("/list")
public TableDataInfo<CostPayFeeAuditVo> list(CostPayFeeAuditBo bo, PageQuery pageQuery) {
return costPayFeeAuditService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class CostPayFeeAuditController extends BaseController {
/**
* 导出费用-缴费审核列表
*/
@SaCheckPermission("system:payFeeAudit:export")
@SaCheckPermission("property:payFeeAudit:export")
@Log(title = "费用-缴费审核", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CostPayFeeAuditBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class CostPayFeeAuditController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:payFeeAudit:query")
@SaCheckPermission("property:payFeeAudit:query")
@GetMapping("/{id}")
public R<CostPayFeeAuditVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class CostPayFeeAuditController extends BaseController {
/**
* 新增费用-缴费审核
*/
@SaCheckPermission("system:payFeeAudit:add")
@SaCheckPermission("property:payFeeAudit:add")
@Log(title = "费用-缴费审核", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class CostPayFeeAuditController extends BaseController {
/**
* 修改费用-缴费审核
*/
@SaCheckPermission("system:payFeeAudit:edit")
@SaCheckPermission("property:payFeeAudit:edit")
@Log(title = "费用-缴费审核", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class CostPayFeeAuditController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:payFeeAudit:remove")
@SaCheckPermission("property:payFeeAudit:remove")
@Log(title = "费用-缴费审核", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -24,7 +24,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 费用-抄类型
* 前端访问路由地址为:/system/returnPayFee
* 前端访问路由地址为:/property/returnPayFee
*
* @author mocheng
* @date 2025-07-17
@@ -40,7 +40,7 @@ public class CostReturnPayFeeController extends BaseController {
/**
* 查询费用-抄类型列表
*/
//@SaCheckPermission("system:returnPayFee:list")
@SaCheckPermission("property:returnPayFee:list")
@GetMapping("/list")
public TableDataInfo<CostReturnPayFeeVo> list(CostReturnPayFeeBo bo, PageQuery pageQuery) {
return costReturnPayFeeService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class CostReturnPayFeeController extends BaseController {
/**
* 导出费用-抄类型列表
*/
@SaCheckPermission("system:returnPayFee:export")
@SaCheckPermission("property:returnPayFee:export")
@Log(title = "费用-抄类型", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(CostReturnPayFeeBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class CostReturnPayFeeController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:returnPayFee:query")
@SaCheckPermission("property:returnPayFee:query")
@GetMapping("/{id}")
public R<CostReturnPayFeeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class CostReturnPayFeeController extends BaseController {
/**
* 新增费用-抄类型
*/
@SaCheckPermission("system:returnPayFee:add")
@SaCheckPermission("property:returnPayFee:add")
@Log(title = "费用-抄类型", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class CostReturnPayFeeController extends BaseController {
/**
* 修改费用-抄类型
*/
@SaCheckPermission("system:returnPayFee:edit")
@SaCheckPermission("property:returnPayFee:edit")
@Log(title = "费用-抄类型", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class CostReturnPayFeeController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:returnPayFee:remove")
@SaCheckPermission("property:returnPayFee:remove")
@Log(title = "费用-抄类型", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class InspectionRouteController extends BaseController {
/**
* 查询巡检路线列表
*/
//@SaCheckPermission("system:route:list")
@SaCheckPermission("property:inspectionRoute:list")
@GetMapping("/list")
public TableDataInfo<InspectionRouteVo> list(InspectionRouteBo bo, PageQuery pageQuery) {
return inspectionRouteService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class InspectionRouteController extends BaseController {
/**
* 导出巡检路线列表
*/
@SaCheckPermission("system:route:export")
@SaCheckPermission("property:inspectionRoute:export")
@Log(title = "巡检路线", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(InspectionRouteBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class InspectionRouteController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:route:query")
@SaCheckPermission("property:inspectionRoute:query")
@GetMapping("/{id}")
public R<InspectionRouteVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class InspectionRouteController extends BaseController {
/**
* 新增巡检路线
*/
@SaCheckPermission("system:route:add")
@SaCheckPermission("property:inspectionRoute:add")
@Log(title = "巡检路线", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class InspectionRouteController extends BaseController {
/**
* 修改巡检路线
*/
@SaCheckPermission("system:route:edit")
@SaCheckPermission("property:inspectionRoute:edit")
@Log(title = "巡检路线", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class InspectionRouteController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:route:remove")
@SaCheckPermission("property:inspectionRoute:remove")
@Log(title = "巡检路线", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class MachineMaintainPlanController extends BaseController {
/**
* 查询设备保养计划列表
*/
@SaCheckPermission("system:maintainPlan:list")
@SaCheckPermission("property:maintainPlan:list")
@GetMapping("/list")
public TableDataInfo<MachineMaintainPlanVo> list(MachineMaintainPlanBo bo, PageQuery pageQuery) {
return machineMaintainPlanService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class MachineMaintainPlanController extends BaseController {
/**
* 导出设备保养计划列表
*/
@SaCheckPermission("system:maintainPlan:export")
@SaCheckPermission("property:maintainPlan:export")
@Log(title = "设备保养计划", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(MachineMaintainPlanBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class MachineMaintainPlanController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("system:maintainPlan:query")
@SaCheckPermission("property:maintainPlan:query")
@GetMapping("/{id}")
public R<MachineMaintainPlanVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class MachineMaintainPlanController extends BaseController {
/**
* 新增设备保养计划
*/
@SaCheckPermission("system:maintainPlan:add")
@SaCheckPermission("property:maintainPlan:add")
@Log(title = "设备保养计划", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class MachineMaintainPlanController extends BaseController {
/**
* 修改设备保养计划
*/
@SaCheckPermission("system:maintainPlan:edit")
@SaCheckPermission("property:maintainPlan:edit")
@Log(title = "设备保养计划", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class MachineMaintainPlanController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:maintainPlan:remove")
@SaCheckPermission("property:maintainPlan:remove")
@Log(title = "设备保养计划", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -24,7 +24,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 设备保养任务明细
* 前端访问路由地址为:/domain/maintainTaskDetail
* 前端访问路由地址为:/property/maintainTaskDetail
*
* @author mocheng
* @date 2025-07-16
@@ -40,7 +40,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
/**
* 查询设备保养任务明细列表
*/
@SaCheckPermission("domain:maintainTaskDetail:list")
@SaCheckPermission("property:maintainTaskDetail:list")
@GetMapping("/list")
public TableDataInfo<MachineMaintainTaskDetailVo> list(MachineMaintainTaskDetailBo bo, PageQuery pageQuery) {
return machineMaintainTaskDetailService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
/**
* 导出设备保养任务明细列表
*/
@SaCheckPermission("domain:maintainTaskDetail:export")
@SaCheckPermission("property:maintainTaskDetail:export")
@Log(title = "设备保养任务明细", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(MachineMaintainTaskDetailBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("domain:maintainTaskDetail:query")
@SaCheckPermission("property:maintainTaskDetail:query")
@GetMapping("/{id}")
public R<MachineMaintainTaskDetailVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
/**
* 新增设备保养任务明细
*/
@SaCheckPermission("domain:maintainTaskDetail:add")
@SaCheckPermission("property:maintainTaskDetail:add")
@Log(title = "设备保养任务明细", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
/**
* 修改设备保养任务明细
*/
@SaCheckPermission("domain:maintainTaskDetail:edit")
@SaCheckPermission("property:maintainTaskDetail:edit")
@Log(title = "设备保养任务明细", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class MachineMaintainTaskDetailController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("domain:maintainTaskDetail:remove")
@SaCheckPermission("property:maintainTaskDetail:remove")
@Log(title = "设备保养任务明细", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -40,7 +40,7 @@ public class MeetAttachController extends BaseController {
/**
* 查询分页会议室增值服务列表
*/
// @SaCheckPermission("property:attach:list")
@SaCheckPermission("property:conferenceAddServices:list")
@GetMapping("/list")
public TableDataInfo<MeetAttachVo> pageList(MeetAttachBo bo, PageQuery pageQuery) {
return meetAttachService.queryPageList(bo, pageQuery);
@@ -57,7 +57,7 @@ public class MeetAttachController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("property:attach:query")
@SaCheckPermission("property:conferenceAddServices:query")
@GetMapping("/{id}")
public R<MeetAttachVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -67,7 +67,7 @@ public class MeetAttachController extends BaseController {
/**
* 新增会议室增值服务
*/
@SaCheckPermission("property:attach:add")
@SaCheckPermission("property:conferenceAddServices:add")
@Log(title = "会议室增值服务", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -78,7 +78,7 @@ public class MeetAttachController extends BaseController {
/**
* 修改会议室增值服务
*/
// @SaCheckPermission("property:attach:edit")
@SaCheckPermission("property:conferenceAddServices:edit")
@Log(title = "会议室增值服务", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -91,7 +91,7 @@ public class MeetAttachController extends BaseController {
*
* @param ids 主键串
*/
// @SaCheckPermission("property:attach:remove")
@SaCheckPermission("property:conferenceAddServices:remove")
@Log(title = "会议室增值服务", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -1,5 +1,6 @@
package org.dromara.property.controller;
import cn.dev33.satoken.annotation.SaCheckPermission;
import jakarta.validation.constraints.NotNull;
import lombok.RequiredArgsConstructor;
import org.dromara.common.core.domain.R;
@@ -40,7 +41,7 @@ public class MeetBookingController extends BaseController {
/**
* 查询会议预约记录列表
*/
//@SaCheckPermission("property:meetbooking:list")
@SaCheckPermission("property:meetbooking:list")
@GetMapping("/list")
public TableDataInfo<MeetBookingVo> list(MeetBookingBo bo, PageQuery pageQuery) {
return meetBookingService.queryPageList(bo, pageQuery);
@@ -64,7 +65,7 @@ public class MeetBookingController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("property:meetbooking:query")
@SaCheckPermission("property:meetbooking:query")
@GetMapping("/{id}")
public R<MeetBookingDetailVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -74,7 +75,7 @@ public class MeetBookingController extends BaseController {
/**
* 新增会议预约
*/
//@SaCheckPermission("property:meetbooking:add")
@SaCheckPermission("property:meetbooking:add")
@Log(title = "会议预约", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -85,7 +86,7 @@ public class MeetBookingController extends BaseController {
/**
* 修改会议预约
*/
// @SaCheckPermission("property:meetbooking:edit")
@SaCheckPermission("property:meetbooking:edit")
@Log(title = "会议预约", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()

View File

@@ -43,7 +43,7 @@ public class MeetController extends BaseController {
/**
* 查询会议室管理列表
*/
// @SaCheckPermission("property:meet:list")
@SaCheckPermission("property:meet:list")
@Operation
@GetMapping("/list")
public TableDataInfo<MeetVo> list(MeetBo bo, PageQuery pageQuery) {
@@ -66,7 +66,7 @@ public class MeetController extends BaseController {
*
* @param id 主键
*/
//@SaCheckPermission("property:meet:query")
@SaCheckPermission("property:meet:query")
@Operation
@GetMapping("/{id}")
public R<MeetVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable("id") Long id) {

View File

@@ -24,7 +24,7 @@ import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 【工单类型】
* 前端访问路由地址为:/system/workOrdersType
* 前端访问路由地址为:/property/workOrdersType
*
* @author mocheng
* @date 2025-07-09
@@ -40,7 +40,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
/**
* 查询【工单类型】列表
*/
@SaCheckPermission("system:workOrdersType:list")
@SaCheckPermission("property:workOrdersType:list")
@GetMapping("/list")
public TableDataInfo<ServiceWorkOrdersTypeVo> list(ServiceWorkOrdersTypeBo bo, PageQuery pageQuery) {
return serviceWorkOrdersTypeService.queryPageList(bo, pageQuery);
@@ -49,7 +49,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
/**
* 导出【工单类型】列表
*/
@SaCheckPermission("system:workOrdersType:export")
@SaCheckPermission("property:workOrdersType:export")
@Log(title = "【导出工单类型】", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(ServiceWorkOrdersTypeBo bo, HttpServletResponse response) {
@@ -62,7 +62,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
*
* @param id 主键
*/
@SaCheckPermission("system:workOrdersType:query")
@SaCheckPermission("property:workOrdersType:query")
@GetMapping("/{id}")
public R<ServiceWorkOrdersTypeVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -72,7 +72,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
/**
* 新增【工单类型】
*/
@SaCheckPermission("system:workOrdersType:add")
@SaCheckPermission("property:workOrdersType:add")
@Log(title = "【新增工单类型】", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
@@ -83,7 +83,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
/**
* 修改【工单类型】
*/
@SaCheckPermission("system:workOrdersType:edit")
@SaCheckPermission("property:workOrdersType:edit")
@Log(title = "【工单类型】", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
@@ -96,7 +96,7 @@ public class ServiceWorkOrdersTypeController extends BaseController {
*
* @param ids 主键串
*/
@SaCheckPermission("system:workOrdersType:remove")
@SaCheckPermission("property:workOrdersType:remove")
@Log(title = "【工单类型】", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")

View File

@@ -149,10 +149,28 @@ public class TbVisitorManagementController extends BaseController {
return toAjax(tbVisitorManagementService.insertByBo(bo));
}
/**
* h5端新增访客管理
* @param bo
* @return
*/
@SaCheckPermission("property:visitorManagement:addH5VistorManagement")
@Log(title = "访客管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping("/addH5VistorManagement")
public R<Void> addH5VistorManagement(@Validated(AddGroup.class) @RequestBody TbVisitorManagementBo bo) {
QrCodeInfo info = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY +"Qrcode" + bo.getQrCodeId());
if (info==null){
return R.fail("请确认Qr码有效");
}
bo.setType(0);
return toAjax(tbVisitorManagementService.insertH5ByBo(bo));
}
/**
* pc端新增访客管理
*/
@SaCheckPermission("property:visitorManagement::addVisitorManagement")
@SaCheckPermission("property:visitorManagement:addVisitorManagement")
@Log(title = "访客管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping

View File

@@ -40,7 +40,7 @@ public class CleanOrderController extends BaseController {
/**
* 查询保洁订单列表
*/
@SaCheckPermission("property:clean_order:list")
//@SaCheckPermission("property:clean_order:list")
@GetMapping("/list")
public TableDataInfo<CleanOrderVo> list(CleanOrderBo bo, PageQuery pageQuery) {
return cleanOrderService.queryPageList(bo, pageQuery);

View File

@@ -45,7 +45,7 @@ public class MServiceWorkOrdersController extends BaseController {
*/
@GetMapping("/list")
public TableDataInfo<ServiceWorkOrdersVo> list(ServiceWorkOrdersBo bo, PageQuery pageQuery) {
return serviceWorkOrdersService.queryPageList(bo, pageQuery);
return serviceWorkOrdersService.queryMobilePageList(bo, pageQuery);
}
/**
* 修改【工单处理】

View File

@@ -93,6 +93,11 @@ public class Meet extends TenantEntity {
*/
private String appointmentTime;
/**
* 图片
*/
private String picture;
/**
* 开放开始时段
*/

View File

@@ -67,7 +67,7 @@ public class MeetBookingBo extends BaseEntity {
* 参会人数
*/
@NotNull(message = "参会人数不能为空", groups = { AddGroup.class, EditGroup.class })
private int personSum;
private Integer personSum;
/**
* 费用
@@ -78,17 +78,17 @@ public class MeetBookingBo extends BaseEntity {
/**
* 是否包含增值服务
*/
private int attach;
private Integer attach;
/**
* 支付状态
*/
private int payState;
private Integer payState;
/**
* 状态
*/
private int state;
private Integer state;
/**

View File

@@ -3,6 +3,7 @@ package org.dromara.property.domain.bo.mobile;
import cn.idev.excel.annotation.ExcelProperty;
import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
@@ -28,7 +29,11 @@ public class MServiceWorkOrdersBo extends BaseEntity {
*/
@NotNull(message = "id不能为空", groups = { EditGroup.class })
private Long id;
/**
* 工单名称
*/
@NotBlank(message = "工单名称不能为空", groups = { EditGroup.class })
private String orderName;
/**
* 工单编号
*/

View File

@@ -48,6 +48,11 @@ public class CostCarChargeVo implements Serializable {
*/
@ExcelProperty(value = "业主")
private Long personId;
/**
* 业主姓名
*/
@ExcelProperty(value = "业主姓名")
private String personName;
/**
* 楼层

View File

@@ -46,6 +46,10 @@ public class CostHouseChargeVo implements Serializable {
* 业主
*/
private Long personId;
/**
* 业主
*/
private String personName;
/**
* 收费项目
*/

View File

@@ -41,7 +41,7 @@ public class InspectionPointVo implements Serializable {
* 巡检项目id
*/
@ExcelProperty(value = "巡检项目id")
private Long itemName;
private String itemName;
/**
* 巡检点名称

View File

@@ -123,6 +123,10 @@ public class MeetVo implements Serializable {
* 预约时间
*/
private String appointmentTime;
/**
* 图片
*/
private String picture;
/**
* (1免费2.付费,3面议)

View File

@@ -9,6 +9,7 @@ import org.dromara.sis.api.domain.RemoteSisDeviceManage;
import java.io.Serial;
import java.io.Serializable;
import java.util.List;
/**
@@ -45,4 +46,6 @@ public class AttendanceAreaDeviceVo implements Serializable {
private RemoteSisDeviceManage remoteSisDeviceManage;
private List<AttendanceAreaDevice> areaDevice;
}

View File

@@ -38,6 +38,11 @@ public class CleanOrderVo implements Serializable {
*/
@ExcelProperty(value = "位置")
private Long location;
/**
* 位置
*/
@ExcelProperty(value = "位置")
private String locationName;
/**
* 面积

View File

@@ -1,6 +1,7 @@
package org.dromara.property.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.dromara.property.domain.TbRoom;
import org.dromara.property.domain.vo.TbRoomVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
@@ -19,5 +20,5 @@ public interface TbRoomMapper extends BaseMapperPlus<TbRoom, TbRoomVo> {
//查询房间名称
String queryRoomName(Long roomId);
Map<Long,String> queryRoomNameList(List<Long> ids);
Map<Long,String> queryRoomNameList(@Param("ids") List<Long> ids);
}

View File

@@ -94,4 +94,12 @@ public interface IServiceWorkOrdersService {
* @return
*/
List<Map<Object, Object>> getServiceWorkOrdersHandler(String type);
/**
* 分页查询【工单处理】列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 【工单处理】分页列表
*/
TableDataInfo<ServiceWorkOrdersVo> queryMobilePageList(ServiceWorkOrdersBo bo, PageQuery pageQuery);
}

View File

@@ -56,6 +56,14 @@ public interface ITbVisitorManagementService {
*/
Boolean insertByBo(TbVisitorManagementBo bo);
/**
* 新增访客管理
*
* @param bo 访客管理
* @return 是否新增成功
*/
Boolean insertH5ByBo(TbVisitorManagementBo bo);
Boolean insertVistorManagementByBo(TbVisitorManagementBo bo);

View File

@@ -1,40 +1,41 @@
package org.dromara.property.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.property.domain.CostHouseCharge;
import org.apache.dubbo.config.annotation.DubboReference;
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.property.domain.CostCarCharge;
import org.dromara.property.domain.CostPayFeeAudit;
import org.dromara.property.domain.CostReturnPayFee;
import org.dromara.property.domain.ResidentPerson;
import org.dromara.property.domain.bo.CostCarChargeBo;
import org.dromara.property.domain.bo.CostChargeReturnFeeBo;
import org.dromara.property.domain.enums.ChargeStatusEnum;
import org.dromara.property.domain.vo.CostHouseChargeVo;
import org.dromara.property.domain.vo.CostItemsVo;
import org.dromara.property.mapper.CostItemsMapper;
import org.dromara.property.mapper.CostPayFeeAuditMapper;
import org.dromara.property.mapper.CostReturnPayFeeMapper;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.CostCarChargeBo;
import org.dromara.property.domain.vo.CostCarChargeVo;
import org.dromara.property.domain.CostCarCharge;
import org.dromara.property.mapper.CostCarChargeMapper;
import org.dromara.property.domain.vo.CostItemsVo;
import org.dromara.property.mapper.*;
import org.dromara.property.service.ICostCarChargeService;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Collection;
import java.util.Objects;
import java.util.stream.Collectors;
/**
* 费用-车辆收费Service业务层处理
@@ -51,6 +52,9 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
private final CostItemsMapper costItemsMapper;
private final CostPayFeeAuditMapper costPayFeeAuditMapper;
private final CostReturnPayFeeMapper costReturnPayFeeMapper;
@DubboReference
private RemoteUserService remoteUserService;
private final ResidentPersonMapper residentPersonMapper;
/**
@@ -60,7 +64,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
* @return 费用-车辆收费
*/
@Override
public CostCarChargeVo queryById(Long id){
public CostCarChargeVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
@@ -75,6 +79,16 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
public TableDataInfo<CostCarChargeVo> queryPageList(CostCarChargeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CostCarCharge> lqw = buildQueryWrapper(bo);
Page<CostCarChargeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
// List<Long> residentPersonIdList = result.getRecords().stream().map(vo -> vo.getPersonId()).distinct().collect(Collectors.toList());
// List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(residentPersonIdList);
List<ResidentPerson> residentPeoplelist = residentPersonMapper.selectList();
result.getRecords().stream().forEach(s -> {
if (CollUtil.isNotEmpty(residentPeoplelist)) {
ResidentPerson residentPerson = residentPeoplelist.stream()
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getPersonId())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(residentPerson)?residentPerson.getUserName():null);
}
});
return TableDataInfo.build(result);
}
@@ -142,6 +156,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
/**
* 车辆退费
*
* @param bo
* @return
*/
@@ -149,7 +164,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
@Transactional(rollbackFor = Exception.class)
public Boolean returnFree(CostChargeReturnFeeBo bo) {
CostCarCharge costCarCharge = baseMapper.selectById(bo.getId());
Assert.isTrue(ObjectUtil.isNotEmpty(costCarCharge),"该费用不存在");
Assert.isTrue(ObjectUtil.isNotEmpty(costCarCharge), "该费用不存在");
var CostReturnPayFee = new CostReturnPayFee()
.setChargeId(costCarCharge.getId())
.setChargeType("2")
@@ -159,8 +174,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
.setUserId(costCarCharge.getPersonId())
.setPayNo(costCarCharge.getId().toString())
.setPayAcount(costCarCharge.getAmountReceivable())
.setState("0")
;
.setState("0");
costReturnPayFeeMapper.insert(CostReturnPayFee);
costCarCharge.setChargeStatus(ChargeStatusEnum.REFUND_PENDING_REVIEW.getValue());
return baseMapper.updateById(costCarCharge) > 0;
@@ -183,7 +197,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(CostCarCharge entity){
private void validEntityBeforeSave(CostCarCharge entity) {
//TODO 做一些数据校验,如唯一约束
}
@@ -197,7 +211,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;

View File

@@ -1,9 +1,11 @@
package org.dromara.property.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -15,10 +17,13 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.property.domain.CostPayFeeAudit;
import org.dromara.property.domain.CostReturnPayFee;
import org.dromara.property.domain.ResidentPerson;
import org.dromara.property.domain.bo.CostChargeReturnFeeBo;
import org.dromara.property.domain.enums.ChargeStatusEnum;
import org.dromara.property.domain.vo.*;
import org.dromara.property.mapper.*;
import org.dromara.system.api.RemoteUserService;
import org.dromara.system.api.domain.vo.RemoteUserVo;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.CostHouseChargeBo;
import org.dromara.property.domain.CostHouseCharge;
@@ -48,6 +53,8 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
private final CostPayFeeAuditMapper costPayFeeAuditMapper;
private final CostReturnPayFeeMapper costReturnPayFeeMapper;
private final ResidentPersonMapper residentPersonMapper;
@DubboReference
private RemoteUserService remoteUserService;
/**
* 查询房屋收费
*
@@ -59,11 +66,12 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
CostHouseChargeVo costHouseChargeVo = baseMapper.selectVoById(id);
CostHouseChargeDetailVo costHouseChargeDetailVo = BeanUtil.copyProperties(costHouseChargeVo, CostHouseChargeDetailVo.class);
CostItemsVo costItemsVo = costItemsMapper.selectVoById(costHouseChargeDetailVo.getCostItemsId());
costHouseChargeDetailVo.setCostItemsVo(costItemsVo);
costHouseChargeDetailVo.setCostItemsVo(ObjectUtil.isNotEmpty(costItemsVo)?costItemsVo:null);
TbRoomVo tbRoomVo = tbRoomMapper.selectVoById(costHouseChargeDetailVo.getRoomId());
costHouseChargeDetailVo.setRoomVo(tbRoomVo);
ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(costHouseChargeVo.getPersonId());
costHouseChargeDetailVo.setPersonName(residentPersonVo.getUserName());
costHouseChargeDetailVo.setRoomVo(ObjectUtil.isNotEmpty(tbRoomVo)?tbRoomVo:null);
ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(costHouseChargeVo.getPersonId());
//RemoteUserVo userInfo = remoteUserService.getUserInfoById(costHouseChargeVo.getPersonId());
costHouseChargeDetailVo.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo)?residentPersonVo.getUserName():null);
return costHouseChargeDetailVo;
}
@@ -77,7 +85,15 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
@Override
public TableDataInfo<CostHouseChargeVo> queryPageList(CostHouseChargeBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CostHouseCharge> lqw = buildQueryWrapper(bo);
List<ResidentPerson> residentPeoplelist = residentPersonMapper.selectList();
Page<CostHouseChargeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
result.getRecords().stream().forEach(s -> {
if (CollUtil.isNotEmpty(residentPeoplelist)) {
ResidentPerson residentPerson = residentPeoplelist.stream()
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getPersonId())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(residentPerson)?residentPerson.getUserName():null);
}
});
return TableDataInfo.build(result);
}

View File

@@ -1,6 +1,7 @@
package org.dromara.property.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.lang.Assert;
import cn.hutool.core.util.ObjectUtil;
import org.checkerframework.checker.units.qual.C;
import org.dromara.common.core.utils.MapstructUtils;
@@ -176,11 +177,14 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
if (entity.getState().equals("1")) {
if (entity.getChargeType().equals("1")) {
CostHouseCharge costHouseCharge = coinHouseChargeMapper.selectById(entity.getChargeId());
Assert.isTrue(ObjectUtil.isNotEmpty(costHouseCharge), "该房屋收费项不存在!");
costHouseCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_WAS_APPROVED.getValue());
coinHouseChargeMapper.updateById(costHouseCharge);
}
if (entity.getChargeType().equals("2")) {
CostCarCharge costCarCharge = costCarChargeMapper.selectById(entity.getChargeId());
Assert.isTrue(ObjectUtil.isNotEmpty(costCarCharge), "该车辆收费项为空");
costCarCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_WAS_APPROVED.getValue());
costCarChargeMapper.updateById(costCarCharge);
}
@@ -188,11 +192,13 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
if (entity.getState().equals("2")) {
if (entity.getChargeType().equals("1")) {
CostHouseCharge costHouseCharge = coinHouseChargeMapper.selectById(entity.getChargeId());
Assert.isTrue(ObjectUtil.isNotEmpty(costHouseCharge), "该房屋收费项为空");
costHouseCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_REVIEW_FAILED.getValue());
coinHouseChargeMapper.updateById(costHouseCharge);
}
if (entity.getChargeType().equals("2")) {
CostCarCharge costCarCharge = costCarChargeMapper.selectById(entity.getChargeId());
Assert.isTrue(ObjectUtil.isNotEmpty(costCarCharge), "该车辆收费项为空");
costCarCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_REVIEW_FAILED.getValue());
costCarChargeMapper.updateById(costCarCharge);
}

View File

@@ -138,6 +138,7 @@ public class CustomerContingenPlanServiceImpl implements ICustomerContingenPlanS
bo.setId(add.getId());
CustomerContingenPlanRecord customerContingenPlanRecord = new CustomerContingenPlanRecord();
customerContingenPlanRecord.setStatus(add.getStatus());
customerContingenPlanRecord.setStatus("0");
customerContingenPlanRecord.setContingenPlanId(add.getId());
customerContingenPlanRecord.setDutyPersion(add.getDutyPersion());
customerContingenPlanRecordMapper.insert(customerContingenPlanRecord);

View File

@@ -64,10 +64,10 @@ public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
* @return 客户服务-意见反馈
*/
@Override
public CustomerFeedbacksVo queryById(Long id){
public CustomerFeedbacksVo queryById(Long id) {
CustomerFeedbacksVo customerFeedbacksVo = baseMapper.selectVoById(id);
ServiceWorkOrdersType serviceWorkOrdersType = serviceWorkOrdersTypeMapper.selectById(customerFeedbacksVo.getFeedbackType());
customerFeedbacksVo.setFeedbackTypeName(StringUtils.isNotBlank(serviceWorkOrdersType.getOrderTypeName())?serviceWorkOrdersType.getOrderTypeName():null);
customerFeedbacksVo.setFeedbackTypeName(StringUtils.isNotBlank(serviceWorkOrdersType.getOrderTypeName()) ? serviceWorkOrdersType.getOrderTypeName() : null);
String nikName = remoteUserService.selectNicknameById(customerFeedbacksVo.getFeedbackPersion());
customerFeedbacksVo.setFeedbackPersionName(nikName);
return customerFeedbacksVo;
@@ -100,28 +100,29 @@ public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
.collect(Collectors.toList());
List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(uerIds);
result.getRecords().stream().forEach(s -> {
assembly(s,serviceWorkOrdersTypes,remoteUserVos);
});
assembly(s, serviceWorkOrdersTypes, remoteUserVos);
});
}
return TableDataInfo.build(result);
}
/**
*
* @param customerFeedbacksVo 意见反馈返回信息
*
*/
private void assembly(CustomerFeedbacksVo customerFeedbacksVo,List<ServiceWorkOrdersType> serviceWorkOrdersTypes,List<RemoteUserVo> remoteUserVos){
if(CollUtil.isNotEmpty(remoteUserVos)){
RemoteUserVo remoteUserVo = remoteUserVos.stream()
.filter(vo -> vo.getUserId() != null && vo.getUserId().equals(customerFeedbacksVo.getFeedbackPersion())).findFirst().orElse(null);
customerFeedbacksVo.setFeedbackPersionName(StringUtils.isNotBlank(remoteUserVo.getNickName())?remoteUserVo.getNickName():null);
}
private void assembly(CustomerFeedbacksVo customerFeedbacksVo, List<ServiceWorkOrdersType> serviceWorkOrdersTypes, List<RemoteUserVo> remoteUserVos) {
if (CollUtil.isNotEmpty(remoteUserVos)) {
RemoteUserVo remoteUserVo = remoteUserVos.stream()
.filter(vo -> vo.getUserId() != null && vo.getUserId().equals(customerFeedbacksVo.getFeedbackPersion())).findFirst().orElse(null);
customerFeedbacksVo.setFeedbackPersionName(ObjectUtil.isNotNull(remoteUserVo) ? remoteUserVo.getNickName() : null);
}
if (CollUtil.isNotEmpty(serviceWorkOrdersTypes)) {
ServiceWorkOrdersType serviceWorkOrdersType = serviceWorkOrdersTypes.stream().filter(vo -> vo.getId() != null && vo.getId().equals(customerFeedbacksVo.getFeedbackType())).findFirst().orElse(null);
customerFeedbacksVo.setFeedbackTypeName(StringUtils.isNotBlank(serviceWorkOrdersType.getOrderTypeName())?serviceWorkOrdersType.getOrderTypeName():null);
customerFeedbacksVo.setFeedbackTypeName(ObjectUtil.isNotNull(serviceWorkOrdersType) ? serviceWorkOrdersType.getOrderTypeName() : null);
}
}
/**
* 查询符合条件的客户服务-意见反馈列表
*
@@ -179,22 +180,23 @@ public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(CustomerFeedbacksBo bo) {
CustomerFeedbacks update = MapstructUtils.convert(bo, CustomerFeedbacks.class);
validEntityBeforeUpdate(update);
validEntityBeforeUpdate(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(CustomerFeedbacks entity){
private void validEntityBeforeSave(CustomerFeedbacks entity) {
//TODO 做一些数据校验,如唯一约束
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeUpdate(CustomerFeedbacks entity){
private void validEntityBeforeUpdate(CustomerFeedbacks entity) {
//TODO 做一些数据校验,如唯一约束
if(entity.getIsWorkOrder().equals("0")&& ObjectUtil.isEmpty(entity.getOrderId())){
if (entity.getIsWorkOrder().equals("0") && ObjectUtil.isEmpty(entity.getOrderId())) {
ServiceWorkOrders serviceWorkOrders = new ServiceWorkOrders();
serviceWorkOrders.setOrderName("意见反馈转工单");
LoginUser user = LoginHelper.getLoginUser();
@@ -226,7 +228,7 @@ public class CustomerFeedbacksServiceImpl implements ICustomerFeedbacksService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;

View File

@@ -7,11 +7,13 @@ import lombok.RequiredArgsConstructor;
import org.apache.dubbo.config.annotation.DubboReference;
import org.dromara.property.domain.AttendanceUserGroup;
import org.dromara.property.domain.ServiceWorkOrdersType;
import org.dromara.property.domain.TbUnit;
import org.dromara.property.domain.enums.BookingPayStatusEnum;
import org.dromara.property.domain.enums.BookingStatusEnum;
import org.dromara.property.domain.enums.MeetAttachStatusEnum;
import org.dromara.property.domain.enums.MeetStatusEnum;
import org.dromara.property.mapper.ServiceWorkOrdersTypeMapper;
import org.dromara.property.mapper.TbUnitMapper;
import org.dromara.property.mapper.attendanceMapper.AttendanceUserGroupMapper;
import org.dromara.property.service.*;
import org.dromara.system.api.RemoteUserService;
@@ -20,6 +22,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -45,6 +49,8 @@ public class EnumFetcherServiceImpl implements EnumFetcherService {
@Autowired
private ServiceWorkOrdersTypeMapper serviceWorkOrdersTypeMapper;
@Autowired
private TbUnitMapper unitMapper;
@Autowired
private AttendanceUserGroupMapper attendanceUserGroupMapper;
@Override
@@ -68,13 +74,33 @@ public class EnumFetcherServiceImpl implements EnumFetcherService {
return getMeetBookingPayStatus();
case "getMeetBookingStatus":
return getMeetBookingStatus();
case "getAccount":
return getAccount(new ArrayList<>());
case "getServiceWorkOrdersHandler":
return serviceWorkOrdersService.getServiceWorkOrdersHandler(type);
case "getUnit":
return getUnit();
default:
throw new IllegalArgumentException("Unknown type: " + type);
}
}
/**
* 获取单位枚举接口下拉
* @return
*/
private List<Map<Object, Object>> getUnit() {
List<TbUnit> tbUnitList = unitMapper.selectList();
return tbUnitList.stream()
.map(e -> {
Map<Object, Object> map = new HashMap<>();
map.put("value", e.getId());
map.put("name", e.getUnitName());
return map;
})
.collect(Collectors.toList());
}
/**
* 获取会议室状态枚举接口
@@ -128,18 +154,25 @@ public class EnumFetcherServiceImpl implements EnumFetcherService {
@Override
public List<Map<Object, Object>> getShiftScheduler(String type) {
ServiceWorkOrdersType serviceWorkOrdersType = serviceWorkOrdersTypeMapper.selectById(type);
if (serviceWorkOrdersType == null) {
return List.of();
}
LocalDate today = LocalDate.now();
List<AttendanceUserGroup> attendanceUserGroups = attendanceUserGroupMapper.selectList(
new LambdaQueryWrapper<AttendanceUserGroup>()
//查询今天上班的人员
.eq(AttendanceUserGroup::getStartDate, today)
.eq(ObjectUtil.isNotNull(serviceWorkOrdersType),AttendanceUserGroup::getDeptId, serviceWorkOrdersType.getCreateDept())
.le(AttendanceUserGroup::getStartDate, today)
.ge(AttendanceUserGroup::getEndDate, today)
.eq(AttendanceUserGroup::getDeptId, serviceWorkOrdersType.getCreateDept())
);
if (CollUtil.isEmpty(attendanceUserGroups)) {
return List.of();
}
// 收集用户id
List<Long> userIdList = attendanceUserGroups.stream().map(AttendanceUserGroup::getEmployeeId).toList();
List<Long> userIdList = attendanceUserGroups.stream()
.map(AttendanceUserGroup::getEmployeeId)
.toList();
return getAccount(userIdList);
}

View File

@@ -183,15 +183,17 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
*/
private void validEntityBeforebo(Long id,InspectionPlanBo bo) {
//TODO 做一些数据校验,如唯一约束
Assert.isTrue(CollUtil.isNotEmpty(bo.getInspectionPlanStaffBoList()), "巡检人员不存在");
QueryWrapper<InspectionPlanStaff> staffLambdaQueryWrapper = new QueryWrapper<>();
staffLambdaQueryWrapper.eq("inspection_plan_id", id);
inspectionPlanStaffMapper.delete(staffLambdaQueryWrapper);
List<InspectionPlanStaffBo> inspectionPlanStaffBoList = bo.getInspectionPlanStaffBoList();
inspectionPlanStaffBoList.stream().forEach(s->{
s.setInspectionPlanId(id);
});
inspectionPlanStaffMapper.insertBatch(BeanUtil.copyToList(inspectionPlanStaffBoList, InspectionPlanStaff.class));
if(CollUtil.isNotEmpty(bo.getInspectionPlanStaffBoList())){
QueryWrapper<InspectionPlanStaff> staffLambdaQueryWrapper = new QueryWrapper<>();
staffLambdaQueryWrapper.eq("inspection_plan_id", id);
inspectionPlanStaffMapper.delete(staffLambdaQueryWrapper);
List<InspectionPlanStaffBo> inspectionPlanStaffBoList = bo.getInspectionPlanStaffBoList();
inspectionPlanStaffBoList.stream().forEach(s->{
s.setInspectionPlanId(id);
});
inspectionPlanStaffMapper.insertBatch(BeanUtil.copyToList(inspectionPlanStaffBoList, InspectionPlanStaff.class));
}
}
/**

View File

@@ -1,6 +1,7 @@
package org.dromara.property.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.util.ObjectUtil;
import org.dromara.common.core.utils.MapstructUtils;
import org.dromara.common.core.utils.StringUtils;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -12,8 +13,10 @@ import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.dromara.property.domain.InspectionPoint;
import org.dromara.property.domain.bo.InspectionPointBo;
import org.dromara.property.domain.vo.InspectionItemVo;
import org.dromara.property.domain.vo.InspectionPlanVo;
import org.dromara.property.domain.vo.InspectionPointVo;
import org.dromara.property.mapper.InspectionItemMapper;
import org.dromara.property.mapper.InspectionPlanMapper;
import org.dromara.property.mapper.InspectionPointMapper;
import org.dromara.property.service.IInspectionPointService;
@@ -39,6 +42,7 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
private final InspectionPointMapper baseMapper;
private final InspectionPlanMapper inspectionPlanMapper;
private final InspectionItemMapper inspectionItemMapper;
/**
* 查询巡检点
@@ -62,6 +66,8 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
public TableDataInfo<InspectionPointVo> queryPageList(InspectionPointBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<InspectionPoint> lqw = buildQueryWrapper(bo);
Page<InspectionPointVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
//收集巡检项目id
if (CollectionUtil.isEmpty(result.getRecords())) {
return TableDataInfo.build(result);
}
@@ -69,8 +75,11 @@ public class InspectionPointServiceImpl implements IInspectionPointService {
.map(vo -> vo.getItemId())
.distinct()
.collect(Collectors.toList());
List<InspectionPlanVo> inspectionPlanVos = inspectionPlanMapper.selectVoByIds(itemIdList);
List<InspectionItemVo> inspectionItemVos = inspectionItemMapper.selectVoByIds(itemIdList);
result.getRecords().stream().forEach(s->{
InspectionItemVo inspectionItemVo = inspectionItemVos.stream().filter(vo -> vo.getId() != null && vo.getId().equals(s.getItemId())).findFirst().orElse(null);
s.setItemName(ObjectUtil.isNotEmpty(inspectionItemVo)?inspectionItemVo.getItemName():null);
});
return TableDataInfo.build(result);
}

View File

@@ -64,12 +64,13 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
MeetBookingDetailVo meetBookingDetailVo = BeanUtil.copyProperties(meetBookingVo, MeetBookingDetailVo.class);
MeetVo meetVo = meetMapper.selectVoById(meetBookingDetailVo.getMeetId());
String locationName = roomMapper.queryRoomName(Long.valueOf(meetVo.getLocation()));
meetBookingDetailVo.setLocationName(ObjectUtil.isNotEmpty(locationName)?locationName:null);
meetBookingDetailVo.setLocationName(ObjectUtil.isNotEmpty(locationName) ? locationName : null);
//RemoteUserVo userInfo = remoteUserService.getUserInfoById(Long.valueOf(meetBookingVo.getPerson()));
ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(Long.valueOf(meetBookingVo.getPerson()));
meetBookingDetailVo.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo)?residentPersonVo.getUserName():null);
meetBookingDetailVo.setPhone(ObjectUtil.isNotEmpty(residentPersonVo)?residentPersonVo.getPhone():null);
meetBookingDetailVo.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null);
meetBookingDetailVo.setPhone(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getPhone(): null);
ResidentUnitVo residentUnitVo = residentUnitMapper.selectVoById(Long.valueOf(meetBookingVo.getUnit()));
meetBookingDetailVo.setUnitName(ObjectUtil.isNotEmpty(residentPersonVo)?residentUnitVo.getName():null);
meetBookingDetailVo.setUnitName(ObjectUtil.isNotNull(residentUnitVo) ? residentUnitVo.getName() : null);
return meetBookingDetailVo;
}
@@ -86,7 +87,8 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
Page<MeetBookingVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List<ResidentUnitVo> residentUnitVolist = residentUnitMapper.selectVoList();
List<Long> userId = result.getRecords().stream().map(vo -> vo.getPerson()).distinct().map(Long::parseLong).collect(Collectors.toList());
List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(userId);
List<ResidentPersonVo> remoteUserVos = residentPersonMapper.selectVoByIds(userId);
// List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(userId);
List<MeetBookingVo> meetBookingVoList = new ArrayList<>();
result.getRecords().stream().forEach(s -> {
if (CollUtil.isNotEmpty(residentUnitVolist)) {
@@ -95,10 +97,10 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
s.setUnitName(ObjectUtil.isNotEmpty(residentUnitVo) ? residentUnitVo.getName() : null);
}
if (CollUtil.isNotEmpty(remoteUserVos)) {
RemoteUserVo remoteUserVo = remoteUserVos.stream()
ResidentPersonVo residentPersonVo = remoteUserVos.stream()
.filter(vo -> vo.getUserId() != null && String.valueOf(vo.getUserId()).equals(s.getPerson())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(remoteUserVo) ? remoteUserVo.getNickName() : null);
s.setPhone(ObjectUtil.isNotEmpty(remoteUserVo) ? remoteUserVo.getPhonenumber() : null);
s.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null);
s.setPhone(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getPhone() : null);
}
meetBookingVoList.add(s);
});
@@ -118,6 +120,7 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
LocalDateTime startOfDay = date.atStartOfDay();
LocalDateTime endOfDay = date.atTime(LocalTime.MAX);
meetBookingLambdaQueryWrapper
.eq(MeetBooking::getState,2)
.le(MeetBooking::getScheduledStarttime, endOfDay)
.ge(MeetBooking::getScheduledEndtime, startOfDay);
List<MeetBooking> meetBookings = baseMapper.selectList(meetBookingLambdaQueryWrapper);
@@ -128,19 +131,20 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
SimpleDateFormat df = new SimpleDateFormat("HH");
List<ResidentUnitVo> residentUnitVolist = residentUnitMapper.selectVoList();
List<Long> userId = meetBookingAppointmentVoList.stream().map(vo -> vo.getPerson()).distinct().map(Long::parseLong).collect(Collectors.toList());
List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(userId);
// List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(userId);
List<ResidentPersonVo> remoteUserVos = residentPersonMapper.selectVoByIds(userId);
meetBookingAppointmentVoList.stream().forEach(
s -> {
if (CollUtil.isNotEmpty(residentUnitVolist)) {
ResidentUnitVo residentUnitVo = residentUnitVolist.stream()
.filter(vo -> vo.getId() != null && String.valueOf(vo.getId()).equals(s.getUnit())).findFirst().orElse(null);
s.setUnitName(residentUnitVo.getName());
s.setUnitName(ObjectUtil.isNotEmpty(residentUnitVo) ?residentUnitVo.getName():null);
}
if (CollUtil.isNotEmpty(remoteUserVos)) {
RemoteUserVo remoteUserVo = remoteUserVos.stream()
.filter(vo -> vo.getUserId() != null && String.valueOf(vo.getUserId()).equals(s.getPerson())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(remoteUserVo) ? remoteUserVo.getNickName() : null);
s.setPhone(ObjectUtil.isNotEmpty(remoteUserVo) ? remoteUserVo.getPhonenumber() : null);
ResidentPersonVo residentPersonVo = remoteUserVos.stream()
.filter(vo -> vo.getId() != null && String.valueOf(vo.getId()).equals(s.getPerson())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null);
s.setPhone(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getPhone() : null);
}
String str = df.format(s.getScheduledStarttime());
int a = Integer.parseInt(str);
@@ -176,6 +180,7 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
// 构建查询条件
LambdaQueryWrapper<MeetBooking> bookingLambdaQueryWrapper = new LambdaQueryWrapper<>();
bookingLambdaQueryWrapper.eq(MeetBooking::getMeetId, meetId)
.eq(MeetBooking::getState,2)
.ge(MeetBooking::getScheduledStarttime, startOfWeek)
.le(MeetBooking::getScheduledEndtime, endOfWeek);
List<MeetBookingVo> meetBookingVoList = baseMapper.selectVoList(bookingLambdaQueryWrapper);
@@ -188,17 +193,18 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
SimpleDateFormat df = new SimpleDateFormat("HH");
List<ResidentUnitVo> residentUnitVolist = residentUnitMapper.selectVoList();
List<Long> userId = meetBookingWeekVoList.stream().map(vo -> vo.getPerson()).distinct().map(Long::parseLong).collect(Collectors.toList());
List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(userId);
// List<RemoteUserVo> remoteUserVos = remoteUserService.selectListByIds(userId);
List<ResidentPersonVo> remoteUserVos = residentPersonMapper.selectVoByIds(userId);
meetBookingWeekVoList.stream().forEach(s -> {
if (CollUtil.isNotEmpty(residentUnitVolist)) {
ResidentUnitVo residentUnitVo = residentUnitVolist.stream()
.filter(vo -> vo.getId() != null && String.valueOf(vo.getId()).equals(s.getUnit())).findFirst().orElse(null);
s.setUnitName(residentUnitVo.getName());
s.setUnitName(ObjectUtil.isNotEmpty(residentUnitVo)? residentUnitVo.getName():null);
}
if (CollUtil.isNotEmpty(remoteUserVos)) {
RemoteUserVo remoteUserVo = remoteUserVos.stream()
ResidentPersonVo residentPersonVo = remoteUserVos.stream()
.filter(vo -> vo.getUserId() != null && String.valueOf(vo.getUserId()).equals(s.getPerson())).findFirst().orElse(null);
s.setPersonName(ObjectUtil.isNotEmpty(remoteUserVo) ? remoteUserVo.getNickName() : null);
s.setPersonName(ObjectUtil.isNotEmpty(residentPersonVo) ? residentPersonVo.getUserName() : null);
}
//设置指定的Date对象不设置默认返回当天的星期
calendar.setTime(s.getScheduledStarttime());
@@ -216,6 +222,9 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
private LambdaQueryWrapper<MeetBooking> buildQueryWrapper(MeetBookingBo bo) {
LambdaQueryWrapper<MeetBooking> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(MeetBooking::getId);
lqw.eq(ObjectUtil.isNotEmpty(bo.getPayState()), MeetBooking::getPayState, bo.getPayState());
lqw.eq(ObjectUtil.isNotEmpty(bo.getState()), MeetBooking::getState, bo.getState());
lqw.eq(ObjectUtil.isNotEmpty(bo.getPerson()), MeetBooking::getPerson, bo.getPerson());
lqw.like(StringUtils.isNotBlank(bo.getName()), MeetBooking::getName, bo.getName());
lqw.eq(bo.getMeetId() != null, MeetBooking::getMeetId, bo.getMeetId());
return lqw;
@@ -291,21 +300,21 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
@Override
public List<Map<Object, Object>> getMeetBooking(String type) {
return switch (type) {
case "getMeetBookingPerson" -> getList().stream()
.map(MeetBooking::getPerson)
.filter(Objects::nonNull)
.distinct()
.map(person -> {
Map<Object, Object> map = new HashMap<>();
map.put("value", person);
map.put("name", person);
return map;
})
.collect(Collectors.toList());
return switch (type) {
case "getMeetBookingPerson" -> getList().stream()
.map(MeetBooking::getPerson)
.filter(Objects::nonNull)
.distinct()
.map(person -> {
Map<Object, Object> map = new HashMap<>();
map.put("value", person);
map.put("name", person);
return map;
})
.collect(Collectors.toList());
default -> throw new IllegalArgumentException("Unknown type: " + type);
};
default -> throw new IllegalArgumentException("Unknown type: " + type);
};
}
public List<MeetBooking> getList() {

View File

@@ -63,16 +63,16 @@ public class MeetServiceImpl implements IMeetService {
@Override
public MeetVo queryById(Long id) {
MeetVo meetVo = baseMapper.selectVoById(id);
// ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(meetVo.getPrincipals());
// if(ObjectUtil.isNotEmpty(residentPersonVo)){
// meetVo.setPrincipalsName(residentPersonVo.getUserName());
// meetVo.setPhoneNo(residentPersonVo.getPhone());
// }
RemoteUserVo userInfo = remoteUserService.getUserInfoById(Long.valueOf(meetVo.getPrincipals()));
if (ObjectUtil.isNotEmpty(userInfo)) {
meetVo.setPrincipalsName(userInfo.getNickName());
meetVo.setPhoneNo(userInfo.getPhonenumber());
ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(meetVo.getPrincipals());
if(ObjectUtil.isNotEmpty(residentPersonVo)){
meetVo.setPrincipalsName(residentPersonVo.getUserName());
meetVo.setPhoneNo(residentPersonVo.getPhone());
}
// RemoteUserVo userInfo = remoteUserService.getUserInfoById(Long.valueOf(meetVo.getPrincipals()));
// if (ObjectUtil.isNotEmpty(userInfo)) {
// meetVo.setPrincipalsName(userInfo.getNickName());
// meetVo.setPhoneNo(userInfo.getPhonenumber());
// }
String locationName = roomMapper.queryRoomName(Long.valueOf(meetVo.getLocation()));
meetVo.setLocationName(locationName);
return meetVo;
@@ -172,6 +172,7 @@ public class MeetServiceImpl implements IMeetService {
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(MeetBo bo) {
Meet add = MapstructUtils.convert(bo, Meet.class);
bo.setStatus(1);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {

View File

@@ -505,6 +505,7 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService {
ServiceWorkOrders add = MapstructUtils.convert(bo, ServiceWorkOrders.class);
LoginUser user = LoginHelper.getLoginUser();
add.setOrderNo("GD" + IdUtil.getSnowflakeNextIdStr());
add.setOrderName("工单名称");
add.setStatus("0");
add.setInitiatorPeople(user.getNickname());
validEntityBeforeSave(add);
@@ -544,5 +545,38 @@ public class ServiceWorkOrdersServiceImpl implements IServiceWorkOrdersService {
};
}
/**
* 分页查询【工单处理】列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 【工单处理】分页列表
*/
@Override
public TableDataInfo<ServiceWorkOrdersVo> queryMobilePageList(ServiceWorkOrdersBo bo, PageQuery pageQuery) {
//当前登录用户
LoginUser loginUser = LoginHelper.getLoginUser();
if (!LoginHelper.isSuperAdmin(loginUser.getUserId())) {
bo.setHandler(loginUser.getUserId());
}
LambdaQueryWrapper<ServiceWorkOrders> lqw = buildQueryWrapper(bo);
Page<ServiceWorkOrdersVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if (ObjectUtil.isEmpty(result.getRecords())) {
return TableDataInfo.build(result);
}
List<Long> typeList = result.getRecords().stream().map(vo -> vo.getType()).distinct().collect(Collectors.toList());
List<ServiceWorkOrdersTypeVo> serviceWorkOrdersTypeVoList = typesMapper.selectVoByIds(typeList);
if (ObjectUtil.isEmpty(serviceWorkOrdersTypeVoList)) {
return TableDataInfo.build(result);
}
List<ServiceWorkOrdersVo> serviceWorkOrdersVoList = new ArrayList<>();
result.getRecords().stream().forEach(s -> {
ServiceWorkOrdersTypeVo serviceWorkOrdersTypeVo = serviceWorkOrdersTypeVoList.stream().filter(vo -> vo.getId() != null && vo.getId().equals(s.getType())).findFirst().orElse(null);
s.setTypeName(ObjectUtil.isNotNull(serviceWorkOrdersTypeVo) ? serviceWorkOrdersTypeVo.getOrderTypeName() : null);
serviceWorkOrdersVoList.add(s);
});
return TableDataInfo.build(new Page<ServiceWorkOrdersVo>().setRecords(serviceWorkOrdersVoList).setTotal(result.getTotal()));
}
}

View File

@@ -159,6 +159,37 @@ public class TbVisitorManagementServiceImpl implements ITbVisitorManagementServi
}
/**
* H5端新增访客管理
*
* @param bo 访客管理
* @return 是否新增成功
*/
@Override
public Boolean insertH5ByBo(TbVisitorManagementBo bo) {
QrCodeInfo info = RedisUtils.getCacheObject(GlobalConstants.CAPTCHA_CODE_KEY + "Qrcode" + bo.getQrCodeId());
RedisUtils.deleteKeys(GlobalConstants.CAPTCHA_CODE_KEY + "Qrcode" + bo.getQrCodeId());
TbVisitorManagement add = MapstructUtils.convert(bo, TbVisitorManagement.class);
validEntityBeforeSave(add);
assert add != null;
add.setCreateById(info.getUserid());
RemoteUserVo userInfoById = remoteUserService.getUserInfoById(info.getUserid());
add.setTenantId(userInfoById.getTenantId());
add.setCreateBy(userInfoById.getUserId());
add.setUpdateById(userInfoById.getUserId());
add.setUpdateBy(userInfoById.getUserId());
add.setCreateDept(userInfoById.getDeptId());
boolean flag = baseMapper.insert(add) > 0;
if (flag){
bo.setId(add.getId());
Long e8Id = syncE8PlatVisitor(bo);
add.setEEightId(e8Id);
baseMapper.updateById(add);
}
return flag;
}
/**
* pc端新增访客管理
*

View File

@@ -54,7 +54,19 @@ public class AttendanceAreaServiceImpl implements IAttendanceAreaService {
*/
@Override
public AttendanceAreaVo queryById(Long id) {
return baseMapper.selectVoById(id);
AttendanceAreaVo attendanceAreaVo = baseMapper.selectVoById(id);
//根据id查询中间表数据
List<AttendanceAreaDeviceVo> attendanceAreaDeviceList = areaDeviceMapper.selectVoList(Wrappers.<AttendanceAreaDevice>lambdaQuery().eq(AttendanceAreaDevice::getAreaId, id));
//根据设备id集合查询设备数据
attendanceAreaDeviceList.forEach(item -> {
//根据deviceManageId查询设备数据
RemoteSisDeviceManage remoteSisDeviceManage = remoteDeviceService.queryDeviceById(item.getDeviceManageId());
item.setRemoteSisDeviceManage(remoteSisDeviceManage);
attendanceAreaVo.setAreaDevice(attendanceAreaDeviceList);
});
return attendanceAreaVo;
}
/**

View File

@@ -264,6 +264,9 @@ public class AttendanceGroupServiceImpl implements IAttendanceGroupService {
//1.固定班制
//取出考勤组id
Long groupId = update.getId();
if(bo.getWeekSetList() == null || bo.getWeekSetList().isEmpty()){
return baseMapper.updateById(update) > 0;
}
bo.getWeekSetList().forEach(
weekSet -> {
//1.固定班制,修改考勤周期表中的数据

View File

@@ -10,12 +10,10 @@ 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.property.domain.Clean;
import org.dromara.property.domain.CleanOrder;
import org.dromara.property.domain.CleanRelation;
import org.dromara.property.domain.CleanserverOrder;
import org.dromara.property.domain.*;
import org.dromara.property.domain.bo.cleanOrderBo.CleanOrderBo;
import org.dromara.property.domain.vo.cleanOrderVo.CleanOrderVo;
import org.dromara.property.mapper.TbRoomMapper;
import org.dromara.property.mapper.cleanOrderMapper.CleanMapper;
import org.dromara.property.mapper.cleanOrderMapper.CleanOrderMapper;
import org.dromara.property.mapper.cleanOrderMapper.CleanRelationMapper;
@@ -47,6 +45,7 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
private final CleanMapper cleanMapper;
private final CleanRelationMapper cleanRelationMapper;
private final TbRoomMapper roomMapper;
//NOTUNBOOKING:未退订 BOOKING:已退订
private final Integer NOTUNBOOKING = 0;
@@ -97,6 +96,13 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
LambdaQueryWrapper<CleanOrder> lqw = buildQueryWrapper(bo);
Page<CleanOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw, CleanOrderVo.class);
// Page<CleanOrderVo> result = baseMapper.selectForPage(pageQuery.build(), lqw);
//List<Long> locationIdList = result.getRecords().stream().map(CleanOrderVo::getLocation).collect(Collectors.toList());
// Map<Long, String> longStringMap = roomMapper.queryRoomName(item.getLocation());
//找出符合条件的房间名称
result.getRecords().forEach(item -> {
String localName = roomMapper.queryRoomName(item.getLocation());
item.setLocationName(localName != null ? localName : "未知房间");
});
return TableDataInfo.build(result);
}

View File

@@ -59,7 +59,8 @@ public class ServiceWorkOrderTasks {
List<AttendanceUserGroup> attendanceUserGroups = attendanceUserGroupMapper.selectList(
new LambdaQueryWrapper<AttendanceUserGroup>()
//查询今天上班的人员
.eq(AttendanceUserGroup::getStartDate, today)
.le(AttendanceUserGroup::getStartDate, today)
.ge(AttendanceUserGroup::getEndDate, today)
);
serviceWorkOrderList.stream().forEach(s->{
if(CollUtil.isNotEmpty(attendanceUserGroups)){

View File

@@ -6,26 +6,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryRoomName" resultType="java.lang.String">
SELECT
concat(c.community_name, b.building_name, u.unit_name, f.floor_name, r.room_number)
concat(c.community_name, b.building_name, f.floor_name, r.room_number)
FROM
tb_room r
INNER JOIN tb_floor f ON r.floor_id = f.id
INNER JOIN tb_unit u ON f.unit_id = u.id
INNER JOIN tb_building b ON u.building_id = b.id
INNER JOIN tb_building b ON f.building_id = b.id
INNER JOIN tb_community c ON b.community_id = c.id
where r.id=#{roomId}
</select>
<select id="queryRoomNameList" resultType="java.util.Map">
<select id="queryRoomNameList" parameterType="list" resultType="java.util.Map">
SELECT
concat(c.community_name, b.building_name, u.unit_name, f.floor_name, r.room_number)
r.id,
concat(c.community_name, b.building_name, f.floor_name, r.room_number) AS room_name
FROM
tb_room r
INNER JOIN tb_floor f ON r.floor_id = f.id
INNER JOIN tb_unit u ON f.unit_id = u.id
INNER JOIN tb_building b ON u.building_id = b.id
INNER JOIN tb_building b ON f.building_id = b.id
INNER JOIN tb_community c ON b.community_id = c.id
where r.id IN
WHERE r.id IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>

View File

@@ -16,7 +16,6 @@ ENV SERVER_PORT=10002 LANG=C.UTF-8 LC_ALL=C.UTF-8 JAVA_OPTS=""
EXPOSE ${SERVER_PORT}
ADD ./target/Sis.jar ./app.jar
COPY ./linux64/ .
SHELL ["/bin/bash", "-c"]

View File

@@ -1,12 +0,0 @@
<?xml version="1.0" encoding="GB2312"?>
<SdkLocal>
<SdkLog>
<logLevel>3</logLevel><!--req, 1-ERROR, 2-DEBUG, 3-INFO-->
<logDirectory>./SDKLOG/</logDirectory><!--the end of the string must be '/'-->
<autoDelete>true</autoDelete><!--true: There are less than 10 files in the directory, it will be auto deleted by sdk when the files are more than 10; false: No upper limit to the number of log files-->
</SdkLog>
<HeartbeatCfg>
<Interval>120</Interval> <!-- <20><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>λ<EFBFBD><EFBFBD><EBA3AC><EFBFBD><EFBFBD>0<EFBFBD><30>ʹ<EFBFBD><CAB9>Ĭ<EFBFBD><C4AC>ֵ120s<30><73>ȡֵ<C8A1><D6B5>ΧΪ[30, 120] С<><D0A1>30s<30><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ30s<30><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>120s<30><73><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ120s-->
<Count>1</Count> <!-- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD><D8B5><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>0<EFBFBD><30>ʹ<EFBFBD><CAB9>Ĭ<EFBFBD><C4AC>ֵ1<D6B5><31>-->
</HeartbeatCfg>
</SdkLocal>

Binary file not shown.

Binary file not shown.

View File

@@ -24,7 +24,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* 【请填写功能名称】
* 事件附件
* 前端访问路由地址为:/system/alarmEventAttachments
*
* @author mocheng
@@ -39,41 +39,37 @@ public class SisAlarmEventAttachmentsController extends BaseController {
private final ISisAlarmEventAttachmentsService sisAlarmEventAttachmentsService;
/**
* 查询【请填写功能名称】列表
* 查询事件附件列表
*/
@SaCheckPermission("system:alarmEventAttachments:list")
@GetMapping("/list")
public TableDataInfo<SisAlarmEventAttachmentsVo> list(SisAlarmEventAttachmentsBo bo, PageQuery pageQuery) {
return sisAlarmEventAttachmentsService.queryPageList(bo, pageQuery);
}
/**
* 查询【请填写功能名称】列表
* 查询事件附件列表
*/
@SaCheckPermission("system:alarmEventAttachments:list")
@GetMapping("/query/{alarmId}")
public R<List<SisAlarmEventAttachmentsVo>> queryListByAlarmId(@PathVariable("alarmId") String alarmId) {
public R<List<SisAlarmEventAttachmentsVo>> queryListByAlarmId(@PathVariable("alarmId") Long alarmId) {
return R.ok(sisAlarmEventAttachmentsService.queryListByAlarmId(alarmId));
}
/**
* 导出【请填写功能名称】列表
* 导出事件附件列表
*/
@SaCheckPermission("system:alarmEventAttachments:export")
@Log(title = "【请填写功能名称】", businessType = BusinessType.EXPORT)
@Log(title = "事件附件", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SisAlarmEventAttachmentsBo bo, HttpServletResponse response) {
List<SisAlarmEventAttachmentsVo> list = sisAlarmEventAttachmentsService.queryList(bo);
ExcelUtil.exportExcel(list, "【请填写功能名称】", SisAlarmEventAttachmentsVo.class, response);
ExcelUtil.exportExcel(list, "事件附件", SisAlarmEventAttachmentsVo.class, response);
}
/**
* 获取【请填写功能名称】详细信息
* 获取事件附件详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:alarmEventAttachments:query")
@GetMapping("/{id}")
public R<SisAlarmEventAttachmentsVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
@@ -81,10 +77,9 @@ public class SisAlarmEventAttachmentsController extends BaseController {
}
/**
* 新增【请填写功能名称】
* 新增事件附件
*/
@SaCheckPermission("system:alarmEventAttachments:add")
@Log(title = "【请填写功能名称】", businessType = BusinessType.INSERT)
@Log(title = "事件附件", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SisAlarmEventAttachmentsBo bo) {
@@ -92,10 +87,9 @@ public class SisAlarmEventAttachmentsController extends BaseController {
}
/**
* 修改【请填写功能名称】
* 修改事件附件
*/
@SaCheckPermission("system:alarmEventAttachments:edit")
@Log(title = "【请填写功能名称】", businessType = BusinessType.UPDATE)
@Log(title = "事件附件", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SisAlarmEventAttachmentsBo bo) {
@@ -103,12 +97,11 @@ public class SisAlarmEventAttachmentsController extends BaseController {
}
/**
* 删除【请填写功能名称】
* 删除事件附件
*
* @param ids 主键串
*/
@SaCheckPermission("system:alarmEventAttachments:remove")
@Log(title = "【请填写功能名称】", businessType = BusinessType.DELETE)
@Log(title = "事件附件", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("ids") Long[] ids) {

View File

@@ -103,4 +103,13 @@ public class SisAlarmEventProcessController extends BaseController {
@PathVariable("ids") Long[] ids) {
return toAjax(sisAlarmEventProcessService.deleteWithValidByIds(List.of(ids), true));
}
/**
* 查询处理结果信息
*/
@GetMapping("/query/result/{alarmId}")
public R<SisAlarmEventProcessVo> queryResult(@PathVariable("alarmId") Long alarmId) {
return R.ok(sisAlarmEventProcessService.queryResult(alarmId));
}
}

View File

@@ -23,7 +23,7 @@ public class AlarmCompleteBo {
/**
* 附件信息(任务完成上传的图片或者文件)
*/
private List<String> attachments;
private List<Long> attachments;
}

View File

@@ -1,19 +1,15 @@
package org.dromara.sis.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.sis.domain.SisAlarmEventProcess;
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.sis.domain.SisAlarmEventProcess;
import java.io.Serial;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
/**
@@ -55,7 +51,7 @@ public class SisAlarmEventProcessVo implements Serializable {
private String solveName;
/**
* 工单问题回复内容
* 问题回复内容
*/
@ExcelProperty(value = "工单问题回复内容")
private String workReply;
@@ -77,4 +73,8 @@ public class SisAlarmEventProcessVo implements Serializable {
*/
private Integer state;
/**
* 附件列表
*/
private List<SisAlarmEventAttachmentsVo> attachments;
}

View File

@@ -22,7 +22,6 @@ public class HikApiService {
@Resource
private HikEqpConfig hikEqpConfig;
private static final String URL_PREFIX = "http://127.0.0.1/eqp/hik/";
private static final String LOGIN_URI = "login";
private static final String LOGOUT_URI = "logout";
private static final String CHANNEL_LIST = "channel/list";

View File

@@ -80,6 +80,6 @@ public interface ISisAlarmEventAttachmentsService {
* @param alarmId 告警id
* @return 返回附件列表
*/
List<SisAlarmEventAttachmentsVo> queryListByAlarmId(String alarmId);
List<SisAlarmEventAttachmentsVo> queryListByAlarmId(Long alarmId);
}

View File

@@ -74,4 +74,11 @@ public interface ISisAlarmEventProcessService {
* @return 返回是否写入成功
*/
Boolean insert(SisAlarmEventProcess process);
/**
* 查询事件处理结果
* @param alarmId 处理结果信息
* @return 返回处理结果
*/
SisAlarmEventProcessVo queryResult(Long alarmId);
}

View File

@@ -138,7 +138,7 @@ public class SisAlarmEventAttachmentsServiceImpl implements ISisAlarmEventAttach
@Override
public List<SisAlarmEventAttachmentsVo> queryListByAlarmId(String alarmId) {
public List<SisAlarmEventAttachmentsVo> queryListByAlarmId(Long alarmId) {
LambdaQueryWrapper<SisAlarmEventAttachments> lqw = Wrappers.lambdaQuery();
lqw.eq(SisAlarmEventAttachments::getEventId, alarmId);
return baseMapper.selectVoList(lqw);

View File

@@ -11,8 +11,10 @@ import org.dromara.common.mybatis.core.page.PageQuery;
import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.sis.domain.SisAlarmEventProcess;
import org.dromara.sis.domain.bo.SisAlarmEventProcessBo;
import org.dromara.sis.domain.vo.SisAlarmEventAttachmentsVo;
import org.dromara.sis.domain.vo.SisAlarmEventProcessVo;
import org.dromara.sis.mapper.SisAlarmEventProcessMapper;
import org.dromara.sis.service.ISisAlarmEventAttachmentsService;
import org.dromara.sis.service.ISisAlarmEventProcessService;
import org.springframework.stereotype.Service;
@@ -32,6 +34,7 @@ import java.util.Map;
public class SisAlarmEventProcessServiceImpl implements ISisAlarmEventProcessService {
private final SisAlarmEventProcessMapper baseMapper;
private final ISisAlarmEventAttachmentsService sisAlarmEventAttachmentsService;
/**
* 查询告警信息处理流程记录
@@ -139,4 +142,19 @@ public class SisAlarmEventProcessServiceImpl implements ISisAlarmEventProcessSer
public Boolean insert(SisAlarmEventProcess process) {
return baseMapper.insert(process) > 0;
}
@Override
public SisAlarmEventProcessVo queryResult(Long alarmId) {
LambdaQueryWrapper<SisAlarmEventProcess> lqw = Wrappers.lambdaQuery();
lqw.eq(SisAlarmEventProcess::getAlarmId, alarmId);
lqw.eq(SisAlarmEventProcess::getState, 40);
SisAlarmEventProcessVo sisAlarmEventProcessVo = baseMapper.selectVoOne(lqw);
if (sisAlarmEventProcessVo == null) {
return null;
}
// 加载附件列表
List<SisAlarmEventAttachmentsVo> sisAlarmEventAttachmentsVos = sisAlarmEventAttachmentsService.queryListByAlarmId(sisAlarmEventProcessVo.getId());
sisAlarmEventProcessVo.setAttachments(sisAlarmEventAttachmentsVos);
return sisAlarmEventProcessVo;
}
}

View File

@@ -208,11 +208,23 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService {
alarmEvents.setServBeginTime(now);
alarmEvents.setServEndTime(DateUtil.offset(now, DateField.HOUR, 2));
alarmEvents.setDescription(EventSmallTypeEnum.SMART_REPORT_ZJCR.getDesc());
int insert = this.baseMapper.insert(alarmEvents);
log.info("写入报警事件表完成num={}", insert);
// 写入事件处理表
SisAlarmEventProcess alarmEventProcess = new SisAlarmEventProcess();
alarmEventProcess.setId(0L);
alarmEventProcess.setAlarmId(0L);
alarmEventProcess.setSolveId(0L);
alarmEventProcess.setSolveName("");
alarmEventProcess.setState(0);
alarmEventProcess.setWorkReply("");
alarmEventProcess.setWorkReplyTime(new Date());
alarmEventProcess.setReceiveTaskTag(0L);
alarmEventProcess.setTenantId("");
// 写入附件表
// 上传图片
List<SisAlarmEventAttachments> ls = new ArrayList<>();
if (smallImg != null && smallImg.length > 0) {
ls.add(createEventAttachments(smallImg, alarmEvents, sisDeviceManage));
@@ -303,13 +315,13 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService {
@Override
public Boolean complete(AlarmCompleteBo bo) {
LoginUser loginUser = LoginHelper.getLoginUser();
// 验证工单状态
// 验证状态
SisAlarmEventsVo sisAlarmEventsVo = this.baseMapper.selectVoById(bo.getAlarmId());
if (sisAlarmEventsVo == null) {
throw new RuntimeException("工单信息不存在!");
throw new RuntimeException("告警信息不存在!");
}
if (sisAlarmEventsVo.getState().equals(AlarmStatus.REPORTED.getCode())) {
throw new RuntimeException("当前工单已指派,请刷新后重新指派!");
throw new RuntimeException("当前告警已指派,请刷新后重新指派!");
}
Date now = new Date();
SisAlarmEvents events = new SisAlarmEvents();
@@ -332,6 +344,16 @@ public class SisAlarmEventsServiceImpl implements ISisAlarmEventsService {
process.setReceiveTaskTag(0L);
Boolean insert = alarmEventProcessService.insert(process);
log.info("事件处理信息写入完成,result= {}", insert);
if (CollUtil.isNotEmpty(bo.getAttachments())) {
bo.getAttachments().forEach(item -> {
SisAlarmEventAttachments eventAttachments = new SisAlarmEventAttachments();
eventAttachments.setEventId(process.getId());
eventAttachments.setOssId(item);
eventAttachments.setType(1L);
});
}
return true;
}
}