来款、开票

This commit is contained in:
baozhipeng
2021-09-10 10:12:50 +08:00
parent 133d794432
commit 8790d32374
4 changed files with 127 additions and 52 deletions
@@ -1,6 +1,7 @@
package com.jero.mail.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.jero.common.api.vo.Result;
import com.jero.mail.entity.PayMailBill;
import java.util.List;
@@ -22,4 +23,11 @@ public interface IPayMailBillService extends IService<PayMailBill> {
* @Exception
*/
List<PayMailBill> selectMailBillVO(String projectId);
/**
* 添加开票
* @param payMailBill
* @return
*/
Result<?> addPayBill(PayMailBill payMailBill,String projectId,Integer projectType);
}
@@ -2,12 +2,15 @@ package com.jero.mail.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.contract.common.PayIncomeContractCommon;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.mapper.PayMailBillMapper;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.payment.entity.PayPaymentRecord;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -47,4 +50,34 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
return list;
}
/**
* 添加开票
* @param payMailBill
* @return
*/
public Result<?> addPayBill(PayMailBill payMailBill,String projectId,Integer projectType){
if(PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(projectType))){
LambdaQueryWrapper<PayMailBillProject> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayMailBillProject::getProjectId, projectId);
wrapper.eq(PayMailBillProject::getProjectType, PayIncomeContractCommon.PROJECT_TYPE5);
List<PayMailBillProject> type5List = payMailBillProjectService.list(wrapper);
if(type5List!=null && type5List.size()>0){
return Result.error("标协会员项目,只能开票一次。");
}
}
//新增票据邮寄表
payMailBillService.save(payMailBill);
//新增票据关联项目表
PayMailBillProject payMailBillProject = new PayMailBillProject();
payMailBillProject.setBillId(payMailBill.getId());
payMailBillProject.setProjectId(projectId);
payMailBillProject.setProjectType(projectType);
payMailBillProjectService.save(payMailBillProject);
return Result.OK("添加成功!");
}
}
@@ -5,12 +5,15 @@ import java.util.List;
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.system.query.QueryGenerator;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.service.IPayMailBillService;
import com.jero.payment.entity.PayPaymentRecord;
import com.jero.payment.service.IPayPaymentRecordService;
import com.jero.project.entity.PayCommonProject;
@@ -34,6 +37,8 @@ import io.swagger.annotations.ApiOperation;
public class PayPaymentRecordController extends JeroController<PayPaymentRecord, IPayPaymentRecordService> {
@Autowired
private IPayPaymentRecordService payPaymentRecordService;
@Autowired
private IPayMailBillService payMailBillService;
@@ -52,56 +57,74 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
}
/**
* 添加阶段
* 添加来款
* @param payPaymentRecord
* @return
*/
@ApiOperation(value="添加阶段", notes="添加阶段")
@PostMapping(value = "/addPhase")
public Result<?> addPhase(@RequestBody PayPaymentRecord payPaymentRecord) {
@ApiOperation(value="添加来款", notes="添加来款")
@PostMapping(value = "/addAmountReceived")
public Result<?> addAmountReceived(@RequestBody PayPaymentRecord payPaymentRecord) {
return payPaymentRecordService.addPhase(payPaymentRecord);
}
/**
* 编辑
*
* @param payPaymentRecord
* 来款列表
* @return
*/
@ApiOperation(value="pay_payment_record-编辑", notes="pay_payment_record-编辑")
@PutMapping(value = "/edit")
public Result<?> edit(@RequestBody PayPaymentRecord payPaymentRecord) {
@ApiOperation(value="来款列表", notes="来款列表")
@PostMapping(value = "/amountReceivedList")
public Result<?> amountReceivedList(String id) {
LambdaQueryWrapper<PayPaymentRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayPaymentRecord::getProjectId, id);
wrapper.orderByDesc(PayPaymentRecord::getPaymentDate);
List<PayPaymentRecord> list = payPaymentRecordService.list(wrapper);
return Result.OK(list);
}
/**
* 编辑来款阶段
*/
@ApiOperation(value="编辑来款阶段", notes="编辑来款阶段")
@PutMapping(value = "/editAmountReceived")
public Result<?> editAmountReceived(@RequestBody PayPaymentRecord payPaymentRecord) {
payPaymentRecordService.updateById(payPaymentRecord);
return Result.OK("编辑成功!");
}
/**
* 通过id删除
*
* @param id
* @return
*/
@ApiOperation(value="pay_payment_record-通过id删除", notes="pay_payment_record-通过id删除")
@DeleteMapping(value = "/delete")
public Result<?> delete(@RequestParam(name="id",required=true) String id) {
payPaymentRecordService.removeById(id);
return Result.OK("删除成功!");
}
/**
* 批量删除
*
* @param ids
* @return
*/
@ApiOperation(value="pay_payment_record-批量删除", notes="pay_payment_record-批量删除")
@DeleteMapping(value = "/deleteBatch")
public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String ids) {
this.payPaymentRecordService.removeByIds(Arrays.asList(ids.split(",")));
return Result.OK("批量删除成功!");
}
/**
* 添加开票
*/
@ApiOperation(value="添加开票", notes="添加开票")
@PostMapping(value = "/addPayBill")
public Result<?> addPayBill(@RequestBody PayMailBill payMailBill,String projectId,Integer projectType) {
return payMailBillService.addPayBill(payMailBill, projectId, projectType);
}
/**
* 开票列表
* @return
*/
@ApiOperation(value="开票列表", notes="开票列表")
@PostMapping(value = "/payBillList")
public Result<?> payBillList(String id) {
return Result.OK(payMailBillService.selectMailBillVO(id));
}
/**
* 编辑开票
*/
@ApiOperation(value="编辑开票", notes="编辑开票")
@PutMapping(value = "/editPayBill")
public Result<?> editPayBill(@RequestBody PayMailBill payMailBill) {
payMailBillService.updateById(payMailBill);
return Result.OK("编辑成功!");
}
/**
* 通过id查询
*
@@ -129,16 +152,5 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
return super.exportXls(request, payPaymentRecord, PayPaymentRecord.class, "pay_payment_record");
}
/**
* 通过excel导入数据
*
* @param request
* @param response
* @return
*/
@RequestMapping(value = "/importExcel", method = RequestMethod.POST)
public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
return super.importExcel(request, response, PayPaymentRecord.class);
}
}
@@ -1,5 +1,6 @@
package com.jero.payment.service.impl;
import cn.hutool.http.HttpUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -63,16 +64,19 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
*/
public List<PayCommonProject> mainList(Page page, PayCommonProject payCommonProject){
return payPaymentRecordMapper.mainList(page, payCommonProject);
}
/**
* 添加阶段
* 添加来款记录
* @param payPaymentRecord
*/
public Result<?> addPhase(PayPaymentRecord payPaymentRecord){
payPaymentRecordMapper.insert(payPaymentRecord);
//来款记录表新增
String res = insertPayPaymentRecord(payPaymentRecord);
if(!"success".equals(res)){
return Result.error(res);
}
BigDecimal receivableAmount;
Boolean isAdd;
@@ -175,6 +179,24 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
return Result.OK("添加成功!");
}
//来款记录表新增
private String insertPayPaymentRecord(PayPaymentRecord payPaymentRecord){
//如果是标协会员类型,只能新增一次
if(PayIncomeContractCommon.PROJECT_TYPE5.equals(String.valueOf(payPaymentRecord.getProjectType()))){
LambdaQueryWrapper<PayPaymentRecord> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(PayPaymentRecord::getProjectId, payPaymentRecord.getProjectId());
wrapper.eq(PayPaymentRecord::getProjectType, PayIncomeContractCommon.PROJECT_TYPE5);
List<PayPaymentRecord> type5List = payPaymentRecordMapper.selectList(wrapper);
if(type5List!=null && type5List.size()>0){
return "标协会员项目,只能来款一次。";
}
}
payPaymentRecordMapper.insert(payPaymentRecord);
return "success";
}
/**
* 是否还能再添加来款
* @param receivableAmount 应收