Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 4 months ago
parent
commit
f1b3ab9ee3
  1. 42
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  2. 38
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  3. 191
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/processcomment/ProcessCommentService.java
  4. 7
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java
  5. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java
  6. 27
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewithapply/ScmVehRebateWithApplyService.java
  7. 1
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml

42
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -5940,34 +5940,44 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
asyncPushMessage(busSalesOrder, variables, ufVo);
} else {
try {
//查询销售订单详情
ResultBean<AppOrderDetailsVo> details = getSaleOrderDetails(bv.getBusinessSid());
AppOrderDetailsVo vo = details.getData();
// 锁定车辆的状态
if (BusSalesOrderConstantUtils.TypeEnum.EXISTING_CAR.getRemarks().equals(vo.getOrderType())) {
handleVehicleLock(bv, busSalesOrder);
}
// 合同处理
handleContract(bv, busSalesOrder);
busSalesOrder = fetchBySid(bv.getBusinessSid());
// 处理车辆的状态更新
updateVehicleState(bv, busSalesOrder);
// 贷款相关操作
handleLoan(bv, busSalesOrder, vo);
// 采购渠道推送
handlePurchaseChannelPush(busSalesOrder);
// 更新办结日期
updateClosingDate(bv, busSalesOrder);
// 异步消息推送
asyncPushMessage(busSalesOrder);
} catch (Exception e) {
log.error("销售订单处理失败,错误信息:", e);
log.error("销售订单处理失败1,错误信息:", e);
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
BusSalesOrder finalBusSalesOrder = busSalesOrder;
Future future1 = pool.submit(() -> {
//查询销售订单详情
ResultBean<AppOrderDetailsVo> details = getSaleOrderDetails(bv.getBusinessSid());
AppOrderDetailsVo vo = details.getData();
// 锁定车辆的状态
if (BusSalesOrderConstantUtils.TypeEnum.EXISTING_CAR.getRemarks().equals(vo.getOrderType())) {
handleVehicleLock(bv, finalBusSalesOrder);
}
// 贷款相关操作
handleLoan(bv, finalBusSalesOrder, vo);
});
} catch (Exception e) {
e.printStackTrace();
log.error("销售订单处理失败2,错误信息:", e);
}
}

38
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -330,10 +330,12 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// 将 Set<String> 转换为以逗号分隔的字符串
String assigneeIdsStr = String.join(",", assigneeIds);
// 远程调用批量查询用户信息
Map<String, SysUserVo> userMap = sysUserFeign.fetchBySids(assigneeIdsStr).getData().stream()
.collect(Collectors.toMap(SysUserVo::getSid, user -> user));
Map<String, SysUserVo> userMap = new HashMap<>();
if(StringUtils.isNotBlank(assigneeIdsStr)){
// 远程调用批量查询用户信息
userMap = sysUserFeign.fetchBySids(assigneeIdsStr).getData().stream()
.collect(Collectors.toMap(SysUserVo::getSid, user -> user));
}
// 直接查询所有流程实例评论
List<Comment> commentList = taskService.getProcessInstanceComments(procInsId);
@ -345,6 +347,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
List<FlowTask> finalHisFlowList = Collections.synchronizedList(hisFlowList);
// 使用 parallelStream 前先进行 null 检查和过滤
Map<String, SysUserVo> finalUserMap = userMap;
hisFlowList = list.parallelStream()
.filter(histIns -> histIns != null && histIns.getTaskId() != null) // 过滤掉 histIns 或 histIns.getTaskId() 为 null 的元素
.map(histIns -> {
@ -366,8 +369,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTask.setProcessEndTime(processInstance.get("END_TIME_") == null ? "" : "end");
// 处理审批人员
if (StringUtils.isNotBlank(histIns.getAssignee()) && userMap.containsKey(histIns.getAssignee())) {
SysUserVo user = userMap.get(histIns.getAssignee());
if (StringUtils.isNotBlank(histIns.getAssignee()) && finalUserMap.containsKey(histIns.getAssignee())) {
SysUserVo user = finalUserMap.get(histIns.getAssignee());
if (user != null) {
TaskUserInfo taskUserInfo = new TaskUserInfo();
taskUserInfo.setAssigneeName(user.getName());
@ -386,7 +389,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if ("4".equals(type)) { // 加签审批意见
FlowTask flowTask1 = new FlowTask();
String userSid = comment.getUserId();
SysUserVo user = userMap.get(userSid);
SysUserVo user = finalUserMap.get(userSid);
TaskUserInfo taskUserInfo = new TaskUserInfo();
taskUserInfo.setAssigneeName(user != null ? user.getName() : "");
@ -2418,17 +2421,18 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
Map<String, Object> map = flowableQuery.getMap();
boolean taskKeyTrue = false;
List<FlowElement> flowElements = processService.calApprovePath("", modelId, map);
// 过滤空的节点ID
List<FlowElement> collect = flowElements.stream().filter(item -> item.getId().length() > 0).collect(Collectors.toList());
for (int i = 0; i < collect.size(); i++) {
Map<String, Object> itemMap = new HashMap<>();
FlowElement item = collect.get(i);
if (StringUtils.isBlank(flowableQuery.getTaskDefKey())) {
log.info("flowElement:{}", item);
log.info("nodeName:{}", item.getName());
// log.info("flowElement:{}", item);
// log.info("nodeName:{}", item.getName());
itemMap.put("nodeName", item.getName());
log.info("nodeId:{}", item.getId());
// log.info("nodeId:{}", item.getId());
itemMap.put("nodeId", item.getId());
String s = JSON.toJSONString(item);
/* String s = JSON.toJSONString(item);
JSONObject jsonObject = JSONObject.parseObject(s);
log.info("item:{}", jsonObject);
Object candidateGroups = jsonObject.get("candidateGroups");
@ -2439,7 +2443,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if (candidateGroups_arr.size() > 0) {
log.info("candidateGroups_sid:{}", candidateGroups_arr.get(0));
}
log.info("candidateGroups:{}", candidateGroups_arr);
log.info("candidateGroups:{}", candidateGroups_arr);*/
list.add(itemMap);
} else {
if (flowableQuery.getTaskDefKey().equals(item.getId())) {
@ -2447,12 +2451,12 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
continue;
}
if (taskKeyTrue) {
log.info("flowElement:{}", item);
log.info("nodeName:{}", item.getName());
// log.info("flowElement:{}", item);
// log.info("nodeName:{}", item.getName());
itemMap.put("nodeName", item.getName());
log.info("nodeId:{}", item.getId());
// log.info("nodeId:{}", item.getId());
itemMap.put("nodeId", item.getId());
String s = JSON.toJSONString(item);
/* String s = JSON.toJSONString(item);
JSONObject jsonObject = JSONObject.parseObject(s);
log.info("item:{}", jsonObject);
Object candidateGroups = jsonObject.get("candidateGroups");
@ -2463,7 +2467,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if (candidateGroups_arr.size() > 0) {
log.info("candidateGroups_sid:{}", candidateGroups_arr.get(0));
}
log.info("candidateGroups:{}", candidateGroups_arr);
log.info("candidateGroups:{}", candidateGroups_arr);*/
list.add(itemMap);
}
}

191
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/processcomment/ProcessCommentService.java

@ -42,9 +42,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
/**
@ -62,81 +60,122 @@ import java.util.stream.Collectors;
*/
@Service
public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapper, ProcessComment> {
@Resource
private SysUserFeign sysUserFeign;
@Resource
private FileUploadComponent fileUploadComponent;
private QueryWrapper<ProcessComment> createQueryWrapper(ProcessCommentQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<ProcessComment> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<ProcessCommentVo> listPageVo(PagerQuery<ProcessCommentQuery> pq) {
ProcessCommentQuery query = pq.getParams();
QueryWrapper<ProcessComment> qw = createQueryWrapper(query);
IPage<ProcessComment> page = PagerUtil.queryToPage(pq);
IPage<ProcessCommentVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<ProcessCommentVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(ProcessCommentDto dto){
@Resource
private SysUserFeign sysUserFeign;
@Resource
private FileUploadComponent fileUploadComponent;
private QueryWrapper<ProcessComment> createQueryWrapper(ProcessCommentQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<ProcessComment> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<ProcessCommentVo> listPageVo(PagerQuery<ProcessCommentQuery> pq) {
ProcessCommentQuery query = pq.getParams();
QueryWrapper<ProcessComment> qw = createQueryWrapper(query);
IPage<ProcessComment> page = PagerUtil.queryToPage(pq);
IPage<ProcessCommentVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<ProcessCommentVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(ProcessCommentDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
dto.setSid(UUID.randomUUID().toString());
baseMapper.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(ProcessCommentDto dto){
ProcessComment entity = new ProcessComment();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(ProcessCommentDto dto){
String dtoSid = dto.getSid();
dto.setSid(UUID.randomUUID().toString());
baseMapper.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(ProcessCommentDto dto) {
ProcessComment entity = new ProcessComment();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(ProcessCommentDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
ProcessComment entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public ProcessCommentDetailsVo fetchDetailsVoBySid(String sid){
ProcessComment entity = fetchBySid(sid);
ProcessCommentDetailsVo vo = new ProcessCommentDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<ProcessCommentVo> getCommentList(String processId) {
List<ProcessCommentVo> commentList = baseMapper.getCommentList(processId);
for(ProcessCommentVo histIns:commentList){
if(StringUtils.isNotBlank(histIns.getProcessFile())){
List<String> processFile = Arrays.asList(histIns.getProcessFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
histIns.setFileList(processFile);
}
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getReviewerSid());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
List<SysUserVo> data1 = sysUserVoResultBean.getData();
for( SysUserVo data:data1){
AppUserVo taskUserInfo=new AppUserVo();
taskUserInfo.setAssigneeName(data.getName());
if(!com.yxt.common.base.utils.StringUtils.isBlank(data.getHeadImage())){
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() +data.getHeadImage());
}
histIns.setTaskUserInfo(taskUserInfo);
}
}
return commentList;
}
public List<String> selectByIdAndComment(String comment, String instanceId) {
return baseMapper.selectByIdAndComment(comment, instanceId);
}
}
ProcessComment entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public ProcessCommentDetailsVo fetchDetailsVoBySid(String sid) {
ProcessComment entity = fetchBySid(sid);
ProcessCommentDetailsVo vo = new ProcessCommentDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public List<ProcessCommentVo> getCommentList(String processId) {
List<ProcessCommentVo> commentList = baseMapper.getCommentList(processId);
// 2. 获取所有 reviewerSid 批量查询用户信息
Set<String> reviewerSids = commentList.stream()
.filter(c -> StringUtils.isNotBlank(c.getReviewerSid()))
.map(ProcessCommentVo::getReviewerSid)
.collect(Collectors.toSet());
// 批量查询所有评论中的 reviewerSid 对应的用户信息
Map<String, SysUserVo> userMap = new HashMap<>();
// 将 Set<String> 转换为以逗号分隔的字符串
String assigneeIdsStr = String.join(",", reviewerSids);
if (StringUtils.isNotBlank(assigneeIdsStr)) {
userMap = sysUserFeign.fetchBySids(assigneeIdsStr).getData().stream()
.collect(Collectors.toMap(SysUserVo::getSid, user -> user));
}
// 3. 遍历 commentList,填充文件列表和用户信息
for (ProcessCommentVo histIns : commentList) {
// 处理文件列表
if (StringUtils.isNotBlank(histIns.getProcessFile())) {
List<String> processFile = Arrays.asList(histIns.getProcessFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
histIns.setFileList(processFile);
}
// 处理用户信息
SysUserVo user = userMap.get(histIns.getReviewerSid());
if (user != null) {
AppUserVo taskUserInfo = new AppUserVo();
taskUserInfo.setAssigneeName(user.getName());
if (StringUtils.isNotBlank(user.getHeadImage())) {
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + user.getHeadImage());
}
histIns.setTaskUserInfo(taskUserInfo);
}
}
return commentList;
}
public List<ProcessCommentVo> getCommentListOld(String processId) {
List<ProcessCommentVo> commentList = baseMapper.getCommentList(processId);
for (ProcessCommentVo histIns : commentList) {
if (StringUtils.isNotBlank(histIns.getProcessFile())) {
List<String> processFile = Arrays.asList(histIns.getProcessFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
histIns.setFileList(processFile);
}
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getReviewerSid());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
List<SysUserVo> data1 = sysUserVoResultBean.getData();
for (SysUserVo data : data1) {
AppUserVo taskUserInfo = new AppUserVo();
taskUserInfo.setAssigneeName(data.getName());
if (!com.yxt.common.base.utils.StringUtils.isBlank(data.getHeadImage())) {
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + data.getHeadImage());
}
histIns.setTaskUserInfo(taskUserInfo);
}
}
return commentList;
}
public List<String> selectByIdAndComment(String comment, String instanceId) {
return baseMapper.selectByIdAndComment(comment, instanceId);
}
}

7
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java

@ -48,6 +48,7 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.comparators.NullComparator;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -75,6 +76,7 @@ import java.util.stream.Collectors;
@RestController
@RequestMapping("v1/flow")
@Api(tags = "业务系统中业务和工作流相关操作")
@Slf4j
public class FlowableRest implements FlowableFeign {
@Autowired
@ -166,6 +168,7 @@ public class FlowableRest implements FlowableFeign {
@Override
public ResultBean<List<PCHistTaskListAndCommentList>> flowRecordAndComment(String procInsId, String deployId) {
long startTimes = System.currentTimeMillis(); // 记录开始时间
// 并行调用外部服务
CompletableFuture<ResultBean<com.yxt.anrui.flowable.api.flowtask.FlowRecordVo>> flowRecordFuture =
CompletableFuture.supplyAsync(() -> flowableService.flowRecord(procInsId, deployId));
@ -253,7 +256,7 @@ public class FlowableRest implements FlowableFeign {
stringObjectMap.put("taskName", f.get("nodeName").toString());
stringObjectMap.put("finishTime", null);
stringObjectMap.put("createTime", "");
stringObjectMap.put("taskUserInfos", new ArrayList<>());
stringObjectMap.put("taskUserInfos", Collections.emptyList());
a.setFlowableRecordVo(stringObjectMap);
a.setState("3");
@ -266,6 +269,8 @@ public class FlowableRest implements FlowableFeign {
// 返回结果
ResultBean<List<PCHistTaskListAndCommentList>> resultBean = new ResultBean<List<PCHistTaskListAndCommentList>>().success();
resultBean.setData(flowList);
long endTime = System.currentTimeMillis();
log.info("流程记录接口耗时 {} ms", endTime - startTimes);
return resultBean;
}

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loansettleapply/LoanSettleApplyService.java

@ -3566,7 +3566,7 @@ public class LoanSettleApplyService extends MybatisBaseService<LoanSettleApplyMa
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData();
qw.eq("bs.useOrgSid", useOrgSid);
}
qw.apply("bv.settleState = '0'OR (bv.settleState = '3' AND date_format (bv.settleApplyDate,'%Y-%m-%d') < CURDATE())");
qw.apply("(bv.settleState = '0'OR (bv.settleState = '3' AND date_format (bv.settleApplyDate,'%Y-%m-%d') < CURDATE()))");
//回购状态,回购申请
if (StringUtils.isNotBlank(query.getType())) {
if (query.getType().equals("1")) {

27
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatewithapply/ScmVehRebateWithApplyService.java

@ -30,13 +30,17 @@ import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutFeign;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.buscenter.api.busdeliveredapply.BusDeliveredApplyFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusOrderAndVehInfo;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.api.common.BusSalesOrderConstantUtils;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
@ -86,6 +90,7 @@ import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -93,6 +98,7 @@ import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import static java.util.Comparator.comparing;
@ -675,12 +681,33 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService<ScmVehRebat
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
/*
for (String vehRebateSid : vehRebateSids) {
scmVehRebateService.updateState(vehRebateSid, 2);
scmVehRebateService.updateWithholdingDateBySid(vehRebateSid, scmVehRebateWithApply.getWithApply());
}
//推送单车返利预提凭证
pushVehRebateWithVoucher(bv.getBusinessSid());
*/
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
ScmVehRebateWithApply finalScmVehRebateWithApply = scmVehRebateWithApply;
Future future1 = pool.submit(() -> {
for (String vehRebateSid : vehRebateSids) {
scmVehRebateService.updateState(vehRebateSid, 2);
scmVehRebateService.updateWithholdingDateBySid(vehRebateSid, finalScmVehRebateWithApply.getWithApply());
}
//推送单车返利预提凭证
pushVehRebateWithVoucher(bv.getBusinessSid());
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
//极光推送
scmVehRebateWithApply = fetchBySid(bv.getBusinessSid());

1
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsreceiptbilldetail/WmsReceiptBillDetailMapper.xml

@ -9,6 +9,7 @@
<select id="getDetailsInit" resultType="com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetailDto2">
select wrbd.goodsSkuSid,
wrbd.goodsSpuSid,
wrbd.goodsSkuTitle,
wrbd.goodsSkuCode,
wrbd.goodsSkuOwnSpec,

Loading…
Cancel
Save