Merge remote-tracking branch 'origin/master'

This commit is contained in:
zhangqinlin
2021-09-16 15:22:28 +08:00
13 changed files with 164 additions and 40 deletions
@@ -0,0 +1,43 @@
package com.jero.common.util;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Component;
/**
* Spring 上下文工具类
* @author liJiaRao
* @date 2021-09-16 15:05
*/
@Component
public class SpringContextUtil implements ApplicationContextAware {
private static ApplicationContext applicationContext;
@Override
public void setApplicationContext(@NotNull ApplicationContext applicationContext) throws BeansException {
SpringContextUtil.applicationContext = applicationContext;
}
/**
* 获取上下文
*/
public static ApplicationContext getApplicationContext() {
return applicationContext;
}
/**
* 通过 bena 名称获取上下文中的 bean
*/
public static Object getBean(String name) {
return applicationContext.getBean(name);
}
/**
* 通过类型获取上下文中的bean
*/
public static Object getBean(Class<?> requiredType) {
return applicationContext.getBean(requiredType);
}
}
@@ -96,6 +96,7 @@ public class ShiroConfig {
filterChainDefinitionMap.put("/meeting/payMeeting/addStandards","anon");//会员系统推送会议
filterChainDefinitionMap.put("/meeting/payMeeting/addStandardsFile","anon");//会员系统推送文件
filterChainDefinitionMap.put("/meeting/payMeetingSituation/page2","anon");//查询参会人
filterChainDefinitionMap.put("/sys/user/payUserList","anon");//查询负责人
filterChainDefinitionMap.put("/", "anon");
filterChainDefinitionMap.put("/doc.html", "anon");
@@ -14,6 +14,4 @@ import java.math.BigDecimal;
*/
public interface PayMailBillProjectMapper extends BaseMapper<PayMailBillProject> {
// 开票总额
BigDecimal sumInvoiceAmount(@Param("projectId") String projectId);
}
@@ -2,10 +2,4 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.jero.mail.mapper.PayMailBillProjectMapper">
<!-- 开票总额-->
<select id="sumInvoiceAmount" resultType="Decimal">
select sum(invoice_amount)
from pay_mail_bill_project
where project_id= #{projectId}
</select>
</mapper>
@@ -140,7 +140,7 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
payMailBillProjectService.save(payMailBillProject);
// 更新项目表开票状态
getMakeInvoice(projectIdArray[i],projectTypeArray[i]);
getMakeInvoice(payMailBillProject);
}
return Result.OK("添加成功!");
}
@@ -153,9 +153,9 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
for (int i = 0; i < projectTypeArray.length; i++) {
//之前开票总额
BigDecimal oldInvoiceAmount = payMailBillProjectMapper.sumInvoiceAmount(projectIdArray[i]);
//加上本次开票金额
BigDecimal invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
BigDecimal oldInvoiceAmount=new BigDecimal("0");
//之前开票总额+本次开票金额
BigDecimal invoiceAmount=new BigDecimal("0");
switch (projectTypeArray[i]) {
@@ -169,6 +169,9 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
if (!standardCompanyId.equals(payCommonProject.getChargeCompanyId())) {
return "打包开票只能是同一个企业";
}
oldInvoiceAmount = payCommonProject.getInvoiceAmount();
//之前开票总额+本次开票金额
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
//开票总额>应收
if(invoiceAmount.compareTo(payCommonProject.getReceivableAmount()) == 1){
return "开票金额大于当前欠未开票金额,输入有误!";
@@ -184,6 +187,9 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
if (!standardCompanyId.equals(workingGroup.getChargeCompanyId())) {
return "打包开票只能是同一个企业";
}
oldInvoiceAmount = workingGroup.getInvoiceAmount();
//之前开票总额+本次开票金额
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
//开票总额>应收
if(invoiceAmount.compareTo(workingGroup.getReceivableAmount()) == 1){
return "开票金额大于当前欠未开票金额,输入有误!";
@@ -199,6 +205,9 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
if (!standardCompanyId.equals(meeting.getCompanyId())) {
return "打包开票只能是同一个企业";
}
oldInvoiceAmount = meeting.getInvoiceAmount();
//之前开票总额+本次开票金额
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
//开票总额>应收
if(invoiceAmount.compareTo(meeting.getAmountReceivable()) == 1){
return "开票金额大于当前欠未开票金额,输入有误!";
@@ -214,6 +223,9 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
if (!standardCompanyId.equals(memberProject.getCompanyId())) {
return "打包开票只能是同一个企业";
}
oldInvoiceAmount = memberProject.getInvoiceAmount();
//之前开票总额+本次开票金额
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
//开票总额>应收
if(invoiceAmount.compareTo(memberProject.getAmountReceivable()) == 1){
return "开票金额大于当前欠未开票金额,输入有误!";
@@ -229,6 +241,9 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
if (!standardCompanyId.equals(tbMemberProject.getCompanyId())) {
return "打包开票只能是同一个企业";
}
oldInvoiceAmount = tbMemberProject.getInvoiceAmount();
//之前开票总额+本次开票金额
invoiceAmount = oldInvoiceAmount.add(new BigDecimal(invoiceAmountArrays[i])).setScale(2, BigDecimal.ROUND_HALF_UP);
//开票总额>应收
if(invoiceAmount.compareTo(tbMemberProject.getAmountReceivable()) == 1){
return "开票金额大于当前欠未开票金额,输入有误!";
@@ -243,54 +258,54 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
/**
* 更新项目表开票状态
* @param projectId
* @param projectType
* @return
*/
private void getMakeInvoice(String projectId, String projectType) {
private void getMakeInvoice(PayMailBillProject payMailBillProject) {
Integer makeInvoice=4;
BigDecimal amountReceivable=new BigDecimal("0");//应收金额
Integer needInvoice = 0;//是否需要发票
switch (projectType) {
BigDecimal invoiceAmount=new BigDecimal("0");//开票金额
switch (payMailBillProject.getProjectType().toString()) {
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(projectId);
PayCommonProject payCommonProject = payCommonProjectMapper.selectById(payMailBillProject.getProjectId());
amountReceivable = payCommonProject.getReceivableAmount();//应收
needInvoice = payCommonProject.getNeedInvoice();//是否需要发票
invoiceAmount = payCommonProject.getInvoiceAmount();//开票金额
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
PayWorkingGroupSubItem workingGroup = payWorkingGroupSubItemMapper.selectById(projectId);
PayWorkingGroupSubItem workingGroup = payWorkingGroupSubItemMapper.selectById(payMailBillProject.getProjectId());
amountReceivable = workingGroup.getReceivableAmount();//应收
needInvoice = workingGroup.getNeedInvoice();//是否需要发票
invoiceAmount = workingGroup.getInvoiceAmount();//开票金额
break;
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(projectId);
PayMeetingSituation meeting = payMeetingSituationMapper.selectById(payMailBillProject.getProjectId());
amountReceivable = meeting.getAmountReceivable();//应收
needInvoice = meeting.getNeedInvoice();//是否需要发票
invoiceAmount = meeting.getInvoiceAmount();//开票金额
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem memberProject = payMemberProjectSubitemMapper.selectById(projectId);
PayMemberProjectSubitem memberProject = payMemberProjectSubitemMapper.selectById(payMailBillProject.getProjectId());
amountReceivable = memberProject.getAmountReceivable();//应收
needInvoice = memberProject.getNeedInvoice();//是否需要发票
invoiceAmount = memberProject.getInvoiceAmount();//开票金额
break;
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
TbMemberProjectSubitem tbMemberProject = tbMemberProjectSubitemMapper.selectById(projectId);
TbMemberProjectSubitem tbMemberProject = tbMemberProjectSubitemMapper.selectById(payMailBillProject.getProjectId());
amountReceivable = tbMemberProject.getAmountReceivable();//应收
needInvoice = tbMemberProject.getInvoiceRequirements();//是否需要发票
invoiceAmount = tbMemberProject.getInvoiceAmount();//开票金额
break;
default:
break;
}
// 开票总额
BigDecimal invoiceAmount = payMailBillProjectMapper.sumInvoiceAmount(projectId);
if(invoiceAmount==null){
invoiceAmount =new BigDecimal("0");
}
if(amountReceivable==null){
amountReceivable =new BigDecimal("0");
}
@@ -315,39 +330,39 @@ public class PayMailBillServiceImpl extends ServiceImpl<PayMailBillMapper, PayMa
}
//更新项目表开票状态
switch (projectType) {
switch (payMailBillProject.getProjectType().toString()) {
// 普通项目
case PayIncomeContractCommon.PROJECT_TYPE1:
PayCommonProject newCommon = new PayCommonProject();
newCommon.setId(projectId);
newCommon.setId(payMailBillProject.getProjectId());
newCommon.setMakeInvoice(makeInvoice);
payCommonProjectMapper.updateById(newCommon);
break;
// 工作组项目
case PayIncomeContractCommon.PROJECT_TYPE2:
PayWorkingGroupSubItem newWorkingGroup = new PayWorkingGroupSubItem();
newWorkingGroup.setId(projectId);
newWorkingGroup.setId(payMailBillProject.getProjectId());
newWorkingGroup.setMakeInvoice(makeInvoice);
payWorkingGroupSubItemMapper.updateById(newWorkingGroup);
break;
//会议项目
case PayIncomeContractCommon.PROJECT_TYPE3:
PayMeetingSituation newMeeting = new PayMeetingSituation();
newMeeting.setId(projectId);
newMeeting.setId(payMailBillProject.getProjectId());
newMeeting.setMakeInvoice(makeInvoice);
payMeetingSituationMapper.updateById(newMeeting);
break;
//会员项目
case PayIncomeContractCommon.PROJECT_TYPE4:
PayMemberProjectSubitem newMemberProject = new PayMemberProjectSubitem();
newMemberProject.setId(projectId);
newMemberProject.setId(payMailBillProject.getProjectId());
newMemberProject.setMakeInvoice(makeInvoice);
payMemberProjectSubitemMapper.updateById(newMemberProject);
break;
//标协会员
case PayIncomeContractCommon.PROJECT_TYPE5:
TbMemberProjectSubitem newTbMemberProject = new TbMemberProjectSubitem();
newTbMemberProject.setId(projectId);
newTbMemberProject.setId(payMailBillProject.getProjectId());
newTbMemberProject.setMakeInvoice(makeInvoice);
tbMemberProjectSubitemMapper.updateById(newTbMemberProject);
break;
@@ -352,6 +352,13 @@ public class PayMeetingSituation implements Serializable {
@Dict(dicCode = "signup_status")
private Integer checkResult;
/**开票金额*/
@Excel(name = "开票金额", width = 15)
@ApiModelProperty(value = "开票金额")
@DecimalMax(value = "9999999999.99",message = "开票金额格式错误")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal invoiceAmount;
/**审核备注*/
@ApiModelProperty(value = "审核备注")
@TableField(exist = false)
@@ -240,6 +240,11 @@ public class PayMemberProjectSubitem implements Serializable {
@Dict(dicCode = "yn")
private Integer mail;
/**开票金额*/
@Excel(name = "开票金额", width = 15)
@ApiModelProperty(value = "开票金额")
@DecimalMax(value = "9999999999.99",message = "开票金额格式错误")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal invoiceAmount;
}
@@ -175,6 +175,13 @@ public class TbMemberProjectSubitem implements Serializable {
@ApiModelProperty(value = "标协缴费表id")
private String tbPaymentId;
/**开票金额*/
@Excel(name = "开票金额", width = 15)
@ApiModelProperty(value = "开票金额")
@DecimalMax(value = "9999999999.99",message = "开票金额格式错误")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal invoiceAmount;
public String convertisEmail(){
return PasswordUtil.decrypt(email);
}
@@ -4,10 +4,10 @@
<!-- 到账开票主列表-->
<select id="mainList" resultType="com.jero.project.entity.PayCommonProject">
select p.id,p.charge_project, p.charge_use, p.principal_id,p.principal_name,p.charge_company_temporary_name,p.receivable_amount,p.paid_amount,p.need_invoice,p.pack,p.in_account,p.make_invoice,p.mail,p.create_time,1 as projectType
select p.id,p.charge_project, p.charge_use, p.principal_id,p.principal_name,p.charge_company_temporary_name,p.receivable_amount,p.paid_amount,p.need_invoice,p.pack,p.in_account,p.make_invoice,p.mail,p.create_time,p.projectType
from
(<!-- 普通项目-->
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
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,c.invoice_amount
from pay_common_project c
where
c.receivable_amount <![CDATA[<>]]> 0
@@ -23,7 +23,7 @@
</if>
<!--工作组项目-->
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
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,gsub.invoice_amount
from pay_working_group g
inner join pay_working_group_subitem gsub on g.id = gsub.charge_company_id
where
@@ -40,7 +40,7 @@
</if>
<!-- 会议项目-->
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
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,sit.invoice_amount
from pay_meeting meeting
inner join pay_meeting_situation sit on meeting.id = sit.meeting_id
where
@@ -57,7 +57,7 @@
</if>
<!-- 会员项目-->
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
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,msub.invoice_amount
from pay_member_project member
inner join pay_member_project_subitem msub on member.id=msub.project_id
where
@@ -74,7 +74,7 @@
</if>
<!-- 标协会员项目-->
UNION ALL
select tmsub.id,tmember.project_name,tmsub.charge_use,'null','null',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
select tmsub.id,tmember.project_name,tmsub.charge_use,'null','null',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,tmsub.invoice_amount
from tb_member_project tmember
inner join tb_member_project_subitem tmsub on tmember.id=tmsub.project_id
where
@@ -98,7 +98,7 @@
<!-- 到账开票导出-->
<select id="mainListExportXls" resultType="com.jero.project.vo.PayCommonProjectOutput">
select p.id,p.charge_project, p.charge_use, p.principal_id,p.principal_name,p.charge_company_temporary_name,p.receivable_amount,p.paid_amount,p.need_invoice,p.pack,p.in_account,p.make_invoice,p.mail,p.create_time,1 as projectType
select p.id,p.charge_project, p.charge_use, p.principal_id,p.principal_name,p.charge_company_temporary_name,p.receivable_amount,p.paid_amount,p.need_invoice,p.pack,p.in_account,p.make_invoice,p.mail,p.create_time,p.projectType
from
(<!-- 普通项目-->
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
@@ -170,6 +170,11 @@ public class PayCommonProject implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private Date updateTime;
/**开票金额*/
@ApiModelProperty(value = "开票金额")
@DecimalMax(value = "9999999999.99",message = "开票金额格式错误")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal invoiceAmount;
/**
* 项目类型(1:普通项目,2:工作组项目,3:会议项目,4:会员项目,5:标协会员项目)
@@ -178,4 +178,10 @@ public class PayWorkingGroupSubItem implements Serializable {
@DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value = "更新时间")
private java.util.Date updateTime;
/**开票金额*/
@Excel(name = "开票金额", width = 15)
@ApiModelProperty(value = "开票金额")
@DecimalMax(value = "9999999999.99",message = "开票金额格式错误")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal invoiceAmount;
}
@@ -14,4 +14,7 @@ public class PayCommonProjectOutput extends PayCommonProject implements Serializ
@Excel(name = "来款用途", width = 20,orderNum = "1")
@ApiModelProperty(value = "来款用途")
private String chargeUse_dictText;
@ApiModelProperty(value = "累加开票金额")
private String invoiceAmount;
}
@@ -103,6 +103,9 @@ public class SysUserController {
@Resource
private BaseCommonService baseCommonService;
@Resource
private AuthenticationUtils authenticationUtils;
/**
* 根据角色id和部门id获取用户列表数据
*/
@@ -246,6 +249,43 @@ public class SysUserController {
return result;
}
@ApiOperation(value = "查询列表", notes = "查询列表")
@RequestMapping(value = "/payUserList", method = RequestMethod.GET)
public Result<?> queryList2(SysUser user, HttpServletRequest req) {
String publicKey = req.getParameter("publicKey");
String token = req.getParameter("token");
authenticationUtils.check(token,publicKey);
Result<List<SysUser>> result = new Result<>();
QueryWrapper<SysUser> queryWrapper = QueryGenerator.initQueryWrapper(user, req.getParameterMap());
//TODO 外部模拟登陆临时账号,列表不显示
queryWrapper.ne("username","_reserve_user_external");
Page<SysUser> page = new Page<>(-1, -1);
IPage<SysUser> pageList = sysUserService.page(page, queryWrapper);
List<SysUser> userList = new ArrayList<>();
List<SysUser> records = pageList.getRecords();
for (SysUser record : records) {
//处理邮箱和手机号的加密
UserUtil.decryptUser(record);
userList.add(record);
}
pageList.setRecords(userList);
//批量查询用户的所属部门
//step.1 先拿到全部的 useids
//step.2 通过 useids,一次性查询用户的所属部门名字
List<String> userIds = records.stream().map(SysUser::getId).collect(Collectors.toList());
if(userIds!=null && userIds.size()>0){
Map<String,String> useDepNames = sysUserService.getDepNamesByUserIds(userIds);
records.forEach(item->{
item.setOrgCodeTxt(useDepNames.get(item.getId()));
});
}
result.setSuccess(true);
result.setResult(records);
log.info(records.toString());
return result;
}
//@RequiresRoles({"admin"})
@RequiresPermissions("user:add")