打包关联项目

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