Browse Source

Merge remote-tracking branch 'origin/master'

master
God 2 years ago
parent
commit
b9c52ad85b
  1. 10
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyDetailsVo.java
  2. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyQuery.java
  3. 57
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackageapply/BaseDiscountpackageApplyService.java
  4. 15
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java
  5. 53
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryDto.java
  6. 37
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryVo.java
  7. 19
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailVo.java
  8. 12
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java
  9. 8
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeignFallback.java
  10. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitDto.java
  11. 6
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitListDto.java
  12. 16
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverQuery.java
  13. 29
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverVos.java
  14. 34
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/GcVinBillDto.java
  15. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/app/AppDeliveryConQuery.java
  16. 18
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryDto.java
  17. 14
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryVo.java
  18. 7
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsVo.java
  19. 5
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml
  20. 10
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverRest.java
  21. 375
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java
  22. 25
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverwait/BusHandoverWaitService.java
  23. 45
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java
  24. 10
      anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagehandover.vue
  25. 10
      anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagetobehandover.vue
  26. 238
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  27. 59
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  28. 26
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java
  29. 26
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java
  30. 12
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java
  31. 22
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java
  32. 17
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java
  33. 28
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java
  34. 18
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java
  35. 7
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml
  36. 29
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java
  37. 30
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java
  38. 10
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageApplyDetailsVo.java
  39. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageQuery.java
  40. 25
      doc/databases/portal_tables.sql

10
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyDetailsVo.java

@ -92,7 +92,13 @@ public class BaseDiscountpackageApplyDetailsVo implements Vo {
private String orgSidPath; // 申请人组织路径 private String orgSidPath; // 申请人组织路径
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remarks; // 备注 private String remarks; // 备注
// @ApiModelProperty("合同sid") @ApiModelProperty("销售订单sid")
private String saleOrderSid; //
@ApiModelProperty("ModelOrgPath")
private String modelOrgPath; //
private String modelSid; //
private String configSid; //
// @ApiModelProperty("合同sid")
// private String contractSid; // private String contractSid;
// @ApiModelProperty("车型sid") // @ApiModelProperty("车型sid")
// private String modelSid; // private String modelSid;
@ -108,6 +114,8 @@ public class BaseDiscountpackageApplyDetailsVo implements Vo {
private String procInsId; // 流程实例的sid private String procInsId; // 流程实例的sid
@ApiModelProperty("台数") @ApiModelProperty("台数")
private String carNumber; // 台数 private String carNumber; // 台数
@ApiModelProperty("订单优惠包总价值")
private String discountAllPrice; // 订单优惠包总价值
// @ApiModelProperty("成交价") // @ApiModelProperty("成交价")
// private String price; // private String price;
} }

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyQuery.java

@ -62,7 +62,7 @@ public class BaseDiscountpackageApplyQuery implements Query {
@ApiModelProperty("组织机构sid") @ApiModelProperty("组织机构sid")
private String orgPath; private String orgPath;
@ApiModelProperty("合同编号 客户名称") @ApiModelProperty("合同编号 客户名称")
private String names; private String name;
@ApiModelProperty("申请日期") @ApiModelProperty("申请日期")
private String date; private String date;
@ApiModelProperty("1待办 2已办") @ApiModelProperty("1待办 2已办")

57
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackageapply/BaseDiscountpackageApplyService.java

@ -48,6 +48,10 @@ import com.yxt.anrui.base.biz.commoncontract.CommonContractService;
import com.yxt.anrui.buscenter.api.busdiscountpackagehandover.BusDiscountpackageHandoverDto; import com.yxt.anrui.buscenter.api.busdiscountpackagehandover.BusDiscountpackageHandoverDto;
import com.yxt.anrui.buscenter.api.busdiscountpackagehandover.BusDiscountpackageHandoverFeign; import com.yxt.anrui.buscenter.api.busdiscountpackagehandover.BusDiscountpackageHandoverFeign;
import com.yxt.anrui.buscenter.api.busdiscountpackagehandoverlist.BusDiscountpackageHandoverListDto; import com.yxt.anrui.buscenter.api.busdiscountpackagehandoverlist.BusDiscountpackageHandoverListDto;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderdiscount.BusSalesOrderDiscountFeign;
import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountListVo;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign; import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo; import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
@ -74,6 +78,8 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -115,6 +121,10 @@ public class BaseDiscountpackageApplyService extends MybatisBaseService<BaseDisc
private SysStaffinfoFeign sysStaffinfoFeign; private SysStaffinfoFeign sysStaffinfoFeign;
@Autowired @Autowired
private SysOrganizationFeign sysOrganizationFeign; private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private BusSalesOrderDiscountFeign busSalesOrderDiscountFeign;
@Autowired
private BusSalesOrderFeign busSalesOrderFeign;
private QueryWrapper<BaseDiscountpackageApply> createQueryWrapper(BaseDiscountpackageApplyQuery query) { private QueryWrapper<BaseDiscountpackageApply> createQueryWrapper(BaseDiscountpackageApplyQuery query) {
// todo: 这里根据具体业务调整查询条件 // todo: 这里根据具体业务调整查询条件
@ -134,18 +144,26 @@ public class BaseDiscountpackageApplyService extends MybatisBaseService<BaseDisc
qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (applyDate,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')"). qw.apply(StringUtils.isNotEmpty(createStartTime), "date_format (applyDate,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(createEndTime), "date_format (applyDate,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" apply(StringUtils.isNotEmpty(createEndTime), "date_format (applyDate,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
); );
if (StringUtils.isNotBlank(query.getNames())) { if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("contractId", query.getNames()).or().like("customerName", query.getNames())); qw.and(wrapper -> wrapper.like("contractId", query.getName()).or().like("customerName", query.getName()));
} }
if (StringUtils.isNotBlank(query.getType())) { if (StringUtils.isNotBlank(query.getType())) {
if ("2".equals(query.getType())) { if ("2".equals(query.getType())) {
qw.and(wrapper -> wrapper.ne("nodeState", "待提交").ne("nodeState", "发起申请")); qw.and(wrapper -> wrapper.ne("nodeState", "待提交"));
} }
if ("1".equals(query.getType())) { if ("1".equals(query.getType())) {
qw.and(wrapper -> wrapper.eq("nodeState", "待提交").or().eq("nodeState", "发起申请")); qw.and(wrapper -> wrapper.eq("nodeState", "待提交"));
} }
} }
qw.apply(StringUtils.isNotEmpty(query.getDate()), "date_format (applyDate,'%Y-%m-%d') = date_format('" + query.getDate() + "','%Y-%m-%d')"); if (StringUtils.isNotBlank(query.getDate())) {
String date = query.getDate();
String[] sArray = date.split("至");
String start = sArray[0];
String end = sArray[1];
qw.apply(StringUtils.isNotEmpty(start), "date_format (applyDate,'%Y-%m-%d') >= date_format('" + start + "','%Y-%m-%d')").
apply(StringUtils.isNotEmpty(end), "date_format (applyDate,'%Y-%m-%d') <= date_format('" + end + "','%Y-%m-%d')"
);
}
qw.orderByDesc("applyDate"); qw.orderByDesc("applyDate");
return qw; return qw;
} }
@ -215,6 +233,35 @@ public class BaseDiscountpackageApplyService extends MybatisBaseService<BaseDisc
vo.setCarNumber(entity.getNumber()); vo.setCarNumber(entity.getNumber());
vo.setOrgPath(entity.getOrgSidPath()); vo.setOrgPath(entity.getOrgSidPath());
vo.setProcInsId(entity.getProcInstId()); vo.setProcInsId(entity.getProcInstId());
if (StringUtils.isNotBlank(entity.getContractId())) {
CommonContract contract = commonContractService.selectByNo(entity.getContractId()).getData();
if (null != contract) {
if (StringUtils.isNotBlank(contract.getBusSid())) {
vo.setSaleOrderSid(contract.getBusSid());
}
if (StringUtils.isNotBlank(contract.getModelSid())) {
vo.setModelSid(contract.getModelSid());
}
if (StringUtils.isNotBlank(contract.getConfigSid())) {
vo.setConfigSid(contract.getConfigSid());
}
}
}
if (StringUtils.isNotBlank(vo.getSaleOrderSid())) {
List<AppBusSalesOrderDiscountListVo> discountListVos = busSalesOrderDiscountFeign.getDiscountList(vo.getSaleOrderSid()).getData();
discountListVos.removeAll(Collections.singleton(null));
if (!discountListVos.isEmpty()) {
int sum = discountListVos.stream().map(AppBusSalesOrderDiscountListVo::getTotalPrice).collect(Collectors.toList()).stream().mapToInt(Integer::parseInt).sum();
vo.setDiscountAllPrice(String.valueOf(sum));
} else {
vo.setDiscountAllPrice("0");
}
BusSalesOrderDetailsVo orderDetailsVo = busSalesOrderFeign.fetchDetailsBySid(vo.getSaleOrderSid()).getData();
if (null != orderDetailsVo) {
String orgSidPath = orderDetailsVo.getOrgSidPath();
vo.setModelOrgPath(orgSidPath);
}
}
//根据优惠包申请sid查询对应优惠包列表 //根据优惠包申请sid查询对应优惠包列表
List<BaseDiscountpackagelistDto> dtoList = baseDiscountpackagelistService.fetchDetailsByDiscountSid(sid); List<BaseDiscountpackagelistDto> dtoList = baseDiscountpackagelistService.fetchDetailsByDiscountSid(sid);
vo.setDiscountPackageList(dtoList); vo.setDiscountPackageList(dtoList);

15
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java

@ -2523,28 +2523,29 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
if (StringUtils.isNotBlank(params.getNames())) { if (StringUtils.isNotBlank(params.getNames())) {
qw.and(wrapper -> wrapper.like("contractNo", params.getNames()).or().like("partyB", params.getNames())); qw.and(wrapper -> wrapper.like("contractNo", params.getNames()).or().like("partyB", params.getNames()));
} }
qw.orderByDesc("createDate");
IPage<CommonContract> page = PagerUtil.queryToPage(query); IPage<CommonContract> page = PagerUtil.queryToPage(query);
IPage<AppCommonContractListVo> pagging = baseMapper.getAppContractList(page, qw); IPage<AppCommonContractListVo> pagging = baseMapper.getAppContractList(page, qw);
List<AppCommonContractListVo> records = pagging.getRecords(); List<AppCommonContractListVo> records = pagging.getRecords();
records.removeAll(Collections.singleton(null)); records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) { if (!records.isEmpty()) {
for (AppCommonContractListVo record : records) { for (AppCommonContractListVo record : records) {
if (StringUtils.isNotBlank(record.getModelSid())) {
BaseVehicleModel vehicleModel = baseVehicleModelService.fetchBySid(record.getModelSid());
if (null != vehicleModel) {
record.setModelOrgPath(vehicleModel.getCreateOrg());
}
}
if (StringUtils.isNotBlank(record.getSaleOrderSid())) { if (StringUtils.isNotBlank(record.getSaleOrderSid())) {
List<AppBusSalesOrderDiscountListVo> discountListVos = busSalesOrderDiscountFeign.getDiscountList(record.getSaleOrderSid()).getData(); List<AppBusSalesOrderDiscountListVo> discountListVos = busSalesOrderDiscountFeign.getDiscountList(record.getSaleOrderSid()).getData();
discountListVos.removeAll(Collections.singleton(null)); discountListVos.removeAll(Collections.singleton(null));
if (!discountListVos.isEmpty()) { if (!discountListVos.isEmpty()) {
int sum = discountListVos.stream().map(AppBusSalesOrderDiscountListVo::getTotalPrice).collect(Collectors.toList()).stream().mapToInt(Integer::parseInt).sum(); int sum = discountListVos.stream().map(AppBusSalesOrderDiscountListVo::getTotalPrice).collect(Collectors.toList()).stream().mapToInt(Integer::parseInt).sum();
record.setDiscountAllPrice(String.valueOf(sum)); record.setDiscountAllPrice(String.valueOf(sum));
} else {
record.setDiscountAllPrice("0");
}
BusSalesOrderDetailsVo orderDetailsVo = busSalesOrderFeign.fetchDetailsBySid(record.getSaleOrderSid()).getData();
if (null != orderDetailsVo) {
String orgSidPath = orderDetailsVo.getOrgSidPath();
record.setModelOrgPath(orgSidPath);
} }
} }
} }
} }
PagerVo<AppCommonContractListVo> p = PagerUtil.pageToVo(pagging, null); PagerVo<AppCommonContractListVo> p = PagerUtil.pageToVo(pagging, null);
return p; return p;

53
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryDto.java

@ -1,5 +1,7 @@
package com.yxt.anrui.buscenter.api.bushandover; package com.yxt.anrui.buscenter.api.bushandover;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.anrui.buscenter.api.bushandover.app.AppDeliveryConDto;
import com.yxt.anrui.buscenter.api.bushandoveritems.BusHandoverItemForDeliveryDto; import com.yxt.anrui.buscenter.api.bushandoveritems.BusHandoverItemForDeliveryDto;
import com.yxt.common.core.dto.Dto; import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -20,44 +22,35 @@ public class BusHandoverDeliveryDto implements Dto {
private String sid; private String sid;
@ApiModelProperty("用户sid") @ApiModelProperty("用户sid")
private String userSid; private String userSid;
@ApiModelProperty("交车数量")
private String carNum;
@ApiModelProperty("订单sid")
private String orderSid;
@ApiModelProperty("业务员sid")
private String staffSid;
@ApiModelProperty("客户名称")
private String customerName;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("接收人")
private String recipient;
@ApiModelProperty("身份证号")
private String idNo;
@ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("车辆交付日期")
private Date deliverDate;
@ApiModelProperty("车辆交付地点")
private String deliverAddress;
@ApiModelProperty("交车定位经纬度")
private String locationCode;
@ApiModelProperty("付款方式key")
private String payTypeKey;
@ApiModelProperty("车型") @ApiModelProperty("车型")
private String modelName; private String modelName;
@ApiModelProperty("付款方式value")
private String payTypeValue;
@ApiModelProperty("分公司sid") @ApiModelProperty("分公司sid")
private String useOrgSid; private String useOrgSid;
@ApiModelProperty("分公司sid") @ApiModelProperty("分公司sid")
private String useOrgName; private String useOrgName;
@ApiModelProperty("分公司sid") @ApiModelProperty("分公司sid")
private String orgSidPath; private String orgSidPath;
@ApiModelProperty("交车资料") @ApiModelProperty("联系电话")
private String mobile;
@ApiModelProperty("交付日期")
private Date deliverDate;
@ApiModelProperty("交付地点key")
private String deliverAddressKey;
private String deliverAddress;
@ApiModelProperty("接收人")
private String recipient;
@ApiModelProperty("身份证号")
private String idNo;
@ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id
@ApiModelProperty("环节定义的sid")
private String nodeSid; // 环节定义的sid
@ApiModelProperty("流程实例的sid")
private String procInstId; // 流程实例的sid
@ApiModelProperty("流程状态")
private String nodeState; // 流程状态
@ApiModelProperty("taskId")
private String taskId; // taskId
private List<BusHandoverItemForDeliveryDto> busItemvos; private List<BusHandoverItemForDeliveryDto> busItemvos;
} }

37
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryVo.java

@ -1,10 +1,12 @@
package com.yxt.anrui.buscenter.api.bushandover; package com.yxt.anrui.buscenter.api.bushandover;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.buscenter.api.bushandoveritems.BusHandoverItemForDeliveryVo; import com.yxt.anrui.buscenter.api.bushandoveritems.BusHandoverItemForDeliveryVo;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
@ -15,24 +17,23 @@ import java.util.List;
@Data @Data
public class BusHandoverDeliveryVo implements Vo { public class BusHandoverDeliveryVo implements Vo {
@ApiModelProperty("交车数量") @ApiModelProperty("用户sid")
private String carNum; private String userSid;
@ApiModelProperty("订单sid") @ApiModelProperty("分公司sid")
private String orderSid; private String orgSidPath;
@ApiModelProperty("业务员sid") @ApiModelProperty("接收人")
private String staffSid; private String recipient;
@ApiModelProperty("客户名称") @ApiModelProperty("身份证号")
private String customerName; private String idNo;
@ApiModelProperty("客户sid") @ApiModelProperty("联系电话")
private String customerSid; private String mobile;
@ApiModelProperty("合同编号") @ApiModelProperty("车辆交付日期")
private String contractNo; @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@ApiModelProperty("付款方式key") private Date deliverDate;
private String payTypeKey; @ApiModelProperty("车辆交付地点")
@ApiModelProperty("车型") private String deliverAddress;
private String modelName; @ApiModelProperty("车辆交付地点Key")
@ApiModelProperty("付款方式value") private String deliverAddressKey;
private String payTypeValue;
@ApiModelProperty("交车资料") @ApiModelProperty("交车资料")
private List<BusHandoverItemForDeliveryVo> busItemvos; private List<BusHandoverItemForDeliveryVo> busItemvos;

19
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailVo.java

@ -38,14 +38,23 @@ public class BusHandoverDetailVo implements Vo {
@ApiModelProperty("备注") @ApiModelProperty("备注")
private String remarks; private String remarks;
@ApiModelProperty("交付车辆信息") @ApiModelProperty("交付车辆信息")
private List<BusHandoverItemListDetailsVo> items; private List<BusHandoverItemListDetailsVo> carList = new ArrayList<>();
@ApiModelProperty("接收车辆确认书照片") @ApiModelProperty("接收车辆确认书照片")
private List<String> receiveCarImages; private List<String> receiveCarImages = new ArrayList<>();
@ApiModelProperty("委托提车授权书、委托人身份证(正反面)") @ApiModelProperty("委托提车授权书、委托人身份证(正反面)")
private List<String> entrustImages; private List<String> entrustImages = new ArrayList<>();
@ApiModelProperty("交车资料确认单") @ApiModelProperty("交车资料确认单")
private List<String> entrustConfirmImages; private List<String> entrustConfirmImages = new ArrayList<>();
@ApiModelProperty("出门证照片") @ApiModelProperty("出门证照片")
private List<String> exitTicketImages; private List<String> exitTicketImages = new ArrayList<>();
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织机构sid")
private String orgSidPath;
@ApiModelProperty("流程实例id")
private String procInsId;
@ApiModelProperty("组织机构sid")
private String taskId;
} }

12
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java

@ -48,7 +48,7 @@ public interface BusHandoverFeign {
@ApiOperation("确认交付信息回显") @ApiOperation("确认交付信息回显")
@PostMapping("/deliveryByHandoverWaitSids") @PostMapping("/deliveryByHandoverWaitSids")
@ResponseBody @ResponseBody
public ResultBean<BusHandoverDeliveryVo> deliveryByHandoverWaitSids(@RequestBody String[] sids); public ResultBean<BusHandoverDeliveryVo> deliveryByHandoverWaitSids(@RequestBody AppDeliveryConQuery query);
@ApiOperation("保存确认交付信息") @ApiOperation("保存确认交付信息")
@ -61,8 +61,8 @@ public interface BusHandoverFeign {
@ResponseBody @ResponseBody
public ResultBean<BusHandoverDetailVo> fetchDetailsBySid(@PathVariable("sid") String sid); public ResultBean<BusHandoverDetailVo> fetchDetailsBySid(@PathVariable("sid") String sid);
@ApiOperation("交车确认更新备注图片") @ApiOperation("交车确认")
@PostMapping("/deliveryVehicle") @PostMapping("/savedeliveryVehicle")
@ResponseBody @ResponseBody
public ResultBean<String> deliveryVehicle(@RequestBody BusHandoverDetailDto dto); public ResultBean<String> deliveryVehicle(@RequestBody BusHandoverDetailDto dto);
@ -70,6 +70,12 @@ public interface BusHandoverFeign {
@PostMapping("/createPdf") @PostMapping("/createPdf")
ResultBean<List<String>> createPdf(@RequestParam("sid") String sid); ResultBean<List<String>> createPdf(@RequestParam("sid") String sid);
@ApiOperation("挂车保存确认交付信息")
@PostMapping("/saveGcVinBill")
@ResponseBody
ResultBean<String> saveGcVinBill(@RequestBody GcVinBillDto dto);
/*******************************移动端*******************************************************************/ /*******************************移动端*******************************************************************/
@ApiOperation("获取交车交付信息") @ApiOperation("获取交车交付信息")
@PostMapping("/getDeliveryBill") @PostMapping("/getDeliveryBill")

8
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeignFallback.java

@ -7,6 +7,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 org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
@ -31,7 +32,7 @@ public class BusHandoverFeignFallback implements BusHandoverFeign {
} }
@Override @Override
public ResultBean deliveryByHandoverWaitSids(String[] sids) { public ResultBean deliveryByHandoverWaitSids(AppDeliveryConQuery query) {
return null; return null;
} }
@ -55,6 +56,11 @@ public class BusHandoverFeignFallback implements BusHandoverFeign {
return null; return null;
} }
@Override
public ResultBean<String> saveGcVinBill(GcVinBillDto dto) {
return null;
}
@Override @Override
public ResultBean<AppDeliveryConVo> getDeliveryBill(AppDeliveryConQuery query) { public ResultBean<AppDeliveryConVo> getDeliveryBill(AppDeliveryConQuery query) {
return null; return null;

3
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitDto.java

@ -22,7 +22,7 @@ public class BusHandoverInitDto implements Dto {
private List<BusHandoverInitListDto> carList; private List<BusHandoverInitListDto> carList;
@ApiModelProperty("交车资料确认单") @ApiModelProperty("交车资料确认单")
private List<String> entrustConfirmImages; private List<String> entrustConfirmImages;
// @ApiModelProperty("委托人身份证(正反面)") // @ApiModelProperty("委托人身份证(正反面)")
// private List<String> idCardImages; // private List<String> idCardImages;
@ApiModelProperty("接收车辆确认书照片") @ApiModelProperty("接收车辆确认书照片")
private List<String> receiveCarImages; private List<String> receiveCarImages;
@ -31,4 +31,5 @@ public class BusHandoverInitDto implements Dto {
@ApiModelProperty("出门证照片") @ApiModelProperty("出门证照片")
private List<String> exitTicketImages; private List<String> exitTicketImages;
private String orgPath; private String orgPath;
private String orgSidPath;
} }

6
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitListDto.java

@ -3,6 +3,7 @@ package com.yxt.anrui.buscenter.api.bushandover;
import com.yxt.common.core.dto.Dto; import com.yxt.common.core.dto.Dto;
import lombok.Data; import lombok.Data;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -21,4 +22,9 @@ public class BusHandoverInitListDto implements Dto {
private List<String> policyImages; private List<String> policyImages;
private List<String> deliveryImages; private List<String> deliveryImages;
//交车照片
private List<String> handoverPhotos = new ArrayList<>();
//保单
private List<String> policyPhotos = new ArrayList<>();
} }

16
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverQuery.java

@ -26,12 +26,6 @@ public class BusHandoverQuery implements Query {
@ApiModelProperty("用户sid") @ApiModelProperty("用户sid")
private String userSid; private String userSid;
@ApiModelProperty("客户名称/合同编号")
private String name;
@ApiModelProperty("orgPath")
private String orgPath;
@ApiModelProperty("合同编号") @ApiModelProperty("合同编号")
private String contractNo; private String contractNo;
@ -39,5 +33,13 @@ public class BusHandoverQuery implements Query {
private String customerName; private String customerName;
@ApiModelProperty("付款方式value") @ApiModelProperty("付款方式value")
private String payTypeValue; private String payTypeKey;
@ApiModelProperty("客户名称/合同编号")
private String name;
@ApiModelProperty("orgPath")
private String orgPath;
} }

29
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverVos.java

@ -1,5 +1,6 @@
package com.yxt.anrui.buscenter.api.bushandover; package com.yxt.anrui.buscenter.api.bushandover;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -12,19 +13,31 @@ import lombok.Data;
@Data @Data
public class BusHandoverVos implements Vo { public class BusHandoverVos implements Vo {
@ApiModelProperty("交车状态value") @ApiModelProperty("记录sid")
private String handoverStateValue; private String sid;
@ApiModelProperty("合同编号") @ApiModelProperty("合同编号")
private String contractNo; private String contractNo;
@ApiModelProperty("流程状态")
private String nodeState;
@ApiModelProperty("交车状态")
private String handoverStateValue;
@ApiModelProperty("客户名称") @ApiModelProperty("客户名称")
private String customerName; private String customerName;
@ApiModelProperty("车型别名")
private String modelName;
@ApiModelProperty("交车数量") @ApiModelProperty("交车数量")
private String carNum; private String carNum;
@ApiModelProperty("车型") @ApiModelProperty("是否显示交车确认")
private String modelName; private boolean showUpdate;
@ApiModelProperty("显示办理") @ApiModelProperty("是否显示挂车")
private Boolean showComplete; private boolean showGcBtn;
@ApiModelProperty("显示挂车") @ApiModelProperty("确认资料下载地铁")
private Boolean showTrailer; private String filePath;
@ApiModelProperty("确认挂车资料下载地址")
private String trailerFilePath;
@ApiModelProperty("显示挂车下载按钮")
private Boolean showGcDownload;
@ApiModelProperty("挂车确认按钮")
private boolean showGcBtn2;
} }

34
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/GcVinBillDto.java

@ -0,0 +1,34 @@
package com.yxt.anrui.buscenter.api.bushandover;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/6/16 16:18
*/
@Data
public class GcVinBillDto implements Dto {
private String sid;
@ApiModelProperty("身份证号")
@JsonProperty("idNo")
private String trailerIdNo;
@JsonProperty("deliverAddress")
private String trailerAddress;
@ApiModelProperty("接收人")
@JsonProperty("recipient")
private String trailerRecipient;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("组织全路径")
private String orgSidPath;
@ApiModelProperty("联系电话")
@JsonProperty("mobile")
private String trailerMobile;
@ApiModelProperty("车辆交付日期")
@JsonProperty("deliverDate")
private String trailerDeliverDate;
}

1
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/app/AppDeliveryConQuery.java

@ -17,4 +17,5 @@ public class AppDeliveryConQuery implements Query {
private String userSid; private String userSid;
private String orgPath; private String orgPath;
private String orgSidPath;
} }

18
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryDto.java

@ -1,5 +1,6 @@
package com.yxt.anrui.buscenter.api.bushandoveritems; package com.yxt.anrui.buscenter.api.bushandoveritems;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto; import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -14,17 +15,14 @@ import java.util.List;
@Data @Data
public class BusHandoverItemForDeliveryDto implements Dto { public class BusHandoverItemForDeliveryDto implements Dto {
private String handoverSid; @ApiModelProperty("车架号")
private String modelSid;
private String modelName;
private String vinSid;
private String vinNo; private String vinNo;
@ApiModelProperty("资料key")
private String itemKey; private String itemKey;
@ApiModelProperty("资料value")
private String itemValue; private String itemValue;
private List<String> handoverPhoto;
private List<String> policyPhoto; private String sid;
@ApiModelProperty("是否是燃气车 0不是1是")
private String isFuelVehicle; // 是否是燃气车 0不是1是
@ApiModelProperty("材料是否完全")
private String completeState; // 是否是燃气车 0不是1是
} }

14
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryVo.java

@ -12,14 +12,14 @@ import lombok.Data;
@Data @Data
public class BusHandoverItemForDeliveryVo implements Vo { public class BusHandoverItemForDeliveryVo implements Vo {
private String modelSid; // private String modelSid;
private String modelName; // private String modelName;
private String vinSid; private String sid;
private String vinNo; private String vinNo;
private String itemKey; private String itemKey;
private String itemValue; private String itemValue;
@ApiModelProperty("是否是燃气车 0不是1是") // @ApiModelProperty("是否是燃气车 0不是1是")
private String isFuelVehicle; // 是否是燃气车 0不是1是 // private String isFuelVehicle; // 是否是燃气车 0不是1是
@ApiModelProperty("资料是否完全0不全1全") // @ApiModelProperty("资料是否完全0不全1全")
private String completeState; // private String completeState;
} }

7
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsVo.java

@ -3,6 +3,7 @@ package com.yxt.anrui.buscenter.api.bushandoveritems;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import lombok.Data; import lombok.Data;
import java.util.ArrayList;
import java.util.List; import java.util.List;
/** /**
@ -13,10 +14,10 @@ import java.util.List;
@Data @Data
public class BusHandoverItemListDetailsVo implements Vo { public class BusHandoverItemListDetailsVo implements Vo {
private String sid; private String vinSid;
private String vinNo; private String vinNo;
//交车照片 //交车照片
private List<String> handoverPhoto; private List<String> deliveryImages = new ArrayList<>();
//保单 //保单
private List<String> policyPhoto; private List<String> policyImages = new ArrayList<>();
} }

5
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml

@ -126,7 +126,10 @@
bh.customerName, bh.customerName,
bh.handoverStateValue, bh.handoverStateValue,
bh.modelName, bh.modelName,
bh.carNum bh.carNum,
bh.nodeState,
bh.filePath,
bh.trailerFilePath
from bus_handover bh from bus_handover bh
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}

10
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverRest.java

@ -12,6 +12,7 @@ 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 org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@ -44,8 +45,8 @@ public class BusHandoverRest implements BusHandoverFeign {
} }
@Override @Override
public ResultBean<BusHandoverDeliveryVo> deliveryByHandoverWaitSids(String[] sids) { public ResultBean<BusHandoverDeliveryVo> deliveryByHandoverWaitSids(AppDeliveryConQuery query) {
return busHandoverService.deliveryByHandoverWaitSids(sids); return busHandoverService.deliveryByHandoverWaitSids(query);
} }
@Override @Override
@ -68,6 +69,11 @@ public class BusHandoverRest implements BusHandoverFeign {
return busHandoverService.createPdf(sid); return busHandoverService.createPdf(sid);
} }
@Override
public ResultBean<String> saveGcVinBill(GcVinBillDto dto) {
return busHandoverService.saveGcVinBill(dto);
}
@Override @Override
public ResultBean<AppDeliveryConVo> getDeliveryBill(AppDeliveryConQuery query) { public ResultBean<AppDeliveryConVo> getDeliveryBill(AppDeliveryConQuery query) {
return busHandoverService.getDeliveryBill(query); return busHandoverService.getDeliveryBill(query);

375
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java

@ -81,6 +81,7 @@ 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;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import org.springframework.web.bind.annotation.RequestBody;
import java.io.File; import java.io.File;
import java.io.InputStream; import java.io.InputStream;
@ -702,7 +703,6 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
List<BusHandoverInitListDto> carList = dto.getCarList(); List<BusHandoverInitListDto> carList = dto.getCarList();
carList.removeAll(Collections.singleton(null)); carList.removeAll(Collections.singleton(null));
if (!carList.isEmpty()) { if (!carList.isEmpty()) {
for (BusHandoverInitListDto busHandoverInitListDto : carList) { for (BusHandoverInitListDto busHandoverInitListDto : carList) {
String vinSid = busHandoverInitListDto.getVinSid(); String vinSid = busHandoverInitListDto.getVinSid();
List<String> policyImagesList = busHandoverInitListDto.getPolicyImages(); List<String> policyImagesList = busHandoverInitListDto.getPolicyImages();
@ -845,40 +845,24 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
/** /**
* 确认交付信息回显 * 确认交付信息回显
* *
* @param sids * @param
* @return * @return
*/ */
public ResultBean<BusHandoverDeliveryVo> deliveryByHandoverWaitSids(String[] sids) { public ResultBean<BusHandoverDeliveryVo> deliveryByHandoverWaitSids(AppDeliveryConQuery query) {
ResultBean rb = ResultBean.fireFail(); ResultBean<BusHandoverDeliveryVo> rb = ResultBean.fireFail();
BusHandoverDeliveryVo vo = new BusHandoverDeliveryVo(); BusHandoverDeliveryVo vo = new BusHandoverDeliveryVo();
vo.setDeliverDate((new Date()));
vo.setUserSid(query.getUserSid());
vo.setOrgSidPath(query.getOrgSidPath());
List<BusHandoverItemForDeliveryVo> voList = new ArrayList<>(); List<BusHandoverItemForDeliveryVo> voList = new ArrayList<>();
vo.setCarNum(String.valueOf(sids.length)); List<String> sids = query.getList();
sids.removeAll(Collections.singleton(null));
for (String sid : sids) { for (String sid : sids) {
//遍历sid从待交车列表中查询信息 //遍历sid从待交车列表中查询信息
BusHandoverWait handoverWait = busHandoverWaitService.fetchBySid(sid); BusHandoverWait handoverWait = busHandoverWaitService.fetchBySid(sid);
if (handoverWait != null) { if (handoverWait != null) {
BusHandoverItemForDeliveryVo itemVo = new BusHandoverItemForDeliveryVo(); BusHandoverItemForDeliveryVo itemVo = new BusHandoverItemForDeliveryVo();
CommonContract contract = commonContractFeign.selectByNo(handoverWait.getContractNo()).getData();
if (null != contract) {
if (StringUtils.isNotBlank(contract.getBusSid())) {
vo.setOrderSid(contract.getBusSid());
}
if (StringUtils.isNotBlank(contract.getStaffSid())) {
vo.setStaffSid(contract.getStaffSid());
}
}
//合同号
vo.setContractNo(handoverWait.getContractNo());
vo.setCustomerName(handoverWait.getCustomerName());
vo.setCustomerSid(handoverWait.getCustomerSid());
vo.setPayTypeKey(handoverWait.getPayTypeKey());
vo.setPayTypeValue(handoverWait.getPayTypeValue());
vo.setModelName(handoverWait.getModelName());
itemVo.setVinSid(handoverWait.getVinSid());
itemVo.setVinNo(handoverWait.getVinNo());
itemVo.setModelSid(handoverWait.getModelSid());
itemVo.setModelName(handoverWait.getModelName());
StringBuffer sb = new StringBuffer(); StringBuffer sb = new StringBuffer();
StringBuffer sbKey = new StringBuffer(); StringBuffer sbKey = new StringBuffer();
//从交车准备中查询交车资料 //从交车准备中查询交车资料
@ -895,7 +879,6 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
if (prepareVehicle.getOnBoardDataState() > 0) { if (prepareVehicle.getOnBoardDataState() > 0) {
BusVehicleInformationHandoverDetailsListVo data = busVehicleInformationHandoverService.detailsByVinSid(handoverWait.getVinSid()).getData(); BusVehicleInformationHandoverDetailsListVo data = busVehicleInformationHandoverService.detailsByVinSid(handoverWait.getVinSid()).getData();
if (null != data) { if (null != data) {
itemVo.setIsFuelVehicle(data.getIsFuelVehicle());
if (data.getInformations().size() > 0) { if (data.getInformations().size() > 0) {
List<BusVehicleInformationVo> informations = data.getInformations(); List<BusVehicleInformationVo> informations = data.getInformations();
for (BusVehicleInformationVo information : informations) { for (BusVehicleInformationVo information : informations) {
@ -946,19 +929,8 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
sbKey.delete(sbKey.length() - 1, sbKey.length()); sbKey.delete(sbKey.length() - 1, sbKey.length());
itemVo.setItemValue(sb.toString()); itemVo.setItemValue(sb.toString());
itemVo.setItemKey(sbKey.toString()); itemVo.setItemKey(sbKey.toString());
if (itemVo.getIsFuelVehicle().equals("0")) { itemVo.setVinNo(handoverWait.getVinNo());
if (itemVo.getItemKey().equals("001、002、003、004、005、006、007、008、009")) { itemVo.setSid(sid);
itemVo.setCompleteState("1");
} else {
itemVo.setCompleteState("0");
}
} else {
if (itemVo.getItemKey().equals("001、002、003、004、005、006、007、008")) {
itemVo.setCompleteState("1");
} else {
itemVo.setCompleteState("0");
}
}
} }
voList.add(itemVo); voList.add(itemVo);
} }
@ -974,67 +946,120 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
* @return * @return
*/ */
public ResultBean<String> saveOrUpdateBusHandover(BusHandoverDeliveryDto dto) throws Exception { public ResultBean<String> saveOrUpdateBusHandover(BusHandoverDeliveryDto dto) throws Exception {
ResultBean rb = ResultBean.fireFail(); ResultBean<String> rb = ResultBean.fireFail();
//ToDo:验证是否包含已存在的车辆 BusHandover busHandover = new BusHandover();
String contractNo = dto.getContractNo(); BeanUtil.copyProperties(dto, busHandover, "id", "sid");
List<BusHandoverItemForDeliveryDto> vinList = dto.getBusItemvos(); //流程状态
if (vinList.size() == 0) { busHandover.setNodeState("待提交");
return rb.setMsg("请选择车辆"); //交车状态
} busHandover.setHandoverStateKey("001");
List<String> vinSidList = vinList.stream().map(v -> v.getVinSid()).collect(Collectors.toList()); busHandover.setHandoverStateValue("未交车");
int count = baseMapper.selectByCount(contractNo, vinSidList); busHandover.setCreateBySid(dto.getUserSid());
if (count > 0) { ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgSidPath());
return rb.setMsg("选择的车辆包含已存在交车确认记录的数据"); if (orgSidByPath.getSuccess()) {
String userOrgSid = orgSidByPath.getData();
busHandover.setUseOrgSid(userOrgSid);
//交车资料确认单编号
String billNo = getApplyCode(userOrgSid);
busHandover.setBillNo(billNo);
ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid);
if (organizationVo.getSuccess()) {
SysOrganizationVo organizationVoData = organizationVo.getData();
if (null != organizationVoData) {
busHandover.setUseOrgName(organizationVoData.getName());
}
}
} }
BusHandover entity = new BusHandover(); if (!CollectionUtils.isEmpty(dto.getBusItemvos())) {
String sid = entity.getSid(); List<BusHandoverItemForDeliveryDto> vinList = dto.getBusItemvos();
BeanUtil.copyProperties(dto, entity, "id", "sid"); for (BusHandoverItemForDeliveryDto deliveryConDto : vinList) {
entity.setHandoverStateKey("001"); String recordSid = deliveryConDto.getSid();
entity.setHandoverStateValue("未交车"); BusHandoverWait handoverWait = busHandoverWaitService.fetchBySid(recordSid);
if (StringUtils.isNotBlank(dto.getUserSid())) { //交车数量
entity.setCreateBySid(dto.getUserSid()); busHandover.setCarNum(String.valueOf(vinList.size()));
} //合同号
//交车资料确认单编号 busHandover.setContractNo(handoverWait.getContractNo());
String billNo = getApplyCode(dto.getUseOrgSid()); //客户名
entity.setBillNo(billNo); busHandover.setCustomerName(handoverWait.getCustomerName());
entity.setNodeState("待提交"); //客户sid
baseMapper.insert(entity); busHandover.setCustomerSid(handoverWait.getCustomerSid());
List<BusHandoverItemForDeliveryDto> busItemvos = dto.getBusItemvos(); //付款方式
for (BusHandoverItemForDeliveryDto busItemvo : busItemvos) { busHandover.setPayTypeKey(handoverWait.getPayTypeKey());
BusHandoverItems items = new BusHandoverItems(); busHandover.setPayTypeValue(handoverWait.getPayTypeValue());
BeanUtil.copyProperties(busItemvo, items); //车型
items.setHandoverSid(sid); busHandover.setModelName(handoverWait.getModelName());
int insert = busHandoverItemsService.insert(items); //业务员sid 业务订单sid
if (insert > 0) { CommonContract contract = commonContractFeign.selectByNo(handoverWait.getContractNo()).getData();
//逻辑删除待交车车辆列表中勾选车辆 if (null != contract) {
busHandoverWaitService.deleteByVinSid(dto.getContractNo(), busItemvo.getVinSid()); if (StringUtils.isNotBlank(contract.getBusSid())) {
} busHandover.setOrderSid(contract.getBusSid());
} }
if (StringUtils.isNotBlank(contract.getStaffSid())) {
//打印pdf busHandover.setStaffSid(contract.getStaffSid());
List<String> filePaths = createPdf(entity.getSid()).getData(); }
List<File> fileList = new ArrayList<>(); }
if (!filePaths.isEmpty()) { BusHandoverItems items = new BusHandoverItems();
for (String filePath : filePaths) { items.setItemKey(deliveryConDto.getItemKey());
File file = new File(filePath); items.setItemValue(deliveryConDto.getItemValue());
fileList.add(file); items.setVinNo(deliveryConDto.getVinNo());
items.setVinSid(handoverWait.getVinSid());
items.setHandoverSid(busHandover.getSid());
items.setModelSid(handoverWait.getModelSid());
items.setModelName(handoverWait.getModelName());
BusVehicleInformationHandoverDetailsListVo data = busVehicleInformationHandoverService.detailsByVinSid(handoverWait.getVinSid()).getData();
if (null != data) {
items.setIsFuelVehicle(data.getIsFuelVehicle());
}
if (items.getIsFuelVehicle().equals("0")) {
if (items.getItemKey().equals("001、002、003、004、005、006、007、008、009")) {
items.setCompleteState("1");
} else {
items.setCompleteState("0");
}
} else {
if (items.getItemKey().equals("001、002、003、004、005、006、007、008")) {
items.setCompleteState("1");
} else {
items.setCompleteState("0");
}
}
items.setVehivelOrTrailer("主车");
busHandoverItemsService.insert(items);
//逻辑删除待准备交车列表
busHandoverWaitService.deleteByVinSid(handoverWait.getContractNo(), handoverWait.getVinSid());
} }
} }
baseMapper.insert(busHandover);
ResultBean<List<String>> pdf = createPdf(busHandover.getSid());
String path = ""; String path = "";
String filePath = "/template/"; if (pdf.getSuccess()) {
String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); //打印pdf
long seconds = System.currentTimeMillis(); List<String> filePaths = pdf.getData();
String targetPath = docPdfComponent.getUploadTemplateUrl(); List<File> fileList = new ArrayList<>();
File file = WordConvertUtils.mulFile2One(fileList, targetPath + dateStr + seconds + "交车确认.pdf"); if (!filePaths.isEmpty()) {
if (fileList.size() <= 0) { for (String filePath : filePaths) {
path = null; File file = new File(filePath);
} else { fileList.add(file);
for (File fileDelete : fileList) { }
fileDelete.delete(); }
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String targetPath = docPdfComponent.getUploadTemplateUrl();
File file = WordConvertUtils.mulFile2One(fileList, targetPath + dateStr + seconds + "交车确认.pdf");
if (fileList.size() <= 0) {
path = null;
} else {
for (File fileDelete : fileList) {
fileDelete.delete();
}
path = dateStr + seconds + "交车确认.pdf";
} }
path = filePath + dateStr + seconds + "交车确认.pdf";
} }
return rb.success().setData(path); BusHandover entity = fetchBySid(busHandover.getSid());
entity.setFilePath(path);
baseMapper.updateById(entity);
String temp = "/template/";
return rb.success().setData(temp + path);
} }
/** /**
@ -1339,15 +1364,11 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
if (StringUtils.isNotBlank(query.getCustomerName())) { if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("customerName", query.getCustomerName()); qw.like("customerName", query.getCustomerName());
} }
if (StringUtils.isNotBlank(query.getPayTypeValue())) { if (StringUtils.isNotBlank(query.getPayTypeKey())) {
qw.like("payTypeValue", query.getPayTypeValue()); qw.like("payTypeKey", query.getPayTypeKey());
} }
qw.eq("createBySid", query.getUserSid()); qw.eq("createBySid", query.getUserSid());
qw.eq("isDelete", 0); qw.eq("isDelete", 0);
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("contractNo", query.getName()).or().like("customerName", query.getName())
.or().like("payTypeValue", query.getName()));
}
return qw; return qw;
} }
@ -1363,6 +1384,42 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
QueryWrapper<BusHandover> qw = createQueryWrapper(query); QueryWrapper<BusHandover> qw = createQueryWrapper(query);
IPage<BusHandover> page = PagerUtil.queryToPage(pq); IPage<BusHandover> page = PagerUtil.queryToPage(pq);
IPage<BusHandoverVos> pagging = baseMapper.selectListPageVo(page, qw); IPage<BusHandoverVos> pagging = baseMapper.selectListPageVo(page, qw);
List<BusHandoverVos> records = pagging.getRecords();
records.removeAll(Collections.singleton(null));
String temp = "/template/";
if (records.size() > 0) {
for (BusHandoverVos record : records) {
if (record.getNodeState().equals("待提交") || record.getNodeState().equals("发起申请")) {
record.setShowUpdate(true);
} else {
record.setShowUpdate(false);
}
if (record.getHandoverStateValue().equals("已交车")) {
List<BusHandoverInitListVo> deliveryConfirmInfo = busHandoverItemsService.getDeliveryConfirmInfo(record.getSid());
deliveryConfirmInfo.removeAll(Collections.singleton(null));
if (!deliveryConfirmInfo.isEmpty()) {
for (BusHandoverInitListVo vo : deliveryConfirmInfo) {
List<BaseTrailer> trailers = baseTrailerFeign.getByVehSid(vo.getVinSid()).getData();
trailers.removeAll(Collections.singleton(null));
if (!trailers.isEmpty() && trailers.size() > 0) {
record.setShowGcBtn(true);
} else {
record.setShowGcBtn(false);
}
}
}
} else {
record.setShowGcBtn(false);
}
if (StringUtils.isNotBlank(record.getTrailerFilePath())) {
record.setShowGcBtn(false);
record.setShowGcBtn2(true);
record.setShowGcDownload(true);
}
record.setFilePath(temp + record.getFilePath());
record.setTrailerFilePath(temp + record.getTrailerFilePath());
}
}
PagerVo<BusHandoverVos> p = PagerUtil.pageToVo(pagging, null); PagerVo<BusHandoverVos> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p); return rb.success().setData(p);
} }
@ -1378,6 +1435,7 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
BusHandover busHandover = fetchBySid(sid); BusHandover busHandover = fetchBySid(sid);
BusHandoverDetailVo vo = new BusHandoverDetailVo(); BusHandoverDetailVo vo = new BusHandoverDetailVo();
BeanUtil.copyProperties(busHandover, vo); BeanUtil.copyProperties(busHandover, vo);
vo.setProcInsId(busHandover.getProcInstId());
List<BusHandoverItemListDetailsVo> items = new ArrayList<>(); List<BusHandoverItemListDetailsVo> items = new ArrayList<>();
//查询车辆 //查询车辆
List<BusHandoverItems> itemsList = busHandoverItemsService.getItemsListByMainSid(sid).getData(); List<BusHandoverItems> itemsList = busHandoverItemsService.getItemsListByMainSid(sid).getData();
@ -1385,10 +1443,11 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
for (BusHandoverItems v : itemsList) { for (BusHandoverItems v : itemsList) {
BusHandoverItemListDetailsVo detailsVo = new BusHandoverItemListDetailsVo(); BusHandoverItemListDetailsVo detailsVo = new BusHandoverItemListDetailsVo();
String handoverPhoto = v.getHandoverPhoto(); String handoverPhoto = v.getHandoverPhoto();
String policyPhoto = v.getPolicyPhoto();
BeanUtil.copyProperties(v, detailsVo); BeanUtil.copyProperties(v, detailsVo);
if (StringUtils.isNotBlank(handoverPhoto)) { if (StringUtils.isNotBlank(handoverPhoto)) {
List<String> stringList = Arrays.asList(handoverPhoto.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList()); List<String> stringList = Arrays.asList(handoverPhoto.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
detailsVo.setHandoverPhoto(stringList); detailsVo.setDeliveryImages(stringList);
} }
BusHandoverPrepareVehicle busHandoverPrepareVehicle = busHandoverPrepareVehicleService.fetchDetailsByVinSid(v.getVinSid()); BusHandoverPrepareVehicle busHandoverPrepareVehicle = busHandoverPrepareVehicleService.fetchDetailsByVinSid(v.getVinSid());
if (null != busHandoverPrepareVehicle) { if (null != busHandoverPrepareVehicle) {
@ -1397,12 +1456,13 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
if (!fileList.isEmpty()) { if (!fileList.isEmpty()) {
List<String> policyPhotoList = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). List<String> policyPhotoList = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList()); collect(Collectors.toList());
detailsVo.setHandoverPhoto(policyPhotoList); detailsVo.setPolicyImages(policyPhotoList);
} }
} }
detailsVo.setVinSid(v.getVinSid());
items.add(detailsVo); items.add(detailsVo);
} }
vo.setItems(items); vo.setCarList(items);
//接收车辆确认书照片 //接收车辆确认书照片
List<BuscenterFile> fileList = buscenterFileService.selectByLinkSid(sid, BuscenterFileEnum.RECEIVE_CAR_IMAGES.getAttachType()); List<BuscenterFile> fileList = buscenterFileService.selectByLinkSid(sid, BuscenterFileEnum.RECEIVE_CAR_IMAGES.getAttachType());
fileList.removeAll(Collections.singleton(null)); fileList.removeAll(Collections.singleton(null));
@ -2468,6 +2528,115 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
return rb.success().setData(dto.getSid()); return rb.success().setData(dto.getSid());
} }
public ResultBean<String> saveGcVinBill(GcVinBillDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
String sid = dto.getSid();
BusHandover busHandover = fetchBySid(sid);
busHandover.setTrailerAddress(dto.getTrailerAddress());
busHandover.setTrailerIdNo(dto.getTrailerIdNo());
busHandover.setTrailerDeliverDate(new Date());
busHandover.setTrailerMobile(dto.getTrailerMobile());
busHandover.setTrailerRecipient(dto.getTrailerRecipient());
baseMapper.updateById(busHandover);
List<BusHandoverInitListVo> info = busHandoverItemsService.getDeliveryConfirmInfo(sid);
info.removeAll(Collections.singleton(null));
List<BusHandoverItems> itemsList = new ArrayList<>();
if (info.size() > 0) {
for (BusHandoverInitListVo vo : info) {
List<BaseTrailer> baseTrailers = baseTrailerFeign.getByVehSid(vo.getVinSid()).getData();
baseTrailers.removeAll(Collections.singleton(null));
if (baseTrailers.size() > 0) {
for (BaseTrailer baseTrailer : baseTrailers) {
BusHandoverItems items = new BusHandoverItems();
items.setVehivelOrTrailer("挂车");
items.setHandoverSid(sid);
items.setVinSid(baseTrailer.getSid());
items.setVinNo(baseTrailer.getVinNo());
itemsList.add(items);
}
}
}
}
if (!itemsList.isEmpty()) {
for (BusHandoverItems items : itemsList) {
busHandoverItemsService.insert(items);
}
}
BusHandover handoverPdf = fetchBySid(sid);
BusReceiveVehiclePdfVo pdfVo = new BusReceiveVehiclePdfVo();
pdfVo.setUseOrgName(handoverPdf.getUseOrgName());
String staffSid = handoverPdf.getStaffSid();
ResultBean<SysStaffinfoDetailsVo> voResultBean = sysStaffinfoFeign.fetchBySid(staffSid);
if (voResultBean.getSuccess()) {
if (null != voResultBean.getData()) {
SysStaffinfoDetailsVo data = voResultBean.getData();
if (StringUtils.isNotBlank(data.getName())) {
pdfVo.setStaffName(data.getName());
}
}
}
pdfVo.setContractNo(handoverPdf.getContractNo());
pdfVo.setCustomerName(handoverPdf.getCustomerName());
String customerSid = handoverPdf.getCustomerSid();
if (StringUtils.isNotBlank(customerSid)) {
ResultBean<CrmCustomerTempVo> resultBean = crmCustomerTempFeign.fetchSid(customerSid);
if (resultBean.getSuccess()) {
if (null != resultBean.getData()) {
CrmCustomerTempVo data = resultBean.getData();
if (StringUtils.isNotBlank(data.getIDNumber())) {
pdfVo.setIdNumber(data.getIDNumber());
}
}
}
}
pdfVo.setRecipient(handoverPdf.getTrailerRecipient());
pdfVo.setIdNo(handoverPdf.getTrailerIdNo());
pdfVo.setDeliverDate(handoverPdf.getTrailerDeliverDate());
pdfVo.setDeliverAddress(handoverPdf.getTrailerAddress());
List<BusHandoverItems> items = busHandoverItemsService.getItemsListByMainSid(sid).getData();
items.removeAll(Collections.singleton(null));
List<BusReceiveVehicleListPdfVo> listPdfVos = new ArrayList<>();
if (!items.isEmpty()) {
int sortNo = 1;
for (BusHandoverItems item : items) {
if ("挂车".equals(item.getVehivelOrTrailer())) {
BusReceiveVehicleListPdfVo listPdfVo = new BusReceiveVehicleListPdfVo();
listPdfVo.setEngineVo("-");
listPdfVo.setSortNo(String.valueOf(sortNo++));
listPdfVo.setVinNo(item.getVinNo());
listPdfVos.add(listPdfVo);
BaseTrailerDetailsVo trailerDetailsVo = baseTrailerFeign.fetchBySid(item.getVinSid()).getData();
if (null != trailerDetailsVo) {
if (StringUtils.isNotBlank(trailerDetailsVo.getTrailerModelSid())) {
BaseTrailerModelDetailsVo modelDetailsVo = baseTrailerModelFeign.fetchDetailsBySid(trailerDetailsVo.getTrailerModelSid()).getData();
if (null != modelDetailsVo) {
if (StringUtils.isNotBlank(modelDetailsVo.getBrandName())) {
pdfVo.setBrandName(modelDetailsVo.getBrandName());
}
if (StringUtils.isNotBlank(modelDetailsVo.getTrailerTypeValue())) {
pdfVo.setModel(modelDetailsVo.getTrailerTypeValue());
}
if (StringUtils.isNotBlank(modelDetailsVo.getCarModelName())) {
pdfVo.setConfig(modelDetailsVo.getCarModelName());
}
}
}
}
}
}
}
pdfVo.setColor("-");
pdfVo.setListPdfVos(listPdfVos);
String uploadTemplateUrl = docPdfComponent.getUploadTemplateUrl();
String s = receiveVehicleConfirmationCreatePdf(pdfVo);
BusHandover entity = fetchBySid(sid);
String savePath = s.substring(uploadTemplateUrl.length());
entity.setTrailerFilePath(savePath);
baseMapper.updateById(entity);
String temp = "/template/";
return rb.success().setData(temp + savePath);
}
/*@Autowired /*@Autowired

25
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverwait/BusHandoverWaitService.java

@ -35,6 +35,7 @@ public class BusHandoverWaitService extends MybatisBaseService<BusHandoverWaitMa
private CommonContractFeign commonContractFeign; private CommonContractFeign commonContractFeign;
@Autowired @Autowired
private BusHandoverItemsService busHandoverItemsService; private BusHandoverItemsService busHandoverItemsService;
public PagerVo<BusHandoverWaitVo> pagerList(PagerQuery<BusHandoverWaitQuery> pagerQuery) { public PagerVo<BusHandoverWaitVo> pagerList(PagerQuery<BusHandoverWaitQuery> pagerQuery) {
IPage<BusHandoverWait> page = PagerUtil.queryToPage(pagerQuery); IPage<BusHandoverWait> page = PagerUtil.queryToPage(pagerQuery);
BusHandoverWaitQuery params = pagerQuery.getParams(); BusHandoverWaitQuery params = pagerQuery.getParams();
@ -45,6 +46,9 @@ public class BusHandoverWaitService extends MybatisBaseService<BusHandoverWaitMa
orgPath = sysStaffOrgFeign.getOrgSidByPath(params.getOrgPath()).getData(); orgPath = sysStaffOrgFeign.getOrgSidByPath(params.getOrgPath()).getData();
qw.eq("bh.useOrgSid", orgPath); qw.eq("bh.useOrgSid", orgPath);
} }
if (StringUtils.isNotBlank(params.getUserSid())) {
qw.eq("bh.createBySid", params.getUserSid());
}
qw.eq("bh.isDelete", 0); qw.eq("bh.isDelete", 0);
} }
IPage<BusHandoverWaitVo> pagging = baseMapper.selectPageVo(page, qw, params.getName()); IPage<BusHandoverWaitVo> pagging = baseMapper.selectPageVo(page, qw, params.getName());
@ -89,16 +93,17 @@ public class BusHandoverWaitService extends MybatisBaseService<BusHandoverWaitMa
if (StringUtils.isNotBlank(query.getCustomerName())) { if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("customerName", query.getCustomerName()); qw.like("customerName", query.getCustomerName());
} }
//查询已提交交车办理车辆 // //查询已提交交车办理车辆
ResultBean<List<BusHandoverItems>> resultBean = busHandoverItemsService.getItemsList(); // ResultBean<List<BusHandoverItems>> resultBean = busHandoverItemsService.getItemsList();
if (!resultBean.getData().isEmpty()) { // if (!resultBean.getData().isEmpty()) {
resultBean.getData().removeAll(Collections.singleton(null)); // resultBean.getData().removeAll(Collections.singleton(null));
List<String> vinSidList = resultBean.getData().stream().map(v -> v.getVinSid()).collect(Collectors.toList()); // List<String> vinSidList = resultBean.getData().stream().map(v -> v.getVinSid()).collect(Collectors.toList());
vinSidList.removeAll(Collections.singleton(null)); // vinSidList.removeAll(Collections.singleton(null));
if (!vinSidList.isEmpty()) { // if (!vinSidList.isEmpty()) {
qw.notIn("vinSid", vinSidList); // qw.notIn("vinSid", vinSidList);
} // }
} // }
qw.eq("createBySid", query.getUserSid());
qw.eq("useOrgSid", query.getUseOrgSid()); qw.eq("useOrgSid", query.getUseOrgSid());
qw.eq("isDelete", 0); qw.eq("isDelete", 0);
qw.orderByDesc("createTime"); qw.orderByDesc("createTime");

45
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java

@ -24,12 +24,34 @@ public class BusSalesOrderSubmitService extends MybatisBaseService<BusSalesOrder
if (busSalesOrderSubmit == null) { if (busSalesOrderSubmit == null) {
busSalesOrderSubmit = new BusSalesOrderSubmit(); busSalesOrderSubmit = new BusSalesOrderSubmit();
BeanUtil.copyProperties(busSalesOrderSubmitDto, busSalesOrderSubmit, "sid"); BeanUtil.copyProperties(busSalesOrderSubmitDto, busSalesOrderSubmit, "sid");
if(StringUtils.isBlank(busSalesOrderSubmitDto.getDistributorName())){
if(StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorNameTwo())){
busSalesOrderSubmit.setDistributorName(busSalesOrderSubmitDto.getDistributorNameTwo());
busSalesOrderSubmitDto.setDistributorPrice(busSalesOrderSubmitDto.getDistributorPriceTwo());
busSalesOrderSubmitDto.setDistributorNameTwo("");
busSalesOrderSubmitDto.setDistributorPriceTwo("");
busSalesOrderSubmit.setDistributorNameTwo("");
busSalesOrderSubmit.setDistributorSid(busSalesOrderSubmitDto.getDistributorSidTwo());
busSalesOrderSubmit.setDistributorSidTwo("");
busSalesOrderSubmit.setDistributorMobile(busSalesOrderSubmitDto.getDistributorMobileTwo());
busSalesOrderSubmit.setDistributorMobileTwo("");
busSalesOrderSubmit.setDistributorUnit(busSalesOrderSubmitDto.getDistributorUnitTwo());
busSalesOrderSubmit.setDistributorUnitTwo("");
}
}
BigDecimal priceBig = new BigDecimal("0"); BigDecimal priceBig = new BigDecimal("0");
BigDecimal priceAll = new BigDecimal("0"); BigDecimal priceAll = new BigDecimal("0");
BigDecimal priceBigTwo = new BigDecimal("0");
BigDecimal priceAllTwo = new BigDecimal("0");
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPrice())) { if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPrice())) {
priceBig = new BigDecimal(busSalesOrderSubmitDto.getDistributorPrice()); priceBig = new BigDecimal(busSalesOrderSubmitDto.getDistributorPrice());
busSalesOrderSubmit.setDistributorPrice(priceBig); busSalesOrderSubmit.setDistributorPrice(priceBig);
}
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPriceTwo())) {
priceBigTwo = new BigDecimal(busSalesOrderSubmitDto.getDistributorPriceTwo());
busSalesOrderSubmit.setDistributorPriceTwo(priceBigTwo);
} }
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPriceAll())) { if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPriceAll())) {
priceAll = new BigDecimal(busSalesOrderSubmitDto.getDistributorPriceAll()); priceAll = new BigDecimal(busSalesOrderSubmitDto.getDistributorPriceAll());
@ -39,12 +61,33 @@ public class BusSalesOrderSubmitService extends MybatisBaseService<BusSalesOrder
save(busSalesOrderSubmit); save(busSalesOrderSubmit);
} else { } else {
BeanUtil.copyProperties(busSalesOrderSubmitDto, busSalesOrderSubmit); BeanUtil.copyProperties(busSalesOrderSubmitDto, busSalesOrderSubmit);
if(StringUtils.isBlank(busSalesOrderSubmitDto.getDistributorName())){
if(StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorNameTwo())){
busSalesOrderSubmit.setDistributorName(busSalesOrderSubmitDto.getDistributorNameTwo());
busSalesOrderSubmitDto.setDistributorPrice(busSalesOrderSubmitDto.getDistributorPriceTwo());
busSalesOrderSubmitDto.setDistributorNameTwo("");
busSalesOrderSubmitDto.setDistributorPriceTwo("");
busSalesOrderSubmit.setDistributorNameTwo("");
busSalesOrderSubmit.setDistributorPriceTwo(BigDecimal.ZERO);
busSalesOrderSubmit.setDistributorSid(busSalesOrderSubmitDto.getDistributorSidTwo());
busSalesOrderSubmit.setDistributorSidTwo("");
busSalesOrderSubmit.setDistributorMobile(busSalesOrderSubmitDto.getDistributorMobileTwo());
busSalesOrderSubmit.setDistributorMobileTwo("");
busSalesOrderSubmit.setDistributorUnit(busSalesOrderSubmitDto.getDistributorUnitTwo());
busSalesOrderSubmit.setDistributorUnitTwo("");
}
}
BigDecimal priceBig = new BigDecimal("0"); BigDecimal priceBig = new BigDecimal("0");
BigDecimal priceAll = new BigDecimal("0"); BigDecimal priceAll = new BigDecimal("0");
BigDecimal priceBigTwo = new BigDecimal("0");
BigDecimal priceAllTwo = new BigDecimal("0");
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPrice())) { if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPrice())) {
priceBig = new BigDecimal(busSalesOrderSubmitDto.getDistributorPrice()); priceBig = new BigDecimal(busSalesOrderSubmitDto.getDistributorPrice());
busSalesOrderSubmit.setDistributorPrice(priceBig); busSalesOrderSubmit.setDistributorPrice(priceBig);
}
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPriceTwo())) {
priceBigTwo = new BigDecimal(busSalesOrderSubmitDto.getDistributorPriceTwo());
busSalesOrderSubmit.setDistributorPriceTwo(priceBigTwo);
} }
if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPriceAll())) { if (StringUtils.isNotBlank(busSalesOrderSubmitDto.getDistributorPriceAll())) {
priceAll = new BigDecimal(busSalesOrderSubmitDto.getDistributorPriceAll()); priceAll = new BigDecimal(busSalesOrderSubmitDto.getDistributorPriceAll());

10
anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagehandover.vue

@ -170,7 +170,9 @@ export default {
contractNo: '', contractNo: '',
customerName: '', customerName: '',
recName: '', recName: '',
transferName: '' transferName: '',
orgPath: '',
menuUrl: ''
}, },
current: 1, current: 1,
size: 10, size: 10,
@ -231,6 +233,8 @@ export default {
getList() { getList() {
this.listLoading = true this.listLoading = true
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid') this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.listQuery.params.menuUrl = this.$route.path
listPage(this.listQuery).then((response) => { listPage(this.listQuery).then((response) => {
console.log('列表查询结果:', response) console.log('列表查询结果:', response)
this.listLoading = false this.listLoading = false
@ -262,7 +266,9 @@ export default {
contractNo: '', contractNo: '',
customerName: '', customerName: '',
recName: '', recName: '',
transferName: '' transferName: '',
orgPath: '',
menuUrl: ''
}, },
current: 1, current: 1,
size: 10, size: 10,

10
anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagetobehandover.vue

@ -165,7 +165,9 @@ export default {
contractNo: '', contractNo: '',
customerName: '', customerName: '',
recName: '', recName: '',
transferName: '' transferName: '',
orgPath: '',
menuUrl: ''
}, },
current: 1, current: 1,
size: 10, size: 10,
@ -219,6 +221,8 @@ export default {
getList() { getList() {
this.listLoading = true this.listLoading = true
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid') this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.listQuery.params.menuUrl = this.$route.path
listPage(this.listQuery).then((response) => { listPage(this.listQuery).then((response) => {
this.listLoading = false this.listLoading = false
if (response.success) { if (response.success) {
@ -250,7 +254,9 @@ export default {
contractNo: '', contractNo: '',
customerName: '', customerName: '',
recName: '', recName: '',
transferName: '' transferName: '',
orgPath: '',
menuUrl: ''
}, },
current: 1, current: 1,
size: 10, size: 10,

238
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java

@ -33,12 +33,17 @@ import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.flowable.api.flow.*; import com.yxt.anrui.flowable.api.flow.*;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment; import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo; import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.processcomment.ProcessCommentDto;
import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService; import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService;
import com.yxt.anrui.flowable.biz.process.ProcessService; import com.yxt.anrui.flowable.biz.process.ProcessService;
import com.yxt.anrui.flowable.biz.processcomment.ProcessCommentService;
import com.yxt.anrui.flowable.feign.MessageFeign; import com.yxt.anrui.flowable.feign.MessageFeign;
import com.yxt.anrui.flowable.feign.form.MessageFlowVo; import com.yxt.anrui.flowable.feign.form.MessageFlowVo;
import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery; import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables; import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccFeign; import com.yxt.anrui.portal.api.sysflowcc.SysFlowccFeign;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccVo; import com.yxt.anrui.portal.api.sysflowcc.SysFlowccVo;
import com.yxt.anrui.portal.api.sysuser.*; import com.yxt.anrui.portal.api.sysuser.*;
@ -98,6 +103,10 @@ public class FlowableRest implements FlowableFeign {
private MessageFeign messageFeign; private MessageFeign messageFeign;
@Resource @Resource
protected HistoryService historyService; protected HistoryService historyService;
@Autowired
private SysFlowableConfigFeign sysFlowableConfigFeign;
@Autowired
private ProcessCommentService processCommentService;
/** /**
* 流程抄送的功能 * 流程抄送的功能
@ -359,8 +368,6 @@ public class FlowableRest implements FlowableFeign {
log.info("b:{}", b); log.info("b:{}", b);
UpdateFlowFieldVo vo = new UpdateFlowFieldVo(); UpdateFlowFieldVo vo = new UpdateFlowFieldVo();
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
// Map<String, Object> formVariables = dto.getFormVariables();
String taskId = dto.getTaskId(); String taskId = dto.getTaskId();
if (StringUtils.isBlank(taskId)) { if (StringUtils.isBlank(taskId)) {
return rb.setMsg("taskId 不能为空!"); return rb.setMsg("taskId 不能为空!");
@ -368,27 +375,227 @@ public class FlowableRest implements FlowableFeign {
if (StringUtils.isBlank(dto.getBusinessSid())) { if (StringUtils.isBlank(dto.getBusinessSid())) {
return rb.setMsg("businessSid 不能为空!"); return rb.setMsg("businessSid 不能为空!");
} }
/*if(formVariables==null){
return rb.setMsg("业务参数集合 不能为空!");
}*/
if (dto.getFormVariables() == null) if (dto.getFormVariables() == null)
dto.setFormVariables(new HashMap<String, Object>()); dto.setFormVariables(new HashMap<String, Object>());
Map<String, Object> formVariables = dto.getFormVariables(); Map<String, Object> formVariables = dto.getFormVariables();
formVariables.put("businessSid", dto.getBusinessSid()); formVariables.put("businessSid", dto.getBusinessSid());
String nextUserSid = dto.getNextNodeUserSids();
boolean adminContains = false;
boolean isChange = false;
String firstName = "";
String firstSid = "";
if (StringUtils.isBlank(nextUserSid)) {
ResultBean<UserAndOrgPath> nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto);
if (!nextNodeUserSidsOfSubmit.getSuccess()) {
// return rb.setMsg("nextUserSid 不能为空!");
//=================================添加系统个管理员自动审批
nextUserSid = "427a2fb0-60c5-409f-bea4-4eb441041ae6";
adminContains = true;
}else{
nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid();
formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath());
List<String> nextUserList = Arrays.asList(nextUserSid.split(","));
if(nextUserList.size() == 1){
firstSid = nextUserList.get(0);
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(firstSid);
if(sysUserVoResultBean.getData() != null){
firstName = sysUserVoResultBean.getData().getName();
}
SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery();
sysFlowableConfigQuery.setUserSid(firstSid);
sysFlowableConfigQuery.setNowDate(new Date());
ResultBean<SysFlowableConfigVvo> sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery);
if(sysFlowableConfigVvoResultBean.getData() != null){
nextUserSid = sysFlowableConfigVvoResultBean.getData().getChangeUserSid();
isChange = true;
}
}
}
}
String comment = dto.getComment();
if (StringUtils.isBlank(comment)) {
comment = "";
}
String instanceId = dto.getInstanceId();
if (StringUtils.isBlank(instanceId)) {
return rb.setMsg("instanceId 不能为空!");
}
String userSid = dto.getUserSid();
if (StringUtils.isBlank(userSid)) {
return rb.setMsg("userSid 不能为空!");
}
String businessSid = dto.getBusinessSid();
if (StringUtils.isBlank(businessSid)) {
return rb.setMsg("业务sid 不能为空!");
}
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (Objects.isNull(task)) {
return rb.setMsg("任务不存在");
}
String assignee = task.getAssignee();
if (b && (StringUtils.isNotBlank(assignee) && assignee.indexOf(userSid) < 0)) {
return rb.setMsg("当前用户不是环节的待办人,不能进行办理操作!");
}
String nodeState = "";
String taskDefKey = "";
vo.setSid(businessSid);
if (DelegationState.PENDING.equals(task.getDelegationState())) {
taskService.addComment(taskId, instanceId,
FlowComment.DELEGATE.getType(), comment);
taskService.resolveTask(taskId, formVariables);
} else {
taskService.addComment(taskId, instanceId, FlowComment.NORMAL.getType(), comment);
log.error("taskid:{},userSid:{}", taskId, userSid);
log.error("formVariables:{}", JSON.toJSONString(formVariables));
taskService.setAssignee(taskId, userSid);
taskService.complete(taskId, formVariables);
//根据流程实例的id取最新的待办环节,给环节设置上用户sid
ResultBean<List<LatestTaskVo>> ll = flowtaskService.getLatestTasksNew(instanceId);
if (ll.getData().size() > 0) {
LatestTaskVo latestTaskVo = ll.getData().get(0);
String id_ = latestTaskVo.getId_();
if(isChange){//添加评论
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(nextUserSid);
ProcessCommentDto processCommentDto = new ProcessCommentDto();
processCommentDto.setReviewerSid(firstSid);
if(sysUserVoResultBean.getData() != null){
String changeName = sysUserVoResultBean.getData().getName();
processCommentDto.setReviewer(firstName);
processCommentDto.setContent("交"+changeName+"转办");
}
processCommentDto.setTime(new Date());
processCommentDto.setProcessId(dto.getModelId());
processCommentDto.setProcessInstSid(dto.getInstanceId());
processCommentService.saveOrUpdateDto(processCommentDto);
}
taskService.setAssignee(id_, nextUserSid);
vo.setTaskId(id_);
//在act_ru_variable表中增加环节上的业务参数的变量
taskService.setVariablesLocal(id_, formVariables);
nodeState = latestTaskVo.getName_();
taskDefKey = latestTaskVo.getTask_def_key_();
} else {
nodeState = FlowComment.SETTLE.getRemark();
taskDefKey = "Event_end";
vo.setNodeState(FlowComment.SETTLE.getRemark());
}
}
if (adminContains) {
dto.setUserSid(nextUserSid);
dto.setTaskId(vo.getTaskId());
dto.setTaskDefKey(taskDefKey);
dto.setComment("系统管理员已自动审批");
return handleProsess(dto, false);
}
List<FlowElement> flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(),
dto.getFormVariables());
boolean contains = false;
boolean adminSecondsContains = false;
for (int i = 0; i < flowElements.size(); i++) {
FlowElement flowElement = flowElements.get(i);
String id = flowElement.getId();
if (taskDefKey.equals(id) && i + 1 < flowElements.size()) {
FlowElement flowElement1 = flowElements.get(i + 1);
if (flowElement1 instanceof UserTask) {
UserTask userTask = (UserTask) flowElement1;
List<String> candidateGroups = userTask.getCandidateGroups();
List<SysUserVo> sysUserVoLists = new ArrayList<>();
//根据角色查询用户
for (String roleSid : candidateGroups) {
UserQuery userQuery = new UserQuery();
userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(dto.getOrgSidPath());
ResultBean<List<SysUserVo>> userByRole = sysUserFeign.getUserByRole(userQuery);
boolean success = userByRole.getSuccess();
if (!success) {
continue;
}
sysUserVoLists.addAll(userByRole.getData());
}
//当前环节运营部总经理 刘丽艳 点击同意 下一环节 事业部副总经理 (nextUserSid) 和事业部总经理(sysUserVoLists.get(0).getSid())
//判断查询回来的用户的集合size是1 并且用户的sid和下一环节的用户的sid相同。
if (sysUserVoLists.size() == 1 && sysUserVoLists.get(0).getSid().equals(nextUserSid)) {
contains = true;
break;
}
//如果下一环节无用户,则默认系统管理员自动审批
if(sysUserVoLists.size() == 0 && StringUtils.isNotBlank(nextUserSid)){
contains = true;
break;
}
if(sysUserVoLists.size() == 0){
adminSecondsContains = true;
break;
}
}
}
if (contains) {
break;
}
if (adminSecondsContains) {
break;
}
}
if (contains) {
dto.setUserSid(nextUserSid);
dto.setTaskId(vo.getTaskId());
dto.setTaskDefKey(taskDefKey);
dto.setComment("因与下一级审批人相同,系统自动处理,需以下一级审批人审批意见为准!");
return handleProsess(dto, false);
}
if (adminSecondsContains) {
dto.setUserSid(nextUserSid);
dto.setTaskId(vo.getTaskId());
dto.setTaskDefKey(taskDefKey);
dto.setComment("系统管理员已自动审批");
return handleProsess(dto, false);
}
vo.setProcInsId(instanceId);
vo.setProcDefId(task.getProcessDefinitionId());
vo.setNodeState(nodeState);
vo.setTaskDefKey(taskDefKey);
vo.setNextNodeUserSids(nextUserSid);
return rb.success().setData(vo);
}
/**
* 未添加系统管理员自动审批功能
* @param dto
* @param b 是否连续跳转环节
* @return
*/
public ResultBean<UpdateFlowFieldVo> handleProsess111(BusinessVariables dto, boolean b) {
log.info("BusinessVariables:{}", JSONObject.toJSONString(dto));
log.info("b:{}", b);
UpdateFlowFieldVo vo = new UpdateFlowFieldVo();
ResultBean rb = ResultBean.fireFail();
String taskId = dto.getTaskId();
if (StringUtils.isBlank(taskId)) {
return rb.setMsg("taskId 不能为空!");
}
if (StringUtils.isBlank(dto.getBusinessSid())) {
return rb.setMsg("businessSid 不能为空!");
}
if (dto.getFormVariables() == null)
dto.setFormVariables(new HashMap<String, Object>());
Map<String, Object> formVariables = dto.getFormVariables();
formVariables.put("businessSid", dto.getBusinessSid());
String nextUserSid = dto.getNextNodeUserSids(); String nextUserSid = dto.getNextNodeUserSids();
if (StringUtils.isBlank(nextUserSid)) { if (StringUtils.isBlank(nextUserSid)) {
ResultBean<UserAndOrgPath> nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto); ResultBean<UserAndOrgPath> nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto);
if (!nextNodeUserSidsOfSubmit.getSuccess()) { if (!nextNodeUserSidsOfSubmit.getSuccess()) {
return rb.setMsg("nextUserSid 不能为空!"); return rb.setMsg("nextUserSid 不能为空!");
}else{
nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid();
formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath());
} }
nextUserSid = nextNodeUserSidsOfSubmit.getData().getUserSid();
formVariables.put(BusinessVariables.ORGPATH, nextNodeUserSidsOfSubmit.getData().getOrgPath());
} }
String comment = dto.getComment(); String comment = dto.getComment();
if (StringUtils.isBlank(comment)) { if (StringUtils.isBlank(comment)) {
comment = ""; comment = "";
//return rb.setMsg("comment 不能为空!");
} }
String instanceId = dto.getInstanceId(); String instanceId = dto.getInstanceId();
if (StringUtils.isBlank(instanceId)) { if (StringUtils.isBlank(instanceId)) {
@ -397,7 +604,6 @@ public class FlowableRest implements FlowableFeign {
String userSid = dto.getUserSid(); String userSid = dto.getUserSid();
if (StringUtils.isBlank(userSid)) { if (StringUtils.isBlank(userSid)) {
return rb.setMsg("userSid 不能为空!"); return rb.setMsg("userSid 不能为空!");
} }
String businessSid = dto.getBusinessSid(); String businessSid = dto.getBusinessSid();
if (StringUtils.isBlank(businessSid)) { if (StringUtils.isBlank(businessSid)) {
@ -418,18 +624,12 @@ public class FlowableRest implements FlowableFeign {
if (DelegationState.PENDING.equals(task.getDelegationState())) { if (DelegationState.PENDING.equals(task.getDelegationState())) {
taskService.addComment(taskId, instanceId, taskService.addComment(taskId, instanceId,
FlowComment.DELEGATE.getType(), comment); FlowComment.DELEGATE.getType(), comment);
// Map<String,Object> values =(Map<String,Object>) formVariables.get("values");
taskService.resolveTask(taskId, formVariables); taskService.resolveTask(taskId, formVariables);
} else { } else {
taskService.addComment(taskId, instanceId, FlowComment.NORMAL.getType(), comment); taskService.addComment(taskId, instanceId, FlowComment.NORMAL.getType(), comment);
log.error("taskid:{},userSid:{}", taskId, userSid); log.error("taskid:{},userSid:{}", taskId, userSid);
log.error("formVariables:{}", JSON.toJSONString(formVariables)); log.error("formVariables:{}", JSON.toJSONString(formVariables));
taskService.setAssignee(taskId, userSid); taskService.setAssignee(taskId, userSid);
//formVariables.remove("userSid");
/*for(Map.Entry<String, Object> entry:formVariables.entrySet()){
taskService.setVariable(taskId,entry.getKey(),entry.getValue());
System.out.println(entry.getKey()+"--->"+entry.getValue());
}*/
taskService.complete(taskId, formVariables); taskService.complete(taskId, formVariables);
//根据流程实例的id取最新的待办环节,给环节设置上用户sid //根据流程实例的id取最新的待办环节,给环节设置上用户sid
ResultBean<List<LatestTaskVo>> ll = flowtaskService.getLatestTasksNew(instanceId); ResultBean<List<LatestTaskVo>> ll = flowtaskService.getLatestTasksNew(instanceId);
@ -438,13 +638,6 @@ public class FlowableRest implements FlowableFeign {
String id_ = latestTaskVo.getId_(); String id_ = latestTaskVo.getId_();
taskService.setAssignee(id_, nextUserSid); taskService.setAssignee(id_, nextUserSid);
vo.setTaskId(id_); vo.setTaskId(id_);
/* for(Map.Entry<String, Object> entry:formVariables.entrySet()){
taskService.setVariable(id_,entry.getKey(),entry.getValue());
taskService.setVariableLocal(id_,entry.getKey(),entry.getValue());
System.out.println(entry.getKey()+"--->"+entry.getValue());
}*/
// taskService.setVariables(id_,formVariables);
//在act_ru_variable表中增加环节上的业务参数的变量 //在act_ru_variable表中增加环节上的业务参数的变量
taskService.setVariablesLocal(id_, formVariables); taskService.setVariablesLocal(id_, formVariables);
nodeState = latestTaskVo.getName_(); nodeState = latestTaskVo.getName_();
@ -455,7 +648,6 @@ public class FlowableRest implements FlowableFeign {
vo.setNodeState(FlowComment.SETTLE.getRemark()); vo.setNodeState(FlowComment.SETTLE.getRemark());
} }
} }
//ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(dto.getInstanceId(), dto.getModelId());
List<FlowElement> flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(), List<FlowElement> flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(),
dto.getFormVariables()); dto.getFormVariables());
boolean contains = false; boolean contains = false;

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

@ -311,6 +311,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
List<FlowTask> hisFlowList = new ArrayList<>(); List<FlowTask> hisFlowList = new ArrayList<>();
for (HistoricActivityInstance histIns : list) { for (HistoricActivityInstance histIns : list) {
if (StringUtils.isNotBlank(histIns.getTaskId())) { if (StringUtils.isNotBlank(histIns.getTaskId())) {
boolean isStop = false;
FlowTask flowTask = new FlowTask(); FlowTask flowTask = new FlowTask();
flowTask.setTaskId(histIns.getTaskId()); flowTask.setTaskId(histIns.getTaskId());
flowTask.setTaskName(histIns.getActivityName()); flowTask.setTaskName(histIns.getActivityName());
@ -334,6 +335,9 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
List<SysUserVo> data1 = sysUserVoResultBean.getData(); List<SysUserVo> data1 = sysUserVoResultBean.getData();
List<TaskUserInfo> taskUserInfos=new ArrayList<>(); List<TaskUserInfo> taskUserInfos=new ArrayList<>();
for( SysUserVo data:data1){ for( SysUserVo data:data1){
if("admin".equals(data.getName())){
isStop = true;
}
TaskUserInfo taskUserInfo=new TaskUserInfo(); TaskUserInfo taskUserInfo=new TaskUserInfo();
taskUserInfo.setAssigneeName(data.getName()); taskUserInfo.setAssigneeName(data.getName());
taskUserInfo.setAssigneeSid(data.getSid()); taskUserInfo.setAssigneeSid(data.getSid());
@ -344,6 +348,10 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
} }
flowTask.setTaskUserInfos(taskUserInfos); flowTask.setTaskUserInfos(taskUserInfos);
} }
if(isStop){
continue;
}
// 展示审批人员 // 展示审批人员
List<HistoricIdentityLink> linksForTask = historyService.getHistoricIdentityLinksForTask(histIns.getTaskId()); List<HistoricIdentityLink> linksForTask = historyService.getHistoricIdentityLinksForTask(histIns.getTaskId());
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
@ -1341,7 +1349,24 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
flowTaskVo.setTargetKey(item.getId()); flowTaskVo.setTargetKey(item.getId());
listResultBean_2= taskReject_(flowTaskVo, true); listResultBean_2= taskReject_(flowTaskVo, true);
}else{ }else{
taskService.setAssignee(id_, assignee_); if("427a2fb0-60c5-409f-bea4-4eb441041ae6".equals(assignee_)){
flowTaskVo.setTaskId(id_);
flowTaskVo.setUserSid(assignee_);
flowTaskVo.setTargetKey(item.getId());
listResultBean_2= taskReject_(flowTaskVo, true);
}else{
if("427a2fb0-60c5-409f-bea4-4eb441041ae6".equals(flowTaskVo.getUserSid())){
flowTaskVo.setTaskId(id_);
flowTaskVo.setUserSid(assignee_);
flowTaskVo.setTargetKey(item.getId());
listResultBean_2= taskReject_(flowTaskVo, true);
}else{
taskService.setAssignee(id_, assignee_);
}
}
} }
LatestTaskVo latestTaskVo = new LatestTaskVo(); LatestTaskVo latestTaskVo = new LatestTaskVo();
latestTaskVo.setASSIGNEE_(item.getAssignee()); latestTaskVo.setASSIGNEE_(item.getAssignee());
@ -1464,6 +1489,9 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("流程找不到上一环节,撤回操作失败!").setData(new ArrayList<>()); return new ResultBean<List<LatestTaskVo>>().fail().setMsg("流程找不到上一环节,撤回操作失败!").setData(new ArrayList<>());
} }
HistoricTaskInstance historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult(); HistoricTaskInstance historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult();
//==================================================添加
// historicTaskInstance1 = returnInstance(historicTaskInstance1);
//==================================================添加
String assignee = historicTaskInstance1.getAssignee(); String assignee = historicTaskInstance1.getAssignee();
String userSid = flowTaskVo.getUserSid(); String userSid = flowTaskVo.getUserSid();
ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId()); ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId());
@ -1482,6 +1510,25 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
String assigneeSid0 = taskUserInfo_0.getAssigneeSid(); String assigneeSid0 = taskUserInfo_0.getAssigneeSid();
if(!assigneeSid1.equals(assigneeSid0)){ if(!assigneeSid1.equals(assigneeSid0)){
/*if("427a2fb0-60c5-409f-bea4-4eb441041ae6".equals(assignee)){
FlowTask flowTask1 = flowList.get(1);
for(int i=1;i<flowList.size();i++){
FlowTask flowTask = flowList.get(i);
List<TaskUserInfo> taskUserInfos = flowTask.getTaskUserInfos();
TaskUserInfo taskUserInfo = taskUserInfos.get(0);
if(assigneeSid0.equals(taskUserInfo.getAssigneeSid())){
if(!FlowComment.RECALL.getType().equals( flowTask1.getComment().getType())){
ii++;
}
continue;
}else{
ybrsid=flowList.get(i).getTaskUserInfos().get(0).getAssigneeSid();
break;
}
}
}else{
ybrsid=assignee;
}*/
ybrsid=assignee; ybrsid=assignee;
}else{ }else{
FlowTask flowTask1 = flowList.get(1); FlowTask flowTask1 = flowList.get(1);
@ -1515,6 +1562,16 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
return revokeProcess(flowTaskVo,0); return revokeProcess(flowTaskVo,0);
} }
public HistoricTaskInstance returnInstance(HistoricTaskInstance historicTaskInstance1){
if("427a2fb0-60c5-409f-bea4-4eb441041ae6".equals(historicTaskInstance1.getAssignee())){
String taskId = getTaskId(historicTaskInstance1.getTaskDefinitionKey(), historicTaskInstance1.getProcessInstanceId(), historicTaskInstance1.getProcessDefinitionId());
historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult();
return returnInstance(historicTaskInstance1);
}else{
return historicTaskInstance1;
}
}
// @Transactional(rollbackFor = Exception.class) // @Transactional(rollbackFor = Exception.class)
private ResultBean<List<LatestTaskVo>> revokeProcess_( String processInstanceId, private ResultBean<List<LatestTaskVo>> revokeProcess_( String processInstanceId,
String assignee ) { String assignee ) {

26
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java

@ -0,0 +1,26 @@
package com.yxt.anrui.portal.api.sysflowableconfig;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @description: 转办设置
* @author: dimengzhe
* @date: 2023/6/17
**/
@Data
public class SysFlowableConfig extends BaseEntity {
private static final long serialVersionUID = 6324080869870694172L;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("转办人的sid")
private String chengeUserSid;
@ApiModelProperty("开始时间")
private Date startDate;
@ApiModelProperty("结束时间")
private Date endDate;
}

26
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java

@ -0,0 +1,26 @@
package com.yxt.anrui.portal.api.sysflowableconfig;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.GetMapping;
/**
* @description: 转办设置
* @author: dimengzhe
* @date: 2023/6/17
**/
@Api(tags = "流程转办设置")
@FeignClient(
contextId = "anrui-portal-SysFlowableConfig",
name = "anrui-portal",
path = "v1/SysFlowableConfig",
fallback = SysFlowableConfigFeignFallback.class)
public interface SysFlowableConfigFeign {
@ApiOperation("查询是否有转办人 ")
@GetMapping("/selectByUserSid")
ResultBean<SysFlowableConfigVvo> selectByUserSid(@SpringQueryMap SysFlowableConfigQuery query);
}

12
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.portal.api.sysflowableconfig;
import org.springframework.stereotype.Component;
/**
* @description: 转办设置
* @author: dimengzhe
* @date: 2023/6/17
**/
@Component
public class SysFlowableConfigFeignFallback {
}

22
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java

@ -0,0 +1,22 @@
package com.yxt.anrui.portal.api.sysflowableconfig;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @description: 转办
* @author: dimengzhe
* @date: 2023/6/19
**/
@Data
public class SysFlowableConfigQuery implements Query {
private static final long serialVersionUID = -7197208684456288643L;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("当前时间")
private Date nowDate;
}

17
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java

@ -0,0 +1,17 @@
package com.yxt.anrui.portal.api.sysflowableconfig;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description: 转办
* @author: dimengzhe
* @date: 2023/6/19
**/
@Data
public class SysFlowableConfigVvo implements Vo {
private static final long serialVersionUID = -3291554285219440731L;
@ApiModelProperty("转办人sid")
private String changeUserSid;
}

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

@ -200,19 +200,21 @@ public class FlowableRest implements FlowableFeign {
flowableQuery.setTaskDefKey(appFlowableRecordVo.getTaskDefKey()); flowableQuery.setTaskDefKey(appFlowableRecordVo.getTaskDefKey());
flowableQuery.setMap(map); flowableQuery.setMap(map);
ResultBean<List<Map<String,Object>>> resultBean = flowTaskFeign.yuyanTest(flowableQuery); ResultBean<List<Map<String,Object>>> resultBean = flowTaskFeign.yuyanTest(flowableQuery);
if(!resultBean.getData().isEmpty()){ if(resultBean.getData() != null){
List<Map<String,Object>> mapList = resultBean.getData(); if(!resultBean.getData().isEmpty()){
mapList.forEach(f->{ List<Map<String,Object>> mapList = resultBean.getData();
PCHistTaskListAndCommentList a = new PCHistTaskListAndCommentList(); mapList.forEach(f->{
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f); PCHistTaskListAndCommentList a = new PCHistTaskListAndCommentList();
stringObjectMap.put("taskName",f.get("nodeName").toString()); Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
stringObjectMap.put("finishTime",null); stringObjectMap.put("taskName",f.get("nodeName").toString());
stringObjectMap.put("createTime",""); stringObjectMap.put("finishTime",null);
stringObjectMap.put("taskUserInfos",new ArrayList<>()); stringObjectMap.put("createTime","");
a.setFlowableRecordVo(stringObjectMap); stringObjectMap.put("taskUserInfos",new ArrayList<>());
a.setState(3 + ""); a.setFlowableRecordVo(stringObjectMap);
flowList.add(a); a.setState(3 + "");
}); flowList.add(a);
});
}
} }
} }
} }

18
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java

@ -0,0 +1,18 @@
package com.yxt.anrui.portal.biz.sysflowableconfig;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfig;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.Date;
/**
* @description:
* @author: dimengzhe
* @date: 2023/6/17
**/
@Mapper
public interface SysFlowableConfigMapper extends BaseMapper<SysFlowableConfig> {
SysFlowableConfig selectByUserSid(@Param("userSid") String userSid, @Param("nowDate") Date nowDate);
}

7
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml

@ -0,0 +1,7 @@
<?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.yxt.anrui.portal.biz.sysflowableconfig.SysFlowableConfigMapper">
<select id="selectByUserSid" resultType="com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfig">
select * from sys_flowable_config where userSid = #{userSid} and #{nowDate} between startDate and endDate
</select>
</mapper>

29
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java

@ -0,0 +1,29 @@
package com.yxt.anrui.portal.biz.sysflowableconfig;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @description: 转办设置rest
* @author: dimengzhe
* @date: 2023/6/17
**/
@Api(tags = "转办设置")
@RestController
@RequestMapping("v1/SysFlowableConfig")
public class SysFlowableConfigRest implements SysFlowableConfigFeign {
@Autowired
private SysFlowableConfigService sysFlowableConfigService;
@Override
public ResultBean<SysFlowableConfigVvo> selectByUserSid(SysFlowableConfigQuery query) {
return sysFlowableConfigService.selectByUserSid(query);
}
}

30
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java

@ -0,0 +1,30 @@
package com.yxt.anrui.portal.biz.sysflowableconfig;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfig;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.Date;
/**
* @description: 转办
* @author: dimengzhe
* @date: 2023/6/17
**/
@Service
public class SysFlowableConfigService extends MybatisBaseService<SysFlowableConfigMapper, SysFlowableConfig> {
public ResultBean<SysFlowableConfigVvo> selectByUserSid(SysFlowableConfigQuery query) {
ResultBean<SysFlowableConfigVvo> rb = ResultBean.fireFail();
SysFlowableConfigVvo sysFlowableConfigVvo = new SysFlowableConfigVvo();
//查询该用户当前时间是否有转办人
String userSid = query.getUserSid();
Date nowDate = query.getNowDate();
SysFlowableConfig sysFlowableConfig = baseMapper.selectByUserSid(userSid,nowDate);
BeanUtil.copyProperties(sysFlowableConfig,sysFlowableConfigVvo);
return rb.success().setData(sysFlowableConfigVvo);
}
}

10
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageApplyDetailsVo.java

@ -75,7 +75,12 @@ public class AppDiscountpackageApplyDetailsVo implements Vo {
private String model; // 车型名称 private String model; // 车型名称
@ApiModelProperty("台数") @ApiModelProperty("台数")
private String number; // 台数 private String number; // 台数
@ApiModelProperty("销售订单sid")
private String saleOrderSid; //
@ApiModelProperty("ModelOrgPath")
private String modelOrgPath; //
private String modelSid; //
private String configSid; //
@ApiModelProperty("流程定义的id") @ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id private String procDefId; // 流程定义的id
@ -99,4 +104,7 @@ public class AppDiscountpackageApplyDetailsVo implements Vo {
private String procInsId; // 流程实例的sid private String procInsId; // 流程实例的sid
@ApiModelProperty("台数") @ApiModelProperty("台数")
private String carNumber; // 台数 private String carNumber; // 台数
@ApiModelProperty("订单优惠包总价值")
private String discountAllPrice; // 订单优惠包总价值
} }

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageQuery.java

@ -12,7 +12,7 @@ public class AppDiscountpackageQuery implements Query {
@ApiModelProperty("组织机构sid") @ApiModelProperty("组织机构sid")
private String orgPath; private String orgPath;
@ApiModelProperty("合同编号 客户名称") @ApiModelProperty("合同编号 客户名称")
private String names; private String name;
@ApiModelProperty("申请日期") @ApiModelProperty("申请日期")
private String date; private String date;
@ApiModelProperty("1待办 2已办") @ApiModelProperty("1待办 2已办")

25
doc/databases/portal_tables.sql

@ -715,3 +715,28 @@ CREATE TABLE `sys_url_config`
) ENGINE = InnoDB ) ENGINE = InnoDB
AUTO_INCREMENT = 18 AUTO_INCREMENT = 18
DEFAULT CHARSET = utf8 COMMENT ='模块配置地址'; DEFAULT CHARSET = utf8 COMMENT ='模块配置地址';
DROP TABLE IF EXISTS `sys_flowable_config`;
CREATE TABLE `sys_flowable_config`
(
`id` int(11) NOT NULL AUTO_INCREMENT,
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(11) NOT NULL DEFAULT '0' COMMENT '记录版本,锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录创建时间',
`modifyTime` timestamp NULL DEFAULT CURRENT_TIMESTAMP COMMENT '记录最后修改时间',
`isEnable` int(11) NOT NULL DEFAULT '1' COMMENT '记录是否可用,1:可用,0:不可用',
`state` int(11) DEFAULT '1' COMMENT '状态',
`isDelete` int(11) DEFAULT NULL COMMENT '记录是否被删除,0:未删除,1:已经删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注信息',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建者',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '更新者',
`userSid` varchar(64) DEFAULT NULL COMMENT '办理人sid',
`changeUserSid` varchar(500) DEFAULT NULL COMMENT '转办人',
`startDate` timestamp null DEFAULT NULL COMMENT '开始时间',
`endDate` timestamp null DEFAULT NULL COMMENT '结束时间',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = InnoDB
AUTO_INCREMENT = 18
DEFAULT CHARSET = utf8 COMMENT ='转办人设置';

Loading…
Cancel
Save