From 85c4410b0948799a93f19f345b4ed18c253c89f3 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期二, 03 九月 2024 10:26:33 +0800 Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile --- ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java | 159 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 141 insertions(+), 18 deletions(-) diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java index 6995865..b0b15f2 100644 --- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java +++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TAccountingStrategyController.java @@ -16,6 +16,7 @@ import com.ruoyi.chargingPile.service.TChargingPileService; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.dto.SteategyPassDto; +import com.ruoyi.common.core.enums.AuditStateEnum; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.domain.BaseDelete; import com.ruoyi.common.core.web.page.PageInfo; @@ -23,6 +24,8 @@ import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.common.log.enums.OperatorType; +import com.ruoyi.common.security.utils.SecurityUtils; +import com.ruoyi.system.api.domain.SysUser; import com.ruoyi.system.api.feignClient.SysUserClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -34,9 +37,13 @@ import java.math.BigDecimal; import java.math.BigInteger; import java.math.RoundingMode; +import java.time.LocalDateTime; import java.time.LocalTime; import java.util.Arrays; import java.util.List; +import java.util.Objects; + +import static com.ruoyi.common.core.context.SecurityContextHolder.getUserId; /** * <p> @@ -97,11 +104,19 @@ @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "添加计费策略") @PostMapping(value = "/add") public AjaxResult<Integer> add(@RequestBody TAccountingStrategyDTO dto) { + if(null != dto.getSiteId()){ + dto.setAuditStatus(3); + } + Boolean flag = accountingStrategyDetailService.isStrategy24Hour(dto.getAccountingStrategyDetails()); + if(flag){ + return AjaxResult.error("计费模板时间设置有误差"); + } + Long userId = SecurityUtils.getLoginUser().getUserid(); + dto.setUserId(userId); accountingStrategyService.save(dto); // 添加明细 dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails()); - // TODO 硬件 同步策略到充电桩 return AjaxResult.ok(dto.getId()); } @@ -111,15 +126,52 @@ @Log(title = "修改计费策略", businessType = BusinessType.UPDATE,operatorType = OperatorType.MANAGE) @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "修改计费策略") @PostMapping(value = "/update") - public AjaxResult<Boolean> update(@RequestBody TAccountingStrategyDTO dto) { - // 删除计费策略明细信息 - accountingStrategyDetailService.remove(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) - .eq(TAccountingStrategyDetail::getAccountingStrategyId, dto.getId())); - accountingStrategyService.updateById(dto); - // 添加明细 - dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); - // TODO 硬件 同步策略到充电桩 - return AjaxResult.ok(accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails())); + public AjaxResult<String> update(@RequestBody TAccountingStrategyDTO dto) { + Boolean flag = accountingStrategyDetailService.isStrategy24Hour(dto.getAccountingStrategyDetails()); + if(flag){ + return AjaxResult.error("计费模板时间设置有误差"); + } + // 判断修改的计费策略是否为已通过 + if(dto.getAuditStatus() == 3 || dto.getAuditStatus() == 4){ + // 查询是否有下级审核中的策略 + TAccountingStrategy children = accountingStrategyService.getOne(Wrappers.lambdaQuery(TAccountingStrategy.class) + .eq(TAccountingStrategy::getParentId, dto.getId()) + .ne(TAccountingStrategy::getAuditStatus, Arrays.asList(3,4))); + if(Objects.nonNull(children)){ + // 删除计费策略明细信息 + accountingStrategyDetailService.remove(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) + .eq(TAccountingStrategyDetail::getAccountingStrategyId, children.getId())); + dto.setAuditStatus(1); + accountingStrategyService.updateById(dto); + // 添加明细 + dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); + accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails()); + }else { + Long userId = SecurityUtils.getLoginUser().getUserid(); + dto.setUserId(userId); + dto.setAuditStatus(1); + dto.setId(null); + dto.setParentId(dto.getId()); + accountingStrategyService.save(dto); + // 添加明细 + List<TAccountingStrategyDetail> accountingStrategyDetails = dto.getAccountingStrategyDetails(); + accountingStrategyDetails.forEach(detail -> { + detail.setAccountingStrategyId(dto.getId()); + detail.setId(null); + }); + accountingStrategyDetailService.saveBatch(accountingStrategyDetails); + } + }else { + // 删除计费策略明细信息 + accountingStrategyDetailService.remove(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) + .eq(TAccountingStrategyDetail::getAccountingStrategyId, dto.getId())); + dto.setAuditStatus(1); + accountingStrategyService.updateById(dto); + // 添加明细 + dto.getAccountingStrategyDetails().forEach(detail -> detail.setAccountingStrategyId(dto.getId())); + accountingStrategyDetailService.saveBatch(dto.getAccountingStrategyDetails()); + } + return AjaxResult.success(); } /** @@ -132,10 +184,57 @@ TAccountingStrategyVO accountingStrategyVO = new TAccountingStrategyVO(); BeanUtils.copyProperties(accountingStrategy,accountingStrategyVO); // 查询用户信息 - String firstUserName = sysUserClient.getSysUser(accountingStrategy.getFirstUserId()).getData().getNickName(); - String twoUserName = sysUserClient.getSysUser(accountingStrategy.getTwoUserId()).getData().getNickName(); - accountingStrategyVO.setFirstUserName(firstUserName); - accountingStrategyVO.setTwoUserName(twoUserName); + if(null != accountingStrategy.getFirstUserId()){ + String firstUserName = sysUserClient.getSysUser(accountingStrategy.getFirstUserId()).getData().getNickName(); + accountingStrategyVO.setFirstUserName(firstUserName); + } + if(null != accountingStrategy.getTwoUserId()){ + String twoUserName = sysUserClient.getSysUser(accountingStrategy.getTwoUserId()).getData().getNickName(); + accountingStrategyVO.setTwoUserName(twoUserName); + } + return AjaxResult.ok(accountingStrategyVO); + } + + /** + * 查看计费策略详情-修改后 + */ + @ApiOperation(tags = {"后台-计费策略", "管理后台-站点管理"},value = "查看计费策略详情修改后children的数据") + @GetMapping(value = "/getDetailChildrenById") + public AjaxResult<TAccountingStrategyVO> getDetailChildrenById(@RequestParam("id") Integer id) { + TAccountingStrategyVO accountingStrategyVO = new TAccountingStrategyVO(); + // 先查询children对象 + TAccountingStrategy children = accountingStrategyService.getOne(Wrappers.lambdaQuery(TAccountingStrategy.class) + .eq(TAccountingStrategy::getParentId, id) + .orderByDesc(TAccountingStrategy::getCreateTime) + .last("LIMIT 1")); + if(Objects.nonNull(children)){ + BeanUtils.copyProperties(children,accountingStrategyVO); + // 查询用户信息 + if(null != children.getFirstUserId()){ + String firstUserName = sysUserClient.getSysUser(children.getFirstUserId()).getData().getNickName(); + accountingStrategyVO.setFirstUserName(firstUserName); + } + if(null != children.getTwoUserId()){ + String twoUserName = sysUserClient.getSysUser(children.getTwoUserId()).getData().getNickName(); + accountingStrategyVO.setTwoUserName(twoUserName); + } + accountingStrategyVO.setAccountingStrategyDetailList(accountingStrategyDetailService.list(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) + .eq(TAccountingStrategyDetail::getAccountingStrategyId, children.getId()))); + }else { + TAccountingStrategy accountingStrategy = accountingStrategyService.getById(id); + BeanUtils.copyProperties(accountingStrategy,accountingStrategyVO); + // 查询用户信息 + if(null != accountingStrategy.getFirstUserId()){ + String firstUserName = sysUserClient.getSysUser(accountingStrategy.getFirstUserId()).getData().getNickName(); + accountingStrategyVO.setFirstUserName(firstUserName); + } + if(null != accountingStrategy.getTwoUserId()){ + String twoUserName = sysUserClient.getSysUser(accountingStrategy.getTwoUserId()).getData().getNickName(); + accountingStrategyVO.setTwoUserName(twoUserName); + } + accountingStrategyVO.setAccountingStrategyDetailList(accountingStrategyDetailService.list(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) + .eq(TAccountingStrategyDetail::getAccountingStrategyId, id))); + } return AjaxResult.ok(accountingStrategyVO); } @@ -146,6 +245,12 @@ @ApiOperation(tags = {"后台-计费策略"},value = "删除计费策略") @DeleteMapping(value = "/deleteById") public AjaxResult<Boolean> deleteById(@RequestParam("id") Integer id) { + // 判断策略是否在使用 + long count = siteService.count(Wrappers.lambdaQuery(Site.class) + .eq(Site::getAccountingStrategyId, id)); + if(count>0){ + return AjaxResult.error("该计费策略正在使用中,无法删除"); + } // 刪除计费策略明细信息 accountingStrategyDetailService.remove(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) .eq(TAccountingStrategyDetail::getAccountingStrategyId, id)); @@ -160,6 +265,12 @@ @DeleteMapping(value = "/deleteByIds") public AjaxResult<Boolean> deleteByIds(@RequestParam String ids) { String[] split = ids.split(","); + // 判断策略是否在使用 + long count = siteService.count(Wrappers.lambdaQuery(Site.class) + .in(Site::getAccountingStrategyId, Arrays.asList(split))); + if(count>0){ + return AjaxResult.error("该计费策略正在使用中,无法删除"); + } // 刪除计费策略明细信息 accountingStrategyDetailService.remove(Wrappers.lambdaQuery(TAccountingStrategyDetail.class) .in(TAccountingStrategyDetail::getAccountingStrategyId, Arrays.asList(split))); @@ -180,8 +291,6 @@ @PostMapping(value = "/auth/pageList") public AjaxResult<PageInfo<TAccountingStrategyVO>> authPageList(@RequestBody TAccountingStrategyQuery query) { - - return AjaxResult.ok(accountingStrategyService.pageList(query)); } @@ -189,7 +298,7 @@ @PostMapping(value = "/auth/pass") public AjaxResult<PageInfo<TAccountingStrategyVO>> authPass(@RequestBody SteategyPassDto steategyPassDto) { TAccountingStrategy byId = accountingStrategyService.getById(steategyPassDto.getId()); - Long userId = tokenService.getLoginUser().getSysUser().getUserId(); + Long userId = SecurityUtils.getLoginUser().getUserid(); if (byId.getAuditStatus()==1&&byId.getFirstUserId()!=userId){ return AjaxResult.error("您不是一级审核人员,无法审核"); } @@ -201,21 +310,35 @@ byId.setAuditStatus(2); byId.setFirstRemark(steategyPassDto.getRemark()); + byId.setFirstAuditTime(LocalDateTime.now()); }else if (byId.getAuditStatus()==2){ byId.setAuditStatus(3); byId.setTwoRemark(steategyPassDto.getRemark()); - + byId.setTwoAuditTime(LocalDateTime.now()); } }else { byId.setAuditStatus(4); } + accountingStrategyService.updateById(byId); + + return AjaxResult.success(); + } + @ApiOperation(tags = {"后台-申请表单-计费模板审核"},value = "删除") + @DeleteMapping(value = "/delete") + public R delete(String ids) { + String[] split = ids.split(","); + for (String s : split) { + accountingStrategyService.removeById(s); + } + return R.ok(); + } /** -- Gitblit v1.7.1