Browse Source

fix: bir退回过滤;退回金额统计;feat:添加企业公众号包

muti_db
Yen 11 months ago
parent
commit
ef1d6b3a0a
  1. 6
      pom.xml
  2. 40
      src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java
  3. 5
      src/main/java/com/qs/serve/modules/his/entity/HisUserSupplier.java
  4. 2
      src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java
  5. 42
      src/main/java/com/qs/serve/modules/oms/entity/dto/SeeYonOrderItemDTO.java
  6. 2
      src/main/java/com/qs/serve/modules/tbs/common/TbsCostApplyState.java
  7. 7
      src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java
  8. 12
      src/main/java/com/qs/serve/modules/tbs/entity/TbsScheduleItemBudget.java
  9. 11
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostTodoOperationServiceImpl.java
  10. 9
      src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java
  11. 8
      src/main/java/com/qs/serve/modules/vtb/service/impl/VtbVerificationServiceImpl.java
  12. 35
      src/main/java/com/qs/serve/modules/wx/common/conf/WxCpConfig.java
  13. 2
      src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java
  14. 2
      src/main/resources/log4j2.xml

6
pom.xml

@ -189,6 +189,12 @@
<version>${wx.java.version}</version> <version>${wx.java.version}</version>
</dependency> </dependency>
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-cp</artifactId>
<version>${wx.java.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>

40
src/main/java/com/qs/serve/modules/bir/controller/BirActivityCenterGoodsController.java

@ -29,13 +29,8 @@ import com.qs.serve.modules.bms.service.BmsChannelService;
import com.qs.serve.modules.bms.service.BmsSupplierChannelService; import com.qs.serve.modules.bms.service.BmsSupplierChannelService;
import com.qs.serve.modules.his.service.HisUserChannelPointService; import com.qs.serve.modules.his.service.HisUserChannelPointService;
import com.qs.serve.modules.oss.service.OssService; import com.qs.serve.modules.oss.service.OssService;
import com.qs.serve.modules.tbs.entity.TbsActivityCenterGoods; import com.qs.serve.modules.tbs.entity.*;
import com.qs.serve.modules.tbs.entity.TbsActivityChannel; import com.qs.serve.modules.tbs.mapper.*;
import com.qs.serve.modules.tbs.entity.TbsCostApply;
import com.qs.serve.modules.tbs.entity.TbsCostBirLog;
import com.qs.serve.modules.tbs.mapper.TbsActivityCenterGoodsMapper;
import com.qs.serve.modules.tbs.mapper.TbsActivityMapper;
import com.qs.serve.modules.tbs.mapper.TbsCostBirLogMapper;
import com.qs.serve.modules.tbs.service.TbsActivityChannelService; import com.qs.serve.modules.tbs.service.TbsActivityChannelService;
import com.qs.serve.modules.tbs.service.TbsCostApplyService; import com.qs.serve.modules.tbs.service.TbsCostApplyService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
@ -69,6 +64,8 @@ public class BirActivityCenterGoodsController {
private TbsCostBirLogMapper tbsCostBirLogMapper; private TbsCostBirLogMapper tbsCostBirLogMapper;
private TbsActivityCenterGoodsMapper tbsActivityCenterGoodsMapper; private TbsActivityCenterGoodsMapper tbsActivityCenterGoodsMapper;
private TbsActivityMapper tbsActivityMapper; private TbsActivityMapper tbsActivityMapper;
private TbsBudgetLogMapper tbsBudgetLogMapper;
private TbsBudgetMapper tbsBudgetMapper;
@GetMapping("/toSyncBir") @GetMapping("/toSyncBir")
public R<?> syncBir(Long costId){ public R<?> syncBir(Long costId){
@ -80,6 +77,35 @@ public class BirActivityCenterGoodsController {
return R.ok(); return R.ok();
} }
/**
* 通过budgetCode更新所有费用的bir
* @param budgetCode
* @return
*/
@GetMapping("/toSyncBirbyBudgetCode")
public R<?> toSyncBirbyBudgetCode(String budgetCode){
List<TbsBudget> budgetList = tbsBudgetMapper.selectList(new LambdaQueryWrapper<TbsBudget>().eq(TbsBudget::getBudgetNumber,budgetCode));
if(budgetList.size()==1){
List<Long> costIds = tbsBudgetLogMapper.getBudgetCostIds(budgetList.get(0).getId());
if(CollectionUtil.isNotEmpty(costIds)){
for (Long costId : costIds) {
centerGoodsService.rebuildBir(Arrays.asList(costId));
}
}
}
return R.ok();
}
@GetMapping("/toSyncBirbyId")
public R<?> toSyncBirbyId(String costId){
List<TbsCostApply> list = tbsCostApplyService.listByIds(Arrays.asList(costId));
for (TbsCostApply costApply : list) {
centerGoodsService.rebuildBir(Arrays.asList(costApply.getId()));
}
return R.ok();
}
@GetMapping("/toSyncBirbyCode") @GetMapping("/toSyncBirbyCode")
public R<?> toSyncBirEcro(String costCode){ public R<?> toSyncBirEcro(String costCode){
List<TbsCostApply> list = tbsCostApplyService.list(new LambdaQueryWrapper<TbsCostApply>().eq(TbsCostApply::getCode,costCode)); List<TbsCostApply> list = tbsCostApplyService.list(new LambdaQueryWrapper<TbsCostApply>().eq(TbsCostApply::getCode,costCode));

5
src/main/java/com/qs/serve/modules/his/entity/HisUserSupplier.java

@ -10,6 +10,7 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import com.qs.serve.modules.bms.entity.BmsSupplier; import com.qs.serve.modules.bms.entity.BmsSupplier;
import com.qs.serve.modules.tag.entity.so.TagQuery;
import lombok.Data; import lombok.Data;
import org.hibernate.validator.constraints.Length; import org.hibernate.validator.constraints.Length;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
@ -164,6 +165,10 @@ public class HisUserSupplier implements Serializable {
@TableField(exist = false) @TableField(exist = false)
Double localX; Double localX;
/** 标签查询 */
@TableField(exist = false)
List<TagQuery> tagQueryList;
public BmsSupplier toSupplier(){ public BmsSupplier toSupplier(){
BmsSupplier bmsSupplier = new BmsSupplier(); BmsSupplier bmsSupplier = new BmsSupplier();
bmsSupplier.setId(this.getSupplierId()+""); bmsSupplier.setId(this.getSupplierId()+"");

2
src/main/java/com/qs/serve/modules/his/service/impl/HisUserSupplierServiceImpl.java

@ -8,6 +8,7 @@ import com.qs.serve.common.framework.redis.RedisService;
import com.qs.serve.common.model.consts.RedisCacheKeys; import com.qs.serve.common.model.consts.RedisCacheKeys;
import com.qs.serve.common.model.dto.PageVo; import com.qs.serve.common.model.dto.PageVo;
import com.qs.serve.common.model.dto.R; import com.qs.serve.common.model.dto.R;
import com.qs.serve.common.model.tag.TagFiledUtil;
import com.qs.serve.common.util.AuthContextUtils; import com.qs.serve.common.util.AuthContextUtils;
import com.qs.serve.common.util.CollectionUtil; import com.qs.serve.common.util.CollectionUtil;
import com.qs.serve.common.util.PageUtil; import com.qs.serve.common.util.PageUtil;
@ -84,6 +85,7 @@ public class HisUserSupplierServiceImpl extends ServiceImpl<HisUserSupplierMappe
if(usePage){ if(usePage){
PageUtil.startPage(); PageUtil.startPage();
} }
TagFiledUtil.HisSupplierPage(userSupplier);
return baseMapper.selectSupplierIdByQuery(userSupplier,lqw); return baseMapper.selectSupplierIdByQuery(userSupplier,lqw);
//return this.list(lqw).stream().map(a->a.getSupplierId()).collect(Collectors.toList()); //return this.list(lqw).stream().map(a->a.getSupplierId()).collect(Collectors.toList());
} }

42
src/main/java/com/qs/serve/modules/oms/entity/dto/SeeYonOrderItemDTO.java

@ -0,0 +1,42 @@
package com.qs.serve.modules.oms.entity.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
* @author YenHex
* @since 2024/8/14
*/
@Data
public class SeeYonOrderItemDTO {
/**
* 从表相关字段
* 产品编号 spuCode
* 产品名称 skuTitle
* 单品编码 skuAddCode
* 单品名称 skuCode
* 临期品编号 batchCode
* 产品分类 skuCategories
* 规格 specVal
* 备注 remark
* 重量 weight
* 体积 volume
* 价格 salesPrice
* 合计价格 totalPrice
*/
private String spuCode;
private String skuTitle;
private String skuAddCode;
private String skuCode;
private String batchCode;
private String skuCategories;
private String specVal;
private String remark;
private BigDecimal weight;
private BigDecimal volume;
private BigDecimal salesPrice;
private BigDecimal totalPrice;
}

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

@ -37,7 +37,7 @@ public enum TbsCostApplyState {
public static Boolean checkUseBudget(Integer state){ public static Boolean checkUseBudget(Integer state){
if(state==null){return null;} if(state==null){return null;}
int[] ints = new int[]{0,5,6,8}; int[] ints = new int[]{0,5,6,8,4};
for (int anInt : ints) { for (int anInt : ints) {
if(anInt==state){ if(anInt==state){
return false; return false;

7
src/main/java/com/qs/serve/modules/tbs/common/TbsSeeYonConst.java

@ -47,6 +47,13 @@ public interface TbsSeeYonConst {
} }
} }
/** 核销 */
class ExpiredOrderConf{
public static String Code(){
return DevEnvironmentConfig.isDev()?"ExpiredOrder_Test":"ExpiredOrder";
}
}
/** 预算申请 */ /** 预算申请 */
class BudgetApplyConf{ class BudgetApplyConf{
public static String Code(){ public static String Code(){

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

@ -130,6 +130,18 @@ public class TbsScheduleItemBudget implements Serializable {
@TableField(exist = false) @TableField(exist = false)
private BigDecimal unUsedBudgetAmount; private BigDecimal unUsedBudgetAmount;
/**
* 政策占用的预算
*/
@TableField(exist = false)
private BigDecimal sumPolicyAmount;
/**
* 退回的费用申请占用预算
*/
@TableField(exist = false)
private BigDecimal sumCostBackAmount;
@TableField(exist = false) @TableField(exist = false)
private Integer budgetConditionFlag; private Integer budgetConditionFlag;

11
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsCostTodoOperationServiceImpl.java

@ -19,6 +19,7 @@ import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService;
import com.qs.serve.modules.sys.entity.SysUser; import com.qs.serve.modules.sys.entity.SysUser;
import com.qs.serve.modules.sys.mapper.SysUserMapper; import com.qs.serve.modules.sys.mapper.SysUserMapper;
import com.qs.serve.modules.tbs.common.TbsCommonCheckState; import com.qs.serve.modules.tbs.common.TbsCommonCheckState;
import com.qs.serve.modules.tbs.common.TbsCostApplyState;
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; import com.qs.serve.modules.tbs.common.TbsSeeYonConst;
import com.qs.serve.modules.tbs.entity.TbsBudget; import com.qs.serve.modules.tbs.entity.TbsBudget;
import com.qs.serve.modules.tbs.entity.TbsCostApply; import com.qs.serve.modules.tbs.entity.TbsCostApply;
@ -62,6 +63,15 @@ public class TbsCostTodoOperationServiceImpl implements SeeYonOperationService {
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void submit(TbsSubmitToDoBo param){ public void submit(TbsSubmitToDoBo param){
TbsCostTodo costTodo = tbsCostTodoMapper.selectById(param.getId()); TbsCostTodo costTodo = tbsCostTodoMapper.selectById(param.getId());
TbsCostApply tbsCostApply = tbsCostApplyMapper.selectById(param.getId());
if(
!tbsCostApply.getChargeState().equals(TbsCostApplyState.State_2_actioning.getCode()) &&
!tbsCostApply.getChargeState().equals(TbsCostApplyState.State_3_finished.getCode())
){
Assert.throwEx("费用状态不支持");
}
String todoCode = costTodo.getTodoCode(); String todoCode = costTodo.getTodoCode();
String templateCode = this.getTemplateCode(); String templateCode = this.getTemplateCode();
SysUser sysUser = sysUserMapper.selectById(AuthContextUtils.getSysUserId()); SysUser sysUser = sysUserMapper.selectById(AuthContextUtils.getSysUserId());
@ -81,6 +91,7 @@ public class TbsCostTodoOperationServiceImpl implements SeeYonOperationService {
data.put("cmsLink",baseJumpUrl); data.put("cmsLink",baseJumpUrl);
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("jinE",tbsCostApply.getTotalActivityAmount());
BaseCreateProcessBo createProcess = new BaseCreateProcessBo(); BaseCreateProcessBo createProcess = new BaseCreateProcessBo();
createProcess.setTemplateCode(templateCode); createProcess.setTemplateCode(templateCode);

9
src/main/java/com/qs/serve/modules/tbs/service/impl/TbsScheduleItemBudgetServiceImpl.java

@ -255,6 +255,9 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl<TbsScheduleIte
// 费用使用金额 // 费用使用金额
List<TbsBudgetLogWithAmount> costUsedList = tbsBudgetLog2Mapper.getSumAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalCostOptFlag); List<TbsBudgetLogWithAmount> costUsedList = tbsBudgetLog2Mapper.getSumAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalCostOptFlag);
// 费用退回的金额
List<TbsBudgetLogWithAmount> costBackList = tbsBudgetLog2Mapper.getSumBackAmtInList(new ArrayList<>(budgetIds));
// 政策使用金额 // 政策使用金额
List<TbsBudgetLogWithAmount> policyUsedList = tbsBudgetLog2Mapper.getSumAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalPolicyOptFlag); List<TbsBudgetLogWithAmount> policyUsedList = tbsBudgetLog2Mapper.getSumAmtInList(new ArrayList<>(budgetIds), BudgetLogOptFlag.finalPolicyOptFlag);
@ -311,6 +314,12 @@ public class TbsScheduleItemBudgetServiceImpl extends ServiceImpl<TbsScheduleIte
break; break;
} }
} }
for (TbsBudgetLogWithAmount obj : costBackList) {
if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){
withAmount.setCostBackAmt(obj.getAmt().negate());
break;
}
}
for (TbsBudgetLogWithAmount obj : policyUsedList) { for (TbsBudgetLogWithAmount obj : policyUsedList) {
if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){ if(budgetId.equals(obj.getId())&&itemId.equals(obj.getItemid())){
withAmount.setPolicyUsingAmt(obj.getAmt()); withAmount.setPolicyUsingAmt(obj.getAmt());

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

@ -1205,6 +1205,7 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
} }
List<Object> subList = new ArrayList<>(); List<Object> subList = new ArrayList<>();
boolean hasCenter = false;
try { try {
List<TbsActivityCenter> activityCenter = activityCenterService.listByActivity(verification.getActivityId()); List<TbsActivityCenter> activityCenter = activityCenterService.listByActivity(verification.getActivityId());
for(TbsActivityCenter center : activityCenter){ for(TbsActivityCenter center : activityCenter){
@ -1215,17 +1216,20 @@ public class VtbVerificationServiceImpl extends ServiceImpl<VtbVerificationMappe
center.getCenterId(), center.getCenterId(),
center.getCenterName(), center.getCenterName(),
activity.getSupplierCode()); activity.getSupplierCode());
Assert.throwEx("成本中心缺失,请联系工作人员");
} }
if(costCenter.getChengBenZhongXin()==null){ if(costCenter==null){
costCenter.setChengBenZhongXin(center.getCenterName()); costCenter.setChengBenZhongXin(center.getCenterName());
costCenter.setChengBenZhongXinId(center.getCenterType()+"-"+center.getId()); costCenter.setChengBenZhongXinId(center.getCenterType()+"-"+center.getId());
} }
subList.add(costCenter); subList.add(costCenter);
hasCenter = true;
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
if (!hasCenter){
Assert.throwEx("成本中心获取异常,请联系IT负责人");
}
subList.addAll(subjectDTOList); subList.addAll(subjectDTOList);
data.put("sub",subList); data.put("sub",subList);
return data; return data;

35
src/main/java/com/qs/serve/modules/wx/common/conf/WxCpConfig.java

@ -0,0 +1,35 @@
package com.qs.serve.modules.wx.common.conf;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.api.impl.WxCpServiceImpl;
import org.springframework.context.annotation.Configuration;
/**
* 企业微信配置
* @author YenHex
* @since 2024/8/12
*/
@Slf4j
//@AllArgsConstructor
//@Configuration(proxyBeanMethods = false)
public class WxCpConfig {
private static WxCpConfig wxCpConfig;
private static WxCpService wxCpService;
public WxCpService wxCpService(){
if(wxCpService!=null){
return wxCpService;
}
//
WxCpService service = new WxCpServiceImpl();
// 挂载到静态类
WxCpConfig.wxCpService = service;
return service;
}
}

2
src/main/java/com/qs/serve/modules/wx/service/impl/WxUserServiceImpl.java

@ -90,8 +90,6 @@ public class WxUserServiceImpl extends ServiceImpl<WxUserMapper, WxUser> impleme
} }
@Override @Override
public WxUser getCurrentWxUser() { public WxUser getCurrentWxUser() {
return this.getCurrentWxUser(false); return this.getCurrentWxUser(false);

2
src/main/resources/log4j2.xml

@ -7,7 +7,7 @@
<!--变量配置--> <!--变量配置-->
<Properties> <Properties>
<property name="LOG_PATTERN" value="%d %highlight{%-5level}{ERROR=Bright RED, WARN=Bright Yellow, INFO=Bright Green, DEBUG=Bright Cyan, TRACE=Bright White} %style{[%t]}{bright,magenta} %style{%c{1.}.%M(%L)}{cyan}: %msg%n" /> <property name="LOG_PATTERN" value="%d %highlight{%-5level}{ERROR=Bright RED, WARN=Bright Yellow, INFO=Bright Green, DEBUG=Bright Cyan, TRACE=Bright White} %style{[%t]}{bright,magenta} %style{%c{1.}.%M(%L)}{cyan}: %msg%n" />
<property name="FILE_PATH" value="logs" /> <property name="FILE_PATH" value="home/logs" />
</Properties> </Properties>
<appenders> <appenders>

Loading…
Cancel
Save