Browse Source

Merge remote-tracking branch 'origin/master'

master
alllenliufor3 3 years ago
parent
commit
b6b644d5d4
  1. 17
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/AppCarConfigSummaryVo.java
  2. 79
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/AppModelConfigListQuery.java
  3. 31
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/AppModelConfigListVo.java
  4. 66
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/AppModelConfigVo.java
  5. 23
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/BaseModelConfigFeign.java
  6. 15
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/BaseModelConfigFeignFallback.java
  7. 14
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/BaseModelConfigListQuery.java
  8. 23
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/BaseModelConfigListVo.java
  9. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleFeign.java
  10. 10
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleFeignFallback.java
  11. 49
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleNowModelQuery.java
  12. 33
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleNowModelVo.java
  13. 20
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppCurrentCarDetailConfigQuery.java
  14. 46
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppCurrentCarDetailConfigVo.java
  15. 31
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppCurrentCarDetailCongfigVo.java
  16. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppVehicleModelPriceQuery.java
  17. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseExistingCarPageQuery.java
  18. 17
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java
  19. 14
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeignFallback.java
  20. 10
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclemodel/BaseVehicleModelFeign.java
  21. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclemodel/BaseVehicleModelFeignFallback.java
  22. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclemodel/BaseVehicleModelListQuery.java
  23. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclemodel/BaseVehicleModelListVo.java
  24. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeign.java
  25. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeignFallback.java
  26. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderListQuery.java
  27. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractQuery.java
  28. 31
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractVo.java
  29. 23
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigMapper.java
  30. 210
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigMapper.xml
  31. 32
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigRest.java
  32. 307
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigService.java
  33. 39
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/AppBaseVehicleRest.java
  34. 42
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java
  35. 86
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  36. 43
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java
  37. 252
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  38. 11
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelMapper.java
  39. 35
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelMapper.xml
  40. 9
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelRest.java
  41. 69
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelService.java
  42. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.java
  43. 48
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.xml
  44. 8
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java
  45. 33
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderService.java
  46. 4
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java
  47. 6
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java
  48. 180
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java
  49. 17
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.java
  50. 27
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.xml
  51. 23
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
  52. 40
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java
  53. 27
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetails.java
  54. 27
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetailsDto.java
  55. 16
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetailsFeign.java
  56. 12
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetailsFeignFallback.java
  57. 29
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSales.java
  58. 36
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesDto.java
  59. 40
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesFeign.java
  60. 29
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesFeignFallback.java
  61. 23
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesQuery.java
  62. 33
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesVo.java
  63. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java
  64. 20
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualdetails/ScmVehicleActualDetailsMapper.java
  65. 15
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualdetails/ScmVehicleActualDetailsMapper.xml
  66. 17
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualdetails/ScmVehicleActualDetailsRest.java
  67. 58
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualdetails/ScmVehicleActualDetailsService.java
  68. 27
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesMapper.java
  69. 13
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesMapper.xml
  70. 45
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesRest.java
  71. 155
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesService.java
  72. 1
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml
  73. 6
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java
  74. 50
      anrui-scm/anrui-scm-ui/src/api/flow/todo.js
  75. 47
      anrui-scm/anrui-scm-ui/src/api/ruzhang/scmapplyinbound.js
  76. 42
      anrui-scm/anrui-scm-ui/src/api/supplychain/busvehicleapply.js
  77. 34
      anrui-scm/anrui-scm-ui/src/router/modules/codemenu.js
  78. 276
      anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue
  79. 219
      anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangInfo.vue
  80. 258
      anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangguanli.vue
  81. 505
      anrui-scm/anrui-scm-ui/src/views/supplychain/vehicle/cheliangpaichan/cheliangpaichan.vue
  82. 521
      anrui-scm/anrui-scm-ui/src/views/supplychain/vehicle/cheliangpaichan/cheliangpaichanAdd.vue
  83. 456
      anrui-scm/anrui-scm-ui/src/views/supplychain/vehicle/cheliangpaichan/cheliangpaichanInfo.vue
  84. 191
      anrui-scm/anrui-scm-ui/src/views/supplychain/vehicle/cheliangpaichan/chexingbyconfiguration.vue
  85. 455
      anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanEdit.vue
  86. 529
      anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanInfo.vue
  87. 191
      anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/chexingbyconfiguration.vue
  88. 276
      anrui-scm/anrui-scm-ui/src/views/workFlow/ruzhangguanliFlow/ruzhangguanli/ruzhangEdit.vue
  89. 219
      anrui-scm/anrui-scm-ui/src/views/workFlow/ruzhangguanliFlow/ruzhangguanli/ruzhangInfo.vue
  90. 11
      anrui-system-ui/src/views/flow/doneList.vue
  91. 7
      anrui-system-ui/src/views/flow/todoList.vue
  92. 53
      doc/databases/scm_tables.sql

17
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/AppCarConfigSummaryVo.java

@ -0,0 +1,17 @@
package com.yxt.anrui.base.api.basemodelconfig;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AppCarConfigSummaryVo {
@ApiModelProperty("常用配置")
private String config;
@ApiModelProperty("更多配置")
private String moreConfig;
@ApiModelProperty("车型名称")
private String model;
}

79
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/AppModelConfigListQuery.java

@ -0,0 +1,79 @@
package com.yxt.anrui.base.api.basemodelconfig;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AppModelConfigListQuery implements Query {
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("颜色")
private String bodyColor;
@ApiModelProperty("缓速器")
private String slowMachine;
@ApiModelProperty("后视镜")
private String rearViewMirror;
@ApiModelProperty("轮胎")
private String tireSize;
@ApiModelProperty("驾驶室")
private String specification;
@ApiModelProperty("后桥速比")
private String rearAxleRatio;
@ApiModelProperty("空调")
private String airConditioner;
@ApiModelProperty("轮毂材质")
private String hubMaterial;
@ApiModelProperty("导流罩")
private String diversionCover;
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("多媒体")
private String multiMedia;
@ApiModelProperty("燃料箱")
private String fuelTank;
@ApiModelProperty("独立热源")
private String independentSources;
@ApiModelProperty("配置包")
private String configuringBao;
@ApiModelProperty("保险杠")
private String bumper;
@ApiModelProperty("轴距")
private String wheelbase;
@ApiModelProperty("鞍座")
private String saddle;
@ApiModelProperty("护轮罩")
private String protectTireCover;
@ApiModelProperty("座椅")
private String seat;
@ApiModelProperty("悬架")
private String suspension;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("分公司")
private String useOrg;
}

31
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/AppModelConfigListVo.java

@ -1,10 +1,13 @@
package com.yxt.anrui.base.api.basemodelconfig;
import com.yxt.anrui.base.api.basevehicle.AppMoreConfigVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.boot.autoconfigure.validation.ValidationAutoConfiguration;
import java.util.List;
@Data
public class AppModelConfigListVo implements Vo {
@ -57,24 +60,36 @@ public class AppModelConfigListVo implements Vo {
@ApiModelProperty(value = "有效期")
private String priceValidity;
@ApiModelProperty(value = "辆")
private String vehicleQuantity;
@ApiModelProperty(value = "指导价")
private String guidedPrice;
@ApiModelProperty(value = "参考价")
private String salesReferencePrice;
@ApiModelProperty(value = "现车")
private String nowCarNum;
@ApiModelProperty(value = "车型")
private String model;
@ApiModelProperty(value = "排产车")
private String produceCarNum;
@ApiModelProperty(value = "更多配置")
private List<AppMoreConfigVo> moreConfig;
@ApiModelProperty(value = "辆(已废弃)")
private String vehicleQuantity;
@ApiModelProperty(value = "车型sid")
private String modelSid;
@ApiModelProperty(value = "品牌")
@ApiModelProperty(value = "车型名称")
private String modelName;
@ApiModelProperty(value = "车型名称")
private String model;
@ApiModelProperty(value = "品牌名称")
private String brand;
@ApiModelProperty(value = "更多配置")
private String otherConfig;
@ApiModelProperty(value = "品牌sid")
private String brandSid;
}

66
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/AppModelConfigVo.java

@ -0,0 +1,66 @@
package com.yxt.anrui.base.api.basemodelconfig;
import com.yxt.anrui.base.api.basevehicle.ConfigInfo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class AppModelConfigVo implements Vo {
@ApiModelProperty("车型图片")
private List<String> modelImage;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("指导价")
private String price;
@ApiModelProperty("车型list")
private List<ConfigInfo> configList;
@ApiModelProperty("品牌名称")
private String brandName;
@ApiModelProperty("版本")
private String vehicleVersionValue;
@ApiModelProperty("配置列表")
private List<AppModelConfigListVo> modelConfigList;
@ApiModelProperty(value = "功能")
private String vehicleTypeValue;
@ApiModelProperty(value = "系列")
private String productLineValue;
@ApiModelProperty(value = "驱动")
private String driveFormValue;
@ApiModelProperty(value = "马力")
private String powerValue;
@ApiModelProperty(value = "燃料")
private String fuelTypeValue;
@ApiModelProperty(value = "变速箱")
private String gearboxTypeValue;
@ApiModelProperty(value = "细分市场")
private String marketSegments;
@ApiModelProperty(value = "系别")
private String department;
@ApiModelProperty(value = "发动机型号")
private String engineTypeValue;
@ApiModelProperty(value = "公告型号")
private String announcementModel;
@ApiModelProperty(value = "规格型号")
private String specifications;
@ApiModelProperty(value = "货箱")
private String packingCase;
@ApiModelProperty(value = "内部编码")
private String insideCode;
}

23
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/BaseModelConfigFeign.java

@ -117,15 +117,26 @@ public interface BaseModelConfigFeign {
public ResultBean<BaseModelConfigVo> getByVeSid(@RequestParam("sid") String sid);
/**
* pc端车型配置分页列表()
* 车型配置分页列表()
*
* @param pagerQuery
* @return
*/
@ApiOperation("pc端车型库配置分页列表(改)")
@ApiOperation("车型配置分页列表(新)")
@PostMapping("/configPageList")
ResultBean<PagerVo<BaseModelConfigListVo>> configPageList(@Valid @RequestBody PagerQuery<BaseModelConfigListQuery> pagerQuery);
/**
* 更多配置分页列表(非本公司的)
*
* @param pagerQuery
* @return
*/
@ApiOperation("更多配置分页列表(非本公司的)")
@PostMapping("/notTheCompanyConfigPageList")
ResultBean<PagerVo<BaseModelConfigListVo>> notTheCompanyConfigPageList(@Valid @RequestBody PagerQuery<BaseModelConfigListQuery> pagerQuery);
@Deprecated
/**
* @see com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign.selectExiCarConfig
@ -140,5 +151,13 @@ public interface BaseModelConfigFeign {
@GetMapping("/getAppDetailByModelConfigSid")
public ResultBean<AppModelConfigDetailsVo> getAppDetailByModelConfigSid(@RequestParam("sid") String sid);
@ApiOperation("App车型报价-获取当前车型配置(新)")
@PostMapping("/getModelConfigList")
public ResultBean<AppModelConfigVo> getModelConfigList(@Valid @RequestBody PagerQuery<AppModelConfigListQuery> pagerQuery);
@ApiOperation("App车型报价-获取现车配置列表(新)")
@PostMapping("/getNowConfigList")
public ResultBean<AppModelConfigVo> getNowConfigList(@Valid @RequestBody PagerQuery<AppModelConfigListQuery> pagerQuery);
}

15
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/BaseModelConfigFeignFallback.java

@ -89,6 +89,11 @@ public class BaseModelConfigFeignFallback implements BaseModelConfigFeign {
return null;
}
@Override
public ResultBean<PagerVo<BaseModelConfigListVo>> notTheCompanyConfigPageList(PagerQuery<BaseModelConfigListQuery> pagerQuery) {
return null;
}
@Override
public ResultBean<BaseModelConfigDetailsVo> selectDetails(String sid, String modelSid) {
return null;
@ -98,4 +103,14 @@ public class BaseModelConfigFeignFallback implements BaseModelConfigFeign {
public ResultBean<AppModelConfigDetailsVo> getAppDetailByModelConfigSid(String sid) {
return null;
}
@Override
public ResultBean<AppModelConfigVo> getModelConfigList(PagerQuery<AppModelConfigListQuery> pagerQuery) {
return null;
}
@Override
public ResultBean<AppModelConfigVo> getNowConfigList(PagerQuery<AppModelConfigListQuery> pagerQuery) {
return null;
}
}

14
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/BaseModelConfigListQuery.java

@ -15,9 +15,10 @@ import javax.validation.constraints.NotBlank;
public class BaseModelConfigListQuery implements Query {
private static final long serialVersionUID = 932522587144455873L;
@ApiModelProperty(value = "车型sid",required = true)
@ApiModelProperty(value = "车型sid", required = true)
@NotBlank(message = "请选择车型")
private String sid;
private String modelSid;
@ApiModelProperty(value = "颜色")
private String carColor;
@ -33,9 +34,12 @@ public class BaseModelConfigListQuery implements Query {
@ApiModelProperty(value = "燃料箱")
private String fuelTank;
@ApiModelProperty(value = "车型配置sid")
private String configSid;
@ApiModelProperty(value = "常用配置")
private String configName;
@ApiModelProperty(value = "分公司")
private String useOrg;
@ApiModelProperty(value = "用户sid")
private String userSid;
}

23
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelconfig/BaseModelConfigListVo.java

@ -36,6 +36,29 @@ public class BaseModelConfigListVo implements Vo {
@ApiModelProperty(value = "排产车")
private String productionCarNum;
@ApiModelProperty(value = "分公司")
private String company;
/*配置名称字段*/
private String slowMachine;
private String rearViewMirror;
private String tireSize;
private String specification;
private String rearAxleRatio;
private String airConditioner;
private String hubMaterial;
private String baffleModel;
private String suspension;
private String seat;
private String tireCover;
private String saddle;
private String wheelbase;
private String bumper;
private String configuringBao;
private String independentSources;
private String fuelTank;
private String multimedia;
}

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleFeign.java

@ -28,9 +28,9 @@ import org.springframework.web.bind.annotation.*;
fallback = BaseVehicleFeignFallback.class)
public interface AppBaseVehicleFeign {
@ApiOperation("手机端现车详细配置")
@GetMapping("/appCarParams/{modelSid}/{configSid}")
public ResultBean<AppCurrentCarDetailCongfigVo> getAppCurrentCarDetailConfigVo(@PathVariable("modelSid") String modelSid, @PathVariable("configSid") String configSid);
@ApiOperation("手机端现车详细配置(新)")
@GetMapping("/appCarParams")
public ResultBean<AppCurrentCarDetailConfigVo> getAppCurrentCarDetailConfigVo(@RequestParam("modelSid") String modelSid, @RequestParam("configSid") String configSid, @RequestParam("userSid") String userSid);
}

10
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleFeignFallback.java

@ -1,15 +1,7 @@
package com.yxt.anrui.base.api.basevehicle;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
@ -28,7 +20,7 @@ import java.util.Map;
public class AppBaseVehicleFeignFallback implements AppBaseVehicleFeign {
@Override
public ResultBean<AppCurrentCarDetailCongfigVo> getAppCurrentCarDetailConfigVo(String modelSid, String configSid) {
public ResultBean<AppCurrentCarDetailConfigVo> getAppCurrentCarDetailConfigVo(String modelSid, String configSid,String userSid) {
return null;
}
}

49
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleNowModelQuery.java

@ -0,0 +1,49 @@
package com.yxt.anrui.base.api.basevehicle;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AppBaseVehicleNowModelQuery implements Query {
@ApiModelProperty("名称")
private String name;
@ApiModelProperty("排放标准")
private String emissionStandard;
@ApiModelProperty("驱动")
private String driver;
@ApiModelProperty("变速箱")
private String gearbox;
@ApiModelProperty("产品系列")
private String series;
@ApiModelProperty("功能")
private String vehicleFunction;
@ApiModelProperty("细分市场")
private String marketSegments;
@ApiModelProperty("版本")
private String vehicleVersion;
@ApiModelProperty("燃料")
private String fuelType;
@ApiModelProperty("马力")
private String horsepower;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty("分公司")
private String useOrg;
}

33
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleNowModelVo.java

@ -0,0 +1,33 @@
package com.yxt.anrui.base.api.basevehicle;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AppBaseVehicleNowModelVo implements Vo {
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("车型名称")
private String modelName;
@ApiModelProperty("车型图片")
private String modelImage;
@ApiModelProperty("品牌名称")
private String brandName;
@ApiModelProperty("品牌sid")
private String brandSid;
@ApiModelProperty("版本号")
private String versionValue;
@ApiModelProperty("燃料")
private String fuelTypeValue;
@ApiModelProperty("变速箱")
private String gearboxTypeValue;
@ApiModelProperty("指导价")
private String guidedPrice;
@ApiModelProperty("配置数量")
private String configNum;
@ApiModelProperty("现车数量")
private String nowCarNum;
}

20
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppCurrentCarDetailConfigQuery.java

@ -0,0 +1,20 @@
package com.yxt.anrui.base.api.basevehicle;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class AppCurrentCarDetailConfigQuery implements Query {
@ApiModelProperty("车型sid")
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("用户sid")
private String userSid;
}

46
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppCurrentCarDetailConfigVo.java

@ -0,0 +1,46 @@
package com.yxt.anrui.base.api.basevehicle;
import com.yxt.anrui.base.api.basemodelconfig.AppModelConfigDetailsVo;
import com.yxt.anrui.base.api.basemodelszconfig.AppBaseModelSzconfigDetailsVo;
import com.yxt.anrui.base.api.basetrailer.AppBaseTrailerDetailsVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class AppCurrentCarDetailConfigVo implements Vo {
@ApiModelProperty(value = "车型信息")
private List<List<ConfigInfoSpanSize>> modelInfo;
@ApiModelProperty(value = "常用配置")
private List<ConfigInfoSpanSize> configInfo;
@ApiModelProperty(value = "更多配置")
private String moreConfig;
@ApiModelProperty(value = "指导价")
private String price;
@ApiModelProperty(value = "价格有效期")
private String date;
@ApiModelProperty(value = "价格有效期")
private Long dateLong;
@ApiModelProperty(value = "车型名称")
private String model;
@ApiModelProperty(value = "品牌")
private String brand;
@ApiModelProperty(value = "品牌sid")
private String brandSid;
@ApiModelProperty(value = "现车和排产车总数")
private String num;
}

31
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppCurrentCarDetailCongfigVo.java

@ -1,31 +0,0 @@
package com.yxt.anrui.base.api.basevehicle;
import com.yxt.anrui.base.api.basemodelconfig.AppModelConfigDetailsVo;
import com.yxt.anrui.base.api.basemodelszconfig.AppBaseModelSzconfigDetailsVo;
import com.yxt.anrui.base.api.basetrailer.AppBaseTrailerDetailsVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class AppCurrentCarDetailCongfigVo implements Vo {
@ApiModelProperty(value = "车型信息")
private List<List<ConfigInfoSpanSize>> modleInfo;
@ApiModelProperty(value = "常用配置")
private List<ConfigInfoSpanSize> commonConfigInfo;
@ApiModelProperty(value = "更多配置")
private String moreConfigDescibe;
/*@ApiModelProperty(value = "上装")
private List<List<ConfigInfoSpanSize>> trailerInfo;
@ApiModelProperty(value = "挂车")
private List<List<ConfigInfoSpanSize>> topInfo;*/
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppVehicleModelPriceQuery.java

@ -47,4 +47,7 @@ public class AppVehicleModelPriceQuery implements Query {
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "分公司")
private String useOrg;
}

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseExistingCarPageQuery.java

@ -26,4 +26,10 @@ public class BaseExistingCarPageQuery implements Query {
@ApiModelProperty(value = "锁定状态")
private String lockedState;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "分公司")
private String useOrg;
}

17
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeign.java

@ -1,5 +1,6 @@
package com.yxt.anrui.base.api.basevehicle;
import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -161,9 +162,9 @@ public interface BaseVehicleFeign {
* @param configSid 配置sid
* @return
*/
@ApiOperation("车型详细配置接口")
@GetMapping("/selectExiCarConfig/{modelSid}/{configSid}")
public ResultBean<ExiCarConfigDetailVo> selectExiCarConfig(@PathVariable("modelSid") String modelSid, @PathVariable("configSid") String configSid);
@ApiOperation("车型详细配置接口(新)")
@GetMapping("/selectExiCarConfig/{modelSid}/{configSid}/{userSid}")
public ResultBean<ExiCarConfigDetailVo> selectExiCarConfig(@PathVariable("modelSid") String modelSid, @PathVariable("configSid") String configSid, @PathVariable("userSid") String userSid);
/**
* 现车分页列表
@ -190,7 +191,15 @@ public interface BaseVehicleFeign {
@GetMapping("/getVins/{modelSid}/{configSid}")
public ResultBean<List<AppVinsDetailsVo>> getVins(@PathVariable("modelSid") String modelSid, @PathVariable("configSid") String configSid);
@ApiOperation("手机端业务-车型报价-列表")
@ApiOperation("手机端业务-车型报价-列表(新)")
@PostMapping("/getModelList")
public ResultBean<PagerVo<AppVehicleModelPriceVo>> getModelList(@RequestBody PagerQuery<AppVehicleModelPriceQuery> pagerQuery);
@ApiOperation("手机端业务-现车列表(新)虚拟订单选择车辆")
@PostMapping("/getNowModelList")
public ResultBean<PagerVo<AppBaseVehicleNowModelVo>> getNowModelList(@RequestBody PagerQuery<AppBaseVehicleNowModelQuery> pagerQuery);
@ApiOperation("获取车型配置总结(即常用配置一句话描述)")
@GetMapping("/carConfigSummary/{modelSid}/{configSid}")
public ResultBean<AppCarConfigSummaryVo> getCarConfigSummary(@PathVariable("modelSid") String modelSid, @PathVariable("configSid") String configSid);
}

14
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleFeignFallback.java

@ -1,5 +1,6 @@
package com.yxt.anrui.base.api.basevehicle;
import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -89,7 +90,7 @@ public class BaseVehicleFeignFallback implements BaseVehicleFeign {
}
@Override
public ResultBean<ExiCarConfigDetailVo> selectExiCarConfig(String modelSid, String configSid) {
public ResultBean<ExiCarConfigDetailVo> selectExiCarConfig(String modelSid, String configSid, String userSid) {
return null;
}
@ -117,4 +118,15 @@ public class BaseVehicleFeignFallback implements BaseVehicleFeign {
public ResultBean getModelList(PagerQuery<AppVehicleModelPriceQuery> pagerQuery) {
return ResultBean.fireFail().setMsg("接口anrui-base/basevehicle/getModelList无法访问");
}
@Override
public ResultBean<PagerVo<AppBaseVehicleNowModelVo>> getNowModelList(PagerQuery<AppBaseVehicleNowModelQuery> pagerQuery) {
return null;
}
@Override
public ResultBean<AppCarConfigSummaryVo> getCarConfigSummary(String modelSid, String configSid) {
return null;
}
}

10
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclemodel/BaseVehicleModelFeign.java

@ -161,4 +161,14 @@ public interface BaseVehicleModelFeign {
@PostMapping("/modelPageList")
ResultBean<PagerVo<BaseVehicleModelListVo>> modelPageList(@RequestBody PagerQuery<BaseVehicleModelListQuery> query);
/**
* 更多车型分页列表(非本公司的)
*
* @param query
* @return
*/
@ApiOperation("更多车型分页列表(非本公司的)")
@PostMapping("/notTheCompanyModelPageList")
ResultBean<PagerVo<BaseVehicleModelListVo>> notTheCompanyModelPageList(@RequestBody PagerQuery<BaseVehicleModelListQuery> query);
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclemodel/BaseVehicleModelFeignFallback.java

@ -91,6 +91,11 @@ public class BaseVehicleModelFeignFallback implements BaseVehicleModelFeign {
return null;
}
@Override
public ResultBean<PagerVo<BaseVehicleModelListVo>> notTheCompanyModelPageList(PagerQuery<BaseVehicleModelListQuery> query) {
return null;
}
/*@Override
public ResultBean<PagerVo<BaseVehicleModelListVo>> selectPage(PagerQuery<BaseVehicleModelListQuery> query) {
return null;

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclemodel/BaseVehicleModelListQuery.java

@ -33,4 +33,6 @@ public class BaseVehicleModelListQuery implements Query {
private String gearboxType;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "分公司sid")
private String useOrg;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclemodel/BaseVehicleModelListVo.java

@ -34,5 +34,7 @@ public class BaseVehicleModelListVo implements Vo {
private String nowCarNum;
@ApiModelProperty(value = "排产车")
private String productionCarNum;
@ApiModelProperty(value = "分公司")
private String company;
}

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeign.java

@ -25,7 +25,7 @@
*********************************************************/
package com.yxt.anrui.base.api.busvehicleorder;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailCongfigVo;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailConfigVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -81,7 +81,7 @@ public interface BusVehicleOrderFeign {
* @param pq 查询条件
* @return
*/
@ApiOperation("排产车型列表()")
@ApiOperation("排产车型列表()")
@PostMapping("/selectPage")
ResultBean<PagerVo<BusVehicleOrderListVo>> selectPage(@RequestBody PagerQuery<BusVehicleOrderListQuery> pq);
@ -101,7 +101,7 @@ public interface BusVehicleOrderFeign {
@ApiOperation("手机端排产车详细配置")
@GetMapping("/appProductionScheduling/{modelSid}/{configSid}")
public ResultBean<AppCurrentCarDetailCongfigVo> getAppProductionSchedulingDetailConfigVo(@PathVariable("modelSid") String modelSid, @PathVariable("configSid") String configSid);
public ResultBean<AppCurrentCarDetailConfigVo> getAppProductionSchedulingDetailConfigVo(@PathVariable("modelSid") String modelSid, @PathVariable("configSid") String configSid);
}

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeignFallback.java

@ -25,7 +25,7 @@
*********************************************************/
package com.yxt.anrui.base.api.busvehicleorder;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailCongfigVo;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailConfigVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -86,7 +86,7 @@ public class BusVehicleOrderFeignFallback implements BusVehicleOrderFeign {
}
@Override
public ResultBean<AppCurrentCarDetailCongfigVo> getAppProductionSchedulingDetailConfigVo(String modelSid, String configSid) {
public ResultBean<AppCurrentCarDetailConfigVo> getAppProductionSchedulingDetailConfigVo(String modelSid, String configSid) {
return null;
}

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderListQuery.java

@ -28,4 +28,10 @@ public class BusVehicleOrderListQuery implements Query {
@ApiModelProperty(value = "配置sid")
private String configSid;
@ApiModelProperty(value = "用户sid")
private String userSid;
@ApiModelProperty(value = "分公司")
private String useOrg;
}

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractQuery.java

@ -26,8 +26,8 @@ public class CommonContractQuery implements Query {
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("合同类型")
private String contractType;
@ApiModelProperty("合同类型key")
private String contractTypeKey;
@ApiModelProperty("甲方名称")
private String partyA;

31
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractVo.java

@ -34,39 +34,18 @@ public class CommonContractVo implements Vo {
private String sid;
@ApiModelProperty("合同编号")
private String contractNo;
@ApiModelProperty("合同类型key")
private String contractTypeKey;
@ApiModelProperty("合同类型")
private String contractType;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("业务员sid")
private String staffSid;
@ApiModelProperty("业务员")
@ApiModelProperty("经办人")
private String staffName;
@ApiModelProperty("部门sid")
private String orgSid;
@ApiModelProperty("业务表sid")
private String busSid;
@ApiModelProperty("甲方名称")
@ApiModelProperty("甲方名称")
private String partyA;
@ApiModelProperty("乙方名称")
@ApiModelProperty("乙方名称")
private String partyB;
@ApiModelProperty("其他方名称")
private String partyC;
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("签订日期")
private Date createDate;
@ApiModelProperty("签订地点")
private String address;
@ApiModelProperty("订金")
private BigDecimal deposit;
@ApiModelProperty("合同金额")
private String contractAmount;
@ApiModelProperty("合同附件")
private String appdixUrl;
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("现场签署图片附件")
private String sceneSignUrl;
@ApiModelProperty("节点状态")
private String nodeState;
@ApiModelProperty("附件文件")

23
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigMapper.java

@ -6,6 +6,7 @@ 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.base.api.basemodelconfig.*;
import com.yxt.anrui.base.api.basevehicle.AppMoreConfigVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -144,10 +145,10 @@ public interface BaseModelConfigMapper extends BaseMapper<BaseModelConfig> {
* @param configSid
* @return
*/
AppModelConfigDetailsVo getAppModelConfigDetailsVo(@Param("modelSid") String modelSid, @Param("configSid") String configSid);
AppModelConfigDetailsVo getAppModelConfigDetailsVo(@Param("modelSid") String modelSid, @Param("configSid") String configSid ,@Param("useOrg") String useOrg);
/**
* pc端车型配置分页列表()
* 车型配置分页列表()
*
* @param page 分页
* @param qw 查询条件
@ -155,6 +156,15 @@ public interface BaseModelConfigMapper extends BaseMapper<BaseModelConfig> {
*/
IPage<BaseModelConfigListVo> configPageList(IPage<BaseModelConfigListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<BaseModelConfigListVo> qw);
/**
* 更多配置分页列表(非本公司的)
*
* @param page 分页
* @param qw 查询条件
* @return
*/
IPage<BaseModelConfigListVo> notTheCompanyConfigPageList(IPage<BaseModelConfigListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<BaseModelConfigListVo> qw);
/**
* 根据车型配置sid查询配置详情
*
@ -171,4 +181,13 @@ public interface BaseModelConfigMapper extends BaseMapper<BaseModelConfig> {
* @return
*/
AppModelConfigDetailsVo getAppProductionSchedulingDetailsVo(@Param("modelSid") String modelSid, @Param("configSid") String configSid);
//查询车型信息
AppModelConfigVo getModelConfigList(String modelSid);
List<AppModelConfigListVo> getModelConfigPageList(IPage<AppModelConfigListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<AppModelConfigListVo> qw);
List<AppMoreConfigVo> getCompanyModelList(@Param("modelSid") String modelSid, @Param("configSid") String configSid, @Param("useOrg") String useOrg);
AppModelConfigListVo getCarConfigSummary(@Param("modelSid") String modelSid, @Param("configSid") String configSid);
}

210
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigMapper.xml

@ -170,25 +170,25 @@
<select id="selectDown" resultType="com.yxt.anrui.base.api.basemodelconfig.BaseVehicleModelConfigDownVo">
SELECT bmc.sid<!--, bmc.vehicleCode-->
FROM base_model_config bmc
${ew.customSqlSegment}
${ew.customSqlSegment}
</select>
<select id="getAppChooseListByModelSid"
resultType="com.yxt.anrui.base.api.basemodelconfig.AppChooseBaseModelConfigVo">
SELECT bmc.sid,
<!--bmc.vehicleCode,-->
bmc.carColor,
bmc.specification,
bmc.fuelTank,
bmc.baffleModel,
bmc.independentSources,
bmc.tireCover,
bmc.saddle,
bmc.airConditioner,
bmc.otherConfig,
bmc.remarks
<!--bmc.vehicleCode,-->
bmc.carColor,
bmc.specification,
bmc.fuelTank,
bmc.baffleModel,
bmc.independentSources,
bmc.tireCover,
bmc.saddle,
bmc.airConditioner,
bmc.otherConfig,
bmc.remarks
FROM base_model_config bmc
${ew.customSqlSegment}
${ew.customSqlSegment}
</select>
<select id="selectAppConfigListByModelSid"
@ -295,49 +295,64 @@
LEFT JOIN base_vehicle_model bvm ON bvm.sid = bvc.modelSid
WHERE bvc.modelSid = #{modelSid}
AND bvc.configurationItemsSid = #{configSid}
AND bvc.useOrg = #{useOrg}
</select>
<select id="configPageList" resultType="com.yxt.anrui.base.api.basemodelconfig.BaseModelConfigListVo">
SELECT bc.sid,
<!-- 常用配置名称-->
CONCAT_WS(
'/',
IF(LENGTH(trim(GROUP_CONCAT(slowMachine))) > 0, GROUP_CONCAT(slowMachine), NULL),
IF(LENGTH(trim(GROUP_CONCAT(rearViewMirror))) > 0, GROUP_CONCAT(rearViewMirror), NULL),
IF(LENGTH(trim(GROUP_CONCAT(tireSize))) > 0, GROUP_CONCAT(tireSize), NULL),
IF(LENGTH(trim(GROUP_CONCAT(specification))) > 0, GROUP_CONCAT(specification), NULL),
IF(LENGTH(trim(GROUP_CONCAT(rearAxleRatio))) > 0, GROUP_CONCAT(rearAxleRatio), NULL),
IF(LENGTH(trim(GROUP_CONCAT(airConditioner))) > 0, GROUP_CONCAT(airConditioner), NULL),
IF(LENGTH(trim(GROUP_CONCAT(hubMaterial))) > 0, GROUP_CONCAT(hubMaterial), NULL),
IF(LENGTH(trim(GROUP_CONCAT(baffleModel))) > 0, GROUP_CONCAT(baffleModel), NULL),
IF(LENGTH(trim(GROUP_CONCAT(suspension))) > 0, GROUP_CONCAT(suspension), NULL),
IF(LENGTH(trim(GROUP_CONCAT(seat))) > 0, GROUP_CONCAT(seat), NULL),
IF(LENGTH(trim(GROUP_CONCAT(tireCover))) > 0, GROUP_CONCAT(tireCover), NULL),
IF(LENGTH(trim(GROUP_CONCAT(saddle))) > 0, GROUP_CONCAT(saddle), NULL),
IF(LENGTH(trim(GROUP_CONCAT(wheelbase))) > 0, GROUP_CONCAT(wheelbase), NULL),
IF(LENGTH(trim(GROUP_CONCAT(bumper))) > 0, GROUP_CONCAT(bumper), NULL),
IF(LENGTH(trim(GROUP_CONCAT(configuringBao))) > 0, GROUP_CONCAT(configuringBao), NULL),
IF(LENGTH(trim(GROUP_CONCAT(independentSources))) > 0, GROUP_CONCAT(independentSources), NULL),
IF(LENGTH(trim(GROUP_CONCAT(fuelTank))) > 0, GROUP_CONCAT(fuelTank), NULL),
IF(LENGTH(trim(GROUP_CONCAT(multimedia))) > 0, GROUP_CONCAT(multimedia), NULL)
) AS configName,
<!--颜色-->
bc.carColor,
<!--销售指导价-->
bvc.guidedPrice,
<!--价格有效期-->
bvc.priceValidity,
bc.slowMachine,
bc.rearViewMirror,
bc.tireSize,
bc.specification,
bc.rearAxleRatio,
bc.airConditioner,
bc.hubMaterial,
bc.baffleModel,
bc.suspension,
bc.seat,
bc.tireCover,
bc.saddle,
bc.wheelbase,
bc.bumper,
bc.configuringBao,
bc.independentSources,
bc.fuelTank,
bc.multimedia,
bc.carColor,
bvc.guidedPrice,
bvc.priceValidity,
(SELECT count(*)
FROM base_vehicle bv
WHERE bv.modelSid = bvc.modelSid
AND bv.modelConfigSid =
bvc.configurationItemsSid
and bv.useOrg = bvc.useOrg) AS nowCarNum,
(SELECT count(*)
FROM bus_vehicle_apply_detail bvad
WHERE bvad.vehicleSid = bvc.modelSid
AND bvad.configSid =
bvc.configurationItemsSid) AS productionCarNum
FROM base_model_config bc
LEFT JOIN base_vehmodel_config bvc ON bvc.configurationItemsSid = bc.sid
${ew.customSqlSegment}
ORDER BY
bvc.priceValidity ASC,
nowCarNum,
productionCarNum DESC
</select>
<select id="notTheCompanyConfigPageList" resultType="com.yxt.anrui.base.api.basemodelconfig.BaseModelConfigListVo">
SELECT
( SELECT count( * ) FROM base_vehicle bv WHERE bv.modelSid = bvc.modelSid AND bv.modelConfigSid =
bvc.configurationItemsSid ) AS nowCarNum,
bvc.configurationItemsSid and bv.useOrg = bvc.useOrg ) AS nowCarNum,
( SELECT count( * ) FROM bus_vehicle_apply_detail bvad WHERE bvad.vehicleSid = bvc.modelSid AND bvad.configSid =
bvc.configurationItemsSid ) AS productionCarNum
bvc.configurationItemsSid and bvad.useOrg = bvc.useOrg ) AS productionCarNum
FROM base_model_config bc
LEFT JOIN base_vehmodel_config bvc ON bvc.configurationItemsSid = bc.sid
<where>
${ew.customSqlSegment}
</where>
ORDER BY
bvc.priceValidity ASC,
nowCarNum DESC,
productionCarNum DESC
</select>
@ -447,4 +462,111 @@
WHERE bmc.sid = #{configSid}
AND bvm.sid = #{modelSid}
</select>
<select id="getModelConfigList" resultType="com.yxt.anrui.base.api.basemodelconfig.AppModelConfigVo">
SELECT bvm.vehicleAlias AS modelName,
bvm.brandName,
bvm.vehicleVersionValue,
CONCAT(MIN(bvc.guidedPrice), '-', MAX(bvc.guidedPrice)) AS price,
bvm.vehicleTypeValue,
bvm.productLineValue,
bvm.powerValue,
bvm.driveFormValue,
bvm.fuelTypeValue,
bvm.gearboxTypeValue,
bvm.marketSegments,
bvm.department,
bvm.engineTypeValue,
bvm.announcementModel,
bvm.specifications,
bvm.insideCode
FROM base_vehicle_model bvm
LEFT JOIN base_vehmodel_config bvc ON bvc.modelSid = bvm.sid
where bvm.sid = #{modelSid}
</select>
<select id="getModelConfigPageList"
resultType="com.yxt.anrui.base.api.basemodelconfig.AppModelConfigListVo">
SELECT
bmc.sid,
bmc.carColor,
bmc.slowMachine,
bmc.rearViewMirror,
bmc.tireSize,
bmc.specification,
bmc.rearAxleRatio,
bmc.airConditioner,
bmc.hubMaterial,
bmc.baffleModel,
bmc.suspension,
bmc.seat,
bmc.tireCover,
bmc.saddle,
bmc.wheelbase,
bmc.bumper,
bmc.configuringBao,
bmc.independentSources,
bmc.fuelTank,
bmc.multimedia,
bvc.guidedPrice,
bvc.priceValidity,
bvm.sid as modelSid,
bvm.vehicleAlias as modelName,
bvm.brandName as brand,
bvm.carBrand as brandSid,
( SELECT count( * ) FROM base_vehicle bv WHERE bv.modelSid = bvc.modelSid AND bv.modelConfigSid = bmc.sid AND
lockedState = '0004' ) AS nowCarNum,
( SELECT count( * ) FROM bus_vehicle_apply_detail bvad WHERE bvad.vehicleSid = bvc.modelSid and bvad.configSid =
bmc.sid) AS produceCarNum
FROM base_vehmodel_config bvc
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.sid
LEFT JOIN base_vehicle_model bvm ON bvc.modelSid = bvm.sid
<where>
${ew.sqlSegment}
</where>
ORDER BY
nowCarNum DESC
</select>
<select id="getCompanyModelList" resultType="com.yxt.anrui.base.api.basevehicle.AppMoreConfigVo">
SELECT (SELECT count(*) FROM base_vehicle bv WHERE bv.modelSid = bvc.sid AND lockedState = '0004') AS nowCarNum,
(SELECT count(*)
FROM bus_vehicle_apply_detail bvad
WHERE bvad.vehicleSid = bvc.sid) AS produceCarNum
FROM base_vehmodel_config bvc
WHERE bvc.modelSid = #{modelSid}
AND bvc.configurationItemsSid = #{configSid}
AND bvc.useOrg != #{useOrg}
</select>
<select id="getCarConfigSummary" resultType="com.yxt.anrui.base.api.basemodelconfig.AppModelConfigListVo">
SELECT bmc.sid,
bvm.sid AS modelSid,
bvm.vehicleAlias AS model,
bvm.carBrand AS brandSid,
bvm.brandName AS brand,
bmc.carColor,
bmc.slowMachine,
bmc.rearViewMirror,
bmc.tireSize,
bmc.specification,
bmc.rearAxleRatio,
bmc.airConditioner,
bmc.hubMaterial,
bmc.baffleModel,
bmc.suspension,
bmc.seat,
bmc.tireCover,
bmc.saddle,
bmc.wheelbase,
bmc.bumper,
bmc.configuringBao,
bmc.independentSources,
bmc.fuelTank,
bmc.multimedia,
bv.guidedPrice,
bmc.otherConfig
FROM base_vehicle bv
LEFT JOIN base_model_config bmc ON bv.modelConfigSid = bmc.sid
LEFT JOIN base_vehicle_model bvm ON bv.modelSid = bvm.sid
WHERE bvm.sid = #{modelSid}
</select>
</mapper>

32
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigRest.java

@ -3,6 +3,7 @@ package com.yxt.anrui.base.biz.basemodelconfig;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemodelconfig.*;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarModelByPageListVo;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModel;
import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderDetailsVo;
import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService;
@ -195,7 +196,7 @@ public class BaseModelConfigRest implements BaseModelConfigFeign {
}
/**
* pc端车型配置分页列表()
* 车型配置分页列表()
*
* @param pagerQuery 查询条件
* @return
@ -209,6 +210,21 @@ public class BaseModelConfigRest implements BaseModelConfigFeign {
return rb.success().setData(pv1);
}
/**
* 更多配置分页列表(非本公司的)
*
* @param pagerQuery
* @return
*/
@Override
public ResultBean<PagerVo<BaseModelConfigListVo>> notTheCompanyConfigPageList(PagerQuery<BaseModelConfigListQuery> pagerQuery) {
ResultBean<PagerVo<BaseModelConfigListVo>> rb = ResultBean.fireFail();
IPage<BaseModelConfigListVo> page = baseModelConfigService.notTheCompanyConfigPageList(pagerQuery);
PagerVo<BaseModelConfigListVo> pv = new PagerVo<>();
PagerVo<BaseModelConfigListVo> pv1 = PagerUtil.pageToVo(page, pv);
return rb.success().setData(pv1);
}
@Override
public ResultBean<BaseModelConfigDetailsVo> selectDetails(String sid, String modelSid) {
ResultBean<BaseModelConfigDetailsVo> rb = ResultBean.fireFail();
@ -224,4 +240,18 @@ public class BaseModelConfigRest implements BaseModelConfigFeign {
public ResultBean<AppModelConfigDetailsVo> getAppDetailByModelConfigSid(String sid) {
return null;
}
@Override
public ResultBean<AppModelConfigVo> getModelConfigList(PagerQuery<AppModelConfigListQuery> pagerQuery) {
ResultBean<AppModelConfigVo> rb = ResultBean.fireFail();
AppModelConfigVo vo = baseModelConfigService.getModelConfigList(pagerQuery);
return rb.success().setData(vo);
}
@Override
public ResultBean<AppModelConfigVo> getNowConfigList(PagerQuery<AppModelConfigListQuery> pagerQuery) {
ResultBean<AppModelConfigVo> rb = ResultBean.fireFail();
AppModelConfigVo vo = baseModelConfigService.getModelConfigList(pagerQuery);
return rb.success().setData(vo);
}
}

307
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigService.java

@ -3,12 +3,21 @@ package com.yxt.anrui.base.biz.basemodelconfig;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemodelconfig.*;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarByPageListQuery;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarModelByPageListVo;
import com.yxt.anrui.base.api.basevehicle.AppMoreConfigVo;
import com.yxt.anrui.base.api.basevehicle.ConfigInfo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
/**
@ -26,6 +35,10 @@ import java.util.List;
*/
@Service
public class BaseModelConfigService extends MybatisBaseService<BaseModelConfigMapper, BaseModelConfig> {
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
/**
* 车型配置信息分页列表
*
@ -250,21 +263,96 @@ public class BaseModelConfigService extends MybatisBaseService<BaseModelConfigMa
* @param configSid
* @return
*/
public AppModelConfigDetailsVo getAppModelConfigDetailsVo(String modelSid, String configSid) {
AppModelConfigDetailsVo appModelConfigDetailsVo = baseMapper.getAppModelConfigDetailsVo(modelSid, configSid);
public AppModelConfigDetailsVo getAppModelConfigDetailsVo(String modelSid, String configSid, String useOrg) {
AppModelConfigDetailsVo appModelConfigDetailsVo = baseMapper.getAppModelConfigDetailsVo(modelSid, configSid, useOrg);
return appModelConfigDetailsVo;
}
/**
* pc端车型配置分页列表()
* 车型配置分页列表()
*
* @param pagerQuery 查询条件
* @return
*/
public IPage<BaseModelConfigListVo> configPageList(PagerQuery<BaseModelConfigListQuery> pagerQuery) {
String userSid = pagerQuery.getParams().getUserSid();
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
if (data != null) {
pagerQuery.getParams().setUseOrg(data.getSid());
}
IPage<BaseModelConfigListQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<BaseModelConfigListVo> qw = createBuildQueryWrapper(pagerQuery.getParams());
return baseMapper.configPageList(page, qw);
IPage<BaseModelConfigListVo> iPage = baseMapper.configPageList(page, qw);
List<BaseModelConfigListVo> records = iPage.getRecords();
getConfigName(records);
return iPage;
}
public List<BaseModelConfigListVo> getConfigName(List<BaseModelConfigListVo> records) {
for (BaseModelConfigListVo record : records) {
String slowMachine = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getSlowMachine()) ? (record.getSlowMachine() + "/") : "";
String rearViewMirror = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getRearViewMirror()) ? (record.getRearViewMirror() + "/") : "";
String tireSize = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getTireSize()) ? (record.getTireSize() + "/") : "";
String specification = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getSpecification()) ? (record.getSpecification() + "/") : "";
String rearAxleRatio = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getRearAxleRatio()) ? (record.getRearAxleRatio() + "/") : "";
String airConditioner = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getAirConditioner()) && com.yxt.common.base.utils.StringUtils.equals(record.getAirConditioner(), "有") ? ("空调" + "/") : "";
String hubMaterial = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getHubMaterial()) ? (record.getHubMaterial() + "/") : "";
String baffleModel = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getBaffleModel()) && com.yxt.common.base.utils.StringUtils.equals(record.getBaffleModel(), "有") ? ("导流罩" + "/") : "";
String suspension = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getSuspension()) ? (record.getSuspension() + "/") : "";
String seat = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getSeat()) ? (record.getSeat() + "/") : "";
String tireCover = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getTireCover()) && com.yxt.common.base.utils.StringUtils.equals(record.getTireCover(), "有") ? ("护轮罩" + "/") : "";
String saddle = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getSaddle()) ? (record.getSaddle() + "/") : "";
String wheelbase = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getWheelbase()) ? (record.getWheelbase() + "/") : "";
String bumper = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getBumper()) ? (record.getBumper() + "/") : "";
String configuringBao = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getConfiguringBao()) ? (record.getConfiguringBao() + "/") : "";
String independentSources = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getIndependentSources()) && com.yxt.common.base.utils.StringUtils.equals(record.getIndependentSources(), "有") ? ("独立热源" + "/") : "";
String fuelTank = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getFuelTank()) ? (record.getFuelTank() + "/") : "";
String multimedia = com.yxt.common.base.utils.StringUtils.isNotBlank(record.getMultimedia()) && com.yxt.common.base.utils.StringUtils.equals(record.getMultimedia(), "有") ? ("多媒体") : "";
String configName = slowMachine + rearViewMirror + tireSize + specification + rearAxleRatio + airConditioner + hubMaterial +
baffleModel + suspension + seat + tireCover + saddle + wheelbase + bumper + configuringBao + independentSources + fuelTank + multimedia;
record.setConfigName(configName);
}
return records;
}
/**
* 更多配置分页列表(非本公司的)
*
* @param pagerQuery
* @return
*/
public IPage<BaseModelConfigListVo> notTheCompanyConfigPageList(PagerQuery<BaseModelConfigListQuery> pagerQuery) {
String userSid = pagerQuery.getParams().getUserSid();
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
if (data != null) {
pagerQuery.getParams().setUseOrg(data.getSid());
}
IPage<BaseModelConfigListQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<BaseModelConfigListVo> qw = createBuildQueryWrapper(pagerQuery.getParams());
IPage<BaseModelConfigListVo> iPage = baseMapper.notTheCompanyConfigPageList(page, qw);
for (BaseModelConfigListVo record : iPage.getRecords()) {
record.setCompany(data.getName());
}
return iPage;
}
/**
@ -299,8 +387,14 @@ public class BaseModelConfigService extends MybatisBaseService<BaseModelConfigMa
if (StringUtils.isNotBlank(query.getConfigName())) {
qw.like("bc.configName", query.getConfigName());
}
qw.eq("bv.modelSid", query.getSid());
qw.groupBy("bc.sid");
//车型sid
if (StringUtils.isNotBlank(query.getModelSid())) {
qw.eq("bvc.modelSid", query.getModelSid());
}
//分公司
if (StringUtils.isNotBlank(query.getUseOrg())) {
qw.eq("bvc.useOrg", query.getUseOrg());
}
return qw;
}
@ -318,4 +412,205 @@ public class BaseModelConfigService extends MybatisBaseService<BaseModelConfigMa
AppModelConfigDetailsVo appModelConfigDetailsVo = baseMapper.getAppProductionSchedulingDetailsVo(modelSid, configSid);
return appModelConfigDetailsVo;
}
public AppModelConfigVo getModelConfigList(PagerQuery<AppModelConfigListQuery> pagerQuery) {
String userSid = pagerQuery.getParams().getUserSid();
// 1、根据业务员部门sid查询分公司 查询orgSidPath(部门路径)
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
if (data != null) {
// 2) 根据orgSidPath(部门路径)判断分公司sid
pagerQuery.getParams().setUseOrg(data.getSid());
}
String modelSid = pagerQuery.getParams().getModelSid();
AppModelConfigVo vo = baseMapper.getModelConfigList(modelSid);
List<String> modelImages = new ArrayList<>();
modelImages.add("123123");
modelImages.add("324");
modelImages.add("345");
vo.setModelImage(modelImages);
//基础配置拼接
List<ConfigInfo> list = new ArrayList<>();
list.add(getConfigValue("品牌", vo.getBrandName()));
list.add(getConfigValue("功能", vo.getVehicleTypeValue()));
list.add(getConfigValue("系列", vo.getProductLineValue()));
list.add(getConfigValue("驱动", vo.getDriveFormValue()));
list.add(getConfigValue("马力", vo.getPowerValue()));
list.add(getConfigValue("版本", vo.getVehicleVersionValue()));
list.add(getConfigValue("燃料", vo.getFuelTypeValue()));
list.add(getConfigValue("变速箱", vo.getGearboxTypeValue()));
list.add(getConfigValue("细分市场", vo.getMarketSegments()));
list.add(getConfigValue("系别", vo.getDepartment()));
list.add(getConfigValue("发动机型号", vo.getEngineTypeValue()));
list.add(getConfigValue("公告型号", vo.getAnnouncementModel()));
list.add(getConfigValue("规格型号", vo.getSpecifications()));
list.add(getConfigValue("货箱", vo.getPackingCase()));
list.add(getConfigValue("内部编码", vo.getInsideCode()));
vo.setConfigList(list);
//配置列表
IPage<AppModelConfigListQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<AppModelConfigListVo> qw = modelConfigQueryWrapper(pagerQuery.getParams());
List<AppModelConfigListVo> appModelConfigListVos = baseMapper.getModelConfigPageList(page, qw);
//分公司配置列表查询
for (AppModelConfigListVo appModelConfigListVo : appModelConfigListVos) {
String useOrg = data.getSid();
List<AppMoreConfigVo> moreConfigVos = baseMapper.getCompanyModelList(appModelConfigListVo.getModelSid(), appModelConfigListVo.getSid(), useOrg);
for (AppMoreConfigVo moreConfigVo : moreConfigVos) {
moreConfigVo.setCompanyName(data.getName());
}
appModelConfigListVo.setMoreConfig(moreConfigVos);
}
addDonfigName(appModelConfigListVos);
vo.setModelConfigList(appModelConfigListVos);
return vo;
}
/**
* 拼接常用车型字段configName
*
* @param appModelConfigListVos
* @return
*/
public List<AppModelConfigListVo> addDonfigName(List<AppModelConfigListVo> appModelConfigListVos) {
for (AppModelConfigListVo appModelConfigListVo : appModelConfigListVos) {
String slowMachine = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getSlowMachine()) ? (appModelConfigListVo.getSlowMachine() + "/") : "";
String rearViewMirror = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getRearViewMirror()) ? (appModelConfigListVo.getRearViewMirror() + "/") : "";
String tireSize = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getTireSize()) ? (appModelConfigListVo.getTireSize() + "/") : "";
String specification = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getSpecification()) ? (appModelConfigListVo.getSpecification() + "/") : "";
String rearAxleRatio = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getRearAxleRatio()) ? (appModelConfigListVo.getRearAxleRatio() + "/") : "";
String airConditioner = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getAirConditioner()) && com.yxt.common.base.utils.StringUtils.equals(appModelConfigListVo.getAirConditioner(), "有") ? ("空调" + "/") : "";
String hubMaterial = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getHubMaterial()) ? (appModelConfigListVo.getHubMaterial() + "/") : "";
String baffleModel = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getBaffleModel()) && com.yxt.common.base.utils.StringUtils.equals(appModelConfigListVo.getBaffleModel(), "有") ? ("导流罩" + "/") : "";
String suspension = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getSuspension()) ? (appModelConfigListVo.getSuspension() + "/") : "";
String seat = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getSeat()) ? (appModelConfigListVo.getSeat() + "/") : "";
String tireCover = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getTireCover()) && com.yxt.common.base.utils.StringUtils.equals(appModelConfigListVo.getTireCover(), "有") ? ("护轮罩" + "/") : "";
String saddle = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getSaddle()) ? (appModelConfigListVo.getSaddle() + "/") : "";
String wheelbase = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getWheelbase()) ? (appModelConfigListVo.getWheelbase() + "/") : "";
String bumper = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getBumper()) ? (appModelConfigListVo.getBumper() + "/") : "";
String configuringBao = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getConfiguringBao()) ? (appModelConfigListVo.getConfiguringBao() + "/") : "";
String independentSources = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getIndependentSources()) && com.yxt.common.base.utils.StringUtils.equals(appModelConfigListVo.getIndependentSources(), "有") ? ("独立热源" + "/") : "";
String fuelTank = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getFuelTank()) ? (appModelConfigListVo.getFuelTank() + "/") : "";
String multimedia = com.yxt.common.base.utils.StringUtils.isNotBlank(appModelConfigListVo.getMultimedia()) && com.yxt.common.base.utils.StringUtils.equals(appModelConfigListVo.getMultimedia(), "有") ? ("多媒体") : "";
String configName = slowMachine + rearViewMirror + tireSize + specification + rearAxleRatio + airConditioner + hubMaterial +
baffleModel + suspension + seat + tireCover + saddle + wheelbase + bumper + configuringBao + independentSources + fuelTank + multimedia;
appModelConfigListVo.setConfigName(configName);
}
return appModelConfigListVos;
}
/**
* 用于车型详情页面数据keyvalue形式回显
*
* @param configName
* @param configValue
* @return
*/
private ConfigInfo getConfigValue(String configName, String configValue) {
ConfigInfo configInfo = new ConfigInfo();
configInfo.setConfigName(configName);
if (configValue == null) {
configInfo.setConfigValue("");
} else {
configInfo.setConfigValue(configValue);
}
return configInfo;
}
private QueryWrapper<AppModelConfigListVo> modelConfigQueryWrapper(AppModelConfigListQuery pagerQuery) {
QueryWrapper<AppModelConfigListVo> qw = new QueryWrapper<>();
if (pagerQuery != null) {
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getName())) {//名称
qw.like("bvc.vehicleAlias", pagerQuery.getName());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getBodyColor())) {//颜色
qw.like("bmc.carColor", pagerQuery.getBodyColor());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getSlowMachine())) {//缓速器
qw.eq("bmc.slowMachine", pagerQuery.getSlowMachine());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getRearViewMirror())) {//后视镜
qw.eq("bmc.rearViewMirror", pagerQuery.getRearViewMirror());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getTireSize())) {//轮胎
qw.eq("bmc.tireSize", pagerQuery.getTireSize());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getSpecification())) {//驾驶室
qw.eq("bmc.specification", pagerQuery.getSpecification());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getRearAxleRatio())) {//后桥速比
qw.eq("bmc.rearAxleRatio", pagerQuery.getRearAxleRatio());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getAirConditioner())) {//空调
qw.eq("bmc.airConditioner", pagerQuery.getAirConditioner());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getHubMaterial())) {//轮毂材质
qw.eq("bmc.hubMaterial", pagerQuery.getHubMaterial());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getDiversionCover())) {//导流罩
qw.eq("bmc.baffleModel", pagerQuery.getDiversionCover());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getModelSid())) {//车型sid
qw.eq("bvc.modelSid", pagerQuery.getModelSid());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getMultiMedia())) {//多媒体
qw.eq("bvm.multimedia", pagerQuery.getMultiMedia());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getFuelTank())) {//燃料箱
qw.eq("bvm.fuelTank", pagerQuery.getFuelTank());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getIndependentSources())) {//独立热源
qw.eq("bvm.independentSources", pagerQuery.getIndependentSources());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getConfiguringBao())) {//配置包
qw.eq("bvm.configuringBao", pagerQuery.getConfiguringBao());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getBumper())) {//保险杠
qw.eq("bvm.bumper", pagerQuery.getBumper());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getWheelbase())) {//轴距
qw.eq("bvm.wheelbase", pagerQuery.getWheelbase());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getSaddle())) {//鞍座
qw.eq("bvm.saddle", pagerQuery.getSaddle());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getProtectTireCover())) {//护轮罩
qw.eq("bvm.tireCover", pagerQuery.getProtectTireCover());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getSeat())) {//座椅
qw.eq("bvm.seat", pagerQuery.getSeat());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getSuspension())) {//悬架
qw.eq("bvm.suspension", pagerQuery.getSuspension());
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(pagerQuery.getUseOrg())) {//分公司
qw.eq("bvc.useOrg", pagerQuery.getUseOrg());
}
}
return qw;
}
public AppModelConfigListVo getCarConfigSummary(String modelSid, String configSid) {
AppModelConfigListVo vo = baseMapper.getCarConfigSummary(modelSid, configSid);
return vo;
}
}

39
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/AppBaseVehicleRest.java

@ -1,44 +1,11 @@
package com.yxt.anrui.base.biz.basevehicle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemodelconfig.BaseModelConfig;
import com.yxt.anrui.base.api.basevehicle.*;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModel;
import com.yxt.anrui.base.biz.basemodelconfig.BaseModelConfigService;
import com.yxt.anrui.base.biz.basevehicleappendix.BaseVehicleAppendixService;
import com.yxt.anrui.base.biz.basevehiclebrand.BaseVehicleBrandService;
import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
@ -69,9 +36,9 @@ public class AppBaseVehicleRest implements AppBaseVehicleFeign {
* @return
*/
@Override
public ResultBean<AppCurrentCarDetailCongfigVo> getAppCurrentCarDetailConfigVo(String modelSid, String configSid) {
AppCurrentCarDetailCongfigVo vo = baseVehicleService.getAppCurrentCarDetailConfigVo(modelSid, configSid);
return new ResultBean<AppCurrentCarDetailCongfigVo>().success().setData(vo);
public ResultBean<AppCurrentCarDetailConfigVo> getAppCurrentCarDetailConfigVo(String modelSid, String configSid, String userSid) {
AppCurrentCarDetailConfigVo vo = baseVehicleService.getAppCurrentCarDetailConfigVo(modelSid, configSid, userSid);
return new ResultBean<AppCurrentCarDetailConfigVo>().success().setData(vo);
}

42
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.java

@ -174,7 +174,7 @@ public interface BaseVehicleMapper extends BaseMapper<BaseVehicle> {
* @param configSid
* @return
*/
AppCurrentCarDetailVo getAppCurrentCarDetailConfigVo(@Param("modelSid") String modelSid, @Param("configSid") String configSid);
AppCurrentCarDetailVo getAppCurrentCarDetailConfigVo(@Param("modelSid") String modelSid, @Param("configSid") String configSid, @Param("useOrg") String useOrg);
/**
* 现车分页列表
@ -192,7 +192,7 @@ public interface BaseVehicleMapper extends BaseMapper<BaseVehicle> {
* @param configSid 配置sid
* @return
*/
ExiCarConfigDetailVo selectExiCarConfig(@Param("modelSid") String modelSid, @Param("configSid") String configSid);
ExiCarConfigDetailVo selectExiCarConfig(@Param("modelSid") String modelSid, @Param("configSid") String configSid, @Param("useOrg") String useOrg);
BusDepositVehListVo getBusDepositVehByVehSid(@Param("sid") String sid);
@ -212,5 +212,41 @@ public interface BaseVehicleMapper extends BaseMapper<BaseVehicle> {
* @param qw
* @return
*/
IPage<BaseExistingCarListPageVo> selExistingCarPageList(IPage<BaseExistingCarPageQuery> page,@Param(Constants.WRAPPER) QueryWrapper<BaseExistingCarListPageVo> qw);
IPage<BaseExistingCarListPageVo> selExistingCarPageList(IPage<BaseExistingCarPageQuery> page, @Param(Constants.WRAPPER) QueryWrapper<BaseExistingCarListPageVo> qw);
/**
* 手机端业务-车型报价-列表
*
* @param page
* @param qw
* @return
*/
IPage<AppVehicleModelPriceVo> getModelList(IPage<AppVehicleModelPriceQuery> page, @Param(Constants.WRAPPER) QueryWrapper<AppVehicleModelPriceVo> qw);
/**
* 手机端查询不本公司的现车排产车
*
* @param modelSid
* @param sid
* @return
*/
List<AppMoreConfigVo> getCompanyModelList(@Param("modelSid") String modelSid, @Param("useOrg") String useOrg);
/**
* 手机端现车详细配置()
*
* @param modelSid
* @param configSid
* @return
*/
AppCurrentCarDetailConfigVo getAppModelConfig(@Param("modelSid") String modelSid, @Param("configSid") String configSid, @Param("useOrg") String useOrg);
/**
* 手机端现车列表
*
* @param page
* @param qw
* @return
*/
IPage<AppBaseVehicleNowModelVo> getNowModelList(IPage<AppBaseVehicleNowModelQuery> page, @Param(Constants.WRAPPER) QueryWrapper<AppBaseVehicleNowModelVo> qw);
}

86
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml

@ -351,6 +351,7 @@
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.sid
WHERE bvc.modelSid = #{modelSid}
AND bvc.configurationItemsSid = #{configSid}
AND bvc.useOrg = #{useOrg}
</select>
<select id="exiCarPagerList" resultType="com.yxt.anrui.base.api.basevehicle.BaseVehicleListVo">
@ -419,8 +420,9 @@
FROM base_vehmodel_config bvc
LEFT JOIN base_vehicle_model bvm ON bvc.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.`sid`
WHERE bvm.sid = #{modelSid}
AND bmc.sid = #{configSid}
WHERE bvc.modelSid = #{modelSid}
AND bvc.configurationItemsSid = #{configSid}
AND bvc.useOrg = #{useOrg}
</select>
<select id="getBusDepositVehByVehSid" resultType="com.yxt.anrui.base.api.basevehicle.BusDepositVehListVo">
SELECT
@ -481,10 +483,84 @@
FROM base_vehicle bv
LEFT JOIN base_vehicle_model bvm ON bv.`modelSid` = bvm.`sid`
LEFT JOIN base_model_config bmc ON bv.modelConfigSid = bmc.`sid`
<where>
${ew.customSqlSegment}
</where>>
${ew.customSqlSegment}
ORDER BY
bv.priceDate desc
</select>
<select id="getModelList" resultType="com.yxt.anrui.base.api.basevehicle.AppVehicleModelPriceVo">
SELECT
bvm.sid AS modelSid,
bvm.vehicleAlias AS modelName,
bvm.carBrand AS brandSid,
bvm.brandName,
bvm.vehicleVersionValue AS versionValue,
bvm.fuelTypeValue,
bvm.gearboxTypeValue,
bvc.priceValidity,
( SELECT count( * ) FROM base_vehmodel_config WHERE bvc.modelSid = bvm.sid ) AS configNum,
( SELECT count( * ) FROM base_vehicle bv WHERE bv.modelSid = bvm.sid AND lockedState = '0004' ) AS nowCarNum,
( SELECT count( * ) FROM bus_vehicle_apply_detail bvad WHERE bvad.vehicleSid = bvm.sid ) AS produceCarNum
FROM
base_vehicle_model bvm
LEFT JOIN base_vehmodel_config bvc ON bvm.sid = bvc.modelSid
<where>
${ew.sqlSegment}
</where>
ORDER BY
nowCarNum DESC
</select>
<select id="getCompanyModelList" resultType="com.yxt.anrui.base.api.basevehicle.AppMoreConfigVo">
SELECT (SELECT count(*) FROM base_vehicle bv WHERE bv.modelSid = bvm.sid AND lockedState = '0004') AS nowCarNum,
(SELECT count(*)
FROM bus_vehicle_apply_detail bvad
WHERE bvad.vehicleSid = bvm.sid) AS produceCarNum
FROM base_vehicle_model bvm
LEFT JOIN base_vehmodel_config bvc ON bvm.sid = bvc.modelSid
WHERE bvc.modelSid = #{modelSid}
AND bvc.useOrg != #{useOrg}
</select>
<select id="getAppModelConfig"
resultType="com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailConfigVo">
SELECT bvc.guidedPrice AS price,
bvc.priceValidity AS `date`,
bvm.vehicleAlias AS model,
bvm.brandName AS brand,
bvm.carBrand AS brandSid,
(
(SELECT count(*)
FROM base_vehicle bv
WHERE bv.modelSid = bvm.sid
AND bv.modelConfigSid = bvc.configurationItemsSid
AND lockedState = '0004')
+
(SELECT count(*)
FROM bus_vehicle_apply_detail bvad
WHERE bvad.vehicleSid = bvm.sid
AND bvad.configSid = bvc.configurationItemsSid)
) AS num
FROM base_vehmodel_config bvc
LEFT JOIN base_vehicle_model bvm ON bvc.modelSid = bvm.sid
LEFT JOIN base_model_config bmc ON bvc.configurationItemsSid = bmc.sid
WHERE bvc.modelSid = #{modelSid}
AND bvc.configurationItemsSid = #{configSid}
AND bvc.useOrg = #{useOrg}
</select>
<select id="getNowModelList" resultType="com.yxt.anrui.base.api.basevehicle.AppBaseVehicleNowModelVo">
SELECT bvm.sid AS modelSid,
bvm.vehicleAlias AS modelName,
bvm.brandName,
bvm.carBrand AS brandSid,
bvm.vehicleVersionValue AS versionValue,
bvm.fuelTypeValue,
bvm.gearboxTypeValue,
(SELECT count(*) FROM base_vehmodel_config bvc WHERE bvc.modelSid = bvm.sid) AS configNum,
(SELECT count(*) FROM base_vehicle bv WHERE bv.modelSid = bvm.sid AND lockedState = '0004') AS nowCarNum
FROM base_vehicle bv
LEFT JOIN base_vehicle_model bvm ON bv.modelSid = bvm.sid
${ew.customSqlSegment}
</select>
</mapper>

43
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java

@ -1,6 +1,7 @@
package com.yxt.anrui.base.biz.basevehicle;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo;
import com.yxt.anrui.base.api.basemodelconfig.BaseModelConfig;
import com.yxt.anrui.base.api.basevehicle.*;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand;
@ -267,9 +268,9 @@ public class BaseVehicleRest implements BaseVehicleFeign {
* @return
*/
@Override
public ResultBean<ExiCarConfigDetailVo> selectExiCarConfig(String modelSid, String configSid) {
public ResultBean<ExiCarConfigDetailVo> selectExiCarConfig(String modelSid, String configSid, String userSid) {
ResultBean rb = ResultBean.fireFail();
ExiCarConfigDetailVo exiCarConfigDetailVo = baseVehicleService.selectExiCarConfig(modelSid, configSid);
ExiCarConfigDetailVo exiCarConfigDetailVo = baseVehicleService.selectExiCarConfig(modelSid, configSid, userSid);
return rb.success().setData(exiCarConfigDetailVo);
}
@ -284,7 +285,9 @@ public class BaseVehicleRest implements BaseVehicleFeign {
public ResultBean<PagerVo<BaseExistingCarListPageVo>> selExistingCarPageList(PagerQuery<BaseExistingCarPageQuery> pagerQuery) {
ResultBean<PagerVo<BaseExistingCarListPageVo>> rb = ResultBean.fireFail();
IPage<BaseExistingCarListPageVo> page = baseVehicleService.selExistingCarPageList(pagerQuery);
return null;
PagerVo<BaseExistingCarListPageVo> pv = new PagerVo<>();
PagerVo<BaseExistingCarListPageVo> pv1 = PagerUtil.pageToVo(page, pv);
return rb.success().setData(pv1);
}
/**
@ -440,6 +443,12 @@ public class BaseVehicleRest implements BaseVehicleFeign {
return obj;
}
/**
* 手机端业务-车型报价-列表
*
* @param pagerQuery
* @return
*/
@Override
public ResultBean<PagerVo<AppVehicleModelPriceVo>> getModelList(PagerQuery<AppVehicleModelPriceQuery> pagerQuery) {
ResultBean<PagerVo<AppVehicleModelPriceVo>> rb = ResultBean.fireFail();
@ -447,9 +456,31 @@ public class BaseVehicleRest implements BaseVehicleFeign {
if (StringUtils.isBlank(userSid)) {
return rb.setMsg("用户sid不能为空");
}
IPage<AppVehicleModelPriceVo> page = baseVehicleService.getModelList(pagerQuery);
PagerVo<AppVehicleModelPriceVo> pv = new PagerVo<>();
PagerVo<AppVehicleModelPriceVo> pv1 = PagerUtil.pageToVo(page, pv);
PagerVo<AppVehicleModelPriceVo> page = new PagerVo<>();
IPage<AppVehicleModelPriceVo> iPage = baseVehicleService.getModelList(pagerQuery);
PagerVo<AppVehicleModelPriceVo> pagerVo = PagerUtil.pageToVo(iPage, page);
return rb.success().setData(pagerVo);
}
@Override
public ResultBean<PagerVo<AppBaseVehicleNowModelVo>> getNowModelList(PagerQuery<AppBaseVehicleNowModelQuery> pagerQuery) {
ResultBean<PagerVo<AppBaseVehicleNowModelVo>> rb = ResultBean.fireFail();
String userSid = pagerQuery.getParams().getUserSid();
if (StringUtils.isBlank(userSid)) {
return rb.setMsg("用户sid不能为空");
}
IPage<AppBaseVehicleNowModelVo> page = baseVehicleService.getNowModelList(pagerQuery);
PagerVo<AppBaseVehicleNowModelVo> pv = new PagerVo<>();
PagerVo<AppBaseVehicleNowModelVo> pv1 = PagerUtil.pageToVo(page, pv);
return rb.success().setData(pv1);
}
@Override
public ResultBean<AppCarConfigSummaryVo> getCarConfigSummary(String modelSid, String configSid) {
ResultBean<AppCarConfigSummaryVo> rb = ResultBean.fireFail();
AppCarConfigSummaryVo vo = baseVehicleService.getCarConfigSummary(modelSid, configSid);
return rb.success().setData(vo);
}
}

252
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java

@ -3,24 +3,26 @@ package com.yxt.anrui.base.biz.basevehicle;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yxt.anrui.base.api.basemodelconfig.AppCarConfigSummaryVo;
import com.yxt.anrui.base.api.basemodelconfig.AppModelConfigDetailsVo;
import com.yxt.anrui.base.api.basemodelconfig.AppModelConfigListVo;
import com.yxt.anrui.base.api.basemodelszconfig.BaseModelSzconfigVo;
import com.yxt.anrui.base.api.basevehicle.*;
import com.yxt.anrui.base.biz.basemodelconfig.BaseModelConfigService;
import com.yxt.anrui.base.biz.basemodelszconfig.BaseModelSzconfigService;
import com.yxt.anrui.base.biz.basetrailer.BaseTrailerService;
import com.yxt.anrui.base.biz.basevehicleappendix.BaseVehicleAppendixService;
import com.yxt.anrui.portal.api.sysorganization.SysOrgVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.app.AppUserOrgInfoVo;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -474,16 +476,20 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
}
/**
* 手机端现车详细配置()
* 车型详细配置(九宫格)
*
* @param modelSid
* @param configSid
* @return
*/
public AppCurrentCarDetailCongfigVo getAppCurrentCarDetailConfigVo(String modelSid, String configSid) {
AppCurrentCarDetailCongfigVo configDetailVo = new AppCurrentCarDetailCongfigVo();
public AppCurrentCarDetailConfigVo getAppCurrentCarDetailConfigVo(String modelSid, String configSid, String userSid) {
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
String useOrg = data.getSid();
AppCurrentCarDetailConfigVo configDetailVo = baseMapper.getAppModelConfig(modelSid, configSid, useOrg);
//车型详细配置数据
AppCurrentCarDetailVo currentCarVo = baseMapper.getAppCurrentCarDetailConfigVo(modelSid, configSid);
AppCurrentCarDetailVo currentCarVo = baseMapper.getAppCurrentCarDetailConfigVo(modelSid, configSid, useOrg);
List<List<ConfigInfoSpanSize>> modelInfoList = new ArrayList<>();
List<ConfigInfoSpanSize> list1 = new ArrayList<>();
list1.add(getConfigValueSpanSize("品牌", currentCarVo.getBrandName(), 1));
@ -505,9 +511,9 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
list2.add(getConfigValueSpanSize("内部编码", currentCarVo.getInsideCode(), 1));
modelInfoList.add(list1);
modelInfoList.add(list2);
configDetailVo.setModleInfo(modelInfoList);
configDetailVo.setModelInfo(modelInfoList);
//配置详细数据
AppModelConfigDetailsVo configVo = baseModelConfigService.getAppModelConfigDetailsVo(modelSid, configSid);
AppModelConfigDetailsVo configVo = baseModelConfigService.getAppModelConfigDetailsVo(modelSid, configSid, useOrg);
List<List<ConfigInfoSpanSize>> commonConfigInfoList = new ArrayList<>();
List<ConfigInfoSpanSize> list3 = new ArrayList<>();
list3.add(getConfigValueSpanSize("颜色", configVo.getCarColor(), 1));
@ -529,38 +535,10 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
list3.add(getConfigValueSpanSize("独立热源", configVo.getIndependentSources(), 1));
list3.add(getConfigValueSpanSize("燃料箱", configVo.getFuelTank(), 1));
list3.add(getConfigValueSpanSize("多媒体", configVo.getMultimedia(), 1));
configDetailVo.setCommonConfigInfo(list3);
configDetailVo.setConfigInfo(list3);
//更多配置
String otherConfig = configVo.getOtherConfig();
configDetailVo.setMoreConfigDescibe(otherConfig);
/*//上装详细配置数据
AppBaseModelSzconfigDetailsVo szConfigVo = baseModelSzconfigService.getAppBaseModelSzconfigDetailsVo(modelSid);
List<List<ConfigInfoSpanSize>> trailerInfoList = new ArrayList<>();
List<ConfigInfoSpanSize> list4 = new ArrayList<>();
list4.add(getConfigValueSpanSize("委改方式", szConfigVo.getRefitMethod(), 1));
list4.add(getConfigValueSpanSize("委改厂", szConfigVo.getRefitFactory(), 1));
list4.add(getConfigValueSpanSize("上装名称", szConfigVo.getTopName(), 1));
list4.add(getConfigValueSpanSize("上装价格", szConfigVo.getRefitPrice(), 1));
list4.add(getConfigValueSpanSize("公共型号", szConfigVo.getAnnouncementModel(), 1));
list4.add(getConfigValueSpanSize("外廓尺寸", szConfigVo.getOverallDimension(), 1));
list4.add(getConfigValueSpanSize("板材材质", szConfigVo.getPlateMaterial(), 1));
list4.add(getConfigValueSpanSize("板材厚度", szConfigVo.getPlateThickness(), 1));
list4.add(getConfigValueSpanSize("其他配置(举升方式)", szConfigVo.getOtherConfig(), 1));
trailerInfoList.add(list4);
configDetailVo.setTrailerInfo(trailerInfoList);
//挂车详细配置数据
AppBaseTrailerDetailsVo trailerVo = baseTrailerService.getAppBaseTrailerDetailsVo(modelSid);
List<List<ConfigInfoSpanSize>> topInfoList = new ArrayList<>();
List<ConfigInfoSpanSize> list5 = new ArrayList<>();
list5.add(getConfigValueSpanSize("车型名称", trailerVo.getModelName(), 1));
list5.add(getConfigValueSpanSize("车辆型号", trailerVo.getModel(), 1));
list5.add(getConfigValueSpanSize("车辆品牌", trailerVo.getCarBrand(), 1));
list5.add(getConfigValueSpanSize("厂商名称", trailerVo.getSettlement(), 1));
list5.add(getConfigValueSpanSize("挂车车架号", trailerVo.getVinNo(), 1));
list5.add(getConfigValueSpanSize("挂车价格", trailerVo.getTrailerPrince(), 1));
list5.add(getConfigValueSpanSize("更多配置", trailerVo.getOtherConfig(), 1));
topInfoList.add(list5);
configDetailVo.setTopInfo(topInfoList);*/
configDetailVo.setMoreConfig(otherConfig);
return configDetailVo;
}
@ -649,8 +627,10 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
* @param configSid 配置sid
* @return
*/
public ExiCarConfigDetailVo selectExiCarConfig(String modelSid, String configSid) {
return baseMapper.selectExiCarConfig(modelSid, configSid);
public ExiCarConfigDetailVo selectExiCarConfig(String modelSid, String configSid, String userSid) {
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
String useOrg = data.getSid();
return baseMapper.selectExiCarConfig(modelSid, configSid, useOrg);
}
/**
@ -672,6 +652,11 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
* @return
*/
public IPage<BaseExistingCarListPageVo> selExistingCarPageList(PagerQuery<BaseExistingCarPageQuery> pagerQuery) {
String userSid = pagerQuery.getParams().getUserSid();
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
if (data != null) {
pagerQuery.getParams().setUseOrg(data.getSid());
}
IPage<BaseExistingCarPageQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<BaseExistingCarListPageVo> qw = existingCarBuildQW(pagerQuery.getParams());
return baseMapper.selExistingCarPageList(page, qw);
@ -696,38 +681,203 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
qw.like("bmc.carColor", pagerQuery.getCarColor());
}
if (StringUtils.isNotBlank(pagerQuery.getVehicleState())) { //车辆状态
qw.and(wrapper -> wrapper.eq("bv.vehicleState", "0001").or().eq("bv.vehicleState", "0005"));
qw.and(wrapper -> wrapper.eq("bv.vehicleState", "0004").or().eq("bv.vehicleState", "0005"));
}
if (StringUtils.isNotBlank(pagerQuery.getLockedState())) { //锁定状态
qw.and(wrapper -> wrapper.eq("bv.lockedState", "0").or().isNull("bv.lockedState").or().eq("bv.lockedStateValue", ""));
}
if (StringUtils.isNotBlank(pagerQuery.getUseOrg())) { // 分公司
qw.eq("bv.useOrg", pagerQuery.getUseOrg());
}
return qw;
}
/**
* 手机端业务-车型报价-列表
*
* @param pagerQuery
* @return
*/
public IPage<AppVehicleModelPriceVo> getModelList(PagerQuery<AppVehicleModelPriceQuery> pagerQuery) {
String userSid = pagerQuery.getParams().getUserSid();
// 1、根据业务员部门sid查询分公司
// 1) 根据userSid查询orgSidPath(部门路径)
ResultBean<AppUserOrgInfoVo> orgInfoResultBean = sysUserFeign.getUserOrgInfoByUserSid(userSid);
if (!orgInfoResultBean.getSuccess()) {
return new Page<>();
// 1、根据业务员部门sid查询分公司 查询orgSidPath(部门路径)
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
if (data != null) {
// 2) 根据orgSidPath(部门路径)判断分公司sid
pagerQuery.getParams().setUseOrg(data.getSid());
}
IPage<AppVehicleModelPriceQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<AppVehicleModelPriceVo> qw = appExistingCarBuildQW(pagerQuery.getParams());
IPage<AppVehicleModelPriceVo> iPage = baseMapper.getModelList(page, qw);
// 3、 查询更多配置(其它分公司)
for (AppVehicleModelPriceVo record : iPage.getRecords()) {
record.setModelImage("http//:192.168.1.101:8111/aaa.com");
String useOrg = data.getSid();
List<AppMoreConfigVo> moreConfigVos = baseMapper.getCompanyModelList(record.getModelSid(), useOrg);
for (AppMoreConfigVo moreConfigVo : moreConfigVos) {
moreConfigVo.setCompanyName(data.getName());
}
record.setMoreConfigList(moreConfigVos);
}
String orgSidPath = orgInfoResultBean.getData().getOrgSidPath();
ResultBean<List<SysOrgVo>> listOrgResultBean = sysOrganizationFeign.getListOrg();
return iPage;
}
private QueryWrapper<AppVehicleModelPriceVo> appExistingCarBuildQW(AppVehicleModelPriceQuery pagerQuery) {
QueryWrapper<AppVehicleModelPriceVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(pagerQuery.getName())) { // 车型名称
qw.like("bvm.vehicleAlias", pagerQuery.getName());
}
if (StringUtils.isNotBlank(pagerQuery.getEmissionStandard())) { // 排放标准
qw.eq("bvm.emissionStandard", pagerQuery.getEmissionStandard());
}
if (StringUtils.isNotBlank(pagerQuery.getDriver())) { // 驱动
qw.eq("bvm.driveForm", pagerQuery.getDriver());
}
if (StringUtils.isNotBlank(pagerQuery.getGearbox())) { // 变速箱
qw.eq("bvm.gearboxType", pagerQuery.getGearbox());
}
if (StringUtils.isNotBlank(pagerQuery.getSeries())) { // 产品系别
qw.eq("bvm.department", pagerQuery.getSeries());
}
if (StringUtils.isNotBlank(pagerQuery.getVehicleFunction())) { // 功能
qw.eq("bvm.vehicleType", pagerQuery.getVehicleFunction());
}
if (StringUtils.isNotBlank(pagerQuery.getMarketSegments())) { // 细分市场
qw.eq("bvm.marketSegments", pagerQuery.getMarketSegments());
}
if (StringUtils.isNotBlank(pagerQuery.getVehicleVersion())) { // 版本
qw.eq("bvm.vehicleVersion", pagerQuery.getVehicleVersion());
}
if (StringUtils.isNotBlank(pagerQuery.getFuelType())) { // 燃料
qw.eq("bvm.fuelType", pagerQuery.getFuelType());
}
if (StringUtils.isNotBlank(pagerQuery.getHorsepower())) { // 马力
qw.eq("bvm.power", pagerQuery.getHorsepower());
}
if (StringUtils.isNotBlank(pagerQuery.getUseOrg())) { // 分公司
qw.eq("bvc.useOrg", pagerQuery.getUseOrg());
}
return qw;
}
// 2) 根据orgSidPath(部门路径)判断分公司sid
// 2、 根据分公司sid查询 车型与简述配置关联表(base_vehmodel_config)表中 车型信息
// 3、 查询更多配置(其它分公司)
public IPage<AppBaseVehicleNowModelVo> getNowModelList(PagerQuery<AppBaseVehicleNowModelQuery> pagerQuery) {
String userSid = pagerQuery.getParams().getUserSid();
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
if (data != null) {
pagerQuery.getParams().setUseOrg(data.getSid());
}
IPage<AppBaseVehicleNowModelQuery> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<AppBaseVehicleNowModelVo> qw = nowModelQueryWrapper(pagerQuery.getParams());
return baseMapper.getNowModelList(page, qw);
}
private QueryWrapper<AppBaseVehicleNowModelVo> nowModelQueryWrapper(AppBaseVehicleNowModelQuery pagerQuery) {
QueryWrapper<AppBaseVehicleNowModelVo> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(pagerQuery.getName())) { // 名称
qw.like("bvm.vehicleAlias", pagerQuery.getName());
}
if (StringUtils.isNotBlank(pagerQuery.getEmissionStandard())) { // 排放标准
qw.eq("bvm.emissionStandard", pagerQuery.getEmissionStandard());
}
if (StringUtils.isNotBlank(pagerQuery.getDriver())) { // 驱动
qw.eq("bvm.driveForm", pagerQuery.getDriver());
}
if (StringUtils.isNotBlank(pagerQuery.getGearbox())) { // 变速箱
qw.eq("bvm.gearboxType", pagerQuery.getGearbox());
}
if (StringUtils.isNotBlank(pagerQuery.getSeries())) { // 产品系列
qw.eq("bvm.department", pagerQuery.getSeries());
}
if (StringUtils.isNotBlank(pagerQuery.getVehicleFunction())) { // 功能
qw.eq("bvm.vehicleType", pagerQuery.getVehicleFunction());
}
if (StringUtils.isNotBlank(pagerQuery.getMarketSegments())) { // 细分市场
qw.eq("bvm.marketSegments", pagerQuery.getMarketSegments());
}
if (StringUtils.isNotBlank(pagerQuery.getVehicleVersion())) { // 版本
qw.eq("bvm.vehicleVersion", pagerQuery.getVehicleVersion());
}
if (StringUtils.isNotBlank(pagerQuery.getFuelType())) { // 燃料
qw.eq("bvm.fuelType", pagerQuery.getFuelType());
}
if (StringUtils.isNotBlank(pagerQuery.getHorsepower())) { // 马力
qw.eq("bvm.power", pagerQuery.getHorsepower());
}
if (StringUtils.isNotBlank(pagerQuery.getBrand())) { // 品牌
qw.eq("bvm.carBrand", pagerQuery.getBrand());
}
if (StringUtils.isNotBlank(pagerQuery.getUseOrg())) { // 分公司
qw.eq("bv.useOrg", pagerQuery.getUseOrg());
}
qw.and(wrapper -> wrapper.eq("bv.vehicleState", "0004").or().eq("bv.vehicleState", "0005"));
qw.and(wrapper -> wrapper.isNull("bv.lockedStateValue").or().eq("bv.lockedStateValue", ""));
return qw;
}
/**
* 获取车型配置总结 常用配置一句话描述
*
* @param modelSid
* @param configSid
* @return
*/
public AppCarConfigSummaryVo getCarConfigSummary(String modelSid, String configSid) {
AppModelConfigListVo appModelConfigListVo = baseModelConfigService.getCarConfigSummary(modelSid, configSid);
AppCarConfigSummaryVo configSummaryVo = addConfigName(appModelConfigListVo);
return configSummaryVo;
}
/**
* 拼接常用配置字段
*
* @param
* @return
*/
public AppCarConfigSummaryVo addConfigName(AppModelConfigListVo appModelConfigListVo) {
AppCarConfigSummaryVo vo = new AppCarConfigSummaryVo();
String slowMachine = StringUtils.isNotBlank(appModelConfigListVo.getSlowMachine()) ? (appModelConfigListVo.getSlowMachine() + "/") : "";
String rearViewMirror = StringUtils.isNotBlank(appModelConfigListVo.getRearViewMirror()) ? (appModelConfigListVo.getRearViewMirror() + "/") : "";
String tireSize = StringUtils.isNotBlank(appModelConfigListVo.getTireSize()) ? (appModelConfigListVo.getTireSize() + "/") : "";
String specification = StringUtils.isNotBlank(appModelConfigListVo.getSpecification()) ? (appModelConfigListVo.getSpecification() + "/") : "";
return null;
String rearAxleRatio = StringUtils.isNotBlank(appModelConfigListVo.getRearAxleRatio()) ? (appModelConfigListVo.getRearAxleRatio() + "/") : "";
String airConditioner = StringUtils.isNotBlank(appModelConfigListVo.getAirConditioner()) && StringUtils.equals(appModelConfigListVo.getAirConditioner(), "有") ? ("空调" + "/") : "";
String hubMaterial = StringUtils.isNotBlank(appModelConfigListVo.getHubMaterial()) ? (appModelConfigListVo.getHubMaterial() + "/") : "";
String baffleModel = StringUtils.isNotBlank(appModelConfigListVo.getBaffleModel()) && StringUtils.equals(appModelConfigListVo.getBaffleModel(), "有") ? ("导流罩" + "/") : "";
String suspension = StringUtils.isNotBlank(appModelConfigListVo.getSuspension()) ? (appModelConfigListVo.getSuspension() + "/") : "";
String seat = StringUtils.isNotBlank(appModelConfigListVo.getSeat()) ? (appModelConfigListVo.getSeat() + "/") : "";
String tireCover = StringUtils.isNotBlank(appModelConfigListVo.getTireCover()) && StringUtils.equals(appModelConfigListVo.getTireCover(), "有") ? ("护轮罩" + "/") : "";
String saddle = StringUtils.isNotBlank(appModelConfigListVo.getSaddle()) ? (appModelConfigListVo.getSaddle() + "/") : "";
String wheelbase = StringUtils.isNotBlank(appModelConfigListVo.getWheelbase()) ? (appModelConfigListVo.getWheelbase() + "/") : "";
String bumper = StringUtils.isNotBlank(appModelConfigListVo.getBumper()) ? (appModelConfigListVo.getBumper() + "/") : "";
String configuringBao = StringUtils.isNotBlank(appModelConfigListVo.getConfiguringBao()) ? (appModelConfigListVo.getConfiguringBao() + "/") : "";
String independentSources = StringUtils.isNotBlank(appModelConfigListVo.getIndependentSources()) && StringUtils.equals(appModelConfigListVo.getIndependentSources(), "有") ? ("独立热源" + "/") : "";
String fuelTank = StringUtils.isNotBlank(appModelConfigListVo.getFuelTank()) ? (appModelConfigListVo.getFuelTank() + "/") : "";
String multimedia = StringUtils.isNotBlank(appModelConfigListVo.getMultimedia()) && StringUtils.equals(appModelConfigListVo.getMultimedia(), "有") ? ("多媒体") : "";
String configName = slowMachine + rearViewMirror + tireSize + specification + rearAxleRatio + airConditioner + hubMaterial +
baffleModel + suspension + seat + tireCover + saddle + wheelbase + bumper + configuringBao + independentSources + fuelTank + multimedia;
vo.setConfig(configName);
vo.setModel(appModelConfigListVo.getModel());
vo.setMoreConfig(appModelConfigListVo.getOtherConfig());
return vo;
}
}

11
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelMapper.java

@ -135,4 +135,15 @@ public interface BaseVehicleModelMapper extends BaseMapper<BaseVehicleModel> {
* @return
*/
IPage<BaseVehicleModelListVo> modelPageList(IPage<BaseVehicleModelListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<BaseVehicleModelListVo> qw);
/**
* 更多车型分页列表(非本公司的)
*
* @param page 分页
* @param qw 查询条件
* @return
*/
IPage<BaseVehicleModelListVo> notTheCompanyModelPageList(IPage<BaseVehicleModelListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<BaseVehicleModelListVo> qw);
}

35
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelMapper.xml

@ -328,15 +328,34 @@
</select>
<select id="modelPageList" resultType="com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelListVo">
SELECT
bm.sid,
SELECT bm.sid,
bm.brandName,
bm.vehicleAlias,
bm.vehicleVersionValue,
bm.fuelTypeValue,
bm.gearboxTypeValue,
CONCAT( MIN( guidedPrice ), '-', MAX( guidedPrice ) ) AS guidedPrice,
( SELECT count( * ) FROM base_vehicle bv WHERE bv.modelSid = bm.sid ) AS nowCarNum,
(SELECT count(*)
FROM base_vehicle bv
WHERE bv.modelSid = bm.sid
and bv.useOrg = bvc.useOrg) AS nowCarNum,
(SELECT count(*) FROM bus_vehicle_apply_detail bvad WHERE bvad.vehicleSid = bm.sid) AS productionCarNum
FROM base_vehicle_model bm
LEFT JOIN base_vehmodel_config bvc ON bvc.modelSid = bm.sid
<where>
${ew.sqlSegment}
</where>
ORDER BY
bm.brandName,
bm.productLine,
bm.vehicleType,
bm.vehicleVersion,
nowCarNum,
productionCarNum DESC
</select>
<select id="notTheCompanyModelPageList" resultType="com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModelListVo">
SELECT
( SELECT count( * ) FROM base_vehicle bv WHERE bv.modelSid = bm.sid and bv.useOrg = bvc.useOrg) AS nowCarNum,
( SELECT count( * ) FROM bus_vehicle_apply_detail bvad WHERE bvad.vehicleSid = bm.sid ) AS productionCarNum
FROM
base_vehicle_model bm
@ -345,11 +364,7 @@
${ew.sqlSegment}
</where>
ORDER BY
bm.brandName DESC,
bm.productLine DESC,
bm.vehicleType DESC,
bm.vehicleVersion DESC,
nowCarNum DESC,
productionCarNum DESC
productionCarNum,
nowCarNum DESC
</select>
</mapper>

9
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelRest.java

@ -193,6 +193,15 @@ public class BaseVehicleModelRest implements BaseVehicleModelFeign {
return rb.success().setData(pv1);
}
@Override
public ResultBean<PagerVo<BaseVehicleModelListVo>> notTheCompanyModelPageList(PagerQuery<BaseVehicleModelListQuery> query) {
ResultBean<PagerVo<BaseVehicleModelListVo>> rb = ResultBean.fireFail();
PagerVo<BaseVehicleModelListVo> pv = new PagerVo<>();
IPage<BaseVehicleModelListVo> page = baseVehicleModelService.notTheCompanyModelPageList(query);
PagerVo<BaseVehicleModelListVo> pv1 = PagerUtil.pageToVo(page, pv);
return rb.success().setData(pv1);
}
// @Override
// public ResultBean<PagerVo<BaseVehicleModelListVo>> selectPage(PagerQuery<BaseVehicleModelListQuery> query) {

69
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclemodel/BaseVehicleModelService.java

@ -54,8 +54,6 @@ public class BaseVehicleModelService extends MybatisBaseService<BaseVehicleModel
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private BaseModelSzconfigService baseModelSzconfigService;
@Autowired
private BaseTrailerService baseTrailerService;
@ -369,11 +367,25 @@ public class BaseVehicleModelService extends MybatisBaseService<BaseVehicleModel
if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getFuelType())) {
qw.eq("bm.fuelType", query.getFuelType());
}
//变速箱
if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getGearboxType())) {
qw.eq("bm.gearboxType", query.getGearboxType());
//判断不是本公司的
if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getUseOrg())) {
qw.eq("bm.useOrg", query.getUseOrg());
}
return qw;
}
/**
* 查询条件
*
* @param query
* @return
*/
private QueryWrapper<BaseVehicleModelListVo> notTheCompanyBuildQueryWrapper(BaseVehicleModelListQuery query) {
QueryWrapper<BaseVehicleModelListVo> qw = new QueryWrapper<>();
//判断不是本公司的
if (org.apache.commons.lang3.StringUtils.isNotBlank(query.getUseOrg())) {
qw.ne("bm.useOrg", query.getUseOrg());
}
qw.groupBy("bm.sid");
return qw;
}
@ -389,18 +401,57 @@ public class BaseVehicleModelService extends MybatisBaseService<BaseVehicleModel
* @return
*/
public IPage<BaseVehicleModelListVo> modelPageList(PagerQuery<BaseVehicleModelListQuery> query) {
String userSid = query.getParams().getUserSid();
//根据用户sid获取分公司sid
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
if (data != null) {
String sid = data.getSid();
if (StringUtils.isNotBlank(sid)) {
query.getParams().setUseOrg(sid);
}
}
IPage<BaseVehicleModelListQuery> page = PagerUtil.queryToPage(query);
QueryWrapper<BaseVehicleModelListVo> qw = createBuildQueryWrapper(query.getParams());
return baseMapper.modelPageList(page, qw);
IPage<BaseVehicleModelListVo> iPage = baseMapper.modelPageList(page, qw);
for (BaseVehicleModelListVo record : iPage.getRecords()) {
record.setCompany(data.getName());
}
return iPage;
}
/**
* 更多车型分页列表(非本公司的)
*
* @param query
* @return
*/
public IPage<BaseVehicleModelListVo> notTheCompanyModelPageList(PagerQuery<BaseVehicleModelListQuery> query) {
String userSid = query.getParams().getUserSid();
//根据用户sid获取分公司sid
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(userSid).getData();
if (data != null) {
String sid = data.getSid();
if (StringUtils.isNotBlank(sid)) {
query.getParams().setUseOrg(sid);
}
}
IPage<BaseVehicleModelListQuery> page = PagerUtil.queryToPage(query);
QueryWrapper<BaseVehicleModelListVo> qw = notTheCompanyBuildQueryWrapper(query.getParams());
IPage<BaseVehicleModelListVo> iPage = baseMapper.notTheCompanyModelPageList(page, qw);
for (BaseVehicleModelListVo record : iPage.getRecords()) {
record.setCompany(data.getName());
}
return iPage;
}
public ResultBean saveOrUpdateAll(BaseVehicleModelDto dto) {
ResultBean rb = ResultBean.fireFail();
String sid = dto.getSid();
if (StringUtils.isBlank(sid)){
if (StringUtils.isBlank(sid)) {
BaseVehicleModel entity = new BaseVehicleModel();
String sid1 = entity.getSid();
BeanUtil.copyProperties(dto,entity);
BeanUtil.copyProperties(dto, entity);
entity.setSid(sid1);
boolean isSave = save(entity);
if (!isSave) {

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.java

@ -30,9 +30,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.base.api.basevehicle.AppCurrentCarDetailCongfigVo;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailVo;
import com.yxt.anrui.base.api.basevehmodelconfig.AppCommonlyUsedModelsByPageListVo;
import com.yxt.anrui.base.api.busvehicleorder.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -81,11 +79,9 @@ public interface BusVehicleOrderMapper extends BaseMapper<BusVehicleOrder> {
*
* @param page
* @param qw
* @param modelSid 车型sid
* @param configSid 配置sid
* @return
*/
IPage<BusVehicleOrderListVo> pagerList(IPage<BusVehicleOrderListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<BusVehicleOrderListVo> qw, @Param("modelSid") String modelSid, @Param("configSid") String configSid);
IPage<BusVehicleOrderListVo> pagerList(IPage<BusVehicleOrderListQuery> page, @Param(Constants.WRAPPER) QueryWrapper<BusVehicleOrderListVo> qw);
/**
* 排产车型配置详情

48
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderMapper.xml

@ -45,21 +45,16 @@
<select id="pagerList" resultType="com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderListVo">
SELECT bvo.sid,
bvo.orderStatus,
bvo.orderNo,
bvo.orderDate,
bvo.expectLaunchDate,
bvo.launchDate,
bvo.offlineDate,
(bvo.platformNo - bvo.lockingNum) AS quantity
bvo.orderStatus,
bvo.orderNo,
bvo.orderDate,
bvo.expectLaunchDate,
bvo.launchDate,
bvo.offlineDate,
(bvo.platformNo - bvo.lockingNum) AS quantity
FROM bus_vehicle_order bvo
LEFT JOIN bus_vehicle_apply_detail bvad ON bvo.purchaseApplyMediumModelSid = bvad.sid
WHERE
bvad.vehicleSid = #{modeSid}
<if test="configSid != null and configSid != ''">
AND bvad.configSid = #{configSid}
</if>
${ew.customSqlSegment}
LEFT JOIN bus_vehicle_apply_detail bvad ON bvo.purchaseApplyMediumModelSid = bvad.sid
${ew.customSqlSegment}
</select>
<select id="selectDetails" resultType="com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderDetailsVo">
@ -166,13 +161,26 @@
</select>
<select id="selectBySid" resultType="com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderVo">
SELECT bvo.createOrgSid,bvo.orderNo,bvo.orderType,bvo.orderDate,bvo.purchaseApplyMediumModelSid,bvo.platformNo,bvo.coatPrice,
bvo.treasuryPrice,bvo.freight,bvo.salesGuidePrice,bvo.expectLaunchDate,bvo.launchDate,bvo.offlineDate,bvo.orderStatus,bvm.modelName,
SELECT bvo.createOrgSid,
bvo.orderNo,
bvo.orderType,
bvo.orderDate,
bvo.purchaseApplyMediumModelSid,
bvo.platformNo,
bvo.coatPrice,
bvo.treasuryPrice,
bvo.freight,
bvo.salesGuidePrice,
bvo.expectLaunchDate,
bvo.launchDate,
bvo.offlineDate,
bvo.orderStatus,
bvm.modelName,
bva.applicationCode
FROM bus_vehicle_order bvo
LEFT JOIN base_vehicle_model bvm ON bvo.purchaseApplyMediumModelSid=bvm.sid
LEFT JOIN bus_vehicle_apply_detail bvad ON bvo.purchaseApplyMediumModelSid = bvad.sid
LEFT JOIN bus_vehicle_apply bva ON bvad.applySid=bva.sid
WHERE bvo.sid=#{sid}
LEFT JOIN base_vehicle_model bvm ON bvo.purchaseApplyMediumModelSid = bvm.sid
LEFT JOIN bus_vehicle_apply_detail bvad ON bvo.purchaseApplyMediumModelSid = bvad.sid
LEFT JOIN bus_vehicle_apply bva ON bvad.applySid = bva.sid
WHERE bvo.sid = #{sid}
</select>
</mapper>

8
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java

@ -26,7 +26,7 @@
package com.yxt.anrui.base.biz.busvehicleorder;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailCongfigVo;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailConfigVo;
import com.yxt.anrui.base.api.busvehicleorder.*;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
@ -141,9 +141,9 @@ public class BusVehicleOrderRest implements BusVehicleOrderFeign {
}
@Override
public ResultBean<AppCurrentCarDetailCongfigVo> getAppProductionSchedulingDetailConfigVo(String modelSid, String configSid) {
AppCurrentCarDetailCongfigVo vo = busVehicleOrderService.getAppProductionSchedulingDetailConfigVo(modelSid, configSid);
return new ResultBean<AppCurrentCarDetailCongfigVo>().success().setData(vo);
public ResultBean<AppCurrentCarDetailConfigVo> getAppProductionSchedulingDetailConfigVo(String modelSid, String configSid) {
AppCurrentCarDetailConfigVo vo = busVehicleOrderService.getAppProductionSchedulingDetailConfigVo(modelSid, configSid);
return new ResultBean<AppCurrentCarDetailConfigVo>().success().setData(vo);
}
}

33
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderService.java

@ -29,13 +29,15 @@ 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.basemodelconfig.AppModelConfigDetailsVo;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailCongfigVo;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailConfigVo;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailVo;
import com.yxt.anrui.base.api.basevehicle.ConfigInfoSpanSize;
import com.yxt.anrui.base.api.basevehmodelconfig.AppCommonlyUsedModelsByPageListQuery;
import com.yxt.anrui.base.api.basevehmodelconfig.AppCommonlyUsedModelsByPageListVo;
import com.yxt.anrui.base.api.busvehicleorder.*;
import com.yxt.anrui.base.biz.basemodelconfig.BaseModelConfigService;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.DateUtils;
@ -74,6 +76,8 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
@Autowired
private BusVehicleApplyDetailService busVehicleApplyDetailService;
*/
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Autowired
private FileUploadComponent fileUploadComponent;
@ -144,6 +148,7 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
/**
* 保存或修改采购订单
*
* @param dto
*/
public ResultBean saveOrUpdateVehicleOrder(BusVehicleOrderDto dto) {
@ -164,6 +169,7 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
/**
* 根据sid查询车辆采购订单
*
* @param sid
* @return
*/
@ -248,9 +254,13 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
* @return
*/
public IPage<BusVehicleOrderListVo> pageList(PagerQuery<BusVehicleOrderListQuery> pq) {
SysOrganizationVo data = sysOrganizationFeign.getUseOrgByUserSid(pq.getParams().getUserSid()).getData();
if (data != null) {
pq.getParams().setUseOrg(data.getSid());
}
IPage<BusVehicleOrderListQuery> page = PagerUtil.queryToPage(pq);
QueryWrapper<BusVehicleOrderListVo> qw = buildQueryWrapper(pq.getParams());
return baseMapper.pagerList(page, qw, pq.getParams().getConfigSid(), pq.getParams().getModelSid());
return baseMapper.pagerList(page, qw);
}
/**
@ -264,6 +274,15 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
if (StringUtils.isNotBlank(query.getOrderStatus())) { //状态
qw.eq("bvo.orderStatus", query.getOrderStatus());
}
if (StringUtils.isNotBlank(query.getUseOrg())) { //分公司
qw.eq("bvo.useOrg", query.getUseOrg());
}
if (StringUtils.isNotBlank(query.getModelSid())) { //车型sid
qw.eq("bvad.vehicleSid", query.getModelSid());
}
if (StringUtils.isNotBlank(query.getConfigSid())) { //配置sid
qw.eq("bvad.configSid", query.getConfigSid());
}
String orderStartDate = query.getOrderStartDate();
String orderEndDate = query.getOrderEndDate();
qw.apply(StringUtils.isNotEmpty(orderStartDate), "date_format (bvo.orderDate,'%Y-%m-%d') >= date_format('" + orderStartDate + "','%Y-%m-%d')").
@ -289,8 +308,8 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
* @param configSid
* @return
*/
public AppCurrentCarDetailCongfigVo getAppProductionSchedulingDetailConfigVo(String modelSid, String configSid) {
AppCurrentCarDetailCongfigVo configDetailVo = new AppCurrentCarDetailCongfigVo();
public AppCurrentCarDetailConfigVo getAppProductionSchedulingDetailConfigVo(String modelSid, String configSid) {
AppCurrentCarDetailConfigVo configDetailVo = new AppCurrentCarDetailConfigVo();
//车型详细配置数据
AppCurrentCarDetailVo currentCarVo = baseMapper.getAppProductionSchedulingDetailConfigVo(modelSid, configSid);
List<List<ConfigInfoSpanSize>> modelInfoList = new ArrayList<>();
@ -314,7 +333,7 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
list2.add(getConfigValueSpanSize("内部编码", currentCarVo.getInsideCode(), 1));
modelInfoList.add(list1);
modelInfoList.add(list2);
configDetailVo.setModleInfo(modelInfoList);
configDetailVo.setModelInfo(modelInfoList);
//配置详细数据
AppModelConfigDetailsVo configVo = baseModelConfigService.getAppProductionSchedulingDetailsVo(modelSid, configSid);
List<List<ConfigInfoSpanSize>> commonConfigInfoList = new ArrayList<>();
@ -338,10 +357,10 @@ public class BusVehicleOrderService extends MybatisBaseService<BusVehicleOrderMa
list3.add(getConfigValueSpanSize("独立热源", configVo.getIndependentSources(), 1));
list3.add(getConfigValueSpanSize("燃料箱", configVo.getFuelTank(), 1));
list3.add(getConfigValueSpanSize("多媒体", configVo.getMultimedia(), 1));
configDetailVo.setCommonConfigInfo(list3);
configDetailVo.setConfigInfo(list3);
//更多配置
String otherConfig = configVo.getOtherConfig();
configDetailVo.setMoreConfigDescibe(otherConfig);
configDetailVo.setMoreConfig(otherConfig);
return null;
}

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

@ -95,8 +95,8 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
qw.eq("contractNo", query.getContractNo());
}
if (StringUtils.isNotBlank(query.getContractType())) {
qw.eq("contractType", query.getContractType());
if (StringUtils.isNotBlank(query.getContractTypeKey())) {
qw.eq("contractTypeKey", query.getContractTypeKey());
}

6
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeign.java

@ -1,5 +1,6 @@
package com.yxt.anrui.portal.api.sysorganization;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -93,6 +94,11 @@ public interface SysOrganizationFeign {
@GetMapping("/getListOrg")
ResultBean<List<SysOrgVo>> getListOrg();
@ApiOperation("根据业务员sid获取到分公司")
@ResponseBody
@GetMapping("/getUseOrgByUserSid")
ResultBean<SysOrganizationVo> getUseOrgByUserSid(@RequestParam("userSid") String userSid);
@ApiOperation("根据部门sid查询组织信息")
@ResponseBody
@GetMapping("/selectBySid")

180
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysorganization/SysOrganizationFeignFallback.java

@ -1,5 +1,6 @@
package com.yxt.anrui.portal.api.sysorganization;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -23,91 +24,96 @@ import java.util.List;
@Component
public class SysOrganizationFeignFallback implements SysOrganizationFeign {
@Override
public ResultBean<PagerVo<SysOrganizationVo>> listPage(PagerQuery<SysOrganizationQuery> pq){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/listPage无法访问");
}
@Override
public ResultBean<List<SysOrganizationVo>> listAll(SysOrganizationQuery query){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/listAll无法访问");
}
@Override
public ResultBean<List<SysOrganizationVo>> list(){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/list无法访问");
}
@Override
public ResultBean selectFirstOrgList() {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/selectFirstOrgList无法访问");
}
@Override
public ResultBean selectChildrenListBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/selectChildrenListBySid无法访问");
}
@Override
public ResultBean save(SysOrganizationDto dto){
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/save无法访问");
}
@Override
public ResultBean update(SysOrganizationDto dto,String sid){
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/update无法访问");
}
@Override
public ResultBean del(String ids){
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/del无法访问");
}
@Override
public ResultBean delBySid(String sid) {
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/del无法访问");
}
@Override
public ResultBean<SysOrganizationVo> fetch(String id){
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/fetch无法访问");
}
@Override
public ResultBean<SysOrganizationVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/fetchBySid无法访问");
}
@Override
public ResultBean selectAppOrganization(String sid) {
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/selectAppOrganization无法访问");
}
@Override
public ResultBean<List<SysOrgVo>> selectListOrg() {
return null;
}
@Override
public ResultBean<List<SysOrgVo>> getListOrg() {
return null;
}
@Override
public ResultBean<SysOrganization> selectBySid(String sid) {
return null;
}
@Override
public ResultBean<List<SysOrgListVo>> selectListOne() {
return null;
}
@Override
public ResultBean<PagerVo<SysOrganizationVo>> listPage(PagerQuery<SysOrganizationQuery> pq) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/listPage无法访问");
}
@Override
public ResultBean<List<SysOrganizationVo>> listAll(SysOrganizationQuery query) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/listAll无法访问");
}
@Override
public ResultBean<List<SysOrganizationVo>> list() {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/list无法访问");
}
@Override
public ResultBean selectFirstOrgList() {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/selectFirstOrgList无法访问");
}
@Override
public ResultBean selectChildrenListBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/selectChildrenListBySid无法访问");
}
@Override
public ResultBean save(SysOrganizationDto dto) {
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/save无法访问");
}
@Override
public ResultBean update(SysOrganizationDto dto, String sid) {
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/update无法访问");
}
@Override
public ResultBean del(String ids) {
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/del无法访问");
}
@Override
public ResultBean delBySid(String sid) {
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/del无法访问");
}
@Override
public ResultBean<SysOrganizationVo> fetch(String id) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/fetch无法访问");
}
@Override
public ResultBean<SysOrganizationVo> fetchBySid(String sid) {
ResultBean rb = ResultBean.fireFail();
return rb.setMsg("接口anrui_portal/sysorganization/fetchBySid无法访问");
}
@Override
public ResultBean selectAppOrganization(String sid) {
return ResultBean.fireFail().setMsg("接口anrui_portal/sysorganization/selectAppOrganization无法访问");
}
@Override
public ResultBean<List<SysOrgVo>> selectListOrg() {
return null;
}
@Override
public ResultBean<List<SysOrgVo>> getListOrg() {
return null;
}
@Override
public ResultBean<SysOrganizationVo> getUseOrgByUserSid(String staffSid) {
return null;
}
@Override
public ResultBean<SysOrganization> selectBySid(String sid) {
return null;
}
@Override
public ResultBean<List<SysOrgListVo>> selectListOne() {
return null;
}
}

17
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.java

@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.portal.api.sysorganization.*;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
@ -75,4 +76,20 @@ public interface SysOrganizationMapper extends BaseMapper<SysOrganization> {
SysOrganization selectByOrgCode(String substring);
List<SysOrganizationVo> selectChildernList(String sid);
/**
* 根据业务员sid获取到分公司
*
* @param staffSid 业务员sid
* @return
*/
SysStaffOrgVo getUseOrgByUserSid(@Param("staffSid") String staffSid);
/**
* 根据sid判断是否是分公司并获取公司名称
*
* @param sid
* @return
*/
SysOrganizationVo getUseOrgBySid(@Param("sid")String sid);
}

27
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationMapper.xml

@ -48,8 +48,9 @@
</select>
<select id="selectChildrenListByPsid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo">
SELECT sid,name,psid,orgCode FROM sys_organization
WHERE psid=#{psid}
SELECT sid, name, psid, orgCode
FROM sys_organization
WHERE psid = #{psid}
ORDER BY sort ASC
</select>
@ -87,7 +88,7 @@
</select>
<select id="treeList" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgVo">
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath,so.orgCode
SELECT so.name, so.psid, so.id, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
WHERE psid = #{psid}
</select>
@ -106,12 +107,11 @@
<select id="selectOrgCodeByPsid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganization">
SELECT *
FROM sys_organization
LIMIT 0,1
FROM sys_organization LIMIT 0,1
</select>
<select id="selectTreeList" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrgListVo">
SELECT so.name, so.psid, so.sid, so.orgSidPath,so.orgCode
SELECT so.name, so.psid, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
WHERE psid = #{psid}
</select>
@ -123,8 +123,21 @@
</select>
<select id="selectChildernList" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo">
SELECT so.name, so.psid, so.sid, so.orgSidPath,so.orgCode
SELECT so.name, so.psid, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
WHERE psid = #{psid}
</select>
<select id="getUseOrgByUserSid" resultType="com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo">
select orgSidPath
from sys_staff_org
where staffSid = #{staffSid}
</select>
<select id="getUseOrgBySid" resultType="com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo">
SELECT so.name, so.psid, so.sid, so.orgSidPath, so.orgCode
FROM sys_organization so
WHERE sid = #{sid}
And isDept = 1
</select>
</mapper>

23
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java

@ -78,15 +78,15 @@ public class SysOrganizationRest implements SysOrganizationFeign {
return rb.success();
}
@Override
public ResultBean<List<SysOrganizationVo>> selectFirstOrgList() {
return new ResultBean<List<SysOrganizationVo>>().success().setData(sysOrganizationService.selectFirstOrgList());
}
@Override
public ResultBean<List<SysOrganizationVo>> selectFirstOrgList() {
return new ResultBean<List<SysOrganizationVo>>().success().setData(sysOrganizationService.selectFirstOrgList());
}
@Override
public ResultBean<List<SysOrganizationVo>> selectChildrenListBySid(String sid) {
return new ResultBean<List<SysOrganizationVo>>().success().setData(sysOrganizationService.selectChildrenListBySid(sid));
}
@Override
public ResultBean<List<SysOrganizationVo>> selectChildrenListBySid(String sid) {
return new ResultBean<List<SysOrganizationVo>>().success().setData(sysOrganizationService.selectChildrenListBySid(sid));
}
@Override
public ResultBean update(SysOrganizationDto dto, String sid) {
@ -193,6 +193,13 @@ public class SysOrganizationRest implements SysOrganizationFeign {
return rb.success().setData(menuTree2VoList);
}
@Override
public ResultBean<SysOrganizationVo> getUseOrgByUserSid(String userSid) {
ResultBean<SysOrganizationVo> rb = ResultBean.fireFail();
SysOrganizationVo vo = sysOrganizationService.getUseOrgByUserSid(userSid);
return rb.success().setData(vo);
}
@Override
public ResultBean<SysOrganization> selectBySid(String sid) {
SysOrganization sysOrganization = sysOrganizationService.fetchBySid(sid);

40
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationService.java

@ -5,7 +5,11 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.portal.api.sysorganization.*;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgVo;
import com.yxt.anrui.portal.api.sysuser.SysUser;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.biz.sysstafforg.SysStaffOrgService;
import com.yxt.anrui.portal.biz.sysuser.SysUserService;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -35,6 +39,8 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
@Autowired
private SysStaffOrgService sysStaffOrgService;
@Autowired
private SysUserService sysUserService;
@Autowired
private FileUploadComponent fileUploadComponent;
public PagerVo<SysOrganization> listPage(PagerQuery<SysOrganizationQuery> pq) {
@ -328,4 +334,38 @@ public class SysOrganizationService extends MybatisBaseService<SysOrganizationMa
public SysOrganization selectByOrgCode(String substring) {
return baseMapper.selectByOrgCode(substring);
}
/**
* 根据业务员sid获取到分公司
*
* @param userSid 业务员sid
* @return
*/
public SysOrganizationVo getUseOrgByUserSid(String userSid) {
String staffSid = sysUserService.getUserOrgInfoByUserSid(userSid).getStaffSid();
SysStaffOrgVo sysOrgVo = baseMapper.getUseOrgByUserSid(staffSid);
String orgSidPath = sysOrgVo.getOrgSidPath();
SysOrganizationVo vo = getUseOrgBySid(orgSidPath);
return vo;
}
/**
* 根据sid判断是否是分公司并获取公司名称
*
* @param orgSidPath
* @return
*/
public SysOrganizationVo getUseOrgBySid(String orgSidPath) {
SysOrganizationVo sysOrganizationVo = null;
String[] split = orgSidPath.split("/");
for (int i = 0; i < split.length; i++) {
String sid = split[i];
sysOrganizationVo = baseMapper.getUseOrgBySid(sid);
}
if (sysOrganizationVo == null) {
SysOrganizationVo sysOrganizationVo1 = new SysOrganizationVo();
return sysOrganizationVo1;
}
return sysOrganizationVo;
}
}

27
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetails.java

@ -0,0 +1,27 @@
package com.yxt.anrui.scm.api.scmvehicleactualdetails;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:29
* @Description
*/
@Data
public class ScmVehicleActualDetails extends BaseEntity {
private static final long serialVersionUID = 8008152391857378580L;
@ApiModelProperty(value = "车辆未售买断申请sid")
private String vehicleActualSid;
@ApiModelProperty(value = "车架号")
private String vinNo;
@ApiModelProperty(value = "车型名称")
private String modelName;
@ApiModelProperty(value = "入库日期")
private Date inboundDate;
@ApiModelProperty(value = "入库价")
private String inboundPrice;
}

27
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetailsDto.java

@ -0,0 +1,27 @@
package com.yxt.anrui.scm.api.scmvehicleactualdetails;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:35
* @Description
*/
@Data
public class ScmVehicleActualDetailsDto implements Dto {
private static final long serialVersionUID = 4387929122120092628L;
@ApiModelProperty(value = "车架号")
private String vinNo;
@ApiModelProperty(value = "车型名称")
private String modelName;
@ApiModelProperty(value = "入库日期")
private Date inboundDate;
@ApiModelProperty(value = "入库价")
private String inboundPrice;
}

16
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetailsFeign.java

@ -0,0 +1,16 @@
package com.yxt.anrui.scm.api.scmvehicleactualdetails;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:09
* @Description
*/
@FeignClient(
contextId = "anrui-scm-ScmVehicleActualDetails",
name = "anrui-scm",
path = "v1/scmvehicleactualdetails",
fallback = ScmVehicleActualDetailsFeignFallback.class)
public interface ScmVehicleActualDetailsFeign {
}

12
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualdetails/ScmVehicleActualDetailsFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.scm.api.scmvehicleactualdetails;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:10
* @Description
*/
@Component
public class ScmVehicleActualDetailsFeignFallback {
}

29
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSales.java

@ -0,0 +1,29 @@
package com.yxt.anrui.scm.api.scmvehicleactualsales;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/8 11:33
* @Description
*/
@Data
public class ScmVehicleActualSales extends BaseEntity {
private static final long serialVersionUID = -8236776276492093631L;
@ApiModelProperty(value = "申请人")
private String applicationName;
@ApiModelProperty(value = "买断")
private String reason;
@ApiModelProperty(value = "节点状态")
private String nodeState;
@ApiModelProperty(value = "流程定义id")
private String procDefId;
@ApiModelProperty(value = "环节定义的sid")
private String nodeSid;
@ApiModelProperty(value = "流程实例的sid")
private String procInstSid;
}

36
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesDto.java

@ -0,0 +1,36 @@
package com.yxt.anrui.scm.api.scmvehicleactualsales;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.scm.api.scmvehicleactualdetails.ScmVehicleActualDetailsDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:22
* @Description
*/
@Data
public class ScmVehicleActualSalesDto implements Dto {
private static final long serialVersionUID = 3125388598762096051L;
@ApiModelProperty(value = "sid")
private String sid;
@ApiModelProperty(value = "申请人sid")
private String userSid;
@ApiModelProperty(value = "申请人")
private String applicationName;
@ApiModelProperty(value = "申请日期")
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty(value = "买断原因")
private String reason;
@ApiModelProperty(value = "车辆列表")
private List<ScmVehicleActualDetailsDto> detailsList;
}

40
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesFeign.java

@ -0,0 +1,40 @@
package com.yxt.anrui.scm.api.scmvehicleactualsales;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* @Author dimengzhe
* @Date 2022/4/8 11:57
* @Description
*/
@FeignClient(
contextId = "anrui-scm-ScmVehicleActualSales",
name = "anrui-scm",
path = "v1/scmvehicleactualsales",
fallback = ScmVehicleActualSalesFeignFallback.class)
public interface ScmVehicleActualSalesFeign {
@ApiOperation("分页列表")
@PostMapping("/listPage")
@ResponseBody
ResultBean<PagerVo<ScmVehicleActualSalesVo>> listPage(@RequestBody PagerQuery<ScmVehicleActualSalesQuery> pagerQuery);
@ApiOperation("新增或修改")
@PostMapping("/saveOrUpdate")
@ResponseBody
ResultBean saveOrUpdate(@RequestBody ScmVehicleActualSalesDto scmVehicleActualSalesDto);
@ApiOperation("提交")
@PostMapping("/submitVehicleSales")
@ResponseBody
ResultBean submitVehicleSales(@RequestBody ScmVehicleActualSalesDto scmVehicleActualSalesDto);
}

29
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesFeignFallback.java

@ -0,0 +1,29 @@
package com.yxt.anrui.scm.api.scmvehicleactualsales;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2022/4/8 11:59
* @Description
*/
@Component
public class ScmVehicleActualSalesFeignFallback implements ScmVehicleActualSalesFeign{
@Override
public ResultBean<PagerVo<ScmVehicleActualSalesVo>> listPage(PagerQuery<ScmVehicleActualSalesQuery> pagerQuery) {
return null;
}
@Override
public ResultBean saveOrUpdate(ScmVehicleActualSalesDto scmVehicleActualSalesDto) {
return null;
}
@Override
public ResultBean submitVehicleSales(ScmVehicleActualSalesDto scmVehicleActualSalesDto) {
return null;
}
}

23
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesQuery.java

@ -0,0 +1,23 @@
package com.yxt.anrui.scm.api.scmvehicleactualsales;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:11
* @Description
*/
@Data
public class ScmVehicleActualSalesQuery implements Query {
private static final long serialVersionUID = 970443773657128722L;
@ApiModelProperty(value = "申请日期开始时间")
private String applyStartDate;
@ApiModelProperty(value = "申请日期结束时间")
private String applyEndDate;
@ApiModelProperty(value = "状态")
private String nodeState;
@ApiModelProperty(value = "车架号")
private String vinNo;
}

33
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleactualsales/ScmVehicleActualSalesVo.java

@ -0,0 +1,33 @@
package com.yxt.anrui.scm.api.scmvehicleactualsales;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:02
* @Description
*/
@Data
public class ScmVehicleActualSalesVo implements Vo {
private static final long serialVersionUID = -8518464944096578672L;
@ApiModelProperty(value = "sid")
private String sid;
@ApiModelProperty(value = "节点状态")
private String nodeState;
@ApiModelProperty(value = "申请人")
private String applicationName;
@ApiModelProperty(value = "申请日期")
private String createTime;
@ApiModelProperty(value = "买断原因")
private String reason;
@ApiModelProperty(value = "台数")
private Integer num;
@ApiModelProperty(value = "流程状态") //若不为0则办理不能点击
private Integer flowState;
}

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehiclereturn/ScmVehicleReturnDto.java

@ -1,5 +1,6 @@
package com.yxt.anrui.scm.api.scmvehiclereturn;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.scm.api.scmvehiclereturndetails.ScmVehicleReturnDetailsDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
@ -23,6 +24,7 @@ public class ScmVehicleReturnDto implements Dto {
@ApiModelProperty(value = "申请人", required = true)
private String name;
@ApiModelProperty(value = "申请日期", required = true)
@JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
private Date createTime;
@ApiModelProperty(value = "退库原因", required = true)
private String reason;

20
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualdetails/ScmVehicleActualDetailsMapper.java

@ -0,0 +1,20 @@
package com.yxt.anrui.scm.biz.scmvehicleactualdetails;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.scm.api.scmvehicleactualdetails.ScmVehicleActualDetails;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:12
* @Description
*/
@Mapper
public interface ScmVehicleActualDetailsMapper extends BaseMapper<ScmVehicleActualDetails> {
List<ScmVehicleActualDetails> selectBySaleSid(String sid);
int deleteBySaleSid(String sid);
}

15
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualdetails/ScmVehicleActualDetailsMapper.xml

@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.anrui.scm.biz.scmvehicleactualdetails.ScmVehicleActualDetailsMapper">
<select id="selectBySaleSid" resultType="com.yxt.anrui.scm.api.scmvehicleactualdetails.ScmVehicleActualDetails">
select *
from scm_vehicle_actual_details
where vehicleActualSid = #{sid}
</select>
<delete id="deleteBySaleSid">
delete
from scm_vehicle_actual_details
where vehicleActualSid = #{sid}
</delete>
</mapper>

17
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualdetails/ScmVehicleActualDetailsRest.java

@ -0,0 +1,17 @@
package com.yxt.anrui.scm.biz.scmvehicleactualdetails;
import com.yxt.anrui.scm.api.scmvehicleactualdetails.ScmVehicleActualDetailsFeign;
import io.swagger.annotations.Api;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:09
* @Description
*/
@Api(tags = "车辆未售买断管理")
@RequestMapping("v1/scmvehicleactualsales")
@Controller
public class ScmVehicleActualDetailsRest implements ScmVehicleActualDetailsFeign {
}

58
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualdetails/ScmVehicleActualDetailsService.java

@ -0,0 +1,58 @@
package com.yxt.anrui.scm.biz.scmvehicleactualdetails;
import com.yxt.anrui.scm.api.scmvehicleactualdetails.ScmVehicleActualDetails;
import com.yxt.anrui.scm.api.scmvehicleactualdetails.ScmVehicleActualDetailsDto;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/8 18:11
* @Description
*/
@Service
public class ScmVehicleActualDetailsService extends MybatisBaseService<ScmVehicleActualDetailsMapper, ScmVehicleActualDetails> {
/**
* 新增
*
* @param detailsList
* @param saleSid
*/
@Transactional(rollbackFor = Exception.class)
public void saveDetails(List<ScmVehicleActualDetailsDto> detailsList, String saleSid) {
ScmVehicleActualDetails scmVehicleActualDetails = null;
for (ScmVehicleActualDetailsDto dto : detailsList) {
scmVehicleActualDetails = new ScmVehicleActualDetails();
BeanUtils.copyProperties(dto, scmVehicleActualDetails, scmVehicleActualDetails.getSid());
scmVehicleActualDetails.setVehicleActualSid(saleSid);
save(scmVehicleActualDetails);
}
}
/**
* 查询
*
* @param sid
* @return
*/
public List<ScmVehicleActualDetails> selectBySaleSid(String sid) {
return baseMapper.selectBySaleSid(sid);
}
/**
* 删除原车辆退库详细并新增
*
* @param sid 车辆退库sid
* @param detailsList 退库车辆详细
*/
@Transactional(rollbackFor = Exception.class)
public void updateListByReturnSid(String sid, List<ScmVehicleActualDetailsDto> detailsList) {
baseMapper.deleteBySaleSid(sid);
saveDetails(detailsList, sid);
}
}

27
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesMapper.java

@ -0,0 +1,27 @@
package com.yxt.anrui.scm.biz.scmvehicleactualsales;
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.scm.api.scmvehicleactualsales.ScmVehicleActualSales;
import com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSalesVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:43
* @Description
*/
@Mapper
public interface ScmVehicleActualSalesMapper extends BaseMapper<ScmVehicleActualSales> {
/**
* 分页列表
*
* @param page 分页
* @param qw 查询条件
* @return
*/
IPage<ScmVehicleActualSalesVo> pagerList(IPage<ScmVehicleActualSalesVo> page, @Param(Constants.WRAPPER) QueryWrapper<ScmVehicleActualSalesVo> qw);
}

13
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesMapper.xml

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.yxt.anrui.scm.biz.scmvehicleactualsales.ScmVehicleActualSalesMapper">
<select id="pagerList" resultType="com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSalesVo">
select sv.sid,
sv.applicationName,
sv.createTime,
sv.reason,
(select count(*) from scm_vehicle_actual_details sa where sa.vehicleActualSid = sv.sid) as num
from scm_vehicle_actual_sales sv
${ew.customSqlSegment}
</select>
</mapper>

45
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesRest.java

@ -0,0 +1,45 @@
package com.yxt.anrui.scm.biz.scmvehicleactualsales;
import com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSalesDto;
import com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSalesFeign;
import com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSalesQuery;
import com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSalesVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author dimengzhe
* @Date 2022/4/8 15:05
* @Description
*/
@Api(tags = "车辆未售买断管理")
@RequestMapping("v1/scmvehicleactualsales")
@Controller
public class ScmVehicleActualSalesRest implements ScmVehicleActualSalesFeign {
@Autowired
private ScmVehicleActualSalesService scmVehicleActualSalesService;
@Override
public ResultBean<PagerVo<ScmVehicleActualSalesVo>> listPage(PagerQuery<ScmVehicleActualSalesQuery> pagerQuery) {
ResultBean<PagerVo<ScmVehicleActualSalesVo>> rb = ResultBean.fireFail();
PagerVo<ScmVehicleActualSalesVo> pv = scmVehicleActualSalesService.listPage(pagerQuery);
return rb.success().setData(pv);
}
@Override
public ResultBean saveOrUpdate(ScmVehicleActualSalesDto scmVehicleActualSalesDto) {
return scmVehicleActualSalesService.saveOrUpdateVehicleSales(scmVehicleActualSalesDto);
}
@Override
public ResultBean submitVehicleSales(ScmVehicleActualSalesDto scmVehicleActualSalesDto) {
return scmVehicleActualSalesService.submitVehicleSales(scmVehicleActualSalesDto);
}
}

155
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleactualsales/ScmVehicleActualSalesService.java

@ -0,0 +1,155 @@
package com.yxt.anrui.scm.biz.scmvehicleactualsales;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign;
import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.scm.api.scmvehicleactualdetails.ScmVehicleActualDetails;
import com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSales;
import com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSalesDto;
import com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSalesQuery;
import com.yxt.anrui.scm.api.scmvehicleactualsales.ScmVehicleActualSalesVo;
import com.yxt.anrui.scm.biz.scmvehicleactualdetails.ScmVehicleActualDetailsService;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/4/8 17:42
* @Description
*/
@Service
public class ScmVehicleActualSalesService extends MybatisBaseService<ScmVehicleActualSalesMapper, ScmVehicleActualSales> {
@Autowired
private SysFormLinkFeign sysFormLinkFeign;
@Autowired
private ScmVehicleActualDetailsService scmVehicleActualDetailsService;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
/**
* 分页列表
*
* @param pagerQuery 查询条件
* @return
*/
public PagerVo<ScmVehicleActualSalesVo> listPage(PagerQuery<ScmVehicleActualSalesQuery> pagerQuery) {
IPage<ScmVehicleActualSalesVo> page = pagerList(pagerQuery);
PagerVo<ScmVehicleActualSalesVo> pv = new PagerVo<>();
PagerVo<ScmVehicleActualSalesVo> pv1 = PagerUtil.pageToVo(page, pv);
List<ScmVehicleActualSalesVo> voList = pv1.getRecords();
if (voList.size() > 0) {
for (int i = 0; i < voList.size(); i++) {
ResultBean<SysFormStateVo> resultBean = sysFormLinkFeign.selectStateByBusinessSid(voList.get(i).getSid());
if (resultBean.getSuccess() && resultBean.getData() != null) {
SysFormStateVo formState = resultBean.getData();
voList.get(i).setNodeState(formState.getNodeState());
voList.get(i).setFlowState(formState.getFlowState());
} else {
voList.get(i).setFlowState(0);
}
}
}
return pv1;
}
private IPage<ScmVehicleActualSalesVo> pagerList(PagerQuery<ScmVehicleActualSalesQuery> pagerQuery) {
IPage<ScmVehicleActualSalesVo> page = PagerUtil.queryToPage(pagerQuery);
QueryWrapper<ScmVehicleActualSalesVo> qw = buildQueryWrapper(pagerQuery.getParams());
return baseMapper.pagerList(page, qw);
}
private QueryWrapper<ScmVehicleActualSalesVo> buildQueryWrapper(ScmVehicleActualSalesQuery params) {
QueryWrapper<ScmVehicleActualSalesVo> qw = new QueryWrapper<>();
if (params != null) {
//申请日期
//状态
//车架号
}
return qw;
}
@Transactional(rollbackFor = Exception.class)
public ResultBean saveOrUpdateVehicleSales(ScmVehicleActualSalesDto scmVehicleActualSalesDto) {
ResultBean rb = ResultBean.fireFail();
String sid = scmVehicleActualSalesDto.getSid();
if (StringUtils.isBlank(sid)) {
//新增
ScmVehicleActualSales scmVehicleActualSales = new ScmVehicleActualSales();
BeanUtils.copyProperties(scmVehicleActualSalesDto, scmVehicleActualSales, scmVehicleActualSales.getSid());
boolean isSave = save(scmVehicleActualSales);
if (!isSave) {
return rb.setMsg("保存失败");
} else {
sid = scmVehicleActualSales.getSid();
if (scmVehicleActualSalesDto.getDetailsList().size() > 0) {
scmVehicleActualDetailsService.saveDetails(scmVehicleActualSalesDto.getDetailsList(), scmVehicleActualSales.getSid());
}
}
} else {
//编辑
//验证数据是否可更改
if (checkCouldChange(sid)) {
return rb.setMsg("该条信息不可更改");
}
int i = updateBySid(scmVehicleActualSalesDto, sid);
//查询details中是否有关于sales的该条sid数据
List<ScmVehicleActualDetails> scmVehicleActualDetailsList = scmVehicleActualDetailsService.selectBySaleSid(sid);
if (scmVehicleActualDetailsList.size() > 0) {
scmVehicleActualDetailsService.updateListByReturnSid(sid, scmVehicleActualSalesDto.getDetailsList());
}
}
return rb.success().setData(sid);
}
/**
* 判断是否可删除
*
* @param sid sid
* @return
*/
private boolean checkCouldChange(String sid) {
ScmVehicleActualSales scmVehicleActualSales = fetchBySid(sid);
// 判断是否可以更改(是否走了流程,更改了状态)
if (StringUtils.isNotBlank(scmVehicleActualSales.getNodeState())) {
return true;
}
return false;
}
/**
* 查询用户是否设置了部门
*
* @param userSid 用户sid
* @return
*/
private String checkUserOrg(String userSid) {
String orgSid = "";
String staffSid = sysUserFeign.selectBySid(userSid).getData().getStaffSid();
ResultBean<String> resultBean = sysStaffOrgFeign.getSysStaffOrgSidListByStaffSid(staffSid);
if (resultBean.getSuccess()) {
orgSid = resultBean.getData();
}
return orgSid;
}
public ResultBean submitVehicleSales(ScmVehicleActualSalesDto scmVehicleActualSalesDto) {
return null;
}
}

1
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnMapper.xml

@ -9,6 +9,7 @@
sr.reason,
(select count(*) from scm_vehicle_return_details sd where sd.vehicleOutSid = sr.sid) as num
from scm_vehicle_return sr
${ew.customSqlSegment}
</select>
<update id="modifyFlowState">

6
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnRest.java

@ -7,13 +7,19 @@ import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnVo;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author dimengzhe
* @Date 2022/4/6 17:45
* @Description
*/
@Api(tags = "车辆采购退库管理")
@RequestMapping("v1/scmvehiclereturn")
@Controller
public class ScmVehicleReturnRest implements ScmVehicleReturnFeign {
@Autowired

50
anrui-scm/anrui-scm-ui/src/api/flow/todo.js

@ -0,0 +1,50 @@
import request from '@/utils/request'
// 代办任务同意办理
export function businessAgree(params) {
return request({
url: '/portal/v1/flow/complete',
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
// 代办任务驳回任务
export function rejectTask(params) {
return request({
url: '/portal/v1/flow/reject/' + params.businessSid,
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
// 代办任务终止任务
export function breakTask(params) {
return request({
url: '/portal/v1/flow/breakProcess/' + params.businessSid,
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}
// 代办任务撤回任务
export function revokeTask(params) {
return request({
url: '/portal/v1/flow/revokeProcess/' + params.userSid + '/' + params.businessSid,
method: 'post',
data: params,
headers: {
'Content-Type': 'application/json'
}
})
}

47
anrui-scm/anrui-scm-ui/src/api/ruzhang/scmapplyinbound.js

@ -0,0 +1,47 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/scm/v1/scmapplyinbound/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 保存修改记录
saveOrUpdate: function(params) {
return request({
url: '/scm/v1/scmapplyinbound/saveOrUpdateApplyInBound',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 提交流程
submitVehicleApply: function(params) {
return request({
url: '/base/v1/busvehicleapply/submitVehicleApply',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 通过sid删除一条或多条记录
delBySids: function(params) {
return request({
url: '/base/v1/busvehicleapply/delBySids',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 通过sid查询一条记录
fetchBySid: function(sid) {
return request({
url: '/scm/v1/scmapplyinbound/fetchSid/' + sid,
method: 'get'
})
}
}

42
anrui-scm/anrui-scm-ui/src/api/supplychain/busvehicleapply.js

@ -1,6 +1,5 @@
import request from '@/utils/request'
// import qs from 'qs'
// 其他入库单
export default {
// 查询分页列表
@ -12,6 +11,15 @@ export default {
headers: { 'Content-Type': 'application/json' }
})
},
// 查询车型和常用配置列表
configurationlistPage: function(parmas) {
return request({
url: '/base/basevehmodelconfig/listPage',
method: 'post',
data: parmas,
headers: { 'Content-Type': 'application/json' }
})
},
// 保存新增记录
saveAdd: function(params) {
return request({
@ -22,9 +30,18 @@ export default {
})
},
// 保存修改记录
saveEdit: function(params, sid) {
saveEdit: function(params) {
return request({
url: '/base/v1/busvehicleapply/update',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 提交流程
submitVehicleApply: function(params) {
return request({
url: '/base/v1/busvehicleapply/update/' + sid,
url: '/base/v1/busvehicleapply/submitVehicleApply',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
@ -46,15 +63,6 @@ export default {
method: 'get'
})
},
// // 根据单据编号查看详情
// fetchByBillNo: function(sid) {
// return request({
// url: '/base/busvehicleapply/fetchBySid/' + sid,
// method: 'get'
// })
// },
// 获取下拉列表(数据字典)
pullDown: function(data) {
return request({
@ -72,16 +80,6 @@ export default {
params: data
})
},
// 获取下拉列表(简述配置)
getList: function(data) {
return request({
url: '/base/v1/basemodelconfig/getListByVeSid',
method: 'get',
params: data
})
},
// 提交
doSubmit: function(params) {
return request({

34
anrui-scm/anrui-scm-ui/src/router/modules/codemenu.js

@ -243,10 +243,40 @@ const codemenu = [
path: '/vehicle/cheliangpaichan',
component: () => import('@/views/supplychain/vehicle/cheliangpaichan/cheliangpaichan.vue'),
name: 'cheliangpaichan',
meta: { title: '车辆排产管理' }
meta: { title: '排产管理' }
}
]
}
},
{
path: '/ruzhang',
component: Layout,
redirect: '/ruzhang',
meta: {
title: '入账管理'
},
children: [{
path: '/ruzhang/ruzhangguanli',
component: () => import('@/views/ruzhang/ruzhangguanli/ruzhangguanli.vue'),
name: 'ruzhangguanli',
meta: { title: '入账单管理' }
}]
},
// 排产管理
// 排产管理申请详情
{
path: '/paichanguanliFlow/paichanguanli/cheliangpaichanInfo',
component: () =>
import('@/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanInfo.vue'),
name: 'cheliangpaichanInfo'
},
// 排产管理申请编辑
{
path: '/paichanguanliFlow/paichanguanli/cheliangpaichanEdit',
component: () =>
import('@/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanEdit.vue'),
name: 'cheliangpaichanEdit'
}
]
export default codemenu

276
anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangAdd.vue

@ -0,0 +1,276 @@
<template>
<div class="app-container">
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveEdit()">保存
</el-button>
<el-button type="primary" size="small" @click="submitVehicleApply()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>车辆入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="采购订单编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.purchaseOrderNo" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="车型:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.modelName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="常用配置:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.configName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linethree">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" clearable/>
</el-form-item>
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">车辆列表</div>
</div>
<el-table :key="tableKey" :data="formobj.vehicleList" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="left" header-align="center">
<template slot-scope="scope" prop="vehicleName">
<el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
</el-table>
<el-row style="margin-top: 10px">
<el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="厂家发车日期:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.departureDate" clearable type="date" placeholder="开始日期"/>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
</div>
</template>
<script>
import req from '@/api/ruzhang/scmapplyinbound'
export default {
name: 'ruzhangAdd',
data() {
return {
viewTitle: '',
index: 0,
tableKey: 0,
//
formobj: {
sid: '', // sid
applicationSid: window.sessionStorage.getItem('userSid'), // sid
applicationName: window.sessionStorage.getItem('name'), //
applicationCode: '', //
configName: '',
departureDate: '',
modelName: '',
modelSid: '',
purchaseOrderNo: '',
remarks: '', //
vehicleOrderSid: '',
vehicleList: []
},
rules: {},
submitdisabled: false
}
},
methods: {
showEdit(sid, row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '【编辑】入账单'
console.log('编辑回显', sid, row)
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks
this.formobj.sid = sid
this.formobj.configName = data.configName
this.formobj.departureDate = data.departureDate
this.formobj.modelName = data.modelName
this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo
this.formobj.vehicleOrderSid = data.vehicleOrderSid
if (data.inboundVehicleList.length > 0) {
data.inboundVehicleList.forEach((e) => {
this.formobj.vehicleList.push({
applySid: e.applySid,
remarks: e.remarks,
modelSid: e.modelSid,
sid: e.sid,
vinNo: e.vinNo
})
})
} else {
for (var i = 0; i < row[0].vehicleNum; i++) {
this.formobj.vehicleList.push({
applySid: '',
remarks: '',
modelSid: this.formobj.modelSid,
sid: '',
vinNo: ''
})
}
}
}).catch((e) => {
this.formobj = row
})
},
saveEdit() {
console.log(this.formobj, 636363)
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((resp) => {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
submitVehicleApply() {
req.submitVehicleApply(this.formobj).then((res) => {
if (res.code == '200') {
this.$message({
showClose: true,
type: 'success',
message: '提交成功'
})
this.handleReturn('true')
} else {
this.$message({
showClose: true,
type: 'error',
message: '提交失败'
})
}
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.departureDate = ''
this.formobj.remarks = '' //
this.formobj.vehicleList = []
this.$refs['form_obj'].resetFields()
this.$emit('doback')
},
}
}
</script>
<style scoped>
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.lineone {
border-bottom: 2px solid #e0e3eb;
}
.lineone .el-form-item {
margin-bottom: -10px;
}
.lineone >>> .el-input__inner {
border: 0;
}
.linetwo {
margin-top: 10px;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.linethree .el-form-item {
margin-bottom: 0px !important;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: start;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.el-form-item-right {
/* padding: 0 10px 0 0; */
text-align: right;
}
</style>

219
anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangInfo.vue

@ -0,0 +1,219 @@
<template>
<div class="app-container">
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>车辆入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="采购订单编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.purchaseOrderNo" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="车型:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.modelName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="常用配置:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.configName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" clearable readonly/>
</el-form-item>
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">车辆列表</div>
</div>
<el-table :key="tableKey" :data="formobj.vehicleList" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="left" header-align="center">
<template slot-scope="scope" prop="vehicleName">
<el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable readonly/>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable readonly/>
</template>
</el-table-column>
</el-table>
<el-row class="linetwo" style="margin-top: 10px">
<el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="厂家发车日期:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.departureDate" placeholder="" class="addinputw" clearable readonly/>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
</div>
</template>
<script>
import req from '@/api/ruzhang/scmapplyinbound'
export default {
name: 'ruzhangInfo',
data() {
return {
viewTitle: '',
index: 0,
tableKey: 0,
//
formobj: {
sid: '', // sid
applicationSid: window.sessionStorage.getItem('userSid'), // sid
applicationName: window.sessionStorage.getItem('name'), //
applicationCode: '', //
configName: '',
departureDate: '',
modelName: '',
modelSid: '',
purchaseOrderNo: '',
remarks: '', //
vehicleOrderSid: '',
vehicleList: []
},
rules: {},
submitdisabled: false
}
},
methods: {
showInfo(sid, row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '入账单详情'
console.log('编辑回显', sid, row)
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks
this.formobj.sid = sid
this.formobj.configName = data.configName
this.formobj.departureDate = data.departureDate
this.formobj.modelName = data.modelName
this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo
this.formobj.vehicleOrderSid = data.vehicleOrderSid
if (data.inboundVehicleList.length > 0) {
data.inboundVehicleList.forEach((e) => {
this.formobj.vehicleList.push({
applySid: e.applySid,
remarks: e.remarks,
modelSid: e.modelSid,
sid: e.sid,
vinNo: e.vinNo
})
})
}
}).catch((e) => {
this.formobj = row
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.departureDate = ''
this.formobj.remarks = '' //
this.formobj.vehicleList = []
this.$refs['form_obj'].resetFields()
this.$emit('doback')
},
}
}
</script>
<style scoped>
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.lineone {
border-bottom: 2px solid #e0e3eb;
}
.lineone .el-form-item {
margin-bottom: -10px;
}
.lineone >>> .el-input__inner {
border: 0;
}
.linetwo {
margin-top: 10px;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: start;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.el-form-item-right {
text-align: right;
}
</style>

258
anrui-scm/anrui-scm-ui/src/views/ruzhang/ruzhangguanli/ruzhangguanli.vue

@ -0,0 +1,258 @@
<template>
<div class="app-container">
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>入账申请单管理</div>
<div>
<!-- <el-button type="danger" size="small" @click="doDel()">删除</el-button>-->
<el-button type="primary" size="small">提交</el-button>
<el-button type="info" size="small">关闭</el-button>
</div>
</div>
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="isSearchShow = !isSearchShow">{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-form-item label="采购订单编号:">
<el-input v-model="queryParams.params.purchaseOrderNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="车型:">
<el-input v-model="queryParams.params.modelName" placeholder="" clearable/>
</el-form-item>
<el-form-item class="formItem" label="申请日期:">
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.params.applicationDateStart" clearable style="width: 160px;" type="date" placeholder="开始日期"/>
<div class="line"></div>
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.params.applicationDateEnd" clearable style="width: 160px;" type="date" placeholder="结束日期"/>
</el-form-item>
<el-form-item label="状态:">
<el-input v-model="queryParams.params.nodeState" placeholder="" clearable/>
</el-form-item>
<el-divider/>
<div class="btn" style="text-align: center;">
<el-button type="primary" @click="dosearch" icon="el-icon-search">查询</el-button>
<el-button type="primary" @click="resetQuery">重置</el-button>
</div>
</el-form>
</div>
</div>
<!--Start 项目列表头部-->
<div class="listtop">
<div class="tit">入账申请列表</div>
<pageye v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" :limit.sync="queryParams.size" class="pagination" @pagination="loadList"/>
</div>
<!--End 项目列表头部-->
<!--Start 项目列表-->
<div class="listcon">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50" type="selection" align="center"/>
<el-table-column width="80" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column width="150" label="操作" align="center">
<template slot-scope="scope">
<el-button type="primary" size="small" :disabled="scope.row.nodeState =='' ? false : scope.row.nodeState == '排产申请' ? false : true" @click="toEdit(scope.row)">办理</el-button>
<el-button type="primary" size="small" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column width="150" prop="nodeState" label="状态" align="center"/>
<el-table-column width="200" prop="applicationCode" label="申请编号" align="center"/>
<el-table-column width="150" prop="applicationDate" label="申请日期" align="center"/>
<el-table-column width="200" prop="purchaseOrderNo" label="采购订单编号" align="center"/>
<el-table-column prop="modelName" label="车型" align="center"/>
<el-table-column width="150" prop="vehicleNum" fit label="台数" align="center"/>
</el-table>
</div>
<!--End 项目列表-->
<div class="pages">
<!-- 翻页 -->
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" :limit.sync="queryParams.size" class="pagination" @pagination="loadList"/>
</div>
</div>
<!--End 查询和其列表部分-->
<!--新增修改部分组件-->
<div-add v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList"/>
<!--详情部分组件-->
<div-info v-show="viewState == 4" ref="divinfo" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/ruzhang/scmapplyinbound'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divAdd from './ruzhangAdd'
import divInfo from './ruzhangInfo'
export default {
name: 'ruzhangguanli',
components: {
ButtonBar,
Pagination,
pageye,
divAdd,
divInfo
},
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false, //
tableLoading: false,
//
dataList: [],
// sid
sids: [], // SID
sides: '', // sid
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
applicationDateStart: '',
applicationDateEnd: '',
nodeState: '',
purchaseOrderNo: '',
modelName: ''
}
},
row: {}
}
},
created() {
this.loadList()
},
methods: {
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
this.row = row
this.sides = this.sids.join() // sid
console.log('获取sids数组', this.sids)
},
toEdit() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行编辑' })
return
}
if (this.sids.length > 1) {
this.$message({ showClose: true, type: 'error', message: '只能选择一条记录进行编辑' })
return
}
this.viewState = 3
const sid = this.sids[0]
const row = this.row
this.$refs['divadd'].showEdit(sid, row)
},
toInfo(row) {
this.viewState = 4
console.log('这是打开详情接口', row)
const sid = row.sid
this.$refs['divinfo'].showInfo(sid, row)
},
//
dosearch() {
this.queryParams.current = 1
this.loadList()
},
//
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
applicationDateStart: '',
applicationDateEnd: '',
nodeState: '',
purchaseOrderNo: '',
modelName: ''
}
}
this.dosearch()
},
//
loadList() {
const _this = this
this.tableLoading = true
req.listPage(this.queryParams).then(resp => {
console.log('查询列表', resp)
_this.tableLoading = false
const data = resp.data
_this.queryParams.total = data.total
_this.dataList = data.records
}).catch(() => {
_this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
doDel(row) {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
const _this = this
req.delBySids(this.sids).then(resp => {
loading.close()
_this.$message({ type: 'success', message: resp.msg, showClose: true })
_this.loadList()
}).catch(e => {
loading.close()
})
}).catch(() => {})
},
//
resetState() {
this.viewState = 1
this.loadList()
}
}
}
</script>
<style scoped>
.line {
display: inline-block;
margin: 0px 15px;
}
.listtop {
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.tit {
margin-bottom: -10px;
}
.pagination {
margin-bottom: -10px;
}
.formItem {
margin-right: 28px;
}
</style>

505
anrui-scm/anrui-scm-ui/src/views/supplychain/vehicle/cheliangpaichan/cheliangpaichan.vue

@ -1,19 +1,16 @@
<template>
<div class="app-container">
<div v-show="viewState === 1">
<div v-show="viewState == 1">
<button-bar view-title="车辆排产管理" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="isSearchShow = !isSearchShow">{{ isSearchShow ? '隐藏查询条件' :
'显示查询条件' }}
<el-button size="small" class="searchbtn" @click="isSearchShow = !isSearchShow">{{ isSearchShow ? '隐藏查询条件' : '显示查询条件' }}
</el-button>
<div v-show="isSearchShow" class="search">
<el-form :inline="true" class="tab-header">
<el-form-item class="formItem" label="申请日期">
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.params.applicationDateStart" clearable
style="width: 160px;" type="date" placeholder="开始日期"/>
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.params.applicationDateStart" clearable style="width: 160px;" type="date" placeholder="开始日期"/>
<div class="line"></div>
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.params.applicationDateEnd" clearable
style="width: 160px;" type="date" placeholder="结束日期"/>
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.params.applicationDateEnd" clearable style="width: 160px;" type="date" placeholder="结束日期"/>
</el-form-item>
<el-form-item label="状态">
<!-- <el-select v-model="queryParams.params.billType" @change="changeBillType" style="width:200px"-->
@ -21,7 +18,7 @@
<!-- <el-option v-for="item in billType_list" :key="item.dictKey" :label="item.dictValue"-->
<!-- :value="item.dictKey"></el-option>-->
<!-- </el-select>-->
<el-input v-model="queryParams.params.vehicleName" placeholder="请输入状态" clearable/>
<el-input v-model="queryParams.params.vehicleName" placeholder="请输入状态" clearable/>
</el-form-item>
<el-divider/>
<div class="btn" style="text-align: center;">
@ -34,306 +31,278 @@
<!--Start 项目列表头部-->
<div class="listtop">
<div class="tit">排产车型列表</div>
<pageye
v-show="dataList.length > 0"
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"/>
<pageye v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" :limit.sync="queryParams.size" class="pagination" @pagination="loadList"/>
</div>
<!--End 项目列表头部-->
<!--Start 项目列表-->
<div class="listcon">
<el-table
v-loading="tableLoading"
:data="dataList"
border
style="width: 100%"
@selection-change="handleSelectionChange">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column prop="billNo" label="操作" align="center">
<el-table v-loading="tableLoading" :data="dataList" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50" type="selection" align="center"/>
<el-table-column width="80" label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column width="150" label="操作" align="center">
<template slot-scope="scope">
<span class="bluezi" @click="toInfo(scope.row)">办理</span>
<span class="bluezi" @click="toInfo(scope.row)">查看</span>
<el-button type="primary" size="small" :disabled="scope.row.nodeState=='' ? false : scope.row.nodeState=='排产申请'?false:true" @click="toEdit(scope.row)">办理</el-button>
<el-button type="primary" size="small" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column prop="state" label="状态" align="center"/>
<el-table-column prop="applicationCode" label="排产类型" align="center"/>
<el-table-column prop="applicationCode" label="申请编号" align="center"/>
<el-table-column prop="applicationDate" label="申请日期" align="center"/>
<el-table-column prop="createByName" label="申请人" align="center"/>
<el-table-column prop="remarks" label="备注" align="center"/>
<el-table-column width="150" prop="nodeState" label="状态" align="center"/>
<el-table-column width="150" prop="schedulingType" label="排产类型" align="center"/>
<el-table-column width="200" prop="applicationCode" label="申请编号" align="center"/>
<el-table-column width="150" prop="applicationDate" label="申请日期" align="center"/>
<el-table-column width="150" prop="createByName" label="申请人" align="center"/>
<el-table-column prop="remarks" fit label="备注" align="left" header-align="center"/>
</el-table>
</div>
<!--End 项目列表-->
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination
v-show="dataList.length > 0"
:total="queryParams.total"
:page.sync="queryParams.current"
:limit.sync="queryParams.size"
class="pagination"
@pagination="loadList"
/>
<pagination v-show="dataList.length > 0" :total="queryParams.total" :page.sync="queryParams.current" :limit.sync="queryParams.size" class="pagination" @pagination="loadList"/>
</div>
</div>
<!--End 查询和其列表部分-->
<!--新增修改部分组件-->
<div-add v-show="viewState == 2 || viewState == 3" ref="divadd" @doback="resetState" @reloadlist="loadList"/>
<!--详情部分组件-->
<div-info v-show="viewState == 4" ref="divinfo" @doback="resetState"/>
</div>
</template>
<script>
import req from '@/api/supplychain/busvehicleapply'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divAdd from './cheliangpaichanAdd'
import divInfo from './cheliangpaichanInfo'
import { setuser, getuser } from '@/utils/baocun'
import req from '@/api/supplychain/busvehicleapply'
import ButtonBar from '@/components/ButtonBar'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import divAdd from './cheliangpaichanAdd'
import divInfo from './cheliangpaichanInfo'
export default {
name: 'cheliangpaichan',
components: {
ButtonBar,
Pagination,
pageye,
divAdd,
divInfo
export default {
name: 'cheliangpaichan',
components: {
ButtonBar,
Pagination,
pageye,
divAdd,
divInfo
},
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false, //
tableLoading: false,
//
dataList: [],
// sid
sids: [], // SID
sides: '', // sid
queryParams: {
current: 1,
size: 10,
total: 0,
params: {
applicationDateStart: '',
applicationDateEnd: '',
vehicleName: '' //
}
},
row: {}
}
},
created() {
this.loadList()
},
methods: {
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'toEdit':
this.toEdit()
break
case 'doSubmit':
this.doSubmit()
break
case 'doDel':
this.doDel()
break
case 'doImport':
this.doImport()
break
case 'doExport':
this.doExport()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
this.row = row
this.sides = this.sids.join() // sid
console.log('获取sids数组', this.sids)
},
toAdd(row) {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
toEdit() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行编辑' })
return
}
if (this.sids.length > 1) {
this.$message({ showClose: true, type: 'error', message: '只能选择一条记录进行编辑' })
return
}
this.viewState = 3
const sid = this.sids[0]
const row = this.row
this.$refs['divadd'].showEdit(sid, row)
},
toInfo(row) {
this.viewState = 4
console.log('这是打开详情接口', row)
const sid = row.sid
this.$refs['divinfo'].showInfo(sid, row)
},
//
dosearch() {
this.queryParams.current = 1
this.loadList()
},
data() {
return {
btndisabled: false,
viewState: 1, // 1 2 3 4
isSearchShow: false, //
tableLoading: false,
//
dataList: [],
// sid
sids: [], // SID
sides: '', // sid
queryParams: {
current: 1,
//
resetQuery() {
this.queryParams = {
current: 1,
size: 10,
total: 0,
params: {
applicationDateStart: '',
applicationDateStart: '',
applicationDateEnd: '',
vehicleName:'', //
}
},
row: {}
vehicleName: '' //
}
}
this.dosearch()
},
created() {
this.loadList()
//
loadList() {
const _this = this
this.tableLoading = true
req.listPage(this.queryParams).then(resp => {
console.log('查询列表', resp)
_this.tableLoading = false
const data = resp.data
_this.queryParams.total = data.total
_this.dataList = data.records
}).catch(() => {
_this.tableLoading = false
})
},
methods: {
resetState() {
this.viewState = 1
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'toEdit':
this.toEdit()
break
case 'doSubmit':
this.doSubmit()
break
case 'doDel':
this.doDel()
break
case 'doImport':
this.doImport()
break
case 'doExport':
this.doExport()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
console.log('aaa', row)
const aa = []
row.forEach(element => {
aa.push(element.sid)
setuser(this.sids)
})
this.sids = aa
this.row = row
this.sides = this.sids.join() //sid
console.log('获取sids数组', this.sids)
},
toAdd(row) {
this.viewState = 2
this.$refs['divadd'].showAdd()
},
toEdit() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择一条记录进行编辑' })
return
}
if (this.sids.length > 1) {
this.$message({ showClose: true, type: 'error', message: '只能选择一条记录进行编辑' })
return
}
this.viewState = 3
const sid = this.sids[0]
const row = this.row
this.$refs['divadd'].showEdit(sid, row)
},
doSubmit(row) {
//
this.btndisabled = true
req
.doSubmit(this.queryParams.params, this.sids)
.then(resp => {
console.log(resp)
this.btndisabled = false
})
.catch(() => {
this.btndisabled = false
})
},
doDel(row) {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
doDel(row) {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
.then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
const _this = this
req.delBySids(this.sids).then(resp => {
loading.close()
_this.$message({ type: 'success', message: resp.msg, showClose: true })
_this.loadList()
})
.catch(e => {
loading.close()
})
})
.catch(() => {
})
},
doImport(row) {
//
req
.importExcel(this.queryParams.params, this.sids)
.then(resp => {
console.log(resp)
})
.catch(() => {
})
},
doExport(sids) {
//
req
.exportExcel(this.queryParams.params, this.sids)
.then(resp => {
var map = resp.data
const fileName = map.filename //
// // <a> Firefox Chrome download
// // IE10blobdownload
const link = document.createElement('a') // a
link.download = fileName // a
link.style.display = 'none'
link.href = map.downurl
document.body.appendChild(link)
link.click() //
URL.revokeObjectURL(link.href) // url
document.body.removeChild(link) //
})
.catch(() => {
})
},
dosearch() {
this.queryParams.current = 1
this.loadList()
},
resetQuery() {
this.queryParams.params = {}
this.queryParams.params.sid = '' // sid
this.queryParams.params.name = '' //
this.dosearch()
},
//
loadList() {
const _this = this
this.tableLoading = true
req
.listPage(this.queryParams)
.then(resp => {
console.log('查询列表', resp)
_this.tableLoading = false
const data = resp.data
_this.queryParams.total = data.total
_this.dataList = data.records
// for (var i = 0; i < data.records.length; i++) {
// var timeArr = data.records[i].createTime.split(' ');
// this.dataList[i].createTime = timeArr[0];
// }
})
.catch(() => {
_this.tableLoading = false
})
},
//
indexMethod(index) {
var pagestart = (this.queryParams.current - 1) * this.queryParams.size
var pageindex = index + 1 + pagestart
return pageindex
},
toInfo(row) {
this.viewState = 4
console.log('这是打开详情接口', row)
const sid = row.sid
this.$refs['divinfo'].showInfo(sid, row)
}
req.delBySids(this.sids).then(resp => {
loading.close()
_this.$message({ type: 'success', message: resp.msg, showClose: true })
_this.loadList()
}).catch(e => {
loading.close()
})
}).catch(() => {})
},
//
resetState() {
this.viewState = 1
this.loadList()
},
doSubmit(row) {
//
this.btndisabled = true
req.doSubmit(this.queryParams.params, this.sids).then(resp => {
console.log(resp)
this.btndisabled = false
}).catch(() => {
this.btndisabled = false
})
},
doImport(row) {
//
req.importExcel(this.queryParams.params, this.sids).then(resp => {
console.log(resp)
}).catch(() => {})
},
doExport(sids) {
//
req.exportExcel(this.queryParams.params, this.sids).then(resp => {
var map = resp.data
const fileName = map.filename //
// // <a> Firefox Chrome download
// // IE10blobdownload
const link = document.createElement('a') // a
link.download = fileName // a
link.style.display = 'none'
link.href = map.downurl
document.body.appendChild(link)
link.click() //
URL.revokeObjectURL(link.href) // url
document.body.removeChild(link) //
}).catch(() => {})
}
}
}
</script>
<style scoped>
.bluezi {
padding-left: 5px;
}
.line {
display: inline-block;
margin: 0px 15px;
}
.listtop {
display: flex;
justify-content: space-between;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.tit {
margin-bottom: -10px;
}
.line {
display: inline-block;
margin: 0px 15px;
}
.formItem {
margin-right: 28px;
}
.pagination {
margin-bottom: -10px;
}
.formItem {
margin-right: 28px;
}
</style>

521
anrui-scm/anrui-scm-ui/src/views/supplychain/vehicle/cheliangpaichan/cheliangpaichanAdd.vue

@ -1,173 +1,182 @@
<template>
<div class="app-container">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="dialogStatus === 'add' ? saveAdd() : saveEdit()">保存</el-button>
<el-button type="primary" size="small" @click="dialogStatus === 'create' ? saveAdd() : saveEdit()">提交</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>销售出库单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="单据编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="制单人:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.createByName" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="制单日期:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationDate" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="排产类型:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-select v-model="formobj.schedulingType" placeholder="请选择" @change="changeSchedulingType" clearable>
<el-option v-for="item in schedulingType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row class="linethree">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">排产车型列表</div>
<div style="margin-left: 15px">
<el-button type="primary" size="small" icon="el-icon-plus" @click="addCommodity()">新增</el-button>
<div v-show="viewState== 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="dialogStatus === 'add' ? saveAdd() : saveEdit()">保存
</el-button>
<el-button type="primary" size="small" @click="submitVehicleApply()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<el-table :key="tableKey" :data="formobj.busVehicleApplyDetailDtoList" :index="index" show-summary :summary-method="getSummaries" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="80px" align="center" header-align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="dataDelete(scope.$index, formobj.busVehicleApplyDetailDtoList[scope.$index])">删除</el-button>
</template>
</el-table-column>
<el-table-column label="车型" width="300" header-align="center">
<template slot-scope="scope" prop="vehicleName">
<el-select v-model="scope.row.vehicleName" placeholder="请选择" style="width: 270px" @change="changeVehicle(scope.row)" clearable>
<el-option v-for="item in vehicle_list" :key="item.sid" :label="item.modelName" :value="item.modelName"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="常用配置" width="300" header-align="center">
<template slot-scope="scope" prop="configName">
<span>{{ scope.row.configName }}</span>
</template>
</el-table-column>
<el-table-column label="排产数量" header-align="center">
<template slot-scope="scope" prop="quantity">
<el-input v-model="scope.row.quantity" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column prop="useDeposit" label="使用订金" header-align="center">
<template slot-scope="scope" prop="useDeposit">
<el-input v-model="scope.row.useDeposit" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column prop="applyForDeposit" label="申请订金" header-align="center">
<template slot-scope="scope" prop="applyForDeposit">
<el-input v-model="scope.row.applyForDeposit" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column label="销售指导价" header-align="center">
<template slot-scope="scope" prop="saleGuPrice">
<el-input v-model="scope.row.saleGuPrice" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
</el-table>
<div>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">订金使用情况</div>
</div>
<el-form ref="formobj" :model="formobj" label-width="130px" label-position="top" class="formadd">
<el-row>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="当前订金金额"></el-form-item>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>排产申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.quantity" placeholder="" clearable/>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次需使用金额"></el-form-item>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="5">
<el-form-item>
{{ useMoney }}
<el-input v-model="formobj.createByName" readonly/>
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次申请金额"></el-form-item>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请日期:"></el-form-item>
</el-col>
<el-col :span="4">
<el-col :span="5">
<el-form-item>
{{ applyMoney }}
<el-input v-model="formobj.applicationDate" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="排产类型:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-select v-model="formobj.schedulingType" placeholder="请选择" clearable>
<el-option v-for="item in schedulingType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row class="linethree">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">排产车型列表</div>
<div style="margin-left: 15px">
<el-button type="primary" size="small" icon="el-icon-plus" @click="addCommodity()">添加</el-button>
</div>
</div>
<el-table :key="tableKey" :data="formobj.busVehicleApplyDetailDtoList" :index="index" show-summary :summary-method="getSummaries" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="80px" align="center" header-align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="dataDelete(scope.$index, formobj.busVehicleApplyDetailDtoList[scope.$index])">删除
</el-button>
</template>
</el-table-column>
<el-table-column label="车型" align="left" header-align="center" width="250">
<template slot-scope="scope" prop="vehicleName">
<span>{{ scope.row.vehicleName }}</span>
</template>
</el-table-column>
<el-table-column label="常用配置" align="left" header-align="center">
<template slot-scope="scope" prop="configName">
<span>{{ scope.row.configName }}</span>
</template>
</el-table-column>
<el-table-column label="排产数量" header-align="center" width="130">
<template slot-scope="scope" prop="quantity">
<el-input v-model="scope.row.quantity" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column prop="useDeposit" label="使用订金" header-align="center" width="150">
<template slot-scope="scope" prop="useDeposit">
<el-input v-model="scope.row.useDeposit" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column prop="applyForDeposit" label="申请订金" header-align="center" width="150">
<template slot-scope="scope" prop="applyForDeposit">
<el-input v-model="scope.row.applyForDeposit" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column label="销售指导价" header-align="center" width="150">
<template slot-scope="scope" prop="saleGuPrice">
<el-input v-model="scope.row.saleGuPrice" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center" width="200">
<template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
</el-table>
<div>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">订金使用情况</div>
</div>
<el-form ref="formobj" :model="formobj" label-width="130px" label-position="top" class="formadd">
<el-row>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="当前订金金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-input v-model="formobj.currentAmount" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次需使用金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ useMoney }}
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次申请金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ applyMoney }}
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
<!--End 添加修改部分-->
<!--选择车型和常用配置-->
<configuration v-show="viewState == 2" ref="divconfiguration" @backData="backData" @doback="closePage"/>
</div>
</template>
<script>
import req from '@/api/supplychain/busvehicleapply'
import configuration from './chexingbyconfiguration'
export default {
name: 'cheliangpaichanAdd',
components: {
configuration
},
data() {
return {
viewTitle: '',
dialogStatus: '',
viewState: 1,
index: 0,
tableKey: 0,
//
schedulingType_list: [], // 使
vehicle_list: [], //
list1: [],
useMoney: '', // 使
applyMoney: '', //
//
@ -179,20 +188,8 @@ export default {
applicationDate: '', //
schedulingType: '', //
remarks: '', //
busVehicleApplyDetailDtoList: [
{
quantity: '',
applySid: '',
configSid: '',
configName: '',
useDeposit: '',
applyForDeposit: '',
remarks: '',
saleGuPrice: '',
vehicleName: '',
vehicleSid: ''
}
]
currentAmount: '', //
busVehicleApplyDetailDtoList: []
},
rules: {},
submitdisabled: false
@ -200,7 +197,6 @@ export default {
},
created() {
this.getSchedulingType()
this.getCheXing()
},
// computed: {
// sumUseDeposit() {
@ -209,93 +205,25 @@ export default {
// }
// },
methods: {
// - changeSchedulingType
// -
getSchedulingType() {
req.pullDown({ type: 'schedulingType' }).then((res) => {
if (res.code == "200") {
if (res.code == '200') {
this.schedulingType_list = res.data
console.log('下拉框请求111', res.data)
}
})
},
changeSchedulingType(value) {
console.log('触发下拉框按钮')
let bb = {}
this.schedulingType_list.forEach((e) => {
if (e.dictKey == value) {
bb = {
type: e.dictType,
name: e.dictValue,
key: e.dictKey,
sid: e.sid
}
}
})
this.formobj.schedulingType = bb.name
// this.formobj.scmOtherInboundDto.billType = bb.sid
console.log('name', this.formobj.schedulingType)
},
//
getCheXing() {
req.selectDown().then((res) => {
if (res.code == "200") {
this.vehicle_list = res.data
}
})
},
changeVehicle(row) {
let bb = {}
this.vehicle_list.forEach((e) => {
if (e.modelName == row.vehicleName) {
bb = {
name: e.modelName,
sid: e.sid
}
}
})
console.log('车型sid', bb.sid)
req.getList({ vehicleSid: bb.sid }).then((res) => {
console.log('车型', res)
if (res.code == "200") {
this.configName_list = res.data
}
})
},
//
addCommodity() {
this.formobj.busVehicleApplyDetailDtoList.push({
quantity: '',
applySid: '',
configSid: '',
configName: '',
useDeposit: '',
applyForDeposit: '',
remarks: '',
saleGuPrice: '',
vehicleName: '',
vehicleSid: ''
})
this.viewState = 2
this.$refs['divconfiguration'].showData(this.list1)
},
//
dataDelete(index, row) {
this.formobj.busVehicleApplyDetailDtoList.splice(index, 1)
this.list1.splice(index, 1)
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.schedulingType = '' //
this.formobj.depositPayment = '' // 使
this.formobj.remarks = '' //
this.formobj.busVehicleApplyDetailDtoList = [{}]
this.refreshItem++
this.$refs['form_obj'].resetFields()
this.$emit('doback')
},
showAdd() {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
@ -303,7 +231,6 @@ export default {
this.dialogStatus = 'add'
this.viewTitle = '【新增】排产申请'
},
showEdit(sid, row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
@ -312,69 +239,85 @@ export default {
this.viewTitle = '【编辑】排产申请'
console.log('编辑回显', sid)
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.applicationDate = data.applicationDate
this.formobj.schedulingType = data.schedulingType
this.formobj.depositPayment = data.depositPayment
this.formobj.remarks = data.remarks
this.formobj.sid = sid
this.formobj.busVehicleApplyDetailDtoList = data.busVehicleApplyDetailVoList
}).catch((e) => {
this.formobj = row
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.applicationDate = data.applicationDate
this.formobj.schedulingType = data.schedulingType
this.formobj.remarks = data.remarks
this.formobj.currentAmount = data.currentAmount
this.formobj.sid = sid
this.formobj.busVehicleApplyDetailDtoList = data.busVehicleApplyDetailVoList
this.list1 = data.busVehicleApplyDetailVoList
}).catch((e) => {
this.formobj = row
})
},
// --
backData(value) {
this.viewState = 1
// this.formobj.busVehicleApplyDetailDtoList = []
if (this.formobj.busVehicleApplyDetailDtoList.length > 0) {
for (var i = 0; i < value.length; i++) {
for (var u = 0; u < this.formobj.busVehicleApplyDetailDtoList.length; u++) {
if (value[i].modelName == this.formobj.busVehicleApplyDetailDtoList[u].vehicleName && value[i].configName == this.formobj.busVehicleApplyDetailDtoList[u].configName) {
value.splice(value[i], 1)
}
}
}
}
if (value.length > 0) {
value.forEach((e) => {
this.formobj.busVehicleApplyDetailDtoList.push({
quantity: '',
applySid: '',
configSid: e.configurationItemsSid,
configName: e.configName,
useDeposit: '',
applyForDeposit: '',
remarks: '',
saleGuPrice: '',
vehicleName: e.modelName,
vehicleSid: e.modelSid
})
})
this.list1 = this.formobj.busVehicleApplyDetailDtoList
}
},
saveAdd() {
const _this = this
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req
.saveAdd(this.formobj)
.then((resp) => {
this.submitdisabled = false
if (resp.code === '200') {
this.$notify({
title: '提示',
message: '添加成功',
type: 'success',
duration: 2000
})
_this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
_this.handleReturn('true')
}
})
.catch(() => {
this.submitdisabled = false
})
req.saveAdd(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.code == '200') {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
saveEdit() {
const _this = this
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req
.saveEdit(this.formobj, this.formobj.sid)
.then((resp) => {
req.saveEdit(this.formobj).then((resp) => {
this.submitdisabled = false
_this.$message({
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
_this.handleReturn('true')
})
.catch(() => {
this.handleReturn('true')
}).catch(() => {
this.submitdisabled = false
})
} else {
@ -382,9 +325,40 @@ export default {
}
})
},
submitVehicleApply() {
req.submitVehicleApply(this.formobj).then((res) => {
if (res.code == '200') {
this.$message({
showClose: true,
type: 'success',
message: '提交成功'
})
this.handleReturn('true')
} else {
this.$message({
showClose: true,
type: 'error',
message: '提交失败'
})
}
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.schedulingType = '' //
this.formobj.remarks = '' //
this.formobj.currentAmount = ''
this.formobj.applicationCode = ''
this.formobj.applicationDate = ''
this.formobj.busVehicleApplyDetailDtoList = []
this.list1 = []
this.$refs['form_obj'].resetFields()
this.$refs['divconfiguration'].getList()
this.$emit('doback')
},
//
getSummaries(param) {
console.log(123123)
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
@ -404,7 +378,7 @@ export default {
}, 0)
sums[index] += ''
this.useMoney = sums[index] += ''
} else if (column.property === 'applyForDeposit'){
} else if (column.property === 'applyForDeposit') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
@ -433,6 +407,9 @@ export default {
}
})
return sums
},
closePage() {
this.viewState = 1
}
}
}
@ -444,31 +421,24 @@ export default {
font-size: 28px;
line-height: 90px;
}
.lineone {
border-bottom: 2px solid #e0e3eb;
}
.lineone .el-form-item {
margin-bottom: -10px;
}
.lineone >>> .el-input__inner {
border: 0;
}
.linetwo {
margin-top: 10px;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linethree .el-form-item {
margin-bottom: 0px !important;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
@ -477,7 +447,6 @@ export default {
border: 1px solid #dfe4ed;
height: 40px;
}
.el-form-item-right {
/* padding: 0 10px 0 0; */
text-align: right;

456
anrui-scm/anrui-scm-ui/src/views/supplychain/vehicle/cheliangpaichan/cheliangpaichanInfo.vue

@ -1,207 +1,305 @@
<template>
<div class="app-container">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>详情排产申请</div>
<!--start 详情按钮-->
<div>
<el-button itype="info" size="small" @click="handleReturn()">返回</el-button>
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<!--end 详情按钮-->
</div>
<!--标题按钮部分结束-->
<div class="listconadd"><!-- -->
<div class="title">排产申请</div>
<el-form ref="form_obj" :model="formobj" :inline="true" label-width="120px">
<div style="border-bottom: 2px solid #e0e3eb; height: 40px;">
<!--第一行-->
<el-row>
<el-col :span="10" style="margin-left: 80px; height: 20px;">
<el-form-item label="单据编号:">{{ formobj.applicationCode }}</el-form-item>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>排产申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="6" style=" height: 20px;">
<el-form-item label="制单人:">{{ formobj.makeListName }}</el-form-item>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="5" style=" height: 20px;">
<el-form-item label="制单日期:">{{ formobj.applicationDate }}</el-form-item>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col>
</el-row>
</div>
<div class="invoiceadd" style="margin-top: 5px;">
<el-row>
<el-col :span="24">
<el-form-item prop="schedulingType" label="排产类型">
<el-input v-model="formobj.schedulingType" placeholder="" class="addinputw"
readonly/>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.createByName" readonly/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="depositPayment" label="排产订金使用">
<el-input v-model="formobj.depositPayment" placeholder="" class="addinputw"
readonly/>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请日期:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationDate" readonly/>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item prop="remarks" label="备注">
<el-input v-model="formobj.remarks" placeholder="" class="addinputw"
readonly/>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="排产类型:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.schedulingType" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linethree">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" readonly/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">排产车型列表</div>
</div>
<div class="addtable">
<div class="tabletitle">
<div class="titlename">
货物明细
</div>
<el-table :key="tableKey" :data="formobj.busVehicleApplyDetailDtoList" :index="index" show-summary :summary-method="getSummaries" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车型" align="left" header-align="center" width="250">
<template slot-scope="scope" prop="vehicleName">
<span>{{ scope.row.vehicleName }}</span>
</template>
</el-table-column>
<el-table-column label="常用配置" align="left" header-align="center">
<template slot-scope="scope" prop="configName">
<span>{{ scope.row.configName }}</span>
</template>
</el-table-column>
<el-table-column label="排产数量" header-align="center" width="130">
<template slot-scope="scope" prop="quantity">
<span>{{ scope.row.quantity }}</span>
</template>
</el-table-column>
<el-table-column prop="useDeposit" label="使用订金" header-align="center" width="150">
<template slot-scope="scope" prop="useDeposit">
<span>{{ scope.row.useDeposit }}</span>
</template>
</el-table-column>
<el-table-column prop="applyForDeposit" label="申请订金" header-align="center" width="150">
<template slot-scope="scope" prop="applyForDeposit">
<span>{{ scope.row.applyForDeposit }}</span>
</template>
</el-table-column>
<el-table-column label="销售指导价" header-align="center" width="150">
<template slot-scope="scope" prop="saleGuPrice">
<span>{{ scope.row.saleGuPrice }}</span>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center" width="200">
<template slot-scope="scope" prop="remarks">
<span>{{ scope.row.remarks }}</span>
</template>
</el-table-column>
</el-table>
<div>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">订金使用情况</div>
</div>
<template class="tablelist">
<!-- :rules="rules" <el-table :data="tableData" :index="index" border tyle="width: 100%">-->
<el-table
:data="formobj.busVehicleApplyDetailVoList"
:index="index"
border
style="width: 100%"> <!-- show-summary :summary-method="getSummaries" -->
<el-table-column
align="center"
label="序号"
type="index"
width="50"/>
<el-table-column prop="vehicleName" width="210" label="车型" align="center">
<template slot-scope="props">
<span>{{props.row.vehicleName}}</span>
</template>
</el-table-column>
<el-table-column prop="configName" width="210" label="简述配置" align="center">
<template slot-scope="props">
<!-- <el-input v-model="props.row.mName" style="width:120px;" class="tableinput"/>-->
<span>{{props.row.configName}}</span>
</template>
</el-table-column>
<el-table-column prop="spOrDiConDes" width="300" label="特殊或差异配置说明" align="center">
<template slot-scope="props">
<el-input v-model="props.row.spOrDiConDes" style="width:203px;" class="tableinput"/>
<!-- <span>{{props.row.model}}</span>-->
</template>
</el-table-column>
<el-table-column prop="actualQuantity" width="180" label="排产数量" align="center">
<template slot-scope="props">
<el-input v-model="props.row.actualQuantity" style="width:150px;" class="tableinput"/>
<!--<span>{{props.row.count}}</span>-->
</template>
</el-table-column>
<el-table-column prop="proSchDep" width="180" label="排产订金" align="center">
<template slot-scope="props">
<el-input v-model="props.row.proSchDep" style="width:150px;" class="tableinput"/>
<!-- <span>{{props.row.leviedSubtotal}}</span>-->
</template>
</el-table-column>
<el-table-column prop="saleGuPrice " width="180" label="销售指导价" align="center">
<template slot-scope="props">
<el-input v-model="props.row.saleGuPrice " style="width:150px;" class="tableinput"/>
<!-- <span>{{props.row.company}}</span>-->
</template>
</el-table-column>
<el-table-column prop="remarks" width="280" label="备注" align="center">
<template slot-scope="props">
<el-input v-model="props.row.remarks" style="width:180px;" class="tableinput"/>
<!-- <span>{{props.row.remarks}}</span>-->
</template>
</el-table-column>
</el-table>
</template>
<el-form ref="formobj" :model="formobj" label-width="130px" label-position="top" class="formadd">
<el-row>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="当前订金金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ formobj.currentAmount }}
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次需使用金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ useMoney }}
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次申请金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ applyMoney }}
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
</div>
</template>
<script>
import req from '@/api/supplychain/busvehicleapply'
export default {
name: 'cheliangpaichanInfo',
data() {
return {
viewTitle: '',
index: 0,
viewState: 4,
formobj: {
sid: '', // sid
createBySid: window.sessionStorage.getItem('userSid'), // sid
orgSid: window.sessionStorage.getItem('orgSid'), // sid
orgName: window.sessionStorage.getItem('departmentName'), //
makeListName: window.sessionStorage.getItem('name'),//
applicationCode:'',
applicationDate:'',
schedulingType: '',//
depositPayment: '', // 使
remarks: '', //
busVehicleApplyDetailDtoList: [{
vehicleName: '', //
configName: '', //
spOrDiConDes: '', //
actualQuantity: '', //
proSchDep: '', //
saleGuPrice: '', //
remarks:'' //
}]
},
}
},
methods: {
handleReturn() {
this.formobj.scmOtherInboundDto = {}
this.formobj.scmOtherInboundDetailDto = [{}]
this.$emit('doback')
},
showInfo(sid, row) {
this.viewTitle = '其他入库单详情'
const _this = this
console.log('详情页面', sid)
req.fetchBySid(sid).then(resp => {
const data = resp.data
// this.formobj = data
this.formobj.applicationCode = data.applicationCode
this.formobj.applicationDate = data.applicationDate
this.formobj.schedulingType = data.schedulingType
this.formobj.depositPayment = data.depositPayment
this.formobj.remarks = data.remarks
this.formobj.sid = sid
// //
this.formobj.busVehicleApplyDetailVoList = data.busVehicleApplyDetailVoList
}).catch(e => {
this.formobj = row
})
import req from '@/api/supplychain/busvehicleapply'
export default {
name: 'cheliangpaichanInfo',
data() {
return {
viewTitle: '',
index: 0,
tableKey: 0,
useMoney: '', // 使
applyMoney: '', //
//
formobj: {
sid: '', // sid
createBySid: window.sessionStorage.getItem('userSid'), // sid
createByName: window.sessionStorage.getItem('name'), //
applicationCode: '', //
applicationDate: '', //
schedulingType: '', //
remarks: '', //
currentAmount: '', //
busVehicleApplyDetailDtoList: []
},
rules: {}
}
},
methods: {
showInfo(sid, row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '排产申请详情'
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.applicationDate = data.applicationDate
this.formobj.schedulingType = data.schedulingType
this.formobj.remarks = data.remarks
this.formobj.currentAmount = data.currentAmount
this.formobj.sid = sid
this.formobj.busVehicleApplyDetailDtoList = data.busVehicleApplyDetailVoList
}).catch((e) => {
this.formobj = row
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.schedulingType = '' //
this.formobj.remarks = '' //
this.formobj.currentAmount = ''
this.formobj.createByName = ''
this.formobj.createBySid = ''
this.formobj.applicationCode = ''
this.formobj.applicationDate = ''
this.formobj.busVehicleApplyDetailDtoList = []
this.list1 = []
this.$refs['form_obj'].resetFields()
this.$emit('doback')
},
//
getSummaries(param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计'
return
}
const values = data.map(item => Number(item[column.property]))
if (column.property === 'useDeposit') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.useMoney = sums[index] += ''
} else if (column.property === 'applyForDeposit') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.applyMoney = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
}
})
return sums
}
}
}
</script>
<style scoped>
/* 利用穿透,设置input边框隐藏 */
.invoiceadd >>> .el-input__inner {
border: 0;
border-bottom: 1px solid #e0e3eb !important;
}
/* 如果你的 el-input type 设置成textarea ,就要用这个了 */
/*.invoiceadd>>>.el-textarea__inner {
border: 0;
resize: none;!* 这个是去掉 textarea 下面拉伸的那个标志如下图 *!
}*/
.invoiceadd >>> .el-form-item__content {
margin-left: 0 !important;
}
.el-input {
width: 230px;
}
.el-col .el-form-item {
margin-bottom: 10px;
}
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.lineone {
border-bottom: 2px solid #e0e3eb;
}
.lineone .el-form-item {
margin-bottom: -10px;
}
.lineone >>> .el-input__inner {
border: 0;
}
.linetwo {
margin-top: 10px;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.linethree .el-form-item {
margin-bottom: 0px !important;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: start;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.el-form-item-right {
text-align: right;
}
.formadd{
padding: 0px !important;
}
.icon {
color: #e84026;
margin-right: 4px;
}
</style>

191
anrui-scm/anrui-scm-ui/src/views/supplychain/vehicle/cheliangpaichan/chexingbyconfiguration.vue

@ -0,0 +1,191 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>车型常用列表</div>
<div>
<el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="webcon">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="客户名称:">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable class="filter-item"/>
</el-form-item>
<el-form-item label="合同编号:">
<el-input v-model="listQuery.params.contractNo" placeholder="" clearable class="filter-item"/>
</el-form-item>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handresetting">重置</el-button>
</div>
</el-form>
</div>
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="编号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="车型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="常用配置" align="center">
<template slot-scope="scope">
<span>{{ scope.row.configName }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import req from '@/api/supplychain/busvehicleapply'
export default {
name: "chexingbyconfiguration",
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
showbackState: 30,
sids: [],
list: [],
datalist: [],
number: '',
listLoading: false,
listQuery: {
current: 1,
size: 10,
params: {
contractNo: '',
customerName: ''
},
total: 1
}
}
},
created() {
//
this.init()
//
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
init() {
this.getList()
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
handleReturn() {
this.$emit('doback')
},
//
getList() {
this.listLoading = true
req.configurationlistPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.code == '200') {
this.listQuery.total = response.data.total
this.list = response.data.records
}
})
},
//
handleFilter() {
this.getList()
},
//
handresetting() {
this.listQuery = {
current: 1,
size: 10,
params: {
contractNo: '',
customerName: ''
},
total: 0
}
this.getList()
},
handleSelectionChange(row) {
this.sids = []
const aa = []
row.forEach((element) => {
aa.push({
modelName: element.modelName,
modelSid: element.modelSid,
configName: element.configName,
configurationItemsSid: element.configurationItemsSid
})
})
this.sids = aa
},
showData(value) {
if (value.length > 0){
for (var i = 0; i < value.length; i++) {
this.datalist.push(value[i])
}
} else {
this.datalist = []
}
if (this.datalist.length > 0) {
for (var j = 0; j < this.datalist.length; j++) {
for (var k = 0; k < this.list.length; k++) {
if (this.datalist[j].vehicleName == this.list[k].modelName && this.datalist[j].configName == this.list[k].configName) {
this.$refs.multipleTable.toggleRowSelection(this.list[k], true)
}
}
}
} else {
this.$refs.multipleTable.clearSelection()
}
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
} else {
this.$notify({
title: '提示',
message: '请选择至少一条记录进行删除操作!',
type: 'error',
duration: 2000
})
}
}
}
}
</script>
<style scoped>
</style>

455
anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanEdit.vue

@ -0,0 +1,455 @@
<template>
<div class="app-container">
<div v-show="viewState== 1">
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="dialogStatus === 'add' ? saveAdd() : saveEdit()">保存
</el-button>
<el-button type="primary" size="small" @click="submitVehicleApply()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>排产申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.createByName" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请日期:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationDate" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="排产类型:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-select v-model="formobj.schedulingType" placeholder="请选择" clearable>
<el-option v-for="item in schedulingType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row class="linethree">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">排产车型列表</div>
<div style="margin-left: 15px">
<el-button type="primary" size="small" icon="el-icon-plus" @click="addCommodity()">添加</el-button>
</div>
</div>
<el-table :key="tableKey" :data="formobj.busVehicleApplyDetailDtoList" :index="index" show-summary :summary-method="getSummaries" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="80px" align="center" header-align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="dataDelete(scope.$index, formobj.busVehicleApplyDetailDtoList[scope.$index])">删除
</el-button>
</template>
</el-table-column>
<el-table-column label="车型" align="left" header-align="center" width="250">
<template slot-scope="scope" prop="vehicleName">
<span>{{ scope.row.vehicleName }}</span>
</template>
</el-table-column>
<el-table-column label="常用配置" align="left" header-align="center">
<template slot-scope="scope" prop="configName">
<span>{{ scope.row.configName }}</span>
</template>
</el-table-column>
<el-table-column label="排产数量" header-align="center" width="130">
<template slot-scope="scope" prop="quantity">
<el-input v-model="scope.row.quantity" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column prop="useDeposit" label="使用订金" header-align="center" width="150">
<template slot-scope="scope" prop="useDeposit">
<el-input v-model="scope.row.useDeposit" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column prop="applyForDeposit" label="申请订金" header-align="center" width="150">
<template slot-scope="scope" prop="applyForDeposit">
<el-input v-model="scope.row.applyForDeposit" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column label="销售指导价" header-align="center" width="150">
<template slot-scope="scope" prop="saleGuPrice">
<el-input v-model="scope.row.saleGuPrice" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center" width="150">
<template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
</el-table>
<div>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">订金使用情况</div>
</div>
<el-form ref="formobj" :model="formobj" label-width="130px" label-position="top" class="formadd">
<el-row>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="当前订金金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
<el-input v-model="formobj.currentAmount" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次需使用金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ useMoney }}
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次申请金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ applyMoney }}
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
<!--End 添加修改部分-->
<!--选择车型和常用配置-->
<configuration v-show="viewState == 2" ref="divconfiguration" @backData="backData" @doback="closePage"/>
</div>
</template>
<script>
import req from '@/api/supplychain/busvehicleapply'
import configuration from './chexingbyconfiguration'
export default {
name: 'cheliangpaichanEdit',
components: {
configuration
},
data() {
return {
viewTitle: '',
dialogStatus: '',
viewState: 1,
index: 0,
tableKey: 0,
//
schedulingType_list: [], // 使
list1: [],
useMoney: '', // 使
applyMoney: '', //
//
formobj: {
sid: '', // sid
createBySid: window.sessionStorage.getItem('userSid'), // sid
createByName: window.sessionStorage.getItem('name'), //
applicationCode: '', //
applicationDate: '', //
schedulingType: '', //
remarks: '', //
currentAmount: '', //
busVehicleApplyDetailDtoList: []
},
rules: {},
submitdisabled: false
}
},
created() {
console.log('url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // ?
var b = window.location.href.indexOf('#data') // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
this.showInfo(sid)
this.getSchedulingType()
},
methods: {
// -
getSchedulingType() {
req.pullDown({ type: 'schedulingType' }).then((res) => {
if (res.code == '200') {
this.schedulingType_list = res.data
console.log('下拉框请求111', res.data)
}
})
},
//
addCommodity() {
this.viewState = 2
this.$refs['divconfiguration'].showData(this.list1)
},
//
dataDelete(index, row) {
this.formobj.busVehicleApplyDetailDtoList.splice(index, 1)
this.list1.splice(index, 1)
},
showInfo(sid, row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.dialogStatus = 'edit'
this.viewTitle = '【编辑】排产申请'
console.log('编辑回显', sid)
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.applicationDate = data.applicationDate
this.formobj.schedulingType = data.schedulingType
this.formobj.remarks = data.remarks
this.formobj.currentAmount = data.currentAmount
this.formobj.sid = sid
this.formobj.busVehicleApplyDetailDtoList = data.busVehicleApplyDetailVoList
this.list1 = data.busVehicleApplyDetailVoList
}).catch((e) => {
this.formobj = row
})
},
// --
backData(value) {
this.viewState = 1
// this.formobj.busVehicleApplyDetailDtoList = []
if (this.formobj.busVehicleApplyDetailDtoList.length > 0) {
for (var i = 0; i < value.length; i++) {
for (var u = 0; u < this.formobj.busVehicleApplyDetailDtoList.length; u++) {
if (value[i].modelName == this.formobj.busVehicleApplyDetailDtoList[u].vehicleName && value[i].configName == this.formobj.busVehicleApplyDetailDtoList[u].configName) {
value.splice(value[i], 1)
}
}
}
}
if (value.length > 0) {
value.forEach((e) => {
this.formobj.busVehicleApplyDetailDtoList.push({
quantity: '',
applySid: '',
configSid: e.configurationItemsSid,
configName: e.configName,
useDeposit: '',
applyForDeposit: '',
remarks: '',
saleGuPrice: '',
vehicleName: e.modelName,
vehicleSid: e.modelSid
})
})
this.list1 = this.formobj.busVehicleApplyDetailDtoList
}
},
saveAdd() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveAdd(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.code == '200') {
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
saveEdit() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveEdit(this.formobj).then((resp) => {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
submitVehicleApply() {
console.log(this.formobj,858585)
req.submitVehicleApply(this.formobj).then((res) => {
if (res.code == '200') {
this.$message({
showClose: true,
type: 'success',
message: '提交成功'
})
} else {
this.$message({
showClose: true,
type: 'error',
message: '提交失败'
})
}
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.schedulingType = '' //
this.formobj.remarks = '' //
this.formobj.currentAmount = ''
this.formobj.applicationCode = ''
this.formobj.applicationDate = ''
this.formobj.busVehicleApplyDetailDtoList = []
this.list1 = []
this.$refs['form_obj'].resetFields()
this.$refs['divconfiguration'].getList()
this.$emit('doback')
},
//
getSummaries(param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计'
return
}
const values = data.map(item => Number(item[column.property]))
if (column.property === 'useDeposit') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.useMoney = sums[index] += ''
} else if (column.property === 'applyForDeposit') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.applyMoney = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
}
})
return sums
},
closePage() {
this.viewState = 1
}
}
}
</script>
<style scoped>
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.lineone {
border-bottom: 2px solid #e0e3eb;
}
.lineone .el-form-item {
margin-bottom: -10px;
}
.lineone >>> .el-input__inner {
border: 0;
}
.linetwo {
margin-top: 10px;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linethree .el-form-item {
margin-bottom: 0px !important;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: start;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.el-form-item-right {
/* padding: 0 10px 0 0; */
text-align: right;
}
.formadd{
padding: 0px !important;
}
.icon {
color: #e84026;
margin-right: 4px;
}
</style>

529
anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanInfo.vue

@ -0,0 +1,529 @@
<template>
<div class="app-container">
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button v-show="transactState=='00'" type="primary" @click="openAgree"> </el-button>
<el-button v-show="transactState=='00'" type="danger" @click="openReject"> </el-button>
<el-button v-show="transactState=='00'" type="danger" @click="openStop"> </el-button>
<el-button v-show="transactState=='01'" type="danger" @click="openRevoke"> </el-button>
<el-button type="info" @click="centerDialogVisible = false"> </el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>排产申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.createByName" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请日期:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationDate" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="排产类型:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.schedulingType" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linethree">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" readonly/>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div v-show="transactState=='00'">
<!-- <div class="diaTitle"><i class="el-icon-chat-line-square"></i><span>审批意见</span></div>-->
<el-form :model="dialogList" :inline="true" label-width="80px">
<el-row>
<el-col>
<el-form-item label="审批意见">
<el-input v-model="dialogList.comment" type="textarea" maxlength="20" placeholder="请输入审批意见" class="inputType" clearable/>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">排产车型列表</div>
</div>
<el-table :key="tableKey" :data="formobj.busVehicleApplyDetailDtoList" :index="index" show-summary :summary-method="getSummaries" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车型" align="left" header-align="center" width="250">
<template slot-scope="scope" prop="vehicleName">
<span>{{ scope.row.vehicleName }}</span>
</template>
</el-table-column>
<el-table-column label="常用配置" align="left" header-align="center">
<template slot-scope="scope" prop="configName">
<span>{{ scope.row.configName }}</span>
</template>
</el-table-column>
<el-table-column label="排产数量" header-align="center" width="130">
<template slot-scope="scope" prop="quantity">
<span>{{ scope.row.quantity }}</span>
</template>
</el-table-column>
<el-table-column prop="useDeposit" label="使用订金" header-align="center" width="150">
<template slot-scope="scope" prop="useDeposit">
<span>{{ scope.row.useDeposit }}</span>
</template>
</el-table-column>
<el-table-column prop="applyForDeposit" label="申请订金" header-align="center" width="150">
<template slot-scope="scope" prop="applyForDeposit">
<span>{{ scope.row.applyForDeposit }}</span>
</template>
</el-table-column>
<el-table-column label="销售指导价" header-align="center" width="150">
<template slot-scope="scope" prop="saleGuPrice">
<span>{{ scope.row.saleGuPrice }}</span>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center" width="200">
<template slot-scope="scope" prop="remarks">
<span>{{ scope.row.remarks }}</span>
</template>
</el-table-column>
</el-table>
<div>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">订金使用情况</div>
</div>
<el-form ref="formobj" :model="formobj" label-width="130px" label-position="top" class="formadd">
<el-row>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="当前订金金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ formobj.currentAmount }}
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次需使用金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ useMoney }}
</el-form-item>
</el-col>
<el-col :span="4" class="el-form-item-right">
<el-form-item label="本次申请金额"></el-form-item>
</el-col>
<el-col :span="4">
<el-form-item>
{{ applyMoney }}
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</div>
<!--End 添加修改部分-->
</div>
</template>
<script>
import req from '@/api/supplychain/busvehicleapply'
import { businessAgree, rejectTask, breakTask, revokeTask } from '@/api/flow/todo'
export default {
name: 'cheliangpaichanInfo',
data() {
return {
viewTitle: '',
index: 0,
tableKey: 0,
useMoney: '', // 使
applyMoney: '', //
dialogList: {
comment: ''
},
//
formobj: {
sid: '', // sid
createBySid: window.sessionStorage.getItem('userSid'), // sid
createByName: window.sessionStorage.getItem('name'), //
applicationCode: '', //
applicationDate: '', //
schedulingType: '', //
remarks: '', //
currentAmount: '', //
busVehicleApplyDetailDtoList: []
},
transactState: '', //
//
agreeList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
//
regectList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
//
stopList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
//
revokeList: {
businessSid: '',
comment: '',
instanceId: '',
taskId: '',
userSid: window.sessionStorage.getItem('userSid')
},
rules: {}
}
},
created() {
console.log('url:' + window.location.href)
var a = window.location.href.indexOf('?') + 1 // ?
var b = window.location.href.indexOf('#data') // #data
const info = window.location.href.slice(a, b)
var sid = info.substr(info.indexOf('=') + 1)
this.showInfo(sid)
// ===
var one = window.location.href.lastIndexOf('#') + 1
var two = window.location.href.lastIndexOf('}') + 1
const data = decodeURI(window.location.href.slice(one, two)) // urlunescape()web,使
var tar = data.substr(data.indexOf('=') + 1)
const obj = JSON.parse(tar)
console.log('iframe页面获取的obj:', obj)
//
this.agreeList.businessSid = sid
this.agreeList.instanceId = obj.instanceId
this.agreeList.taskId = obj.taskId
//
this.regectList.businessSid = sid
this.regectList.instanceId = obj.instanceId
this.regectList.taskId = obj.taskId
//
this.stopList.businessSid = sid
this.stopList.instanceId = obj.instanceId
this.stopList.taskId = obj.taskId
//
this.revokeList.businessSid = sid
this.revokeList.instanceId = obj.instanceId
this.revokeList.taskId = obj.taskId
//
this.transactState = obj.transactState
},
methods: {
showInfo(sid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '排产申请详情'
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.applicationDate = data.applicationDate
this.formobj.schedulingType = data.schedulingType
this.formobj.remarks = data.remarks
this.formobj.currentAmount = data.currentAmount
this.formobj.sid = sid
this.formobj.busVehicleApplyDetailDtoList = data.busVehicleApplyDetailVoList
}).catch((e) => {
this.formobj = {}
})
},
//
openAgree() {
this.$confirm('是否确认执行同意操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleAgree()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消同意'
})
})
},
//
openReject() {
this.$confirm('是否确认执行驳回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleReject()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消驳回'
})
})
},
//
openStop() {
this.$confirm('是否确认执行终止操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleStop()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消终止'
})
})
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.handleRevoke()
}).catch(() => {
this.$message({
type: 'info',
message: '已取消撤回'
})
})
},
/** 同意任务 */
handleAgree() {
this.agreeList.comment = this.dialogList.comment
businessAgree(this.agreeList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
this.refreshIt()
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 终止任务 */
handleStop() {
this.stopList.comment = this.dialogList.comment
breakTask(this.stopList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 驳回任务 */
handleReject() {
this.regectList.comment = this.dialogList.comment
rejectTask(this.regectList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
/** 撤回任务 */
handleRevoke() {
this.revokeList.comment = this.dialogList.comment
revokeTask(this.revokeList).then((response) => {
if (response.code === '200') {
this.$notify({
title: '提示',
message: '执行成功',
type: 'success',
duration: 2000
})
} else {
this.$notify({
title: '提示',
message: '执行失败',
type: 'error',
duration: 2000
})
}
})
},
//
getSummaries(param) {
const { columns, data } = param
const sums = []
columns.forEach((column, index) => {
if (index === 0) {
sums[index] = '合计'
return
}
const values = data.map(item => Number(item[column.property]))
if (column.property === 'useDeposit') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.useMoney = sums[index] += ''
} else if (column.property === 'applyForDeposit') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.applyMoney = sums[index] += ''
} else {
if (!values.every(value => isNaN(value))) {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.amount = sums[index] += ''
} else {
sums[index] = ''
}
}
})
return sums
}
}
}
</script>
<style scoped>
.diaTitle {
padding: 30px 0 15px 0;
font-size: 20px;
font-weight: 500;
}
.inputType {
width: 600px;
}
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.lineone {
border-bottom: 2px solid #e0e3eb;
}
.lineone .el-form-item {
margin-bottom: -10px;
}
.lineone >>> .el-input__inner {
border: 0;
}
.linetwo {
margin-top: 10px;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.linethree .el-form-item {
margin-bottom: 0px !important;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: start;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.el-form-item-right {
text-align: right;
}
.formadd{
padding: 0px !important;
}
.icon {
color: #e84026;
margin-right: 4px;
}
</style>

191
anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/chexingbyconfiguration.vue

@ -0,0 +1,191 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>车型常用列表</div>
<div>
<el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="webcon">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="客户名称:">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable class="filter-item"/>
</el-form-item>
<el-form-item label="合同编号:">
<el-input v-model="listQuery.params.contractNo" placeholder="" clearable class="filter-item"/>
</el-form-item>
<div class="searchbtns">
<el-button type="primary" @click="handleFilter">查询</el-button>
<el-button type="primary" @click="handresetting">重置</el-button>
</div>
</el-form>
</div>
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="编号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="车型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="常用配置" align="center">
<template slot-scope="scope">
<span>{{ scope.row.configName }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import req from '@/api/supplychain/busvehicleapply'
export default {
name: "chexingbyconfiguration",
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
showbackState: 30,
sids: [],
list: [],
datalist: [],
number: '',
listLoading: false,
listQuery: {
current: 1,
size: 10,
params: {
contractNo: '',
customerName: ''
},
total: 1
}
}
},
created() {
//
this.init()
//
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
init() {
this.getList()
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
handleReturn() {
this.$emit('doback')
},
//
getList() {
this.listLoading = true
req.configurationlistPage(this.listQuery).then((response) => {
this.listLoading = false
if (response.code == '200') {
this.listQuery.total = response.data.total
this.list = response.data.records
}
})
},
//
handleFilter() {
this.getList()
},
//
handresetting() {
this.listQuery = {
current: 1,
size: 10,
params: {
contractNo: '',
customerName: ''
},
total: 0
}
this.getList()
},
handleSelectionChange(row) {
this.sids = []
const aa = []
row.forEach((element) => {
aa.push({
modelName: element.modelName,
modelSid: element.modelSid,
configName: element.configName,
configurationItemsSid: element.configurationItemsSid
})
})
this.sids = aa
},
showData(value) {
if (value.length > 0){
for (var i = 0; i < value.length; i++) {
this.datalist.push(value[i])
}
} else {
this.datalist = []
}
if (this.datalist.length > 0) {
for (var j = 0; j < this.datalist.length; j++) {
for (var k = 0; k < this.list.length; k++) {
if (this.datalist[j].vehicleName == this.list[k].modelName && this.datalist[j].configName == this.list[k].configName) {
this.$refs.multipleTable.toggleRowSelection(this.list[k], true)
}
}
}
} else {
this.$refs.multipleTable.clearSelection()
}
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
} else {
this.$notify({
title: '提示',
message: '请选择至少一条记录进行删除操作!',
type: 'error',
duration: 2000
})
}
}
}
}
</script>
<style scoped>
</style>

276
anrui-scm/anrui-scm-ui/src/views/workFlow/ruzhangguanliFlow/ruzhangguanli/ruzhangEdit.vue

@ -0,0 +1,276 @@
<template>
<div class="app-container">
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="saveEdit()">保存
</el-button>
<el-button type="primary" size="small" @click="submitVehicleApply()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>车辆入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="采购订单编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.purchaseOrderNo" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="车型:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.modelName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="常用配置:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.configName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linethree">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" clearable/>
</el-form-item>
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">车辆列表</div>
</div>
<el-table :key="tableKey" :data="formobj.vehicleList" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="left" header-align="center">
<template slot-scope="scope" prop="vehicleName">
<el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable/>
</template>
</el-table-column>
</el-table>
<el-row style="margin-top: 10px">
<el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="厂家发车日期:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.departureDate" clearable type="date" placeholder="开始日期"/>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
</div>
</template>
<script>
import req from '@/api/ruzhang/scmapplyinbound'
export default {
name: 'ruzhangAdd',
data() {
return {
viewTitle: '',
index: 0,
tableKey: 0,
//
formobj: {
sid: '', // sid
applicationSid: window.sessionStorage.getItem('userSid'), // sid
applicationName: window.sessionStorage.getItem('name'), //
applicationCode: '', //
configName: '',
departureDate: '',
modelName: '',
modelSid: '',
purchaseOrderNo: '',
remarks: '', //
vehicleOrderSid: '',
vehicleList: []
},
rules: {},
submitdisabled: false
}
},
methods: {
showEdit(sid, row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '【编辑】入账单'
console.log('编辑回显', sid, row)
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks
this.formobj.sid = sid
this.formobj.configName = data.configName
this.formobj.departureDate = data.departureDate
this.formobj.modelName = data.modelName
this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo
this.formobj.vehicleOrderSid = data.vehicleOrderSid
if (data.inboundVehicleList.length > 0) {
data.inboundVehicleList.forEach((e) => {
this.formobj.vehicleList.push({
applySid: e.applySid,
remarks: e.remarks,
modelSid: e.modelSid,
sid: e.sid,
vinNo: e.vinNo
})
})
} else {
for (var i = 0; i < row[0].vehicleNum; i++) {
this.formobj.vehicleList.push({
applySid: '',
remarks: '',
modelSid: this.formobj.modelSid,
sid: '',
vinNo: ''
})
}
}
}).catch((e) => {
this.formobj = row
})
},
saveEdit() {
console.log(this.formobj, 636363)
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((resp) => {
this.submitdisabled = false
this.$message({
showClose: true,
type: 'success',
message: resp.msg
})
this.handleReturn('true')
}).catch(() => {
this.submitdisabled = false
})
} else {
return false
}
})
},
submitVehicleApply() {
req.submitVehicleApply(this.formobj).then((res) => {
if (res.code == '200') {
this.$message({
showClose: true,
type: 'success',
message: '提交成功'
})
this.handleReturn('true')
} else {
this.$message({
showClose: true,
type: 'error',
message: '提交失败'
})
}
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.departureDate = ''
this.formobj.remarks = '' //
this.formobj.vehicleList = []
this.$refs['form_obj'].resetFields()
this.$emit('doback')
},
}
}
</script>
<style scoped>
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.lineone {
border-bottom: 2px solid #e0e3eb;
}
.lineone .el-form-item {
margin-bottom: -10px;
}
.lineone >>> .el-input__inner {
border: 0;
}
.linetwo {
margin-top: 10px;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.linethree .el-form-item {
margin-bottom: 0px !important;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: start;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.el-form-item-right {
/* padding: 0 10px 0 0; */
text-align: right;
}
</style>

219
anrui-scm/anrui-scm-ui/src/views/workFlow/ruzhangguanliFlow/ruzhangguanli/ruzhangInfo.vue

@ -0,0 +1,219 @@
<template>
<div class="app-container">
<div>
<!--标题按钮部分开始-->
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="info" size="small" @click="handleReturn()">返回</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="wlInfo"><span>车辆入账单</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top">
<el-row class="lineone">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationCode" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="采购订单编号:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.purchaseOrderNo" readonly/>
</el-form-item>
</el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="申请人:"></el-form-item>
</el-col>
<el-col :span="5">
<el-form-item>
<el-input v-model="formobj.applicationName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="车型:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.modelName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="常用配置:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.configName" readonly/>
</el-form-item>
</el-col>
</el-row>
<el-row class="linetwo">
<el-col :span="3" class="el-form-item-right">
<el-form-item label="备注:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.remarks" clearable readonly/>
</el-form-item>
</el-col>
</el-row>
<div class="tableStyle">
<div style="margin-left: 5px;font-weight: bold">车辆列表</div>
</div>
<el-table :key="tableKey" :data="formobj.vehicleList" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="left" header-align="center">
<template slot-scope="scope" prop="vehicleName">
<el-input v-model="scope.row.vinNo" placeholder="" class="addinputw" clearable readonly/>
</template>
</el-table-column>
<el-table-column label="备注" header-align="center">
<template slot-scope="scope" prop="remarks">
<el-input v-model="scope.row.remarks" placeholder="" class="addinputw" clearable readonly/>
</template>
</el-table-column>
</el-table>
<el-row class="linetwo" style="margin-top: 10px">
<el-col>
<el-col :span="3" class="el-form-item-right">
<el-form-item label="厂家发车日期:"></el-form-item>
</el-col>
<el-col :span="21">
<el-form-item>
<el-input v-model="formobj.departureDate" placeholder="" class="addinputw" clearable readonly/>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-form>
</div>
</div>
<!--End 添加修改部分-->
</div>
</template>
<script>
import req from '@/api/ruzhang/scmapplyinbound'
export default {
name: 'ruzhangInfo',
data() {
return {
viewTitle: '',
index: 0,
tableKey: 0,
//
formobj: {
sid: '', // sid
applicationSid: window.sessionStorage.getItem('userSid'), // sid
applicationName: window.sessionStorage.getItem('name'), //
applicationCode: '', //
configName: '',
departureDate: '',
modelName: '',
modelSid: '',
purchaseOrderNo: '',
remarks: '', //
vehicleOrderSid: '',
vehicleList: []
},
rules: {},
submitdisabled: false
}
},
methods: {
showInfo(sid, row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '入账单详情'
console.log('编辑回显', sid, row)
req.fetchBySid(sid).then((resp) => {
const data = resp.data
this.formobj.applicationCode = data.applicationCode
this.formobj.remarks = data.remarks
this.formobj.sid = sid
this.formobj.configName = data.configName
this.formobj.departureDate = data.departureDate
this.formobj.modelName = data.modelName
this.formobj.modelSid = data.modelSid
this.formobj.purchaseOrderNo = data.purchaseOrderNo
this.formobj.vehicleOrderSid = data.vehicleOrderSid
if (data.inboundVehicleList.length > 0) {
data.inboundVehicleList.forEach((e) => {
this.formobj.vehicleList.push({
applySid: e.applySid,
remarks: e.remarks,
modelSid: e.modelSid,
sid: e.sid,
vinNo: e.vinNo
})
})
}
}).catch((e) => {
this.formobj = row
})
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.departureDate = ''
this.formobj.remarks = '' //
this.formobj.vehicleList = []
this.$refs['form_obj'].resetFields()
this.$emit('doback')
},
}
}
</script>
<style scoped>
.wlInfo {
text-align: center;
font-size: 28px;
line-height: 90px;
}
.lineone {
border-bottom: 2px solid #e0e3eb;
}
.lineone .el-form-item {
margin-bottom: -10px;
}
.lineone >>> .el-input__inner {
border: 0;
}
.linetwo {
margin-top: 10px;
}
.linetwo .el-form-item {
margin-bottom: 0px !important;
}
.linetwo >>> .el-input__inner {
border: 0;
}
.tableStyle {
background-color: #FFFFFF;
display: flex;
justify-content: start;
align-items: center;
border: 1px solid #dfe4ed;
height: 40px;
}
.el-form-item-right {
text-align: right;
}
</style>

11
anrui-system-ui/src/views/flow/doneList.vue

@ -246,7 +246,6 @@
},
created() {
//
this.getList()
this.init()
},
filters: {
@ -270,13 +269,15 @@
init() {
var token = getStorage();
loginDetails(token).then((response) => {
console.log(response)
if (response.code === '200') {
this.loginInfo = response.data;
this.revokeList.userSid = this.loginInfo.userSid
this.listQuery.params.userSid = this.loginInfo.userSid
this.revokeList.userSid = this.loginInfo.sid
this.listQuery.params.userSid = this.loginInfo.sid
this.getList()
}
});
this.getType()
// this.getType()
},
/** 打开详情 */
handleCheck(row) {
@ -287,6 +288,8 @@
const parameter_list = {
instanceId: row.procInsId,
taskId: row.taskId,
taskName: row.taskName,
transactState: '01'
}
selectUrl(this.selectUrl_list).then((response) => {
if (response.code === '200') {

7
anrui-system-ui/src/views/flow/todoList.vue

@ -272,7 +272,6 @@
},
created() {
//
this.getList()
this.init()
},
filters: {
@ -296,13 +295,14 @@
init() {
var token = getStorage();
loginDetails(token).then((response) => {
if (response.code === '200') {
if (response.code == '200') {
this.loginInfo = response.data;
this.agreeList.userSid = this.loginInfo.sid
this.regectList.userSid = this.loginInfo.sid
this.stopList.userSid = this.loginInfo.sid
this.listQuery.params.userSid = this.loginInfo.sid
console.log('8888', this.loginInfo)
this.getList()
}
});
@ -332,7 +332,8 @@
const parameter_list = {
instanceId: row.procInsId,
taskId: row.taskId,
taskName: row.taskName
taskName: row.taskName,
transactState: '00' // 0001
}
console.log('123123123', JSON.stringify(parameter_list))
selectUrl(this.selectUrl_list).then((response) => {

53
doc/databases/scm_tables.sql

@ -696,3 +696,56 @@ CREATE TABLE `scm_vehicle_return_details`
DEFAULT CHARSET = utf8 COMMENT ='车辆采购退库详细';
-- 车辆未售买断
DROP TABLE IF EXISTS `scm_vehicle_actual_sales`;
CREATE TABLE `scm_vehicle_actual_sales`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间(申请日期)',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid(申请人sid)',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`applicationName` varchar(64) DEFAULT NULL COMMENT '申请人',
`reason` varchar(500) DEFAULT NULL COMMENT '买断原因',
`nodeState` varchar(500) DEFAULT NULL COMMENT '节点状态',
`procDefId` varchar(500) DEFAULT NULL COMMENT '流程定义id',
`nodeSid` varchar(500) DEFAULT NULL COMMENT '环节定义的sid',
`procInstSid` varchar(500) DEFAULT NULL COMMENT '流程实例的sid',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='车辆实销';
-- 车辆未售买断详细
DROP TABLE IF EXISTS `scm_vehicle_actual_details`;
CREATE TABLE `scm_vehicle_actual_details`
(
`id` int(32) NOT NULL AUTO_INCREMENT COMMENT 'id',
`sid` varchar(64) NOT NULL COMMENT 'sid',
`lockVersion` int(32) DEFAULT '0' COMMENT '版本锁',
`createTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`modifyTime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '修改时间',
`isEnable` int(32) DEFAULT '1' COMMENT '是否可用:1可用,0不可用',
`state` int(32) DEFAULT '1' COMMENT '状态',
`isDelete` int(32) DEFAULT '0' COMMENT '是否删除:0未删除,1已删除',
`remarks` varchar(255) DEFAULT NULL COMMENT '备注',
`createBySid` varchar(64) DEFAULT NULL COMMENT '创建人sid',
`updateBySid` varchar(64) DEFAULT NULL COMMENT '修改人sid',
`vehicleActualSid` varchar(64) DEFAULT NULL COMMENT '车辆未售买断申请sid',
`vinNo` varchar(64) DEFAULT NULL COMMENT '车架号',
`modelName` varchar(500) DEFAULT NULL COMMENT '车型名称',
`inboundDate` timestamp null DEFAULT NULL COMMENT '入库日期',
`inboundPrice` varchar(200) DEFAULT NULL COMMENT '入库价',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='车辆未售买断详细';

Loading…
Cancel
Save