# Conflicts:
#	pom.xml
This commit is contained in:
dy
2025-07-21 10:07:51 +08:00
66 changed files with 1387 additions and 221 deletions

View File

@@ -17,13 +17,6 @@
<dependencies>
<!-- <dependency>-->
<!-- <groupId>cn.hutool</groupId>-->
<!-- <artifactId>hutool-all</artifactId>-->
<!-- <version>5.5.8</version>-->
<!-- </dependency>-->
<dependency>
<groupId>org.dromara</groupId>
<artifactId>ruoyi-common-nacos</artifactId>

View File

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.property.domain.bo.CostChargeReturnFeeBo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import org.dromara.common.idempotent.annotation.RepeatSubmit;
@@ -80,6 +81,15 @@ public class CostCarChargeController extends BaseController {
return toAjax(costCarChargeService.insertByBo(bo));
}
/**
* 车辆退费接口
* @param bo
* @return
*/
@PostMapping("/returnFee")
public R<Void> returnFree( @RequestBody CostChargeReturnFeeBo bo) {
return toAjax(costCarChargeService.returnFree(bo));
}
/**
* 修改费用-车辆收费
*/

View File

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.dromara.property.domain.bo.CostChargeReturnFeeBo;
import org.dromara.property.domain.vo.CostHouseChargeDetailVo;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
@@ -80,6 +81,10 @@ public class CostHouseChargeController extends BaseController {
public R<Void> add(@Validated(AddGroup.class) @RequestBody CostHouseChargeBo bo) {
return toAjax(costHouseChargeService.insertByBo(bo));
}
@PostMapping("/returnFee")
public R<Void> returnFree( @RequestBody CostChargeReturnFeeBo bo) {
return toAjax(costHouseChargeService.returnFree(bo));
}
/**
* 修改房屋收费

View File

@@ -1,106 +0,0 @@
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.dromara.property.domain.bo.TbFactoryBo;
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.TbFactoryVo;
import org.dromara.property.service.ITbFactoryService;
import org.dromara.common.mybatis.core.page.TableDataInfo;
/**
* 厂商管理
* 前端访问路由地址为:/property/factory
*
* @author mocheng
* @since 2025-06-18
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/factory")
public class TbFactoryController extends BaseController {
private final ITbFactoryService tdFactoryService;
/**
* 查询厂商管理列表
*/
@SaCheckPermission("property:factory:list")
@GetMapping("/list")
public TableDataInfo<TbFactoryVo> list(TbFactoryBo bo, PageQuery pageQuery) {
return tdFactoryService.queryPageList(bo, pageQuery);
}
/**
* 导出厂商管理列表
*/
@SaCheckPermission("property:factory:export")
@Log(title = "厂商管理", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(TbFactoryBo bo, HttpServletResponse response) {
List<TbFactoryVo> list = tdFactoryService.queryList(bo);
ExcelUtil.exportExcel(list, "厂商管理", TbFactoryVo.class, response);
}
/**
* 获取厂商管理详细信息
*
* @param id 主键
*/
@SaCheckPermission("property:factory:query")
@GetMapping("/{id}")
public R<TbFactoryVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable("id") Long id) {
return R.ok(tdFactoryService.queryById(id));
}
/**
* 新增厂商管理
*/
@SaCheckPermission("property:factory:add")
@Log(title = "厂商管理", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody TbFactoryBo bo) {
return toAjax(tdFactoryService.insertByBo(bo));
}
/**
* 修改厂商管理
*/
@SaCheckPermission("property:factory:edit")
@Log(title = "厂商管理", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody TbFactoryBo bo) {
return toAjax(tdFactoryService.updateByBo(bo));
}
/**
* 删除厂商管理
*
* @param ids 主键串
*/
@SaCheckPermission("property:factory:remove")
@Log(title = "厂商管理", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable("ids") Long[] ids) {
return toAjax(tdFactoryService.deleteWithValidByIds(List.of(ids), true));
}
}

View File

@@ -59,7 +59,10 @@ public class CostCarCharge extends TenantEntity {
* 状态
*/
private String state;
/**
* 缴费状态
*/
private String chargeStatus;
/**
* 收费项目
*/

View File

@@ -4,6 +4,8 @@ import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -33,12 +35,18 @@ public class CostHouseCharge extends TenantEntity {
* 房屋
*/
private Long roomId;
/**
* 业主
*/
private Long personId;
/**
* 收费项目
*/
private Long costItemsId;
/**
* 缴费状态
*/
private String chargeStatus;
/**
* 支付方式
*/
@@ -52,7 +60,7 @@ public class CostHouseCharge extends TenantEntity {
/**
* 应收金额
*/
private Long amountReceivable;
private BigDecimal amountReceivable;
/**
* 计费开始时间

View File

@@ -1,5 +1,6 @@
package org.dromara.property.domain;
import lombok.experimental.Accessors;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
@@ -17,6 +18,7 @@ import java.io.Serial;
* @date 2025-07-17
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("cost_pay_fee_audit")
public class CostPayFeeAudit extends TenantEntity {
@@ -31,9 +33,13 @@ public class CostPayFeeAudit extends TenantEntity {
private Long id;
/**
* 房屋收费id
* 收费id
*/
private Long houseChargeId;
private Long chargeId;
/**
* 收费类型
*/
private String chargeType;
/**
* 费用项目id
@@ -62,8 +68,6 @@ public class CostPayFeeAudit extends TenantEntity {
/**
* 缴费时间
*/
private Date payTime;

View File

@@ -1,9 +1,12 @@
package org.dromara.property.domain;
import lombok.experimental.Accessors;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
@@ -16,6 +19,7 @@ import java.io.Serial;
* @date 2025-07-17
*/
@Data
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
@TableName("cost_return_pay_fee")
public class CostReturnPayFee extends TenantEntity {
@@ -28,7 +32,14 @@ public class CostReturnPayFee extends TenantEntity {
*/
@TableId(value = "id")
private Long id;
/**
* 收费id
*/
private Long chargeId;
/**
* 收费类型
*/
private String chargeType;
/**
* 退款单号
*/
@@ -57,7 +68,7 @@ public class CostReturnPayFee extends TenantEntity {
/**
* 支付金额
*/
private Long payAcount;
private BigDecimal payAcount;
/**
* 支付时间
@@ -74,10 +85,5 @@ public class CostReturnPayFee extends TenantEntity {
*/
private String remark;
/**
* 搜索值
*/
private String searchValue;
}

View File

@@ -1,45 +0,0 @@
package org.dromara.property.domain;
import org.dromara.common.tenant.core.TenantEntity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serial;
/**
* 厂商管理对象 td_factory
*
* @author mocheng
* @since 2025-06-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("td_factory")
public class TbFactory extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@TableId(value = "id")
private Long id;
/**
* 厂商编码
*/
private String factoryNo;
/**
* 设备厂商名称
*/
private String factoryName;
/**
* 备注
*/
private String remark;
}

View File

@@ -37,6 +37,7 @@ public class CostCarChargeBo extends BaseEntity {
/**
* 业主
*/
@NotNull(message = "业主不能为空", groups = { AddGroup.class, EditGroup.class })
private Long personId;
/**
@@ -49,7 +50,10 @@ public class CostCarChargeBo extends BaseEntity {
* 车位
*/
private String location;
/**
* 缴费状态
*/
private String chargeStatus;
/**
* 状态
*/

View File

@@ -0,0 +1,37 @@
package org.dromara.property.domain.bo;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
/**
* @Author:yuyongle
* @Date:2025/7/19 13:50
* @Description:
**/
@Data
public class CostChargeReturnFeeBo {
/**
* 主键
*/
@NotNull(message = "主键不能为空", groups = { EditGroup.class })
private Long id;
/**
* 业主
*/
@NotNull(message = "业主不能为空", groups = { AddGroup.class, EditGroup.class })
private Long personId;
/**
* 收费项目
*/
@NotNull(message = "收费项目不能为空", groups = { AddGroup.class, EditGroup.class })
private Long costItemsId;
/**
* 退款原因
*/
@NotNull(message = "退款原因不能为空", groups = { AddGroup.class, EditGroup.class })
private String reason;
}

View File

@@ -1,17 +1,16 @@
package org.dromara.property.domain.bo;
import org.dromara.property.domain.CostHouseCharge;
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.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.CostHouseCharge;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 房屋收费业务对象 cost_house_charge
@@ -35,13 +34,22 @@ public class CostHouseChargeBo extends BaseEntity {
*/
@NotNull(message = "房屋不能为空", groups = { AddGroup.class, EditGroup.class })
private Long roomId;
/**
* 业主
*/
@NotNull(message = "业主不能为空", groups = { AddGroup.class, EditGroup.class })
private Long personId;
/**
* 收费项目
*/
@NotNull(message = "收费项目不能为空", groups = { AddGroup.class, EditGroup.class })
private Long costItemsId;
/**
* 缴费状态
*/
private String chargeStatus;
/**
* 支付方式
*/

View File

@@ -31,10 +31,13 @@ public class CostPayFeeAuditBo extends BaseEntity {
private Long id;
/**
* 房屋收费id
* 收费id
*/
@NotNull(message = "房屋收费id不能为空", groups = { AddGroup.class, EditGroup.class })
private Long houseChargeId;
private Long chargeId;
/**
* 收费类型
*/
private String chargeType;
/**
* 费用项目id
@@ -65,12 +68,7 @@ public class CostPayFeeAuditBo extends BaseEntity {
@NotNull(message = "应收金额不能为空", groups = { AddGroup.class, EditGroup.class })
private BigDecimal receivableAmount;
/**
* 缴费时间
*/
@NotNull(message = "缴费时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date payTime;
/**

View File

@@ -9,6 +9,7 @@ import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import org.dromara.property.domain.CostReturnPayFee;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -60,12 +61,11 @@ public class CostReturnPayFeeBo extends BaseEntity {
/**
* 支付金额
*/
private Long payAcount;
private BigDecimal payAcount;
/**
* 支付时间
*/
@NotNull(message = "支付时间不能为空", groups = { AddGroup.class, EditGroup.class })
private Date payTime;
/**

View File

@@ -1,47 +0,0 @@
package org.dromara.property.domain.bo;
import org.dromara.property.domain.TbFactory;
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.*;
/**
* 厂商管理业务对象 td_factory
*
* @author mocheng
* @since 2025-06-18
*/
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = TbFactory.class, reverseConvertGenerate = false)
public class TbFactoryBo extends BaseEntity {
/**
*
*/
@NotNull(message = "不能为空", groups = { EditGroup.class })
private Long id;
/**
* 厂商编码
*/
@NotBlank(message = "厂商编码不能为空", groups = { AddGroup.class, EditGroup.class })
private String factoryNo;
/**
* 设备厂商名称
*/
@NotBlank(message = "设备厂商名称不能为空", groups = { AddGroup.class, EditGroup.class })
private String factoryName;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,44 @@
package org.dromara.property.domain.enums;
import lombok.Data;
import lombok.Getter;
/**
* @Author:yuyongle
* @Date:2025/7/19 11:33
* @Description:
**/
@Getter
public enum ChargeStatusEnum {
/**
* 缴费待审核
*/
PAYMENT_IS_SUBJECT_TO_REVIEW("缴费待审核", "1"),
/**
* 月/天
*/
THE_PAYMENT_WAS_APPROVED("缴费审核通过", "2"),
THE_PAYMENT_REVIEW_FAILED("缴费审核不通过", "3"),
PAID_FEE("已缴费", "4"),
REFUND_PENDING_REVIEW("退费待审核", "5"),
THE_REFUND_HAS_BEEN_APPROVED("已退费审核通过", "6"),
THE_REFUND_REVIEW_IS_NOT_PASSED("退费审核不通过", "7");
private final String name;
private final String value;
ChargeStatusEnum(String name, String value) {
this.name = name;
this.value = value;
}
public String getName() {
return this.name;
}
public String getValue() {
return this.value;
}
}

View File

@@ -71,6 +71,10 @@ public class CostCarChargeVo implements Serializable {
@ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(dictType = "wy_cszt")
private String state;
/**
* 缴费状态
*/
private String chargeStatus;
/**
* 收费项目

View File

@@ -9,6 +9,7 @@ import org.dromara.property.domain.CostItems;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
@@ -34,13 +35,24 @@ public class CostHouseChargeDetailVo implements Serializable {
*/
@ExcelProperty(value = "房屋")
private Long roomId;
/**
* 业主
*/
private Long personId;
/**
* 业主姓名
*/
private String personName;
/**
* 收费项目
*/
@ExcelProperty(value = "收费项目")
private Long costItemsId;
/**
* 缴费状态
*/
private String chargeStatus;
/**
* 支付方式
*/
@@ -57,7 +69,7 @@ public class CostHouseChargeDetailVo implements Serializable {
* 应收金额
*/
@ExcelProperty(value = "应收金额")
private Long amountReceivable;
private BigDecimal amountReceivable;
/**
* 计费开始时间

View File

@@ -1,5 +1,6 @@
package org.dromara.property.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.dromara.property.domain.CostHouseCharge;
@@ -41,7 +42,10 @@ public class CostHouseChargeVo implements Serializable {
*/
@ExcelProperty(value = "房屋")
private Long roomId;
/**
* 业主
*/
private Long personId;
/**
* 收费项目
*/
@@ -59,12 +63,15 @@ public class CostHouseChargeVo implements Serializable {
*/
@ExcelProperty(value = "支付周期")
private String chargeCycle;
/**
* 缴费状态
*/
private String chargeStatus;
/**
* 应收金额
*/
@ExcelProperty(value = "应收金额")
private Long amountReceivable;
private BigDecimal amountReceivable;
/**
* 计费开始时间

View File

@@ -37,10 +37,13 @@ public class CostPayFeeAuditVo implements Serializable {
private Long id;
/**
* 房屋收费id
* 收费id
*/
@ExcelProperty(value = "房屋收费id")
private Long houseChargeId;
private Long chargeId;
/**
* 收费类型
*/
private String chargeType;
/**
* 费用类型
*/

View File

@@ -8,6 +8,7 @@ import org.dromara.property.domain.CostReturnPayFee;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@@ -44,6 +45,7 @@ public class CostReturnPayFeeVo implements Serializable {
@ExcelProperty(value = "支付单号")
private String payNo;
/**
* 退款原因
*/
@@ -66,7 +68,7 @@ public class CostReturnPayFeeVo implements Serializable {
* 支付金额
*/
@ExcelProperty(value = "支付金额")
private Long payAcount;
private BigDecimal payAcount;
/**
* 支付时间

View File

@@ -1,52 +0,0 @@
package org.dromara.property.domain.vo;
import org.dromara.property.domain.TbFactory;
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;
/**
* 厂商管理视图对象 td_factory
*
* @author mocheng
* @since 2025-06-18
*/
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = TbFactory.class)
public class TbFactoryVo implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
/**
*
*/
@ExcelProperty(value = "")
private Long id;
/**
* 厂商编码
*/
@ExcelProperty(value = "厂商编码")
private String factoryNo;
/**
* 设备厂商名称
*/
@ExcelProperty(value = "设备厂商名称")
private String factoryName;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -111,6 +111,16 @@ public class RemoteFloorServiceImpl implements RemoteFloorService {
@Override
public List<RemoteFloorVo> queryByUnitId(Long unitId){
List<TbFloorVo> tbFloorVo = floorService.queryByUnitId(unitId);
return MapstructUtils.convert(tbFloorVo, RemoteFloorVo.class);
List<RemoteFloorVo> remoteFloorVos = new ArrayList<>();
tbFloorVo.forEach(item -> {
RemoteFloorVo remoteFloorVo = new RemoteFloorVo();
remoteFloorVo.setId(item.getId());
remoteFloorVo.setFloorName(item.getFloorName());
remoteFloorVo.setFloorNumber(item.getFloorNumber());
remoteFloorVos.add(remoteFloorVo);
});
return remoteFloorVos;
}
}

View File

@@ -1,17 +0,0 @@
package org.dromara.property.mapper;
import org.apache.ibatis.annotations.Mapper;
import org.dromara.property.domain.TbFactory;
import org.dromara.property.domain.vo.TbFactoryVo;
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
/**
* 厂商管理Mapper接口
*
* @author mocheng
* @since 2025-06-18
*/
@Mapper
public interface TbFactoryMapper extends BaseMapperPlus<TbFactory, TbFactoryVo> {
}

View File

@@ -1,6 +1,6 @@
package org.dromara.property.service;
import org.dromara.property.domain.CostCarCharge;
import org.dromara.property.domain.bo.CostChargeReturnFeeBo;
import org.dromara.property.domain.vo.CostCarChargeVo;
import org.dromara.property.domain.bo.CostCarChargeBo;
import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -50,6 +50,12 @@ public interface ICostCarChargeService {
*/
Boolean insertByBo(CostCarChargeBo bo);
/**
* 车辆退费
* @param bo
* @return
*/
Boolean returnFree(CostChargeReturnFeeBo bo);
/**
* 修改费用-车辆收费
*

View File

@@ -1,6 +1,6 @@
package org.dromara.property.service;
import org.dromara.property.domain.CostHouseCharge;
import org.dromara.property.domain.bo.CostChargeReturnFeeBo;
import org.dromara.property.domain.vo.CostHouseChargeDetailVo;
import org.dromara.property.domain.vo.CostHouseChargeVo;
import org.dromara.property.domain.bo.CostHouseChargeBo;
@@ -51,6 +51,14 @@ public interface ICostHouseChargeService {
*/
Boolean insertByBo(CostHouseChargeBo bo);
/**
* 房屋退费
*
* @param bo 房屋退费
* @return 是否修改成功
*/
Boolean returnFree(CostChargeReturnFeeBo bo);
/**
* 修改房屋收费
*

View File

@@ -1,68 +0,0 @@
package org.dromara.property.service;
import org.dromara.property.domain.bo.TbFactoryBo;
import org.dromara.property.domain.vo.TbFactoryVo;
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
* @since 2025-06-18
*/
public interface ITbFactoryService {
/**
* 查询厂商管理
*
* @param id 主键
* @return 厂商管理
*/
TbFactoryVo queryById(Long id);
/**
* 分页查询厂商管理列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 厂商管理分页列表
*/
TableDataInfo<TbFactoryVo> queryPageList(TbFactoryBo bo, PageQuery pageQuery);
/**
* 查询符合条件的厂商管理列表
*
* @param bo 查询条件
* @return 厂商管理列表
*/
List<TbFactoryVo> queryList(TbFactoryBo bo);
/**
* 新增厂商管理
*
* @param bo 厂商管理
* @return 是否新增成功
*/
Boolean insertByBo(TbFactoryBo bo);
/**
* 修改厂商管理
*
* @param bo 厂商管理
* @return 是否修改成功
*/
Boolean updateByBo(TbFactoryBo bo);
/**
* 校验并批量删除厂商管理信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -1,42 +1,36 @@
package org.dromara.property.service.impl;
import cn.hutool.core.date.DateTime;
import cn.idev.excel.event.Order;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.Mapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
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.CollectionUtils;
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.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.vo.CleanserverOrderVo;
import org.dromara.property.mapper.CleanMapper;
import org.dromara.property.mapper.CleanRelationMapper;
import org.dromara.property.mapper.CleanserverOrderMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.CleanOrderBo;
import org.dromara.property.domain.vo.CleanOrderVo;
import org.dromara.property.domain.CleanOrder;
import org.dromara.property.mapper.CleanMapper;
import org.dromara.property.mapper.CleanOrderMapper;
import org.dromara.property.mapper.CleanRelationMapper;
import org.dromara.property.mapper.CleanserverOrderMapper;
import org.dromara.property.service.ICleanOrderService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.stringtemplate.v4.ST;
import java.time.LocalDateTime;
import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static kotlin.reflect.jvm.internal.impl.builtins.StandardNames.FqNames.list;
/**
* 保洁订单Service业务层处理
*
@@ -102,7 +96,7 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
public TableDataInfo<CleanOrderVo> queryPageList(CleanOrderBo bo, PageQuery pageQuery) {
// 构造条件查询器,返回的是一个集合
LambdaQueryWrapper<CleanOrder> lqw = buildQueryWrapper(bo);
Page<CleanOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw,CleanOrderVo.class);
Page<CleanOrderVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw, CleanOrderVo.class);
// Page<CleanOrderVo> result = baseMapper.selectForPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
@@ -158,8 +152,8 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
CleanOrder add = new CleanOrder();
validEntityBeforeSave(add);
BeanUtils.copyProperties(bo, add);
add.setStarTime(String.valueOf(new DateTime(bo.getStarTime()).toLocalDateTime()));
add.setEndTime(String.valueOf(new DateTime(bo.getEndTime()).toLocalDateTime()));
add.setStarTime(bo.getStarTime());
add.setEndTime(bo.getEndTime());
add.setIsUnbooking(NOTUNBOOKING);
boolean flag = baseMapper.insert(add) > 0;
@@ -209,8 +203,8 @@ public class CleanOrderServiceImpl implements ICleanOrderService {
public Boolean updateByBo(CleanOrderBo bo) {
CleanOrder update = MapstructUtils.convert(bo, CleanOrder.class);
validEntityBeforeSave(update);
update.setStarTime(String.valueOf(new DateTime(bo.getStarTime()).toLocalDateTime()));
update.setEndTime(String.valueOf(new DateTime(bo.getStarTime()).toLocalDateTime()));
update.setStarTime(bo.getStarTime());
update.setEndTime(bo.getStarTime());
return baseMapper.updateById(update) > 0;
}

View File

@@ -1,5 +1,9 @@
package org.dromara.property.service.impl;
import cn.hutool.core.bean.BeanUtil;
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;
@@ -9,14 +13,23 @@ 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.dromara.property.domain.CostHouseCharge;
import org.dromara.property.domain.CostPayFeeAudit;
import org.dromara.property.domain.CostReturnPayFee;
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.service.ICostCarChargeService;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.List;
@@ -36,6 +49,8 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
private final CostCarChargeMapper baseMapper;
private final CostItemsMapper costItemsMapper;
private final CostPayFeeAuditMapper costPayFeeAuditMapper;
private final CostReturnPayFeeMapper costReturnPayFeeMapper;
/**
@@ -98,6 +113,7 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
* @return 是否新增成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(CostCarChargeBo bo) {
CostCarCharge add = MapstructUtils.convert(bo, CostCarCharge.class);
CostItemsVo costItemsVo = costItemsMapper.selectVoById(add.getCostItemsId());
@@ -107,10 +123,46 @@ public class CostCarChargeServiceImpl implements ICostCarChargeService {
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
//新增缴费记录
var CostPayFeeAudit = new CostPayFeeAudit()
.setChargeId(add.getId())
.setChargeType("2")
.setItemId(costItemsVo.getId())
.setStartTime(add.getStarTime())
.setEndTime(add.getEndTime())
.setReceivableAmount(add.getAmountReceivable())
.setState("0");
costPayFeeAuditMapper.insert(CostPayFeeAudit);
}
return flag;
}
/**
* 车辆退费
* @param bo
* @return
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean returnFree(CostChargeReturnFeeBo bo) {
CostCarCharge costCarCharge = baseMapper.selectById(bo.getId());
Assert.isTrue(ObjectUtil.isNotEmpty(costCarCharge),"该费用不存在");
var CostReturnPayFee = new CostReturnPayFee()
.setChargeId(costCarCharge.getId())
.setChargeType("2")
.setItemId(costCarCharge.getCostItemsId())
.setReturnNo(RandomUtil.randomNumbers(11))
.setReason(bo.getReason())
.setUserId(costCarCharge.getPersonId())
.setPayNo(costCarCharge.getId().toString())
.setPayAcount(costCarCharge.getAmountReceivable())
.setState("0")
;
costReturnPayFeeMapper.insert(CostReturnPayFee);
costCarCharge.setChargeStatus(ChargeStatusEnum.REFUND_PENDING_REVIEW.getValue());
return baseMapper.updateById(costCarCharge) > 0;
}
/**
* 修改费用-车辆收费
*

View File

@@ -1,6 +1,9 @@
package org.dromara.property.service.impl;
import cn.hutool.core.bean.BeanUtil;
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;
@@ -10,17 +13,17 @@ 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.dromara.property.domain.vo.CostHouseChargeDetailVo;
import org.dromara.property.domain.vo.CostItemsVo;
import org.dromara.property.domain.vo.TbRoomVo;
import org.dromara.property.mapper.CostItemsMapper;
import org.dromara.property.mapper.TbRoomMapper;
import org.dromara.property.domain.CostPayFeeAudit;
import org.dromara.property.domain.CostReturnPayFee;
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.springframework.stereotype.Service;
import org.dromara.property.domain.bo.CostHouseChargeBo;
import org.dromara.property.domain.vo.CostHouseChargeVo;
import org.dromara.property.domain.CostHouseCharge;
import org.dromara.property.mapper.CostHouseChargeMapper;
import org.dromara.property.service.ICostHouseChargeService;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.math.RoundingMode;
@@ -42,7 +45,9 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
private final CostHouseChargeMapper baseMapper;
private final CostItemsMapper costItemsMapper;
private final TbRoomMapper tbRoomMapper;
private final CostPayFeeAuditMapper costPayFeeAuditMapper;
private final CostReturnPayFeeMapper costReturnPayFeeMapper;
private final ResidentPersonMapper residentPersonMapper;
/**
* 查询房屋收费
*
@@ -50,13 +55,15 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
* @return 房屋收费
*/
@Override
public CostHouseChargeDetailVo queryById(Long id){
public CostHouseChargeDetailVo queryById(Long id) {
CostHouseChargeVo costHouseChargeVo = baseMapper.selectVoById(id);
CostHouseChargeDetailVo costHouseChargeDetailVo = BeanUtil.copyProperties(costHouseChargeVo, CostHouseChargeDetailVo.class);
CostItemsVo costItemsVo = costItemsMapper.selectVoById(costHouseChargeDetailVo.getCostItemsId());
costHouseChargeDetailVo.setCostItemsVo( costItemsVo );
costHouseChargeDetailVo.setCostItemsVo(costItemsVo);
TbRoomVo tbRoomVo = tbRoomMapper.selectVoById(costHouseChargeDetailVo.getRoomId());
costHouseChargeDetailVo.setRoomVo(tbRoomVo);
ResidentPersonVo residentPersonVo = residentPersonMapper.selectVoById(costHouseChargeVo.getPersonId());
costHouseChargeDetailVo.setPersonName(residentPersonVo.getUserName());
return costHouseChargeDetailVo;
}
@@ -92,7 +99,6 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
lqw.orderByAsc(CostHouseCharge::getId);
lqw.eq(bo.getRoomId() != null, CostHouseCharge::getRoomId, bo.getRoomId());
lqw.eq(bo.getCostItemsId() != null, CostHouseCharge::getCostItemsId, bo.getCostItemsId());
lqw.eq(StringUtils.isNotBlank(bo.getPayType()), CostHouseCharge::getPayType, bo.getPayType());
lqw.eq(StringUtils.isNotBlank(bo.getChargeCycle()), CostHouseCharge::getChargeCycle, bo.getChargeCycle());
lqw.eq(bo.getAmountReceivable() != null, CostHouseCharge::getAmountReceivable, bo.getAmountReceivable());
lqw.eq(bo.getStartTime() != null, CostHouseCharge::getStartTime, bo.getStartTime());
@@ -109,6 +115,7 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
* @return 是否新增成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean insertByBo(CostHouseChargeBo bo) {
CostHouseCharge add = MapstructUtils.convert(bo, CostHouseCharge.class);
//查询房间面积
@@ -117,26 +124,63 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
CostItemsVo costItemsVo = costItemsMapper.selectVoById(add.getCostItemsId());
BigDecimal unitPrice = costItemsVo.getUnitPrice();
//向上取整
if(costItemsVo.getRoundingMode().equals("1")){
add.setAmountReceivable(area.multiply(unitPrice).add(costItemsVo.getSurcharge()).setScale(Integer.valueOf(costItemsVo.getCurrencyDecimals()), BigDecimal.ROUND_UP).longValue());
if (costItemsVo.getRoundingMode().equals("1")) {
add.setAmountReceivable(area.multiply(unitPrice).add(costItemsVo.getSurcharge()).setScale(Integer.valueOf(costItemsVo.getCurrencyDecimals()), BigDecimal.ROUND_UP));
}
//向下取整
if(costItemsVo.getRoundingMode().equals("2")){
add.setAmountReceivable( area.multiply(unitPrice).add(costItemsVo.getSurcharge()).setScale(Integer.valueOf(costItemsVo.getCurrencyDecimals()), BigDecimal.ROUND_DOWN).longValue());
if (costItemsVo.getRoundingMode().equals("2")) {
add.setAmountReceivable(area.multiply(unitPrice).add(costItemsVo.getSurcharge()).setScale(Integer.valueOf(costItemsVo.getCurrencyDecimals()), BigDecimal.ROUND_DOWN));
}
//四舍五入
if(costItemsVo.getRoundingMode().equals("0")){
add.setAmountReceivable(area.multiply(unitPrice).add(costItemsVo.getSurcharge()).setScale( Integer.valueOf(costItemsVo.getCurrencyDecimals()), RoundingMode.HALF_UP).longValue());
if (costItemsVo.getRoundingMode().equals("0")) {
add.setAmountReceivable(area.multiply(unitPrice).add(costItemsVo.getSurcharge()).setScale(Integer.valueOf(costItemsVo.getCurrencyDecimals()), RoundingMode.HALF_UP));
}
add.setChargeStatus(ChargeStatusEnum.PAYMENT_IS_SUBJECT_TO_REVIEW.getValue());
//area
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
//新增缴费记录
var CostPayFeeAudit = new CostPayFeeAudit()
.setChargeId(add.getId())
.setChargeType("1")
.setItemId(costItemsVo.getId())
.setStartTime(add.getStartTime())
.setEndTime(add.getEndTime())
.setReceivableAmount(add.getAmountReceivable())
.setState("0");
costPayFeeAuditMapper.insert(CostPayFeeAudit);
}
return flag;
}
/**
* 房屋退费
*
* @param bo 房屋退费
* @return 是否退费成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean returnFree(CostChargeReturnFeeBo bo) {
CostHouseChargeVo costHouseChargeVo = baseMapper.selectVoById(bo.getId());
Assert.isTrue(ObjectUtil.isNotEmpty(costHouseChargeVo),"该费用不存在");
var CostReturnPayFee = new CostReturnPayFee().setItemId(costHouseChargeVo.getCostItemsId())
.setReturnNo(RandomUtil.randomNumbers(11))
.setReason(bo.getReason())
.setItemId(costHouseChargeVo.getCostItemsId())
.setUserId(costHouseChargeVo.getPersonId())
.setPayNo(costHouseChargeVo.getId().toString())
.setPayAcount(costHouseChargeVo.getAmountReceivable())
.setState("0")
;
boolean flag = costReturnPayFeeMapper.insert(CostReturnPayFee) > 0;
CostHouseCharge costHouseCharge = BeanUtil.copyProperties(costHouseChargeVo, CostHouseCharge.class);
costHouseCharge.setChargeStatus(ChargeStatusEnum.REFUND_PENDING_REVIEW.getValue());
return baseMapper.updateById(costHouseCharge) > 0;
}
/**
* 修改房屋收费
*
@@ -144,6 +188,7 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
* @return 是否修改成功
*/
@Override
@Transactional(rollbackFor = Exception.class)
public Boolean updateByBo(CostHouseChargeBo bo) {
CostHouseCharge update = MapstructUtils.convert(bo, CostHouseCharge.class);
validEntityBeforeSave(update);
@@ -153,7 +198,7 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(CostHouseCharge entity){
private void validEntityBeforeSave(CostHouseCharge entity) {
//TODO 做一些数据校验,如唯一约束
}
@@ -165,8 +210,10 @@ public class CostHouseChargeServiceImpl implements ICostHouseChargeService {
* @return 是否删除成功
*/
@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,5 +1,6 @@
package org.dromara.property.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import org.checkerframework.checker.units.qual.C;
import org.dromara.common.core.utils.MapstructUtils;
@@ -11,12 +12,13 @@ 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.dromara.property.domain.CostCarCharge;
import org.dromara.property.domain.CostHouseCharge;
import org.dromara.property.domain.CostPayFeeAudit;
import org.dromara.property.domain.bo.CostPayFeeAuditBo;
import org.dromara.property.domain.enums.ChargeStatusEnum;
import org.dromara.property.domain.vo.*;
import org.dromara.property.mapper.CostItemsMapper;
import org.dromara.property.mapper.CostPayFeeAuditMapper;
import org.dromara.property.mapper.TbRoomMapper;
import org.dromara.property.mapper.*;
import org.dromara.property.service.ICostPayFeeAuditService;
import org.springframework.stereotype.Service;
@@ -40,6 +42,8 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
private final CostPayFeeAuditMapper baseMapper;
private final CostItemsMapper costItemsMapper;
private final TbRoomMapper roomMapper;
private final CostHouseChargeMapper coinHouseChargeMapper;
private final CostCarChargeMapper costCarChargeMapper;
/**
* 查询费用-缴费审核
@@ -49,7 +53,13 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
*/
@Override
public CostPayFeeAuditVo queryById(Long id){
return baseMapper.selectVoById(id);
CostPayFeeAuditVo costPayFeeAuditVo = baseMapper.selectVoById(id);
CostItemsVo costItemsVo = costItemsMapper.selectVoById(costPayFeeAuditVo.getItemId());
costPayFeeAuditVo.setChargeItem(ObjectUtil.isNotEmpty(costItemsVo)? costItemsVo.getChargeItem() :null );
costPayFeeAuditVo.setChargeCycle(ObjectUtil.isNotEmpty(costItemsVo)? costItemsVo.getChargeCycle() :null );
//TbRoomVo roomVo = roomMapper.selectVoById(costPayFeeAuditVo.getChargeId());
//costPayFeeAuditVo.setRoomNumber(ObjectUtil.isNotEmpty(roomVo)? roomVo.getRoomNumber() :null );
return costPayFeeAuditVo;
}
/**
@@ -63,12 +73,15 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
public TableDataInfo<CostPayFeeAuditVo> queryPageList(CostPayFeeAuditBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<CostPayFeeAudit> lqw = buildQueryWrapper(bo);
Page<CostPayFeeAuditVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
if(CollUtil.isEmpty(result.getRecords())){
return TableDataInfo.build(result);
}
List<Long> itemIdList = result.getRecords().stream()
.map(vo -> vo.getItemId())
.distinct()
.collect(Collectors.toList());
List<Long> roomIdList = result.getRecords().stream()
.map(vo -> vo.getHouseChargeId())
.map(vo -> vo.getChargeId())
.distinct()
.collect(Collectors.toList());
List<CostItemsVo> costItemsVoList = costItemsMapper.selectVoByIds(itemIdList);
@@ -81,7 +94,7 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
s.setCostType(ObjectUtil.isNotEmpty(costItemsVo)?costItemsVo.getCostType():null);
s.setChargeCycle(ObjectUtil.isNotEmpty(costItemsVo)?costItemsVo.getChargeCycle():null);
TbRoomVo tbRoomVo = roomVoList.stream()
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getHouseChargeId())).findFirst().orElse(null);
.filter(vo -> vo.getId() != null && vo.getId().equals(s.getChargeId())).findFirst().orElse(null);
s.setRoomNumber(ObjectUtil.isNotEmpty(tbRoomVo)?tbRoomVo.getRoomNumber():null);
costPayFeeAuditVoList.add(s);
@@ -105,7 +118,7 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<CostPayFeeAudit> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(CostPayFeeAudit::getId);
lqw.eq(bo.getHouseChargeId() != null, CostPayFeeAudit::getHouseChargeId, bo.getHouseChargeId());
lqw.eq(bo.getChargeId() != null, CostPayFeeAudit::getChargeId, bo.getChargeId());
lqw.eq(bo.getItemId() != null, CostPayFeeAudit::getItemId, bo.getItemId());
lqw.eq(bo.getStartTime() != null, CostPayFeeAudit::getStartTime, bo.getStartTime());
lqw.eq(bo.getEndTime() != null, CostPayFeeAudit::getEndTime, bo.getEndTime());
@@ -134,7 +147,7 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
}
/**
* 修改费用-缴费审核
* 修改费用-缴费审核修改状态
*
* @param bo 费用-缴费审核
* @return 是否修改成功
@@ -142,7 +155,7 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
@Override
public Boolean updateByBo(CostPayFeeAuditBo bo) {
CostPayFeeAudit update = MapstructUtils.convert(bo, CostPayFeeAudit.class);
validEntityBeforeSave(update);
validEntityBeforeUpdate(update);
return baseMapper.updateById(update) > 0;
}
@@ -152,6 +165,36 @@ public class CostPayFeeAuditServiceImpl implements ICostPayFeeAuditService {
private void validEntityBeforeSave(CostPayFeeAudit entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 修改前的数据校验
*/
private void validEntityBeforeUpdate(CostPayFeeAudit entity){
//TODO 做一些数据校验,如唯一约束
if(entity.getState().equals("1")){
if(entity.getChargeType().equals("1")){
CostHouseCharge costHouseCharge = coinHouseChargeMapper.selectById(entity.getChargeId());
costHouseCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_WAS_APPROVED.getValue());
coinHouseChargeMapper.updateById(costHouseCharge);
}
if(entity.getChargeType().equals("2")){
CostCarCharge costCarCharge = costCarChargeMapper.selectById(entity.getChargeId());
costCarCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_WAS_APPROVED.getValue());
costCarChargeMapper.updateById(costCarCharge);
}
}
if(entity.getState().equals("2")){
if(entity.getChargeType().equals("1")){
CostHouseCharge costHouseCharge = coinHouseChargeMapper.selectById(entity.getChargeId());
costHouseCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_REVIEW_FAILED.getValue());
coinHouseChargeMapper.updateById(costHouseCharge);
}
if(entity.getChargeType().equals("2")){
CostCarCharge costCarCharge = costCarChargeMapper.selectById(entity.getChargeId());
costCarCharge.setChargeStatus(ChargeStatusEnum.THE_PAYMENT_REVIEW_FAILED.getValue());
costCarChargeMapper.updateById(costCarCharge);
}
}
}
/**
* 校验并批量删除费用-缴费审核信息

View File

@@ -9,9 +9,14 @@ 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.dromara.property.domain.CostCarCharge;
import org.dromara.property.domain.CostHouseCharge;
import org.dromara.property.domain.CostReturnPayFee;
import org.dromara.property.domain.bo.CostReturnPayFeeBo;
import org.dromara.property.domain.enums.ChargeStatusEnum;
import org.dromara.property.domain.vo.CostReturnPayFeeVo;
import org.dromara.property.mapper.CostCarChargeMapper;
import org.dromara.property.mapper.CostHouseChargeMapper;
import org.dromara.property.mapper.CostReturnPayFeeMapper;
import org.dromara.property.service.ICostReturnPayFeeService;
import org.springframework.stereotype.Service;
@@ -32,6 +37,8 @@ import java.util.Collection;
public class CostReturnPayFeeServiceImpl implements ICostReturnPayFeeService {
private final CostReturnPayFeeMapper baseMapper;
private final CostHouseChargeMapper coinHouseChargeMapper;
private final CostCarChargeMapper costCarChargeMapper;
/**
* 查询费用-抄类型
@@ -112,7 +119,7 @@ public class CostReturnPayFeeServiceImpl implements ICostReturnPayFeeService {
@Override
public Boolean updateByBo(CostReturnPayFeeBo bo) {
CostReturnPayFee update = MapstructUtils.convert(bo, CostReturnPayFee.class);
validEntityBeforeSave(update);
validEntityBeforeUpdate(update);
return baseMapper.updateById(update) > 0;
}
@@ -122,6 +129,36 @@ public class CostReturnPayFeeServiceImpl implements ICostReturnPayFeeService {
private void validEntityBeforeSave(CostReturnPayFee entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 修改前的数据校验
*/
private void validEntityBeforeUpdate(CostReturnPayFee entity){
//TODO 做一些数据校验,如唯一约束
if(entity.getState().equals("1")){
if(entity.getChargeType().equals("1")){
CostHouseCharge costHouseCharge = coinHouseChargeMapper.selectById(entity.getChargeId());
costHouseCharge.setChargeStatus(ChargeStatusEnum. THE_REFUND_HAS_BEEN_APPROVED.getValue());
coinHouseChargeMapper.updateById(costHouseCharge);
}
if(entity.getChargeType().equals("2")){
CostCarCharge costCarCharge = costCarChargeMapper.selectById(entity.getChargeId());
costCarCharge.setChargeStatus(ChargeStatusEnum.THE_REFUND_HAS_BEEN_APPROVED.getValue());
costCarChargeMapper.updateById(costCarCharge);
}
}
if(entity.getState().equals("2")){
if(entity.getChargeType().equals("1")){
CostHouseCharge costHouseCharge = coinHouseChargeMapper.selectById(entity.getChargeId());
costHouseCharge.setChargeStatus(ChargeStatusEnum.THE_REFUND_REVIEW_IS_NOT_PASSED.getValue());
coinHouseChargeMapper.updateById(costHouseCharge);
}
if(entity.getChargeType().equals("2")){
CostCarCharge costCarCharge = costCarChargeMapper.selectById(entity.getChargeId());
costCarCharge.setChargeStatus(ChargeStatusEnum.THE_REFUND_REVIEW_IS_NOT_PASSED.getValue());
costCarChargeMapper.updateById(costCarCharge);
}
}
}
/**
* 校验并批量删除费用-抄类型信息

View File

@@ -125,7 +125,6 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
lqw.eq(StringUtils.isNotBlank(bo.getSignType()), InspectionPlan::getSignType, bo.getSignType());
lqw.eq(StringUtils.isNotBlank(bo.getCanReexamine()), InspectionPlan::getCanReexamine, bo.getCanReexamine());
lqw.like(StringUtils.isNotBlank(bo.getState()), InspectionPlan::getState, bo.getState());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), InspectionPlan::getSearchValue, bo.getSearchValue());
return lqw;
}
@@ -147,8 +146,9 @@ public class InspectionPlanServiceImpl implements IInspectionPlanService {
if (CollectionUtil.isNotEmpty(inspectionPlanStaffBoList)) {
for (InspectionPlanStaffBo staffBo : inspectionPlanStaffBoList) {
staffBo.setInspectionPlanId(add.getId());
InspectionPlanStaff convert = MapstructUtils.convert(staffBo, InspectionPlanStaff.class);
inspectionPlanStaffMapper.insert(convert);
}
inspectionPlanStaffMapper.insertBatch(BeanUtil.copyToList(inspectionPlanStaffBoList, InspectionPlanStaff.class));
}
}
return flag;

View File

@@ -1,24 +1,22 @@
package org.dromara.property.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
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;
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.vo.MachineTypeTreeVo;
import org.springframework.stereotype.Service;
import org.dromara.property.domain.bo.MachineTypeBo;
import org.dromara.property.domain.vo.MachineTypeVo;
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.MachineType;
import org.dromara.property.domain.bo.MachineTypeBo;
import org.dromara.property.domain.vo.MachineTypeTreeVo;
import org.dromara.property.domain.vo.MachineTypeVo;
import org.dromara.property.mapper.MachineTypeMapper;
import org.dromara.property.service.IMachineTypeService;
import org.springframework.stereotype.Service;
import java.util.*;
@@ -42,7 +40,7 @@ public class MachineTypeServiceImpl implements IMachineTypeService {
* @return 设备类型
*/
@Override
public MachineTypeVo queryById(Long id){
public MachineTypeVo queryById(Long id) {
return baseMapper.selectVoById(id);
}
@@ -117,7 +115,7 @@ public class MachineTypeServiceImpl implements IMachineTypeService {
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(MachineType entity){
private void validEntityBeforeSave(MachineType entity) {
//TODO 做一些数据校验,如唯一约束
}
@@ -130,11 +128,12 @@ public class MachineTypeServiceImpl implements IMachineTypeService {
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
if (isValid) {
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
/**
* 获取设备类型树列表
*
@@ -146,15 +145,17 @@ public class MachineTypeServiceImpl implements IMachineTypeService {
LambdaQueryWrapper<MachineType> lqw = buildQueryWrapper(type);
List<MachineTypeVo> machineTypeVoList = baseMapper.selectVoList(lqw);
if (CollUtil.isEmpty(machineTypeVoList)) {
return Collections.emptyList();
return Collections.emptyList();
}
List<MachineTypeTreeVo> machineTypeTreeVoList = BeanUtil.copyToList(machineTypeVoList, MachineTypeTreeVo.class);
List<MachineTypeTreeVo> machineTypeTreeVoList = MapstructUtils.convert(machineTypeVoList, MachineTypeTreeVo.class);
// 2. 构建树结构
return buildMachineTypeTree(machineTypeTreeVoList);
}
/**
* 构建设备类型树
*
* @param nodeList 所有节点
* @return 树形结构列表
*/
@@ -185,4 +186,5 @@ public class MachineTypeServiceImpl implements IMachineTypeService {
}
}
return treeList;
}}
}
}

View File

@@ -123,7 +123,7 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
if (CollectionUtil.isEmpty(meetBookings)) {
return new ArrayList<>();
}
List<MeetBookingAppointmentVo> meetBookingAppointmentVoList = BeanUtil.copyToList(meetBookings, MeetBookingAppointmentVo.class);
List<MeetBookingAppointmentVo> meetBookingAppointmentVoList = MapstructUtils.convert(meetBookings, MeetBookingAppointmentVo.class);
SimpleDateFormat df = new SimpleDateFormat("HH");
List<String> units = meetBookingAppointmentVoList.stream()
.map(vo -> vo.getUnit())
@@ -184,7 +184,7 @@ public class MeetBookingServiceImpl implements IMeetBookingService {
if (CollectionUtil.isEmpty(meetBookingVoList)) {
return new ArrayList<>();
}
List<MeetBookingWeekVo> meetBookingWeekVoList = BeanUtil.copyToList(meetBookingVoList, MeetBookingWeekVo.class);
List<MeetBookingWeekVo> meetBookingWeekVoList = MapstructUtils.convert(meetBookingVoList, MeetBookingWeekVo.class);
String[] weekStr = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
List<MeetBookingWeekVo> meetBookingWeekList = new ArrayList<>();
SimpleDateFormat df = new SimpleDateFormat("HH");

View File

@@ -1,134 +0,0 @@
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.dromara.property.domain.TbFactory;
import org.dromara.property.domain.bo.TbFactoryBo;
import org.dromara.property.domain.vo.TbFactoryVo;
import org.springframework.stereotype.Service;
import org.dromara.property.mapper.TbFactoryMapper;
import org.dromara.property.service.ITbFactoryService;
import java.util.List;
import java.util.Map;
import java.util.Collection;
/**
* 厂商管理Service业务层处理
*
* @author mocheng
* @since 2025-06-18
*/
@Slf4j
@RequiredArgsConstructor
@Service
public class TbFactoryServiceImpl implements ITbFactoryService {
private final TbFactoryMapper baseMapper;
/**
* 查询厂商管理
*
* @param id 主键
* @return 厂商管理
*/
@Override
public TbFactoryVo queryById(Long id){
return baseMapper.selectVoById(id);
}
/**
* 分页查询厂商管理列表
*
* @param bo 查询条件
* @param pageQuery 分页参数
* @return 厂商管理分页列表
*/
@Override
public TableDataInfo<TbFactoryVo> queryPageList(TbFactoryBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<TbFactory> lqw = buildQueryWrapper(bo);
Page<TbFactoryVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
return TableDataInfo.build(result);
}
/**
* 查询符合条件的厂商管理列表
*
* @param bo 查询条件
* @return 厂商管理列表
*/
@Override
public List<TbFactoryVo> queryList(TbFactoryBo bo) {
LambdaQueryWrapper<TbFactory> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
}
private LambdaQueryWrapper<TbFactory> buildQueryWrapper(TbFactoryBo bo) {
Map<String, Object> params = bo.getParams();
LambdaQueryWrapper<TbFactory> lqw = Wrappers.lambdaQuery();
lqw.orderByAsc(TbFactory::getId);
lqw.eq(StringUtils.isNotBlank(bo.getFactoryNo()), TbFactory::getFactoryNo, bo.getFactoryNo());
lqw.like(StringUtils.isNotBlank(bo.getFactoryName()), TbFactory::getFactoryName, bo.getFactoryName());
lqw.eq(StringUtils.isNotBlank(bo.getSearchValue()), TbFactory::getSearchValue, bo.getSearchValue());
return lqw;
}
/**
* 新增厂商管理
*
* @param bo 厂商管理
* @return 是否新增成功
*/
@Override
public Boolean insertByBo(TbFactoryBo bo) {
TbFactory add = MapstructUtils.convert(bo, TbFactory.class);
validEntityBeforeSave(add);
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
bo.setId(add.getId());
}
return flag;
}
/**
* 修改厂商管理
*
* @param bo 厂商管理
* @return 是否修改成功
*/
@Override
public Boolean updateByBo(TbFactoryBo bo) {
TbFactory update = MapstructUtils.convert(bo, TbFactory.class);
validEntityBeforeSave(update);
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/
private void validEntityBeforeSave(TbFactory entity){
//TODO 做一些数据校验,如唯一约束
}
/**
* 校验并批量删除厂商管理信息
*
* @param ids 待删除的主键集合
* @param isValid 是否进行有效性校验
* @return 是否删除成功
*/
@Override
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
if(isValid){
//TODO 做一些业务上的校验,判断是否需要校验
}
return baseMapper.deleteByIds(ids) > 0;
}
}