diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/organamount/OrganAmountController.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/organamount/OrganAmountController.java index 1c175ca50..c3cff804f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/organamount/OrganAmountController.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/controller/admin/funds/organamount/OrganAmountController.java @@ -14,9 +14,11 @@ import com.cf.imes.module.system.controller.admin.funds.organamount.vo.TotalAmou import com.cf.imes.module.system.service.funds.organamount.OrganAmountService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.annotation.security.PermitAll; import jakarta.servlet.http.HttpServletResponse; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -85,4 +87,12 @@ public class OrganAmountController { public CommonResult> getManageConsumptionTrend(@Valid OrganFundsStatisticsReqVO reqVO) { return success(organAmountService.getConsumptionTrend(reqVO, false)); } + + @PostMapping("/fix") + @Operation(summary = "修正组织余额") + @PermitAll + public CommonResult fixOrganAmount() { + organAmountService.fixOrganAmount(); + return success(true); + } } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/organamount/OrganAmountService.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/organamount/OrganAmountService.java index 33e4efea5..af9578820 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/organamount/OrganAmountService.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/organamount/OrganAmountService.java @@ -82,4 +82,9 @@ public interface OrganAmountService { * @return */ PageResult getManageTotalAmountDetails(@Param("reqVO") TotalAmountDetailsPageReqVO reqVO); + + /** + * 修正组织余额,遍历组织列表,补充system_organization_amount数据 + */ + void fixOrganAmount(); } diff --git a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/organamount/OrganAmountServiceImpl.java b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/organamount/OrganAmountServiceImpl.java index 820aedced..112ec062f 100644 --- a/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/organamount/OrganAmountServiceImpl.java +++ b/cf-module-system/cf-module-system-biz/src/main/java/com/cf/imes/module/system/service/funds/organamount/OrganAmountServiceImpl.java @@ -24,6 +24,7 @@ import com.cf.imes.module.system.controller.admin.funds.organamount.vo.TotalAmou import com.cf.imes.module.system.dal.dataobject.incomeandexpense.IncomeExpenseDetailsDO; import com.cf.imes.module.system.dal.dataobject.organ.OrganizationDO; import com.cf.imes.module.system.dal.mysql.incomeandexpense.IncomeExpenseDetailsMapper; +import com.cf.imes.module.system.dal.mysql.organ.OrganMapper; import com.cf.imes.module.system.enums.pay.TradeTypeEnum; import com.cf.imes.module.system.service.funds.invoice.InvoiceService; import com.cf.imes.module.system.service.funds.purchase.PurchaseService; @@ -79,6 +80,9 @@ public class OrganAmountServiceImpl implements OrganAmountService { @Resource private PurchaseService purchaseService; + @Resource + private OrganMapper organMapper; + // 常用的字段key private static final String DATELIST_FIELD_NAME = "dateList"; private static final String SERIES_FIELD_NAME = "series"; @@ -488,4 +492,20 @@ public class OrganAmountServiceImpl implements OrganAmountService { } return newDateStrBuffer.toString(); } + + @Override + public void fixOrganAmount() { + List organizationDOS = organMapper.selectList(new LambdaQueryWrapper().select(OrganizationDO::getId)); + log.info("[fixOrganAmount][开始修正组织资金账户,组织总数({})]", organizationDOS.size()); + for (OrganizationDO organ : organizationDOS) { + Long organId = organ.getId(); + OrganAmountDO organAmountDO = organAmountMapper.selectOne(new LambdaQueryWrapper().eq(OrganAmountDO::getOrganId, organId)); + if (ObjectUtil.isNull(organAmountDO)) { + // 组织没有资金账户,新增一个 + organAmountMapper.insert(OrganAmountDO.builder() + .organId(organId) + .build()); + } + } + } }