Browse Source

移动端随车资料交接、pc对外交接

master
fanzongzhe 2 years ago
parent
commit
f15562f675
  1. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/buscenterfile/BuscenterFileEnum.java
  2. 16
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusDataListPdfVo.java
  3. 31
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusDeliveryInfoDto.java
  4. 17
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusUploadDto.java
  5. 23
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandover.java
  6. 25
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverDetailsVo.java
  7. 33
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverDto.java
  8. 35
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverFeign.java
  9. 32
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverFeignFallback.java
  10. 24
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverPdfVo.java
  11. 7
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverQuery.java
  12. 21
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverVo.java
  13. 16
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataListVo.java
  14. 8
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformation/BusVehicleInformation.java
  15. 32
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppDataDictionaryResp.java
  16. 25
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppDeatilVo.java
  17. 22
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppDetailRecord.java
  18. 110
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppInformationHandoverInfoVo.java
  19. 46
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppInformationListVo.java
  20. 17
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppInformationQuery.java
  21. 37
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppManiFestBean.java
  22. 52
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppSaveDataDto.java
  23. 24
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppTwoDto.java
  24. 23
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppTwoHandoverInfoVo.java
  25. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandover.java
  26. 3
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverDto.java
  27. 32
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverFeign.java
  28. 30
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverFeignFallback.java
  29. 4
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverQuery.java
  30. 43
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java
  31. 7
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverMapper.java
  32. 25
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverMapper.xml
  33. 38
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverRest.java
  34. 486
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverService.java
  35. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformation/BusVehicleInformationMapper.xml
  36. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverMapper.java
  37. 52
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverMapper.xml
  38. 30
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverRest.java
  39. 431
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverService.java
  40. 46
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/AppVehicleInformationListVo.java
  41. 17
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/AppVehicleInformationQuery.java
  42. 24
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/BusTwoDto.java
  43. 29
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/DataDictionaryResp.java
  44. 24
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/DeatilVo.java
  45. 22
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/DetailRecord.java
  46. 110
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/InformationHandoverInfoVo.java
  47. 36
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/ManiFestBean.java
  48. 33
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/SaveDataDto.java
  49. 23
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/TwoHandoverInfoVo.java
  50. 36
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/VehicleInformationHandoverFeign.java
  51. 29
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/VehicleInformationHandoverFeignFallback.java
  52. 31
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/vehicleinformationhandover/VehicleInformationHandoverRest.java
  53. 131
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/vehicleinformationhandover/VehicleInformationHandoverService.java

3
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/buscenterfile/BuscenterFileEnum.java

@ -27,7 +27,8 @@ public enum BuscenterFileEnum {
DISCOUNTPACKAGE_HANDOVER("017", "优惠包交接确认"),
ENTRUST_IDCARD_IMAGES("019", "委托提车授权书、委托人身份证(正反面)"),
TRAILER_ENTRUST_IDCARD_IMAGES("020", "挂车委托提车授权书、委托人身份证(正反面)"),
TRAILER_RECEIVE_CAR_IMAGES("021", "挂车接收车辆确认书照片")
TRAILER_RECEIVE_CAR_IMAGES("021", "挂车接收车辆确认书照片"),
VEHICLE_SECOND_DATA_HANDOVER("022", "对外二次交付交车资料确认单")
;

16
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusDataListPdfVo.java

@ -0,0 +1,16 @@
package com.yxt.anrui.buscenter.api.busvehicledatahandover;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/6/21 10:32
*/
@Data
public class BusDataListPdfVo implements Vo {
private String sNo;
private String vinNo;
private String items;
}

31
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusDeliveryInfoDto.java

@ -0,0 +1,31 @@
package com.yxt.anrui.buscenter.api.busvehicledatahandover;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/20 15:12
*/
@Data
public class BusDeliveryInfoDto implements Dto {
private String userSid;
private String orgSidPath;
private List<String> sids;
@ApiModelProperty("合同号")
private String contractNo; // 合同号
private String customerName; //客户名称
@ApiModelProperty("接收人")
private String recName; // 交接人
@ApiModelProperty("交接日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date recDate;
private List<BusVehicleDataListVo> vinList = new ArrayList<>();
}

17
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusUploadDto.java

@ -0,0 +1,17 @@
package com.yxt.anrui.buscenter.api.busvehicledatahandover;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/20 16:08
*/
@Data
public class BusUploadDto {
private String sid;
private List<String> imgs = new ArrayList<>();
}

23
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandover.java

@ -20,18 +20,33 @@ import java.util.List;
public class BusVehicleDataHandover extends BaseEntity {
@ApiModelProperty("完成状态")
private Integer completedState; // 完成状态
private String completeStateKey; // 完成状态
@ApiModelProperty("完成状态")
private String completeStateValue; // 完成状态
@ApiModelProperty("客户名称")
private String customerName; // 客户名称
@ApiModelProperty("合同号")
private String contractNo; // 合同号
@ApiModelProperty("创建人")
private String createName; // 创建人
@ApiModelProperty("车型")
private String model; // 客户名称
@ApiModelProperty("车架号")
private String vinNo; // 车辆sid
private String vinSid;
private String items;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("交接人")
private String recName; // 交接人
@ApiModelProperty("交接时间")
private Date recDate; // 交接时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名")
private String useOrgName;
@ApiModelProperty("图片地址集合")
private String filePath;
@ApiModelProperty("使用组织全路径")
private String orgSidPath;
private String linkSid;
private String downloadPath;
}

25
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverDetailsVo.java

@ -1,10 +1,12 @@
package com.yxt.anrui.buscenter.api.busvehicledatahandover;
import com.yxt.anrui.buscenter.api.busvehiclehandoverdata.BusVehicleHandoverDataDetailsVo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -15,12 +17,19 @@ import java.util.List;
@Data
public class BusVehicleDataHandoverDetailsVo implements Vo {
@ApiModelProperty("客户名称")
private String customerName; // 客户名称
private String userSid;
private String orgSidPath;
private List<String> sids;
@ApiModelProperty("合同号")
private String contractNo; // 合同号
@ApiModelProperty("图片地址集合")
private List<String> filePath;
@ApiModelProperty("交车资料")
private List<BusVehicleHandoverDataDetailsVo> handoverDataList;
private String contractNo; //合同号
@ApiModelProperty("客户名称")
private String customerName; //客户名称
@ApiModelProperty("创建人")
private String recName; // 交接人
@ApiModelProperty("交接日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date recDate;
private List<BusVehicleDataListVo> vinList = new ArrayList<>();
}

33
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverDto.java

@ -1,11 +1,10 @@
package com.yxt.anrui.buscenter.api.busvehicledatahandover;
import com.yxt.anrui.buscenter.api.busvehiclehandoverdata.BusVehicleHandoverData;
import com.yxt.anrui.buscenter.api.busvehiclehandoverdata.BusVehicleHandoverDataDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
@ -16,25 +15,35 @@ import java.util.List;
@Data
public class BusVehicleDataHandoverDto implements Dto {
private String sid;
private String createBySid;
@ApiModelProperty("完成状态")
private Integer completedState; // 完成状态
private String completeStateKey; // 完成状态
@ApiModelProperty("完成状态")
private String completeStateValue; // 完成状态
@ApiModelProperty("客户名称")
private String customerName; // 客户名称
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("合同号")
private String contractNo; // 合同号
@ApiModelProperty("创建人")
private String createName; // 创建人
@ApiModelProperty("车型")
private String model; // 客户名称
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("交接人")
private String recName; // 交接人
@ApiModelProperty("交接时间")
private Date recDate; // 交接时间
@ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名")
private String useOrgName;
@ApiModelProperty("图片地址集合")
private List<String> filePath;
@ApiModelProperty("交车资料")
private List<BusVehicleHandoverDataDto> handoverDataList;
@ApiModelProperty("使用组织全路径")
private String orgSidPath;
@ApiModelProperty("车架号")
private String vinNo; // 车辆sid
private String vinSid;
private String items;
private String linkSid;
}

35
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverFeign.java

@ -28,10 +28,39 @@ public interface BusVehicleDataHandoverFeign {
@ResponseBody
public ResultBean<PagerVo<BusVehicleDataHandoverVo>> listPage(@RequestBody PagerQuery<BusVehicleDataHandoverQuery> pq);
@ApiOperation("新增或修改")
@PostMapping("/saveOrUpdate")
@ApiOperation("编辑初始化")
@PostMapping("/getDeliveryInfoBySids")
@ResponseBody
public ResultBean<String> saveOrUpdate(@RequestBody BusVehicleDataHandoverDto dto);
public ResultBean<BusVehicleDataHandoverDetailsVo> getDeliveryInfoBySids(@RequestBody String[] sids);
@ApiOperation("编辑初始化")
@GetMapping("/getDeliveryInfo/{sid}")
@ResponseBody
public ResultBean<BusVehicleDataHandoverDetailsVo> getDeliveryInfo(@PathVariable("sid") String sid);
@ApiOperation("详情")
@GetMapping("/details/{sid}")
@ResponseBody
public ResultBean<BusVehicleDataHandoverDetailsVo> details(@PathVariable("sid") String sid);
@ApiOperation("保存资料确认")
@PostMapping("/saveDeliveryInfo")
@ResponseBody
public ResultBean<String> saveDeliveryInfo(@RequestBody BusDeliveryInfoDto dto);
@ApiOperation(("上传交车资料确认单"))
@PostMapping("/upload")
public ResultBean<String> uploadPdf(@RequestBody BusUploadDto dto);
@ApiOperation(("查看交车资料确认单"))
@PostMapping("/getImages")
public ResultBean<List<String>> getImages(@RequestParam("sid") String sid);
@ApiOperation("新增")
@PostMapping("/save")
@ResponseBody
public ResultBean<String> saveData(@RequestBody BusVehicleDataHandoverDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")

32
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverFeignFallback.java

@ -20,7 +20,37 @@ public class BusVehicleDataHandoverFeignFallback implements BusVehicleDataHandov
}
@Override
public ResultBean<String> saveOrUpdate(BusVehicleDataHandoverDto dto) {
public ResultBean<BusVehicleDataHandoverDetailsVo> getDeliveryInfoBySids(String[] sids) {
return null;
}
@Override
public ResultBean<BusVehicleDataHandoverDetailsVo> getDeliveryInfo(String sid) {
return null;
}
@Override
public ResultBean<BusVehicleDataHandoverDetailsVo> details(String sid) {
return null;
}
@Override
public ResultBean<String> saveDeliveryInfo(BusDeliveryInfoDto dto) {
return null;
}
@Override
public ResultBean<String> uploadPdf(BusUploadDto dto) {
return null;
}
@Override
public ResultBean<List<String>> getImages(String sid) {
return null;
}
@Override
public ResultBean<String> saveData(BusVehicleDataHandoverDto dto) {
return null;
}

24
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverPdfVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.buscenter.api.busvehicledatahandover;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/20 15:17
*/
@Data
public class BusVehicleDataHandoverPdfVo implements Vo {
private String billNo;
private String createTime;
private String contractNo;
private String customerName;
private List<BusDataListPdfVo> pdfVos = new ArrayList<>();
}

7
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverQuery.java

@ -12,10 +12,15 @@ import lombok.Data;
@Data
public class BusVehicleDataHandoverQuery implements Query {
private String useOrgSid;
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("客户名称")
private String customerName;
private String name;
private String model;
private String vinNo;
private String completeValue;
private String billNo;
}

21
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataHandoverVo.java

@ -6,7 +6,9 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* @author Administrator
@ -16,18 +18,27 @@ import java.util.Date;
@Data
public class BusVehicleDataHandoverVo implements Vo {
private String sid;
private String linkSid;
@ApiModelProperty("完成状态")
private String completedState; // 完成状态
private String completeStateValue; // 完成状态
@ApiModelProperty("合同号")
private String contractNo; // 合同号
@ApiModelProperty("客户名称")
private String customerName; // 客户名称
@ApiModelProperty("车型")
private String model; // 车型
@ApiModelProperty("车架号")
private String vinNo;
@ApiModelProperty("创建日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty("合同号")
private String contractNo; // 合同号
private String billNo;
@ApiModelProperty("创建人")
private String createName; // 创建人
@ApiModelProperty("下载地址")
private String downloadPath; // 下载地址
@ApiModelProperty("图片")
private List<String> imgs = new ArrayList<>(); //
}

16
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicledatahandover/BusVehicleDataListVo.java

@ -0,0 +1,16 @@
package com.yxt.anrui.buscenter.api.busvehicledatahandover;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/6/21 9:11
*/
@Data
public class BusVehicleDataListVo implements Vo {
private String vinSid;
private String vinNo;
private String items;
}

8
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformation/BusVehicleInformation.java

@ -19,10 +19,6 @@ public class BusVehicleInformation extends BaseEntity {
@ApiModelProperty("车钥匙个数")
private Integer vehicleKeyNum; // 车钥匙个数
// @ApiModelProperty("发票0无1有")
// private Integer invoice; // 发票
// @ApiModelProperty("合格证0无1有")
// private Integer credential; // 合格证0无1有
@ApiModelProperty("一致性证书0无1有")
private Integer certificate; // 一致性证书0无1有
@ApiModelProperty("申请表0无1有")
@ -47,8 +43,8 @@ public class BusVehicleInformation extends BaseEntity {
private Date recTime; // 接收时间
@ApiModelProperty("移交人")
private String transferName; // 移交人
@ApiModelProperty("剩余随车资料")
private String vehicleHandoverData; //剩余随车资料
@ApiModelProperty("交接资料")
private String vehicleHandoverData; //
@ApiModelProperty("移交备注")
private String transferRemarks; // 移交备注

32
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppDataDictionaryResp.java

@ -0,0 +1,32 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Administrator
* @description
* @date 2023/6/21 11:05
*/
@Data
@AllArgsConstructor
public class AppDataDictionaryResp {
private String sid;
private String checkSid;
private String dictKey;
private boolean selected;
private String dictValue;
private boolean mandatory;
private String dictType;
private String extra;
public AppDataDictionaryResp() {
}
public AppDataDictionaryResp(String dictKey, String dictValue) {
this.dictKey = dictKey;
this.dictValue = dictValue;
}
}

25
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppDeatilVo.java

@ -0,0 +1,25 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/21 14:26
*/
@Data
public class AppDeatilVo implements Vo {
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String configSid;
private String modelSid;
private String modelOrgPath;
private List<AppDetailRecord> record;
}

22
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppDetailRecord.java

@ -0,0 +1,22 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* @description
* @date 2023/6/21 14:27
*/
@Data
public class AppDetailRecord implements Vo {
private String remarks;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date time;
private String docs;
private String recName;
private String operaName;
}

110
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppInformationHandoverInfoVo.java

@ -0,0 +1,110 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import com.yxt.common.core.vo.Vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/21 11:02
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class AppInformationHandoverInfoVo implements Vo {
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String remarks;
private String configSid;
private String modelSid;
private String modelOrgPath;
private List<AppManiFestBean> maniFestBeanList;
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getContractId() {
return contractId;
}
public void setContractId(String contractId) {
this.contractId = contractId;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getVin() {
return vin;
}
public void setVin(String vin) {
this.vin = vin;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getConfigSid() {
return configSid;
}
public void setConfigSid(String configSid) {
this.configSid = configSid;
}
public String getModelSid() {
return modelSid;
}
public void setModelSid(String modelSid) {
this.modelSid = modelSid;
}
public String getModelOrgPath() {
return modelOrgPath;
}
public void setModelOrgPath(String modelOrgPath) {
this.modelOrgPath = modelOrgPath;
}
public List<AppManiFestBean> getManiFestBeanList() {
return maniFestBeanList;
}
public void setManiFestBeanList(List<AppManiFestBean> maniFestBeanList) {
this.maniFestBeanList = maniFestBeanList;
}
}

46
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppInformationListVo.java

@ -0,0 +1,46 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* @description
* @date 2023/6/20 21:33
*/
@Data
public class AppInformationListVo implements Vo {
private String sid;
private String model;
private String customerName;
@JsonProperty("contractId")
private String contractNo;
@JsonProperty("vin")
private String vinNo;
@ApiModelProperty("创建日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@JsonProperty("createDate")
private Date createTime;
@ApiModelProperty("接收时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date receiveDate;
@JsonProperty("nodeState")
private String transferStateValue;
private String completeState;
@JsonProperty("receiveName")
private String recName;
@JsonProperty("receivePhone")
private String recPhone;
private Integer viewType;
// @ApiModelProperty("接收备注")
// private String remarks;
// @ApiModelProperty("移交备注")
// private String remarks2; // 移交备注
private Boolean showHandleBtn;
private Boolean showSecondHandleBtn;
}

17
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppInformationQuery.java

@ -0,0 +1,17 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/6/20 21:52
*/
@Data
public class AppInformationQuery implements Query {
private String userSid;
private String type;
private String orgPath;
private String name;
}

37
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppManiFestBean.java

@ -0,0 +1,37 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/21 11:04
*/
@Data
@NoArgsConstructor
public class AppManiFestBean {
// 0 是否 1选择
private int type;
// 标题
private String title;
// 保存的字段key
private String key;
// 保存的结果
private String value;
// 选择的字典
private List<AppDataDictionaryResp> selectors;
public AppManiFestBean(int type, String title, String key, String value, List<AppDataDictionaryResp> selectors) {
this.type = type;
this.title = title;
this.key = key;
this.value = value;
this.selectors = selectors;
}
}

52
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppSaveDataDto.java

@ -0,0 +1,52 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import com.yxt.anrui.buscenter.api.busvehicleinformation.BusVehicleInformationDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/21 12:14
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class AppSaveDataDto implements Dto {
private String userSid;
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String remarks;
private String configSid;
private String modelSid;
private String modelOrgPath;
private List<AppManiFestBean> maniFestBeanList;
@ApiModelProperty("车钥匙个数")
private Integer vehicleKeyNum; // 车钥匙个数
@ApiModelProperty("一致性证书0无1有")
private Integer certificate; // 一致性证书0无1有
@ApiModelProperty("申请表0无1有")
private Integer applyForm; // 申请表0无1有
@ApiModelProperty("保修手册、说明书0无1有")
private Integer manual; // 保修手册、说明书0无1有
@ApiModelProperty("环保清单0无1有")
private Integer environmentalList; // 环保清单0无1有
@ApiModelProperty("驾驶员卡0无1有")
private Integer dirverCard; // 驾驶员卡0无1有
@ApiModelProperty("气瓶产品质量证明书(燃气车)0无1有")
private Integer gasCertificate; // 气瓶产品质量证明书(燃气车)0无1有
@ApiModelProperty("交接资料")
private String vehicleHandoverData; //
@ApiModelProperty("移交备注")
private String transferRemarks; // 移交备注
}

24
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppTwoDto.java

@ -0,0 +1,24 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import com.yxt.common.core.dto.Dto;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/6/21 13:40
*/
@Data
public class AppTwoDto implements Dto {
private String userSid;
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String remarks;
private String configSid;
private String modelSid;
private String modelOrgPath;
private String docs;
}

23
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppTwoHandoverInfoVo.java

@ -0,0 +1,23 @@
package com.yxt.anrui.buscenter.api.busvehicleinformationhandover;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/6/21 13:22
*/
@Data
public class AppTwoHandoverInfoVo implements Vo {
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String remarks;
private String configSid;
private String modelSid;
private String modelOrgPath;
private String docs;
}

2
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandover.java

@ -49,5 +49,7 @@ public class BusVehicleInformationHandover extends BaseEntity {
private String busSid;
@ApiModelProperty("是否是燃气车 0不是1是")
private Integer isFuelVehicle; // 是否是燃气车 0不是1是
@ApiModelProperty("使用组织全路径")
private String orgSidPath;
}

3
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverDto.java

@ -58,5 +58,6 @@ public class BusVehicleInformationHandoverDto implements Dto {
private Boolean complete; // ture/false 完成/未完成
@ApiModelProperty("是否修改状态")
private Boolean modifyState; // ture/false 是/否
@ApiModelProperty("使用组织全路径")
private String orgSidPath;
}

32
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverFeign.java

@ -65,5 +65,37 @@ public interface BusVehicleInformationHandoverFeign {
public ResultBean<BusVehicleInformationHandoverDetailsListVo> detailsByVinSid(@PathVariable("sid") String sid);
/*****************************移动端接口*********************************************/
@ApiOperation("移动端列表")
@PostMapping("/getInformationHandoverList")
@ResponseBody
public ResultBean<PagerVo<AppInformationListVo>> getInformationHandoverList(@RequestBody PagerQuery<AppInformationQuery> pq);
@ApiOperation("编辑回显")
@GetMapping("/getInformationHandoverInfo/{sid}")
@ResponseBody
public ResultBean<AppInformationHandoverInfoVo> getInformationHandoverInfo(@PathVariable("sid") String sid);
@ApiOperation("一次交接保存")
@PostMapping("/confirmInformationHandoverInfo")
@ResponseBody
public ResultBean<String> confirmInformationHandoverInfo(@RequestBody AppSaveDataDto dto);
@ApiOperation("二次编辑回显")
@GetMapping("/getInformationHandoverInfo2/{sid}")
@ResponseBody
public ResultBean<AppTwoHandoverInfoVo> getInformationHandoverInfo2(@PathVariable("sid") String sid);
@ApiOperation("二次交接保存")
@PostMapping("/confirmInformationHandoverInfo2")
@ResponseBody
public ResultBean<String> confirmInformationHandoverInfo2(@RequestBody AppTwoDto dto);
@ApiOperation("随车资料详情")
@GetMapping("/getInformationHandoverInfoDetail")
@ResponseBody
public ResultBean<AppDeatilVo> getInformationHandoverInfoDetail(@RequestParam("sid") String sid);
}

30
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverFeignFallback.java

@ -52,4 +52,34 @@ public class BusVehicleInformationHandoverFeignFallback implements BusVehicleInf
public ResultBean<BusVehicleInformationHandoverDetailsListVo> detailsByVinSid(String sid) {
return null;
}
@Override
public ResultBean<PagerVo<AppInformationListVo>> getInformationHandoverList(PagerQuery<AppInformationQuery> pq) {
return null;
}
@Override
public ResultBean<AppInformationHandoverInfoVo> getInformationHandoverInfo(String sid) {
return null;
}
@Override
public ResultBean<String> confirmInformationHandoverInfo(AppSaveDataDto dto) {
return null;
}
@Override
public ResultBean<AppTwoHandoverInfoVo> getInformationHandoverInfo2(String sid) {
return null;
}
@Override
public ResultBean<String> confirmInformationHandoverInfo2(AppTwoDto dto) {
return null;
}
@Override
public ResultBean<AppDeatilVo> getInformationHandoverInfoDetail(String sid) {
return null;
}
}

4
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverQuery.java

@ -25,7 +25,5 @@ public class BusVehicleInformationHandoverQuery implements Query {
private String model;
@ApiModelProperty("完成状态")
private String completeState;
private String name;
private String type;
}

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

@ -35,6 +35,7 @@ import com.yxt.anrui.buscenter.api.bushandoverwait.BusHandoverWait;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderModelInfoVo;
import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusVehicleDataHandoverDto;
import com.yxt.anrui.buscenter.api.busvehicleinformation.BusVehicleInformationVo;
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandoverDetailsListVo;
import com.yxt.anrui.buscenter.biz.buscenterfile.BuscenterFileService;
@ -42,6 +43,7 @@ import com.yxt.anrui.buscenter.biz.bushandoveritems.BusHandoverItemsService;
import com.yxt.anrui.buscenter.biz.bushandoverpreparevehicle.BusHandoverPrepareVehicleService;
import com.yxt.anrui.buscenter.biz.bushandoverwait.BusHandoverWaitService;
import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService;
import com.yxt.anrui.buscenter.biz.busvehicledatahandover.BusVehicleDataHandoverService;
import com.yxt.anrui.buscenter.biz.busvehicleinformationhandover.BusVehicleInformationHandoverService;
import com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempInfoVo;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
@ -62,6 +64,7 @@ import com.yxt.anrui.portal.api.sysstaffinfo.SysStaffinfoFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUser;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
@ -159,6 +162,9 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
@Autowired
private BaseTrailerModelFeign baseTrailerModelFeign;
@Autowired
private BusVehicleDataHandoverService busVehicleDataHandoverService;
// @Transactional(rollbackFor = Exception.class)
public ResultBean<List<BusHandoverListVo>> saveDeliverybill(BusHandoverDto dto) {
@ -2020,6 +2026,43 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
updateStateEntity.setHandoverStateKey("002");
updateStateEntity.setHandoverStateValue("已交车");
baseMapper.updateById(updateStateEntity);
//推对外交付资料记录表
List<BusHandoverItems> items = busHandoverItemsService.getItemsListByMainSid(businessSid).getData();
items.removeAll(Collections.singleton(null));
if (!items.isEmpty()) {
for (BusHandoverItems item : items) {
BusVehicleDataHandoverDto dto = new BusVehicleDataHandoverDto();
String userSid = updateStateEntity.getCreateBySid();
SysUserInfoVo infoVo = sysUserFeign.selectUserInfoByUserSid(userSid).getData();
if (null != infoVo) {
if (StringUtils.isNotBlank(infoVo.getStaffName())) {
dto.setCreateName(infoVo.getStaffName());
}
}
dto.setRecName(updateStateEntity.getRecipient());
dto.setRecDate(updateStateEntity.getDeliverDate());
dto.setContractNo(updateStateEntity.getContractNo());
dto.setCustomerName(updateStateEntity.getCustomerName());
dto.setModel(updateStateEntity.getModelName());
dto.setBillNo(updateStateEntity.getBillNo());
dto.setUseOrgName(updateStateEntity.getUseOrgName());
dto.setUseOrgSid(updateStateEntity.getUseOrgSid());
dto.setOrgSidPath(updateStateEntity.getOrgSidPath());
dto.setCreateBySid(updateStateEntity.getCreateBySid());
dto.setVinSid(item.getVinSid());
dto.setVinNo(item.getVinNo());
dto.setItems(item.getItemValue());
if (item.getCompleteState().equals("0")) {
dto.setCompleteStateKey("001");
dto.setCompleteStateValue("未完成");
} else if (item.getCompleteState().equals("1")) {
dto.setCompleteStateKey("002");
dto.setCompleteStateValue("已完成");
}
dto.setLinkSid(updateStateEntity.getSid());
busVehicleDataHandoverService.saveData(dto);
}
}
}
return rb.success().setData(resultBean.getData());
} else {

7
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverMapper.java

@ -9,6 +9,8 @@ import com.yxt.anrui.buscenter.api.busvehicledatahandover.BusVehicleDataHandover
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author Administrator
@ -19,4 +21,9 @@ import org.apache.ibatis.annotations.Param;
public interface BusVehicleDataHandoverMapper extends BaseMapper<BusVehicleDataHandover> {
IPage<BusVehicleDataHandoverVo> selectPageVo(IPage<BusVehicleDataHandover> page, @Param(Constants.WRAPPER) QueryWrapper<BusVehicleDataHandover> qw);
int selectNum(String bill);
List<BusVehicleDataHandover> getDataByBillNo(String billNo);
}

25
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverMapper.xml

@ -8,17 +8,28 @@
<select id="selectPageVo"
resultType="com.yxt.anrui.buscenter.api.busvehicledatahandover.BusVehicleDataHandoverVo">
SELECT CASE
completedState
WHEN 0 THEN
'未完成'
ELSE '已完成'
END AS completedState,
SELECT
sid,
completeStateValue,
contractNo,
customerName,
createName,
createTime
model,
vinNo,
createTime,
billNo,
linkSid,
downloadPath
FROM bus_vehicle_data_handover
<where>${ew.sqlSegment}</where>
</select>
<select id="selectNum" resultType="java.lang.Integer">
select IFNULL(CAST(REPLACE(MAX(billNo), #{bill}, '') AS SIGNED), 0) as code
from bus_vehicle_data_handover
where billNo LIKE concat(#{bill}, '%')
</select>
<select id="getDataByBillNo"
resultType="com.yxt.anrui.buscenter.api.busvehicledatahandover.BusVehicleDataHandover">
</select>
</mapper>

38
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverRest.java

@ -30,10 +30,41 @@ public class BusVehicleDataHandoverRest implements BusVehicleDataHandoverFeign {
}
@Override
public ResultBean<String> saveOrUpdate(BusVehicleDataHandoverDto dto) {
return busVehicleDataHandoverService.saveOrUpdate(dto);
public ResultBean<BusVehicleDataHandoverDetailsVo> getDeliveryInfoBySids(String[] sids) {
return busVehicleDataHandoverService.getDeliveryInfoBySids(sids);
}
@Override
public ResultBean<BusVehicleDataHandoverDetailsVo> getDeliveryInfo(String sid) {
return busVehicleDataHandoverService.getDeliveryInfo(sid);
}
@Override
public ResultBean<BusVehicleDataHandoverDetailsVo> details(String sid) {
return busVehicleDataHandoverService.details(sid);
}
@Override
public ResultBean<String> saveDeliveryInfo(BusDeliveryInfoDto dto) {
return busVehicleDataHandoverService.saveDeliveryInfo(dto);
}
@Override
public ResultBean<String> uploadPdf(BusUploadDto dto) {
return busVehicleDataHandoverService.uploadPdf(dto);
}
@Override
public ResultBean<List<String>> getImages(String sid) {
return busVehicleDataHandoverService.getImages(sid);
}
@Override
public ResultBean<String> saveData(BusVehicleDataHandoverDto dto) {
return busVehicleDataHandoverService.saveData(dto);
}
@Override
public ResultBean delBySids(String[] sids) {
return null;
@ -47,9 +78,10 @@ public class BusVehicleDataHandoverRest implements BusVehicleDataHandoverFeign {
@Override
public ResultBean<String> createPdf(BusVehicleDataHandoverDto dto) throws Exception {
return busVehicleDataHandoverService.createPdf(dto);
return null;
}
@Override
public ResultBean<List<BusVehicleDataHandoverDto>> findcontractList(String createBySid) {

486
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicledatahandover/BusVehicleDataHandoverService.java

@ -8,18 +8,24 @@ import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleSelectVo;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign;
import com.yxt.anrui.base.api.commoncontract.CommonContractPackageVo;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.buscenterfile.BuscenterFile;
import com.yxt.anrui.buscenter.api.buscenterfile.BuscenterFileEnum;
import com.yxt.anrui.buscenter.api.bushandoveritems.BusHandoverItems;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.buscenter.api.busvehicledatahandover.*;
import com.yxt.anrui.buscenter.api.busvehiclehandoverdata.BusVehicleHandoverData;
import com.yxt.anrui.buscenter.api.busvehiclehandoverdata.BusVehicleHandoverDataDetailsVo;
import com.yxt.anrui.buscenter.api.busvehiclehandoverdata.BusVehicleHandoverDataDto;
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandover;
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandoverQuery;
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandoverVo;
import com.yxt.anrui.buscenter.biz.buscenterfile.BuscenterFileService;
import com.yxt.anrui.buscenter.biz.bushandover.BusHandoverService;
import com.yxt.anrui.buscenter.biz.bushandoveritems.BusHandoverItemsService;
import com.yxt.anrui.buscenter.biz.bussalesordervehicle.BusSalesOrderVehicleService;
import com.yxt.anrui.buscenter.biz.busvehiclehandoverdata.BusVehicleHandoverDataService;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedPdfVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
@ -34,7 +40,9 @@ import org.springframework.stereotype.Service;
import java.io.File;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author Administrator
@ -62,6 +70,24 @@ public class BusVehicleDataHandoverService extends MybatisBaseService<BusVehicle
@Autowired
private DocPdfComponent docPdfComponent;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private BuscenterFileService buscenterFileService;
@Autowired
private BusHandoverService busHandoverService;
@Autowired
private BusHandoverItemsService busHandoverItemsService;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
/**
* 根据当前用户查询合同信息
*
@ -103,80 +129,6 @@ public class BusVehicleDataHandoverService extends MybatisBaseService<BusVehicle
return rb.success().setData(dtos);
}
/**
* 新增修改
*
* @param dto
* @return
*/
public ResultBean<String> saveOrUpdate(BusVehicleDataHandoverDto dto) {
ResultBean rb = ResultBean.fireFail();
String returnSid = "";
if (StringUtils.isNotBlank(dto.getSid())) {
returnSid = dto.getSid();
BusVehicleDataHandover entity = fetchBySid(dto.getSid());
BeanUtil.copyProperties(dto, entity, "id", "sid");
if (null != dto.getFilePath() && !dto.getFilePath().isEmpty()) {
StringBuffer sb = new StringBuffer();
String urlPrefix = fileUploadComponent.getUrlPrefix();
for (String s : dto.getFilePath()) {
String substring = s.substring(urlPrefix.length());
sb.append(substring).append(",");
}
sb.delete(sb.length() - 1, sb.length());
entity.setFilePath(sb.toString());
}
baseMapper.updateById(entity);
if (null != dto.getHandoverDataList()) {
List<BusVehicleHandoverDataDto> handoverDataList = dto.getHandoverDataList();
for (BusVehicleHandoverDataDto data : handoverDataList) {
if (StringUtils.isNotBlank(data.getSid())) {
BusVehicleHandoverData handoverData = busVehicleHandoverDataService.fetchBySid(data.getSid());
BeanUtil.copyProperties(data, handoverData, "id", "sid");
busVehicleHandoverDataService.updateById(handoverData);
} else {
BusVehicleHandoverData handoverData = new BusVehicleHandoverData();
BeanUtil.copyProperties(data, handoverData, "id", "sid");
handoverData.setUseOrgSid(dto.getUseOrgSid());
handoverData.setUseOrgName(dto.getUseOrgName());
handoverData.setCreateBySid(dto.getCreateBySid());
handoverData.setLinkSid(dto.getSid());
boolean b = busVehicleHandoverDataService.save(handoverData);
}
}
}
} else {
BusVehicleDataHandover entity = new BusVehicleDataHandover();
BeanUtil.copyProperties(dto, entity, "id", "sid");
if (null != dto.getFilePath() && !dto.getFilePath().isEmpty()) {
StringBuffer sb = new StringBuffer();
String urlPrefix = fileUploadComponent.getUrlPrefix();
for (String s : dto.getFilePath()) {
String substring = s.substring(urlPrefix.length());
sb.append(substring).append(",");
}
sb.delete(sb.length() - 1, sb.length());
entity.setFilePath(sb.toString());
}
baseMapper.insert(entity);
if (null != dto.getHandoverDataList()) {
for (BusVehicleHandoverDataDto busVehicleHandoverData : dto.getHandoverDataList()) {
if (null != busVehicleHandoverData) {
BusVehicleHandoverData data = new BusVehicleHandoverData();
BeanUtil.copyProperties(busVehicleHandoverData, data, "id", "sid");
data.setUseOrgSid(dto.getUseOrgSid());
data.setUseOrgName(dto.getUseOrgName());
data.setCreateBySid(dto.getCreateBySid());
data.setLinkSid(entity.getSid());
boolean b = busVehicleHandoverDataService.save(data);
}
}
}
returnSid = entity.getSid();
}
return rb.success().setData(returnSid);
}
/**
* 详情交车资料确认单
*
@ -186,36 +138,6 @@ public class BusVehicleDataHandoverService extends MybatisBaseService<BusVehicle
public ResultBean<BusVehicleDataHandoverDetailsVo> fetchDetailsBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
BusVehicleDataHandoverDetailsVo vo = new BusVehicleDataHandoverDetailsVo();
BusVehicleDataHandover busVehicleDataHandover = fetchBySid(sid);
if (null != busVehicleDataHandover) {
if (StringUtils.isNotBlank(busVehicleDataHandover.getContractNo())) {
vo.setContractNo(busVehicleDataHandover.getContractNo());
}
if (StringUtils.isNotBlank(busVehicleDataHandover.getCustomerName())) {
vo.setCustomerName(busVehicleDataHandover.getCustomerName());
}
if (StringUtils.isNotBlank(busVehicleDataHandover.getFilePath())) {
String filePath = busVehicleDataHandover.getFilePath();
List<String> filePaths = new ArrayList<>();
for (String s : filePath.split(",")) {
String urlPrefix = fileUploadComponent.getUrlPrefix();
filePaths.add(urlPrefix + s);
}
vo.setFilePath(filePaths);
}
}
List<BusVehicleHandoverData> dataList = busVehicleHandoverDataService.selectByLinkSid(sid);
if (null != dataList) {
List<BusVehicleHandoverDataDetailsVo> dataDetailsVos = new ArrayList<>();
int sNo = 1;
for (BusVehicleHandoverData data : dataList) {
BusVehicleHandoverDataDetailsVo dataVo = new BusVehicleHandoverDataDetailsVo();
BeanUtil.copyProperties(data, dataVo);
dataVo.setSNo(String.valueOf(sNo++));
dataDetailsVos.add(dataVo);
}
vo.setHandoverDataList(dataDetailsVos);
}
return rb.success().setData(vo);
}
@ -223,14 +145,20 @@ public class BusVehicleDataHandoverService extends MybatisBaseService<BusVehicle
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<BusVehicleDataHandover> qw = new QueryWrapper<>();
if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getContractNo())) {
if (StringUtils.isNotBlank(query.getContractNo())) {
qw.like("contractNo", query.getContractNo());
}
if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getCustomerName())) {
if (StringUtils.isNotBlank(query.getCustomerName())) {
qw.like("customerName", query.getCustomerName());
}
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("contractNo", query.getName()).or().like("customerName", query.getName()));
if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("billNo", query.getBillNo());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("vinNo ", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getCompleteValue())) {
qw.eq("completeStateValue ", query.getCompleteValue());
}
qw.eq("useOrgSid", query.getUseOrgSid());
qw.eq("isDelete", 0);
@ -250,45 +178,50 @@ public class BusVehicleDataHandoverService extends MybatisBaseService<BusVehicle
QueryWrapper<BusVehicleDataHandover> qw = createQueryWrapper(query);
IPage<BusVehicleDataHandover> page = PagerUtil.queryToPage(pq);
IPage<BusVehicleDataHandoverVo> pagging = baseMapper.selectPageVo(page, qw);
return rb.success().setData(pagging);
}
/**
* 打印交车资料确认单
*
* @param dto
* @return
*/
public ResultBean<String> createPdf(BusVehicleDataHandoverDto dto) {
ResultBean rb = ResultBean.fireFail();
String filePath = "";
if (StringUtils.isNotBlank(dto.getSid())) {
BusVehicleDataHandoverDetailsVo data = fetchDetailsBySid(dto.getSid()).getData();
if (null != data) {
filePath = commonCreatePdf(data);
}
} else {
String sid = this.saveOrUpdate(dto).getData();
BusVehicleDataHandoverDetailsVo data = this.fetchDetailsBySid(sid).getData();
if (null != data) {
filePath = commonCreatePdf(data);
List<BusVehicleDataHandoverVo> records = pagging.getRecords();
records.removeAll(Collections.singleton(null));
String path = "/template/";
if (!records.isEmpty()) {
for (BusVehicleDataHandoverVo record : records) {
if (StringUtils.isNotBlank(record.getDownloadPath())) {
record.setDownloadPath(path + record.getDownloadPath());
}
if (StringUtils.isNotBlank(record.getLinkSid())) {
List<BuscenterFile> fileList = buscenterFileService.selectByLinkSid(record.getLinkSid(), BuscenterFileEnum.ENTRUST_CONFIRM_IMAGES.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> entrustImages = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
record.setImgs(entrustImages);
}
} else {
List<BuscenterFile> fileList = buscenterFileService.selectByLinkSid(record.getSid(), BuscenterFileEnum.VEHICLE_SECOND_DATA_HANDOVER.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> entrustImages = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).collect(Collectors.toList());
record.setImgs(entrustImages);
}
}
}
}
return rb.success().setData(filePath);
return rb.success().setData(pagging);
}
public String commonCreatePdf(BusVehicleDataHandoverDetailsVo pdfVo) {
public String commonCreatePdf(BusVehicleDataHandoverPdfVo pdfVo) {
Map<String, Object> dataMap = new HashMap<String, Object>();
List<BusVehicleHandoverDataDetailsVo> handoverDataList = pdfVo.getHandoverDataList();
List<BusDataListPdfVo> pdfVos = pdfVo.getPdfVos();
List<Map<String, Object>> newList = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
dataMap.put("contractNo", pdfVo.getContractNo());
dataMap.put("customerName", pdfVo.getCustomerName());
if (null != handoverDataList) {
for (BusVehicleHandoverDataDetailsVo detailsVo : handoverDataList) {
dataMap.put("createTime", sdf.format(new Date()));
dataMap.put("documentNumber", pdfVo.getBillNo());
if (!pdfVos.isEmpty()) {
for (BusDataListPdfVo detailsVo : pdfVos) {
Map<String, Object> map = new HashMap<>();
map.put("sNo", detailsVo.getSNo());
map.put("vinNo", detailsVo.getVinNo());
map.put("vehicleHandoverData", detailsVo.getVehicleHandoverData());
map.put("vehicleHandoverData", detailsVo.getItems());
newList.add(map);
}
}
@ -313,4 +246,269 @@ public class BusVehicleDataHandoverService extends MybatisBaseService<BusVehicle
return path;
}
/**
* 新增推送
*
* @param dto
* @return
*/
public ResultBean<String> saveData(BusVehicleDataHandoverDto dto) {
ResultBean rb = ResultBean.fireFail();
BusVehicleDataHandover entity = new BusVehicleDataHandover();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
return rb.success().setData(entity.getSid());
}
/**
* 交车资料确认详情
*
* @param
* @return
*/
public ResultBean<BusVehicleDataHandoverDetailsVo> getDeliveryInfo(String sid) {
ResultBean<BusVehicleDataHandoverDetailsVo> rb = ResultBean.fireFail();
BusVehicleDataHandoverDetailsVo vo = new BusVehicleDataHandoverDetailsVo();
// BusVehicleDataHandover entity = fetchBySid(sid);
// BeanUtil.copyProperties(entity, vo);
// List<BusVehicleSecondDataVo> secondDataVos = busVehicleSecondDataService.getRecordsByMainSid(sid).getData();
// secondDataVos.removeAll(Collections.singleton(null));
// if (!secondDataVos.isEmpty()) {
// vo.setItems(secondDataVos);
// }
return rb.success().setData(vo);
}
/**
* 生成交车资料确认单单据编号
*
* @param orgSid
* @return
*/
public String getApplyCode(String orgSid) {
//获取分公司sid
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(orgSid);
String orgCode = resultBean1.getData().getOrgCode();
BillNo b = new BillNo();
b.setOrgCode(orgCode);
b.setBillType(BillTypeEnum.JCZLQRD.getBillType());
String bill = Rule.getBill(b);
int i = baseMapper.selectNum(bill);
String billNo = Rule.getBillNo(bill, i);
return billNo;
}
/**
* 保存交车资料确认
*
* @param dto
* @return
*/
public ResultBean<String> saveDeliveryInfo(BusDeliveryInfoDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
List<String> sids = dto.getSids();
String model = "";
String contractNo = "";
String customerName = "";
for (String sid : sids) {
BusVehicleDataHandover entity = fetchBySid(sid);
entity.setCompleteStateKey("002");
entity.setCompleteStateValue("已完成");
model = entity.getModel();
contractNo = entity.getContractNo();
customerName = entity.getCustomerName();
baseMapper.updateById(entity);
}
String userOrgSid = "";
String billNo = "";
String userOrgName = "";
String createName = "";
ResultBean<String> orgSidByPath = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgSidPath());
if (orgSidByPath.getSuccess()) {
userOrgSid = orgSidByPath.getData();
//交车资料确认单编号
billNo = getApplyCode(userOrgSid);
ResultBean<SysOrganizationVo> organizationVo = sysOrganizationFeign.fetchBySid(userOrgSid);
if (organizationVo.getSuccess()) {
SysOrganizationVo organizationVoData = organizationVo.getData();
if (null != organizationVoData) {
userOrgName = organizationVoData.getName();
}
}
}
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (sysUserVoResultBean.getSuccess()) {
SysUserVo data = sysUserVoResultBean.getData();
if (null != data) {
createName = data.getName();
}
}
List<BusVehicleDataListVo> vinList = dto.getVinList();
List<String> newSids = new ArrayList<>();
if (!vinList.isEmpty()) {
for (BusVehicleDataListVo vinData : vinList) {
BusVehicleDataHandover newEntity = new BusVehicleDataHandover();
newSids.add(newEntity.getSid());
newEntity.setCreateBySid(dto.getUserSid());
newEntity.setRecDate(dto.getRecDate());
newEntity.setRecName(dto.getRecName());
newEntity.setUseOrgSid(userOrgSid);
newEntity.setBillNo(billNo);
newEntity.setUseOrgName(userOrgName);
newEntity.setVinNo(vinData.getVinNo());
newEntity.setVinSid(vinData.getVinSid());
newEntity.setContractNo(dto.getContractNo());
newEntity.setCustomerName(dto.getCustomerName());
newEntity.setModel(model);
newEntity.setItems(vinData.getItems());
newEntity.setCreateName(createName);
newEntity.setCompleteStateValue("已完成");
newEntity.setCompleteStateKey("002");
baseMapper.insert(newEntity);
}
}
BusVehicleDataHandoverPdfVo pdfVo = new BusVehicleDataHandoverPdfVo();
List<BusDataListPdfVo> pdfVos = new ArrayList<>();
pdfVo.setBillNo(billNo);
pdfVo.setContractNo(contractNo);
pdfVo.setCustomerName(customerName);
if (!vinList.isEmpty()) {
int sNo = 1;
for (BusVehicleDataListVo dataVo : vinList) {
BusDataListPdfVo dataPdfVo = new BusDataListPdfVo();
dataPdfVo.setSNo(String.valueOf(sNo++));
dataPdfVo.setVinNo(dataVo.getVinNo());
dataPdfVo.setItems(dataVo.getItems());
pdfVos.add(dataPdfVo);
}
}
pdfVo.setPdfVos(pdfVos);
String s = commonCreatePdf(pdfVo);
String template = "/template/";
String filePath = s.substring(docPdfComponent.getUploadTemplateUrl().length());
if (!newSids.isEmpty()) {
for (String newSid : newSids) {
BusVehicleDataHandover handover = fetchBySid(newSid);
handover.setDownloadPath(filePath);
baseMapper.updateById(handover);
}
}
return rb.success().setData(template + filePath);
}
/**
* 上传确认单
*
* @param dto
* @return
*/
public ResultBean<String> uploadPdf(BusUploadDto dto) {
ResultBean rb = ResultBean.fireFail();
buscenterFileService.delByLinkSidOrType(dto.getSid(), BuscenterFileEnum.VEHICLE_SECOND_DATA_HANDOVER.getAttachType());
List<String> images = dto.getImgs();
if (!images.isEmpty()) {
buscenterFileService.saveAll(dto.getSid(), images, BuscenterFileEnum.VEHICLE_SECOND_DATA_HANDOVER.getAttachType());
}
return rb.success().setData(dto.getSid());
}
public ResultBean<List<String>> getImages(String sid) {
ResultBean rb = ResultBean.fireFail();
List<BuscenterFile> fileList = buscenterFileService.selectByLinkSid(sid, BuscenterFileEnum.VEHICLE_SECOND_DATA_HANDOVER.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> imgs = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
return rb.success().setData(imgs);
}
return rb.success();
}
/**
* 编辑初始化
*
* @param sids
* @return
*/
public ResultBean<BusVehicleDataHandoverDetailsVo> getDeliveryInfoBySids(String[] sids) {
ResultBean<BusVehicleDataHandoverDetailsVo> rb = ResultBean.fireFail();
BusVehicleDataHandoverDetailsVo vo = new BusVehicleDataHandoverDetailsVo();
List<BusVehicleDataListVo> vinList = new ArrayList<>();
List<String> sidList = new ArrayList<>();
StringBuffer sb = new StringBuffer();
int i = 1;
for (String sid : sids) {
sidList.add(sid);
BusVehicleDataHandover entity = fetchBySid(sid);
vo.setContractNo(entity.getContractNo());
vo.setCustomerName(entity.getCustomerName());
String linkSid = entity.getLinkSid();
List<BusHandoverItems> handoverItems = busHandoverItemsService.getItemsListByMainSid(linkSid).getData();
handoverItems.removeAll(Collections.singleton(null));
BusVehicleDataListVo dataListVo = new BusVehicleDataListVo();
if (!handoverItems.isEmpty()) {
for (BusHandoverItems handoverItem : handoverItems) {
int j = i++;
if (handoverItem.getVinSid().equals(entity.getVinSid())) {
String itemValue = handoverItem.getItemKey();
if (!itemValue.contains("001")) {
sb.append("发票").append("、");
}
if (!itemValue.contains("002")) {
sb.append("合格证").append("、");
}
if (!itemValue.contains("003")) {
sb.append("车钥匙").append("、");
}
if (!itemValue.contains("004")) {
sb.append("一致性证书").append("、");
}
if (!itemValue.contains("005")) {
sb.append("申请表").append("、");
}
if (!itemValue.contains("006")) {
sb.append("保修手册、说明书").append("、");
}
if (!itemValue.contains("007")) {
sb.append("环保清单").append("、");
}
if (!itemValue.contains("008")) {
sb.append("驾驶员卡").append("、");
}
if (!itemValue.contains("009")) {
if (handoverItem.getIsFuelVehicle().equals("0")) {
sb.append("气瓶检测合格证").append("、");
}
}
}
if (sb.toString().length() > 0) {
sb.delete(sb.length() - 1, sb.length());
}
dataListVo.setItems(sb.toString());
dataListVo.setVinNo(handoverItem.getVinNo());
dataListVo.setVinSid(handoverItem.getVinSid());
}
}
vinList.add(dataListVo);
vo.setVinList(vinList);
vo.setSids(sidList);
}
return rb.success().setData(vo);
}
/**
* 详情
*
* @param sid
* @return
*/
public ResultBean<BusVehicleDataHandoverDetailsVo> details(String sid) {
ResultBean<BusVehicleDataHandoverDetailsVo> rb = ResultBean.fireFail();
BusVehicleDataHandover handover = fetchBySid(sid);
BusVehicleDataHandoverDetailsVo vo = new BusVehicleDataHandoverDetailsVo();
List<BusVehicleDataHandover> entityList = baseMapper.getDataByBillNo(handover.getBillNo());
return null;
}
}

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformation/BusVehicleInformationMapper.xml

@ -10,6 +10,7 @@
from bus_vehicle_information
where handoverSid = #{handoverSid}
and isDelete = '0'
ORDER BY handoverNum ASC
</select>
<select id="selectByHandoverNumAndHandoverSid"
resultType="com.yxt.anrui.buscenter.api.busvehicleinformation.BusVehicleInformation">
@ -21,10 +22,14 @@
</select>
<select id="selectByMainSid" resultType="com.yxt.anrui.buscenter.api.bushandoverprepare.HandoverInformationIntemVo">
select sid,vehicleHandoverData,recName,transferName,remarks,DATE_FORMAT(recTime,'%Y-%m-%d') AS recTime from bus_vehicle_information where handoverSid = #{sid}
select sid, vehicleHandoverData, recName, transferName, remarks, DATE_FORMAT(recTime, '%Y-%m-%d') AS recTime
from bus_vehicle_information
where handoverSid = #{sid}
</select>
<select id="selectByMainSids" resultType="com.yxt.anrui.buscenter.api.busvehicleinformation.BusVehicleInformation">
select * from bus_vehicle_information where handoverSid = #{sid}
select *
from bus_vehicle_information
where handoverSid = #{sid}
</select>
</mapper>

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverMapper.java

@ -4,8 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandover;
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandoverVo;
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -27,4 +26,10 @@ public interface BusVehicleInformationHandoverMapper extends BaseMapper<BusVehic
BusVehicleInformationHandover detailsByVinSid(@Param("sid")String sid);
List<String> selectByVinSid(@Param("list") List<String> vinSidList);
IPage<AppInformationListVo> selectAppPageVo(IPage<BusVehicleInformationHandover> page, @Param(Constants.WRAPPER)QueryWrapper<AppInformationListVo> qw);
AppInformationHandoverInfoVo getInformationHandoverInfo(String sid);
AppDeatilVo getInformationHandoverInfoDetail(String sid);
}

52
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverMapper.xml

@ -37,7 +37,10 @@
<select id="getVehicleInformationInfo"
resultType="com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandover">
select * from bus_vehicle_information_handover where vehicleSid = #{sid} order by id desc limit 1
select *
from bus_vehicle_information_handover
where vehicleSid = #{sid}
order by id desc limit 1
</select>
<select id="detailsByVinSid"
resultType="com.yxt.anrui.buscenter.api.busvehicleinformationhandover.BusVehicleInformationHandover">
@ -48,9 +51,54 @@
<select id="selectByVinSid" resultType="java.lang.String">
select bh.vinNo
from bus_vehicle_information_handover bh where (bh.transferStateKey = '001' or bh.transferStateKey = '002' or bh.transferStateKey = '003') and bh.vehicleSid in
from bus_vehicle_information_handover bh where (bh.transferStateKey = '001' or bh.transferStateKey = '002' or
bh.transferStateKey = '003') and bh.vehicleSid in
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="selectAppPageVo"
resultType="com.yxt.anrui.buscenter.api.busvehicleinformationhandover.AppInformationListVo">
SELECT
sid,
createTime,
vinNo,
model,
contractNo,
customerName,
recName,
recPhone,
transferStateValue,
CASE
completeState
WHEN 0 THEN
'未完成'
WHEN 1 THEN
'已完成'
END AS completeState
FROM
bus_vehicle_information_handover
<where>${ew.sqlSegment}</where>
</select>
<select id="getInformationHandoverInfo"
resultType="com.yxt.anrui.buscenter.api.busvehicleinformationhandover.AppInformationHandoverInfoVo">
SELECT sid,
vinNo as vin,
model,
contractNo as contractId,
customerName,
remarks
FROM bus_vehicle_information_handover
where sid = #{sid}
</select>
<select id="getInformationHandoverInfoDetail"
resultType="com.yxt.anrui.buscenter.api.busvehicleinformationhandover.AppDeatilVo">
SELECT sid,
vinNo as vin,
model,
contractNo as contractId,
customerName
FROM bus_vehicle_information_handover
where sid = #{sid}
</select>
</mapper>

30
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverRest.java

@ -71,4 +71,34 @@ public class BusVehicleInformationHandoverRest implements BusVehicleInformationH
return busVehicleInformationHandoverService.detailsByVinSid(sid);
}
@Override
public ResultBean<PagerVo<AppInformationListVo>> getInformationHandoverList(PagerQuery<AppInformationQuery> pq) {
return busVehicleInformationHandoverService.getInformationHandoverList(pq);
}
@Override
public ResultBean<AppInformationHandoverInfoVo> getInformationHandoverInfo(String sid) {
return busVehicleInformationHandoverService.getInformationHandoverInfo(sid);
}
@Override
public ResultBean<String> confirmInformationHandoverInfo(AppSaveDataDto dto) {
return busVehicleInformationHandoverService.confirmInformationHandoverInfo(dto);
}
@Override
public ResultBean<AppTwoHandoverInfoVo> getInformationHandoverInfo2(String sid) {
return busVehicleInformationHandoverService.getInformationHandoverInfo2(sid);
}
@Override
public ResultBean<String> confirmInformationHandoverInfo2(AppTwoDto dto) {
return busVehicleInformationHandoverService.confirmInformationHandoverInfo2(dto);
}
@Override
public ResultBean<AppDeatilVo> getInformationHandoverInfoDetail(String sid) {
return busVehicleInformationHandoverService.getInformationHandoverInfoDetail(sid);
}
}

431
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverService.java

@ -4,13 +4,24 @@ package com.yxt.anrui.buscenter.biz.busvehicleinformationhandover;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basediscountpackage.AppDiscountpackageQuery;
import com.yxt.anrui.base.api.basediscountpackage.AppDiscountpackageVo;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModel;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelFeign;
import com.yxt.anrui.base.api.commoncontract.CommonContract;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrderFeign;
import com.yxt.anrui.buscenter.api.bussalesorderdiscount.app.AppBusSalesOrderDiscountListVo;
import com.yxt.anrui.buscenter.api.busvehicleinformation.BusVehicleInformation;
import com.yxt.anrui.buscenter.api.busvehicleinformation.BusVehicleInformationDto;
import com.yxt.anrui.buscenter.api.busvehicleinformation.BusVehicleInformationVo;
import com.yxt.anrui.buscenter.api.busvehicleinformationhandover.*;
import com.yxt.anrui.buscenter.biz.bussalesorder.BusSalesOrderService;
import com.yxt.anrui.buscenter.biz.busvehicleinformation.BusVehicleInformationService;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserInfoVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -22,7 +33,9 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author Administrator
@ -37,6 +50,16 @@ public class BusVehicleInformationHandoverService extends MybatisBaseService<Bus
@Autowired
private BaseVehicleModelFeign baseVehicleModelFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private CommonContractFeign commonContractFeign;
@Autowired
private BusSalesOrderService busSalesOrderService;
/**
* 新增或修改
@ -206,23 +229,13 @@ public class BusVehicleInformationHandoverService extends MybatisBaseService<Bus
if (StringUtils.isNotBlank(query.getCompleteState())) {
qw.eq("completeState", query.getCompleteState());
}
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("contractNo", query.getName()).or().like("vinNo", query.getName()).or().like("customerName", query.getName()));
}
if (StringUtils.isNotBlank(query.getTransferState())) {
if ("1".equals(query.getTransferState())) {
qw.eq("transferStateKey", "004");
} else if ("0".equals(query.getTransferState())) {
qw.ne("transferStateKey", "004");
}
}
if (StringUtils.isNotBlank(query.getType())) {
if (query.getType().equals("2")) {
qw.eq("transferStateKey", "004");
} else if (query.getType().equals("1")) {
qw.ne("transferStateKey", "004");
}
if (query.getTransferState().equals("1")) {
qw.eq("transferStateKey", "004");
} else if (query.getTransferState().equals("0")) {
qw.ne("transferStateKey", "004");
}
qw.eq("useOrgSid", query.getUseOrgSid());
qw.eq("isDelete", 0);
qw.orderByDesc("createTime");
@ -503,4 +516,390 @@ public class BusVehicleInformationHandoverService extends MybatisBaseService<Bus
public List<String> selectByVinSid(List<String> vinSidList) {
return baseMapper.selectByVinSid(vinSidList);
}
/*********************************移动端接口************************************************/
/**
* 分页列表
*
* @param pq
* @return
*/
public ResultBean<PagerVo<AppInformationListVo>> getInformationHandoverList(PagerQuery<AppInformationQuery> pq) {
ResultBean<PagerVo<AppInformationListVo>> rb = ResultBean.fireFail();
AppInformationQuery query = pq.getParams();
QueryWrapper<AppInformationListVo> qw = new QueryWrapper<>();
String orgSid = sysStaffOrgFeign.getPathSidByUserSid(query.getUserSid()).getData();
qw.eq("useOrgSid", orgSid);
if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("contractNo", query.getName()).or().like("vinNo", query.getName()).or().like("customerName", query.getName()));
}
if (StringUtils.isNotBlank(query.getType())) {
if (query.getType().equals("2")) {
qw.eq("transferStateKey", "004");
} else if (query.getType().equals("1")) {
qw.ne("transferStateKey", "004");
}
}
qw.eq("isDelete", "0");
qw.orderByDesc("createTime");
IPage<BusVehicleInformationHandover> page = PagerUtil.queryToPage(pq);
IPage<AppInformationListVo> pagging = baseMapper.selectAppPageVo(page, qw);
List<AppInformationListVo> records = pagging.getRecords();
records.removeAll(Collections.singleton(null));
if (!CollectionUtils.isEmpty(records)) {
for (AppInformationListVo record : records) {
String sid = record.getSid();
List<BusVehicleInformation> informations = busVehicleInformationService.getByHandoverSid(sid);
if (null != informations && informations.size() > 0) {
for (BusVehicleInformation information : informations) {
// //接收备注
// if (StringUtils.isNotBlank(information.getRemarks())) {
// record.setRemarks(information.getRemarks());
// }
// //移交备注
// if (StringUtils.isNotBlank(information.getTransferRemarks())) {
// record.setRemarks2(information.getTransferRemarks());
// }
//接收时间
if (null != information.getRecTime()) {
record.setReceiveDate(information.getRecTime());
}
}
}
if (StringUtils.isNotBlank(record.getCompleteState())) {
if (record.getCompleteState().equals("未完成") && record.getTransferStateValue().equals("已移交")) {
List<BusVehicleInformation> list = busVehicleInformationService.getByHandoverSid(record.getSid());
if (list.size() > 1) {
record.setShowSecondHandleBtn(false);
} else {
record.setShowSecondHandleBtn(true);
}
} else {
record.setShowSecondHandleBtn(false);
}
} else {
record.setShowSecondHandleBtn(false);
}
if (query.getType().equals("1")) {
record.setViewType(0);
} else if (query.getType().equals("2")) {
record.setViewType(1);
record.setTransferStateValue(record.getCompleteState());
}
if (record.getTransferStateValue().equals("待移交")) {
record.setShowHandleBtn(true);
} else {
record.setShowHandleBtn(false);
}
}
}
PagerVo<AppInformationListVo> p = PagerUtil.pageToVo(pagging, null);
return rb.success().setData(p);
}
/**
* 交接回显
*
* @param sid
* @return
*/
public ResultBean<AppInformationHandoverInfoVo> getInformationHandoverInfo(String sid) {
ResultBean<AppInformationHandoverInfoVo> rb = ResultBean.fireFail();
AppInformationHandoverInfoVo vo = baseMapper.getInformationHandoverInfo(sid);
List<AppManiFestBean> list = new ArrayList<>();
List<AppDataDictionaryResp> selectors = new ArrayList<>();
selectors.add(new AppDataDictionaryResp("1", "1把"));
selectors.add(new AppDataDictionaryResp("2", "2把"));
selectors.add(new AppDataDictionaryResp("3", "3把"));
list.add(new AppManiFestBean(1, "车钥匙", "vehicLeKeyNum", "", selectors));
list.add(new AppManiFestBean(0, "一致性证书", "certificate", "", new ArrayList<>()));
list.add(new AppManiFestBean(0, "申请表", "applyForm", "", new ArrayList<>()));
list.add(new AppManiFestBean(0, "保修手册、说明书", "manual", "", new ArrayList<>()));
list.add(new AppManiFestBean(0, "环保清单", "environmentalList", "", new ArrayList<>()));
list.add(new AppManiFestBean(0, "驾驶员卡", "dirverCard", "", new ArrayList<>()));
list.add(new AppManiFestBean(0, "气瓶产品质量证明书(燃气车)", "gasCertificate", "", new ArrayList<>()));
System.out.println("====================================");
System.out.println(list);
System.out.println("=======================================");
vo.setManiFestBeanList(list);
return rb.success().setData(vo);
}
/**
* 第一次交接
*
* @param dto
* @return
*/
public ResultBean<String> confirmInformationHandoverInfo(AppSaveDataDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
BusVehicleInformationHandover entity = fetchBySid(sid);
List<AppManiFestBean> maniFestBeanList = dto.getManiFestBeanList();
for (AppManiFestBean appManiFestBean : maniFestBeanList) {
if (appManiFestBean.getKey().equals("vehicLeKeyNum")) {
dto.setVehicleKeyNum(Integer.parseInt(appManiFestBean.getValue()));
}
if (appManiFestBean.getKey().equals("certificate")) {
dto.setCertificate(Integer.parseInt(appManiFestBean.getValue()));
}
if (appManiFestBean.getKey().equals("applyForm")) {
dto.setApplyForm(Integer.parseInt(appManiFestBean.getValue()));
}
if (appManiFestBean.getKey().equals("manual")) {
dto.setManual(Integer.parseInt(appManiFestBean.getValue()));
}
if (appManiFestBean.getKey().equals("environmentalList")) {
dto.setEnvironmentalList(Integer.parseInt(appManiFestBean.getValue()));
}
if (appManiFestBean.getKey().equals("dirverCard")) {
dto.setDirverCard(Integer.parseInt(appManiFestBean.getValue()));
}
if (appManiFestBean.getKey().equals("gasCertificate")) {
dto.setGasCertificate(Integer.parseInt(appManiFestBean.getValue()));
}
}
if (StringUtils.isNotBlank(dto.getRemarks())) {
dto.setTransferRemarks(dto.getRemarks());
}
StringBuffer str = new StringBuffer();
//车钥匙
if (dto.getVehicleKeyNum() > 0) {
Integer num = dto.getVehicleKeyNum();
int value = num.intValue();
str.append("车钥匙" + value + "把、");
}
//一致性证书
if (dto.getCertificate() > 0) {
str.append("一致性证书、");
}
//申请表
if (dto.getApplyForm() > 0) {
str.append("申请表、");
}
//保修手册、说明书
if (dto.getManual() > 0) {
str.append("保修手册、说明书、");
}
//环保清单
if (dto.getEnvironmentalList() > 0) {
str.append("环保清单、");
}
//驾驶员卡
if (dto.getDirverCard() > 0) {
str.append("驾驶员卡、");
}
if (dto.getGasCertificate() > 0) {
if (entity.getIsFuelVehicle() == 0) {
str.append("气瓶检测合格证、");
}
}
str.delete(str.length() - 1, str.length());
dto.setVehicleHandoverData(str.toString());
BusVehicleInformation information = new BusVehicleInformation();
BeanUtil.copyProperties(dto, information);
information.setHandoverSid(sid);
information.setHandoverNum("001");
information.setRecName(entity.getRecName());
if (StringUtils.isNotBlank(dto.getUserSid())) {
SysUserInfoVo data = sysUserFeign.selectUserInfoByUserSid(dto.getUserSid()).getData();
if (data != null) {
information.setTransferName(data.getStaffName());
}
}
information.setIsFuelVehicle(entity.getIsFuelVehicle());
information.setRemarks("");
busVehicleInformationService.insert(information);
entity.setTransferStateKey("003");
entity.setTransferStateValue("移交中");
List<BusVehicleInformation> informationList = busVehicleInformationService.getByHandoverSid(dto.getSid());
if (null != informationList && informationList.size() > 0) {
for (BusVehicleInformation busVehicleInformation : informationList) {
if ("001".equals(busVehicleInformation.getHandoverNum())) {
if (busVehicleInformation.getVehicleKeyNum() < 1
|| busVehicleInformation.getCertificate() < 1
|| busVehicleInformation.getApplyForm() < 1
|| busVehicleInformation.getManual() < 1
|| busVehicleInformation.getEnvironmentalList() < 1
|| busVehicleInformation.getDirverCard() < 1
) {
entity.setCompleteState(0);
} else {
if (busVehicleInformation.getGasCertificate() < 1) {
if (busVehicleInformation.getIsFuelVehicle() == 0) {
entity.setCompleteState(0);
} else {
entity.setCompleteState(1);
}
} else {
entity.setCompleteState(1);
}
}
}
}
}
baseMapper.updateById(entity);
return rb.success().setData(dto.getSid());
}
/**
* 二次交接回显
*
* @param sid
* @return
*/
public ResultBean<AppTwoHandoverInfoVo> getInformationHandoverInfo2(String sid) {
ResultBean<AppTwoHandoverInfoVo> rb = ResultBean.fireFail();
AppTwoHandoverInfoVo vo = new AppTwoHandoverInfoVo();
BusVehicleInformationHandover entity = fetchBySid(sid);
vo.setSid(sid);
if (StringUtils.isNotBlank(entity.getContractNo())) {
vo.setContractId(entity.getContractNo());
}
if (StringUtils.isNotBlank(entity.getModel())) {
vo.setModel(entity.getModel());
}
if (StringUtils.isNotBlank(entity.getCustomerName())) {
vo.setCustomerName(entity.getCustomerName());
}
if (StringUtils.isNotBlank(entity.getVinNo())) {
vo.setVin(entity.getVinNo());
}
String handoverNum = "001";
StringBuffer str = new StringBuffer();
BusVehicleInformation infor = busVehicleInformationService.selectByHandoverNumAndHandoverSid(handoverNum, sid);
//车钥匙
if (infor.getVehicleKeyNum() < 1) {
str.append("车钥匙、");
}
//一致性证书
if (infor.getCertificate() < 1) {
str.append("一致性证书、");
}
//申请表
if (infor.getApplyForm() < 1) {
str.append("申请表、");
}
//保修手册、说明书
if (infor.getManual() < 1) {
str.append("保修手册、说明书、");
}
//环保清单
if (infor.getEnvironmentalList() < 1) {
str.append("环保清单、");
}
//驾驶员卡
if (infor.getDirverCard() < 1) {
str.append("驾驶员卡、");
}
if (infor.getGasCertificate() < 1) {
if (infor.getIsFuelVehicle() == 0) {
str.append("气瓶检测合格证、");
}
}
str.delete(str.length() - 1, str.length());
vo.setDocs(str.toString());
String handoverNum2 = "002";
BusVehicleInformation two = busVehicleInformationService.selectByHandoverNumAndHandoverSid(handoverNum2, sid);
if (null != two) {
if (StringUtils.isNotBlank(two.getTransferRemarks())) {
vo.setRemarks(two.getTransferRemarks());
}
}
return rb.success().setData(vo);
}
/**
* 二次交接
*
* @param dto
* @return
*/
public ResultBean<String> confirmInformationHandoverInfo2(AppTwoDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
BusVehicleInformationHandover handover = fetchBySid(sid);
List<BusVehicleInformation> informations = busVehicleInformationService.getByHandoverSid(sid);
if (informations.size() == 1) {
for (BusVehicleInformation information : informations) {
BusVehicleInformation entity = new BusVehicleInformation();
entity.setTransferRemarks(dto.getRemarks());
entity.setHandoverNum("002");
entity.setIsFuelVehicle(handover.getIsFuelVehicle());
entity.setHandoverSid(sid);
entity.setVehicleKeyNum(information.getVehicleKeyNum());
entity.setCertificate(1);
entity.setApplyForm(1);
entity.setManual(1);
entity.setEnvironmentalList(1);
entity.setDirverCard(1);
if (entity.getIsFuelVehicle() == 0) {
entity.setGasCertificate(1);
} else {
entity.setGasCertificate(0);
}
if (StringUtils.isNotBlank(dto.getUserSid())) {
SysUserInfoVo data = sysUserFeign.selectUserInfoByUserSid(dto.getUserSid()).getData();
if (data != null) {
entity.setTransferName(data.getStaffName());
}
}
entity.setVehicleHandoverData(dto.getDocs());
busVehicleInformationService.insert(entity);
}
}
return rb.success().setData(sid);
}
public ResultBean<AppDeatilVo> getInformationHandoverInfoDetail(String sid) {
ResultBean<AppDeatilVo> rb = ResultBean.fireFail();
AppDeatilVo vo = baseMapper.getInformationHandoverInfoDetail(sid);
if (StringUtils.isNotBlank(vo.getContractId())) {
CommonContract contract = commonContractFeign.selectByNo(vo.getContractId()).getData();
if (null != contract) {
if (StringUtils.isNotBlank(contract.getModelSid())) {
vo.setModelSid(contract.getModelSid());
}
if (StringUtils.isNotBlank(contract.getConfigSid())) {
vo.setConfigSid(contract.getConfigSid());
}
if (StringUtils.isNotBlank(contract.getBusSid())) {
BusSalesOrderDetailsVo orderDetailsVo = busSalesOrderService.fetchDetailsVoBySid(contract.getBusSid()).getData();
if (null != orderDetailsVo) {
String orgSidPath = orderDetailsVo.getOrgSidPath();
vo.setModelOrgPath(orgSidPath);
}
}
}
}
List<BusVehicleInformation> informations = busVehicleInformationService.getByHandoverSid(sid);
List<AppDetailRecord> records = new ArrayList<>();
informations.removeAll(Collections.singleton(null));
if (!informations.isEmpty()) {
for (BusVehicleInformation information : informations) {
AppDetailRecord record = new AppDetailRecord();
if (StringUtils.isNotBlank(information.getRemarks())) {
record.setRemarks(information.getRemarks());
}
if (StringUtils.isNotBlank(information.getRecName())) {
record.setRecName(information.getRecName());
}
if (StringUtils.isNotBlank(information.getTransferName())) {
record.setOperaName(information.getTransferName());
}
if (StringUtils.isNotBlank(information.getVehicleHandoverData())) {
record.setDocs(information.getVehicleHandoverData());
}
if (null != information.getRecTime()) {
record.setTime(information.getRecTime());
}
records.add(record);
}
}
vo.setRecord(records);
return rb.success().setData(vo);
}
}

46
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/AppVehicleInformationListVo.java

@ -0,0 +1,46 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* @description
* @date 2023/6/20 21:33
*/
@Data
public class AppVehicleInformationListVo implements Vo {
private String sid;
private String model;
private String customerName;
@JsonProperty("contractId")
private String contractNo;
@JsonProperty("vin")
private String vinNo;
@ApiModelProperty("创建日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
@JsonProperty("createDate")
private Date createTime;
@ApiModelProperty("接收时间")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date receiveDate;
@JsonProperty("nodeState")
private String transferStateValue;
private String completeState;
@JsonProperty("receiveName")
private String recName;
@JsonProperty("receivePhone")
private String recPhone;
private Integer viewType;
// @ApiModelProperty("接收备注")
// private String remarks;
// @ApiModelProperty("移交备注")
// private String remarks2; // 移交备注
private Boolean showHandleBtn;
private Boolean showSecondHandleBtn;
}

17
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/AppVehicleInformationQuery.java

@ -0,0 +1,17 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import com.yxt.common.core.query.Query;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/6/20 21:52
*/
@Data
public class AppVehicleInformationQuery implements Query {
private String userSid;
private String type;
private String orgPath;
private String name;
}

24
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/BusTwoDto.java

@ -0,0 +1,24 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import com.yxt.common.core.dto.Dto;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/6/21 13:40
*/
@Data
public class BusTwoDto implements Dto {
private String userSid;
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String remarks;
private String configSid;
private String modelSid;
private String modelOrgPath;
private String docs;
}

29
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/DataDictionaryResp.java

@ -0,0 +1,29 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @author Administrator
* @description
* @date 2023/6/21 11:05
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class DataDictionaryResp {
private String sid;
private String checkSid;
private String dictKey;
private boolean selected;
private String dictValue;
private boolean mandatory;
private String dictType;
private String extra;
public DataDictionaryResp(String dictKey, String dictValue) {
this.dictKey = dictKey;
this.dictValue = dictValue;
}
}

24
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/DeatilVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/21 14:26
*/
@Data
public class DeatilVo implements Vo {
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String configSid;
private String modelSid;
private String modelOrgPath;
private List<DetailRecord> record;
}

22
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/DetailRecord.java

@ -0,0 +1,22 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
import java.util.Date;
/**
* @author Administrator
* @description
* @date 2023/6/21 14:27
*/
@Data
public class DetailRecord implements Vo {
private String remarks;
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date time;
private String docs;
private String recName;
private String operaName;
}

110
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/InformationHandoverInfoVo.java

@ -0,0 +1,110 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import com.yxt.common.core.vo.Vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/21 11:02
*/
@Data
@NoArgsConstructor
@AllArgsConstructor
public class InformationHandoverInfoVo implements Vo {
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String remarks;
private String configSid;
private String modelSid;
private String modelOrgPath;
private List<ManiFestBean> maniFestBeanList;
public String getSid() {
return sid;
}
public void setSid(String sid) {
this.sid = sid;
}
public String getContractId() {
return contractId;
}
public void setContractId(String contractId) {
this.contractId = contractId;
}
public String getCustomerName() {
return customerName;
}
public void setCustomerName(String customerName) {
this.customerName = customerName;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getVin() {
return vin;
}
public void setVin(String vin) {
this.vin = vin;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public String getConfigSid() {
return configSid;
}
public void setConfigSid(String configSid) {
this.configSid = configSid;
}
public String getModelSid() {
return modelSid;
}
public void setModelSid(String modelSid) {
this.modelSid = modelSid;
}
public String getModelOrgPath() {
return modelOrgPath;
}
public void setModelOrgPath(String modelOrgPath) {
this.modelOrgPath = modelOrgPath;
}
public List<ManiFestBean> getManiFestBeanList() {
return maniFestBeanList;
}
public void setManiFestBeanList(List<ManiFestBean> maniFestBeanList) {
this.maniFestBeanList = maniFestBeanList;
}
}

36
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/ManiFestBean.java

@ -0,0 +1,36 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/21 11:04
*/
@Data
@NoArgsConstructor
public class ManiFestBean {
// 0 是否 1选择
private int type;
// 标题
private String title;
// 保存的字段key
private String key;
// 保存的结果
private String value;
// 选择的字典
private List<DataDictionaryResp> selectors;
public ManiFestBean(int type, String title, String key, String value, List<DataDictionaryResp> selectors) {
this.type = type;
this.title = title;
this.key = key;
this.value = value;
this.selectors = selectors;
}
}

33
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/SaveDataDto.java

@ -0,0 +1,33 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @author Administrator
* @description
* @date 2023/6/21 12:14
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SaveDataDto implements Dto {
private String userSid;
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String remarks;
private String configSid;
private String modelSid;
private String modelOrgPath;
private List<ManiFestBean> maniFestBeanList;
}

23
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/TwoHandoverInfoVo.java

@ -0,0 +1,23 @@
package com.yxt.anrui.terminal.api.autoservice.vehicleinformationhandover;
import com.yxt.common.core.vo.Vo;
import lombok.Data;
/**
* @author Administrator
* @description
* @date 2023/6/21 13:32
*/
@Data
public class TwoHandoverInfoVo implements Vo {
private String sid;
private String contractId;
private String customerName;
private String model;
private String vin;
private String remarks;
private String configSid;
private String modelSid;
private String modelOrgPath;
private String docs;
}

36
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/VehicleInformationHandoverFeign.java

@ -20,14 +20,42 @@ import java.util.List;
@FeignClient(
contextId = "anrui-terminal-VehicleInformationHandover",
name = "anrui-terminal",
path = "/autoservice/v1/vehicleinformationhandover",
path = "/autoservice/v1/vinDatahandover",
fallback = VehicleInformationHandoverFeignFallback.class)
public interface VehicleInformationHandoverFeign {
@ApiOperation("移动端-随车资料交接列表")
@PostMapping("/getInformationHandoverList")
@ResponseBody
ResultBean<PagerVo<AppVehicleInformationHandoverVo>> getInformationHandoverList(@RequestBody PagerQuery<AppVehicleInformationHandoverQuery> pq);
ResultBean<PagerVo<AppVehicleInformationListVo>> getInformationHandoverList(@RequestBody PagerQuery<AppVehicleInformationQuery> pq);
@ApiOperation("编辑回显")
@GetMapping("/getInformationHandoverInfo/{sid}")
@ResponseBody
public ResultBean<InformationHandoverInfoVo> getInformationHandoverInfo(@PathVariable("sid") String sid);
@ApiOperation("交接保存")
@PostMapping("/confirmInformationHandoverInfo")
@ResponseBody
public ResultBean<String> confirmInformationHandoverInfo(@RequestBody SaveDataDto dto);
@ApiOperation("二次编辑回显")
@GetMapping("/getInformationHandoverInfo2/{sid}")
@ResponseBody
public ResultBean<TwoHandoverInfoVo> getInformationHandoverInfo2(@PathVariable("sid") String sid);
@ApiOperation("二次交接保存")
@PostMapping("/confirmInformationHandoverInfo2")
@ResponseBody
public ResultBean<String> confirmInformationHandoverInfo2(@RequestBody BusTwoDto dto);
@ApiOperation("随车资料详情")
@GetMapping("/getInformationHandoverInfoDetail")
@ResponseBody
public ResultBean<DeatilVo> getInformationHandoverInfoDetail(@RequestParam("sid") String sid);
@ApiOperation("移动端新增或修改")
@PostMapping("/appSaveOrUpdate")
@ -37,7 +65,7 @@ public interface VehicleInformationHandoverFeign {
@ApiOperation("编辑回显")
@GetMapping("/fetchDetailsBySid/{sid}/{times}")
@ResponseBody
public ResultBean<AppVehicleInformationHandoverDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid,@PathVariable("times") String times);
public ResultBean<AppVehicleInformationHandoverDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid, @PathVariable("times") String times);
@ApiOperation("随车资料交接详情")
@ -52,14 +80,12 @@ public interface VehicleInformationHandoverFeign {
public ResultBean<List<AppContractBusVechileDataHandoverVo>> contractForHandover(@RequestBody PagerQuery<AppContractBusVechileDataHandoverQuery> pq);
@ApiOperation("对外二次交付新增或修改交车资料管理")
@PostMapping("/saveVehicleData")
@ResponseBody
public ResultBean<String> saveVehicleData(@RequestBody AppVehicleDataHandoverDto dto);
@ApiOperation(("打印交车资料确认单"))
@PostMapping("/createPdf")
public ResultBean<String> createPdf(@RequestBody AppVehicleDataHandoverDto dto) throws Exception;

29
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/vehicleinformationhandover/VehicleInformationHandoverFeignFallback.java

@ -14,8 +14,35 @@ import java.util.List;
*/
@Component
public class VehicleInformationHandoverFeignFallback implements VehicleInformationHandoverFeign{
@Override
public ResultBean<PagerVo<AppVehicleInformationListVo>> getInformationHandoverList(PagerQuery<AppVehicleInformationQuery> pq) {
return null;
}
@Override
public ResultBean<InformationHandoverInfoVo> getInformationHandoverInfo(String sid) {
return null;
}
@Override
public ResultBean<String> confirmInformationHandoverInfo(SaveDataDto dto) {
return null;
}
@Override
public ResultBean<TwoHandoverInfoVo> getInformationHandoverInfo2(String sid) {
return null;
}
@Override
public ResultBean<String> confirmInformationHandoverInfo2(BusTwoDto dto) {
return null;
}
@Override
public ResultBean<PagerVo<AppVehicleInformationHandoverVo>> getInformationHandoverList(PagerQuery<AppVehicleInformationHandoverQuery> pq) {
public ResultBean<DeatilVo> getInformationHandoverInfoDetail(String sid) {
return null;
}

31
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/vehicleinformationhandover/VehicleInformationHandoverRest.java

@ -18,18 +18,43 @@ import java.util.List;
*/
@Api(tags = "随车资料交接")
@RestController
@RequestMapping("/autoservice/v1/vehicleinformationhandover")
@RequestMapping("/autoservice/v1/vinDatahandover")
public class VehicleInformationHandoverRest implements VehicleInformationHandoverFeign {
@Autowired
private VehicleInformationHandoverService vehicleInformationHandoverService;
@Override
public ResultBean<PagerVo<AppVehicleInformationHandoverVo>> getInformationHandoverList(PagerQuery<AppVehicleInformationHandoverQuery> pq) {
@Override
public ResultBean<PagerVo<AppVehicleInformationListVo>> getInformationHandoverList(PagerQuery<AppVehicleInformationQuery> pq) {
return vehicleInformationHandoverService.getInformationHandoverList(pq);
}
@Override
public ResultBean<InformationHandoverInfoVo> getInformationHandoverInfo(String sid) {
return vehicleInformationHandoverService.getInformationHandoverInfo(sid);
}
@Override
public ResultBean<String> confirmInformationHandoverInfo(SaveDataDto dto) {
return vehicleInformationHandoverService.confirmInformationHandoverInfo(dto);
}
@Override
public ResultBean<TwoHandoverInfoVo> getInformationHandoverInfo2(String sid) {
return vehicleInformationHandoverService.getInformationHandoverInfo2(sid);
}
@Override
public ResultBean<String> confirmInformationHandoverInfo2(BusTwoDto dto) {
return vehicleInformationHandoverService.confirmInformationHandoverInfo2(dto);
}
@Override
public ResultBean<DeatilVo> getInformationHandoverInfoDetail(String sid) {
return vehicleInformationHandoverService.getInformationHandoverInfoDetail(sid);
}
@Override
public ResultBean appSaveOrUpdate(AppVehicleInformationHandoverDto dto) {
return vehicleInformationHandoverService.appSaveOrUpdate(dto);

131
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/vehicleinformationhandover/VehicleInformationHandoverService.java

@ -34,24 +34,6 @@ public class VehicleInformationHandoverService {
@Autowired
private BusVehicleDataHandoverFeign busVehicleDataHandoverFeign;
/**
* 随车资料交接分页
*
* @param pq
* @return
*/
public ResultBean<PagerVo<AppVehicleInformationHandoverVo>> getInformationHandoverList(PagerQuery<AppVehicleInformationHandoverQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerQuery<BusVehicleInformationHandoverQuery> pagerQuery = new PagerQuery<>();
BeanUtil.copyProperties(pq, pagerQuery);
PagerVo<BusVehicleInformationHandoverVo> data = busVehicleInformationHandoverFeign.listPage(pagerQuery).getData();
PagerVo<AppVehicleInformationHandoverVo> pagerVo = new PagerVo<>();
if (null != data) {
BeanUtil.copyProperties(data,pagerVo);
}
return rb.success().setData(pagerVo);
}
/**
* 随车资料交接办理
@ -136,10 +118,10 @@ public class VehicleInformationHandoverService {
*/
public ResultBean<String> saveVehicleData(AppVehicleDataHandoverDto dto) {
ResultBean rb = ResultBean.fireFail();
BusVehicleDataHandoverDto busDto = new BusVehicleDataHandoverDto();
BeanUtil.copyProperties(dto, busDto);
String sid = busVehicleDataHandoverFeign.saveOrUpdate(busDto).getData();
return rb.success().setData(sid);
// BusVehicleDataHandoverDto busDto = new BusVehicleDataHandoverDto();
// BeanUtil.copyProperties(dto, busDto);
// String sid = busVehicleDataHandoverFeign.saveOrUpdate(busDto).getData();
return rb.success();
}
@ -176,15 +158,16 @@ public class VehicleInformationHandoverService {
public ResultBean<PagerVo<AppVehicleDataHandoverVo>> vehicleDataListPage(PagerQuery<AppVehicleDataHandoverQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerQuery<BusVehicleDataHandoverQuery> pagerQuery = new PagerQuery<>();
BeanUtil.copyProperties(pq,pagerQuery);
BeanUtil.copyProperties(pq, pagerQuery);
PagerVo<BusVehicleDataHandoverVo> data = busVehicleDataHandoverFeign.listPage(pagerQuery).getData();
PagerVo<AppVehicleDataHandoverVo> pagerVo = new PagerVo<>();
BeanUtil.copyProperties(data,pagerVo);
BeanUtil.copyProperties(data, pagerVo);
return rb.success().setData(pagerVo);
}
/**
* 移动端随车资料内部交接编辑回显
*
* @param sid
* @param times
* @return
@ -195,13 +178,14 @@ public class VehicleInformationHandoverService {
AppVehicleInformationHandoverDetailsVo vo = new AppVehicleInformationHandoverDetailsVo();
if (voResultBean.getSuccess()) {
BusVehicleInformationHandoverDetailsVo data = voResultBean.getData();
BeanUtil.copyProperties(data,vo);
BeanUtil.copyProperties(data, vo);
}
return rb.success().setData(vo);
}
/**
* 随车资料交接详情
*
* @param sid
* @return
*/
@ -211,7 +195,102 @@ public class VehicleInformationHandoverService {
AppVehicleInformationHandoverDetailsListVo vo = new AppVehicleInformationHandoverDetailsListVo();
if (voResultBean.getSuccess()) {
BusVehicleInformationHandoverDetailsListVo data = voResultBean.getData();
BeanUtil.copyProperties(data,vo);
BeanUtil.copyProperties(data, vo);
}
return rb.success().setData(vo);
}
/**
* 分页列表
*
* @param pq
* @return
*/
public ResultBean<PagerVo<AppVehicleInformationListVo>> getInformationHandoverList(PagerQuery<AppVehicleInformationQuery> pq) {
ResultBean<PagerVo<AppVehicleInformationListVo>> rb = ResultBean.fireFail();
PagerQuery<AppInformationQuery> pagerQuery = new PagerQuery<>();
BeanUtil.copyProperties(pq, pagerQuery);
ResultBean<PagerVo<AppInformationListVo>> resultBean = busVehicleInformationHandoverFeign.getInformationHandoverList(pagerQuery);
PagerVo<AppVehicleInformationListVo> vo = new PagerVo<>();
if (resultBean.getSuccess()) {
PagerVo<AppInformationListVo> data = resultBean.getData();
BeanUtil.copyProperties(data, vo);
}
return rb.success().setData(vo);
}
/**
* 编辑回显
*
* @param sid
* @return
*/
public ResultBean<InformationHandoverInfoVo> getInformationHandoverInfo(String sid) {
ResultBean<InformationHandoverInfoVo> rb = ResultBean.fireFail();
ResultBean<AppInformationHandoverInfoVo> informationHandoverInfo = busVehicleInformationHandoverFeign.getInformationHandoverInfo(sid);
InformationHandoverInfoVo vo = new InformationHandoverInfoVo();
if (informationHandoverInfo.getSuccess()) {
AppInformationHandoverInfoVo data = informationHandoverInfo.getData();
if (null != data) {
BeanUtil.copyProperties(data, vo);
}
}
return rb.success().setData(vo);
}
/**
* 第一次交接
*
* @param dto
* @return
*/
public ResultBean<String> confirmInformationHandoverInfo(SaveDataDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
AppSaveDataDto appSaveDataDto = new AppSaveDataDto();
BeanUtil.copyProperties(dto, appSaveDataDto);
ResultBean<String> resultBean = busVehicleInformationHandoverFeign.confirmInformationHandoverInfo(appSaveDataDto);
if (resultBean.getSuccess()) {
String data = resultBean.getData();
return rb.success().setData(data);
}
return rb.success();
}
public ResultBean<TwoHandoverInfoVo> getInformationHandoverInfo2(String sid) {
ResultBean<TwoHandoverInfoVo> rb = ResultBean.fireFail();
TwoHandoverInfoVo vo = new TwoHandoverInfoVo();
ResultBean<AppTwoHandoverInfoVo> resultBean = busVehicleInformationHandoverFeign.getInformationHandoverInfo2(sid);
if (resultBean.getSuccess()) {
AppTwoHandoverInfoVo data = resultBean.getData();
BeanUtil.copyProperties(data, vo);
return rb.success().setData(vo);
}
return rb.success().setData(vo);
}
public ResultBean<String> confirmInformationHandoverInfo2(BusTwoDto dto) {
ResultBean<String> rb = ResultBean.fireFail();
AppTwoDto twoDto = new AppTwoDto();
BeanUtil.copyProperties(dto, twoDto);
ResultBean<String> resultBean = busVehicleInformationHandoverFeign.confirmInformationHandoverInfo2(twoDto);
if (resultBean.getSuccess()) {
String data = resultBean.getData();
return rb.success().setData(data);
}
return rb.success();
}
public ResultBean<DeatilVo> getInformationHandoverInfoDetail(String sid) {
ResultBean<DeatilVo> rb = ResultBean.fireFail();
DeatilVo vo = new DeatilVo();
ResultBean<AppDeatilVo> resultBean = busVehicleInformationHandoverFeign.getInformationHandoverInfoDetail(sid);
if (resultBean.getSuccess()) {
AppDeatilVo data = resultBean.getData();
BeanUtil.copyProperties(data, vo);
return rb.success().setData(vo);
}
return rb.success().setData(vo);
}

Loading…
Cancel
Save