jihs 4 years ago
parent
commit
f03e3d9cb2
18 changed files with 250 additions and 26 deletions
  1. 3 1
      src/main/java/org/jeecg/common/dto/basedata/ArchivesBusinessListReqDTO.java
  2. 4 1
      src/main/java/org/jeecg/common/dto/basedata/ArchivesBusinessListRespDTO.java
  3. 5 0
      src/main/java/org/jeecg/common/dto/invoice/PurchaseDetailAddReqDTO.java
  4. 28 5
      src/main/java/org/jeecg/modules/archives/controller/ProjectManageArchivesController.java
  5. 8 0
      src/main/java/org/jeecg/modules/archives/mapper/ProjectManageArchivesMapper.java
  6. 56 0
      src/main/java/org/jeecg/modules/archives/mapper/xml/ProjectManageArchivesMapper.xml
  7. 1 1
      src/main/java/org/jeecg/modules/archives/service/ProjectManageArchivesAndBusinessService.java
  8. 8 0
      src/main/java/org/jeecg/modules/archives/service/ProjectManageArchivesService.java
  9. 11 3
      src/main/java/org/jeecg/modules/archives/service/impl/ProjectManageArchivesServiceImpl.java
  10. 28 3
      src/main/java/org/jeecg/modules/basedata/controller/BaseArchivesCollectionLineController.java
  11. 27 2
      src/main/java/org/jeecg/modules/basedata/controller/BaseArchivesMilestoneController.java
  12. 19 1
      src/main/java/org/jeecg/modules/basedata/controller/BaseArchivesProjectApprovalController.java
  13. 3 0
      src/main/java/org/jeecg/modules/invoice/entity/InvoiceManagePurchaseDetail.java
  14. 5 1
      src/main/java/org/jeecg/modules/invoice/mapper/InvoiceManagePurchaseMapper.java
  15. 3 1
      src/main/java/org/jeecg/modules/invoice/service/InvoiceManagePurchaseDetailService.java
  16. 2 1
      src/main/java/org/jeecg/modules/invoice/service/impl/InvoiceManagePirchaseDetailServiceImpl.java
  17. 35 0
      src/main/java/org/jeecg/modules/invoice/service/impl/InvoiceManagePurchaseServiceImpl.java
  18. 4 6
      src/main/java/org/jeecg/modules/report/service/impl/ProReportServiceImpl.java

+ 3 - 1
src/main/java/org/jeecg/common/dto/basedata/ArchivesBusinessListReqDTO.java

@@ -7,8 +7,10 @@ import lombok.Data;
 @ApiModel("项目档案—商务收款计划请求参数")
 @Data
 public class ArchivesBusinessListReqDTO {
-    @ApiModelProperty("项目档案--里程碑id")
+    @ApiModelProperty("项目档案--里程碑信息表id")
     private String businessId;
+    @ApiModelProperty("项目档案--生产条线id")
+    private String  ArchivesLineId;
 
     public ArchivesBusinessListReqDTO() {
     }

+ 4 - 1
src/main/java/org/jeecg/common/dto/basedata/ArchivesBusinessListRespDTO.java

@@ -16,14 +16,17 @@ public class ArchivesBusinessListRespDTO {
     private String mileName;
     @ApiModelProperty("金额")
     private BigDecimal price;
+    @ApiModelProperty("未收款条线")
+    private BigDecimal uncoPrice;
 
     public ArchivesBusinessListRespDTO() {
     }
 
-    public ArchivesBusinessListRespDTO(String id, String mileId, String mileName, BigDecimal price) {
+    public ArchivesBusinessListRespDTO(String id, String mileId, String mileName, BigDecimal price, BigDecimal uncoPrice) {
         this.id = id;
         this.mileId = mileId;
         this.mileName = mileName;
         this.price = price;
+        this.uncoPrice = uncoPrice;
     }
 }

+ 5 - 0
src/main/java/org/jeecg/common/dto/invoice/PurchaseDetailAddReqDTO.java

@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import javax.validation.constraints.NotEmpty;
+
 /**
    * @Author jihaosen
    * @date 2021/3/2
@@ -22,10 +24,13 @@ public class PurchaseDetailAddReqDTO {
     @ApiModelProperty("项目档案里程碑(项目档案—商务,页签中的收款计划)")
     private String proArchivesMilestone;
     @ApiModelProperty("金额 (里程碑与首付款条线对应金额)")
+    @NotEmpty(message = "参数price不能为空")
     private java.math.BigDecimal price;
     @ApiModelProperty("未收票金额")
+    @NotEmpty(message = "参数uncoPrice不能为空")
     private java.math.BigDecimal uncoPrice;
     @ApiModelProperty("收票金额")
+    @NotEmpty(message = "参数coPrice不能为空")
     private java.math.BigDecimal coPrice;
     @ApiModelProperty("组织")
     private String pkOrg;

+ 28 - 5
src/main/java/org/jeecg/modules/archives/controller/ProjectManageArchivesController.java

@@ -31,6 +31,9 @@ import org.jeecg.modules.archives.entity.ProjectManageBusinessOther;
 import org.jeecg.modules.archives.service.ProjectManageArchivesAndBusinessService;
 import org.jeecg.modules.archives.service.ProjectManageArchivesService;
 import org.jeecg.modules.archives.service.ProjectManageBusinessOtherService;
+import org.jeecg.modules.invoice.entity.InvoiceManagePurchase;
+import org.jeecg.modules.invoice.entity.InvoiceManagePurchaseDetail;
+import org.jeecg.modules.invoice.service.InvoiceManagePurchaseDetailService;
 import org.jeecg.modules.payment.service.ManagerPaymentAndReceiptSlipService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.CollectionUtils;
@@ -41,6 +44,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+
+import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 import java.util.stream.Collectors;
@@ -62,6 +67,8 @@ public class ProjectManageArchivesController {
 	private ProjectManageBusinessOtherService projectManageBusinessOtherService;
 	@Autowired
 	private ProjectManageArchivesAndBusinessService projectManageArchivesAndBusinessService;
+	@Autowired
+	private InvoiceManagePurchaseDetailService invoiceManagePurchaseDetailService;
 
 
 	@ApiOperation(value = "项目档案分页查询接口", notes = "项目档案分页查询")
@@ -398,23 +405,39 @@ public class ProjectManageArchivesController {
 			queryWrapper.eq("del_flag", "0")
 					.eq("id", reqDTO.getBusinessId());
 			    ProjectManageArchivesAndBusiness business = projectManageArchivesAndBusinessService.getOne(queryWrapper);
+
+
+			QueryWrapper<InvoiceManagePurchaseDetail> detailQueryWrapper = new QueryWrapper<>();
+			detailQueryWrapper.eq("del_flag", "0")
+					.eq("co_archives_id", reqDTO.getArchivesLineId())
+					.eq("pro_business_id", reqDTO.getBusinessId());
+			List<InvoiceManagePurchaseDetail> details = invoiceManagePurchaseDetailService.list(detailQueryWrapper);
+		    BigDecimal uncoPrice = null;
+			if(!CollectionUtils.isEmpty(details)){
+				uncoPrice = details.get(0).getUncoPrice();
+			}
 			    List<ArchivesBusinessListRespDTO> respDTOS = Lists.newArrayList();
                 if(business != null){
 					if(StringUtils.isNotBlank(business.getMileId1())){
-						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId1(), business.getMilestone1(), business.getPrice1()));
+						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId1(), business.getMilestone1(), business.getPrice1(),
+								uncoPrice == null ? business.getPrice1() : uncoPrice));
 					}
 					if(StringUtils.isNotBlank(business.getMileId2())){
-						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId2(), business.getMilestone2(), business.getPrice2()));
+						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId2(), business.getMilestone2(), business.getPrice2(),
+								uncoPrice == null ? business.getPrice1() : uncoPrice));
 					}
 					if(StringUtils.isNotBlank(business.getMileId3())){
-						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId3(), business.getMilestone3(), business.getPrice3()));
+						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId3(), business.getMilestone3(), business.getPrice3(),
+								uncoPrice == null ? business.getPrice1() : uncoPrice));
 					}
 					if(StringUtils.isNotBlank(business.getMileId4())){
-						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId4(), business.getMilestone4(), business.getPrice4()));
+						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId4(), business.getMilestone4(), business.getPrice4(),
+								uncoPrice == null ? business.getPrice1() : uncoPrice));
 
 					}
 					if(StringUtils.isNotBlank(business.getMileId5())){
-						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId5(), business.getMilestone5(), business.getPrice5()));
+						respDTOS.add(new ArchivesBusinessListRespDTO(business.getId(), business.getMileId5(), business.getMilestone5(), business.getPrice5(),
+								uncoPrice == null ? business.getPrice1() : uncoPrice));
 					}
 				}
 				result.setResult(respDTOS);

+ 8 - 0
src/main/java/org/jeecg/modules/archives/mapper/ProjectManageArchivesMapper.java

@@ -1,9 +1,17 @@
 package org.jeecg.modules.archives.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.jeecg.common.dto.report.ProStatisticsRespDTO;
 import org.jeecg.modules.archives.entity.ProjectManageArchives;
+import org.jeecg.modules.archives.entity.ProjectManageArchivesAndBusiness;
+import java.util.List;
 
 @Mapper
 public interface ProjectManageArchivesMapper extends BaseMapper<ProjectManageArchives> {
+    /**
+     * @desc 获取项目档案主表与里程碑数据
+     */
+    List<ProStatisticsRespDTO> getBusinessData(QueryWrapper<ProjectManageArchivesAndBusiness> queryWrapper);
 }

+ 56 - 0
src/main/java/org/jeecg/modules/archives/mapper/xml/ProjectManageArchivesMapper.xml

@@ -33,4 +33,60 @@
     <result column="del_flag"  property="delFlag" />
     <result column="pk_org"  property="pkOrg" />
   </resultMap>
+  <resultMap id="respDTOMap" type="org.jeecg.common.dto.report.ProStatisticsRespDTO">
+    <id column="id"  property="id" />
+    <result column="pro_code"  property="proCode" />
+    <result column="pro_name"  property="proName" />
+    <!--<result column="price1"  property="cusId" />-->
+    <!--<result column="price2"  property="cusCode" />-->
+    <!--<result column="price3"  property="cusName" />-->
+    <!--<result column="price4" jdbcType="DECIMAL" property="totalPrice" />-->
+    <!--<result column="price5"  property="saleManagerId" />-->
+    <!--<result column="milestone1"  property="saleManager" />-->
+    <!--<result column="mile_id1"  property="saleManId" />-->
+    <!--<result column="desc1"  property="saleMan" />-->
+    <!--<result column="milestone2"  property="impManagerId" />-->
+    <!--<result column="mile_id2"  property="impManager" />-->
+    <!--<result column="desc2"  property="impConsultantId" />-->
+    <!--<result column="mile_id3"  property="impConsultant" />-->
+    <!--<result column="desc3"  property="deManagerId" />-->
+    <!--<result column="milestone4"  property="deManager" />-->
+    <!--<result column="mile_id4"  property="deEngineerId" />-->
+    <!--<result column="desc4"  property="deEngineer" />-->
+    <!--<result column="milestone5"  property="seManagerId" />-->
+    <!--<result column="mile_id5"  property="seManager" />-->
+    <!--<result column="desc5"  property="seEngineerId" />-->
+  </resultMap>
+  <select id="getBusinessData" resultMap="respDTOMap">
+    SELECT
+          a.pro_id,
+          a.pro_name,
+          a.pro_code,
+          b.price1,
+          b.price2,
+          b.price3,
+          b.price4,
+          b.price5,
+          b.milestone1,
+          b.mile_id1,
+          b.desc1,
+          b.milestone2,
+          b.mile_id2,
+          b.desc2,
+          b.milestone3,
+          b.mile_id3,
+          b.desc3,
+          b.milestone4,
+          b.mile_id4,
+          b.desc4,
+          b.milestone5,
+          b.mile_id5,
+          b.desc5
+    FROM project_manage_archives a
+    JOIN project_manage_archives_and_business b
+    ON a.id = b.pro_archives_id
+  </select>
+
+
+
 </mapper>

+ 1 - 1
src/main/java/org/jeecg/modules/archives/service/ProjectManageArchivesAndBusinessService.java

@@ -1,8 +1,8 @@
 package org.jeecg.modules.archives.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.jeecg.modules.archives.entity.ProjectManageArchivesAndBusiness;
 import com.baomidou.mybatisplus.extension.service.IService;
-
 import java.util.List;
 
 /**

+ 8 - 0
src/main/java/org/jeecg/modules/archives/service/ProjectManageArchivesService.java

@@ -1,9 +1,13 @@
 package org.jeecg.modules.archives.service;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import org.jeecg.common.dto.archives.ProArchivesAddReqDTO;
 import org.jeecg.common.dto.archives.ProArchivesAddRespDTO;
+import org.jeecg.common.dto.report.ProStatisticsRespDTO;
 import org.jeecg.modules.archives.entity.ProjectManageArchives;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.archives.entity.ProjectManageArchivesAndBusiness;
+import java.util.List;
 
 /**
  * @Description: project_manage_archives
@@ -30,4 +34,8 @@ public interface ProjectManageArchivesService extends IService<ProjectManageArch
      * @desc 通过id删除项目档案
      */
     boolean deleteById(ProjectManageArchives projectManageArchives);
+    /**
+     * @desc 获取项目档案主表与里程碑数据
+     */
+    List<ProStatisticsRespDTO> getBusinessData(QueryWrapper<ProjectManageArchivesAndBusiness> queryWrapper);
 }

+ 11 - 3
src/main/java/org/jeecg/modules/archives/service/impl/ProjectManageArchivesServiceImpl.java

@@ -2,7 +2,6 @@ package org.jeecg.modules.archives.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.google.common.collect.Lists;
-import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.lang.StringUtils;
 import org.jeecg.common.dto.archives.BsInfo;
 import org.jeecg.common.dto.archives.DeInfo;
@@ -16,6 +15,7 @@ import org.jeecg.common.dto.archives.ProBusinessOtherAddReqDTO;
 import org.jeecg.common.dto.archives.ProBusinessOtherListRespDTO;
 import org.jeecg.common.dto.archives.SeInfo;
 import org.jeecg.common.dto.archives.SeInfoRespDTO;
+import org.jeecg.common.dto.report.ProStatisticsRespDTO;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.modules.archives.entity.ProjectManageArchives;
 import org.jeecg.modules.archives.entity.ProjectManageArchivesAndBusiness;
@@ -47,6 +47,8 @@ public class ProjectManageArchivesServiceImpl extends ServiceImpl<ProjectManageA
     private ProjectManageArchivesAndBusinessService projectManageArchivesAndBusinessService;
     @Autowired
     private ProjectManageBusinessOtherService projectManageBusinessOtherService;
+    @Autowired
+    private ProjectManageArchivesMapper projectManageArchivesMapper;
 
     /**
      * @desc 新增
@@ -119,9 +121,15 @@ public class ProjectManageArchivesServiceImpl extends ServiceImpl<ProjectManageA
         return true;
     }
 
+     /**
+      * @desc 获取项目档案主表与里程碑数据
+      */
+     @Override
+     public List<ProStatisticsRespDTO> getBusinessData(QueryWrapper<ProjectManageArchivesAndBusiness> queryWrapper) {
+         return projectManageArchivesMapper.getBusinessData(queryWrapper);
+     }
 
-
-    /**
+     /**
      * @desc 设置里程碑数据
      */
     private void setRespDTO(ProArchivesAddRespDTO respDTO, List<ProjectManageArchivesAndBusiness> businessList, Map<Integer, List<ProjectManageBusinessOther>> otherMap) {

+ 28 - 3
src/main/java/org/jeecg/modules/basedata/controller/BaseArchivesCollectionLineController.java

@@ -9,6 +9,10 @@ import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.dto.basedata.ArchivesCollectionLineReqDTO;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.archives.entity.ProjectManageArchives;
+import org.jeecg.modules.archives.entity.ProjectManageArchivesAndBusiness;
+import org.jeecg.modules.archives.service.ProjectManageArchivesAndBusinessService;
+import org.jeecg.modules.archives.service.ProjectManageArchivesService;
 import org.jeecg.modules.basedata.entity.BaseArchivesCollectionLine;
 import org.jeecg.modules.basedata.service.IBaseArchivesCollectionLineService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -16,6 +20,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.util.CollectionUtils;
 import org.springframework.validation.BindingResult;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -25,6 +30,8 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
+import java.util.List;
+import java.util.stream.Collectors;
 
 /**
    * @Author jihaosen
@@ -37,6 +44,10 @@ import org.springframework.web.bind.annotation.RestController;
 public class BaseArchivesCollectionLineController {
 	@Autowired
 	private IBaseArchivesCollectionLineService baseArchivesCollectionLineService;
+	@Autowired
+	private ProjectManageArchivesAndBusinessService projectManageArchivesAndBusinessService;
+	@Autowired
+	private ProjectManageArchivesService projectManageArchivesService;
 
 	 @ApiOperation(value = "分页查询", notes = "分页查询")
 	 @ApiImplicitParams({
@@ -113,9 +124,6 @@ public class BaseArchivesCollectionLineController {
 	 @ApiOperation(value = "删除接口", notes = "删除收付款条线档案")
 	 @ApiImplicitParams({
 			 @ApiImplicitParam(name="id", value="id",required=false, dataType="String"),
-			 @ApiImplicitParam(name="pkOrg", value="组织",required=false, dataType="String"),
-			 @ApiImplicitParam(name="code", value="编码",required=true, dataType="String"),
-			 @ApiImplicitParam(name="name", value="名称",required=true, dataType="String"),
 	 })
 	@DeleteMapping(value = "/delete")
 	public Result<BaseArchivesCollectionLine> delete(@RequestBody ArchivesCollectionLineReqDTO reqDTO) {
@@ -124,6 +132,23 @@ public class BaseArchivesCollectionLineController {
 		if(baseArchivesCollectionLine==null) {
 			result.error500("未找到对应实体");
 		}else {
+			//检查当前收付款条线是否被使用
+			QueryWrapper<ProjectManageArchivesAndBusiness> queryWrapper = new QueryWrapper<>();
+			queryWrapper.eq("del_flag", "0").eq("plan_id", baseArchivesCollectionLine.getId());
+			List<ProjectManageArchivesAndBusiness> list = projectManageArchivesAndBusinessService.list(queryWrapper);
+			if(!CollectionUtils.isEmpty(list)){
+				List<String> proArchives = list.stream().map(t -> t.getProArchivesId()).collect(Collectors.toList());
+				QueryWrapper<ProjectManageArchives> archivesQueryWrapper = new QueryWrapper<>();
+				archivesQueryWrapper.eq("del_flag", "0").in("id", proArchives);
+				List<ProjectManageArchives> archives = projectManageArchivesService.list(archivesQueryWrapper);
+				if(!CollectionUtils.isEmpty(archives)){
+					List<String> codeList = archives.stream().map(t -> t.getProCode()).distinct().collect(Collectors.toList());
+					String message = "当前收款条线档案已被项目档案使用, 项目编号为:" +  String.join(",", codeList);
+					result.error500(message);
+					return result;
+				}
+			}
+			//删除数据
 			baseArchivesCollectionLine.setDelFlag(CommonConstant.DEL_FLAG_1.toString());
 			boolean ok = baseArchivesCollectionLineService.updateById(baseArchivesCollectionLine);
 			if(ok) {

+ 27 - 2
src/main/java/org/jeecg/modules/basedata/controller/BaseArchivesMilestoneController.java

@@ -15,6 +15,10 @@ import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.dto.basedata.ArchivesMilestoneListRespDTO;
 import org.jeecg.common.dto.basedata.ArchivesPostReqDTO;
 import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.archives.entity.ProjectManageArchives;
+import org.jeecg.modules.archives.entity.ProjectManageBusinessOther;
+import org.jeecg.modules.archives.service.ProjectManageArchivesService;
+import org.jeecg.modules.archives.service.ProjectManageBusinessOtherService;
 import org.jeecg.modules.basedata.entity.BaseArchivesMilestone;
 import org.jeecg.modules.basedata.service.IBaseArchivesMilestoneService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -28,7 +32,6 @@ import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
-
 import javax.servlet.http.HttpServletRequest;
 
 /**
@@ -42,6 +45,10 @@ import javax.servlet.http.HttpServletRequest;
 public class BaseArchivesMilestoneController {
 	@Autowired
 	private IBaseArchivesMilestoneService baseArchivesMilestoneService;
+	@Autowired
+	private ProjectManageBusinessOtherService projectManageBusinessOtherService;
+	@Autowired
+	private ProjectManageArchivesService projectManageArchivesService;
 	
 	@ApiOperation(value = "里程碑档案列表查询接口", notes = "里程碑档案列表查询")
 	@ApiImplicitParams({
@@ -138,7 +145,25 @@ public class BaseArchivesMilestoneController {
 		if(baseArchivesMilestone==null) {
 			result.error500("未找到对应实体");
 		}else {
-			baseArchivesMilestone.setDelFlag(CommonConstant.DEL_FLAG_1.toString());
+			 //检查当前里程碑档案是否被使用
+			 QueryWrapper<ProjectManageBusinessOther> queryWrapper = new QueryWrapper<>();
+			 queryWrapper.eq("del_flag", "0").eq("muiles_id", baseArchivesMilestone.getId());
+			 List<ProjectManageBusinessOther> list = projectManageBusinessOtherService.list(queryWrapper);
+			 if(!CollectionUtils.isEmpty(list)){
+				 List<String> proArchives = list.stream().map(t -> t.getProArchivesId()).distinct().collect(Collectors.toList());
+				 QueryWrapper<ProjectManageArchives> archivesQueryWrapper = new QueryWrapper<>();
+				 archivesQueryWrapper.eq("del_flag", "0").in("id", proArchives);
+				 List<ProjectManageArchives> archives = projectManageArchivesService.list(archivesQueryWrapper);
+				 if(!CollectionUtils.isEmpty(archives)){
+					 List<String> codeList = archives.stream().map(t -> t.getProCode()).collect(Collectors.toList());
+					 String message = "当前里程碑档案已被项目档案使用, 项目编号为:" +  String.join(",", codeList);
+					 result.error500(message);
+					 return result;
+				 }
+			 }
+
+
+			 baseArchivesMilestone.setDelFlag(CommonConstant.DEL_FLAG_1.toString());
 			boolean ok = baseArchivesMilestoneService.updateById(baseArchivesMilestone);
 			if(ok) {
 				result.success("删除成功!");

+ 19 - 1
src/main/java/org/jeecg/modules/basedata/controller/BaseArchivesProjectApprovalController.java

@@ -13,6 +13,11 @@ import org.jeecg.common.aspect.annotation.NotDuplicate;
 import org.jeecg.common.constant.CommonConstant;
 import org.jeecg.common.dto.basedata.BaseArchivesProjectApprovalReqDTO;
 import org.jeecg.common.dto.basedata.BaseArchivesProjectApprovalRespDTO;
+import org.jeecg.modules.archives.entity.ProjectManageArchives;
+import org.jeecg.modules.archives.entity.ProjectManageArchivesAndBusiness;
+import org.jeecg.modules.archives.entity.ProjectManageBusinessOther;
+import org.jeecg.modules.archives.service.ProjectManageArchivesService;
+import org.jeecg.modules.archives.service.ProjectManageBusinessOtherService;
 import org.jeecg.modules.basedata.entity.BaseArchivesProjectApproval;
 import org.jeecg.modules.basedata.service.BaseArchivesProjectApprovalService;
 import org.jeecg.modules.system.service.ISysSerialPatternService;
@@ -38,9 +43,10 @@ public class BaseArchivesProjectApprovalController {
 
     @Autowired
     private BaseArchivesProjectApprovalService baseArchivesProjectApprovalService;
-
     @Autowired
     private ISysSerialPatternService sysSerialPatternService;
+    @Autowired
+    private ProjectManageArchivesService projectManageArchivesService;
 
     @ApiOperation(value = "项目立项列表查询接口", notes = "项目立项列表查询")
     @ApiImplicitParams({
@@ -150,9 +156,21 @@ public class BaseArchivesProjectApprovalController {
     public Result<BaseArchivesProjectApproval> delete(@RequestBody BaseArchivesProjectApprovalReqDTO baseArchivesProjectApproval) {
         Result<BaseArchivesProjectApproval> result = new Result<BaseArchivesProjectApproval>();
         BaseArchivesProjectApproval baseArchivesPostEntity = baseArchivesProjectApprovalService.getById(baseArchivesProjectApproval.getId());
+
         if(baseArchivesPostEntity == null) {
             result.error500("未找到对应实体");
         }else {
+            //检查当前收付款条线是否被使用
+            QueryWrapper<ProjectManageArchives> archivesQueryWrapper = new QueryWrapper<>();
+            archivesQueryWrapper.eq("del_flag", "0").eq("pro_id", baseArchivesPostEntity.getId());
+            List<ProjectManageArchives> archives = projectManageArchivesService.list(archivesQueryWrapper);
+            if(!CollectionUtils.isEmpty(archives)){
+                List<String> codeList = archives.stream().map(t -> t.getProCode()).distinct().collect(Collectors.toList());
+                String message = "当前收款条线档案已被项目档案使用, 项目编号为:" +  String.join(",", codeList);
+                result.error500(message);
+                return result;
+            }
+            //删除数据
             baseArchivesPostEntity.setDelFlag(CommonConstant.DEL_FLAG_1.toString());
             boolean ok = baseArchivesProjectApprovalService.updateById(baseArchivesPostEntity);
             if(ok) {

+ 3 - 0
src/main/java/org/jeecg/modules/invoice/entity/InvoiceManagePurchaseDetail.java

@@ -86,4 +86,7 @@ public class InvoiceManagePurchaseDetail implements Serializable {
 		 this.delFlag = delFlag;
 	 }
 
+	 public InvoiceManagePurchaseDetail(BigDecimal uncoPrice) {
+		 this.uncoPrice = uncoPrice;
+	 }
  }

+ 5 - 1
src/main/java/org/jeecg/modules/invoice/mapper/InvoiceManagePurchaseMapper.java

@@ -1,5 +1,6 @@
 package org.jeecg.modules.invoice.mapper;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 import org.apache.ibatis.annotations.Mapper;
@@ -15,5 +16,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 @Mapper
 public interface InvoiceManagePurchaseMapper extends BaseMapper<InvoiceManagePurchase> {
-
+    /**
+     * @desc 将相同里程碑id与收付款条线的数据
+     */
+    void updateOrgData(String proBusinessId, String coArchivesId, BigDecimal uncoPrice);
 }

+ 3 - 1
src/main/java/org/jeecg/modules/invoice/service/InvoiceManagePurchaseDetailService.java

@@ -1,7 +1,10 @@
 package org.jeecg.modules.invoice.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.fasterxml.jackson.databind.annotation.JsonAppend;
+import org.apache.ibatis.annotations.Param;
 import org.jeecg.modules.invoice.entity.InvoiceManagePurchaseDetail;
+import java.math.BigDecimal;
 
 /**
  * @Description: 采购,销售发票详情表
@@ -10,5 +13,4 @@ import org.jeecg.modules.invoice.entity.InvoiceManagePurchaseDetail;
  * @version: V1.0
  */
 public interface InvoiceManagePurchaseDetailService extends IService<InvoiceManagePurchaseDetail> {
-
 }

+ 2 - 1
src/main/java/org/jeecg/modules/invoice/service/impl/InvoiceManagePirchaseDetailServiceImpl.java

@@ -3,8 +3,10 @@ package org.jeecg.modules.invoice.service.impl;
 import org.jeecg.modules.invoice.entity.InvoiceManagePurchaseDetail;
 import org.jeecg.modules.invoice.mapper.InvoiceManagePurchaseDetailMapper;
 import org.jeecg.modules.invoice.service.InvoiceManagePurchaseDetailService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import java.math.BigDecimal;
 
 /**
  * @Description: 采购,销售发票详情表
@@ -14,5 +16,4 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
  */
 @Service
 public class InvoiceManagePirchaseDetailServiceImpl extends ServiceImpl<InvoiceManagePurchaseDetailMapper, InvoiceManagePurchaseDetail> implements InvoiceManagePurchaseDetailService {
-
 }

+ 35 - 0
src/main/java/org/jeecg/modules/invoice/service/impl/InvoiceManagePurchaseServiceImpl.java

@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.transaction.annotation.Transactional;
+import java.math.BigDecimal;
 import java.util.List;
 
 /**
@@ -32,6 +33,8 @@ public class InvoiceManagePurchaseServiceImpl extends ServiceImpl<InvoiceManageP
     private ISysSerialPatternService sysSerialPatternService;
     @Autowired
     private InvoiceManagePurchaseDetailService invoiceManagePurchaseDetailService;
+    @Autowired
+    private InvoiceManagePurchaseMapper invoiceManagePurchaseMapper;
 
      /**
        * @Author jihaosen
@@ -56,6 +59,13 @@ public class InvoiceManagePurchaseServiceImpl extends ServiceImpl<InvoiceManageP
             InvoiceManagePurchaseDetail invoiceManagePurchaseDetail = new InvoiceManagePurchaseDetail(detail);
             invoiceManagePurchaseDetail.setSort(sort++);
             invoiceManagePurchaseDetailService.save(invoiceManagePurchaseDetail);
+            //将相同里程碑id与收付款条线的未收票金额
+            QueryWrapper<InvoiceManagePurchaseDetail> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("del_flag", "0").eq("co_archives_id", invoiceManagePurchaseDetail.getCoArchivesId())
+                    .eq("pro_business_id", invoiceManagePurchaseDetail.getProBusinessId());
+            invoiceManagePurchaseDetailService.update(new InvoiceManagePurchaseDetail(invoiceManagePurchaseDetail.getUncoPrice()), queryWrapper);
+
+
         }
 
     }
@@ -76,6 +86,11 @@ public class InvoiceManagePurchaseServiceImpl extends ServiceImpl<InvoiceManageP
             detail.setPurchaseId(invoiceManagePurchase.getId());
             InvoiceManagePurchaseDetail invoiceManagePurchaseDetail = new InvoiceManagePurchaseDetail(detail);
             invoiceManagePurchaseDetailService.save(invoiceManagePurchaseDetail);
+            //将相同里程碑id与收付款条线的未收票金额
+            QueryWrapper<InvoiceManagePurchaseDetail> queryWrapper = new QueryWrapper<>();
+            queryWrapper.eq("del_flag", "0").eq("co_archives_id", invoiceManagePurchaseDetail.getCoArchivesId())
+                    .eq("pro_business_id", invoiceManagePurchaseDetail.getProBusinessId());
+            invoiceManagePurchaseDetailService.update(new InvoiceManagePurchaseDetail(invoiceManagePurchaseDetail.getUncoPrice()), queryWrapper);
         }
 
         return true;
@@ -90,6 +105,10 @@ public class InvoiceManagePurchaseServiceImpl extends ServiceImpl<InvoiceManageP
     public boolean deleteById(InvoiceManagePurchase invoiceManagePurchase) {
         invoiceManagePurchase.setDelFlag("1");
         updateById(invoiceManagePurchase);
+
+        //回写未收票金额
+        returnUnCoPrice(invoiceManagePurchase.getId());
+
         //删除子表
         deleteChildrenTable(invoiceManagePurchase.getId());
         return true;
@@ -128,4 +147,20 @@ public class InvoiceManagePurchaseServiceImpl extends ServiceImpl<InvoiceManageP
         queryWrapper.eq("purchase_id", id).eq("del_flag", "0");
         invoiceManagePurchaseDetailService.update(new InvoiceManagePurchaseDetail("1"), queryWrapper);
     }
+
+    private void returnUnCoPrice(String id) {
+        QueryWrapper<InvoiceManagePurchaseDetail> queryWrapper = new QueryWrapper<>();
+        queryWrapper.eq("purchase_id", id).eq("del_flag", "0");
+        List<InvoiceManagePurchaseDetail> list = invoiceManagePurchaseDetailService.list(queryWrapper);
+        for(InvoiceManagePurchaseDetail detail : list){
+
+            QueryWrapper<InvoiceManagePurchaseDetail> wrapper = new QueryWrapper<>();
+            queryWrapper.eq("del_flag", "0").eq("co_archives_id", detail.getCoArchivesId())
+                    .eq("pro_business_id", detail.getProBusinessId());
+            BigDecimal unCoPrice = detail.getUncoPrice().add(detail.getCoPrice());
+            invoiceManagePurchaseDetailService.update(new InvoiceManagePurchaseDetail(unCoPrice), wrapper);
+
+        }
+        invoiceManagePurchaseDetailService.update(new InvoiceManagePurchaseDetail("1"), queryWrapper);
+    }
 }

+ 4 - 6
src/main/java/org/jeecg/modules/report/service/impl/ProReportServiceImpl.java

@@ -60,18 +60,16 @@ public class ProReportServiceImpl implements ProReportService {
          ProjectManageArchives projectManageArchives = projectManageArchivesService.getOne(queryWrapper);
 
          List<ProStatisticsRespDTO> respDTOS = getProStatisticsData(projectManageArchives);
-         return null;
+         return respDTOS;
      }
 
      private List<ProStatisticsRespDTO> getProStatisticsData(ProjectManageArchives projectManageArchives) {
          QueryWrapper<ProjectManageArchivesAndBusiness> queryWrapper = new QueryWrapper<>();
          queryWrapper.eq("del_flag", "0")
                  .eq("pro_archives_id", projectManageArchives.getId());
-         List<ProjectManageArchivesAndBusiness> list = projectManageArchivesAndBusinessService.list(queryWrapper);
-         List<ProStatisticsRespDTO> respDTOS = Lists.newArrayList();
-         for(ProjectManageArchivesAndBusiness business : list){
-             respDTOS.add(new ProStatisticsRespDTO(business));
-         }
+         List<ProStatisticsRespDTO> respDTOS = projectManageArchivesService.getBusinessData(queryWrapper);
+
+         //TODO 待定
          return respDTOS;
      }
  }