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. 34
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  3. 65
      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); asyncPushMessage(busSalesOrder, variables, ufVo);
} else { } else {
try { 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); handleContract(bv, busSalesOrder);
busSalesOrder = fetchBySid(bv.getBusinessSid()); busSalesOrder = fetchBySid(bv.getBusinessSid());
// 处理车辆的状态更新 // 处理车辆的状态更新
updateVehicleState(bv, busSalesOrder); updateVehicleState(bv, busSalesOrder);
// 贷款相关操作
handleLoan(bv, busSalesOrder, vo);
// 采购渠道推送 // 采购渠道推送
handlePurchaseChannelPush(busSalesOrder); handlePurchaseChannelPush(busSalesOrder);
// 更新办结日期 // 更新办结日期
updateClosingDate(bv, busSalesOrder); updateClosingDate(bv, busSalesOrder);
// 异步消息推送 // 异步消息推送
asyncPushMessage(busSalesOrder); asyncPushMessage(busSalesOrder);
} catch (Exception e) { } 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);
} }
} }

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

65
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 org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Arrays; import java.util.*;
import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -66,6 +64,7 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp
private SysUserFeign sysUserFeign; private SysUserFeign sysUserFeign;
@Resource @Resource
private FileUploadComponent fileUploadComponent; private FileUploadComponent fileUploadComponent;
private QueryWrapper<ProcessComment> createQueryWrapper(ProcessCommentQuery query) { private QueryWrapper<ProcessComment> createQueryWrapper(ProcessCommentQuery query) {
// todo: 这里根据具体业务调整查询条件 // todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName())); // 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
@ -82,7 +81,7 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp
return p; return p;
} }
public void saveOrUpdateDto(ProcessCommentDto dto){ public void saveOrUpdateDto(ProcessCommentDto dto) {
String dtoSid = dto.getSid(); String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) { if (StringUtils.isBlank(dtoSid)) {
dto.setSid(UUID.randomUUID().toString()); dto.setSid(UUID.randomUUID().toString());
@ -92,13 +91,13 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp
this.updateByDto(dto); this.updateByDto(dto);
} }
public void insertByDto(ProcessCommentDto dto){ public void insertByDto(ProcessCommentDto dto) {
ProcessComment entity = new ProcessComment(); ProcessComment entity = new ProcessComment();
BeanUtil.copyProperties(dto, entity, "id", "sid"); BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity); baseMapper.insert(entity);
} }
public void updateByDto(ProcessCommentDto dto){ public void updateByDto(ProcessCommentDto dto) {
String dtoSid = dto.getSid(); String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) { if (StringUtils.isBlank(dtoSid)) {
return; return;
@ -108,7 +107,7 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp
baseMapper.updateById(entity); baseMapper.updateById(entity);
} }
public ProcessCommentDetailsVo fetchDetailsVoBySid(String sid){ public ProcessCommentDetailsVo fetchDetailsVoBySid(String sid) {
ProcessComment entity = fetchBySid(sid); ProcessComment entity = fetchBySid(sid);
ProcessCommentDetailsVo vo = new ProcessCommentDetailsVo(); ProcessCommentDetailsVo vo = new ProcessCommentDetailsVo();
BeanUtil.copyProperties(entity, vo); BeanUtil.copyProperties(entity, vo);
@ -117,18 +116,58 @@ public class ProcessCommentService extends MybatisBaseService<ProcessCommentMapp
public List<ProcessCommentVo> getCommentList(String processId) { public List<ProcessCommentVo> getCommentList(String processId) {
List<ProcessCommentVo> commentList = baseMapper.getCommentList(processId); List<ProcessCommentVo> commentList = baseMapper.getCommentList(processId);
for(ProcessCommentVo histIns:commentList){ // 2. 获取所有 reviewerSid 批量查询用户信息
if(StringUtils.isNotBlank(histIns.getProcessFile())){ 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()); List<String> processFile = Arrays.asList(histIns.getProcessFile().split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
histIns.setFileList(processFile); histIns.setFileList(processFile);
} }
ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getReviewerSid());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee())); ResultBean<List<SysUserVo>> sysUserVoResultBean = sysUserFeign.fetchBySids(histIns.getReviewerSid());// sysUserService.selectUserById(Long.parseLong(histIns.getAssignee()));
List<SysUserVo> data1 = sysUserVoResultBean.getData(); List<SysUserVo> data1 = sysUserVoResultBean.getData();
for( SysUserVo data:data1){ for (SysUserVo data : data1) {
AppUserVo taskUserInfo=new AppUserVo(); AppUserVo taskUserInfo = new AppUserVo();
taskUserInfo.setAssigneeName(data.getName()); taskUserInfo.setAssigneeName(data.getName());
if(!com.yxt.common.base.utils.StringUtils.isBlank(data.getHeadImage())){ if (!com.yxt.common.base.utils.StringUtils.isBlank(data.getHeadImage())) {
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() +data.getHeadImage()); taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() + data.getHeadImage());
} }
histIns.setTaskUserInfo(taskUserInfo); histIns.setTaskUserInfo(taskUserInfo);
} }

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.result.ResultBean;
import com.yxt.common.core.vo.PagerVo; import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.comparators.NullComparator; import org.apache.commons.collections4.comparators.NullComparator;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@ -75,6 +76,7 @@ import java.util.stream.Collectors;
@RestController @RestController
@RequestMapping("v1/flow") @RequestMapping("v1/flow")
@Api(tags = "业务系统中业务和工作流相关操作") @Api(tags = "业务系统中业务和工作流相关操作")
@Slf4j
public class FlowableRest implements FlowableFeign { public class FlowableRest implements FlowableFeign {
@Autowired @Autowired
@ -166,6 +168,7 @@ public class FlowableRest implements FlowableFeign {
@Override @Override
public ResultBean<List<PCHistTaskListAndCommentList>> flowRecordAndComment(String procInsId, String deployId) { public ResultBean<List<PCHistTaskListAndCommentList>> flowRecordAndComment(String procInsId, String deployId) {
long startTimes = System.currentTimeMillis(); // 记录开始时间
// 并行调用外部服务 // 并行调用外部服务
CompletableFuture<ResultBean<com.yxt.anrui.flowable.api.flowtask.FlowRecordVo>> flowRecordFuture = CompletableFuture<ResultBean<com.yxt.anrui.flowable.api.flowtask.FlowRecordVo>> flowRecordFuture =
CompletableFuture.supplyAsync(() -> flowableService.flowRecord(procInsId, deployId)); CompletableFuture.supplyAsync(() -> flowableService.flowRecord(procInsId, deployId));
@ -253,7 +256,7 @@ public class FlowableRest implements FlowableFeign {
stringObjectMap.put("taskName", f.get("nodeName").toString()); stringObjectMap.put("taskName", f.get("nodeName").toString());
stringObjectMap.put("finishTime", null); stringObjectMap.put("finishTime", null);
stringObjectMap.put("createTime", ""); stringObjectMap.put("createTime", "");
stringObjectMap.put("taskUserInfos", new ArrayList<>()); stringObjectMap.put("taskUserInfos", Collections.emptyList());
a.setFlowableRecordVo(stringObjectMap); a.setFlowableRecordVo(stringObjectMap);
a.setState("3"); a.setState("3");
@ -266,6 +269,8 @@ public class FlowableRest implements FlowableFeign {
// 返回结果 // 返回结果
ResultBean<List<PCHistTaskListAndCommentList>> resultBean = new ResultBean<List<PCHistTaskListAndCommentList>>().success(); ResultBean<List<PCHistTaskListAndCommentList>> resultBean = new ResultBean<List<PCHistTaskListAndCommentList>>().success();
resultBean.setData(flowList); resultBean.setData(flowList);
long endTime = System.currentTimeMillis();
log.info("流程记录接口耗时 {} ms", endTime - startTimes);
return resultBean; 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(); String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData();
qw.eq("bs.useOrgSid", useOrgSid); 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 (StringUtils.isNotBlank(query.getType())) {
if (query.getType().equals("1")) { 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.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; 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.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign; import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutFeign; import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutFeign;
import com.yxt.anrui.base.common.utils.Rule; import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.buscenter.api.busdeliveredapply.BusDeliveredApplyFeign; 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.BusOrderAndVehInfo;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; 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.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo; import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordSourceLCVo;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign; 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.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign; import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -93,6 +98,7 @@ import java.math.BigDecimal;
import java.text.ParseException; import java.text.ParseException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static java.util.Comparator.comparing; import static java.util.Comparator.comparing;
@ -675,12 +681,33 @@ public class ScmVehRebateWithApplyService extends MybatisBaseService<ScmVehRebat
UpdateFlowFieldVo ufVo = resultBean.getData(); UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData())); updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) { if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
/*
for (String vehRebateSid : vehRebateSids) { for (String vehRebateSid : vehRebateSids) {
scmVehRebateService.updateState(vehRebateSid, 2); scmVehRebateService.updateState(vehRebateSid, 2);
scmVehRebateService.updateWithholdingDateBySid(vehRebateSid, scmVehRebateWithApply.getWithApply()); scmVehRebateService.updateWithholdingDateBySid(vehRebateSid, scmVehRebateWithApply.getWithApply());
} }
//推送单车返利预提凭证 //推送单车返利预提凭证
pushVehRebateWithVoucher(bv.getBusinessSid()); 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 { } else {
//极光推送 //极光推送
scmVehRebateWithApply = fetchBySid(bv.getBusinessSid()); 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 id="getDetailsInit" resultType="com.yxt.wms.biz.inventory.wmsreceiptbilldetail.WmsReceiptBillDetailDto2">
select wrbd.goodsSkuSid, select wrbd.goodsSkuSid,
wrbd.goodsSpuSid,
wrbd.goodsSkuTitle, wrbd.goodsSkuTitle,
wrbd.goodsSkuCode, wrbd.goodsSkuCode,
wrbd.goodsSkuOwnSpec, wrbd.goodsSkuOwnSpec,

Loading…
Cancel
Save