Jelajahi Sumber

计量中期支付项相关

liuyc 1 tahun lalu
induk
melakukan
251af2730a
16 mengubah file dengan 325 tambahan dan 0 penghapusan
  1. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemContract.java
  2. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemProject.java
  3. 3 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemSystem.java
  4. 214 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MidPayItemController.java
  5. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemContractMapper.java
  6. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemContractMapper.xml
  7. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemProjectMapper.java
  8. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemProjectMapper.xml
  9. 8 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemSystemMapper.java
  10. 5 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemSystemMapper.xml
  11. 7 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/MidPayItemContractService.java
  12. 7 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/MidPayItemProjectService.java
  13. 7 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/MidPayItemSystemService.java
  14. 14 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MidPayItemContractServiceImpl.java
  15. 14 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MidPayItemProjectServiceImpl.java
  16. 14 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MidPayItemSystemServiceImpl.java

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemContract.java

@@ -60,4 +60,7 @@ public class MeterMidPayItemContract extends BaseEntity {
     @ApiModelProperty(value = "排序")
     private Integer sort;
 
+    @ApiModelProperty(value = "数据源类型 1=原始引用、2=新增")
+    private Integer dataSourceType;
+
 }

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemProject.java

@@ -57,4 +57,7 @@ public class MeterMidPayItemProject extends BaseEntity {
     @ApiModelProperty(value = "排序")
     private Integer sort;
 
+    @ApiModelProperty(value = "是否被引用 0=否 1=是")
+    private Integer isReferenced;
+
 }

+ 3 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/MeterMidPayItemSystem.java

@@ -54,4 +54,7 @@ public class MeterMidPayItemSystem extends BaseEntity {
     @ApiModelProperty(value = "排序")
     private Integer sort;
 
+    @ApiModelProperty(value = "是否被引用 0=否 1=是")
+    private Integer isReferenced;
+
 }

+ 214 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MidPayItemController.java

@@ -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));
+    }
+
+}

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemContractMapper.java

@@ -0,0 +1,8 @@
+package org.springblade.meter.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.meter.entity.MeterMidPayItemContract;
+
+public interface MidPayItemContractMapper extends BaseMapper<MeterMidPayItemContract> {
+
+}

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemContractMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.meter.mapper.MidPayItemContractMapper">
+
+</mapper>

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemProjectMapper.java

@@ -0,0 +1,8 @@
+package org.springblade.meter.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.meter.entity.MeterMidPayItemProject;
+
+public interface MidPayItemProjectMapper extends BaseMapper<MeterMidPayItemProject> {
+
+}

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemProjectMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.meter.mapper.MidPayItemProjectMapper">
+
+</mapper>

+ 8 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemSystemMapper.java

@@ -0,0 +1,8 @@
+package org.springblade.meter.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.meter.entity.MeterMidPayItemSystem;
+
+public interface MidPayItemSystemMapper extends BaseMapper<MeterMidPayItemSystem> {
+
+}

+ 5 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/MidPayItemSystemMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.springblade.meter.mapper.MidPayItemSystemMapper">
+
+</mapper>

+ 7 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/MidPayItemContractService.java

@@ -0,0 +1,7 @@
+package org.springblade.meter.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.meter.entity.MeterMidPayItemContract;
+
+public interface MidPayItemContractService extends BaseService<MeterMidPayItemContract> {
+}

+ 7 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/MidPayItemProjectService.java

@@ -0,0 +1,7 @@
+package org.springblade.meter.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.meter.entity.MeterMidPayItemProject;
+
+public interface MidPayItemProjectService extends BaseService<MeterMidPayItemProject> {
+}

+ 7 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/MidPayItemSystemService.java

@@ -0,0 +1,7 @@
+package org.springblade.meter.service;
+
+import org.springblade.core.mp.base.BaseService;
+import org.springblade.meter.entity.MeterMidPayItemSystem;
+
+public interface MidPayItemSystemService extends BaseService<MeterMidPayItemSystem> {
+}

+ 14 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MidPayItemContractServiceImpl.java

@@ -0,0 +1,14 @@
+package org.springblade.meter.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.entity.MeterMidPayItemContract;
+import org.springblade.meter.mapper.MidPayItemContractMapper;
+import org.springblade.meter.service.MidPayItemContractService;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class MidPayItemContractServiceImpl extends BaseServiceImpl<MidPayItemContractMapper, MeterMidPayItemContract> implements MidPayItemContractService {
+
+}

+ 14 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MidPayItemProjectServiceImpl.java

@@ -0,0 +1,14 @@
+package org.springblade.meter.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.entity.MeterMidPayItemProject;
+import org.springblade.meter.mapper.MidPayItemProjectMapper;
+import org.springblade.meter.service.MidPayItemProjectService;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class MidPayItemProjectServiceImpl extends BaseServiceImpl<MidPayItemProjectMapper, MeterMidPayItemProject> implements MidPayItemProjectService {
+
+}

+ 14 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/MidPayItemSystemServiceImpl.java

@@ -0,0 +1,14 @@
+package org.springblade.meter.service.impl;
+
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.meter.entity.MeterMidPayItemSystem;
+import org.springblade.meter.mapper.MidPayItemSystemMapper;
+import org.springblade.meter.service.MidPayItemSystemService;
+import org.springframework.stereotype.Service;
+
+@Service
+@AllArgsConstructor
+public class MidPayItemSystemServiceImpl extends BaseServiceImpl<MidPayItemSystemMapper, MeterMidPayItemSystem> implements MidPayItemSystemService {
+
+}