变更修改

This commit is contained in:
梁琦涛
2021-11-02 14:29:01 +08:00
parent 1877239e94
commit 6220c3a87f
6 changed files with 214 additions and 56 deletions
@@ -147,4 +147,13 @@ public class ProjectCommon {
*/
public final static String MESSAGE_TYPE3 = "3";
/**
* flag 1为会议审核来款,2为正常来款
*/
public final static Integer PAYMENT_FLAG1 = 1;
/**
* flag 1为会议审核来款,2为正常来款
*/
public final static Integer PAYMENT_FLAG2 = 2;
}
@@ -1,17 +1,17 @@
package com.jero.mail.controller;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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.core.toolkit.StringUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
@@ -19,7 +19,8 @@ import com.jero.common.common.ProjectCommon;
import com.jero.common.constant.GlobalConstants;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.service.ProjectDetailService;
import com.jero.common.enums.ManagementMessageEnums;
import com.jero.common.exception.JeroBootException;
import com.jero.common.service.SendMessageService;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.vo.LoginUser;
@@ -28,24 +29,38 @@ import com.jero.common.util.oConvertUtils;
//import com.jero.mail.commont.BatOrder;
//import com.jero.mail.commont.HospitalInformation;
//import com.jero.mail.commont.Print;
import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.mail.commont.constant;
import com.jero.mail.entity.PayMailBill;
import com.jero.mail.entity.PayMailBillProject;
import com.jero.mail.entity.PayMailBillSearch;
import com.jero.mail.service.IPayMailBillProjectService;
import com.jero.mail.service.IPayMailBillService;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.service.IPayMeetingService;
import com.jero.meeting.service.IPayMeetingSituationService;
import com.jero.member.entity.PayMemberProject;
import com.jero.member.entity.PayMemberProjectSubitem;
import com.jero.member.entity.TbMemberProject;
import com.jero.member.entity.TbMemberProjectSubitem;
import com.jero.member.service.IPayMemberProjectService;
import com.jero.member.service.IPayMemberProjectSubitemService;
import com.jero.member.service.ITbMemberProjectService;
import com.jero.member.service.ITbMemberProjectSubitemService;
import com.jero.modules.system.entity.SysUser;
import com.jero.modules.system.service.ISysUserService;
import com.jero.project.entity.PayCommonProject;
import com.jero.project.entity.PayWorkingGroup;
import com.jero.project.entity.PayWorkingGroupSubItem;
import com.jero.project.service.IPayCommonProjectService;
import com.jero.project.service.IPayWorkingGroupService;
import com.jero.project.service.IPayWorkingGroupSubItemService;
import com.jero.temporary.entity.PayContactsManagementTemporary;
import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import com.jero.util.AmountUtil;
import com.jero.util.SearchUtil;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.ObjectUtils;
@@ -59,7 +74,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import javax.annotation.Resource;
import javax.validation.Valid;
/**
* @Description: 邮寄票据
@@ -73,22 +87,36 @@ import javax.validation.Valid;
@Slf4j
public class PayMailBillController extends JeroController<PayMailBill, IPayMailBillService> {
@Autowired
private IPayMailBillProjectService payMailBillProjectService;
@Autowired
private IPayMailBillService payMailBillService;
@Autowired
private IPayCommonProjectService payCommonProjectService;
@Autowired
private IPayMemberProjectSubitemService payMemberProjectSubitemService;
@Autowired
private IPayMeetingSituationService payMeetingSituationService;
@Autowired
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
@Autowired
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource
private SendMessageService sendMessageService;
@Autowired
private IPayMailBillProjectService payMailBillProjectService;
@Autowired
private IPayMailBillService payMailBillService;
@Autowired
private IPayCommonProjectService payCommonProjectService;
@Autowired
private IPayMemberProjectSubitemService payMemberProjectSubitemService;
@Autowired
private IPayMeetingSituationService payMeetingSituationService;
@Autowired
private IPayWorkingGroupSubItemService payWorkingGroupSubItemService;
@Autowired
private ITbMemberProjectSubitemService tbMemberProjectSubitemService;
@Resource
private SendMessageService sendMessageService;
@Resource
private IPayContactsManagementTemporaryService payContactsManagementTemporaryService;
@Resource
private IPayWorkingGroupService payWorkingGroupService;
@Resource
private IPayMeetingService payMeetingService;
@Resource
private IPayContactsManagementService payContactsManagementService;
@Resource
private IPayMemberProjectService memberProjectService;
@Resource
private ITbMemberProjectService tbMemberProjectService;
@Resource
private ISysUserService sysUserService;
/**
@@ -206,9 +234,23 @@ public class PayMailBillController extends JeroController<PayMailBill, IPayMailB
//获取项目应收金额
BigDecimal receivableAmount = new BigDecimal("0.00");
String project = "";
String principalId = "";
List<PayContactsManagementTemporary> listId = new ArrayList<>();
//判断变更那个项目的邮寄状态
if (GlobalConstants.ONE.equals(one.getProjectType())) {
receivableAmount = payCommonProjectService.getById(one.getProjectId()).getReceivableAmount();
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);
}
project = payCommonProjectOld.getChargeProject();
principalId = payCommonProjectOld.getPrincipalId();
receivableAmount = payCommonProjectOld.getReceivableAmount();
PayCommonProject payCommonProject = new PayCommonProject();
if (receivableAmount.compareTo(invoice) == 0 && c == y) {
payCommonProject.setId(one.getProjectId());
@@ -220,7 +262,35 @@ public class PayMailBillController extends JeroController<PayMailBill, IPayMailB
payCommonProjectService.updateById(payCommonProject);
}
} else if (GlobalConstants.TWO.equals(one.getProjectType())) {
receivableAmount = payWorkingGroupSubItemService.getById(one.getProjectId()).getReceivableAmount();
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("工作组不存在!");
}
PayContactsManagementTemporary payWorkingTemporaryOne = payContactsManagementTemporaryService.getById(payWorkingGroupSubItemOld.getContactsTemporaryIdOne());
if(!Objects.isNull(payWorkingTemporaryOne)){
listId.add(payWorkingTemporaryOne);
}
if(!org.apache.commons.lang3.StringUtils.isBlank(payWorkingGroupSubItemOld.getContactsTemporaryIdTwo())){
PayContactsManagementTemporary payWorkingTemporaryTwo = payContactsManagementTemporaryService.getById(payWorkingGroupSubItemOld.getContactsTemporaryIdTwo());
if(!Objects.isNull(payWorkingTemporaryTwo)){
listId.add(payWorkingTemporaryTwo);
}
}
if(!org.apache.commons.lang3.StringUtils.isBlank(payWorkingGroupSubItemOld.getContactsTemporaryIdThree())){
PayContactsManagementTemporary payWorkingTemporaryThree = payContactsManagementTemporaryService.getById(payWorkingGroupSubItemOld.getContactsTemporaryIdThree());
if(!Objects.isNull(payWorkingTemporaryThree)){
listId.add(payWorkingTemporaryThree);
}
}
project = payWorkingGroup.getWorkingGroupProject();
principalId = payWorkingGroup.getPrincipalIdA();
receivableAmount = payWorkingGroupSubItemOld.getReceivableAmount();
PayWorkingGroupSubItem payWorkingGroupSubItem = new PayWorkingGroupSubItem();
if (receivableAmount.compareTo(invoice) == 0 && c == y) {
payWorkingGroupSubItem.setId(one.getProjectId());
@@ -232,7 +302,24 @@ public class PayMailBillController extends JeroController<PayMailBill, IPayMailB
payWorkingGroupSubItemService.updateById(payWorkingGroupSubItem);
}
} else if (GlobalConstants.THERE.equals(one.getProjectType())) {
receivableAmount = payMeetingSituationService.getById(one.getProjectId()).getAmountReceivable();
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);
}
project = payMeeting.getMeetingName();
principalId = payMeeting.getDirectorId();
receivableAmount = meetingPayContactsManagementOld.getAmountReceivable();
PayMeetingSituation payMeetingSituation = new PayMeetingSituation();
if (receivableAmount.compareTo(invoice) == 0 && c == y) {
payMeetingSituation.setId(one.getProjectId());
@@ -244,7 +331,22 @@ public class PayMailBillController extends JeroController<PayMailBill, IPayMailB
payMeetingSituationService.updateById(payMeetingSituation);
}
} else if (GlobalConstants.FORE.equals(one.getProjectType())) {
receivableAmount = payMemberProjectSubitemService.getById(one.getProjectId()).getAmountReceivable();
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);
}
project = payMemberProject.getProjectName();
principalId = payMemberProject.getDirectorId();
receivableAmount = payMemberProjectSubitemOld.getAmountReceivable();
PayMemberProjectSubitem payMemberProjectSubitem = new PayMemberProjectSubitem();
if (receivableAmount.compareTo(invoice) == 0 && c == y) {
payMemberProjectSubitem.setId(one.getProjectId());
@@ -256,7 +358,24 @@ public class PayMailBillController extends JeroController<PayMailBill, IPayMailB
payMemberProjectSubitemService.updateById(payMemberProjectSubitem);
}
} else if (GlobalConstants.FIVE.equals(one.getProjectType())) {
receivableAmount = tbMemberProjectSubitemService.getById(one.getProjectId()).getAmountReceivable();
TbMemberProjectSubitem tbMemberProjectSubitemOld = tbMemberProjectSubitemService.getById(one.getProjectId());
if(Objects.isNull(tbMemberProjectSubitemOld)){
throw new JeroBootException("标协会员成员不存在!");
}
TbMemberProject tbMemberProject = tbMemberProjectService.getById(tbMemberProjectSubitemOld.getProjectId());
if(Objects.isNull(tbMemberProject)){
throw new JeroBootException("标协会员不存在!");
}
project = tbMemberProject.getProjectName();
principalId = tbMemberProject.getDirectorId();
PayContactsManagement tbMemberPayContactsManagement = payContactsManagementService.getById(tbMemberProjectSubitemOld.getLiaisonManId());
if(!Objects.isNull(tbMemberPayContactsManagement)){
String str = JSON.toJSONString(tbMemberPayContactsManagement);
PayContactsManagementTemporary meetingTemporary = JSONObject.parseObject(str,PayContactsManagementTemporary.class);
listId.add(meetingTemporary);
}
receivableAmount = tbMemberProjectSubitemOld.getAmountReceivable();
TbMemberProjectSubitem tbMemberProjectSubitem = new TbMemberProjectSubitem();
if (receivableAmount.compareTo(invoice) == 0 && c == y) {
tbMemberProjectSubitem.setId(one.getProjectId());
@@ -270,29 +389,55 @@ public class PayMailBillController extends JeroController<PayMailBill, IPayMailB
//推送邮寄数据到会员系统
payMailBillService.pushSendToStandards(payMailBill, one.getProjectId());
}
// 发送给项目负责人
if (!StringUtils.isBlank(principalId)) {
SysUser sysUserInfo = sysUserService.getById(principalId);
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!org.apache.commons.lang3.StringUtils.isBlank(sysUserInfo.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(sysUserInfo.getEmail()));
}
if(!org.apache.commons.lang3.StringUtils.isEmpty(sysUserInfo.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(sysUserInfo.getPhone()));
}
HashMap<String,String> map = new HashMap<>();
map.put("projectName",project);
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setToUser(sysUserInfo.getUsername());
sendMessageDTO.setTemplateCode(ManagementMessageEnums.MSG13.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("M_OPEN_TYPE13");
JSONObject json = new JSONObject();
json.put("id",one.getProjectId());
sendMessageDTO.setBusId(json.toJSONString());
sendMessageService.SendMessageService(sendMessageDTO);
}
if(!CollectionUtils.isEmpty(listId)){
String finalProject = project;
listId.forEach(p->{
// 发送消息
SendMessageDTO sendMessageDTO = new SendMessageDTO();
if(!org.apache.commons.lang3.StringUtils.isBlank(p.getEmail())){
sendMessageDTO.setEmail(PasswordUtil.decrypt(p.getEmail()));
}
if(!org.apache.commons.lang3.StringUtils.isEmpty(p.getPhone())){
sendMessageDTO.setPhone(PasswordUtil.decrypt(p.getPhone()));
sendMessageDTO.setToUser(PasswordUtil.decrypt(p.getPhone()));
}
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
HashMap<String,String> map = new HashMap<>();
map.put("projectName", finalProject);
sendMessageDTO.setFromUser(sysUser.getUsername());
sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG9.getCode());
sendMessageDTO.setTemplateParam(map);
sendMessageDTO.setBusType("C_OPEN_TYPE9");
JSONObject json = new JSONObject();
json.put("id",one.getProjectId());
sendMessageDTO.setBusId(json.toJSONString());
sendMessageService.SendMessageService(sendMessageDTO);
});
}
}
// PayMailBill payMailBillData = payMailBillService.getById(payMailBill.getId());
// if (!Objects.isNull(payMailBillData)) {
// // 发送消息
// SendMessageDTO sendMessageDTO = new SendMessageDTO();
// if (!StringUtils.isBlank(payMailBillData.getEmail())) {
// sendMessageDTO.setEmail(PasswordUtil.decrypt(payMailBillData.getEmail()));
// }
// if (!StringUtils.isBlank(payMailBillData.getContactMobile())) {
// sendMessageDTO.setToUser(PasswordUtil.decrypt(payMailBillData.getContactMobile()));
// sendMessageDTO.setPhone(PasswordUtil.decrypt(payMailBillData.getContactMobile()));
// }
// HashMap<String, String> map = new HashMap<>();
// map.put("projectName", payMailBillData.getProjectName());
// sendMessageDTO.setFromUser(sysUser.getUsername());
// sendMessageDTO.setTemplateCode(CompanyMessageEnums.MSG9.getCode());
// sendMessageDTO.setTemplateParam(map);
// sendMessageDTO.setBusType("C_OPEN_TYPE9");
// JSONObject jsonObject = new JSONObject();
// jsonObject.put("id", payMailBill.getPostNo());
// sendMessageDTO.setBusId(jsonObject.toJSONString());
// sendMessageService.SendMessageService(sendMessageDTO);
// }
}
return Result.OK("编辑成功!");
}
@@ -457,7 +457,7 @@ public class PayMeetingSituationServiceImpl extends ServiceImpl<PayMeetingSituat
payPaymentRecord.setPaymentDate(new Date());
payPaymentRecords.add(payPaymentRecord);
//添加来款
payPaymentRecordService.addAmountReceived(payPaymentRecords);
payPaymentRecordService.addAmountReceived(payPaymentRecords,ProjectCommon.PAYMENT_FLAG1);
//非成员单位审核通过且上传的缴费凭证审核通过也发送。(即需要审核的都审核通过才发送)
sendMessage(payMeeting, payMeetingSituation, CompanyMessageEnums.MSG6, "C_OPEN_TYPE6");
@@ -12,6 +12,7 @@ import javax.servlet.http.HttpServletResponse;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.jero.common.api.vo.Result;
import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.common.ProjectCommon;
import com.jero.common.system.base.controller.JeroController;
import com.jero.common.system.query.QueryGenerator;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -81,7 +82,7 @@ public class PayPaymentRecordController extends JeroController<PayPaymentRecord,
@PostMapping(value = "/addAmountReceived")
public Result<?> addAmountReceived(@RequestBody List<PayPaymentRecord> list) {
try{
payPaymentRecordService.addAmountReceived(list);
payPaymentRecordService.addAmountReceived(list, ProjectCommon.PAYMENT_FLAG2);
}catch (Exception e){
log.error("添加来款异常",e);
return Result.error(e.getMessage());
@@ -32,14 +32,15 @@ public interface IPayPaymentRecordService extends IService<PayPaymentRecord> {
/**
* 添加来款
* @param list
* flag 1为会议审核来款,2为正常来款
*/
void addAmountReceived(List<PayPaymentRecord> list);
void addAmountReceived(List<PayPaymentRecord> list,Integer flag);
/**
* 添加一个来款
* @param payPaymentRecord
*/
void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List);
void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List,Integer flag);
/**
* 标协会员添加来款
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.api.vo.Result;
import com.jero.common.common.ProjectCommon;
import com.jero.common.dto.SendMessageDTO;
import com.jero.common.enums.CompanyMessageEnums;
import com.jero.common.enums.ManagementMessageEnums;
@@ -20,6 +21,7 @@ import com.jero.company.entity.PayContactsManagement;
import com.jero.company.service.IPayCompanyManagementService;
import com.jero.company.service.IPayContactsManagementService;
import com.jero.contract.common.PayIncomeContractCommon;
import com.jero.meeting.common.MeetingSubitemCommon;
import com.jero.meeting.entity.PayMeeting;
import com.jero.meeting.entity.PayMeetingSituation;
import com.jero.meeting.mapper.PayMeetingSituationMapper;
@@ -145,10 +147,10 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
* 添加来款记录
*/
@Override
public void addAmountReceived(List<PayPaymentRecord> list){
public void addAmountReceived(List<PayPaymentRecord> list,Integer flag){
List<TbCheckVo> typr5List = new ArrayList<>();
for(PayPaymentRecord payPaymentRecord : list){
addOneAmountReceived(payPaymentRecord,typr5List);
addOneAmountReceived(payPaymentRecord,typr5List,flag);
}
//推送到会员端
@@ -174,7 +176,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
*/
@Override
@Transactional
public void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List){
public void addOneAmountReceived(PayPaymentRecord payPaymentRecord,List<TbCheckVo> typr5List,Integer flag){
BigDecimal receivableAmount;
Boolean isAdd;
@@ -281,7 +283,7 @@ public class PayPaymentRecordServiceImpl extends ServiceImpl<PayPaymentRecordMap
throw new JeroBootException("会议不存在,不可提交!");
}
// 来款方式为汇款/现场缴费的不可进行到账操作 1为汇款,2为线上缴费
if(Objects.equals(meeting.getPayMode(),1) || Objects.equals(meeting.getPayMode(),2)){
if(!Objects.equals(ProjectCommon.PAYMENT_FLAG1,flag) && (Objects.equals(meeting.getPayMode(), MeetingSubitemCommon.PAY_MODE_1) || Objects.equals(meeting.getPayMode(),MeetingSubitemCommon.PAY_MODE_2))){
throw new JeroBootException("会议项目在参会人审核通过后会系统自动到账!");
}
PayCompanyManagement payCompanyManagementMeeting = payCompanyManagementService.getById(meeting.getCompanyId());