Browse Source

审批调整

contract
Yen 2 years ago
parent
commit
44803e7ade
  1. 128
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostPercent.java
  2. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsScheduleItemBudget.java
  3. 19
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostPercentMapper.java
  4. 43
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  5. 27
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

128
src/main/java/com/qs/serve/modules/tbs/entity/TbsCostPercent.java

@ -0,0 +1,128 @@
package com.qs.serve.modules.tbs.entity;
import java.time.LocalDate;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
/**
* 申请费率 实体类
* @author YenHex
* @since 2023-07-02
*/
@Data
@TableName("tbs_cost_percent")
public class TbsCostPercent implements Serializable {
private static final long serialVersionUID = 1L;
/** id */
@TableId(type = IdType.AUTO)
private Long id;
/** 费用申请id */
@NotNull(message = "费用申请id不能为空")
private Long costApplyId;
/** 客户费率(年) */
private BigDecimal ytdCustomerPercent;
/** 申请人费率(年) */
private BigDecimal ytdUserPercent;
/** 行政区域费率(年) */
private BigDecimal ytdRegion2Percent;
/** 销售区域费率(年) */
private BigDecimal ytdRegionPercent;
/** 预算费率(年) */
private BigDecimal ytdBudgetPercent;
/** 客户费率 */
private BigDecimal qtdCustomerPercent;
/** 申请人费率 */
private BigDecimal qtdUserPercent;
/** 行政区域费率 */
private BigDecimal qtdRegion2Percent;
/** 销售区域费率 */
private BigDecimal qtdRegionPercent;
/** 预算费率 */
private BigDecimal qtdBudgetPercent;
/** 备注 */
@Length(max = 255,message = "备注长度不能超过255字")
private String remark;
/** 创建时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.INSERT)
private LocalDateTime createTime;
/** 最后更新时间 */
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@TableField(fill = FieldFill.UPDATE)
private LocalDateTime updateTime;
/** 所属租户 */
@JsonIgnore
@JsonProperty
private String tenantId;
/** 创建人 */
@TableField(fill = FieldFill.INSERT)
private String createBy;
/** 更新人 */
@TableField(fill = FieldFill.UPDATE)
private String updateBy;
/** 逻辑删除标记(0:显示;1:隐藏) */
@JsonIgnore
@JsonProperty
private String delFlag;
public static TbsCostPercent toNewObject(TbsCostPercent source){
TbsCostPercent costPercent = new TbsCostPercent();
costPercent.setId(source.getId());
costPercent.setCostApplyId(source.getCostApplyId());
costPercent.setYtdCustomerPercent(source.getYtdCustomerPercent());
costPercent.setYtdUserPercent(source.getYtdUserPercent());
costPercent.setYtdRegion2Percent(source.getYtdRegion2Percent());
costPercent.setYtdRegionPercent(source.getYtdRegionPercent());
costPercent.setYtdBudgetPercent(source.getYtdBudgetPercent());
costPercent.setQtdCustomerPercent(source.getQtdCustomerPercent());
costPercent.setQtdUserPercent(source.getQtdUserPercent());
costPercent.setQtdRegion2Percent(source.getQtdRegion2Percent());
costPercent.setQtdRegionPercent(source.getQtdRegionPercent());
costPercent.setQtdBudgetPercent(source.getQtdBudgetPercent());
costPercent.setRemark(source.getRemark());
costPercent.setCreateTime(source.getCreateTime());
costPercent.setUpdateTime(source.getUpdateTime());
costPercent.setTenantId(source.getTenantId());
costPercent.setCreateBy(source.getCreateBy());
costPercent.setUpdateBy(source.getUpdateBy());
costPercent.setDelFlag(source.getDelFlag());
return costPercent;
}
}

3
src/main/java/com/qs/serve/modules/tbs/entity/TbsScheduleItemBudget.java

@ -65,6 +65,9 @@ public class TbsScheduleItemBudget implements Serializable {
@NotNull(message = "预算金额不能为空") @NotNull(message = "预算金额不能为空")
private BigDecimal budgetAmount; private BigDecimal budgetAmount;
@NotNull(message = "预估发货金额")
private BigDecimal preDispatchAmount;
/** 备注 */ /** 备注 */
@Length(max = 255,message = "备注长度不能超过255字") @Length(max = 255,message = "备注长度不能超过255字")
private String remark; private String remark;

19
src/main/java/com/qs/serve/modules/tbs/mapper/TbsCostPercentMapper.java

@ -0,0 +1,19 @@
package com.qs.serve.modules.tbs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsCostPercent;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
/**
* 申请费率 Mapper
* @author YenHex
* @date 2023-07-02
*/
public interface TbsCostPercentMapper extends BaseMapper<TbsCostPercent> {
@Update("update tbs_cost_percent set del_flag = 1 where id = #{costId}}")
void delByCostApplyId(@Param("costId")Long costApplyId);
}

43
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java

@ -36,15 +36,12 @@ import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult; import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem; import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper; import com.qs.serve.modules.tbs.mapper.*;
import com.qs.serve.modules.tbs.mapper.TbsActivityPayConditionMapper;
import com.qs.serve.modules.tbs.mapper.TbsActivitySlottingFeeMapper;
import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.*;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException; import org.springframework.beans.BeansException;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.qs.serve.modules.tbs.mapper.TbsCostApplyMapper;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
@ -82,6 +79,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private TbsActivityMapper tbsActivityMapper; private TbsActivityMapper tbsActivityMapper;
private ProjectProperties projectProperties; private ProjectProperties projectProperties;
private BirRoiRateService birRoiRateService; private BirRoiRateService birRoiRateService;
private TbsCostPercentMapper tbsCostPercentMapper;
@Override @Override
public Long selectCountOverdueState(String userId) { public Long selectCountOverdueState(String userId) {
@ -221,15 +219,36 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("exsp1",TbsSeeYonConst.CostApplyConf.Code()); data.put("exsp1",TbsSeeYonConst.CostApplyConf.Code());
data.put("money",tbsCostApply.getTotalActivityAmount()); data.put("money",tbsCostApply.getTotalActivityAmount());
//记录费率参数
YtdQtdToOAVo ytdQtdToOAVo = birRoiRateService.buildYtdAndQtdData(tbsCostApply); YtdQtdToOAVo ytdQtdToOAVo = birRoiRateService.buildYtdAndQtdData(tbsCostApply);
data.put("",ytdQtdToOAVo.getYtdCustomerPercent()); data.put("ytdCusExpenseRate",ytdQtdToOAVo.getYtdCustomerPercent());
data.put("",ytdQtdToOAVo.getYtdUserPercent()); data.put("ytdEmpExpenseRate",ytdQtdToOAVo.getYtdUserPercent());
data.put("",ytdQtdToOAVo.getYtdRegionPercent()); data.put("ytdAdminiExpenseRate",ytdQtdToOAVo.getYtdRegionPercent());
data.put("",ytdQtdToOAVo.getYtdRegion2Percent()); data.put("ytdSalesExpenseRate",ytdQtdToOAVo.getYtdRegion2Percent());
data.put("",ytdQtdToOAVo.getQtdCustomerPercent()); data.put("cusExpenseRate",ytdQtdToOAVo.getQtdCustomerPercent());
data.put("",ytdQtdToOAVo.getQtdUserPercent()); data.put("empExpenseRate",ytdQtdToOAVo.getQtdUserPercent());
data.put("",ytdQtdToOAVo.getQtdRegionPercent()); data.put("salesExpenseRate",ytdQtdToOAVo.getQtdRegionPercent());
data.put("",ytdQtdToOAVo.getQtdRegion2Percent()); data.put("adminiExpenseRate",ytdQtdToOAVo.getQtdRegion2Percent());
//TODO 预算费率
data.put("budgetExpenseRate","0.0");
data.put("ytdBudgetExpenseRate","0.0");
//插入记录表前移除历史记录
tbsCostPercentMapper.delByCostApplyId(tbsCostApply.getId());
TbsCostPercent costPercent = new TbsCostPercent();
costPercent.setCostApplyId(tbsCostApply.getId());
costPercent.setYtdCustomerPercent(BigDecimal.valueOf(ytdQtdToOAVo.getYtdCustomerPercent()));
costPercent.setYtdUserPercent(BigDecimal.valueOf(ytdQtdToOAVo.getYtdCustomerPercent()));
costPercent.setYtdRegion2Percent(BigDecimal.valueOf(ytdQtdToOAVo.getYtdCustomerPercent()));
costPercent.setYtdRegionPercent(BigDecimal.valueOf(ytdQtdToOAVo.getYtdCustomerPercent()));
costPercent.setQtdCustomerPercent(BigDecimal.valueOf(ytdQtdToOAVo.getYtdCustomerPercent()));
costPercent.setQtdUserPercent(BigDecimal.valueOf(ytdQtdToOAVo.getYtdCustomerPercent()));
costPercent.setQtdRegion2Percent(BigDecimal.valueOf(ytdQtdToOAVo.getYtdCustomerPercent()));
costPercent.setQtdRegionPercent(BigDecimal.valueOf(ytdQtdToOAVo.getYtdCustomerPercent()));
//TODO 预算费率
costPercent.setYtdBudgetPercent(BigDecimal.ZERO);
costPercent.setQtdBudgetPercent(BigDecimal.ZERO);
tbsCostPercentMapper.insert(costPercent);
//拓展添加审批关联区域 //拓展添加审批关联区域
String saleRegionId = supplier.handleSaleRegionId(); String saleRegionId = supplier.handleSaleRegionId();

27
src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java

@ -31,6 +31,7 @@ import com.qs.serve.modules.tbs.common.util.TbsBudgetLogBuildUtil;
import com.qs.serve.modules.tbs.entity.*; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo; import com.qs.serve.modules.tbs.entity.bo.TbsActivityReopenBo;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo; import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.mapper.TbsCostPercentMapper;
import com.qs.serve.modules.tbs.service.*; import com.qs.serve.modules.tbs.service.*;
import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl; import com.qs.serve.modules.tbs.service.impl.TbsCostApplyOperationServiceImpl;
import com.qs.serve.modules.vtb.common.VtbFundFlowType; import com.qs.serve.modules.vtb.common.VtbFundFlowType;
@ -99,6 +100,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
private final BmsRegionMapper regionMapper; private final BmsRegionMapper regionMapper;
private final BmsRegion2Mapper region2Mapper; private final BmsRegion2Mapper region2Mapper;
private final TbsCostPercentMapper costPercentMapper;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@ -330,7 +332,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
verification.setAmountRecord(totalAmount); verification.setAmountRecord(totalAmount);
//保存 //保存
this.saveOrUpdate(verification); this.saveOrUpdate(verification);
this.commitSy(activity.getActTitle(),sysUser,verification,saleBizNames,bizBizNames); this.commitSy(activity,sysUser,verification,saleBizNames,bizBizNames);
this.updateById(verification); this.updateById(verification);
if(!StringUtils.hasText(verification.getSyFormId())||!StringUtils.hasText(verification.getSyFlowId())){ if(!StringUtils.hasText(verification.getSyFormId())||!StringUtils.hasText(verification.getSyFlowId())){
Assert.throwEx("远程调用失败"); Assert.throwEx("远程调用失败");
@ -371,14 +373,14 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
* @param sysUser * @param sysUser
* @param verification * @param verification
*/ */
private void commitSy(String actTitle,SysUser sysUser,VtbVerification verification,String saleRegionNames,String bizRegionNames){ private void commitSy(TbsActivity activity,SysUser sysUser,VtbVerification verification,String saleRegionNames,String bizRegionNames){
Map<String, Object> data = new HashMap<>(20); Map<String, Object> data = new HashMap<>(20);
data.put("costApplyCode",verification.getVerificationCode()); data.put("costApplyCode",verification.getVerificationCode());
data.put("applyUserCode",sysUser.getCode()); data.put("applyUserCode",sysUser.getCode());
data.put("applyUserName",sysUser.getName()); data.put("applyUserName",sysUser.getName());
data.put("supplierName",verification.getSupplierName()); data.put("supplierName",verification.getSupplierName());
data.put("supplierCode",verification.getSupplierCode()); data.put("supplierCode",verification.getSupplierCode());
data.put("title",actTitle); data.put("title",activity.getActTitle());
data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME)); data.put("rowDate",DateUtils.format(LocalDateTime.now(), DateFormatString.DATE_TIME));
data.put("rowState","03"); data.put("rowState","03");
data.put("orgId",verification.getId()); data.put("orgId",verification.getId());
@ -386,6 +388,25 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
data.put("targetCode",verification.getVerificationCode()); data.put("targetCode",verification.getVerificationCode());
data.put("exsp1",TbsSeeYonConst.CostCheckConf.Code()); data.put("exsp1",TbsSeeYonConst.CostCheckConf.Code());
data.put("jinE",verification.getAmount().toString()); data.put("jinE",verification.getAmount().toString());
data.put("money",verification.getAmount().toString());
//读取费用申请时的费率
LambdaQueryWrapper<TbsCostPercent> costPercentLambdaQueryWrapper = new LambdaQueryWrapper<>();
costPercentLambdaQueryWrapper.eq(TbsCostPercent::getCostApplyId,activity.getCostApplyId());
List<TbsCostPercent> costPercentList = costPercentMapper.selectList(costPercentLambdaQueryWrapper);
if(costPercentList.size()>0){
TbsCostPercent costPercent = costPercentList.get(0);
data.put("ytdCusExpenseRate",costPercent.getYtdCustomerPercent());
data.put("ytdEmpExpenseRate",costPercent.getYtdUserPercent());
data.put("ytdAdminiExpenseRate",costPercent.getYtdRegionPercent());
data.put("ytdSalesExpenseRate",costPercent.getYtdRegion2Percent());
data.put("cusExpenseRate",costPercent.getQtdCustomerPercent());
data.put("empExpenseRate",costPercent.getQtdUserPercent());
data.put("salesExpenseRate",costPercent.getQtdRegionPercent());
data.put("adminiExpenseRate",costPercent.getQtdRegion2Percent());
data.put("budgetExpenseRate",costPercent.getQtdBudgetPercent());
data.put("ytdBudgetExpenseRate",costPercent.getYtdBudgetPercent());
}
//拓展添加审批关联 //拓展添加审批关联
data.put("biz_region",bizRegionNames); data.put("biz_region",bizRegionNames);

Loading…
Cancel
Save