打包关联项目

This commit is contained in:
梁琦涛
2021-09-10 17:31:08 +08:00
parent f726c56b8e
commit 14ef14d149
22 changed files with 620 additions and 90 deletions
@@ -64,6 +64,14 @@ public class PayIncomeContractCommon {
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
*/
public final static String PROJECT_TYPE5 = "5";
/**
* 来款状态 0:全部 1:到期未付款
*/
public final static String CHARGE_STATUS0 = "0";
/**
* 来款状态 0:全部 1:到期未付款
*/
public final static String CHARGE_STATUS1 = "1";
/**
* 支出合同excel表头
*/
@@ -96,15 +96,12 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
if(!StringUtils.isBlank(payIncomeContract.getContractName()) && payIncomeContract.getContractName().length() > 50){
return Result.error("合同名称长度不能大于50个字符!");
}
// todo 缺少会议,会员项目,标协会员
Page<PayIncomeContractOutput> page = new Page<>(pageNo, pageSize);
IPage<PayIncomeContractOutput> pageList = payIncomeContractService.queryPageList(page, payIncomeContract,chargeStatus,projectName,startTime,endTime);
if(!CollectionUtils.isEmpty(pageList.getRecords())){
List<PayIncomeContractOutput> list = pageList.getRecords();
list.forEach(p->{
});
if(Objects.equals(chargeStatus,PayIncomeContractCommon.CHARGE_STATUS0)){
chargeStatus = "";
}
// todo 缺少会议,会员项目,标协会员
Page<PayIncomeContract> page = new Page<>(pageNo, pageSize);
IPage<PayIncomeContract> pageList = payIncomeContractService.queryPageList(page, payIncomeContract,chargeStatus,projectName,startTime,endTime);
return Result.OK(pageList);
}
@@ -21,6 +21,7 @@ import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.DateUtils;
import com.jero.common.util.oConvertUtils;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.contract.entity.*;
import com.jero.contract.service.IPaySpendingContractInstallmentService;
import com.jero.contract.service.IPaySpendingContractService;
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
@@ -200,4 +201,18 @@ public class PayIncomeContract implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private java.util.Date updateTime;
/**
* 来款状态 0:全部 1:到期未付款
*/
@TableField(exist = false)
@ApiModelProperty(value = "来款状态 0:全部 1:到期未付款")
private Integer chargeStatus;
/**
* 关联项目
*/
@TableField(exist = false)
@ApiModelProperty(value = "关联项目")
private String associatedProject;
}
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.jero.common.aspect.annotation.Dict;
@@ -180,4 +181,11 @@ public class PaySpendingContract implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**
* 来款状态 0:全部 1:到期未付款
*/
@TableField(exist = false)
@ApiModelProperty(value = "来款状态 0:全部 1:到期未付款")
private Integer chargeStatus;
}
@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.vo.PayIncomeContractOutput;
import com.jero.contract.vo.ProjectOutput;
import org.apache.ibatis.annotations.Param;
@@ -27,7 +26,7 @@ public interface PayIncomeContractMapper extends BaseMapper<PayIncomeContract> {
* @Return
* @Exception
*/
IPage<PayIncomeContractOutput> queryPageList(Page<PayIncomeContractOutput> page, @Param("payIncomeContract") PayIncomeContract payIncomeContract,
IPage<PayIncomeContract> queryPageList(Page<PayIncomeContract> page, @Param("payIncomeContract") PayIncomeContract payIncomeContract,
@Param("chargeStatus") String chargeStatus,@Param("projectName") String projectName,
@Param("startTime") String startTime, @Param("endTime") String endTime);
@@ -2,7 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.contract.mapper.PayIncomeContractMapper">
<!--缺少会议项目,会员项目-->
<select id="queryPageList" resultType="com.jero.contract.vo.PayIncomeContractOutput">
<select id="queryPageList" resultType="com.jero.contract.entity.PayIncomeContract">
SELECT * FROM
(
SELECT
@@ -6,9 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.contract.entity.PayIncomeContract;
import com.jero.contract.entity.PayIncomeContractAssociated;
import com.jero.contract.entity.PayIncomeContractAudit;
import com.jero.contract.vo.PayIncomeContractAssociatedInput;
import com.jero.contract.vo.PayIncomeContractInput;
import com.jero.contract.vo.PayIncomeContractOutput;
import com.jero.contract.vo.ProjectOutput;
import java.util.List;
@@ -31,7 +29,7 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
* @Return
* @Exception
*/
IPage<PayIncomeContractOutput> queryPageList(Page<PayIncomeContractOutput> page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime);
IPage<PayIncomeContract> queryPageList(Page<PayIncomeContract> page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime);
/**
* @Description 添加
* @Author lqt
@@ -19,7 +19,6 @@ import com.jero.contract.service.IPayIncomeContractAuditService;
import com.jero.contract.service.IPayIncomeContractInstallmentService;
import com.jero.contract.service.IPayIncomeContractService;
import com.jero.contract.vo.PayIncomeContractInput;
import com.jero.contract.vo.PayIncomeContractOutput;
import com.jero.contract.vo.ProjectOutput;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
@@ -43,7 +42,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -84,7 +82,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
@Override
public IPage<PayIncomeContractOutput> queryPageList(Page<PayIncomeContractOutput> page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) {
public IPage<PayIncomeContract> queryPageList(Page<PayIncomeContract> page, PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime) {
return payIncomeContractMapper.queryPageList(page,payIncomeContract,chargeStatus,projectName,startTime,endTime);
}
@@ -1,21 +0,0 @@
package com.jero.contract.vo;
import com.jero.contract.entity.PayIncomeContract;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class PayIncomeContractOutput extends PayIncomeContract implements Serializable {
/**
* 来款状态 0:全部 1:到期未付款
*/
@ApiModelProperty(value = "来款状态 0:全部 1:到期未付款")
private Integer chargeStatus;
/**
* 关联项目
*/
@ApiModelProperty(value = "关联项目")
private String associatedProject;
}
@@ -1,20 +0,0 @@
package com.jero.contract.vo;
import com.jero.contract.entity.PaySpendingContract;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
/**
* @Description: pay_spending_contract
* @Author: jeecg-boot
* @Date: 2021-09-07
* @Version: V1.0
*/
@Data
public class PaySpendingContractOutput extends PaySpendingContract implements Serializable {
/**
* 来款状态 0:全部 1:到期未付款
*/
@ApiModelProperty(value = "来款状态 0:全部 1:到期未付款")
private Integer chargeStatus;
}
@@ -0,0 +1,22 @@
package com.jero.pack.common;
public class PackCommon {
/**
* 打包(1:是,0:否)
*/
public final static Integer PACKAGING0 = 0;
/**
* 打包(1:是,0:否)
*/
public final static Integer PACKAGING1 = 1;
/**
* 来源(1:收入合同,2:打包管理)
*/
public final static Integer COME1 = 1;
/**
* 来源(1:收入合同,2:打包管理)
*/
public final static Integer COME2 = 2;
}
@@ -1,6 +1,7 @@
package com.jero.pack.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -15,8 +16,11 @@ import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.ValidUtil;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -37,7 +41,9 @@ import io.swagger.annotations.ApiOperation;
public class PayPackCompanyController extends JeroController<PayPackCompany, IPayPackCompanyService> {
@Autowired
private IPayPackCompanyService payPackCompanyService;
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
/**
* 分页列表查询
*
@@ -80,11 +86,11 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear());
PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query);
if(!Objects.isNull(payPackCompanyNew)){
return Result.error("当前年份下已存在打包企业!");
return Result.error("年份下已存在打包企业!");
}
}catch (Exception e){
log.error("",e);
return Result.error("当前年份下已存在打包企业!");
return Result.error("年份下已存在打包企业!");
}
payPackCompanyService.save(payPackCompany);
@@ -111,11 +117,11 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
query.eq(PayPackCompany::getPackYear,payPackCompany.getPackYear());
PayPackCompany payPackCompanyNew = payPackCompanyService.getOne(query);
if(!Objects.isNull(payPackCompanyNew) && !Objects.equals(payPackCompany.getId(),payPackCompanyNew.getId())){
return Result.error("当前年份下已存在打包企业!");
return Result.error("年份下已存在打包企业!");
}
}catch (Exception e){
log.error("",e);
return Result.error("当前年份下已存在打包企业!");
return Result.error("年份下已存在打包企业!");
}
payPackCompanyService.updateById(payPackCompany);
return Result.OK("编辑成功!");
@@ -134,6 +140,12 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
if(StringUtils.isBlank(id)){
return Result.error("id不能为空!");
}
LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>();
query.eq(PayPackCompanyProject::getPackId,id);
List<PayPackCompanyProject> list = payPackCompanyProjectService.list(query);
if(!CollectionUtils.isEmpty(list)){
return Result.error("该企业下有项目不可删除!");
}
payPackCompanyService.removeById(id);
return Result.OK("删除成功!");
}
@@ -157,6 +169,12 @@ public class PayPackCompanyController extends JeroController<PayPackCompany, IPa
return Result.error("id不能为空!");
}
}
LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>();
query.in(PayPackCompanyProject::getPackId,Arrays.asList(ids.split(",")));
List<PayPackCompanyProject> list = payPackCompanyProjectService.list(query);
if(!CollectionUtils.isEmpty(list)){
return Result.error("该企业下有项目不可删除!");
}
this.payPackCompanyService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
@@ -1,9 +1,12 @@
package com.jero.pack.controller;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -11,9 +14,17 @@ import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.jero.common.util.ValidUtil;
import com.jero.pack.common.PackCommon;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.ModelAndView;
@@ -21,18 +32,20 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* @Description: pay_pack_company_project
* @Description: 打包项目维护
* @Author: jeecg-boot
* @Date: 2021-09-07
* @Version: V1.0
*/
@Api(tags="pay_pack_company_project")
@Api(tags="打包项目维护")
@RestController
@RequestMapping("/pack/payPackCompanyProject")
@Slf4j
public class PayPackCompanyProjectController extends JeroController<PayPackCompanyProject, IPayPackCompanyProjectService> {
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private IPayPackCompanyService payPackCompanyService;
/**
* 分页列表查询
@@ -43,8 +56,8 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
* @param req
* @return
*/
@AutoLog(value = "pay_pack_company_project-分页列表查询")
@ApiOperation(value="pay_pack_company_project-分页列表查询", notes="pay_pack_company_project-分页列表查询")
@AutoLog(value = "打包项目维护-分页列表查询")
// @ApiOperation(value="打包项目维护-分页列表查询", notes="打包项目维护-分页列表查询")
@GetMapping(value = "/list")
public Result<?> queryPageList(PayPackCompanyProject payPackCompanyProject,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@@ -55,20 +68,119 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
IPage<PayPackCompanyProject> pageList = payPackCompanyProjectService.page(page, queryWrapper);
return Result.OK(pageList);
}
/**
* 列表查询
*
* @param input 参数
* @return
*/
@AutoLog(value = "打包项目维护-列表查询")
@ApiOperation(value="打包项目维护-列表查询", notes="打包项目维护-列表查询")
@GetMapping(value = "/listAll")
public Result<?> queryListAll(PayPackCompanyProjectInput input) {
if(Objects.isNull(input.getPack())){
return Result.error("打包id不能为空");
}
PayPackCompany payPackCompany = payPackCompanyService.getById(input.getPackId());
if(Objects.isNull(payPackCompany)){
return Result.error("打包企业不存在");
}
input.setCompanyId(payPackCompany.getCompanyId());
input.setPackYear(payPackCompany.getPackYear());
List<PayCommonProject> list = payPackCompanyProjectService.queryListAll(input);
return Result.OK(list);
}
/**
* 未打包列表查询
*
* @param input 参数
* @return
*/
@AutoLog(value = "打包项目维护-未打包列表查询")
@ApiOperation(value="打包项目维护-未打包列表查询", notes="打包项目维护-未打包列表查询")
@GetMapping(value = "/queryNotPackListAll")
public Result<?> queryNotPackListAll(PayPackCompanyProjectInput input) {
if(StringUtils.isBlank(input.getPackId())){
return Result.error("打包id不能为空");
}
PayPackCompany payPackCompany = payPackCompanyService.getById(input.getPackId());
if(Objects.isNull(payPackCompany)){
return Result.error("打包企业不存在");
}
input.setCompanyId(payPackCompany.getCompanyId());
input.setPack(PackCommon.PACKAGING0);
List<PayCommonProject> list = payPackCompanyProjectService.queryPackListAll(input);
return Result.OK(list);
}
/**
* 添加
* 添加打包
*
* @param payPackCompanyProject
* @return
*/
@AutoLog(value = "pay_pack_company_project-添加")
@ApiOperation(value="pay_pack_company_project-添加", notes="pay_pack_company_project-添加")
@AutoLog(value = "打包项目维护-添加打包")
@ApiOperation(value="打包项目维护-添加打包", notes="打包项目维护-添加打包")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayPackCompanyProject payPackCompanyProject) {
payPackCompanyProjectService.save(payPackCompanyProject);
payPackCompanyProjectService.addPayPackCompanyProject(payPackCompanyProject);
return Result.OK("添加成功!");
}
/**
* 取消打包
*
* @param payPackCompanyProject
* @return
*/
@AutoLog(value = "打包项目维护-取消打包")
@ApiOperation(value="打包项目维护-取消打包", notes="打包项目维护-取消打包")
@PostMapping(value = "/remove")
public Result<?> remove(@RequestBody PayPackCompanyProject payPackCompanyProject) {
if(StringUtils.isBlank(payPackCompanyProject.getId())){
return Result.error("关联id不能为空!");
}
PayPackCompanyProject payPackCompanyProjectNew = payPackCompanyProjectService.getById(payPackCompanyProject.getId());
if(Objects.isNull(payPackCompanyProjectNew)){
return Result.error("不存在打包项目!");
}
if(Objects.equals(payPackCompanyProjectNew.getCome(),PackCommon.COME2)){
return Result.error("此项目已在合同处创建关联,请先从合同处取消关联!");
}
payPackCompanyProjectService.removeById(payPackCompanyProject.getId());
return Result.OK("添加成功!");
}
/**
* 批量取消打包
*
* @param payPackCompanyProject
* @return
*/
@AutoLog(value = "打包项目维护-批量取消打包")
@ApiOperation(value="打包项目维护-批量取消打包", notes="打包项目维护-批量取消打包")
@PostMapping(value = "/removeBatch")
public Result<?> removeBatch(@RequestBody PayPackCompanyProject payPackCompanyProject) {
if(StringUtils.isBlank(payPackCompanyProject.getPackProjectIds())){
return Result.error("关联id不能为空!");
}
String[] s = payPackCompanyProject.getPackProjectIds().split(",");
for (String s1 : s) {
if(StringUtils.isBlank(s1)){
return Result.error("id不能为空!");
}
PayPackCompanyProject payPackCompanyProjectNew = payPackCompanyProjectService.getById(payPackCompanyProject.getId());
if(Objects.isNull(payPackCompanyProjectNew)){
return Result.error("不存在打包项目!");
}
if(Objects.equals(payPackCompanyProjectNew.getCome(),PackCommon.COME2)){
return Result.error("此项目已在合同处创建关联,请先从合同处取消关联!");
}
}
payPackCompanyProjectService.removeByIds(Arrays.asList(payPackCompanyProject.getPackProjectIds()));
return Result.OK("添加成功!");
}
/**
* 编辑
@@ -77,8 +189,8 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
* @return
*/
@AutoLog(value = "pay_pack_company_project-编辑")
@ApiOperation(value="pay_pack_company_project-编辑", notes="pay_pack_company_project-编辑")
@PutMapping(value = "/edit")
// @ApiOperation(value="pay_pack_company_project-编辑", notes="pay_pack_company_project-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayPackCompanyProject payPackCompanyProject) {
payPackCompanyProjectService.updateById(payPackCompanyProject);
return Result.OK("编辑成功!");
@@ -91,8 +203,8 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
* @return
*/
@AutoLog(value = "pay_pack_company_project-通过id删除")
@ApiOperation(value="pay_pack_company_project-通过id删除", notes="pay_pack_company_project-通过id删除")
@DeleteMapping(value = "/delete")
// @ApiOperation(value="pay_pack_company_project-通过id删除", notes="pay_pack_company_project-通过id删除")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
payPackCompanyProjectService.removeById(id);
return Result.OK("删除成功!");
@@ -105,8 +217,8 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
* @return
*/
@AutoLog(value = "pay_pack_company_project-批量删除")
@ApiOperation(value="pay_pack_company_project-批量删除", notes="pay_pack_company_project-批量删除")
@DeleteMapping(value = "/deleteBatch")
// @ApiOperation(value="pay_pack_company_project-批量删除", notes="pay_pack_company_project-批量删除")
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.payPackCompanyProjectService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
@@ -119,7 +231,7 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
* @return
*/
@AutoLog(value = "pay_pack_company_project-通过id查询")
@ApiOperation(value="pay_pack_company_project-通过id查询", notes="pay_pack_company_project-通过id查询")
// @ApiOperation(value="pay_pack_company_project-通过id查询", notes="pay_pack_company_project-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
PayPackCompanyProject payPackCompanyProject = payPackCompanyProjectService.getById(id);
@@ -135,7 +247,7 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
* @param request
* @param payPackCompanyProject
*/
@RequestMapping(value = "/exportXls")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayPackCompanyProject payPackCompanyProject) {
return super.exportXls(request, payPackCompanyProject, PayPackCompanyProject.class, "pay_pack_company_project");
}
@@ -147,7 +259,7 @@ public class PayPackCompanyProjectController extends JeroController<PayPackCompa
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
@PostMapping(value = "/importExcel")
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, PayPackCompanyProject.class);
}
@@ -58,11 +58,9 @@ public class PayPackCompany implements Serializable {
@ApiModelProperty(value = "企业联系人")
private java.lang.String companyContactTemporaryName;
/**打包年份*/
@Excel(name = "打包年份", width = 15, format = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@Excel(name = "打包年份", width = 15)
@ApiModelProperty(value = "打包年份")
private java.util.Date packYear;
private java.lang.String packYear;
/**打包联系人id*/
@Excel(name = "打包联系人id", width = 15)
@ApiModelProperty(value = "打包联系人id")
@@ -2,10 +2,12 @@ package com.jero.pack.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.hibernate.annotations.Table;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
@@ -13,6 +15,8 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotEmpty;
/**
* @Description: pay_pack_company_project
* @Author: jeecg-boot
@@ -31,18 +35,24 @@ public class PayPackCompanyProject implements Serializable {
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "id")
private java.lang.String id;
/**打包id*/
@Excel(name = "打包id", width = 15)
@ApiModelProperty(value = "打包id")
@NotEmpty(message = "打包id不能为空!")
private java.lang.String packId;
/**项目id*/
@Excel(name = "项目id", width = 15)
@ApiModelProperty(value = "项目id")
@NotEmpty(message = "项目id不能为空!")
private java.lang.String projectId;
/**企业id*/
@Excel(name = "企业id", width = 15)
@ApiModelProperty(value = "企业id")
private java.lang.String companyId;
/**来源(1:收入合同,2:打包管理)*/
@Excel(name = "来源(1:收入合同,2:打包管理)", width = 15)
@ApiModelProperty(value = "来源(1:收入合同,2:打包管理)")
private java.lang.Integer come;
/**项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)*/
@Excel(name = "项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)", width = 15)
@ApiModelProperty(value = "项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)")
private java.lang.Integer projectType;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
@@ -59,4 +69,12 @@ public class PayPackCompanyProject implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "更新日期")
private java.util.Date updateTime;
@TableField(exist = false)
@ApiModelProperty(value = "项目ids,逗号分割")
private String projectIds;
@TableField(exist = false)
@ApiModelProperty(value = "关联ids,逗号分割")
private String packProjectIds;
}
@@ -3,6 +3,11 @@ package com.jero.pack.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description: pay_pack_company_project
@@ -11,5 +16,23 @@ import com.jero.pack.entity.PayPackCompanyProject;
* @Version: V1.0
*/
public interface PayPackCompanyProjectMapper extends BaseMapper<PayPackCompanyProject> {
/**
* @Description 列表查询
* @Author lqt
* @Date 2021/9/10
* @Param
* @Return
* @Exception
*/
List<PayCommonProject> queryListAll(PayPackCompanyProjectInput input);
/**
* @Description 未打包列表查询
* @Author lqt
* @Date 2021/9/10
* @Param
* @Return
* @Exception
*/
List<PayCommonProject> queryPackListAll(PayPackCompanyProjectInput input);
}
@@ -2,4 +2,205 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.pack.mapper.PayPackCompanyProjectMapper">
<select id="queryListAll" resultType="com.jero.project.entity.PayCommonProject">
select project.*,ppcp.come from pay_pack_company_project ppcp
LEFT JOIN pay_payment_record ppr ON ppr.project_id = ppcp.project_id
<if test="paymentDate != null and paymentDate != ''">
AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate}
</if>
LEFT JOIN
(
<!-- 普通项目-->
select c.id,c.charge_project, c.charge_use, c.principal_id,c.principal_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType
from pay_common_project c
<where>
<if test="companyId != null amd companyId != ''">
AND c.charge_company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND c.charge_project LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND c.year = #{year}
</if>
</where>
<!--工作组项目-->
UNION ALL
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2
from pay_working_group g
inner join pay_working_group_subitem gsub on g.id = gsub.charge_company_id
<where>
<if test="companyId != null amd companyId != ''">
AND gsub.charge_company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND g.working_group_project LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND g.year = #{year}
</if>
</where>
<!-- 会议项目-->
UNION ALL
select sit.id,meeting.meeting_name,sit.charge_use, meeting.director_id, meeting.director_name,sit.company_name,sit.amount_receivable,sit.paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3
from pay_meeting meeting
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
<where>
<if test="companyId != null amd companyId != ''">
AND sit.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND meeting.meeting_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND meeting.particular_year = #{year}
</if>
</where>
<!-- 会员项目-->
UNION ALL
select msub.id,member.project_name,msub.charge_use,member.director_id,member.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4
from pay_member_project member
inner join pay_member_project_subitem msub on member.id=msub.project_id
<where>
<if test="companyId != null amd companyId != ''">
AND msub.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND member.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND member.particular_year = #{year}
</if>
</where>
<!-- 标协会员项目-->
UNION ALL
select tmsub.id,tmember.project_name,tmsub.charge_use,'','',tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5
from tb_member_project tmember
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
<where>
<if test="companyId != null amd companyId != ''">
AND tmsub.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND tmember.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND tmember.year = #{year}
</if>
</where>
) project ON project.id = ppr.project_id
GROUP BY ppcp.project_id ORDER BY ppcp.create_time desc
</select>
<select id="queryPackListAll" resultType="com.jero.project.entity.PayCommonProject">
<!-- 普通项目-->
select c.id,c.charge_project, c.charge_use, c.principal_id,c.principal_name,c.charge_company_temporary_name,c.receivable_amount,c.paid_amount,c.need_invoice,c.pack,c.in_account,c.make_invoice,c.mail,c.create_time,1 as projectType
from pay_common_project c
<where>
<if test="projectId != null amd projectId != ''">
AND c.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
AND c.charge_company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND c.charge_project LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND c.year = #{year}
</if>
<if test="pack != null and pack != ''">
AND c.pack = #{pack}
</if>
</where>
<!--工作组项目-->
UNION ALL
select gsub.id,g.working_group_project, gsub.charge_use, g.principal_id_a,g.principal_name_a,gsub.charge_company_temporary_name,gsub.receivable_amount,gsub.paid_amount,gsub.need_invoice,gsub.pack,gsub.in_account,gsub.make_invoice,gsub.mail,gsub.create_time,2
from pay_working_group g
inner join pay_working_group_subitem gsub on g.id = gsub.charge_company_id
<where>
<if test="projectId != null amd projectId != ''">
AND gsub.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
AND gsub.charge_company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND g.working_group_project LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND g.year = #{year}
</if>
<if test="pack != null and pack != ''">
AND gsub.pack = #{pack}
</if>
</where>
<!-- 会议项目-->
UNION ALL
select sit.id,meeting.meeting_name,sit.charge_use, meeting.director_id, meeting.director_name,sit.company_name,sit.amount_receivable,sit.paid_amount,sit.need_invoice,sit.pack,sit.in_account,sit.make_invoice,sit.mail,sit.create_time,3
from pay_meeting meeting
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
<where>
<if test="projectId != null amd projectId != ''">
AND sit.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
AND sit.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND meeting.meeting_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND meeting.particular_year = #{year}
</if>
<if test="pack != null and pack != ''">
AND sit.pack = #{pack}
</if>
</where>
<!-- 会员项目-->
UNION ALL
select msub.id,member.project_name,msub.charge_use,member.director_id,member.director_name,msub.company_name,msub.amount_receivable,msub.paid_amount,msub.need_invoice,msub.pack,msub.in_account,msub.make_invoice,msub.mail,msub.create_time,4
from pay_member_project member
inner join pay_member_project_subitem msub on member.id=msub.project_id
<where>
<if test="projectId != null amd projectId != ''">
AND msub.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
AND msub.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND member.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND member.particular_year = #{year}
</if>
<if test="pack != null and pack != ''">
AND msub.pack = #{pack}
</if>
</where>
<!-- 标协会员项目-->
UNION ALL
select tmsub.id,tmember.project_name,tmsub.charge_use,'','',tmsub.company_name,tmsub.amount_receivable,tmsub.paid_amount,tmsub.invoice_requirements,tmsub.pack,tmsub.in_account,tmsub.make_invoice,tmsub.mail,tmsub.create_time,5
from tb_member_project tmember
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
<where>
<if test="projectId != null amd projectId != ''">
AND tmsub.id = #{projectId}
</if>
<if test="companyId != null amd companyId != ''">
AND tmsub.company_id = #{companyId}
</if>
<if test="projectName != null amd projectName != ''">
AND tmember.project_name LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
<if test="year != null and year != ''">
AND tmember.year = #{year}
</if>
<if test="pack != null and pack != ''">
AND tmsub.pack = #{pack}
</if>
</where>
ORDER BY create_time desc
</select>
</mapper>
@@ -3,6 +3,10 @@ package com.jero.pack.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject;
import java.util.List;
/**
* @Description: pay_pack_company_project
@@ -11,5 +15,29 @@ import com.jero.pack.entity.PayPackCompanyProject;
* @Version: V1.0
*/
public interface IPayPackCompanyProjectService extends IService<PayPackCompanyProject> {
/**
* @Description 列表查询
* @Author lqt
* @Date 2021/9/10
* @Return
* @Exception
*/
List<PayCommonProject> queryListAll(PayPackCompanyProjectInput input);
/**
* @Description 未打包列表查询
* @Author lqt
* @Date 2021/9/10
* @Return
* @Exception
*/
List<PayCommonProject> queryPackListAll(PayPackCompanyProjectInput input);
/**
* @Description
* @Author lqt
* @Date 2021/9/10
* @Param
* @Return
* @Exception
*/
void addPayPackCompanyProject(PayPackCompanyProject payPackCompanyProject);
}
@@ -1,11 +1,27 @@
package com.jero.pack.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.exception.JeroBootException;
import com.jero.pack.entity.PayPackCompany;
import com.jero.pack.entity.PayPackCompanyProject;
import com.jero.pack.mapper.PayPackCompanyProjectMapper;
import com.jero.pack.service.IPayPackCompanyProjectService;
import com.jero.pack.service.IPayPackCompanyService;
import com.jero.pack.vo.PayPackCompanyProjectInput;
import com.jero.project.entity.PayCommonProject;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Objects;
/**
* @Description: pay_pack_company_project
* @Author: jeecg-boot
@@ -15,4 +31,58 @@ import org.springframework.stereotype.Service;
@Service
public class PayPackCompanyProjectServiceImpl extends ServiceImpl<PayPackCompanyProjectMapper, PayPackCompanyProject> implements IPayPackCompanyProjectService {
@Resource
private PayPackCompanyProjectMapper payPackCompanyProjectMapper;
@Autowired
private IPayPackCompanyProjectService payPackCompanyProjectService;
@Autowired
private IPayPackCompanyService payPackCompanyService;
@Override
public List<PayCommonProject> queryListAll(PayPackCompanyProjectInput input) {
return payPackCompanyProjectMapper.queryListAll(input);
}
@Override
public List<PayCommonProject> queryPackListAll(PayPackCompanyProjectInput input) {
return payPackCompanyProjectMapper.queryPackListAll(input);
}
@Override
public void addPayPackCompanyProject(PayPackCompanyProject payPackCompanyProject) {
PayPackCompany payPackCompany = payPackCompanyService.getById(payPackCompanyProject.getPackId());
if(Objects.isNull(payPackCompany)){
throw new JeroBootException("打包企业不存在");
}
if(StringUtils.isBlank(payPackCompanyProject.getProjectIds())){
throw new JeroBootException("请选择项目");
}
String[] s = payPackCompanyProject.getProjectIds().split(",");
List<PayPackCompanyProject> listPayPackCompanyProject = new ArrayList<>();
for (String s1 : s) {
if(StringUtils.isBlank(s1)){
throw new JeroBootException("项目id不能为空!");
}
PayPackCompanyProjectInput input = new PayPackCompanyProjectInput();
input.setProjectId(s1);
input.setCompanyId(payPackCompany.getCompanyId());
List<PayCommonProject> list = payPackCompanyProjectService.queryPackListAll(input);
if(CollectionUtils.isEmpty(list)){
throw new JeroBootException("项目下企业不匹配!");
}
payPackCompanyProject.setProjectId(s1);
listPayPackCompanyProject.add(payPackCompanyProject);
}
LambdaQueryWrapper<PayPackCompanyProject> query = new LambdaQueryWrapper<>();
query.in(PayPackCompanyProject::getProjectId, Arrays.asList(payPackCompanyProject.getProjectIds()));
List<PayPackCompanyProject> listPayPackCompanyProjectNew = payPackCompanyProjectService.list(query);
if(!CollectionUtils.isEmpty(listPayPackCompanyProjectNew)){
throw new JeroBootException("项目已被打包!");
}
if(!CollectionUtils.isEmpty(listPayPackCompanyProject)){
payPackCompanyProjectService.save(payPackCompanyProject);
}
}
}
@@ -0,0 +1,50 @@
package com.jero.pack.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
@Data
public class PayPackCompanyProjectInput implements Serializable {
/**
* 打包id
*/
@ApiModelProperty(value = "打包id")
private String packId;
/**
* 项目名称
*/
@ApiModelProperty(value = "项目名称")
private String projectName;
/**
* 企业id
*/
@ApiModelProperty(value = "企业id")
private String companyId;
/**
* 运行年份
*/
@ApiModelProperty(value = "运行年份")
private String year;
/**
* 打包(1:是,0:否)
*/
@ApiModelProperty(value = "打包(1:是,0:否)")
private Integer pack;
/**
* 打包年份
*/
@ApiModelProperty(value = "打包年份")
private String packYear;
/**
* 项目id
*/
@ApiModelProperty(value = "项目id")
private String projectId;
/**
* 项目ids,逗号分割
*/
@ApiModelProperty(value = "项目ids,逗号分割")
private String projectIds;
}
@@ -197,4 +197,11 @@ public class PayCommonProject implements Serializable {
@Dict(dicCode = "project_type")
@ApiModelProperty(value = "项目类型")
private Integer projectType;
/**
* 来源(1:收入合同,2:打包管理)
*/
@TableField(exist = false)
@ApiModelProperty(value = "来源(1:收入合同,2:打包管理)")
private Integer come;
}