瀏覽代碼

1.合同报表

wuhp 1 年之前
父節點
當前提交
b45c37c8f8

+ 16 - 0
src/main/java/com/ydtech/modules/fnc/controller/contract/ContractController.java

@@ -123,4 +123,20 @@ public class ContractController extends BaseController {
         contractService.updateFileStatus(contractVo);
         return HttpResult.ok("补充协议状态修改成功");
     }
+
+
+    /**
+     * @description: 合同报表分页
+     * @author: whp
+     **/
+    @PostMapping("supplierContractPage")
+    @ApiOperation(value = "合同报表分页")
+    public HttpResult<IPage<ContractDto>> supplierContractPage(@RequestBody ContractVo contractVO) {
+        try {
+            IPage<ContractDto> result = contractService.supplierContractPage(contractVO);
+            return HttpResult.ok("查询数据成功", result);
+        } catch (Exception e) {
+            return HttpResult.error("查询错误" + e.getMessage());
+        }
+    }
 }

+ 5 - 0
src/main/java/com/ydtech/modules/fnc/dao/contract/ContractSupplierMapper.java

@@ -1,8 +1,12 @@
 package com.ydtech.modules.fnc.dao.contract;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ydtech.modules.fnc.dto.contract.ContractDto;
 import com.ydtech.modules.fnc.dto.contract.ContractSupplierDto;
 import com.ydtech.modules.fnc.entity.ContractSupplierEntity;
+import com.ydtech.modules.fnc.vo.ContractVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -28,4 +32,5 @@ public interface ContractSupplierMapper  extends BaseMapper<ContractSupplierEnti
      */
     List<ContractSupplierEntity> selecSupplierList(ContractSupplierDto contractSupplierDto);
 
+    IPage<ContractDto> queryPage(@Param("page") Page page,@Param("vo") ContractVo contractVO);
 }

+ 7 - 0
src/main/java/com/ydtech/modules/fnc/dto/contract/ContractDto.java

@@ -1,6 +1,7 @@
 package com.ydtech.modules.fnc.dto.contract;
 
 import com.baomidou.mybatisplus.annotation.TableField;
+import com.ydtech.modules.fnc.entity.ContractFileEntity;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -108,4 +109,10 @@ public class ContractDto implements Serializable {
 
     @ApiModelProperty("父级id")
     private String parentId;
+
+    @ApiModelProperty("账户简称")
+    private String namesimple;
+
+    @ApiModelProperty("合同附件集合")
+    private List<ContractFileEntity> contractFileEntityList;
 }

+ 7 - 0
src/main/java/com/ydtech/modules/fnc/service/contract/ContractService.java

@@ -57,4 +57,11 @@ public interface ContractService extends IService<ContractEntity> {
      * @return 补充协议修改状态
      */
     void updateFileStatus(ContractVo contractVo);
+
+    /**
+     *
+     * @param contractVO
+     * @return  合同供应商分页
+     */
+    IPage<ContractDto> supplierContractPage(ContractVo contractVO);
 }

+ 10 - 0
src/main/java/com/ydtech/modules/fnc/service/contract/ContractSupplierService.java

@@ -1,7 +1,10 @@
 package com.ydtech.modules.fnc.service.contract;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.ydtech.modules.fnc.dto.contract.ContractDto;
 import com.ydtech.modules.fnc.dto.contract.ContractSupplierDto;
 import com.ydtech.modules.fnc.entity.ContractSupplierEntity;
+import com.ydtech.modules.fnc.vo.ContractVo;
 
 import java.util.List;
 
@@ -17,4 +20,11 @@ public interface ContractSupplierService {
 
 
     List<ContractSupplierEntity> selecSupplierList(ContractSupplierDto contractSupplierDto);
+
+    /**
+     * @description: 合同报表分页
+     * @author: whp
+     **/
+    IPage<ContractDto> supplierContractPage(ContractVo contractVO);
+
 }

+ 35 - 0
src/main/java/com/ydtech/modules/fnc/service/contract/impl/ContractSupplierServiceImpl.java

@@ -1,21 +1,32 @@
 package com.ydtech.modules.fnc.service.contract.impl;
 
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ydtech.modules.base.controller.BaseController;
+import com.ydtech.modules.base.model.vo.PageVo;
 import com.ydtech.modules.fnc.dao.contract.ContractSupplierMapper;
+import com.ydtech.modules.fnc.dto.contract.ContractDto;
 import com.ydtech.modules.fnc.dto.contract.ContractSupplierDto;
+import com.ydtech.modules.fnc.entity.ContractEntity;
 import com.ydtech.modules.fnc.entity.ContractSupplierEntity;
 import com.ydtech.modules.fnc.service.contract.ContractSupplierService;
+import com.ydtech.modules.fnc.vo.ContractVo;
 import com.ydtech.utils.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.time.LocalDateTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.stream.Collectors;
 
 @Service
 public class ContractSupplierServiceImpl extends ServiceImpl<ContractSupplierMapper, ContractSupplierEntity> implements ContractSupplierService {
+    @Autowired
+    private ContractSupplierService contractSupplierService;
+
     /**
      * 合同供应商关联新增
      *
@@ -50,4 +61,28 @@ public class ContractSupplierServiceImpl extends ServiceImpl<ContractSupplierMap
     public List<ContractSupplierEntity> selecSupplierList(ContractSupplierDto contractSupplierDto) {
         return baseMapper.selecSupplierList(contractSupplierDto);
     }
+
+
+    /**
+     * @description: 合同报表分页
+     * @author: whp
+     **/
+    @Override
+    public IPage<ContractDto> supplierContractPage(ContractVo contractVO) {
+        PageVo<ContractVo> pageVo = new PageVo<>();
+        Page page = new Page(contractVO.getPageNum(), contractVO.getPageSize());
+        pageVo.setPageNum(contractVO.getPageNum());
+        pageVo.setPageSize(contractVO.getPageSize());
+
+        if (contractVO.getSupplierIdList() != null && !contractVO.getSupplierIdList().isEmpty()) { //查关联表获取合同id
+            ContractSupplierDto contractSupplierDto = new ContractSupplierDto();
+            contractSupplierDto.setSupplierIdList(contractVO.getSupplierIdList());
+            List<ContractSupplierEntity> contractSupplierEntityList = contractSupplierService.selecSupplierList(contractSupplierDto);
+            List<String> contractIdList = contractSupplierEntityList.stream().map(ContractSupplierEntity::getContractId).collect(Collectors.toList());
+            contractVO.setContractIdList(contractIdList);
+
+        }
+        IPage<ContractDto> queriedPage = baseMapper.queryPage(page, contractVO);
+        return queriedPage;
+    }
 }

+ 41 - 11
src/main/java/com/ydtech/modules/fnc/service/contract/impl/contractServiceImpl.java

@@ -100,20 +100,20 @@ public class contractServiceImpl extends ServiceImpl<ContractMapper, ContractEnt
         } else {
             ContractEntity contractEntity = new ContractEntity();
             BeanUtils.copyProperties(contractDto, contractEntity);
-            if(StringUtils.isNotEmpty(contractDto.getExternalCompaniesId())){
+            if (StringUtils.isNotEmpty(contractDto.getExternalCompaniesId())) {
                 String contractCode = this.generateCode(contractDto);
                 contractEntity.setContractCode(contractCode);
                 //甲方名称
                 String name = this.getNameInv(contractDto.getExternalCompaniesId());
                 contractEntity.setExternalCompaniesName(name);
             }
-            if(StringUtils.isNotEmpty(contractDto.getInternalCompanyId())){
+            if (StringUtils.isNotEmpty(contractDto.getInternalCompanyId())) {
                 //乙方名称
                 String interName = this.getNameInv(contractDto.getInternalCompanyId());
                 contractEntity.setInternalCompanyName(interName);
             }
             baseMapper.updateById(contractEntity);
-            if (contractDto.getSupplierIdList() !=null && !contractDto.getSupplierIdList().isEmpty()) {
+            if (contractDto.getSupplierIdList() != null && !contractDto.getSupplierIdList().isEmpty()) {
                 contractSupplierService.saveAndUpdate(contractDto.getSupplierIdList(), contractEntity.getId());
             }
 
@@ -314,21 +314,21 @@ public class contractServiceImpl extends ServiceImpl<ContractMapper, ContractEnt
      */
     @Override
     public HashMap<String, Object> checkCopyContract(ContractVo contractVo) {
-        int  i =0;
+        int i = 0;
         HashMap<String, Object> resultMap = new HashMap<>();
         // 检查当前合同状态是否为"0"
         QueryWrapper<ContractEntity> contractQueryWrapper = new QueryWrapper<>();
         contractQueryWrapper.eq("id", contractVo.getId());
         List<ContractEntity> contracts = baseMapper.selectList(contractQueryWrapper);
-        if(!contracts.isEmpty()){
-            i=0;
+        if (!contracts.isEmpty()) {
+            i = 0;
         }
         // 检查是否有以当前合同为父合同的合同且状态为"0"
         QueryWrapper<ContractEntity> parentContractQueryWrapper = new QueryWrapper<>();
         parentContractQueryWrapper.eq("contract_status", "0").eq("parent_id", contractVo.getId());
         List<ContractEntity> parentContracts = baseMapper.selectList(parentContractQueryWrapper);
-        if(!parentContracts.isEmpty()){
-           i=i+ parentContracts.size();
+        if (!parentContracts.isEmpty()) {
+            i = i + parentContracts.size();
         }
         // 如果有以当前合同为父合同的合同且状态为"0",则设置failStatus为"1",否则为"0"
         resultMap.put("failStatus", i);
@@ -340,12 +340,18 @@ public class contractServiceImpl extends ServiceImpl<ContractMapper, ContractEnt
     public List<ContractDto> copyContractList(ContractVo contractVo) {
         // 查询当前状态的合同
         QueryWrapper<ContractEntity> contractQueryWrapper = new QueryWrapper<>();
-        contractQueryWrapper.eq("contract_status", "0").eq("id", contractVo.getId());
+        contractQueryWrapper.eq("id", contractVo.getId());
+        if (StringUtils.isNotEmpty(contractVo.getContractStatus())) {
+            contractQueryWrapper.eq("contract_status", "0");
+        }
         List<ContractEntity> currentContracts = baseMapper.selectList(contractQueryWrapper);
 
         // 查询以其为父合同的合同
         QueryWrapper<ContractEntity> parentContractQueryWrapper = new QueryWrapper<>();
-        parentContractQueryWrapper.eq("contract_status", "0").eq("parent_id", contractVo.getId());
+        parentContractQueryWrapper.eq("parent_id", contractVo.getId());
+        if (StringUtils.isNotEmpty(contractVo.getContractStatus())) {
+            parentContractQueryWrapper.eq("contract_status", "0");
+        }
         List<ContractEntity> parentContracts = baseMapper.selectList(parentContractQueryWrapper);
 
         // 根据业务逻辑处理查询结果(这里不合并列表)
@@ -364,6 +370,21 @@ public class contractServiceImpl extends ServiceImpl<ContractMapper, ContractEnt
         if (!parentContracts.isEmpty()) {
             contractDtoList.addAll(BeanUtil.copyToList(parentContracts, ContractDto.class));
         }
+
+        for (ContractDto contractDto : contractDtoList) {
+            //      供应商
+            List<ContractSupplierEntity> contractSupplierEntityList = contractSupplierService.getByContractById(contractDto.getId());
+            if (contractSupplierEntityList != null && !contractSupplierEntityList.isEmpty()) {
+                List<String> supplierIdList = contractSupplierEntityList.stream().map(ContractSupplierEntity::getSupplierId).collect(Collectors.toList());
+                contractDto.setSupplierIdList(supplierIdList);
+            }
+//    附件
+            List<ContractFileEntity> contractFileEntityList = contractFileService.getByContractById(contractDto.getId());
+            if (!contractFileEntityList.isEmpty()) {
+                contractDto.setContractFileEntityList(contractFileEntityList);
+            }
+        }
+
         return contractDtoList;
     }
 
@@ -387,7 +408,7 @@ public class contractServiceImpl extends ServiceImpl<ContractMapper, ContractEnt
     @Transactional
     public void updateFileStatus(ContractVo contractVo) {
         ArrayList<ContractEntity> contractEntities = new ArrayList<>();
-        if(contractVo.getIdList().isEmpty()){
+        if (contractVo.getIdList().isEmpty()) {
             throw new SystemException("请选择有效合同");
         }
         for (String s : contractVo.getIdList()) {
@@ -398,4 +419,13 @@ public class contractServiceImpl extends ServiceImpl<ContractMapper, ContractEnt
         }
         this.saveOrUpdateBatch(contractEntities);
     }
+
+    /**
+     * @description: 合同报表分页
+     * @author: whp
+     **/
+    @Override
+    public IPage<ContractDto> supplierContractPage(ContractVo contractVO) {
+        return contractSupplierService.supplierContractPage(contractVO);
+    }
 }

+ 60 - 0
src/main/resources/mapper/modules/fnc/contract/ContractSupplierMapper.xml

@@ -60,7 +60,67 @@
                 </foreach>
             </if>
         </where>
+    </select>
+
+    <select id="queryPage" resultType="com.ydtech.modules.fnc.dto.contract.ContractDto">
+        select
+        ics.supplier_id as "supplierId",
+        eic.namesimple as "namesimple",
+        ic.contract_code as "contractCode",
+        ic.contract_name as "contractName",
+        ic.contract_type as "contractType",
+        ic.internal_company_id as "internalCompanyId",
+        ic.internal_company_name as "internalCompanyName",
+        ic.external_companies_name as "externalCompaniesName",
+        ic.external_companies_id as "externalCompaniesId",
+        ic.extern_type as "externType",
+        ic.internal_type as "internalType",
+        ic.is_open_contract as "isOpenContract",
+        ic.effective_date as "effectiveDate",
+        ic.expiring_date as "expiringDate",
+        ic.should_postponed_effective_date as "shouldPostponedEffectiveDate",
+        ic.id as "id"
+        from ins_contract_supplier ics
+        left join esm_ins_company eic on eic.id =ics.supplier_id
+        left join  ins_contract  ic on ic.id =ics.contract_id
+        <where>
+            <if test="vo.contractCode !=null  and  vo.contractCode !=''">
+                and ic.contract_code like concat('%',#{vo.contractCode},'%')
+            </if>
+
+            <if test="vo.contractIdList != null  and vo.contractIdList !='' and  vo.contractIdList.size()>0 ">
+                and ic.id IN
+                <foreach collection="vo.contractIdList" item="id" index="index" open="(" close=")" separator=",">
+                    #{id}
+                </foreach>
+            </if>
+
+            <if test="vo.contractName !=null  and  vo.contractName !=''">
+                and ic.contract_name =#{vo.contractName}
+            </if>
+
+            <if test="vo.internalCompanyId !=null  and  vo.internalCompanyId !=''">
+                and ic.internal_company_id =#{vo.internalCompanyId}
+
+            </if>
+
+
+            <if test="vo.externalCompaniesId !=null  and  vo.externalCompaniesId !=''">
+                and ic.external_companies_id =#{vo.externalCompaniesId}
+            </if>
 
+            <if test="vo.supplierId !=null  and  vo.supplierId !=''">
+                and ic.supplier_id =#{vo.supplierId}
+            </if>
+
+            <if test="vo.contractType !=null  and  vo.contractType !=''">
+                and ic.contract_type =#{vo.contractType}
+            </if>
+
+            <if test="vo.contractStatus !=null  and  vo.contractStatus !=''  and vo.contractStatus !='all'">
+                and ic.contract_status =#{vo.contractStatus}
+            </if>
+        </where>
     </select>
 
 </mapper>