Browse Source

Merge remote-tracking branch 'origin/v1.0' into v1.0

v1.0
15989082884@163.com 2 years ago
parent
commit
ecad540dc7
  1. 6
      src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java
  2. 31
      src/main/java/com/qs/serve/modules/goods/common/GoodsType.java
  3. 5
      src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java
  4. 15
      src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java
  5. 3
      src/main/java/com/qs/serve/modules/tbs/entity/TbsActivity.java
  6. 8
      src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java
  7. 2
      src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java
  8. 10
      src/main/java/com/qs/serve/modules/tbs/mapper/TbsBudgetLogMapper.java
  9. 6
      src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java
  10. 6
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyOperationServiceImpl.java
  11. 32
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java
  12. 39
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyServiceImpl.java
  13. 8
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  14. 6
      src/main/resources/mapper/tbs/TbsCostApplyMapper.xml

6
src/main/java/com/qs/serve/common/framework/manager/AsyncFactory.java

@ -57,7 +57,7 @@ public class AsyncFactory {
public void run() {
try {
AuthContextUtils.setTenant("001");
Thread.sleep(10*1000);
Thread.sleep(20*1000);
log.debug("submitPolicy");
TzcPolicyOperationServiceImpl operationService = SpringUtils.getBean(TzcPolicyOperationServiceImpl.class);
String summeryResult = operationService.checkAffairSummery(policyId.toString());
@ -85,7 +85,7 @@ public class AsyncFactory {
public void run() {
try {
AuthContextUtils.setTenant("001");
Thread.sleep(10*1000);
Thread.sleep(20*1000);
log.debug("submitCostApply");
TbsCostApplyOperationServiceImpl applyOperationService = SpringUtils.getBean(TbsCostApplyOperationServiceImpl.class);
String summeryResult = applyOperationService.checkAffairSummery(costApply.getId().toString());
@ -115,7 +115,7 @@ public class AsyncFactory {
public void run() {
try {
AuthContextUtils.setTenant("001");
Thread.sleep(10*1000);
Thread.sleep(20*1000);
log.debug("saveVtbSubmit");
VtbVerificationOperationServiceImpl verificationOperationService = SpringUtils.getBean(VtbVerificationOperationServiceImpl.class);
String summeryResult = verificationOperationService.checkAffairSummery(verification.getId().toString());

31
src/main/java/com/qs/serve/modules/goods/common/GoodsType.java

@ -0,0 +1,31 @@
package com.qs.serve.modules.goods.common;
import lombok.AllArgsConstructor;
/**
* @author YenHex
* @since 2023/7/28
*/
@AllArgsConstructor
public enum GoodsType {
SKU("sku","单品"),
SPU("spu","SKU"),
Category("category","品类"),
Series("series","系列"),
Brand("brand","品牌"),
;
String code;
String name;
public static String getName(String code){
for (GoodsType value : GoodsType.values()) {
if(value.code.equals(code)){
return value.name;
}
}
return null;
}
}

5
src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java

@ -15,7 +15,7 @@ import java.util.List;
@AllArgsConstructor
public enum TbsCostApplyState {
//状态:0=未发布;1=审批中;2=待执行;3=完成;4-被驳回;5-中止;6-作废;7-异动
//状态:0=未发布;1=审批中;2=待执行;3=完成;4-被驳回;5-中止;6-作废;7-异动;8-异动失败
State_0_unPublish(0),
State_1_apply(1),
State_2_actioning(2),
@ -23,7 +23,8 @@ public enum TbsCostApplyState {
State_4_refused(4),
State_5_stop(5),
State_6_remove(6),
State_7_changed(6)
State_7_changed(7),
State_8_changed_fail(8)
;
private Integer code;

15
src/main/java/com/qs/serve/modules/tbs/controller/TbsCostApplyController.java

@ -268,10 +268,23 @@ public class TbsCostApplyController {
@PostMapping("/settingWithChange/{id}")
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.INSERT)
@Transactional(rollbackFor = Exception.class)
public R<?> save(@PathVariable("id") Long id){
public R<?> settingWithChange(@PathVariable("id") Long id){
return R.ok(costApplyPart1Service.toSetChanged(id));
}
/**
* 异动申请
* @param id
* @return
*/
@PostMapping("/cancelWithChange/{id}")
@SysLog(module = SystemModule.Budget, title = "费用申请", biz = BizType.INSERT)
@Transactional(rollbackFor = Exception.class)
public R<?> cancelWithChange(@PathVariable("id") Long id){
costApplyPart1Service.cancelSetChanged(id);
return R.ok();
}
/**
* 根据模板新增费用及活动
* @param param

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

@ -197,6 +197,9 @@ public class TbsActivity implements Serializable {
private String templateBudgetIds;
/** 是否取消(异动时设置) */
private Integer cancelFlag;
@TableField(exist = false)
private List<?> attachList;

8
src/main/java/com/qs/serve/modules/tbs/entity/TbsCostApply.java

@ -152,8 +152,16 @@ public class TbsCostApply implements Serializable {
private Integer cancelFlag;
/**
* 异动来源id
*/
private Long changeSourceId;
/**
* 异动继承的id
*/
private Long changeExtendId;
@TableField(exist = false)
private String affairId;

2
src/main/java/com/qs/serve/modules/tbs/entity/dto/TbsContractCostSubItem.java

@ -34,7 +34,7 @@ public class TbsContractCostSubItem {
public static class Payment{
private String payItem;
private String payCondition;
private BigDecimal applyMoney;
private BigDecimal payMoney;
private String payDate;
private String actualPayDate;
private String payCompleteState;

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

@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.qs.serve.modules.tbs.entity.TbsBudgetLog;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.math.BigDecimal;
@ -22,5 +23,14 @@ public interface TbsBudgetLogMapper extends BaseMapper<TbsBudgetLog> {
@Select("SELECT ROUND(abs(SUM(amount)),2) FROM `tbs_budget_log` WHERE opt_type in (1,4,5,6,11,12,13,14,15) and del_flag = '0'")
BigDecimal countUsedBudgetAmount();
/**
* 更新删除预算log记录用于异动
* @param costApplyId
* @param delState
*/
@Update("update tbs_budget_log set del_flag = #{delState} WHERE cost_apply_id = #{costApplyId}}")
void updateLogDelFlagByCostApply(@Param("costApplyId")Long costApplyId,@Param("delState")Integer delState);
}

6
src/main/java/com/qs/serve/modules/tbs/service/TbsCostApplyPart1Service.java

@ -16,4 +16,10 @@ public interface TbsCostApplyPart1Service {
*/
TbsCostApply toSetChanged(Long costId);
/**
* 取消异动
* @param costId
*/
void cancelSetChanged(Long costId);
}

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

@ -31,6 +31,7 @@ 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.mapper.TbsBudgetLogMapper;
import com.qs.serve.modules.tbs.service.TbsBudgetLogService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import lombok.AllArgsConstructor;
@ -61,6 +62,7 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
private final TbsActivityMapper tbsActivityMapper;
private final SysUserMapper userMapper;
private final TbsActivitySlottingFeeMapper activitySlottingFeeMapper;
private final TbsBudgetLogMapper tbsBudgetLogMapper;
@Override
public SysUserService getSysUserService() {
@ -215,6 +217,10 @@ public class TbsCostApplyOperationServiceImpl implements SeeYonOperationService
apply.setId(targetId);
apply.setChargeState(TbsCostApplyState.State_2_actioning.getCode());
costApplyService.updateById(apply);
if(apply.getChangeSourceId()!=null){
//移除
tbsBudgetLogMapper.updateLogDelFlagByCostApply(apply.getChangeSourceId(),1);
}
//更新活动通过时间
TbsActivity tbsActivity = new TbsActivity();
tbsActivity.setCostPassTime(LocalDateTime.now());

32
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostApplyPart1ServiceImpl.java

@ -30,6 +30,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author YenHex
@ -59,10 +60,14 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
public TbsCostApply toSetChanged(Long costId) {
String userId = AuthContextUtils.getSysUserId();
TbsCostApply orgCost = tbsCostApplyService.getById(costId);
// if(orgCost.getChangeSourceId()!=null){
// Assert.throwEx("异动单据不可再异动,请取消源单据异动后进行");
// }
if(!userId.equals(orgCost.getUserId())){
Assert.throwEx("拒绝访问");
}
if(!orgCost.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
if(!orgCost.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())&&
!orgCost.getChargeState().equals(TbsCostApplyState.State_4_refused.getCode())){
Assert.throwEx("费用申请的状态不支持");
}
//判断是否有核销记录
@ -79,6 +84,11 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
//复制新记录
TbsCostApply costApply = CopierUtil.copy(orgCost,new TbsCostApply());
costApply.setId(null);
costApply.setCreateBy(null);
costApply.setCreateTime(null);
costApply.setUpdateTime(null);
costApply.setUpdateBy(null);
costApply.setChangeSourceId(orgCost.getId());
costApply.setChargeState(TbsCostApplyState.State_0_unPublish.getCode());
tbsCostApplyService.save(costApply);
final Long newCostApplyId = costApply.getId();
@ -92,15 +102,27 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
});
//活动相关复制
List<TbsActivity> activityList = tbsActivityMapper.selectList(qw_cost_apply);
//更新状态
List<Long> activityIds = activityList.stream().map(TbsActivity::getId).collect(Collectors.toList());
TbsActivity activity4Update = new TbsActivity();
activity4Update.setCancelFlag(1);
LambdaQueryWrapper<TbsActivity> activityLqw = new LambdaQueryWrapper<>();
activityLqw.in(TbsActivity::getId,activityIds);
tbsActivityMapper.update(activity4Update,activityLqw);
this.copyAboutActivityData(newCostApplyId, activityList);
//更变旧记录
orgCost.setChargeState(TbsCostApplyState.State_7_changed.getCode());
orgCost.setCancelFlag(1);
orgCost.setChangeExtendId(costApply.getId());
tbsCostApplyService.updateById(orgCost);
return costApply;
}
@Override
public void cancelSetChanged(Long costId) {
}
/**
* 活动相关复制
* @param newCostApplyId
@ -112,6 +134,12 @@ public class TbsCostApplyPart1ServiceImpl implements TbsCostApplyPart1Service {
Long orgActivityId = orgActivity.getId();
//重新保存
orgActivity.setId(null);
orgActivity.setCostApplyId(newCostApplyId);
orgActivity.setActivityState(0);
orgActivity.setCreateBy(null);
orgActivity.setCreateTime(null);
orgActivity.setUpdateTime(null);
orgActivity.setUpdateBy(null);
tbsActivityMapper.insert(orgActivity);
final Long newActivityId = orgActivity.getId();

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

@ -27,6 +27,7 @@ import com.qs.serve.modules.bms.service.BmsSubjectService;
import com.qs.serve.modules.bms.service.BmsSupplierService;
import com.qs.serve.modules.erp.entity.dto.ErpDispatchSumVo;
import com.qs.serve.modules.erp.mapper.ErpDispatchDataMapper;
import com.qs.serve.modules.goods.common.GoodsType;
import com.qs.serve.modules.seeyon.entity.BaseCreateCallbackBo;
import com.qs.serve.modules.seeyon.entity.BaseCreateProcessBo;
import com.qs.serve.modules.seeyon.service.SeeYonRequestService;
@ -58,10 +59,13 @@ import org.springframework.beans.BeansException;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.UnsupportedEncodingException;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@ -436,15 +440,26 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
data.put("contractName",contract.getContractName());
data.put("contractTotalMoney",contract.getContractAmount());
data.put("applyMoney",contract.getContractAmount());
data.put("signDate",contract.getSignTime()==null?null:contract.getSignTime().toString());
data.put("expireDate",contract.getExpireTime()==null?null:contract.getExpireTime().toString());
data.put("contractContent",contract.getContractCondition());
String urls = "";
final String ossPrefix = "https://qsjslservice.oss-cn-guangzhou.aliyuncs.com/";
if (CollectionUtil.isNotEmpty(contract.getAttachIds())){
List<String> attachIds = Arrays.asList(contract.getAttachIds());
List<SysAttach> attachList = sysAttachService.listByIds(attachIds);
urls = attachList.stream().map(SysAttach::getPath).collect(Collectors.joining(" , "));
urls = attachList.stream().map(a->{
if(a.getPath()!=null){
try {
String tmp = URLEncoder.encode(a.getPath(), "UTF8").replace("%2F","/");
return ossPrefix+tmp;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
return "";
}).collect(Collectors.joining(" , "));
}
data.put("contractFile",urls);
}else {
@ -473,7 +488,7 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
dataActivity.setStartDate(currActivity.getActStartDate()==null?null:currActivity.getActStartDate().toString());
dataActivity.setEndDate(currActivity.getActEndDate()==null?null:currActivity.getActEndDate().toString());
dataActivity.setWriteOffDate(currActivity.getPreCheckDate()==null?null:currActivity.getPreCheckDate().toString());
dataActivity.setProductType(centerGoods.getTargetType());
dataActivity.setProductType(GoodsType.getName(centerGoods.getTargetType()));
dataActivity.setProduct(centerGoods.getTargetName());
dataActivity.setActivityAccountCode(centerGoods.getSubjectCode());
dataActivity.setActivityAccountName(centerGoods.getSubjectName());
@ -484,18 +499,18 @@ public class TbsCostApplyServiceImpl extends ServiceImpl<TbsCostApplyMapper,TbsC
}
// 付款条件
for (TbsActivityPayCondition payCondition : payConditions) {
TbsActivity currActivity = null;
for (TbsActivity activity : activityList) {
if(payCondition.getActivityId().equals(activity.getId())){
currActivity = activity;
break;
}
}
// TbsActivity currActivity = null;
// for (TbsActivity activity : activityList) {
// if(payCondition.getActivityId().equals(activity.getId())){
// currActivity = activity;
// break;
// }
// }
TbsContractCostSubItem.Payment subPayment = new TbsContractCostSubItem.Payment();
subPayment.setPayItem(payCondition.getTitle());
subPayment.setPayCondition(payCondition.getConditionMsg());
subPayment.setApplyMoney(currActivity.getTotalAmount());
subPayment.setPayDate(payCondition.getPaymentDate()!=null?payCondition.getPaymentDate().toString():null);
subPayment.setPayMoney(payCondition.getPaymentPrice());
subPayment.setPayDate(payCondition.getPreNotifyTime()!=null?payCondition.getPreNotifyTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")):null);
subPayment.setActualPayDate(null);
String stateMsg = payCondition.getFinishedFlag().equals(1)?"已完成":"未处理";
subPayment.setPayCompleteState(stateMsg);

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

@ -193,6 +193,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
if(!activity.getActivityState().equals(TbsActivityState.STATE_0_Todo)){
Assert.throwEx("活动状态非待核销状态,操作失败");
}
if(!activity.getCancelFlag().equals(1)){
Assert.throwEx("异动的活动,无法操作");
}
TbsCostApply costApply = costApplyService.getById(activity.getCostApplyId());
if(!costApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode())){
Assert.throwEx("状态不支持释放活动费用");
@ -276,6 +279,9 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
&&!dbAct.getActivityState().equals(TbsActivityState.STATE_1_Baning)){
return R.error("因活动状态不支持操作");
}
if(dbAct.getCancelFlag().equals(1)){
return R.error("异动的费用无法操作");
}
TbsActivity activity = new TbsActivity();
activity.setId(param.getActivityId());
if(param.getState().equals(1)){
@ -283,7 +289,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
activity.setActivityState(TbsActivityState.STATE_1_Baning);
}else {
//解冻
if(dbAct.getPreCheckDate().isBefore(LocalDate.now())){
if(dbAct.getPreCheckDate()==null||dbAct.getPreCheckDate().isBefore(LocalDate.now())){
activity.setReopenFlag(1);
}else {
activity.setReopenFlag(0);

6
src/main/resources/mapper/tbs/TbsCostApplyMapper.xml

@ -30,6 +30,9 @@
<result property="delFlag" column="del_flag"/>
<result property="templateId" column="template_id"/>
<result property="actEndDate" column="act_end_date"/>
<result property="cancelFlag" column="cancel_flag"/>
<result property="changeExtendId" column="change_extend_id"/>
<result property="changeSourceId" column="change_source_id"/>
</resultMap>
<sql id="tbsCostApplySql">
@ -59,6 +62,9 @@
tbs_cost_apply.`update_by`,
tbs_cost_apply.`del_flag`,
tbs_cost_apply.`template_id`,
tbs_cost_apply.`change_source_id`,
tbs_cost_apply.`change_extend_id`,
tbs_cost_apply.`cancel_flag`,
tbs_cost_apply.`template_title` </sql>

Loading…
Cancel
Save