diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyDetailsVo.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyDetailsVo.java index e902eefcaa..930d1b98ad 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyDetailsVo.java +++ b/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; // 申请人组织路径 @ApiModelProperty("备注") 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; // @ApiModelProperty("车型sid") // private String modelSid; @@ -108,6 +114,8 @@ public class BaseDiscountpackageApplyDetailsVo implements Vo { private String procInsId; // 流程实例的sid @ApiModelProperty("台数") private String carNumber; // 台数 + @ApiModelProperty("订单优惠包总价值") + private String discountAllPrice; // 订单优惠包总价值 // @ApiModelProperty("成交价") // private String price; } \ No newline at end of file diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyQuery.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyQuery.java index 9259ba21af..c5ee4a9180 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basediscountpackageapply/BaseDiscountpackageApplyQuery.java +++ b/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") private String orgPath; @ApiModelProperty("合同编号 客户名称") - private String names; + private String name; @ApiModelProperty("申请日期") private String date; @ApiModelProperty("1待办 2已办") diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackageapply/BaseDiscountpackageApplyService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackageapply/BaseDiscountpackageApplyService.java index afe7e2a3e3..274ce64a45 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basediscountpackageapply/BaseDiscountpackageApplyService.java +++ b/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.BusDiscountpackageHandoverFeign; 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.flowable.api.flow.FlowableFeign; 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 java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.*; import java.util.stream.Collectors; @@ -115,6 +121,10 @@ public class BaseDiscountpackageApplyService extends MybatisBaseService createQueryWrapper(BaseDiscountpackageApplyQuery query) { // todo: 这里根据具体业务调整查询条件 @@ -134,18 +144,26 @@ public class BaseDiscountpackageApplyService extends MybatisBaseService= date_format('" + createStartTime + "','%Y-%m-%d')"). apply(StringUtils.isNotEmpty(createEndTime), "date_format (applyDate,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')" ); - if (StringUtils.isNotBlank(query.getNames())) { - qw.and(wrapper -> wrapper.like("contractId", query.getNames()).or().like("customerName", query.getNames())); + if (StringUtils.isNotBlank(query.getName())) { + qw.and(wrapper -> wrapper.like("contractId", query.getName()).or().like("customerName", query.getName())); } if (StringUtils.isNotBlank(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())) { - 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"); return qw; } @@ -215,6 +233,35 @@ public class BaseDiscountpackageApplyService extends MybatisBaseService 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查询对应优惠包列表 List dtoList = baseDiscountpackagelistService.fetchDetailsByDiscountSid(sid); vo.setDiscountPackageList(dtoList); diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java index ccab6e228b..e38fb16882 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java +++ b/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 wrapper.like("contractNo", params.getNames()).or().like("partyB", params.getNames())); } + qw.orderByDesc("createDate"); IPage page = PagerUtil.queryToPage(query); IPage pagging = baseMapper.getAppContractList(page, qw); List records = pagging.getRecords(); records.removeAll(Collections.singleton(null)); if (!records.isEmpty()) { 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())) { List discountListVos = busSalesOrderDiscountFeign.getDiscountList(record.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(); 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 p = PagerUtil.pageToVo(pagging, null); return p; diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryDto.java index dcdb35f455..9b8c4f9238 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryDto.java +++ b/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; +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.common.core.dto.Dto; import io.swagger.annotations.ApiModelProperty; @@ -20,44 +22,35 @@ public class BusHandoverDeliveryDto implements Dto { private String sid; @ApiModelProperty("用户sid") 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("车型") private String modelName; - @ApiModelProperty("付款方式value") - private String payTypeValue; @ApiModelProperty("分公司sid") private String useOrgSid; @ApiModelProperty("分公司sid") private String useOrgName; @ApiModelProperty("分公司sid") 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 busItemvos; - } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryVo.java index b6df3a7d21..549816191c 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDeliveryVo.java +++ b/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; +import com.fasterxml.jackson.annotation.JsonFormat; import com.yxt.anrui.buscenter.api.bushandoveritems.BusHandoverItemForDeliveryVo; import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.util.Date; import java.util.List; /** @@ -15,24 +17,23 @@ import java.util.List; @Data public class BusHandoverDeliveryVo implements Vo { - @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("付款方式key") - private String payTypeKey; - @ApiModelProperty("车型") - private String modelName; - @ApiModelProperty("付款方式value") - private String payTypeValue; + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("分公司sid") + private String orgSidPath; + @ApiModelProperty("接收人") + private String recipient; + @ApiModelProperty("身份证号") + private String idNo; + @ApiModelProperty("联系电话") + private String mobile; + @ApiModelProperty("车辆交付日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date deliverDate; + @ApiModelProperty("车辆交付地点") + private String deliverAddress; + @ApiModelProperty("车辆交付地点Key") + private String deliverAddressKey; @ApiModelProperty("交车资料") private List busItemvos; diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailVo.java index 53ba3e1514..f3c71e9665 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverDetailVo.java +++ b/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("备注") private String remarks; @ApiModelProperty("交付车辆信息") - private List items; + private List carList = new ArrayList<>(); @ApiModelProperty("接收车辆确认书照片") - private List receiveCarImages; + private List receiveCarImages = new ArrayList<>(); @ApiModelProperty("委托提车授权书、委托人身份证(正反面)") - private List entrustImages; + private List entrustImages = new ArrayList<>(); @ApiModelProperty("交车资料确认单") - private List entrustConfirmImages; + private List entrustConfirmImages = new ArrayList<>(); @ApiModelProperty("出门证照片") - private List exitTicketImages; - + private List exitTicketImages = new ArrayList<>(); + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("组织机构sid") + private String orgSidPath; + @ApiModelProperty("流程实例id") + private String procInsId; + @ApiModelProperty("组织机构sid") + private String taskId; + + } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java index 5c4883bbb3..d7dfd5f903 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeign.java @@ -48,7 +48,7 @@ public interface BusHandoverFeign { @ApiOperation("确认交付信息回显") @PostMapping("/deliveryByHandoverWaitSids") @ResponseBody - public ResultBean deliveryByHandoverWaitSids(@RequestBody String[] sids); + public ResultBean deliveryByHandoverWaitSids(@RequestBody AppDeliveryConQuery query); @ApiOperation("保存确认交付信息") @@ -61,8 +61,8 @@ public interface BusHandoverFeign { @ResponseBody public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); - @ApiOperation("交车确认更新备注图片") - @PostMapping("/deliveryVehicle") + @ApiOperation("交车确认") + @PostMapping("/savedeliveryVehicle") @ResponseBody public ResultBean deliveryVehicle(@RequestBody BusHandoverDetailDto dto); @@ -70,6 +70,12 @@ public interface BusHandoverFeign { @PostMapping("/createPdf") ResultBean> createPdf(@RequestParam("sid") String sid); + @ApiOperation("挂车保存确认交付信息") + @PostMapping("/saveGcVinBill") + @ResponseBody + ResultBean saveGcVinBill(@RequestBody GcVinBillDto dto); + + /*******************************移动端*******************************************************************/ @ApiOperation("获取交车交付信息") @PostMapping("/getDeliveryBill") diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeignFallback.java index bb78cae055..e28c316470 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverFeignFallback.java +++ b/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.vo.PagerVo; import org.springframework.stereotype.Component; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -31,7 +32,7 @@ public class BusHandoverFeignFallback implements BusHandoverFeign { } @Override - public ResultBean deliveryByHandoverWaitSids(String[] sids) { + public ResultBean deliveryByHandoverWaitSids(AppDeliveryConQuery query) { return null; } @@ -55,6 +56,11 @@ public class BusHandoverFeignFallback implements BusHandoverFeign { return null; } + @Override + public ResultBean saveGcVinBill(GcVinBillDto dto) { + return null; + } + @Override public ResultBean getDeliveryBill(AppDeliveryConQuery query) { return null; diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitDto.java index b69c5eaf8f..2d055d98a6 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitDto.java +++ b/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 carList; @ApiModelProperty("交车资料确认单") private List entrustConfirmImages; -// @ApiModelProperty("委托人身份证(正反面)") + // @ApiModelProperty("委托人身份证(正反面)") // private List idCardImages; @ApiModelProperty("接收车辆确认书照片") private List receiveCarImages; @@ -31,4 +31,5 @@ public class BusHandoverInitDto implements Dto { @ApiModelProperty("出门证照片") private List exitTicketImages; private String orgPath; + private String orgSidPath; } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitListDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitListDto.java index 6fba4eecb0..5dc6681812 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverInitListDto.java +++ b/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 lombok.Data; +import java.util.ArrayList; import java.util.List; /** @@ -21,4 +22,9 @@ public class BusHandoverInitListDto implements Dto { private List policyImages; private List deliveryImages; + + //交车照片 + private List handoverPhotos = new ArrayList<>(); + //保单 + private List policyPhotos = new ArrayList<>(); } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverQuery.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverQuery.java index 44dceb91c9..d5a30b1421 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverQuery.java +++ b/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") private String userSid; - @ApiModelProperty("客户名称/合同编号") - private String name; - - @ApiModelProperty("orgPath") - private String orgPath; - @ApiModelProperty("合同编号") private String contractNo; @@ -39,5 +33,13 @@ public class BusHandoverQuery implements Query { private String customerName; @ApiModelProperty("付款方式value") - private String payTypeValue; + private String payTypeKey; + + @ApiModelProperty("客户名称/合同编号") + private String name; + + @ApiModelProperty("orgPath") + private String orgPath; + + } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverVos.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverVos.java index e4ccbf3c81..ff5c429b67 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/BusHandoverVos.java +++ b/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; +import com.fasterxml.jackson.annotation.JsonProperty; import com.yxt.common.core.vo.Vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -12,19 +13,31 @@ import lombok.Data; @Data public class BusHandoverVos implements Vo { - @ApiModelProperty("交车状态value") - private String handoverStateValue; + @ApiModelProperty("记录sid") + private String sid; @ApiModelProperty("合同编号") private String contractNo; + @ApiModelProperty("流程状态") + private String nodeState; + @ApiModelProperty("交车状态") + private String handoverStateValue; @ApiModelProperty("客户名称") private String customerName; + @ApiModelProperty("车型别名") + private String modelName; @ApiModelProperty("交车数量") private String carNum; - @ApiModelProperty("车型") - private String modelName; - @ApiModelProperty("显示办理") - private Boolean showComplete; - @ApiModelProperty("显示挂车") - private Boolean showTrailer; + @ApiModelProperty("是否显示交车确认") + private boolean showUpdate; + @ApiModelProperty("是否显示挂车") + private boolean showGcBtn; + @ApiModelProperty("确认资料下载地铁") + private String filePath; + @ApiModelProperty("确认挂车资料下载地址") + private String trailerFilePath; + @ApiModelProperty("显示挂车下载按钮") + private Boolean showGcDownload; + @ApiModelProperty("挂车确认按钮") + private boolean showGcBtn2; } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/GcVinBillDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/GcVinBillDto.java new file mode 100644 index 0000000000..32bffada5d --- /dev/null +++ b/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; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/app/AppDeliveryConQuery.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/app/AppDeliveryConQuery.java index a975493ece..5be1e67476 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandover/app/AppDeliveryConQuery.java +++ b/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 orgPath; + private String orgSidPath; } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryDto.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryDto.java index b68ae6e2ca..d5a45dcb77 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryDto.java +++ b/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; +import com.fasterxml.jackson.annotation.JsonProperty; import com.yxt.common.core.dto.Dto; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -14,17 +15,14 @@ import java.util.List; @Data public class BusHandoverItemForDeliveryDto implements Dto { - private String handoverSid; - private String modelSid; - private String modelName; - private String vinSid; + @ApiModelProperty("车架号") private String vinNo; + + @ApiModelProperty("资料key") private String itemKey; + + @ApiModelProperty("资料value") private String itemValue; - private List handoverPhoto; - private List policyPhoto; - @ApiModelProperty("是否是燃气车 0不是1是") - private String isFuelVehicle; // 是否是燃气车 0不是1是 - @ApiModelProperty("材料是否完全") - private String completeState; // 是否是燃气车 0不是1是 + + private String sid; } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryVo.java index e89cde7910..13706df7c8 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryVo.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemForDeliveryVo.java @@ -12,14 +12,14 @@ import lombok.Data; @Data public class BusHandoverItemForDeliveryVo implements Vo { - private String modelSid; - private String modelName; - private String vinSid; +// private String modelSid; +// private String modelName; + private String sid; private String vinNo; private String itemKey; private String itemValue; - @ApiModelProperty("是否是燃气车 0不是1是") - private String isFuelVehicle; // 是否是燃气车 0不是1是 - @ApiModelProperty("资料是否完全0不全1全") - private String completeState; +// @ApiModelProperty("是否是燃气车 0不是1是") +// private String isFuelVehicle; // 是否是燃气车 0不是1是 +// @ApiModelProperty("资料是否完全0不全1全") +// private String completeState; } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsVo.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsVo.java index 12f083e6d3..b05a1d9079 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bushandoveritems/BusHandoverItemListDetailsVo.java +++ b/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 lombok.Data; +import java.util.ArrayList; import java.util.List; /** @@ -13,10 +14,10 @@ import java.util.List; @Data public class BusHandoverItemListDetailsVo implements Vo { - private String sid; + private String vinSid; private String vinNo; //交车照片 - private List handoverPhoto; + private List deliveryImages = new ArrayList<>(); //保单 - private List policyPhoto; + private List policyImages = new ArrayList<>(); } diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml index 60d3f407e7..fe327d7665 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverMapper.xml @@ -126,7 +126,10 @@ bh.customerName, bh.handoverStateValue, bh.modelName, - bh.carNum + bh.carNum, + bh.nodeState, + bh.filePath, + bh.trailerFilePath from bus_handover bh ${ew.sqlSegment} diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverRest.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverRest.java index e2d982a9cc..beae237204 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverRest.java +++ b/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 io.swagger.annotations.Api; 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.RestController; @@ -44,8 +45,8 @@ public class BusHandoverRest implements BusHandoverFeign { } @Override - public ResultBean deliveryByHandoverWaitSids(String[] sids) { - return busHandoverService.deliveryByHandoverWaitSids(sids); + public ResultBean deliveryByHandoverWaitSids(AppDeliveryConQuery query) { + return busHandoverService.deliveryByHandoverWaitSids(query); } @Override @@ -68,6 +69,11 @@ public class BusHandoverRest implements BusHandoverFeign { return busHandoverService.createPdf(sid); } + @Override + public ResultBean saveGcVinBill(GcVinBillDto dto) { + return busHandoverService.saveGcVinBill(dto); + } + @Override public ResultBean getDeliveryBill(AppDeliveryConQuery query) { return busHandoverService.getDeliveryBill(query); diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java index ef733c681f..bb7b964de7 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java +++ b/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.stereotype.Service; import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.RequestBody; import java.io.File; import java.io.InputStream; @@ -702,7 +703,6 @@ public class BusHandoverService extends MybatisBaseService carList = dto.getCarList(); carList.removeAll(Collections.singleton(null)); if (!carList.isEmpty()) { - for (BusHandoverInitListDto busHandoverInitListDto : carList) { String vinSid = busHandoverInitListDto.getVinSid(); List policyImagesList = busHandoverInitListDto.getPolicyImages(); @@ -845,40 +845,24 @@ public class BusHandoverService extends MybatisBaseService deliveryByHandoverWaitSids(String[] sids) { - ResultBean rb = ResultBean.fireFail(); + public ResultBean deliveryByHandoverWaitSids(AppDeliveryConQuery query) { + ResultBean rb = ResultBean.fireFail(); BusHandoverDeliveryVo vo = new BusHandoverDeliveryVo(); + vo.setDeliverDate((new Date())); + vo.setUserSid(query.getUserSid()); + vo.setOrgSidPath(query.getOrgSidPath()); List voList = new ArrayList<>(); - vo.setCarNum(String.valueOf(sids.length)); + List sids = query.getList(); + sids.removeAll(Collections.singleton(null)); for (String sid : sids) { //遍历sid从待交车列表中查询信息 BusHandoverWait handoverWait = busHandoverWaitService.fetchBySid(sid); if (handoverWait != null) { 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 sbKey = new StringBuffer(); //从交车准备中查询交车资料 @@ -895,7 +879,6 @@ public class BusHandoverService extends MybatisBaseService 0) { BusVehicleInformationHandoverDetailsListVo data = busVehicleInformationHandoverService.detailsByVinSid(handoverWait.getVinSid()).getData(); if (null != data) { - itemVo.setIsFuelVehicle(data.getIsFuelVehicle()); if (data.getInformations().size() > 0) { List informations = data.getInformations(); for (BusVehicleInformationVo information : informations) { @@ -946,19 +929,8 @@ public class BusHandoverService extends MybatisBaseService saveOrUpdateBusHandover(BusHandoverDeliveryDto dto) throws Exception { - ResultBean rb = ResultBean.fireFail(); - //ToDo:验证是否包含已存在的车辆 - String contractNo = dto.getContractNo(); - List vinList = dto.getBusItemvos(); - if (vinList.size() == 0) { - return rb.setMsg("请选择车辆"); - } - List vinSidList = vinList.stream().map(v -> v.getVinSid()).collect(Collectors.toList()); - int count = baseMapper.selectByCount(contractNo, vinSidList); - if (count > 0) { - return rb.setMsg("选择的车辆包含已存在交车确认记录的数据"); + ResultBean rb = ResultBean.fireFail(); + BusHandover busHandover = new BusHandover(); + BeanUtil.copyProperties(dto, busHandover, "id", "sid"); + //流程状态 + busHandover.setNodeState("待提交"); + //交车状态 + busHandover.setHandoverStateKey("001"); + busHandover.setHandoverStateValue("未交车"); + busHandover.setCreateBySid(dto.getUserSid()); + ResultBean orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgSidPath()); + if (orgSidByPath.getSuccess()) { + String userOrgSid = orgSidByPath.getData(); + busHandover.setUseOrgSid(userOrgSid); + //交车资料确认单编号 + String billNo = getApplyCode(userOrgSid); + busHandover.setBillNo(billNo); + ResultBean organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid); + if (organizationVo.getSuccess()) { + SysOrganizationVo organizationVoData = organizationVo.getData(); + if (null != organizationVoData) { + busHandover.setUseOrgName(organizationVoData.getName()); + } + } } - BusHandover entity = new BusHandover(); - String sid = entity.getSid(); - BeanUtil.copyProperties(dto, entity, "id", "sid"); - entity.setHandoverStateKey("001"); - entity.setHandoverStateValue("未交车"); - if (StringUtils.isNotBlank(dto.getUserSid())) { - entity.setCreateBySid(dto.getUserSid()); - } - //交车资料确认单编号 - String billNo = getApplyCode(dto.getUseOrgSid()); - entity.setBillNo(billNo); - entity.setNodeState("待提交"); - baseMapper.insert(entity); - List busItemvos = dto.getBusItemvos(); - for (BusHandoverItemForDeliveryDto busItemvo : busItemvos) { - BusHandoverItems items = new BusHandoverItems(); - BeanUtil.copyProperties(busItemvo, items); - items.setHandoverSid(sid); - int insert = busHandoverItemsService.insert(items); - if (insert > 0) { - //逻辑删除待交车车辆列表中勾选车辆 - busHandoverWaitService.deleteByVinSid(dto.getContractNo(), busItemvo.getVinSid()); - } - } - - //打印pdf - List filePaths = createPdf(entity.getSid()).getData(); - List fileList = new ArrayList<>(); - if (!filePaths.isEmpty()) { - for (String filePath : filePaths) { - File file = new File(filePath); - fileList.add(file); + if (!CollectionUtils.isEmpty(dto.getBusItemvos())) { + List vinList = dto.getBusItemvos(); + for (BusHandoverItemForDeliveryDto deliveryConDto : vinList) { + String recordSid = deliveryConDto.getSid(); + BusHandoverWait handoverWait = busHandoverWaitService.fetchBySid(recordSid); + //交车数量 + busHandover.setCarNum(String.valueOf(vinList.size())); + //合同号 + busHandover.setContractNo(handoverWait.getContractNo()); + //客户名 + busHandover.setCustomerName(handoverWait.getCustomerName()); + //客户sid + busHandover.setCustomerSid(handoverWait.getCustomerSid()); + //付款方式 + busHandover.setPayTypeKey(handoverWait.getPayTypeKey()); + busHandover.setPayTypeValue(handoverWait.getPayTypeValue()); + //车型 + busHandover.setModelName(handoverWait.getModelName()); + //业务员sid 业务订单sid + CommonContract contract = commonContractFeign.selectByNo(handoverWait.getContractNo()).getData(); + if (null != contract) { + if (StringUtils.isNotBlank(contract.getBusSid())) { + busHandover.setOrderSid(contract.getBusSid()); + } + if (StringUtils.isNotBlank(contract.getStaffSid())) { + busHandover.setStaffSid(contract.getStaffSid()); + } + } + BusHandoverItems items = new BusHandoverItems(); + items.setItemKey(deliveryConDto.getItemKey()); + items.setItemValue(deliveryConDto.getItemValue()); + 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> pdf = createPdf(busHandover.getSid()); String path = ""; - String filePath = "/template/"; - 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(); + if (pdf.getSuccess()) { + //打印pdf + List filePaths = pdf.getData(); + List fileList = new ArrayList<>(); + if (!filePaths.isEmpty()) { + for (String filePath : filePaths) { + File file = new File(filePath); + fileList.add(file); + } + } + 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 wrapper.like("contractNo", query.getName()).or().like("customerName", query.getName()) - .or().like("payTypeValue", query.getName())); - } return qw; } @@ -1363,6 +1384,42 @@ public class BusHandoverService extends MybatisBaseService qw = createQueryWrapper(query); IPage page = PagerUtil.queryToPage(pq); IPage pagging = baseMapper.selectListPageVo(page, qw); + List 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 deliveryConfirmInfo = busHandoverItemsService.getDeliveryConfirmInfo(record.getSid()); + deliveryConfirmInfo.removeAll(Collections.singleton(null)); + if (!deliveryConfirmInfo.isEmpty()) { + for (BusHandoverInitListVo vo : deliveryConfirmInfo) { + List 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 p = PagerUtil.pageToVo(pagging, null); return rb.success().setData(p); } @@ -1378,6 +1435,7 @@ public class BusHandoverService extends MybatisBaseService items = new ArrayList<>(); //查询车辆 List itemsList = busHandoverItemsService.getItemsListByMainSid(sid).getData(); @@ -1385,10 +1443,11 @@ public class BusHandoverService extends MybatisBaseService 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()); if (null != busHandoverPrepareVehicle) { @@ -1397,12 +1456,13 @@ public class BusHandoverService extends MybatisBaseService policyPhotoList = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()). collect(Collectors.toList()); - detailsVo.setHandoverPhoto(policyPhotoList); + detailsVo.setPolicyImages(policyPhotoList); } } + detailsVo.setVinSid(v.getVinSid()); items.add(detailsVo); } - vo.setItems(items); + vo.setCarList(items); //接收车辆确认书照片 List fileList = buscenterFileService.selectByLinkSid(sid, BuscenterFileEnum.RECEIVE_CAR_IMAGES.getAttachType()); fileList.removeAll(Collections.singleton(null)); @@ -2468,6 +2528,115 @@ public class BusHandoverService extends MybatisBaseService saveGcVinBill(GcVinBillDto dto) { + ResultBean 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 info = busHandoverItemsService.getDeliveryConfirmInfo(sid); + info.removeAll(Collections.singleton(null)); + List itemsList = new ArrayList<>(); + if (info.size() > 0) { + for (BusHandoverInitListVo vo : info) { + List 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 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 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 items = busHandoverItemsService.getItemsListByMainSid(sid).getData(); + items.removeAll(Collections.singleton(null)); + List 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 diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverwait/BusHandoverWaitService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverwait/BusHandoverWaitService.java index 11811d519d..90495929a9 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverwait/BusHandoverWaitService.java +++ b/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 pagerList(PagerQuery pagerQuery) { IPage page = PagerUtil.queryToPage(pagerQuery); BusHandoverWaitQuery params = pagerQuery.getParams(); @@ -45,6 +46,9 @@ public class BusHandoverWaitService extends MybatisBaseService pagging = baseMapper.selectPageVo(page, qw, params.getName()); @@ -89,16 +93,17 @@ public class BusHandoverWaitService extends MybatisBaseService> resultBean = busHandoverItemsService.getItemsList(); - if (!resultBean.getData().isEmpty()) { - resultBean.getData().removeAll(Collections.singleton(null)); - List vinSidList = resultBean.getData().stream().map(v -> v.getVinSid()).collect(Collectors.toList()); - vinSidList.removeAll(Collections.singleton(null)); - if (!vinSidList.isEmpty()) { - qw.notIn("vinSid", vinSidList); - } - } +// //查询已提交交车办理车辆 +// ResultBean> resultBean = busHandoverItemsService.getItemsList(); +// if (!resultBean.getData().isEmpty()) { +// resultBean.getData().removeAll(Collections.singleton(null)); +// List vinSidList = resultBean.getData().stream().map(v -> v.getVinSid()).collect(Collectors.toList()); +// vinSidList.removeAll(Collections.singleton(null)); +// if (!vinSidList.isEmpty()) { +// qw.notIn("vinSid", vinSidList); +// } +// } + qw.eq("createBySid", query.getUserSid()); qw.eq("useOrgSid", query.getUseOrgSid()); qw.eq("isDelete", 0); qw.orderByDesc("createTime"); diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java index 2b000a08ca..4680526eec 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordersubmit/BusSalesOrderSubmitService.java +++ b/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 { console.log('列表查询结果:', response) this.listLoading = false @@ -262,7 +266,9 @@ export default { contractNo: '', customerName: '', recName: '', - transferName: '' + transferName: '', + orgPath: '', + menuUrl: '' }, current: 1, size: 10, diff --git a/anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagetobehandover.vue b/anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagetobehandover.vue index 8bb1fa8cff..91716a0785 100644 --- a/anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagetobehandover.vue +++ b/anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagetobehandover.vue @@ -165,7 +165,9 @@ export default { contractNo: '', customerName: '', recName: '', - transferName: '' + transferName: '', + orgPath: '', + menuUrl: '' }, current: 1, size: 10, @@ -219,6 +221,8 @@ export default { getList() { this.listLoading = true 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) => { this.listLoading = false if (response.success) { @@ -250,7 +254,9 @@ export default { contractNo: '', customerName: '', recName: '', - transferName: '' + transferName: '', + orgPath: '', + menuUrl: '' }, current: 1, size: 10, diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java index 374f910f5f..dc3cbfe043 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java +++ b/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.flowcomment.FlowComment; 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.process.ProcessService; +import com.yxt.anrui.flowable.biz.processcomment.ProcessCommentService; import com.yxt.anrui.flowable.feign.MessageFeign; import com.yxt.anrui.flowable.feign.form.MessageFlowVo; import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery; 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.SysFlowccVo; import com.yxt.anrui.portal.api.sysuser.*; @@ -98,6 +103,10 @@ public class FlowableRest implements FlowableFeign { private MessageFeign messageFeign; @Resource protected HistoryService historyService; + @Autowired + private SysFlowableConfigFeign sysFlowableConfigFeign; + @Autowired + private ProcessCommentService processCommentService; /** * 流程抄送的功能 @@ -359,8 +368,6 @@ public class FlowableRest implements FlowableFeign { log.info("b:{}", b); UpdateFlowFieldVo vo = new UpdateFlowFieldVo(); ResultBean rb = ResultBean.fireFail(); - // Map formVariables = dto.getFormVariables(); - String taskId = dto.getTaskId(); if (StringUtils.isBlank(taskId)) { return rb.setMsg("taskId 不能为空!"); @@ -368,27 +375,227 @@ public class FlowableRest implements FlowableFeign { if (StringUtils.isBlank(dto.getBusinessSid())) { return rb.setMsg("businessSid 不能为空!"); } - /*if(formVariables==null){ - return rb.setMsg("业务参数集合 不能为空!"); - }*/ if (dto.getFormVariables() == null) dto.setFormVariables(new HashMap()); Map formVariables = dto.getFormVariables(); formVariables.put("businessSid", dto.getBusinessSid()); + String nextUserSid = dto.getNextNodeUserSids(); + boolean adminContains = false; + boolean isChange = false; + String firstName = ""; + String firstSid = ""; + if (StringUtils.isBlank(nextUserSid)) { + ResultBean 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 nextUserList = Arrays.asList(nextUserSid.split(",")); + if(nextUserList.size() == 1){ + firstSid = nextUserList.get(0); + ResultBean sysUserVoResultBean = sysUserFeign.fetchBySid(firstSid); + if(sysUserVoResultBean.getData() != null){ + firstName = sysUserVoResultBean.getData().getName(); + } + SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery(); + sysFlowableConfigQuery.setUserSid(firstSid); + sysFlowableConfigQuery.setNowDate(new Date()); + ResultBean 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> ll = flowtaskService.getLatestTasksNew(instanceId); + if (ll.getData().size() > 0) { + LatestTaskVo latestTaskVo = ll.getData().get(0); + String id_ = latestTaskVo.getId_(); + if(isChange){//添加评论 + ResultBean 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 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 candidateGroups = userTask.getCandidateGroups(); + List sysUserVoLists = new ArrayList<>(); + //根据角色查询用户 + for (String roleSid : candidateGroups) { + UserQuery userQuery = new UserQuery(); + userQuery.setRoleSid(roleSid); + userQuery.setOrgSidPath(dto.getOrgSidPath()); + ResultBean> 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 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()); + Map formVariables = dto.getFormVariables(); + formVariables.put("businessSid", dto.getBusinessSid()); String nextUserSid = dto.getNextNodeUserSids(); if (StringUtils.isBlank(nextUserSid)) { ResultBean nextNodeUserSidsOfSubmit = getNextNodeUserSidsOfSubmit(dto); if (!nextNodeUserSidsOfSubmit.getSuccess()) { 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(); if (StringUtils.isBlank(comment)) { comment = ""; - //return rb.setMsg("comment 不能为空!"); } String instanceId = dto.getInstanceId(); if (StringUtils.isBlank(instanceId)) { @@ -397,7 +604,6 @@ public class FlowableRest implements FlowableFeign { String userSid = dto.getUserSid(); if (StringUtils.isBlank(userSid)) { return rb.setMsg("userSid 不能为空!"); - } String businessSid = dto.getBusinessSid(); if (StringUtils.isBlank(businessSid)) { @@ -418,18 +624,12 @@ public class FlowableRest implements FlowableFeign { if (DelegationState.PENDING.equals(task.getDelegationState())) { taskService.addComment(taskId, instanceId, FlowComment.DELEGATE.getType(), comment); - // Map values =(Map) formVariables.get("values"); 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); - //formVariables.remove("userSid"); - /*for(Map.Entry entry:formVariables.entrySet()){ - taskService.setVariable(taskId,entry.getKey(),entry.getValue()); - System.out.println(entry.getKey()+"--->"+entry.getValue()); - }*/ taskService.complete(taskId, formVariables); //根据流程实例的id取最新的待办环节,给环节设置上用户sid ResultBean> ll = flowtaskService.getLatestTasksNew(instanceId); @@ -438,13 +638,6 @@ public class FlowableRest implements FlowableFeign { String id_ = latestTaskVo.getId_(); taskService.setAssignee(id_, nextUserSid); vo.setTaskId(id_); - /* for(Map.Entry 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表中增加环节上的业务参数的变量 taskService.setVariablesLocal(id_, formVariables); nodeState = latestTaskVo.getName_(); @@ -455,7 +648,6 @@ public class FlowableRest implements FlowableFeign { vo.setNodeState(FlowComment.SETTLE.getRemark()); } } - //ResultBean flowRecordVoResultBean = flowableService.flowRecord(dto.getInstanceId(), dto.getModelId()); List flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(), dto.getFormVariables()); boolean contains = false; diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java index d5265ac27b..15093cc847 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java +++ b/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 hisFlowList = new ArrayList<>(); for (HistoricActivityInstance histIns : list) { if (StringUtils.isNotBlank(histIns.getTaskId())) { + boolean isStop = false; FlowTask flowTask = new FlowTask(); flowTask.setTaskId(histIns.getTaskId()); flowTask.setTaskName(histIns.getActivityName()); @@ -334,6 +335,9 @@ public class FlowTaskService extends MybatisBaseService data1 = sysUserVoResultBean.getData(); List taskUserInfos=new ArrayList<>(); for( SysUserVo data:data1){ + if("admin".equals(data.getName())){ + isStop = true; + } TaskUserInfo taskUserInfo=new TaskUserInfo(); taskUserInfo.setAssigneeName(data.getName()); taskUserInfo.setAssigneeSid(data.getSid()); @@ -344,6 +348,10 @@ public class FlowTaskService extends MybatisBaseService linksForTask = historyService.getHistoricIdentityLinksForTask(histIns.getTaskId()); StringBuilder stringBuilder = new StringBuilder(); @@ -1341,7 +1349,24 @@ public class FlowTaskService extends MybatisBaseService>().fail().setMsg("流程找不到上一环节,撤回操作失败!").setData(new ArrayList<>()); } HistoricTaskInstance historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult(); + //==================================================添加 +// historicTaskInstance1 = returnInstance(historicTaskInstance1); + //==================================================添加 String assignee = historicTaskInstance1.getAssignee(); String userSid = flowTaskVo.getUserSid(); ResultBean flowRecordVoResultBean = flowableService.flowRecord(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId()); @@ -1482,6 +1510,25 @@ public class FlowTaskService extends MybatisBaseService 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; }else{ FlowTask flowTask1 = flowList.get(1); @@ -1515,6 +1562,16 @@ public class FlowTaskService extends MybatisBaseService> revokeProcess_( String processInstanceId, String assignee ) { diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfig.java new file mode 100644 index 0000000000..04681efdac --- /dev/null +++ b/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; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeign.java new file mode 100644 index 0000000000..09a7e4fbb7 --- /dev/null +++ b/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 selectByUserSid(@SpringQueryMap SysFlowableConfigQuery query); +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigFeignFallback.java new file mode 100644 index 0000000000..e8c75264b6 --- /dev/null +++ b/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 { +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigQuery.java new file mode 100644 index 0000000000..4f023c6ea8 --- /dev/null +++ b/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; +} diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysflowableconfig/SysFlowableConfigVvo.java new file mode 100644 index 0000000000..abfcc91709 --- /dev/null +++ b/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; +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java index ebd49f4771..92bd44b4cc 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java +++ b/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.setMap(map); ResultBean>> resultBean = flowTaskFeign.yuyanTest(flowableQuery); - if(!resultBean.getData().isEmpty()){ - List> mapList = resultBean.getData(); - mapList.forEach(f->{ - PCHistTaskListAndCommentList a = new PCHistTaskListAndCommentList(); - Map stringObjectMap = BeanUtil.beanToMap(f); - stringObjectMap.put("taskName",f.get("nodeName").toString()); - stringObjectMap.put("finishTime",null); - stringObjectMap.put("createTime",""); - stringObjectMap.put("taskUserInfos",new ArrayList<>()); - a.setFlowableRecordVo(stringObjectMap); - a.setState(3 + ""); - flowList.add(a); - }); + if(resultBean.getData() != null){ + if(!resultBean.getData().isEmpty()){ + List> mapList = resultBean.getData(); + mapList.forEach(f->{ + PCHistTaskListAndCommentList a = new PCHistTaskListAndCommentList(); + Map stringObjectMap = BeanUtil.beanToMap(f); + stringObjectMap.put("taskName",f.get("nodeName").toString()); + stringObjectMap.put("finishTime",null); + stringObjectMap.put("createTime",""); + stringObjectMap.put("taskUserInfos",new ArrayList<>()); + a.setFlowableRecordVo(stringObjectMap); + a.setState(3 + ""); + flowList.add(a); + }); + } } } } diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.java new file mode 100644 index 0000000000..3b300e3c94 --- /dev/null +++ b/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 selectByUserSid(@Param("userSid") String userSid, @Param("nowDate") Date nowDate); +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml new file mode 100644 index 0000000000..091c4bdefe --- /dev/null +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigMapper.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigRest.java new file mode 100644 index 0000000000..faaac787f2 --- /dev/null +++ b/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 selectByUserSid(SysFlowableConfigQuery query) { + return sysFlowableConfigService.selectByUserSid(query); + } +} diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java new file mode 100644 index 0000000000..1543fc2446 --- /dev/null +++ b/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 { + public ResultBean selectByUserSid(SysFlowableConfigQuery query) { + ResultBean 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); + } +} diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageApplyDetailsVo.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageApplyDetailsVo.java index dd2ec0b867..432b073d09 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageApplyDetailsVo.java +++ b/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; // 车型名称 @ApiModelProperty("台数") private String number; // 台数 - + @ApiModelProperty("销售订单sid") + private String saleOrderSid; // + @ApiModelProperty("ModelOrgPath") + private String modelOrgPath; // + private String modelSid; // + private String configSid; // @ApiModelProperty("流程定义的id") private String procDefId; // 流程定义的id @@ -99,4 +104,7 @@ public class AppDiscountpackageApplyDetailsVo implements Vo { private String procInsId; // 流程实例的sid @ApiModelProperty("台数") private String carNumber; // 台数 + @ApiModelProperty("订单优惠包总价值") + private String discountAllPrice; // 订单优惠包总价值 + } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageQuery.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageQuery.java index a3e658df30..a3d55eedd9 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/discountPackageApply/AppDiscountpackageQuery.java +++ b/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") private String orgPath; @ApiModelProperty("合同编号 客户名称") - private String names; + private String name; @ApiModelProperty("申请日期") private String date; @ApiModelProperty("1待办 2已办") diff --git a/doc/databases/portal_tables.sql b/doc/databases/portal_tables.sql index 5a713fc0bb..b34b1bee3c 100644 --- a/doc/databases/portal_tables.sql +++ b/doc/databases/portal_tables.sql @@ -715,3 +715,28 @@ CREATE TABLE `sys_url_config` ) ENGINE = InnoDB AUTO_INCREMENT = 18 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 ='转办人设置';