财务管理-到账开票 修改开票、确认收入的弹框中增加撤销的功能
This commit is contained in:
+1
-2
@@ -7,7 +7,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.jero.common.api.vo.Result;
|
||||
import com.jero.company.entity.PayContactsManagement;
|
||||
import com.jero.mail.entity.PayMailBill;
|
||||
import com.jero.mail.entity.PayMailBillProject;
|
||||
import com.jero.mail.vo.PayMailBillVO;
|
||||
import com.jero.member.enums.StandardsTypeEnum;
|
||||
|
||||
@@ -100,6 +99,6 @@ public interface IPayMailBillService extends IService<PayMailBill> {
|
||||
IPage<PayMailBill> contactsSearchPageList(Page<PayMailBill> page, String userId, QueryWrapper<PayMailBill> queryWrapper);
|
||||
|
||||
|
||||
void backInvoice(PayMailBillProject payMailBillProject);
|
||||
void backInvoice(String id);
|
||||
|
||||
}
|
||||
|
||||
+179
-15
@@ -25,6 +25,7 @@ import com.jero.company.service.IPayCompanyManagementService;
|
||||
import com.jero.company.service.IPayContactsManagementService;
|
||||
import com.jero.config.StaticConfig;
|
||||
import com.jero.contract.common.PayIncomeContractCommon;
|
||||
import com.jero.mail.commont.constant;
|
||||
import com.jero.mail.entity.BillingInfo;
|
||||
import com.jero.mail.entity.PayMailBill;
|
||||
import com.jero.mail.entity.PayMailBillProject;
|
||||
@@ -38,12 +39,11 @@ import com.jero.meeting.entity.PayMeetingSituation;
|
||||
import com.jero.meeting.mapper.PayMeetingMapper;
|
||||
import com.jero.meeting.mapper.PayMeetingSituationMapper;
|
||||
import com.jero.meeting.service.IPayMeetingService;
|
||||
import com.jero.meeting.service.IPayMeetingSituationService;
|
||||
import com.jero.member.entity.*;
|
||||
import com.jero.member.enums.StandardsTypeEnum;
|
||||
import com.jero.member.mapper.*;
|
||||
import com.jero.member.service.IPayMemberProjectService;
|
||||
import com.jero.member.service.ITbCertificatePaymentService;
|
||||
import com.jero.member.service.ITbMemberProjectService;
|
||||
import com.jero.member.service.*;
|
||||
import com.jero.modules.system.entity.SysUser;
|
||||
import com.jero.modules.system.service.ISysUserService;
|
||||
import com.jero.payment.service.IPayPaymentRecordService;
|
||||
@@ -53,14 +53,18 @@ import com.jero.project.entity.PayWorkingGroupSubItem;
|
||||
import com.jero.project.entity.PayWorkingGroupSubItemContacts;
|
||||
import com.jero.project.mapper.PayCommonProjectMapper;
|
||||
import com.jero.project.mapper.PayWorkingGroupMapper;
|
||||
import com.jero.project.mapper.PayWorkingGroupSubItemContactsMapper;
|
||||
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
|
||||
import com.jero.project.service.IPayCommonProjectService;
|
||||
import com.jero.project.service.IPayWorkingGroupService;
|
||||
import com.jero.project.service.IPayWorkingGroupSubItemContactsService;
|
||||
import com.jero.project.service.IPayWorkingGroupSubItemService;
|
||||
import com.jero.temporary.entity.PayCompanyManagementTemporary;
|
||||
import com.jero.temporary.entity.PayContactsManagementTemporary;
|
||||
import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
|
||||
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.ObjectUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
@@ -140,6 +144,22 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
@Autowired
|
||||
private IPayPaymentRecordService payPaymentRecordService;
|
||||
|
||||
@Resource
|
||||
private IPayCommonProjectService payCommonProjectService;
|
||||
@Resource
|
||||
private IPayMemberProjectSubitemService payMemberProjectSubitemService;
|
||||
@Resource
|
||||
private IPayMeetingSituationService payMeetingSituationService;
|
||||
@Resource
|
||||
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
|
||||
@Resource
|
||||
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
|
||||
@Resource
|
||||
private ITbCertificatePaymentService tbCertificatePaymentService;
|
||||
@Resource
|
||||
private PayWorkingGroupSubItemContactsMapper payWorkingGroupSubItemContactsMapper;
|
||||
|
||||
|
||||
@Override
|
||||
public List<PayMailBill> selectMailBillVO(String projectId) {
|
||||
if (StringUtils.isBlank(projectId)) {
|
||||
@@ -602,15 +622,15 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public void backInvoice(PayMailBillProject payMailBillProject) {
|
||||
if(StringUtils.isBlank(payMailBillProject.getId()) || StringUtils.isBlank(payMailBillProject.getBillId())){
|
||||
throw new JeroBootException("邮寄票据关联项目id、邮寄票据billId不能为空");
|
||||
public void backInvoice(String id) {
|
||||
if(StringUtils.isBlank(id)){
|
||||
throw new JeroBootException("邮寄票据Id不能为空");
|
||||
}
|
||||
PayMailBill payMailBill = getById(payMailBillProject.getBillId());
|
||||
PayMailBill payMailBill = getById(id);
|
||||
if(Objects.isNull(payMailBill)){
|
||||
throw new JeroBootException("未找到对应数据");
|
||||
}
|
||||
PayMailBillProject payMailBillProjectObj = payMailBillProjectService.getById(payMailBillProject.getId());
|
||||
PayMailBillProject payMailBillProjectObj = payMailBillProjectService.getById(payMailBill.getProjectId());
|
||||
if(Objects.isNull(payMailBillProjectObj)){
|
||||
throw new JeroBootException("未找到对应数据");
|
||||
}
|
||||
@@ -622,15 +642,159 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
|
||||
if(Objects.equals(payMailBill.getPostStatus(),1)){
|
||||
throw new JeroBootException("票据已邮寄不可撤销");
|
||||
}
|
||||
|
||||
// 删除邮寄票据关联项目表
|
||||
payMailBillProjectService.removeById(payMailBillProject.getId());
|
||||
|
||||
// 删除邮寄票据表
|
||||
removeById(payMailBillProject.getBillId());
|
||||
// todo 到账开票减掉开票
|
||||
removeById(id);
|
||||
|
||||
// todo 项目减掉开票
|
||||
// 更新项目信息
|
||||
updateProjectInfo(id);
|
||||
|
||||
// 判断项目下是否存在票据
|
||||
LambdaQueryWrapper<PayMailBill> queryPayMailBill = new LambdaQueryWrapper<>();
|
||||
queryPayMailBill.eq(PayMailBill::getProjectId,payMailBill.getProjectId());
|
||||
long l = count(queryPayMailBill);
|
||||
if(l == 0){
|
||||
// 删除邮寄票据关联项目表
|
||||
payMailBillProjectService.removeById(payMailBill.getProjectId());
|
||||
}
|
||||
}
|
||||
|
||||
public void updateProjectInfo(String id){
|
||||
//变更5种项目的邮寄状态
|
||||
LambdaQueryWrapper<PayMailBillProject> queryPayMailBillProject = new LambdaQueryWrapper<>();
|
||||
queryPayMailBillProject.eq(PayMailBillProject::getBillId,id);
|
||||
List<PayMailBillProject> list1 = payMailBillProjectService.list(queryPayMailBillProject);
|
||||
for(PayMailBillProject one:list1) {
|
||||
if (ObjectUtils.isNotEmpty(one)) {
|
||||
LambdaQueryWrapper<PayMailBillProject> queryPayMailBillProjectTwo = new LambdaQueryWrapper<>();
|
||||
queryPayMailBillProjectTwo.eq(PayMailBillProject::getProjectId, one.getProjectId());
|
||||
List<PayMailBillProject> listPayMailBillProject = payMailBillProjectService.list(queryPayMailBillProjectTwo);
|
||||
|
||||
// 开票金额
|
||||
BigDecimal invoice = new BigDecimal("0.00");
|
||||
// 开票次数
|
||||
int c = listPayMailBillProject.size();
|
||||
// 邮寄次数
|
||||
int y = 0;
|
||||
if (!CollectionUtils.isEmpty(listPayMailBillProject)) {
|
||||
BigDecimal b = listPayMailBillProject.stream().map(PayMailBillProject::getInvoiceAmount).reduce(BigDecimal.ZERO, BigDecimal::add);
|
||||
invoice = invoice.add(b);
|
||||
List<String> list = listPayMailBillProject.stream().map(PayMailBillProject::getBillId).collect(Collectors.toList());
|
||||
LambdaQueryWrapper<PayMailBill> queryPayMailBill = new LambdaQueryWrapper<>();
|
||||
queryPayMailBill.in(PayMailBill::getId, list);
|
||||
queryPayMailBill.eq(PayMailBill::getPostStatus, ProjectCommon.POST_STATUS1);
|
||||
List<PayMailBill> listPayMailBill = payMailBillService.list(queryPayMailBill);
|
||||
y = listPayMailBill.size();
|
||||
}
|
||||
//获取项目待确收金额
|
||||
BigDecimal receivableAmount;
|
||||
|
||||
List<PayContactsManagementTemporary> listId = new ArrayList<>();
|
||||
//判断变更那个项目的邮寄状态
|
||||
if (GlobalConstants.ONE.equals(one.getProjectType())) {
|
||||
PayCommonProject payCommonProjectOld = payCommonProjectService.getById(one.getProjectId());
|
||||
if (Objects.isNull(payCommonProjectOld)) {
|
||||
throw new JeroBootException("项目不存在!");
|
||||
}
|
||||
PayContactsManagementTemporary payCommonProjectTemporary = payContactsManagementTemporaryService.getById(payCommonProjectOld.getContactsTemporaryId());
|
||||
if (!Objects.isNull(payCommonProjectTemporary)) {
|
||||
listId.add(payCommonProjectTemporary);
|
||||
}
|
||||
|
||||
receivableAmount = payCommonProjectOld.getReceivableAmount();
|
||||
PayCommonProject payCommonProject = new PayCommonProject();
|
||||
if (receivableAmount.compareTo(invoice) == 0 && c == y) {
|
||||
payCommonProject.setId(one.getProjectId());
|
||||
payCommonProject.setMail(constant.ONE);
|
||||
payCommonProjectService.updateById(payCommonProject);
|
||||
} else if (y <= c && y > 0) {
|
||||
payCommonProject.setId(one.getProjectId());
|
||||
payCommonProject.setMail(constant.TWO);
|
||||
payCommonProjectService.updateById(payCommonProject);
|
||||
}
|
||||
} else if (GlobalConstants.TWO.equals(one.getProjectType())) {
|
||||
PayWorkingGroupSubItem payWorkingGroupSubItemOld = payWorkingGroupSubItemService.getById(one.getProjectId());
|
||||
if (Objects.isNull(payWorkingGroupSubItemOld)) {
|
||||
throw new JeroBootException("项目不存在!");
|
||||
}
|
||||
PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorkingGroupSubItemOld.getWorkingGroupId());
|
||||
if (Objects.isNull(payWorkingGroup)) {
|
||||
throw new JeroBootException("工作组不存在!");
|
||||
}
|
||||
List<PayWorkingGroupSubItemContacts> subItemContacts = payWorkingGroupSubItemContactsMapper.getSubItemContacts(one.getProjectId());
|
||||
for (PayWorkingGroupSubItemContacts subItemContact : subItemContacts) {
|
||||
PayContactsManagementTemporary payWorkingTemporary = payContactsManagementTemporaryService.getById(subItemContact.getContactsTemporaryId());
|
||||
if (!Objects.isNull(payWorkingTemporary)) {
|
||||
listId.add(payWorkingTemporary);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
receivableAmount = payWorkingGroupSubItemOld.getReceivableAmount();
|
||||
PayWorkingGroupSubItem payWorkingGroupSubItem = new PayWorkingGroupSubItem();
|
||||
if (receivableAmount.compareTo(invoice) == 0 && c == y) {
|
||||
payWorkingGroupSubItem.setId(one.getProjectId());
|
||||
payWorkingGroupSubItem.setMail(constant.ONE);
|
||||
payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem);
|
||||
} else if (y <= c && y > 0) {
|
||||
payWorkingGroupSubItem.setId(one.getProjectId());
|
||||
payWorkingGroupSubItem.setMail(constant.TWO);
|
||||
payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem);
|
||||
}
|
||||
} else if (GlobalConstants.THREE.equals(one.getProjectType())) {
|
||||
PayMeetingSituation meetingPayContactsManagementOld = payMeetingSituationService.getById(one.getProjectId());
|
||||
if (Objects.isNull(meetingPayContactsManagementOld)) {
|
||||
throw new JeroBootException("项目不存在!");
|
||||
}
|
||||
PayMeeting payMeeting = payMeetingService.getById(meetingPayContactsManagementOld.getMeetingId());
|
||||
if (Objects.isNull(payMeeting)) {
|
||||
throw new JeroBootException("会议不存在!");
|
||||
}
|
||||
PayContactsManagement meetingPayContactsManagement = payContactsManagementService.getById(meetingPayContactsManagementOld.getContractId());
|
||||
if (!Objects.isNull(meetingPayContactsManagement)) {
|
||||
String str = JSON.toJSONString(meetingPayContactsManagement);
|
||||
PayContactsManagementTemporary meetingTemporary = JSONObject.parseObject(str, PayContactsManagementTemporary.class);
|
||||
listId.add(meetingTemporary);
|
||||
}
|
||||
|
||||
receivableAmount = meetingPayContactsManagementOld.getAmountReceivable();
|
||||
PayMeetingSituation payMeetingSituation = new PayMeetingSituation();
|
||||
if (receivableAmount.compareTo(invoice) == 0 && c == y) {
|
||||
payMeetingSituation.setId(one.getProjectId());
|
||||
payMeetingSituation.setMail(constant.ONE);
|
||||
payMeetingSituationService.updateById(payMeetingSituation);
|
||||
} else if (y <= c && y > 0) {
|
||||
payMeetingSituation.setId(one.getProjectId());
|
||||
payMeetingSituation.setMail(constant.TWO);
|
||||
payMeetingSituationService.updateById(payMeetingSituation);
|
||||
}
|
||||
} else if (GlobalConstants.FORE.equals(one.getProjectType())) {
|
||||
PayMemberProjectSubitem payMemberProjectSubitemOld = payMemberProjectSubitemService.getById(one.getProjectId());
|
||||
if (Objects.isNull(payMemberProjectSubitemOld)) {
|
||||
throw new JeroBootException("项目不存在!");
|
||||
}
|
||||
PayMemberProject payMemberProject = memberProjectService.getById(payMemberProjectSubitemOld.getProjectId());
|
||||
if (Objects.isNull(payMemberProject)) {
|
||||
throw new JeroBootException("会员项目不存在!");
|
||||
}
|
||||
PayContactsManagementTemporary memberTemporary = payContactsManagementTemporaryService.getById(payMemberProjectSubitemOld.getCompanyContactTemporaryId());
|
||||
if (!Objects.isNull(memberTemporary)) {
|
||||
listId.add(memberTemporary);
|
||||
}
|
||||
|
||||
receivableAmount = payMemberProjectSubitemOld.getAmountReceivable();
|
||||
PayMemberProjectSubitem payMemberProjectSubitem = new PayMemberProjectSubitem();
|
||||
if (receivableAmount.compareTo(invoice) == 0 && c == y) {
|
||||
payMemberProjectSubitem.setId(one.getProjectId());
|
||||
payMemberProjectSubitem.setMail(constant.ONE);
|
||||
payMemberProjectSubitemService.updateById(payMemberProjectSubitem);
|
||||
} else if (y <= c && y > 0) {
|
||||
payMemberProjectSubitem.setId(one.getProjectId());
|
||||
payMemberProjectSubitem.setMail(constant.TWO);
|
||||
payMemberProjectSubitemService.updateById(payMemberProjectSubitem);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
+1
-2
@@ -180,8 +180,7 @@
|
||||
</select>
|
||||
<select id="getMeetingPackStatistics" resultType="com.jero.statistics.entity.MeetingPackStatistics">
|
||||
select
|
||||
p1.id,p1.meeting_id,p1.company_name,p1.company_contact_name,p1.amount_receivable as allMoney,p1.confirm_amount,
|
||||
p1.invoice_amount as billMoney,p1.paid_amount as comeAllMoney,p2.meeting_name,p2.meeting_type,DATE_FORMAT(p3.payment_date,'%Y') as payment_year
|
||||
${ew.customSqlSelect}
|
||||
from pay_meeting_situation p1
|
||||
left join pay_meeting p2 on p1.meeting_id = p2.id
|
||||
left join pay_confirm_payment_record p3 on p3.project_id = p1.id
|
||||
|
||||
+4
-4
@@ -9,12 +9,12 @@ import com.jero.meeting.entity.PayMeeting;
|
||||
import com.jero.meeting.entity.PayMeetingGuestsFile;
|
||||
import com.jero.meeting.entity.PayMeetingSituation;
|
||||
import com.jero.meeting.vo.*;
|
||||
import com.jero.statistics.entity.MeetingPackStatistics;
|
||||
import com.jero.statistics.entity.MeetingPackStatisticsSearch;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@@ -106,9 +106,9 @@ public interface IPayMeetingSituationService extends IService<PayMeetingSituatio
|
||||
|
||||
void guestsDeleteFile(GuestsUploadFileVO guestsUploadFileVO);
|
||||
|
||||
IPage<MeetingPackStatistics> getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch,
|
||||
Integer pageNo,
|
||||
Integer pageSize);
|
||||
HashMap<String, Object> getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch,
|
||||
Integer pageNo,
|
||||
Integer pageSize);
|
||||
|
||||
ModelAndView excelMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch);
|
||||
}
|
||||
|
||||
+18
-2
@@ -79,6 +79,7 @@ import com.jero.temporary.service.IPayCompanyManagementTemporaryService;
|
||||
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
|
||||
import com.jero.util.ObjRecordUtil;
|
||||
import com.jero.util.module.ObjRecordUtilModule;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.apache.shiro.SecurityUtils;
|
||||
import org.jeecgframework.poi.excel.def.NormalExcelConstants;
|
||||
@@ -1923,12 +1924,27 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
|
||||
}
|
||||
|
||||
@Override
|
||||
public IPage<MeetingPackStatistics> getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch,
|
||||
public HashMap<String, Object> getMeetingPackStatistics(MeetingPackStatisticsSearch metingPackStatisticsSearch,
|
||||
Integer pageNo,
|
||||
Integer pageSize) {
|
||||
QueryWrapper<PayMeetingSituation> query = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch);
|
||||
Page<PayMeetingSituation> page = new Page<>(pageNo, pageSize);
|
||||
return payMeetingSituationMapper.getMeetingPackStatistics(page,query);
|
||||
query.select("p1.id,p1.meeting_id,p1.company_name,p1.company_contact_name,p1.amount_receivable as allMoney,p1.confirm_amount,\n" +
|
||||
" p1.invoice_amount as billMoney,p1.paid_amount as comeAllMoney,p2.meeting_name,p2.meeting_type,DATE_FORMAT(p3.payment_date,'%Y') as payment_year");
|
||||
// 查看分页数据
|
||||
IPage<MeetingPackStatistics> pageList = payMeetingSituationMapper.getMeetingPackStatistics(page,query);
|
||||
// 查看汇总价格
|
||||
QueryWrapper<PayMeetingSituation> querySum = getPayMeetingSituationQueryWrapper(metingPackStatisticsSearch);
|
||||
querySum.select("sum(p1.amount_receivable) as allMoney,sum(p1.confirm_amount) as confirm_amount,\n" +
|
||||
"sum(p1.invoice_amount) as billMoney,sum(p1.paid_amount) as comeAllMoney");
|
||||
List<MeetingPackStatistics> sumList = payMeetingSituationMapper.getMeetingPackStatistics(query);
|
||||
HashMap<String, Object> hashMap = new HashMap<>();
|
||||
hashMap.put("sumOfMoney", (CollectionUtils.isEmpty(sumList) || StringUtils.isBlank(sumList.get(0).getAllMoney())) ? 0 : sumList.get(0).getAllMoney());
|
||||
hashMap.put("sumOfReallyMoney", (CollectionUtils.isEmpty(sumList) || StringUtils.isBlank(sumList.get(0).getComeAllMoney())) ? 0 : sumList.get(0).getComeAllMoney());
|
||||
hashMap.put("sumOfBillMoney", (CollectionUtils.isEmpty(sumList) || StringUtils.isBlank(sumList.get(0).getBillMoney())) ? 0 : sumList.get(0).getBillMoney());
|
||||
hashMap.put("sumOfConfirmAmount", (CollectionUtils.isEmpty(sumList) || StringUtils.isBlank(sumList.get(0).getConfirmAmount())) ? 0 : sumList.get(0).getConfirmAmount());
|
||||
hashMap.put("pageList", pageList);
|
||||
return hashMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+2
-2
@@ -157,8 +157,8 @@ public class PayConfirmPaymentRecordController extends JeroController<PayConfir
|
||||
@AutoLog(value = "确认来款-撤销")
|
||||
@ApiOperation(value="确认来款-撤销", notes="确认来款-撤销")
|
||||
@PostMapping(value = "/backIncoming")
|
||||
public Result<?> backIncoming(@RequestBody PayConfirmPaymentRecord payConfirmPaymentRecord) {
|
||||
payConfirmPaymentRecordService.backIncoming(payConfirmPaymentRecord);
|
||||
public Result<?> backIncoming(@RequestParam(name = "id") String id) {
|
||||
payConfirmPaymentRecordService.backIncoming(id);
|
||||
return Result.OK();
|
||||
}
|
||||
}
|
||||
|
||||
+2
-3
@@ -9,7 +9,6 @@ import com.jero.common.enums.PaymentStatusEnum;
|
||||
import com.jero.common.system.base.controller.JeroController;
|
||||
import com.jero.common.util.ValidUtil;
|
||||
import com.jero.contract.common.PayIncomeContractCommon;
|
||||
import com.jero.mail.entity.PayMailBillProject;
|
||||
import com.jero.mail.service.IPayMailBillService;
|
||||
import com.jero.mail.vo.PayMailBillVO;
|
||||
import com.jero.member.entity.TbCertificatePayment;
|
||||
@@ -274,8 +273,8 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
|
||||
@AutoLog(value = "开票-撤销")
|
||||
@ApiOperation(value = "开票-撤销", notes = "开票-撤销")
|
||||
@PostMapping(value = "/backInvoice")
|
||||
public Result<?> backInvoice(@RequestBody PayMailBillProject payMailBillProject) {
|
||||
payMailBillService.backInvoice(payMailBillProject);
|
||||
public Result<?> backInvoice(@RequestParam String id) {
|
||||
payMailBillService.backInvoice(id);
|
||||
return Result.OK();
|
||||
}
|
||||
}
|
||||
|
||||
+125
-9
@@ -21,6 +21,7 @@ import com.jero.project.entity.PayCommonProject;
|
||||
import com.jero.project.entity.PayWorkingGroupSubItem;
|
||||
import com.jero.project.mapper.PayCommonProjectMapper;
|
||||
import com.jero.project.mapper.PayWorkingGroupSubItemMapper;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@@ -322,24 +323,139 @@ public class PayConfirmPaymentRecordService extends ServiceImpl<PayConfirmPaymen
|
||||
|
||||
}
|
||||
@Transactional(rollbackFor = JeroBootException.class)
|
||||
public void backIncoming(PayConfirmPaymentRecord payConfirmPaymentRecord){
|
||||
PayConfirmPaymentRecord obj = getById(payConfirmPaymentRecord.getId());
|
||||
public void backIncoming(String id){
|
||||
if(StringUtils.isBlank(id)){
|
||||
throw new JeroBootException("确认来款id不能为空");
|
||||
}
|
||||
PayConfirmPaymentRecord obj = getById(id);
|
||||
if(Objects.isNull(obj)){
|
||||
throw new JeroBootException("未找到对应数据");
|
||||
}
|
||||
removeById(payConfirmPaymentRecord.getId());
|
||||
|
||||
// 标协会员缴费、证书缴费 先不做此功能的开发
|
||||
if(Arrays.asList("5","6").contains(obj.getProjectType())){
|
||||
throw new JeroBootException("标协会员缴费、证书缴费项目不可撤销");
|
||||
}
|
||||
|
||||
// 更新对应项目金额
|
||||
// todo 到账开票减掉金额
|
||||
|
||||
// todo 项目减掉金额
|
||||
// 删除数据
|
||||
removeById(id);
|
||||
// 更新对应项目金
|
||||
updateConfirmAmountBackIncoming(obj);
|
||||
|
||||
}
|
||||
|
||||
private void updateConfirmAmountBackIncoming(PayConfirmPaymentRecord payConfirmPaymentRecord) {
|
||||
String projectId = payConfirmPaymentRecord.getProjectId();
|
||||
String projectType = payConfirmPaymentRecord.getProjectType();
|
||||
//获得金额的和
|
||||
PayConfirmPaymentRecord confirmPaymentRecord = baseMapper.selectOneByProjectIdAndProjectType(projectId, projectType);
|
||||
BigDecimal confirmAmount = new BigDecimal("0");
|
||||
BigDecimal noTaxAmount = new BigDecimal("0");
|
||||
BigDecimal tax = new BigDecimal("0");
|
||||
if(!Objects.isNull(confirmPaymentRecord)){
|
||||
confirmAmount = confirmPaymentRecord.getAmountReceived();
|
||||
noTaxAmount = confirmPaymentRecord.getNoTaxAmount();
|
||||
tax = confirmPaymentRecord.getTax();
|
||||
}
|
||||
|
||||
Integer affirmIncome;
|
||||
switch (projectType){
|
||||
|
||||
// 普通项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE1:
|
||||
|
||||
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(projectId);
|
||||
if (payCommonProject == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
payCommonProject.setConfirmAmount(confirmAmount);
|
||||
payCommonProject.setConfirmTax(tax);
|
||||
payCommonProject.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(payCommonProject.getReceivableAmount(), confirmAmount);
|
||||
payCommonProject.setAffirmIncome(affirmIncome);
|
||||
payCommonProjectMapper.updateById(payCommonProject);
|
||||
|
||||
break;
|
||||
// 工作组项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE2:
|
||||
PayWorkingGroupSubItem payWorking = payWorkingGroupSubItemMapper.selectById(projectId);
|
||||
if (payWorking == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
payWorking.setConfirmAmount(confirmAmount);
|
||||
payWorking.setConfirmTax(tax);
|
||||
payWorking.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(payWorking.getReceivableAmount(), confirmAmount);
|
||||
payWorking.setAffirmIncome(affirmIncome);
|
||||
payWorkingGroupSubItemMapper.updateById(payWorking);
|
||||
|
||||
break;
|
||||
//会议项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE3:
|
||||
|
||||
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(projectId);
|
||||
if (meeting == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
meeting.setConfirmAmount(confirmAmount);
|
||||
meeting.setConfirmTax(tax);
|
||||
meeting.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(meeting.getAmountReceivable(), confirmAmount);
|
||||
meeting.setAffirmIncome(affirmIncome);
|
||||
payMeetingSituationMapper.updateById(meeting);
|
||||
|
||||
break;
|
||||
//会员项目
|
||||
case PayIncomeContractCommon.PROJECT_TYPE4:
|
||||
|
||||
PayMemberProjectSubitem member = payMemberProjectSubitemMapper.selectById(projectId);
|
||||
if (member == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
member.setConfirmAmount(confirmAmount);
|
||||
member.setConfirmTax(tax);
|
||||
member.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(member.getAmountReceivable(), confirmAmount);
|
||||
member.setAffirmIncome(affirmIncome);
|
||||
payMemberProjectSubitemMapper.updateById(member);
|
||||
|
||||
break;
|
||||
//标协会员
|
||||
case PayIncomeContractCommon.PROJECT_TYPE5:
|
||||
|
||||
TbMemberProjectSubitem tbMember = tbMemberProjectSubitemMapper.selectById(projectId);
|
||||
if (tbMember == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
tbMember.setConfirmAmount(confirmAmount);
|
||||
tbMember.setConfirmTax(tax);
|
||||
tbMember.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(tbMember.getAmountReceivable(), confirmAmount);
|
||||
tbMember.setAffirmIncome(affirmIncome);
|
||||
tbMemberProjectSubitemMapper.updateById(tbMember);
|
||||
break;
|
||||
//标协证书
|
||||
case PayIncomeContractCommon.PROJECT_TYPE6:
|
||||
|
||||
TbCertificatePayment tbMemberCertificate = certificatePaymentMapper.selectById(projectId);
|
||||
if (tbMemberCertificate == null) {
|
||||
break;
|
||||
}
|
||||
//更新主列表
|
||||
tbMemberCertificate.setConfirmAmount(confirmAmount);
|
||||
tbMemberCertificate.setConfirmTax(tax);
|
||||
tbMemberCertificate.setConfirmNoTaxAmount(noTaxAmount);
|
||||
affirmIncome = getAffirmIncome(tbMemberCertificate.getAmountReceivable(), confirmAmount);
|
||||
tbMemberCertificate.setAffirmIncome(affirmIncome);
|
||||
certificatePaymentMapper.updateById(tbMemberCertificate);
|
||||
|
||||
break;
|
||||
default:break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user