|
@@ -0,0 +1,214 @@
|
|
|
|
+package org.springblade.meter.controller;
|
|
|
|
+
|
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
|
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
|
|
|
|
+import io.swagger.annotations.Api;
|
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
|
+import org.springblade.common.utils.SnowFlakeUtil;
|
|
|
|
+import org.springblade.core.boot.ctrl.BladeController;
|
|
|
|
+import org.springblade.core.mp.support.Condition;
|
|
|
|
+import org.springblade.core.mp.support.Query;
|
|
|
|
+import org.springblade.core.tool.api.R;
|
|
|
|
+import org.springblade.core.tool.utils.BeanUtil;
|
|
|
|
+import org.springblade.core.tool.utils.Func;
|
|
|
|
+import org.springblade.meter.entity.*;
|
|
|
|
+import org.springblade.meter.service.MidPayItemContractService;
|
|
|
|
+import org.springblade.meter.service.MidPayItemProjectService;
|
|
|
|
+import org.springblade.meter.service.MidPayItemSystemService;
|
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
|
+
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.Comparator;
|
|
|
|
+import java.util.List;
|
|
|
|
+import java.util.stream.Collectors;
|
|
|
|
+
|
|
|
|
+@RestController
|
|
|
|
+@AllArgsConstructor
|
|
|
|
+@RequestMapping("/mid/pay/item")
|
|
|
|
+@Api(value = "计量中期支付项接口", tags = "计量中期支付项接口")
|
|
|
|
+public class MidPayItemController extends BladeController {
|
|
|
|
+
|
|
|
|
+ private final MidPayItemSystemService payItemSystemService;
|
|
|
|
+ private final MidPayItemProjectService payItemProjectService;
|
|
|
|
+ private final MidPayItemContractService payItemContractService;
|
|
|
|
+
|
|
|
|
+ @GetMapping("/system/detail")
|
|
|
|
+ @ApiOperationSupport(order = 1)
|
|
|
|
+ @ApiOperation(value = "系统中期支付项详情", notes = "传入id")
|
|
|
|
+ public R<MeterMidPayItemSystem> systemDetail(@RequestParam String id) {
|
|
|
|
+ return R.data(payItemSystemService.getById(id));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/system/submit")
|
|
|
|
+ @ApiOperationSupport(order = 2)
|
|
|
|
+ @ApiOperation(value = "系统中期支付项新增或修改", notes = "传入MeterMidPayItemSystem对象")
|
|
|
|
+ public R<Object> systemSubmit(@RequestBody MeterMidPayItemSystem obj) {
|
|
|
|
+ return R.data(payItemSystemService.saveOrUpdate(obj));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/system/remove")
|
|
|
|
+ @ApiOperationSupport(order = 3)
|
|
|
|
+ @ApiOperation(value = "系统中期支付项删除", notes = "传入id")
|
|
|
|
+ public R<Object> systemRemove(@RequestParam String id) {
|
|
|
|
+ return R.data(payItemSystemService.removeById(id));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/system/page")
|
|
|
|
+ @ApiOperationSupport(order = 4)
|
|
|
|
+ @ApiOperation(value = "系统中期支付项分页", notes = "传入MeterMidPayItemSystem、Query")
|
|
|
|
+ public R<IPage<MeterMidPayItemSystem>> systemPage(@RequestBody MeterMidPayItemSystem meterMidPayItemSystem, @RequestBody Query query) {
|
|
|
|
+ IPage<MeterMidPayItemSystem> pages = payItemSystemService.page(Condition.getPage(query), Condition.getQueryWrapper(meterMidPayItemSystem));
|
|
|
|
+ List<MeterMidPayItemSystem> sortResult = pages.getRecords().stream()
|
|
|
|
+ .sorted(Comparator.comparing(MeterMidPayItemSystem::getCreateTime))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ return R.data(pages.setRecords(sortResult));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/system/list")
|
|
|
|
+ @ApiOperationSupport(order = 5)
|
|
|
|
+ @ApiOperation(value = "系统中期支付项列表", notes = "")
|
|
|
|
+ public R<List<MeterMidPayItemSystem>> systemList() {
|
|
|
|
+ return R.data(payItemSystemService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemSystem>lambdaQuery().eq(MeterMidPayItemSystem::getIsReferenced, 0).orderByAsc(MeterMidPayItemSystem::getCreateTime)));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/project/detail")
|
|
|
|
+ @ApiOperationSupport(order = 6)
|
|
|
|
+ @ApiOperation(value = "项目中期支付项详情", notes = "传入id")
|
|
|
|
+ public R<MeterMidPayItemProject> projectDetail(@RequestParam String id) {
|
|
|
|
+ return R.data(payItemProjectService.getById(id));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/project/referenced")
|
|
|
|
+ @ApiOperationSupport(order = 7)
|
|
|
|
+ @ApiOperation(value = "项目中期支付项引用系统级数据", notes = "传入数据id逗号拼接ids、projectId")
|
|
|
|
+ public R<Object> projectReferenced(@RequestParam String ids, @RequestParam Long projectId) {
|
|
|
|
+ if (StringUtils.isNotEmpty(ids)) {
|
|
|
|
+ List<Long> systemIds = Func.toLongList(ids);
|
|
|
|
+ List<MeterMidPayItemSystem> meterMidPayItemSystems = payItemSystemService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemSystem>lambdaQuery().in(MeterMidPayItemSystem::getId, systemIds).orderByAsc(MeterMidPayItemSystem::getCreateTime));
|
|
|
|
+ List<MeterMidPayItemProject> meterMidPayItemProjects = new ArrayList<>();
|
|
|
|
+ for (MeterMidPayItemSystem systemPay : meterMidPayItemSystems) {
|
|
|
|
+ MeterMidPayItemProject projectPay = BeanUtil.copyProperties(systemPay, MeterMidPayItemProject.class);
|
|
|
|
+ if (projectPay != null) {
|
|
|
|
+ projectPay.setId(SnowFlakeUtil.getId());
|
|
|
|
+ projectPay.setProjectId(projectId);
|
|
|
|
+ meterMidPayItemProjects.add(projectPay);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (meterMidPayItemProjects.size() > 0) {
|
|
|
|
+ /*批量修改状态为被引用*/
|
|
|
|
+ UpdateWrapper<MeterMidPayItemSystem> updateWrapper = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper.in("id", systemIds);
|
|
|
|
+ MeterMidPayItemSystem updateEntity = new MeterMidPayItemSystem();
|
|
|
|
+ updateEntity.setIsReferenced(1);
|
|
|
|
+ boolean b1 = payItemSystemService.update(updateEntity, updateWrapper);
|
|
|
|
+ boolean b2 = payItemProjectService.saveBatch(meterMidPayItemProjects, 1000);
|
|
|
|
+ if (b1 && b2) {
|
|
|
|
+ return R.success("操作成功");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return R.fail("操作失败");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/project/update")
|
|
|
|
+ @ApiOperationSupport(order = 8)
|
|
|
|
+ @ApiOperation(value = "项目中期支付项修改", notes = "传入MeterMidPayItemProject对象")
|
|
|
|
+ public R<Object> projectUpdate(@RequestBody MeterMidPayItemProject obj) {
|
|
|
|
+ return R.data(payItemProjectService.updateById(obj));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/project/remove")
|
|
|
|
+ @ApiOperationSupport(order = 9)
|
|
|
|
+ @ApiOperation(value = "项目中期支付项删除", notes = "传入id")
|
|
|
|
+ public R<Object> projectRemove(@RequestParam String id) {
|
|
|
|
+ return R.data(payItemProjectService.removeById(id));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/project/page")
|
|
|
|
+ @ApiOperationSupport(order = 10)
|
|
|
|
+ @ApiOperation(value = "项目中期支付项分页", notes = "传入MeterMidPayItemProject、Query")
|
|
|
|
+ public R<IPage<MeterMidPayItemProject>> projectPage(@RequestBody MeterMidPayItemProject meterMidPayItemProject, @RequestBody Query query) {
|
|
|
|
+ IPage<MeterMidPayItemProject> pages = payItemProjectService.page(Condition.getPage(query), Condition.getQueryWrapper(meterMidPayItemProject));
|
|
|
|
+ List<MeterMidPayItemProject> sortResult = pages.getRecords().stream()
|
|
|
|
+ .sorted(Comparator.comparing(MeterMidPayItemProject::getCreateTime))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ return R.data(pages.setRecords(sortResult));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/project/list")
|
|
|
|
+ @ApiOperationSupport(order = 11)
|
|
|
|
+ @ApiOperation(value = "项目中期支付项列表", notes = "")
|
|
|
|
+ public R<List<MeterMidPayItemProject>> projectList() {
|
|
|
|
+ return R.data(payItemProjectService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemProject>lambdaQuery().eq(MeterMidPayItemProject::getIsReferenced, 0).orderByAsc(MeterMidPayItemProject::getCreateTime)));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/contract/detail")
|
|
|
|
+ @ApiOperationSupport(order = 12)
|
|
|
|
+ @ApiOperation(value = "合同段中期支付项详情", notes = "传入id")
|
|
|
|
+ public R<MeterMidPayItemContract> contractDetail(@RequestParam String id) {
|
|
|
|
+ return R.data(payItemContractService.getById(id));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/contract/referenced")
|
|
|
|
+ @ApiOperationSupport(order = 13)
|
|
|
|
+ @ApiOperation(value = "合同段中期支付项引用项目级数据", notes = "传入数据id逗号拼接ids、projectId、contractId")
|
|
|
|
+ public R<Object> contractReferenced(@RequestParam String ids, @RequestParam Long projectId, @RequestParam Long contractId) {
|
|
|
|
+ if (StringUtils.isNotEmpty(ids)) {
|
|
|
|
+ List<Long> projectIds = Func.toLongList(ids);
|
|
|
|
+ List<MeterMidPayItemProject> meterMidPayItemProjects = payItemProjectService.getBaseMapper().selectList(Wrappers.<MeterMidPayItemProject>lambdaQuery().in(MeterMidPayItemProject::getId, projectIds).orderByAsc(MeterMidPayItemProject::getCreateTime));
|
|
|
|
+ List<MeterMidPayItemContract> meterMidPayItemContracts = new ArrayList<>();
|
|
|
|
+ for (MeterMidPayItemProject projectPay : meterMidPayItemProjects) {
|
|
|
|
+ MeterMidPayItemContract contractPay = BeanUtil.copyProperties(projectPay, MeterMidPayItemContract.class);
|
|
|
|
+ if (contractPay != null) {
|
|
|
|
+ contractPay.setId(SnowFlakeUtil.getId());
|
|
|
|
+ contractPay.setProjectId(projectId);
|
|
|
|
+ contractPay.setContractId(contractId);
|
|
|
|
+ meterMidPayItemContracts.add(contractPay);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (meterMidPayItemContracts.size() > 0) {
|
|
|
|
+ /*批量修改状态为被引用*/
|
|
|
|
+ UpdateWrapper<MeterMidPayItemProject> updateWrapper = new UpdateWrapper<>();
|
|
|
|
+ updateWrapper.in("id", projectIds);
|
|
|
|
+ MeterMidPayItemProject updateEntity = new MeterMidPayItemProject();
|
|
|
|
+ updateEntity.setIsReferenced(1);
|
|
|
|
+ boolean b1 = payItemProjectService.update(updateEntity, updateWrapper);
|
|
|
|
+ boolean b2 = payItemContractService.saveBatch(meterMidPayItemContracts, 1000);
|
|
|
|
+ if (b1 && b2) {
|
|
|
|
+ return R.success("操作成功");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return R.fail("操作失败");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/contract/update")
|
|
|
|
+ @ApiOperationSupport(order = 14)
|
|
|
|
+ @ApiOperation(value = "合同段中期支付项修改", notes = "传入MeterMidPayItemContract对象")
|
|
|
|
+ public R<Object> contractUpdate(@RequestBody MeterMidPayItemContract obj) {
|
|
|
|
+ return R.data(payItemContractService.updateById(obj));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @GetMapping("/contract/remove")
|
|
|
|
+ @ApiOperationSupport(order = 15)
|
|
|
|
+ @ApiOperation(value = "合同段中期支付项删除", notes = "传入id")
|
|
|
|
+ public R<Object> contractRemove(@RequestParam String id) {
|
|
|
|
+ return R.data(payItemContractService.removeById(id));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ @PostMapping("/contract/page")
|
|
|
|
+ @ApiOperationSupport(order = 16)
|
|
|
|
+ @ApiOperation(value = "合同段中期支付项分页", notes = "传入MeterMidPayItemContract、Query")
|
|
|
|
+ public R<IPage<MeterMidPayItemContract>> contractPage(@RequestBody MeterMidPayItemContract meterMidPayItemContract, @RequestBody Query query) {
|
|
|
|
+ IPage<MeterMidPayItemContract> pages = payItemContractService.page(Condition.getPage(query), Condition.getQueryWrapper(meterMidPayItemContract));
|
|
|
|
+ List<MeterMidPayItemContract> sortResult = pages.getRecords().stream()
|
|
|
|
+ .sorted(Comparator.comparing(MeterMidPayItemContract::getCreateTime))
|
|
|
|
+ .collect(Collectors.toList());
|
|
|
|
+ return R.data(pages.setRecords(sortResult));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+}
|