普通项目管理功能开发

This commit is contained in:
梁琦涛
2021-08-30 14:12:26 +08:00
parent e0e35b6758
commit 0e6cf72941
6 changed files with 529 additions and 0 deletions
@@ -0,0 +1,237 @@
package com.jero.project.controller;
import java.util.Arrays;
import java.util.Objects;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.util.ValidUtil;
import com.jero.company.entity.PayCompanyManagement;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.entity.PayCommonProject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import lombok.extern.slf4j.Slf4j;
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;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
/**
* @Description: 普通项目管理
* @Author: jeecg-boot
* @Date: 2021-08-27
* @Version: V1.0
*/
@Api(tags="普通项目管理")
@RestController
@RequestMapping("/project/payCommonProject")
@Slf4j
public class PayCommonProjectController extends JeroController<PayCommonProject, IPayCommonProjectService> {
@Autowired
private IPayCommonProjectService payCommonProjectService;
/**
* 分页列表查询
*
* @param payCommonProject
* @param pageNo
* @param pageSize
* @param req
* @return
*/
@ApiOperation(value="普通项目管理-分页列表查询", notes="普通项目管理-分页列表查询")
@GetMapping(value = "/list")
public Result<?> queryPageList(PayCommonProject payCommonProject,
@RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
@RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
@RequestParam(name="paymentDate",required = false) String paymentDate,
HttpServletRequest req) {
if(!StringUtils.isBlank(payCommonProject.getChargeProject()) && payCommonProject.getChargeProject().length() > 100){
return Result.error("来款项目长度应小于100个字符");
}
if(!StringUtils.isBlank(payCommonProject.getChargeCompanyName()) && payCommonProject.getChargeCompanyName().length() > 50){
return Result.error("来款单位长度应小于50个字符");
}
Page<PayCommonProject> page = new Page<PayCommonProject>(pageNo, pageSize);
IPage<PayCommonProject> pageList = payCommonProjectService.queryPageList(page, payCommonProject, paymentDate);
return Result.OK(pageList);
}
/**
* 添加
*
* @param payCommonProject
* @return
*/
@ApiOperation(value="普通项目管理-添加", notes="普通项目管理-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayCommonProject payCommonProject) {
StringBuilder msg = ValidUtil.validateAll(payCommonProject);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
try {
// 编辑保存前再次校验来款项目是否存在
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCommonProject::getChargeProject,payCommonProject.getChargeProject());
PayCommonProject payCommonProjectNew = payCommonProjectService.getOne(queryWrapper);
// 来款项目存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payCommonProjectNew)) {
return Result.error("来款项目已存在!");
}
}catch (Exception e){
log.info("普通项目管理-添加异常",e);
return Result.error("来款项目已存在!");
}
payCommonProjectService.save(payCommonProject);
return Result.OK("添加成功!");
}
/**
* 编辑
*
* @param payCommonProject
* @return
*/
@ApiOperation(value="普通项目管理-编辑", notes="普通项目管理-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayCommonProject payCommonProject) {
StringBuilder msg = ValidUtil.validateAll(payCommonProject);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
}
try {
// 编辑保存前再次校验来款项目是否存在
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCommonProject::getChargeProject,payCommonProject.getChargeProject());
PayCommonProject payCommonProjectNew = payCommonProjectService.getOne(queryWrapper);
// 来款项目存在,并且编辑id与查询不同,则校验不通过
if(!Objects.isNull(payCommonProjectNew) && !Objects.equals(payCommonProjectNew.getId(),payCommonProject.getId())) {
return Result.error("来款项目已存在!");
}
}catch (Exception e){
log.info("普通项目管理-编辑异常",e);
return Result.error("来款项目已存在!");
}
payCommonProjectService.updateById(payCommonProject);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@ApiOperation(value="普通项目管理-通过id删除", notes="普通项目管理-通过id删除")
@GetMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
if(StringUtils.isBlank(id)){
return Result.error("id不能为空!");
}
payCommonProjectService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@ApiOperation(value="普通项目管理-批量删除", notes="普通项目管理-批量删除")
@GetMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
if(StringUtils.isBlank(ids)){
return Result.error("id不能为空!");
}
String[] s = ids.split(",");
for (String s1 : s) {
if(StringUtils.isBlank(s1)){
return Result.error("id不能为空!");
}
}
this.payCommonProjectService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 通过id查询
*
* @param id
* @return
*/
@ApiOperation(value="普通项目管理-通过id查询", notes="普通项目管理-通过id查询")
@GetMapping(value = "/queryById")
public Result<?> queryById(@RequestParam(name="id",required=true) String id) {
PayCommonProject payCommonProject = payCommonProjectService.getById(id);
if(payCommonProject==null) {
return Result.error("未找到对应数据");
}
return Result.OK(payCommonProject);
}
/**
* 通过来款项目查询
*
* @param chargeProject 来款项目
* @return
*/
@ApiOperation(value="普通项目管理-通过来款项目查询", notes="普通项目管理-通过来款项目查询")
@GetMapping(value = "/queryByChargeProject")
public Result<?> queryByChargeProject(@RequestParam(name="chargeProject",required=true) String chargeProject) {
if(StringUtils.isBlank(chargeProject)){
return Result.error("来款项目不能为空!");
}else{
if(chargeProject.length() > 100){
return Result.error("来款项目长度应小于100个字符!");
}
}
try {
LambdaQueryWrapper<PayCommonProject> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(PayCommonProject::getChargeProject,chargeProject);
PayCommonProject payCommonProject = payCommonProjectService.getOne(queryWrapper);
if(Objects.isNull(payCommonProject)) {
return Result.OK("没有来款项目!");
}
}catch (Exception e) {
log.info("普通项目管理-通过来款项目查询异常",e);
return Result.error("该来款项目已存在!");
}
return Result.error("该来款项目已存在!");
}
/**
* 导出excel
*
* @param request
* @param payCommonProject
*/
@ApiOperation(value="普通项目管理-导出excel", notes="普通项目管理-导出excel")
@GetMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayCommonProject payCommonProject) {
return super.exportXls(request, payCommonProject, PayCommonProject.class, "pay_common_project");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@ApiOperation(value="普通项目管理-通过excel导入数据", notes="普通项目管理-通过excel导入数据")
@PostMapping(value = "/importExcel")
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, PayCommonProject.class);
}
}
@@ -0,0 +1,149 @@
package com.jero.project.entity;
import java.io.Serializable;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import javax.validation.constraints.Size;
/**
* @Description: pay_common_project
* @Author: jeecg-boot
* @Date: 2021-08-27
* @Version: V1.0
*/
@Data
@TableName("pay_common_project")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="pay_common_project对象", description="pay_common_project")
public class PayCommonProject implements Serializable {
private static final long serialVersionUID = 1L;
/**主键*/
@TableId(type = IdType.ASSIGN_ID)
@ApiModelProperty(value = "主键")
private java.lang.String id;
/**来款项目*/
@Excel(name = "来款项目", width = 15)
@ApiModelProperty(value = "来款项目")
@Size(max = 100,message = "来款项目长度应小于100个字符")
private java.lang.String chargeProject;
/**运行年份*/
@Excel(name = "运行年份", width = 15)
@ApiModelProperty(value = "运行年份")
private java.lang.Integer year;
/**负责人id*/
@Excel(name = "负责人id", width = 15)
@ApiModelProperty(value = "负责人id")
private java.lang.String principalId;
/**负责人名称*/
@Excel(name = "负责人名称", width = 15)
@ApiModelProperty(value = "负责人名称")
private java.lang.String principalName;
/**来款企业id*/
@Excel(name = "来款企业id", width = 15)
@ApiModelProperty(value = "来款企业id")
private java.lang.String chargeCompanyId;
/**来款用途(字典表)*/
@Excel(name = "来款用途(字典表)", width = 15)
@ApiModelProperty(value = "来款用途(字典表)")
private java.lang.String chargeUse;
/**来款企业*/
@Excel(name = "来款企业", width = 15)
@ApiModelProperty(value = "来款企业")
private java.lang.String chargeCompanyName;
/**联系人id*/
@Excel(name = "联系人id", width = 15)
@ApiModelProperty(value = "联系人id")
private java.lang.String contactsId;
/**联系人名称*/
@Excel(name = "联系人名称", width = 15)
@ApiModelProperty(value = "联系人名称")
private java.lang.String contactsName;
/**应收金额(元)*/
@Excel(name = "应收金额(元)", width = 15)
@ApiModelProperty(value = "应收金额(元)")
private java.lang.Integer receivableAmount;
/**实收金额(元)*/
@Excel(name = "实收金额(元)", width = 15)
@ApiModelProperty(value = "实收金额(元)")
private java.lang.Integer paidAmount;
/**邮寄联系人id*/
@Excel(name = "邮寄联系人id", width = 15)
@ApiModelProperty(value = "邮寄联系人id")
private java.lang.String mailContactsId;
/**邮寄联系人名称*/
@Excel(name = "邮寄联系人名称", width = 15)
@ApiModelProperty(value = "邮寄联系人名称")
private java.lang.String mailContactsName;
/**打包(1:是,0:否)*/
@Excel(name = "打包(1:是,0:否)", width = 15)
@ApiModelProperty(value = "打包(1:是,0:否)")
private java.lang.Integer packaging;
/**需要发票(1:增值税普通发票,2:增值税专用发票,3:否)*/
@Excel(name = "需要发票(1:增值税普通发票,2:增值税专用发票,3:否)", width = 15)
@ApiModelProperty(value = "需要发票(1:增值税普通发票,2:增值税专用发票,3:否)")
private java.lang.Integer invoice;
/**到账(1:全额(对勾),20X),3>0 && <总金额(半满标志))*/
@Excel(name = "到账(1:全额(对勾),2:0X),3>0 && <总金额(半满标志))", width = 15)
@ApiModelProperty(value = "到账(1:全额(对勾),2:0X),3>0 && <总金额(半满标志))")
private java.lang.String inAccount;
/**开票(1:全额(对勾),20X),3>0 && <总金额(半满标志))*/
@Excel(name = "开票(1:全额(对勾),2:0X),3>0 && <总金额(半满标志))", width = 15)
@ApiModelProperty(value = "开票(1:全额(对勾),2:0X),3>0 && <总金额(半满标志))")
private java.lang.String makeInvoice;
/**邮寄((1:全额(对勾),20X),3>0 && <总金额(半满标志)))*/
@Excel(name = "邮寄((1:全额(对勾),2:0X),3>0 && <总金额(半满标志)))", width = 15)
@ApiModelProperty(value = "邮寄((1:全额(对勾),2:0X),3>0 && <总金额(半满标志)))")
private java.lang.String mail;
/**来款方式(1:无,2:合同,3:收费通知)*/
@Excel(name = "来款方式(1:无,2:合同,3:收费通知)", width = 15)
@ApiModelProperty(value = "来款方式(1:无,2:合同,3:收费通知)")
private java.lang.Integer chargeWay;
/**合同编号*/
@Excel(name = "合同编号", width = 15)
@ApiModelProperty(value = "合同编号")
private java.lang.String contractNum;
/**收费通知号*/
@Excel(name = "收费通知号", width = 15)
@ApiModelProperty(value = "收费通知号")
private java.lang.String chargeNoticeNo;
/**收费通知文件id*/
@Excel(name = "收费通知文件id", width = 15)
@ApiModelProperty(value = "收费通知文件id")
private java.lang.String chargeNoticeId;
/**催款次数*/
@Excel(name = "催款次数", width = 15)
@ApiModelProperty(value = "催款次数")
private java.lang.Integer pressMoneyTimes;
/**备注*/
@Excel(name = "备注", width = 15)
@ApiModelProperty(value = "备注")
private java.lang.String remarks;
/**创建人*/
@ApiModelProperty(value = "创建人")
private java.lang.String createBy;
/**创建时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "创建时间")
private java.util.Date createTime;
/**更新人*/
@ApiModelProperty(value = "更新人")
private java.lang.String updateBy;
/**更新时间*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private java.util.Date updateTime;
}
@@ -0,0 +1,26 @@
package com.jero.project.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.project.entity.PayCommonProject;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
/**
* @Description: pay_common_project
* @Author: jeecg-boot
* @Date: 2021-08-27
* @Version: V1.0
*/
public interface PayCommonProjectMapper extends BaseMapper<PayCommonProject> {
/**
* @Description 分页查询
* @Author lqt
* @Date 2021/8/27
* @Param paymentDate 来款年份
* @Return
* @Exception
*/
IPage<PayCommonProject> queryPageList(Page<PayCommonProject> page, @Param("payCommonProject") PayCommonProject payCommonProject,
@Param("paymentDate") String paymentDate);
}
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.project.mapper.PayCommonProjectMapper">
<select id="queryPageList" resultType="com.jero.project.entity.PayCommonProject">
SELECT
pcp.id,
pcp.charge_project AS chargeProject,
pcp.year,
pcp.principal_id AS principalId,
pcp.principal_name AS principalName,
pcp.charge_company_id AS chargeCompanyId,
pcp.charge_use AS chargeUse,
pcp.charge_company_name AS chargeCompanyName,
pcp.contacts_id AS contactsId,
pcp.contacts_name AS contactsName,
pcp.receivable_amount AS receivableAmount,
pcp.paid_amount AS paidAmount,
pcp.mail_contacts_id AS mailContactsId,
pcp.mail_contacts_name AS mailContactsName,
pcp.packaging,
pcp.invoice,
pcp.in_account AS inAccount,
pcp.make_invoice AS makeInvoice,
pcp.mail,
pcp.charge_way AS chargeWay,
pcp.contract_num AS contractNum,
pcp.charge_notice_no AS chargeNoticeNo,
pcp.charge_notice_id AS chargeNoticeId,
pcp.press_money_times AS pressMoneyTimes,
pcp.remarks,
pcp.create_by AS createBy,
pcp.create_time AS createTime,
pcp.update_by AS updateBy,
pcp.update_time AS updateTime
FROM pay_common_project pcp
LEFT JOIN pay_payment_record ppr ON ppr.project_id = pcp.id
<where>
<if test="payCommonProject.chargeProject != null and payCommonProject.chargeProject != ''">
AND pcp.charge_project like concat('%',concat(#{payCommonProject.chargeProject},'%'))
</if>
<if test="payCommonProject.chargeCompanyName != null and payCommonProject.chargeCompanyName != ''">
AND pcp.charge_company_name like concat('%',concat(#{payCommonProject.chargeCompanyName},'%'))
</if>
<if test="payCommonProject.principalId != null and payCommonProject.principalId != ''">
AND pcp.principal_id = #{payCommonProject.principalId}
</if>
<if test="payCommonProject.chargeUse != null and payCommonProject.chargeUse != ''">
AND pcp.charge_use = #{payCommonProject.chargeUse}
</if>
<if test="payCommonProject.contactsId != null and payCommonProject.contactsId != ''">
AND pcp.contacts_id = #{payCommonProject.contactsId}
</if>
<if test="paymentDate != null and paymentDate != ''">
AND DATE_FORMAT(ppr.payment_date,'%Y') = #{paymentDate}
</if>
<if test="payCommonProject.year != null and payCommonProject.year != ''">
AND year = #{payCommonProject.year}
</if>
</where>
GROUP BY pcp.id ORDER BY pcp.create_time DESC
</select>
</mapper>
@@ -0,0 +1,24 @@
package com.jero.project.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.project.entity.PayCommonProject;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @Description: pay_common_project
* @Author: jeecg-boot
* @Date: 2021-08-27
* @Version: V1.0
*/
public interface IPayCommonProjectService extends IService<PayCommonProject> {
/**
* @Description 分页查询
* @Author lqt
* @Date 2021/8/27
* @Param
* @Return
* @Exception
*/
IPage<PayCommonProject> queryPageList(Page<PayCommonProject> page,PayCommonProject payCommonProject, String paymentDate);
}
@@ -0,0 +1,30 @@
package com.jero.project.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.mapper.PayCommonProjectMapper;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import javax.annotation.Resource;
/**
* @Description: pay_common_project
* @Author: jeecg-boot
* @Date: 2021-08-27
* @Version: V1.0
*/
@Service
public class PayCommonProjectServiceImpl extends ServiceImpl<PayCommonProjectMapper, PayCommonProject> implements IPayCommonProjectService {
@Resource
private PayCommonProjectMapper payCommonProjectMapper;
@Override
public IPage<PayCommonProject> queryPageList(Page<PayCommonProject> page, PayCommonProject payCommonProject, String paymentDate) {
return payCommonProjectMapper.queryPageList(page,payCommonProject,paymentDate);
}
}