Browse Source

费用预览,可用预算调整

contract
Yen 2 years ago
parent
commit
b32b01b140
  1. 10
      src/main/java/com/qs/serve/modules/bir/entity/BirBaseActivity.java
  2. 7
      src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java
  3. 25
      src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java
  4. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java
  5. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivitySlottingFee.java
  6. 20
      src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetLogPreAmount.java
  7. 18
      src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsScheduleItemBudgetAmount.java
  8. 10
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySlottingFeeMapper.java
  9. 35
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java
  10. 69
      src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java
  11. 4
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
  12. 4
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  13. 6
      src/main/java/com/qs/serve/modules/third/PortalFormPushController.java
  14. 106
      src/main/resources/mapper/bir/BirBaseActivityMapper.xml
  15. 91
      src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml

10
src/main/java/com/qs/serve/modules/bir/entity/BirBaseActivity.java

@ -41,20 +41,26 @@ public class BirBaseActivity implements Serializable {
private Long costApplyId;
/** 活动金额(费用投入金额) */
/** 活动金额(分割,费用投入金额) */
@NotNull(message = "活动金额(费用投入金额)不能为空")
private BigDecimal activityAmt;
/** 核销总金额 */
private BigDecimal activityUsedAmt;
/** 活动总金额(费用投入金额) */
@NotNull(message = "活动总金额(费用投入金额)不能为空")
private BigDecimal activityTotalAmt;
/** 核销金额 */
/** 核销金额(分割) */
@NotNull(message = "核销金额不能为空")
private BigDecimal verificationAmt;
private Long preActQuantity;
/** 费用通过标识,用于已申请费用活动列表 */
private Integer costPassFlag;
/** 客户id */
@NotNull(message = "客户id不能为空")
private Long supplierId;

7
src/main/java/com/qs/serve/modules/bir/mapper/BirBaseActivityMapper.java

@ -2,6 +2,11 @@ package com.qs.serve.modules.bir.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.bir.entity.BirBaseActivity;
import com.qs.serve.modules.tbs.entity.TbsActivity;
import org.apache.ibatis.annotations.Param;
import java.time.LocalDate;
import java.util.List;
/**
* ROI费率(活动档案) Mapper
@ -10,5 +15,7 @@ import com.qs.serve.modules.bir.entity.BirBaseActivity;
*/
public interface BirBaseActivityMapper extends BaseMapper<BirBaseActivity> {
List<TbsActivity> selectByBirActivity(@Param("startDate") LocalDate startDate, @Param("endDate")LocalDate endDate);
}

25
src/main/java/com/qs/serve/modules/bir/service/impl/BirBaseActivityServiceImpl.java

@ -35,8 +35,6 @@ import java.util.stream.Collectors;
@AllArgsConstructor
public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMapper,BirBaseActivity> implements BirBaseActivityService {
private final TbsActivityMapper activityMapper;
private final TbsCostApplyMapper costApplyMapper;
@Override
@ -46,13 +44,18 @@ public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMappe
LocalDate startDate = LocalDate.of(year,month,1);
int lastDayNum2 = startDate.lengthOfMonth();
LocalDate endDate = LocalDate.of(year,month,lastDayNum2);
LambdaQueryWrapper<TbsActivity> activityLqw = new LambdaQueryWrapper<>();
activityLqw.and(qw->{
qw.between(TbsActivity::getActStartDate,startDate,endDate)
.or().between(TbsActivity::getActEndDate,startDate,endDate);
});
//修改为增量
List<TbsActivity> activityList = baseMapper.selectByBirActivity(startDate,endDate);
if(activityList.size()<1){
return;
}
//删除历史数据
List<Long> ids = activityList.stream().filter(a->a.getBirActId()!=null)
.map(TbsActivity::getId).collect(Collectors.toList());
LambdaQueryWrapper<BirBaseActivity> birBaseActivityLqw = new LambdaQueryWrapper<>();
birBaseActivityLqw.in(BirBaseActivity::getActivityId,ids);
this.remove(birBaseActivityLqw);
List<TbsActivity> activityList = activityMapper.selectList(activityLqw);
List<BirBaseActivity> birBaseActivities = new ArrayList<>();
for (TbsActivity activity : activityList) {
BirBaseActivity baseActivity = new BirBaseActivity();
@ -113,6 +116,7 @@ public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMappe
baseActivity.setCostApplyId(costApply.getId());
baseActivity.setActivityAmt(currentAmount);
baseActivity.setActivityTotalAmt(activity.getTotalAmount());
baseActivity.setActivityUsedAmt(activity.getUsedAmount());
baseActivity.setVerificationAmt(currentCheckAmount);
baseActivity.setPreActQuantity(activity.getPreActQuantity());
baseActivity.setSupplierId(activity.getSupplierId());
@ -120,13 +124,10 @@ public class BirBaseActivityServiceImpl extends ServiceImpl<BirBaseActivityMappe
baseActivity.setSupplierName(activity.getSupplierName());
baseActivity.setUserId(costApply.getUserId());
baseActivity.setMonthDays(currItemDays);
baseActivity.setCostPassFlag(activity.getCostPassFlag());
baseActivity.setTotalDays(currentActDays);
birBaseActivities.add(baseActivity);
}
//删除历史数据
LambdaQueryWrapper<BirBaseActivity> delLqw = new LambdaQueryWrapper<>();
delLqw.eq(BirBaseActivity::getKeyNum,yearMonth);
this.remove(delLqw);
//保存
this.saveBatch(birBaseActivities);
}

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

@ -240,6 +240,9 @@ public class TbsActivity implements Serializable {
@TableField(exist = false)
private Integer overdueState;
@TableField(exist = false)
private Long birActId;
/**
* 处理预警时间
* @param preDays

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

@ -110,6 +110,9 @@ public class TbsActivitySlottingFee implements Serializable {
/**
* 通过标识
* 0->未审批或审批被拒绝
* 1->已通过审批
* 2->审批中
*/
private Integer passFlag;

20
src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsBudgetLogPreAmount.java

@ -0,0 +1,20 @@
package com.qs.serve.modules.tbs.entity.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author YenHex
* @since 2023/6/29
*/
@Data
public class TbsBudgetLogPreAmount {
Long budgetId;
Long scheduleItemId;
BigDecimal amount;
}

18
src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsScheduleItemBudgetAmount.java

@ -0,0 +1,18 @@
package com.qs.serve.modules.tbs.entity.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author YenHex
* @since 2023/6/29
*/
@Data
public class TbsScheduleItemBudgetAmount {
Long scheduleItemId;
BigDecimal totalAmount;
}

10
src/main/java/com/qs/serve/modules/tbs/mapper/TbsActivitySlottingFeeMapper.java

@ -2,6 +2,8 @@ package com.qs.serve.modules.tbs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsActivitySlottingFee;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Update;
/**
* 活动进场费 Mapper
@ -10,5 +12,13 @@ import com.qs.serve.modules.tbs.entity.TbsActivitySlottingFee;
*/
public interface TbsActivitySlottingFeeMapper extends BaseMapper<TbsActivitySlottingFee> {
/**
* 更新状态
* @param costApplyId
* @param passFlag
*/
@Update("update tbs_activity_slotting_fee set pass_flag = #{passFlag} where cost_apply_id = #{costApplyId}")
void updatePassFlagByCostApplyId(@Param("costApplyId")Long costApplyId,@Param("passFlag") Integer passFlag);
}

35
src/main/java/com/qs/serve/modules/tbs/mapper/TbsScheduleItemBudgetMapper.java

@ -2,9 +2,11 @@ package com.qs.serve.modules.tbs.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogPreAmount;
import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemBudgetAmount;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import java.util.List;
import java.math.BigDecimal;
/**
@ -15,11 +17,13 @@ import java.math.BigDecimal;
public interface TbsScheduleItemBudgetMapper extends BaseMapper<TbsScheduleItemBudget> {
/**
* 统计费用申请占用的预算金额
* 统计费用申请记录占用的预算金额
* @param scheduleItemBudgetId 预算考核期id
* @param applyId 费用申请id(防止驳回后提交重复扣除)
* @return
* 已废弃使用totalApplyAmountList(...)替代
*/
@Deprecated
@Select("SELECT sum(`tbs_budget_cost_item`.center_goods_amount) FROM `tbs_budget_cost_item` " +
" LEFT JOIN `tbs_cost_apply` " +
" ON `tbs_budget_cost_item`.cost_apply_id = `tbs_cost_apply`.id " +
@ -27,6 +31,16 @@ public interface TbsScheduleItemBudgetMapper extends BaseMapper<TbsScheduleItemB
" AND `tbs_budget_cost_item`.schedule_item_id = #{scheduleItemBudgetId} and `tbs_cost_apply`.id != #{applyId}")
BigDecimal totalApplyAmount(@Param("scheduleItemBudgetId") Long scheduleItemBudgetId,@Param("applyId") Long applyId);
/**
* 统计费用申请时记录占用的预算金额
* 用于替代 totalApplyAmount()
* @param scheduleItemBudgetIds
* @param applyId
* @return
*/
List<TbsScheduleItemBudgetAmount> totalApplyAmountList(@Param("sibIdList")List<Long> scheduleItemBudgetIds,
@Param("applyId")Long applyId);
/**
* 统计政策申请已占用的预算金额
* @param scheduleItemBudgetId
@ -47,7 +61,9 @@ public interface TbsScheduleItemBudgetMapper extends BaseMapper<TbsScheduleItemB
* @param scheduleItemId 考核期id
* @param applyId 费用申请id(防止驳回后提交重复扣除)
* @return
* 用于listLogCostAmount(...)替代 totalApplyAmount()
*/
@Deprecated
@Select("SELECT " +
" sum( amount ) " +
"FROM " +
@ -61,11 +77,24 @@ public interface TbsScheduleItemBudgetMapper extends BaseMapper<TbsScheduleItemB
" AND `tbs_budget_log`.schedule_item_id = #{scheduleItemId} " +
" AND `tbs_cost_apply`.id != #{applyId} " +
" AND `tbs_cost_apply`.charge_state in (1,2,3) " +
" AND opt_type IN (1,4,5,6,11)")
" AND opt_type IN (1,4,5,6)")
BigDecimal totalCostAmountByApplyId(@Param("budgetId") Long budgetId,
@Param("scheduleItemId") Long scheduleItemId,
@Param("applyId") Long applyId);
/**
* 统计费用申请占用的预算金额
* 状态:0=未发布1=审批中2=待执行3=完成4-被驳回
* @param budgetIds 预算id
* @param scheduleItemIds 考核期id
* @param applyId 费用申请id(防止驳回后提交重复扣除)
* @return
* 用于替代 totalCostAmountByApplyId()
*/
List<TbsBudgetLogPreAmount> listLogCostAmount(@Param("budgetIds") List<Long> budgetIds,
@Param("scheduleItemIds") List<Long> scheduleItemIds,
@Param("applyId") Long applyId);
/**
* 统计费用申请占用的预算金额
* 通过状态(0-未提交1-审核中2-已通过待执行3-拒绝4-被驳回5-结束)

69
src/main/java/com/qs/serve/modules/tbs/service/TbsBudgetApplicationService.java

@ -11,6 +11,8 @@ import com.qs.serve.modules.tbs.common.util.CostSortWrapperUtil;
import com.qs.serve.modules.tbs.common.util.TbsBudgetCostUtil;
import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogPreAmount;
import com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemBudgetAmount;
import com.qs.serve.modules.tbs.entity.vo.TbsBudgetTableVo;
import com.qs.serve.modules.tbs.mapper.TbsActivityGoodsMapper;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
@ -225,30 +227,57 @@ public class TbsBudgetApplicationService {
this.handleNoBudgetActivity(throwEx, overspend, activityList, noBudgetActivityIds,activityAllowBudgetIdMap);
}
//统计费用申请占用金额(记录录入时,考核期申请占用金额)
Map<Long,BigDecimal> budgetItemApplyAmountMap = new HashMap<>(scheduleItemList.size());
List<Long> scheduleItemIds = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).collect(Collectors.toList());
if(scheduleItemIds.size()>0){
List<TbsScheduleItemBudgetAmount> scheduleItemBudgetAmounts = tbsScheduleItemBudgetMapper.totalApplyAmountList(scheduleItemIds,costApplyId);
for (TbsScheduleItemBudgetAmount budgetAmount : scheduleItemBudgetAmounts) {
Long scheduleItemBudgetId = null;
for (TbsScheduleItemBudget itemBudget : scheduleItemList) {
if(itemBudget.getScheduleItemId().equals(budgetAmount.getScheduleItemId())){
scheduleItemBudgetId = itemBudget.getId();
break;
}
}
if (budgetAmount.getTotalAmount()==null){
budgetItemApplyAmountMap.put(scheduleItemBudgetId,BigDecimal.ZERO);
continue;
}
budgetItemApplyAmountMap.put(scheduleItemBudgetId,budgetAmount.getTotalAmount());
}
}
//统计所有占用预算金额
Map<Long,BigDecimal> budgetItemAmountMap = new HashMap<>(scheduleItemList.size());
//统计费用申请占用金额
Map<Long,BigDecimal> budgetItemApplyAmountMap = new HashMap<>(scheduleItemList.size());
List<Long> budgetIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getBudgetId).collect(Collectors.toList());
List<Long> scheduleItemIdsFromScheduleItemList = scheduleItemList.stream().map(TbsScheduleItemBudget::getScheduleItemId).collect(Collectors.toList());
List<TbsBudgetLogPreAmount> budgetLogPreAmounts = tbsScheduleItemBudgetMapper.listLogCostAmount(budgetIdsFromScheduleItemList,scheduleItemIdsFromScheduleItemList,costApplyId);
for (TbsScheduleItemBudget itemBudget : scheduleItemList) {
BigDecimal budgetItemApplyAmount = tbsScheduleItemBudgetMapper.totalApplyAmount(itemBudget.getId(),costApplyId);
if(budgetItemApplyAmount==null){
budgetItemApplyAmount = BigDecimal.ZERO;
for (TbsBudgetLogPreAmount logPreAmount : budgetLogPreAmounts) {
if(itemBudget.getBudgetId().equals(logPreAmount.getBudgetId())&&itemBudget.getScheduleItemId().equals(logPreAmount.getScheduleItemId())){
BigDecimal budgetItemAmount = logPreAmount.getAmount();
//因为结果为负数,需去相反数
budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate();
budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount);
}
}
// BigDecimal budgetItemApplyAmount2 = tbsScheduleItemBudgetMapper.totalPolicyAmount(itemBudget.getId(), costApplyId);
// if(budgetItemApplyAmount2!=null){
// budgetItemApplyAmount.add(budgetItemApplyAmount2);
// }
// budgetItemApplyAmountMap.put(itemBudget.getId(),budgetItemApplyAmount2);
BigDecimal budgetItemAmount = tbsScheduleItemBudgetMapper.totalCostAmountByApplyId(itemBudget.getBudgetId(),itemBudget.getScheduleItemId(),costApplyId);
//因为结果为负数,需去相反数
budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate();
// BigDecimal budgetItemPolicyAmount = tbsScheduleItemBudgetMapper.totalCostAmountByPolicyId(itemBudget.getBudgetId(),itemBudget.getScheduleItemId(),0L);
// if(budgetItemPolicyAmount!=null){
// budgetItemAmount.add(budgetItemPolicyAmount.negate());
// }
budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount);
}
// for (TbsScheduleItemBudget itemBudget : scheduleItemList) {
// BigDecimal budgetItemApplyAmount = tbsScheduleItemBudgetMapper.totalApplyAmount(itemBudget.getScheduleItemId(),costApplyId);
// if(budgetItemApplyAmount==null){
// budgetItemApplyAmount = BigDecimal.ZERO;
// }
// budgetItemApplyAmountMap.put(itemBudget.getId(),budgetItemApplyAmount);
//
// BigDecimal budgetItemAmount = tbsScheduleItemBudgetMapper.totalCostAmountByApplyId(itemBudget.getBudgetId(),itemBudget.getScheduleItemId(),costApplyId);
// //因为结果为负数,需去相反数
// budgetItemAmount = budgetItemAmount==null?BigDecimal.ZERO:budgetItemAmount.negate();
//
// budgetItemAmountMap.put(itemBudget.getId(),budgetItemAmount);
// }
//统计当前活动前置项占用预算
Map<Long,BigDecimal> counterMap = new HashMap<>();
//匹配预算主要方法
@ -444,7 +473,7 @@ public class TbsBudgetApplicationService {
* @param actMatchList 匹配预算占用的费用(含超支预算)
* @param actUnMatchList 没有匹配预算的费用
* @param activityAllowBudgetIdMap 满足当前活动项的费用idMap
* @param budgetItemApplyAmountMap 统计费用申请占用金额
* @param budgetItemApplyAmountMap 统计费用申请占用金额(录入时考核期申请占用金额)
*/
private void matchActivityMain(TbsActivityCenterGoods activityCostItem,
Boolean throwEx,
@ -531,7 +560,7 @@ public class TbsBudgetApplicationService {
lastAmount = BigDecimal.ZERO;
}
//判断是否够用
if(budgetAmount.subtract(lastAmount).subtract(totalUsed).compareTo(goodsAmount)>-1){
if(budgetAmount.subtract(lastAmount).subtract(totalUsed).compareTo(goodsAmount)>=0){
activityCostItem.setBudgetId(itemBudget.getBudgetId());
activityCostItem.setScheduleId(itemBudget.getScheduleId());
activityCostItem.setScheduleItemId(itemBudget.getScheduleItemId());

4
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java

@ -20,6 +20,7 @@ import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.bo.TbsAffairCommitBo;
import com.qs.serve.modules.tbs.entity.vo.CtpAffairVo;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.mapper.TbsActivitySlottingFeeMapper;
import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import lombok.AllArgsConstructor;
@ -46,6 +47,7 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
private final TbsCostApplyService costApplyService;
private final TbsActivityMapper tbsActivityMapper;
private final SysUserMapper userMapper;
private final TbsActivitySlottingFeeMapper activitySlottingFeeMapper;
@Override
public SysUserService getSysUserService() {
@ -117,6 +119,7 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
LambdaQueryWrapper<TbsActivity> actLqw = new LambdaQueryWrapper<>();
actLqw.eq(TbsActivity::getCostApplyId,targetId);
tbsActivityMapper.update(tbsActivity,actLqw);
activitySlottingFeeMapper.updatePassFlagByCostApplyId(targetId,1);
return null;
}
@ -157,6 +160,7 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
TbsActivity activityParam = new TbsActivity();
activityParam.setActivityState(TbsActivityState.STATE_5_Close);
tbsActivityMapper.update(activityParam,activityLqw);
activitySlottingFeeMapper.updatePassFlagByCostApplyId(costApplyId,0);
return null;
}

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

@ -31,6 +31,7 @@ import com.qs.serve.modules.tbs.entity.dto.TbsBudgetCostResult;
import com.qs.serve.modules.tbs.entity.dto.TbsCostSubItem;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.mapper.TbsActivityPayConditionMapper;
import com.qs.serve.modules.tbs.mapper.TbsActivitySlottingFeeMapper;
import com.qs.serve.modules.tbs.service.*;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
@ -68,6 +69,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
private BmsSupplierService bmsSupplierService;
private BmsRegionMapper regionMapper;
private BmsRegion2Mapper region2Mapper;
private TbsActivitySlottingFeeMapper activitySlottingFeeMapper;
private TbsActivityPayConditionMapper tbsActivityPayConditionMapper;
private TbsActivityMapper tbsActivityMapper;
private ProjectProperties projectProperties;
@ -191,6 +193,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("targetId",tbsCostApply.getId()+"");
data.put("targetCode",tbsCostApply.getCode());
data.put("exsp1",TbsSeeYonConst.CostApplyConf.Code());
data.put("money",tbsCostApply.getTotalActivityAmount());
//拓展添加审批关联区域
String saleRegionId = supplier.handleSaleRegionId();
@ -309,6 +312,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
//创建流程后回调
BaseCreateCallbackBo callbackBo = new BaseCreateCallbackBo(TbsSeeYonConst.CostApplyConf.Code(),costApply.getId()+"");
seeYonService.createCallbackStatus(callbackBo);
activitySlottingFeeMapper.updatePassFlagByCostApplyId(costApply.getId(),2);
}
/**

6
src/main/java/com/qs/serve/modules/third/PortalFormPushController.java

@ -56,7 +56,7 @@ public class PortalFormPushController {
*/
@PostMapping("/publish")
public R<?> save(@RequestBody @Valid WxFormPushThirdBo param, HttpServletRequest request){
ThirdTokenUtil.checkToken(request);
//ThirdTokenUtil.checkToken(request);
WxFormPush entity = CopierUtil.copy(param,new WxFormPush());
entity.setStatus("1");
wxFormPushService.save(entity);
@ -65,6 +65,10 @@ public class PortalFormPushController {
LambdaQueryWrapper<WxFormPushType> lqw = new LambdaQueryWrapper<>();
lqw.eq(WxFormPushType::getCode,param.getTypeCode());
pushType = wxFormPushTypeService.getOne(lqw,false);
if(pushType==null){
entity.setTypeId(pushType.getId());
entity.setTypeName(pushType.getTitle());
}
}
List<String> userCodes = param.getUserCodes().stream().distinct().collect(Collectors.toList());
LambdaQueryWrapper<WxUser> lqw = new LambdaQueryWrapper<>();

106
src/main/resources/mapper/bir/BirBaseActivityMapper.xml

@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qs.serve.modules.bir.mapper.BirBaseActivityMapper">
<resultMap id="tbsActivityMap" type="com.qs.serve.modules.tbs.entity.TbsActivity" >
<result property="id" column="id"/>
<result property="activityCode" column="activity_code"/>
<result property="activityState" column="activity_state"/>
<result property="costApplyId" column="cost_apply_id"/>
<result property="costPassTime" column="cost_pass_time"/>
<result property="costPassFlag" column="cost_pass_flag"/>
<result property="actTitle" column="act_title"/>
<result property="supplierId" column="supplier_id"/>
<result property="supplierCode" column="supplier_code"/>
<result property="supplierName" column="supplier_name"/>
<result property="actStartDate" column="act_start_date"/>
<result property="actEndDate" column="act_end_date"/>
<result property="preStartDate" column="pre_start_date"/>
<result property="preEndDate" column="pre_end_date"/>
<result property="preCheckDate" column="pre_check_date"/>
<result property="preActFlag" column="pre_act_flag"/>
<result property="preActQuantity" column="pre_act_quantity"/>
<result property="preNotActQuantity" column="pre_not_act_quantity"/>
<result property="preRoiRate" column="pre_roi_rate"/>
<result property="remark" column="remark"/>
<result property="totalAmount" column="total_amount"/>
<result property="usedAmount" column="used_amount"/>
<result property="reopenFlag" column="reopen_flag"/>
<result property="finishedFlag" column="finished_flag"/>
<result property="finishedTime" column="finished_time"/>
<result property="releaseFlag" column="release_flag"/>
<result property="releaseAmount" column="release_amount"/>
<result property="releaseTime" column="release_time"/>
<result property="releaseUserId" column="release_user_id"/>
<result property="releaseUserName" column="release_user_name"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="tenantId" column="tenant_id"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="delFlag" column="del_flag"/>
<result property="templateId" column="template_id"/>
<result property="templateValue" column="template_value"/>
<result property="birActId" column="bir_act_id"/>
</resultMap>
<sql id="tbsActivityScSql">
tbs_activity.`id`,
tbs_activity.`activity_code`,
tbs_activity.`activity_state`,
tbs_activity.`cost_apply_id`,
tbs_activity.`cost_pass_time`,
tbs_activity.`cost_pass_flag`,
tbs_activity.`act_title`,
tbs_activity.`supplier_id`,
tbs_activity.`supplier_code`,
tbs_activity.`supplier_name`,
tbs_activity.`act_start_date`,
tbs_activity.`act_end_date`,
tbs_activity.`pre_start_date`,
tbs_activity.`pre_end_date`,
tbs_activity.`pre_check_date`,
tbs_activity.`pre_act_flag`,
tbs_activity.`pre_act_quantity`,
tbs_activity.`pre_not_act_quantity`,
tbs_activity.`pre_roi_rate`,
tbs_activity.`remark`,
tbs_activity.`total_amount`,
tbs_activity.`used_amount`,
tbs_activity.`reopen_flag`,
tbs_activity.`finished_flag`,
tbs_activity.`finished_time`,
tbs_activity.`release_flag`,
tbs_activity.`release_amount`,
tbs_activity.`release_time`,
tbs_activity.`release_user_id`,
tbs_activity.`release_user_name`,
tbs_activity.`create_time`,
tbs_activity.`update_time` </sql>
<select id="selectByBirActivity" resultType="com.qs.serve.modules.tbs.entity.TbsActivity">
SELECT
bir_base_activity.id as bir_act_id,
<include refid="tbsActivityScSql"/>
FROM tbs_activity
LEFT JOIN bir_base_activity
on bir_base_activity.activity_id = tbs_activity.id
where
bir_base_activity.del_flag = 0
and tbs_activity.del_flag = 0
and (
bir_base_activity.activity_id is null
or bir_base_activity.activity_total_amt != tbs_activity.total_amount
or bir_base_activity.activity_used_amt != tbs_activity.used_amount
)
and (
(tbs_activity.act_start_date between #{startDate} and #{endDate})
or
(tbs_activity.act_end_date between #{startDate} and #{endDate})
)
</select>
</mapper>

91
src/main/resources/mapper/tbs/TbsScheduleItemBudgetMapper.xml

@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.qs.serve.modules.tbs.mapper.TbsScheduleItemBudgetMapper">
<resultMap id="tbsScheduleItemBudgetMap" type="com.qs.serve.modules.tbs.entity.TbsScheduleItemBudget" >
<result property="id" column="id"/>
<result property="scheduleId" column="schedule_id"/>
<result property="scheduleItemId" column="schedule_item_id"/>
<result property="itemName" column="item_name"/>
<result property="startDate" column="start_date"/>
<result property="endDate" column="end_date"/>
<result property="budgetId" column="budget_id"/>
<result property="budgetAmount" column="budget_amount"/>
<result property="remark" column="remark"/>
<result property="createTime" column="create_time"/>
<result property="updateTime" column="update_time"/>
<result property="tenantId" column="tenant_id"/>
<result property="createBy" column="create_by"/>
<result property="updateBy" column="update_by"/>
<result property="delFlag" column="del_flag"/>
</resultMap>
<sql id="tbsScheduleItemBudgetSql">
tbs_schedule_item_budget.`id`,
tbs_schedule_item_budget.`schedule_id`,
tbs_schedule_item_budget.`schedule_item_id`,
tbs_schedule_item_budget.`item_name`,
tbs_schedule_item_budget.`start_date`,
tbs_schedule_item_budget.`end_date`,
tbs_schedule_item_budget.`budget_id`,
tbs_schedule_item_budget.`budget_amount`,
tbs_schedule_item_budget.`remark`,
tbs_schedule_item_budget.`create_time`,
tbs_schedule_item_budget.`update_time`,
tbs_schedule_item_budget.`tenant_id`,
tbs_schedule_item_budget.`create_by`,
tbs_schedule_item_budget.`update_by`,
tbs_schedule_item_budget.`del_flag` </sql>
<resultMap id="TbsScheduleItemBudgetAmountMap" type="TbsScheduleItemBudgetAmount">
<result property="scheduleItemId" column="schedule_item_id"/>
<result property="totalAmount" column="total_amount"/>
</resultMap>
<select id="totalApplyAmountList"
resultType="com.qs.serve.modules.tbs.entity.dto.TbsScheduleItemBudgetAmount"
resultMap="TbsScheduleItemBudgetAmountMap">
SELECT
`tbs_budget_cost_item`.schedule_item_id,
sum(`tbs_budget_cost_item`.center_goods_amount) total_amount;
FROM `tbs_budget_cost_item`
LEFT JOIN `tbs_cost_apply`
ON `tbs_budget_cost_item`.cost_apply_id = `tbs_cost_apply`.id
WHERE `tbs_cost_apply`.charge_state = 1 OR `tbs_cost_apply`.charge_state = 4
AND `tbs_budget_cost_item`.schedule_item_id in
<foreach collection="sibIdList" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
and `tbs_cost_apply`.id != #{applyId}
group by `tbs_budget_cost_item`.schedule_item_id
</select>
<select id="listLogCostAmount" resultType="com.qs.serve.modules.tbs.entity.dto.TbsBudgetLogPreAmount">
SELECT
sum( amount )
FROM
`tbs_budget_log`
LEFT JOIN
`tbs_cost_apply`
ON `tbs_budget_log` .cost_apply_id = tbs_cost_apply.id
AND `tbs_budget_log`.rollback_flag = '0'
WHERE
`tbs_budget_log`.budget_id in
<foreach collection="budgetIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
AND `tbs_budget_log`.schedule_item_id in
<foreach collection="scheduleItemIds" item ="selectId" index="i" open="(" close=")" separator=",">
#{selectId}
</foreach>
AND `tbs_cost_apply`.id != #{applyId}
AND `tbs_cost_apply`.charge_state in (1,2,3)
AND opt_type IN (1,4,5,6)
</select>
</mapper>
Loading…
Cancel
Save