Browse Source

Merge remote-tracking branch 'origin/master'

master
God 3 years ago
parent
commit
0b33a64ee2
  1. 25
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManActualVo.java
  2. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManufacturerBankFeign.java
  3. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManufacturerBankFeignFallback.java
  4. 8
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleActualVo.java
  5. 12
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetails.java
  6. 13
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsDto.java
  7. 14
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsVo.java
  8. 35
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPay.java
  9. 39
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPayDto.java
  10. 17
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPayFeign.java
  11. 12
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPayFeignFallback.java
  12. 33
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPayVo.java
  13. 8
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSales.java
  14. 10
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDetailsVo.java
  15. 13
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java
  16. 9
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyFeign.java
  17. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyFeignFallback.java
  18. 1
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commonappendix/CommonAttachTypeEnum.java
  19. 12
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AppCommonContractInitVo.java
  20. 14
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AppCommonContractPageVo.java
  21. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AppCommonContractQuery.java
  22. 11
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContract.java
  23. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractBuscenterVo.java
  24. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/CommonContractEnum.java
  25. 52
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/DictCommonEnum.java
  26. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankMapper.java
  27. 16
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankMapper.xml
  28. 13
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankRest.java
  29. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankService.java
  30. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  31. 1
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  32. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml
  33. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java
  34. 24
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualpay/BaseVehicleActualPayMapper.java
  35. 34
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualpay/BaseVehicleActualPayMapper.xml
  36. 16
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualpay/BaseVehicleActualPayRest.java
  37. 61
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualpay/BaseVehicleActualPayService.java
  38. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml
  39. 108
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  40. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.java
  41. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.xml
  42. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyRest.java
  43. 8
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyService.java
  44. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commonappendix/CommonAppendixMapper.java
  45. 37
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commonappendix/CommonAppendixMapper.xml
  46. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commonappendix/CommonAppendixService.java
  47. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.java
  48. 77
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.xml
  49. 108
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java
  50. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/order/AppOrderDetailsVo.java
  51. 13
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml
  52. 3
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java
  53. 5
      anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java
  54. 1
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileMapper.xml
  55. 27
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileService.java
  56. 5
      anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java
  57. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeign.java
  58. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeignFallback.java
  59. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordMapper.java
  60. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordMapper.xml
  61. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordRest.java
  62. 39
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java
  63. 64
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventorymonth/AppScmVehInventorymonthQuery.java
  64. 80
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventorymonth/AppScmVehInventorymonthVo.java
  65. 12
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventorymonth/ScmVehInventorymonthFeign.java
  66. 5
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventorymonth/ScmVehInventorymonthFeignFallback.java
  67. 8
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventoryreport/ScmVehInventoryreportFeign.java
  68. 9
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java
  69. 3
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleinventory/ScmVehicleInventoryMapper.java
  70. 23
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleinventory/ScmVehicleInventoryService.java
  71. 65
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventorymonth/ScmVehInventorymonthMapper.java
  72. 13
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventorymonth/ScmVehInventorymonthMapper.xml
  73. 106
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventorymonth/ScmVehInventorymonthRest.java
  74. 170
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventorymonth/ScmVehInventorymonthService.java
  75. 65
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventoryreport/ScmVehInventoryreportMapper.java
  76. 13
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventoryreport/ScmVehInventoryreportMapper.xml
  77. 100
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventoryreport/ScmVehInventoryreportRest.java
  78. 110
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventoryreport/ScmVehInventoryreportService.java
  79. 7
      anrui-scm/anrui-scm-ui/src/api/weishoumaiduan/unsold.js
  80. 22
      anrui-scm/anrui-scm-ui/src/views/cheliang/cheliangtaizhang/cheliangtaizhang.vue
  81. 68
      anrui-scm/anrui-scm-ui/src/views/cheliang/hegezhengtaizhang/hegezhengtaizhangAdd.vue
  82. 1
      anrui-scm/anrui-scm-ui/src/views/supplychain/cheliangpaichan/cheliangpaichanAdd.vue
  83. 20
      anrui-scm/anrui-scm-ui/src/views/supplychain/cunfangdidianbiangeng/cunfangdidianbiangengAdd.vue
  84. 319
      anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldAdd.vue
  85. 197
      anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldInfo.vue
  86. 4
      anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldguanli.vue
  87. 6
      anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/vehicle.vue
  88. 20
      anrui-scm/anrui-scm-ui/src/views/workFlow/cunfangdidianbiangengFlow/cunfangdidianbiangengEdit.vue
  89. 6
      anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/vehicle.vue
  90. 202
      anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weishoumaiduanDaiBanInfo.vue
  91. 199
      anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weishoumaiduanYiBanInfo.vue
  92. 308
      anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weushoumaiduanEdit.vue
  93. 13
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/CommonContractInitVo.java
  94. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/AppScmVehicleInventoryFeign.java
  95. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/CarInventoryListPageQuery.java
  96. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/CarInventoryListPageVo.java
  97. 11
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/inventory/AppScmVehicleInventoryService.java
  98. 31
      doc/databases/base_tables.sql
  99. 52
      doc/databases/scm_tables_vehicle.sql

25
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManActualVo.java

@ -0,0 +1,25 @@
package com.yxt.anrui.base.api.basemanufacturerbank;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/9/19 14:07
* @Description
*/
@Data
public class BaseManActualVo implements Vo {
private static final long serialVersionUID = -8356553970394175402L;
@ApiModelProperty("厂家销售通路")
private String accountName;
@ApiModelProperty("开户行")
private String depositBank;
@ApiModelProperty("收款银行账号")
private String bankAccount;
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManufacturerBankFeign.java

@ -10,6 +10,7 @@ import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import javax.validation.Valid;
import java.util.List;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
@ -46,4 +47,8 @@ public interface BaseManufacturerBankFeign {
@ApiOperation("查看及修改回显(已测试)")
@GetMapping("/selectDetails/{sid}")
public ResultBean<BaseManufacturerBankVo> selectDetails(@PathVariable("sid") String sid);
@ApiOperation("未售买断获取厂家销售通路")
@GetMapping("/actualList/{useOrgSid}")
ResultBean<List<BaseManActualVo>> actualList(@PathVariable("useOrgSid") String useOrgSid);
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemanufacturerbank/BaseManufacturerBankFeignFallback.java

@ -3,6 +3,8 @@ package com.yxt.anrui.base.api.basemanufacturerbank;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Component;
import java.util.List;
/**
* Project: anrui-base(安瑞基础信息模块) <br/>
* File: BaseManufacturerBankFeignFallback.java <br/>
@ -28,4 +30,9 @@ public class BaseManufacturerBankFeignFallback implements BaseManufacturerBankFe
public ResultBean<BaseManufacturerBankVo> selectDetails(String sid) {
return null;
}
@Override
public ResultBean<List<BaseManActualVo>> actualList(String useOrgSid) {
return null;
}
}

8
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/BaseVehicleActualVo.java

@ -51,4 +51,12 @@ public class BaseVehicleActualVo implements Vo {
private String insideCode;
@ApiModelProperty("库龄")
private int dayNum;
@ApiModelProperty("版本")
private String vehicleVersionValue;
@ApiModelProperty("燃料")
private String fuelTypeValue;
@ApiModelProperty("变速箱")
private String gearboxTypeValue;
@ApiModelProperty("排放标准")
private String emissionStandardValue;
}

12
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetails.java

@ -4,6 +4,7 @@ import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -31,4 +32,15 @@ public class BaseVehicleActualDetails extends BaseEntity {
private int dayNum;
@ApiModelProperty("车辆数量")
private int vehicleNum;
@ApiModelProperty("版本")
private String vehicleVersionValue;
@ApiModelProperty("燃料")
private String fuelTypeValue;
@ApiModelProperty("变速箱")
private String gearboxTypeValue;
@ApiModelProperty("排放标准")
private String emissionStandardValue;
@ApiModelProperty("买断金额")
private BigDecimal actualMoney;
}

13
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsDto.java

@ -4,6 +4,7 @@ import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
@ -31,4 +32,16 @@ public class BaseVehicleActualDetailsDto implements Dto {
@ApiModelProperty("车辆数量")
private int vehicleNum;
@ApiModelProperty("版本")
private String vehicleVersionValue;
@ApiModelProperty("燃料")
private String fuelTypeValue;
@ApiModelProperty("变速箱")
private String gearboxTypeValue;
@ApiModelProperty("排放标准")
private String emissionStandardValue;
@ApiModelProperty("买断金额")
private String actualMoney;
}

14
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/BaseVehicleActualDetailsVo.java

@ -4,6 +4,8 @@ import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author dimengzhe
* @Date 2022/4/9 11:35
@ -29,4 +31,16 @@ public class BaseVehicleActualDetailsVo implements Vo {
private int dayNum;
@ApiModelProperty("车辆数量")
private int vehicleNum;
@ApiModelProperty("版本")
private String vehicleVersionValue;
@ApiModelProperty("燃料")
private String fuelTypeValue;
@ApiModelProperty("变速箱")
private String gearboxTypeValue;
@ApiModelProperty("排放标准")
private String emissionStandardValue;
@ApiModelProperty("买断金额")
private String actualMoney;
}

35
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPay.java

@ -0,0 +1,35 @@
package com.yxt.anrui.base.api.basevehicleactualpay;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* @Author dimengzhe
* @Date 2022/9/19 11:49
* @Description
*/
@Data
public class BaseVehicleActualPay extends BaseEntity {
private static final long serialVersionUID = -3051690321206077883L;
@ApiModelProperty(value = "车辆未售买断申请sid")
private String vehicleActualSid;
@ApiModelProperty(value = "付款方式")
private String paymentType;
@ApiModelProperty(value = "付款方式key")
private String paymentTypeKey;
@ApiModelProperty(value = "厂家销售通路")
private String actualPay;
@ApiModelProperty(value = "开户行")
private String bank;
@ApiModelProperty("收款银行账号")
private String receivingAccount;
@ApiModelProperty("付款金额")
private BigDecimal payAccount;
@ApiModelProperty("付款备注")
private String payRemark;
}

39
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPayDto.java

@ -0,0 +1,39 @@
package com.yxt.anrui.base.api.basevehicleactualpay;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/9/19 11:52
* @Description
*/
@Data
public class BaseVehicleActualPayDto implements Dto {
private static final long serialVersionUID = -7136887711471736748L;
@ApiModelProperty(value = "付款方式")
@NotBlank(message = "付款方式不能为空")
private String paymentType;
@ApiModelProperty(value = "付款方式key")
@NotBlank(message = "付款方式不能为空")
private String paymentTypeKey;
@ApiModelProperty(value = "厂家销售通路")
@NotBlank(message = "厂家销售通路不能为空")
private String actualPay;
@ApiModelProperty(value = "开户行")
@NotBlank(message = "开户行不能为空")
private String bank;
@ApiModelProperty("收款银行账号")
@NotBlank(message = "收款银行账号不能为空")
private String receivingAccount;
@ApiModelProperty("付款金额")
@NotBlank(message = "付款金额不能为空")
private String payAccount;
@ApiModelProperty("付款备注")
private String payRemark;
}

17
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPayFeign.java

@ -0,0 +1,17 @@
package com.yxt.anrui.base.api.basevehicleactualpay;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsFeignFallback;
import org.springframework.cloud.openfeign.FeignClient;
/**
* @Author dimengzhe
* @Date 2022/9/19 11:57
* @Description
*/
@FeignClient(
contextId = "anrui-base-BaseVehicleActualPay",
name = "anrui-base",
path = "v1/basevehicleactualpay",
fallback = BaseVehicleActualPayFeignFallback.class)
public interface BaseVehicleActualPayFeign {
}

12
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPayFeignFallback.java

@ -0,0 +1,12 @@
package com.yxt.anrui.base.api.basevehicleactualpay;
import org.springframework.stereotype.Component;
/**
* @Author dimengzhe
* @Date 2022/9/19 11:58
* @Description
*/
@Component
public class BaseVehicleActualPayFeignFallback {
}

33
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualpay/BaseVehicleActualPayVo.java

@ -0,0 +1,33 @@
package com.yxt.anrui.base.api.basevehicleactualpay;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/9/19 13:36
* @Description
*/
@Data
public class BaseVehicleActualPayVo implements Vo {
private static final long serialVersionUID = 7103772117018168626L;
@ApiModelProperty(value = "付款方式")
private String paymentType;
@ApiModelProperty(value = "付款方式key")
private String paymentTypeKey;
@ApiModelProperty(value = "厂家销售通路")
private String actualPay;
@ApiModelProperty(value = "开户行")
private String bank;
@ApiModelProperty("收款银行账号")
private String receivingAccount;
@ApiModelProperty("付款金额")
private String payAccount;
@ApiModelProperty("付款备注")
private String payRemark;
private String sid;
}

8
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSales.java

@ -29,5 +29,13 @@ public class BaseVehicleActualSales extends BaseEntity {
@ApiModelProperty("未售买断费用")
private String money;
@ApiModelProperty("是否需要付款:1是,0否")
private String isPay;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("分公司sid")
private String useOrgSid;
}

10
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDetailsVo.java

@ -1,6 +1,7 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo;
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPayVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -26,6 +27,7 @@ public class BaseVehicleActualSalesDetailsVo implements Vo {
private String reason;
@ApiModelProperty(value = "车辆列表")
private List<BaseVehicleActualDetailsVo> detailsList = new ArrayList<>();
private List<BaseVehicleActualPayVo> detailsPayList = new ArrayList<>();
@ApiModelProperty(value = "创建人sid")
private String userSid;
@ApiModelProperty(value = "任务id")
@ -35,4 +37,12 @@ public class BaseVehicleActualSalesDetailsVo implements Vo {
@ApiModelProperty("未售买断费用")
private String money;
@ApiModelProperty("是否需要付款:1是,0否")
private String isPay;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("分公司sid")
private String useOrgSid;
}

13
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehicleActualSalesDto.java

@ -2,10 +2,12 @@ package com.yxt.anrui.base.api.basevehicleactualsales;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsDto;
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPayDto;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import java.util.Date;
import java.util.List;
@ -32,10 +34,21 @@ public class BaseVehicleActualSalesDto implements Dto {
@ApiModelProperty(value = "买断原因")
private String reason;
@ApiModelProperty(value = "车辆列表")
private List<BaseVehicleActualDetailsDto> detailsList;
@Valid
private List<BaseVehicleActualPayDto> detailsPayList;
@ApiModelProperty("未售买断费用")
private String money;
@ApiModelProperty("付款金额总计")
private String payAccountAll;
@ApiModelProperty("是否需要付款:1是,0否")
private String isPay;
@ApiModelProperty("分公司名称")
private String useOrgName;
@ApiModelProperty("分公司sid")
private String useOrgSid;
}

9
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyFeign.java

@ -10,10 +10,7 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
@ -92,4 +89,8 @@ public interface BusVehicleApplyFeign {
@ApiOperation(value = "移动端获取排产-上装信息")
@GetMapping(value = "/getVehicleApplyTopInfo/{sid}")
ResultBean<AppVehicleApplySzVo> getVehicleApplyTopInfo(@PathVariable("sid") String sid);
@ApiOperation(value = "采购申请作废")
@PutMapping(value = "/abandonApply/{sid}")
ResultBean abandonApply(@PathVariable("sid") String sid);
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyFeignFallback.java

@ -101,4 +101,9 @@ public class BusVehicleApplyFeignFallback implements BusVehicleApplyFeign {
public ResultBean<AppVehicleApplySzVo> getVehicleApplyTopInfo(String sid) {
return null;
}
@Override
public ResultBean abandonApply(String sid) {
return null;
}
}

1
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commonappendix/CommonAttachTypeEnum.java

@ -36,6 +36,7 @@ public enum CommonAttachTypeEnum {
* 260009_11放款文件_首付款证明
*/
CONTRACT("0001", "合同"),
CONTRACT_UPLOAD("0001_1", "合同下载"),
CREDIT("0002", "人行征信"),
INVOICE("0003", "开票申请附件"),
INVOICE_KHKPSQS("0003_1", "客户开票申请书"),

12
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AppCommonContractInitVo.java

@ -4,6 +4,7 @@ import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
@ -31,13 +32,13 @@ public class AppCommonContractInitVo implements Vo {
private String contractPrice;
@ApiModelProperty("新车买卖合同")
private List<String> contractImages;
private List<String> contractImages = new ArrayList<>();
@ApiModelProperty("现场签署图片")
private List<String> siteSigImages;
private List<String> siteSigImages = new ArrayList<>();
@ApiModelProperty("身份证图片")
private List<String> idCardImages;
private List<String> idCardImages = new ArrayList<>();
@ApiModelProperty("客户类型")
private String customerKey;
@ -66,5 +67,10 @@ public class AppCommonContractInitVo implements Vo {
@ApiModelProperty("身份证图片")
private String idImagesUrl;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("车型sid")
private String modelSid;
}

14
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AppCommonContractPageVo.java

@ -1,10 +1,14 @@
package com.yxt.anrui.base.api.commoncontract;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class AppCommonContractPageVo implements Vo {
@ -36,5 +40,15 @@ public class AppCommonContractPageVo implements Vo {
@ApiModelProperty("节点状态")
private String nodeState;
private List<PrintConfirmVo> files = new ArrayList<>();
@ApiModelProperty("是否显示下载")
private Boolean isShowDownload;
@JsonIgnore
private String commonContractUrl;
@JsonProperty("number")
private String num;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AppCommonContractQuery.java

@ -29,7 +29,7 @@ public class AppCommonContractQuery implements Query {
@ApiModelProperty("状态")
private String type;
@ApiModelProperty("")
@ApiModelProperty("客户")
private String names;
@ApiModelProperty("分公司sid")

11
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContract.java

@ -29,8 +29,6 @@ import java.util.Date;
public class CommonContract extends BaseEntity {
private static final long serialVersionUID = 1L;
@ApiModelProperty("合同编号(合同类型+部门编码+yyyyMMdd+001)")
private String contractNo;
@ -39,6 +37,11 @@ public class CommonContract extends BaseEntity {
@ApiModelProperty("合同类型")
private String contractType;
@ApiModelProperty("客户类型")
private String customerType;
@ApiModelProperty("客户类型key")
private String customerTypeKey;
@ApiModelProperty("客户sid")
private String customerSid;
@ -109,8 +112,8 @@ public class CommonContract extends BaseEntity {
private String procInstId;
@ApiModelProperty(value = "任务id")
private String taskId;
@ApiModelProperty("生成的合同的url")
private String commonContractUrl;
private String configSid;
private String commonContractUrl;
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractBuscenterVo.java

@ -87,7 +87,4 @@ public class CommonContractBuscenterVo implements Vo {
@ApiModelProperty("附件文件")
private List<CommonAppendixVo> pcCommonAppendixDtoList;
private String commonContractUrl;
}

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/CommonContractEnum.java

@ -14,8 +14,8 @@ public class CommonContractEnum {
/**
* 新车买卖合同
*/
DC_CONTRACT("010", "新车买卖合同(订车)"),
XC_CONTRACT("009", "新车买卖合同(现车)");
DC_CONTRACT("010", "新车买卖合同(订车)"),
XC_CONTRACT("009", "新车买卖合同(现车)");
/**
* code值

52
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/DictCommonEnum.java

@ -26,4 +26,56 @@ public class DictCommonEnum {
this.remarks = remarks;
}
}
/**
* 客户类型
*/
@Getter
public static enum customerType {
GR_TYPE("1", "个人"),
QY_TYPE("2", "企业"),
;
private final String code;
private final String remarks;
customerType(String code, String remarks) {
this.code = code;
this.remarks = remarks;
}
}
@Getter
public static enum dueBank {
HK_TYPE("1", "回款账户"),
DJ_TYPE("2", "订金账户"),
XL_TYPE("3", "销量保证金"),
QY_TYPE("4", "牵引车回款账户"),
;
private final String code;
private final String remarks;
dueBank(String code, String remarks) {
this.code = code;
this.remarks = remarks;
}
}
/**
* 款项名称
*/
@Getter
public static enum costType {
CG_TYPE("001", "排产"),
WC_TYPE("002", "外采"),
MD_TYPE("003", "买断"),
;
private final String code;
private final String remarks;
costType(String code, String remarks) {
this.code = code;
this.remarks = remarks;
}
}
}

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankMapper.java

@ -1,6 +1,7 @@
package com.yxt.anrui.base.biz.basemanufacturerbank;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManActualVo;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBank;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBankVo;
import com.yxt.anrui.base.api.busvehicleapply.BusApplyVo;
@ -59,4 +60,6 @@ public interface BaseManufacturerBankMapper extends BaseMapper<BaseManufacturerB
void deleteByMainSid(String sid);
List<BusApplyVo> selectByApplySid(String modelSid);
List<BaseManActualVo> actualList(@Param("useOrgSid") String useOrgSid, @Param("code") String code);
}

16
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankMapper.xml

@ -55,7 +55,7 @@
bmb.remarks
FROM base_manufacturer_bank bmb
WHERE bmb.manufacturerSid = #{sid}
AND bmb.isDelete = 0
AND bmb.isDelete = 0
</select>
<select id="selectByApplySid" resultType="com.yxt.anrui.base.api.busvehicleapply.BusApplyVo">
@ -64,6 +64,18 @@
left join base_manufacturer bm on bm.sid = bmb.manufacturerSid
left join base_vehicle_brand bvb on bvb.manufacturerSid = bm.sid
left join base_vehicle_model bvm on bvm.carBrand = bvb.sid
where bvm.sid = #{modelSid} and bmb.dueBankKey = '2'
where bvm.sid = #{modelSid}
and bmb.dueBankKey = '2'
</select>
<select id="actualList" resultType="com.yxt.anrui.base.api.basemanufacturerbank.BaseManActualVo">
select bmb.accountName,
bmb.depositBank,
bmb.bankAccount
from base_manufacturer_bank bmb
left join base_manufacturer bm on bmb.manufacturerSid = bm.sid
where bmb.isDelete = 0
AND bm.useOrg = #{useOrgSid}
and bmb.dueBankKey = #{code}
</select>
</mapper>

13
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankRest.java

@ -1,11 +1,9 @@
package com.yxt.anrui.base.biz.basemanufacturerbank;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturer;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBank;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBankDto;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBankFeign;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBankVo;
import com.yxt.anrui.base.api.basemanufacturerbank.*;
import com.yxt.anrui.base.biz.basemanufacturer.BaseManufacturerService;
import com.yxt.anrui.base.common.enums.DictCommonEnum;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import org.springframework.beans.factory.annotation.Autowired;
@ -78,5 +76,12 @@ public class BaseManufacturerBankRest implements BaseManufacturerBankFeign {
return rb.success().setData(vo);
}
@Override
public ResultBean<List<BaseManActualVo>> actualList(String useOrgSid) {
ResultBean<List<BaseManActualVo>> rb = ResultBean.fireFail();
List<BaseManActualVo> voList = baseManufacturerBankService.actualList(useOrgSid, DictCommonEnum.dueBank.HK_TYPE.getCode());
return rb.success().setData(voList);
}
}

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerbank/BaseManufacturerBankService.java

@ -1,5 +1,6 @@
package com.yxt.anrui.base.biz.basemanufacturerbank;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManActualVo;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBank;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManufacturerBankVo;
import com.yxt.anrui.base.api.busvehicleapply.BusApplyVo;
@ -68,4 +69,8 @@ public class BaseManufacturerBankService extends MybatisBaseService<BaseManufact
public List<BusApplyVo> selectByApplySid(String modelSid) {
return baseMapper.selectByApplySid(modelSid);
}
public List<BaseManActualVo> actualList(String useOrgSid, String code) {
return baseMapper.actualList(useOrgSid,code);
}
}

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

@ -795,8 +795,11 @@
bv.insideCode,
(select count(*) from base_vehicle bvv where bvv.insideCode = bv.insideCode and (bvv.vehicleStateValue = '库存' or
bvv.vehicleStateValue = '调入')) as vehicleNum,
(select datediff(now(),DATE_FORMAT(bv.priceDate,'%Y-%m-%d'))) as dayNum
(select datediff(now(),DATE_FORMAT(bv.priceDate,'%Y-%m-%d'))) as dayNum,
bvm.vehicleVersionValue,
bvm.fuelTypeValue,
bvm.gearboxTypeValue,
bvm.emissionStandardValue
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`

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

@ -1434,6 +1434,7 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
if (StringUtils.isNotBlank(params.getOrderingNo())) {
qw.like("bv.orderingNo", params.getOrderingNo());
}
qw.eq("bv.isProblemVeh",0);
}
return qw;

7
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsMapper.xml

@ -21,7 +21,12 @@
inboundPrice,
insideCode,
vehicleNum,
dayNum
dayNum,
actualMoney,
vehicleVersionValue,
fuelTypeValue,
gearboxTypeValue,
emissionStandardValue
from base_vehicle_actual_details
where vehicleActualSid = #{sid}
</select>

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualdetails/BaseVehicleActualDetailsService.java

@ -5,11 +5,13 @@ import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsDto;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
@ -34,6 +36,9 @@ public class BaseVehicleActualDetailsService extends MybatisBaseService<BaseVehi
baseVehicleActualDetails = new BaseVehicleActualDetails();
BeanUtils.copyProperties(dto, baseVehicleActualDetails, "sid");
baseVehicleActualDetails.setVehicleActualSid(saleSid);
if(StringUtils.isNotBlank(dto.getActualMoney())){
baseVehicleActualDetails.setActualMoney(new BigDecimal(dto.getActualMoney()));
}
save(baseVehicleActualDetails);
}
}

24
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualpay/BaseVehicleActualPayMapper.java

@ -0,0 +1,24 @@
package com.yxt.anrui.base.biz.basevehicleactualpay;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPay;
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPayVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/9/19 11:55
* @Description
*/
@Mapper
public interface BaseVehicleActualPayMapper extends BaseMapper<BaseVehicleActualPay> {
List<BaseVehicleActualPay> selectBySaleSid(String sid);
int deleteBySaleSid(String sid);
List<BaseVehicleActualPayVo> detailsList(String sid);
int deleteByActualSid(String s);
}

34
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualpay/BaseVehicleActualPayMapper.xml

@ -0,0 +1,34 @@
<?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.base.biz.basevehicleactualpay.BaseVehicleActualPayMapper">
<select id="selectBySaleSid" resultType="com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPay">
select *
from base_vehicle_actual_pay
where vehicleActualSid = #{sid}
</select>
<delete id="deleteBySaleSid">
delete
from base_vehicle_actual_pay
where vehicleActualSid = #{sid}
</delete>
<select id="detailsList" resultType="com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPayVo">
select sid,
paymentType,
paymentTypeKey,
actualPay,
bank,
receivingAccount,
payAccount,
payRemark
from base_vehicle_actual_pay
where vehicleActualSid = #{sid}
</select>
<delete id="deleteByActualSid">
delete
from base_vehicle_actual_pay
where vehicleActualSid = #{s}
</delete>
</mapper>

16
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualpay/BaseVehicleActualPayRest.java

@ -0,0 +1,16 @@
package com.yxt.anrui.base.biz.basevehicleactualpay;
import io.swagger.annotations.Api;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
/**
* @Author dimengzhe
* @Date 2022/9/19 11:54
* @Description
*/
@Api(tags = "车辆未售买断管理")
@RequestMapping("v1/basevehicleactualsales")
@Controller
public class BaseVehicleActualPayRest {
}

61
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualpay/BaseVehicleActualPayService.java

@ -0,0 +1,61 @@
package com.yxt.anrui.base.biz.basevehicleactualpay;
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPay;
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPayDto;
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPayVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Arrays;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/9/19 11:55
* @Description
*/
@Service
public class BaseVehicleActualPayService extends MybatisBaseService<BaseVehicleActualPayMapper, BaseVehicleActualPay> {
@Transactional(rollbackFor = Exception.class)
public void saveDetails(List<BaseVehicleActualPayDto> detailsPayList, String sid) {
BaseVehicleActualPay baseVehicleActualPay = null;
for (BaseVehicleActualPayDto dto : detailsPayList) {
baseVehicleActualPay = new BaseVehicleActualPay();
BeanUtils.copyProperties(dto, baseVehicleActualPay, "sid");
baseVehicleActualPay.setVehicleActualSid(sid);
if(StringUtils.isNotBlank(dto.getPayAccount())){
baseVehicleActualPay.setPayAccount(new BigDecimal(dto.getPayAccount()));
}
save(baseVehicleActualPay);
}
}
public List<BaseVehicleActualPay> selectBySaleSid(String sid) {
return baseMapper.selectBySaleSid(sid);
}
public void deleteBySaleSid(String sid) {
baseMapper.deleteBySaleSid(sid);
}
@Transactional(rollbackFor = Exception.class)
public void updateListByReturnSid(String sid, List<BaseVehicleActualPayDto> detailsPayList) {
saveDetails(detailsPayList, sid);
}
public List<BaseVehicleActualPayVo> detailsList(String sid) {
return baseMapper.detailsList(sid);
}
public void deleteByActualSid(String[] sidsList) {
List<String> stringList = Arrays.asList(sidsList);
for (int i = 0; i < stringList.size(); i++) {
baseMapper.deleteByActualSid(stringList.get(i));
}
}
}

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesMapper.xml

@ -23,7 +23,10 @@
taskId,
procInstId,
createBySid userSid,
money
money,
isPay,
useOrgSid,
useOrgName
from base_vehicle_actual_sales
where sid = #{sid}
</select>

108
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java

@ -11,6 +11,8 @@ import com.yxt.anrui.base.api.basevehicleactualdetails.AppBaseVehicleActualDetai
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetails;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsDto;
import com.yxt.anrui.base.api.basevehicleactualdetails.BaseVehicleActualDetailsVo;
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPay;
import com.yxt.anrui.base.api.basevehicleactualpay.BaseVehicleActualPayVo;
import com.yxt.anrui.base.api.basevehicleactualsales.*;
import com.yxt.anrui.base.api.basevehicleactualsales.flow.ActualGetNodeQuery;
import com.yxt.anrui.base.api.basevehicleactualsales.flow.ActualGetNodeVo;
@ -18,7 +20,12 @@ import com.yxt.anrui.base.api.basevehicleactualsales.flow.BaseActualSalesTaskQue
import com.yxt.anrui.base.api.basevehicleactualsales.flow.SubmitActualSalesDto;
import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService;
import com.yxt.anrui.base.biz.basevehicleactualdetails.BaseVehicleActualDetailsService;
import com.yxt.anrui.base.biz.basevehicleactualpay.BaseVehicleActualPayService;
import com.yxt.anrui.base.common.enums.DictCommonEnum;
import com.yxt.anrui.base.common.enums.ManPurOrderType;
import com.yxt.anrui.base.common.enums.VehicleState;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordFeign;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
@ -47,6 +54,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.*;
import java.util.stream.Collectors;
@ -60,6 +68,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
@Autowired
private BaseVehicleActualDetailsService baseVehicleActualDetailsService;
@Autowired
private BaseVehicleActualPayService baseVehicleActualPayService;
@Autowired
private SysUserFeign sysUserFeign;
@ -77,6 +87,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
private MessageFeign messageFeign;
@Autowired
private AppSubsetVersionFeign appSubsetVersionFeign;
@Autowired
private FinPaymentrecordFeign finPaymentrecordFeign;
/**
* 分页列表
@ -148,6 +160,13 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
if (scmVehicleActualSalesDto.getDetailsList().size() > 0) {
baseVehicleActualDetailsService.saveDetails(scmVehicleActualSalesDto.getDetailsList(), baseVehicleActualSales.getSid());
}
if ("1".equals(scmVehicleActualSalesDto.getIsPay())) {
if (scmVehicleActualSalesDto.getDetailsPayList().size() > 0) {
baseVehicleActualPayService.saveDetails(scmVehicleActualSalesDto.getDetailsPayList(), sid);
}
}
}
} else {
//编辑
@ -165,6 +184,18 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
if (scmVehicleActualSalesDto.getDetailsList().size() > 0) {
baseVehicleActualDetailsService.updateListByReturnSid(sid, scmVehicleActualSalesDto.getDetailsList());
}
//查询pay中是否有关于sales的该条sid数据
List<BaseVehicleActualPay> scmVehicleActualPayList = baseVehicleActualPayService.selectBySaleSid(sid);
if (scmVehicleActualPayList.size() > 0) {
baseVehicleActualPayService.deleteBySaleSid(sid);
}
if ("1".equals(scmVehicleActualSalesDto.getIsPay())) {
if (scmVehicleActualSalesDto.getDetailsPayList().size() > 0) {
baseVehicleActualPayService.updateListByReturnSid(sid, scmVehicleActualSalesDto.getDetailsPayList());
}
}
}
return rb.success().setData(sid);
}
@ -200,7 +231,9 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
}
vo = baseMapper.details(sid);
List<BaseVehicleActualDetailsVo> voList = baseVehicleActualDetailsService.detailsList(sid);
List<BaseVehicleActualPayVo> voPayList = baseVehicleActualPayService.detailsList(sid);
vo.setDetailsList(voList);
vo.setDetailsPayList(voPayList);
return rb.success().setData(vo);
}
@ -245,12 +278,13 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
@Transactional(rollbackFor = Exception.class)
public ResultBean delete(String[] sidsList) {
ResultBean rb = ResultBean.fireFail();
baseVehicleActualDetailsService.deleteByActualSid(sidsList);
//查询该sid中是否有流程不是待提交的
int count = baseMapper.selectBySid(StringUtils.join(sidsList, ","));
if (count > 0) {
return rb.setMsg("删除的数据中包含已经提交审批的数据,删除失败");
}
baseVehicleActualDetailsService.deleteByActualSid(sidsList);
baseVehicleActualPayService.deleteByActualSid(sidsList);
delBySids(sidsList);
return rb.success().setMsg("删除成功");
}
@ -285,6 +319,11 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
if ("1".equals(dto.getIsPay())) {
if (new BigDecimal(dto.getMoney()).compareTo(new BigDecimal(dto.getPayAccountAll())) != 0) {
return rb.setMsg("买断费用合计与付款费用合计不一致,不允许提交");
}
}
//保存或修改未售买断申请
ResultBean<String> resultBean = saveOrUpdateVehicleSales(dto);
if (!resultBean.getSuccess()) {
@ -318,7 +357,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
//结算状态设置为预买断
List<BaseVehicleActualDetailsDto> detailsList = dto.getDetailsList();
for (BaseVehicleActualDetailsDto f : detailsList) {
BaseVehicle baseVehicle = baseVehicleService.selectByVinNoAndOrgSid(f.getVinNo(),useOrgSid);
BaseVehicle baseVehicle = baseVehicleService.selectByVinNoAndOrgSid(f.getVinNo(), useOrgSid);
baseVehicle.setVinNo(f.getVinNo());
baseVehicle.setSettlementStatus(VehicleState.BuyoutEnum.PRE_BUYOUT.getCode());
baseVehicle.setSettlementStatusValue(VehicleState.BuyoutEnum.PRE_BUYOUT.getRemarks());
@ -328,12 +367,12 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
baseVehicleActualSales = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo,messageFlowVo);
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("未售买断申请");
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批");
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return voResultBean;
@ -388,10 +427,10 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
BaseVehicleActualSales baseVehicleActualSales = fetchBySid(bv.getBusinessSid());
if (bv.getTaskId().equals(baseVehicleActualSales.getTaskId())) {
//判断车辆的结算状态是否包含预买断的状态,如果是的话,返回审核失败
Map<String,Object> variables = new HashMap<>();
Map<String,Object> appMap = new HashMap<>();
appMap.put("sid",bv.getBusinessSid());
variables.put("app",appMap);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", bv.getBusinessSid());
variables.put("app", appMap);
bv.setFormVariables(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
@ -399,21 +438,42 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if(!"Event_end".equals(ufVo.getTaskDefKey())){
if (!"Event_end".equals(ufVo.getTaskDefKey())) {
//极光推送
baseVehicleActualSales = fetchBySid(bv.getBusinessSid());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo,messageFlowVo);
BeanUtil.copyProperties(ufVo, messageFlowVo);
ufVo.setProcDefId(baseVehicleActualSales.getProcDefId());
ufVo.setProcInsId(baseVehicleActualSales.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(bv.getBusinessSid());
messageFlowableQuery.setModuleName("未售买断申请");
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批");
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
} else {
if ("1".equals(baseVehicleActualSales.getIsPay())) {
List<BaseVehicleActualPayVo> voPayList = baseVehicleActualPayService.detailsList(baseVehicleActualSales.getSid());
for (BaseVehicleActualPayVo v : voPayList) {
FinPaymentrecordDto finPaymentrecordDto = new FinPaymentrecordDto();
finPaymentrecordDto.setApplySid(v.getSid());
finPaymentrecordDto.setPayCompanySid(baseVehicleActualSales.getUseOrgSid());
finPaymentrecordDto.setPayType(1);
finPaymentrecordDto.setCreateOrgSid(baseVehicleActualSales.getUseOrgSid());
finPaymentrecordDto.setUseOrgSid(baseVehicleActualSales.getUseOrgSid());
finPaymentrecordDto.setCost(Integer.valueOf(v.getPayAccount()));
finPaymentrecordDto.setCostTitleKey(ManPurOrderType.CostTitle.CK_COSTTITLE.getCode());
finPaymentrecordDto.setCostTitleValue(ManPurOrderType.CostTitle.CK_COSTTITLE.getRemarks());
finPaymentrecordDto.setCostTypeKey(DictCommonEnum.costType.MD_TYPE.getCode());
finPaymentrecordDto.setCostTypeValue(DictCommonEnum.costType.MD_TYPE.getRemarks());
finPaymentrecordDto.setReceiveBankAccount(v.getReceivingAccount());
finPaymentrecordDto.setReceiveCompany(v.getActualPay());
finPaymentrecordFeign.save(finPaymentrecordDto);
}
}
}
return rb.success().setData(resultBean.getData());
@ -491,10 +551,10 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String,Object> variables = new HashMap<>();
Map<String,Object> appMap = new HashMap<>();
appMap.put("sid",query.getBusinessSid());
variables.put("app",appMap);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", query.getBusinessSid());
variables.put("app", appMap);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
@ -508,7 +568,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
baseVehicleActualSales = fetchBySid(query.getBusinessSid());
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo,messageFlowVo);
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = baseVehicleActualSales.getProcInstId();
ufVo.setProcInsId(procId);
ufVo.setProcDefId(baseVehicleActualSales.getProcDefId());
@ -516,13 +576,13 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(query.getBusinessSid());
messageFlowableQuery.setModuleName("未售买断申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if(receiveSidList.size() == 1 && receiveSidList.get(0).equals(baseVehicleActualSales.getCreateBySid())){
messageFlowableQuery.setMsgContent("您提交的"+messageFlowableQuery.getModuleName()+"已被驳回,请重新提交");
}else{
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批");
if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(baseVehicleActualSales.getCreateBySid())) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("供应链");
@ -557,7 +617,7 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if(query.getUserSid().equals(baseVehicleActualSales.getCreateBySid())){
if (query.getUserSid().equals(baseVehicleActualSales.getCreateBySid())) {
//更新车辆状态为未买断
String settlementStatus = VehicleState.BuyoutEnum.UN_BUYOUT.getCode();
String settlementStatusValue = VehicleState.BuyoutEnum.UN_BUYOUT.getRemarks();
@ -633,7 +693,9 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
map.put("selectType", 0);
appSubVersionVo.setJson(JSONObject.toJSONString(map));
BeanUtil.copyProperties(appSubVersionVo, appVehicleVersionVo);
vos.setCarDetailPage(appVehicleVersionVo);});}
vos.setCarDetailPage(appVehicleVersionVo);
});
}
vo.setRecords(records);
return rb.success().setData(vo);
}

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.java

@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApply;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyVo;
import com.yxt.anrui.base.api.busvehicleapply.app.AppVehicleApplyVo;
import com.yxt.common.core.result.ResultBean;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -39,4 +40,6 @@ public interface BusVehicleApplyMapper extends BaseMapper<BusVehicleApply> {
BusVehicleApply selectByCode(String code);
AppVehicleApplyVo getVehicleApply(String sid);
ResultBean abandonApply(String sid);
}

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.xml

@ -78,4 +78,10 @@
from bus_vehicle_apply ba
where sid = #{sid}
</select>
<update id="abandonApply">
update bus_vehicle_apply
set nodeState = '作废'
where sid = #{sid}
</update>
</mapper>

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyRest.java

@ -113,5 +113,10 @@ public class BusVehicleApplyRest implements BusVehicleApplyFeign {
return busVehicleApplyService.getVehicleApplyTopInfo(sid);
}
@Override
public ResultBean abandonApply(String sid) {
return busVehicleApplyService.abandonApply(sid);
}
}

8
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyService.java

@ -519,8 +519,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
finPaymentrecordDto.setCost(busVehicleApply.getCurrentAmount().intValue());
finPaymentrecordDto.setCostTitleKey(ManPurOrderType.CostTitle.DJ_COSTTITLE.getCode());
finPaymentrecordDto.setCostTitleValue(ManPurOrderType.CostTitle.DJ_COSTTITLE.getRemarks());
finPaymentrecordDto.setCostTypeKey("001");
finPaymentrecordDto.setCostTypeValue("排产");
finPaymentrecordDto.setCostTypeKey(DictCommonEnum.costType.CG_TYPE.getCode());
finPaymentrecordDto.setCostTypeValue(DictCommonEnum.costType.CG_TYPE.getRemarks());
//查询收款单位和收款账号
List<BusVehicleApplyDetailVo> busVehicleApplyDetailList = busVehicleApplyDetailService.fetchByApplySid(busVehicleApply.getSid());
String modelSid = busVehicleApplyDetailList.get(0).getVehicleSid();
@ -825,4 +825,8 @@ public class BusVehicleApplyService extends MybatisBaseService<BusVehicleApplyMa
vo.setPlateThicknessSize("底 " + vo.getPlateThicknessBottom() + " mm,边 " + vo.getPlateThicknessEdge() + " mm");
return rb.success().setData(vo);
}
public ResultBean abandonApply(String sid) {
return baseMapper.abandonApply(sid);
}
}

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commonappendix/CommonAppendixMapper.java

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.yxt.anrui.base.api.commonappendix.CommonAppendix;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo;
import com.yxt.anrui.base.api.commoncontract.PrintConfirmVo;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@ -63,4 +64,6 @@ public interface CommonAppendixMapper extends BaseMapper<CommonAppendix> {
@Select("SELECT * FROM common_appendix WHERE filePath =#{s}")
CommonAppendixVo fetchByFilePath(String s);
List<PrintConfirmVo> selectByType(@Param("sid") String sid, @Param("attachType") String attachType,@Param("path") String path);
}

37
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commonappendix/CommonAppendixMapper.xml

@ -4,25 +4,33 @@
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.base.api.commonappendix.CommonAppendixVo">
SELECT * FROM common_appendix
<where>${ew.sqlSegment}</where>
SELECT *
FROM common_appendix
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.base.api.commonappendix.CommonAppendixVo">
SELECT * FROM common_appendix
<where>${ew.sqlSegment}</where>
SELECT *
FROM common_appendix
<where>
${ew.sqlSegment}
</where>
</select>
<select id="selectByLinkSid" resultType="com.yxt.anrui.base.api.commonappendix.CommonAppendixVo">
select * from common_appendix where linkSid=#{linkSid}
<if test="attachType !=null and attachType != ''">
and attachType=#{attachType}
select *
from common_appendix where linkSid = #{linkSid}
<if test="attachType != null and attachType != ''">
and attachType = #{attachType}
</if>
</select>
<delete id="deleteByLinkSid">
DELETE FROM common_appendix
WHERE linkSid=#{linkSid}
<if test="attachType != null and attachType !=''">
AND attachType=#{attachType}
DELETE
FROM common_appendix
WHERE linkSid = #{linkSid}
<if test="attachType != null and attachType != ''">
AND attachType = #{attachType}
</if>
</delete>
<select id="getPcAppendix" resultType="com.yxt.anrui.base.api.commonappendix.CommonAppendixVo">
@ -72,4 +80,11 @@
GROUP BY attachType
ORDER BY id
</select>
<select id="selectByType" resultType="com.yxt.anrui.base.api.commoncontract.PrintConfirmVo">
select fileName as name,concat(#{path},filePath) as downloadUrl
from common_appendix
where attachType = #{attachType}
and linkSid = #{sid}
</select>
</mapper>

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commonappendix/CommonAppendixService.java

@ -4,6 +4,7 @@ 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.commonappendix.*;
import com.yxt.anrui.base.api.commoncontract.PrintConfirmVo;
import com.yxt.anrui.crm.api.crmvisit.CrmVisitFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
@ -478,4 +479,8 @@ public class CommonAppendixService extends MybatisBaseService<CommonAppendixMapp
CommonAppendixVo commonAppendixVo = baseMapper.fetchByFilePath(s);
return rb.success().setData(commonAppendixVo);
}
public List<PrintConfirmVo> selectByType(String sid, String attachType,String path) {
return baseMapper.selectByType(sid,attachType,path);
}
}

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.java

@ -68,7 +68,7 @@ public interface CommonContractMapper extends BaseMapper<CommonContract> {
CommonContractBuscenterVo selectByBusSid(String busSid);
IPage<AppCommonContractPageVo> getContractList(IPage<CommonContract> page, @Param(Constants.WRAPPER) QueryWrapper<CommonContract> qw);
IPage<AppCommonContractPageVo> getContractList(IPage<CommonContract> page, @Param(Constants.WRAPPER) QueryWrapper<CommonContract> qw,@Param("names")String names);
/**
* 移动端-初始化合同审核

77
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.xml

@ -3,7 +3,7 @@
<mapper namespace="com.yxt.anrui.base.biz.commoncontract.CommonContractMapper">
<insert id="saveList">
INSERT INTO common_contract(sid, contractNo, contractType, partyA, partyB, partyC, createBySid,
createDate, address, deposit, contractAmount, remarks)
createDate, address, deposit, contractAmount, remarks)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(UUID(),<!--sid-->
@ -39,19 +39,19 @@
</select>
<select id="listExcel" resultType="com.yxt.anrui.base.api.commoncontract.CommonContractExportVo">
SELECT cc.`contractNo`,
cc.`contractType`,
cc.`partyA`,
cc.`partyB`,
cc.`partyC`,
suser.`userName` creatName,
cc.`createDate`,
cc.`address`,
cc.`deposit`,
cc.`contractAmount`,
cc.`remarks`
cc.`contractType`,
cc.`partyA`,
cc.`partyB`,
cc.`partyC`,
suser.`userName` creatName,
cc.`createDate`,
cc.`address`,
cc.`deposit`,
cc.`contractAmount`,
cc.`remarks`
FROM common_contract cc
LEFT JOIN anrui_portal.`sys_user` suser
ON cc.createBySid = suser.`sid`
LEFT JOIN anrui_portal.`sys_user` suser
ON cc.createBySid = suser.`sid`
<where>
${ew.sqlSegment}
</where>
@ -68,36 +68,51 @@
</select>
<select id="getContractList" resultType="com.yxt.anrui.base.api.commoncontract.AppCommonContractPageVo">
SELECT sid AS contractSid,
contractNo AS contractId,
contractType,
partyB,
modelName as model,
staffName as handler,
contractAmount AS contractPrice,
if(length(nodeState) > 0, nodeState, '待提交') as nodeState,
if(length(nodeState) > 0, false , true ) as isShowUpdate
SELECT sid AS contractSid,
contractNo AS contractId,
contractType,
partyB,
modelName as model,
staffName as handler,
contractAmount AS contractPrice,
if(length(nodeState) > 0, nodeState, '待提交') as nodeState,
if(length(nodeState) > 0, false, true) as isShowUpdate,
commonContractUrl,
num
FROM common_contract
<where>
${ew.sqlSegment}
<if test="names != null and names != ''">
and concat(IFNULL(contractNo
, '')
, ifnull(partyB
, '')) LIKE concat('%'
, #{names}
, '%')
</if>
order by id
</where>
</select>
<!--移动端-初始化合同审核-->
<select id="getContractInfo" resultType="com.yxt.anrui.base.api.commoncontract.AppCommonContractInitVo">
SELECT sid AS contractSid,
SELECT sid AS contractSid,
price,
num AS `number`,
modelName AS model,
num AS `number`,
modelName AS model,
partyB,
contractNo AS contractId,
contractAmount AS contractPrice,
contractNo AS contractId,
contractAmount AS contractPrice,
customerSid,
appdixUrl,
sceneSignUrl,
taskId,
procInstId as procInsId,
staffSid as userSid
idImagesUrl,
taskId,
procInstId as procInsId,
staffSid as userSid,
customerTypeKey as customerKey,
modelSid,
configSid
FROM common_contract
WHERE sid = #{contractSid}
</select>
@ -120,7 +135,7 @@
<update id="updateFlowFiled">
UPDATE common_contract
SET nodeState=#{nodeState}
, nodeId=#{taskDefKey}
, nodeId=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>

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

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.commonappendix.CommonAppendix;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
import com.yxt.anrui.base.api.commoncontract.*;
import com.yxt.anrui.base.api.commoncontract.flowable.AppSubmitContractInfoDto;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeQuery;
@ -986,33 +987,32 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
AppCommonContractQuery query = pagerQuery.getParams();
QueryWrapper<CommonContract> qw = appCreateQueryWrapper(query);
IPage<CommonContract> page = PagerUtil.queryToPage(pagerQuery);
IPage<AppCommonContractPageVo> iPage = baseMapper.getContractList(page, qw);
IPage<AppCommonContractPageVo> iPage = baseMapper.getContractList(page, qw, query.getNames());
List<AppCommonContractPageVo> records = iPage.getRecords();
records.removeAll(Collections.singleton(null));
if (!records.isEmpty()) {
for (AppCommonContractPageVo vo : records) {
String sid = vo.getContractSid();
//根据sid查询合同
List<PrintConfirmVo> list = commonAppendixService.selectByType(sid, CommonAttachTypeEnum.CONTRACT_UPLOAD.getAttachType(), docPdfComponent.getPrefixTemplateUrl());
vo.setFiles(list);
if (StringUtils.isNotBlank(vo.getCommonContractUrl())) {
vo.setIsShowDownload(true);
} else {
vo.setIsShowDownload(false);
}
}
}
PagerVo<AppCommonContractPageVo> p = PagerUtil.pageToVo(iPage, null);
return p;
}
private QueryWrapper<CommonContract> appCreateQueryWrapper(AppCommonContractQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<CommonContract> qw = new QueryWrapper<>();
// if (StringUtils.isNotBlank(query.getType())) { //合同类型
// qw.eq("contractTypeKey", query.getType());
// }
if (StringUtils.isNotBlank(query.getNames())) { // 甲方名称
qw.like("partyA", query.getNames());
}
if (StringUtils.isNotBlank(query.getNames())) { // 乙方名称
qw.like("partyB", query.getNames());
}
if (StringUtils.isNotBlank(query.getNames())) { // 其他方名称
qw.like("partyC", query.getNames());
}
if (StringUtils.isNotBlank(query.getUserSid())) { // 业务员sid
qw.eq("staffSid", query.getUserSid());
}
if (StringUtils.isNotBlank(query.getType())) { // 业务员sid
if (StringUtils.isNotBlank(query.getType())) {
qw.eq("state", query.getType());
}
return qw;
@ -1049,24 +1049,28 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
vo.setSiteSigImages(siteSig);
}
if (StringUtils.isNotBlank(vo.getCustomerKey())) {
if (vo.getCustomerKey().equals("1")) {
vo.setIdCardArchives(false);
if (StringUtils.isNotBlank(vo.getSceneSignUrl())) {
String[] split3 = vo.getSceneSignUrl().split(",");
List<String> idCard = new ArrayList<>();
List<String> idCardImages = Arrays.asList(split3);
for (String idCardImage : idCardImages) {
String idCardImagesUrl = urlPrefix + idCardImage;
idCard.add(idCardImagesUrl);
}
vo.setIdCardImages(idCard);
if ("1".equals(vo.getCustomerKey())) {
//查询客户的档案库中是否有图片
ResultBean<List<String>> resultBean = crmCustomerTempFeign.selectCustomerFile(vo.getCustomerSid());
List<String> stringList = resultBean.getData();
if (stringList.size() > 0) {
vo.setIdCardArchives(true);
vo.setIdCardImages(stringList);
} else {
vo.setIdCardImages(new ArrayList<>());
vo.setIdCardArchives(false);
if (StringUtils.isNotBlank(vo.getIdImagesUrl())) {
String[] split3 = vo.getSceneSignUrl().split(",");
List<String> idCard = new ArrayList<>();
List<String> idCardImages = Arrays.asList(split3);
for (String idCardImage : idCardImages) {
String idCardImagesUrl = urlPrefix + idCardImage;
idCard.add(idCardImagesUrl);
}
vo.setIdCardImages(idCard);
} else {
vo.setIdCardImages(new ArrayList<>());
}
}
} else if (vo.getCustomerKey().equals("2")) {
vo.setIdCardArchives(true);
// 往里添加客户档案里的身份证信息
}
}
return vo;
@ -1106,7 +1110,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
}
}
if (dto.getContractImages() != null) {
if (dto.getSiteSigImages() != null) {
for (String siteSigImages : dto.getSiteSigImages()) {
if (siteSigImages.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
siteSigImages = siteSigImages.replace(fileUploadComponent.getUrlPrefix(), "");
@ -1116,7 +1120,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
}
}
if (dto.getContractImages() != null) {
if (dto.getIdCardImages() != null) {
for (String idCardImage : dto.getIdCardImages()) {
if (idCardImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
idCardImage = idCardImage.replace(fileUploadComponent.getUrlPrefix(), "");
@ -1125,7 +1129,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
commonContract.setIdImagesUrl(s3.substring(0, s3.length() - 1));
}
}
updateById(commonContract);
baseMapper.updateById(commonContract);
return rb.success().setData(commonContract.getSid());
}
@ -1407,7 +1411,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
//订金
commonContract.setDeposit(new BigDecimal(depositTotal));
//合同金额
commonContract.setContractAmount(depositTotal);
commonContract.setContractAmount(appOrderDetailsVo.getPriceInfo().getTotalPrice());
//合同附件
//身份证信息附件
//车型sid
@ -1422,7 +1426,35 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
//单台订金
commonContract.setOneDeposit(new BigDecimal(depositInfo.getDeposit()));
commonContract.setCommonContractUrl(finalUrl);
commonContract.setCustomerType(appOrderDetailsVo.getCustomerType());
commonContract.setCustomerTypeKey(appOrderDetailsVo.getCustomerKey());
save(commonContract);
if (list.size() > 0) {
//添加合同下载路径
for (PrintConfirmVo vo : list) {
String str = vo.getDownloadUrl();
String urlPrefix = docPdfComponent.getPrefixTemplateUrl();
String uploadPath = docPdfComponent.getUploadTemplateUrl();
CommonAppendix commonAppendix = new CommonAppendix();
commonAppendix.setLinkSid(commonContract.getSid());
commonAppendix.setAttachType(CommonAttachTypeEnum.CONTRACT_UPLOAD.getAttachType());
String pathLoc = str.replace(urlPrefix, uploadPath);
pathLoc = pathLoc.replace("/", File.separator);
File file = new File(pathLoc);
String size = "";
if (file != null) {
size = FileUploadComponent.getPrintSize(file.length());
}
String suffix = str.substring(str.lastIndexOf(".") + 1); // 文件类型
String fileName = str.substring(str.lastIndexOf("/") + 1, str.lastIndexOf(".")); // 文件名
commonAppendix.setFileName(vo.getName());
commonAppendix.setFileType(suffix);
commonAppendix.setFileSize(size);
commonAppendix.setFilePath(str.replace(urlPrefix, ""));
commonAppendix.setRemarks("合同下载");
commonAppendixService.insert(commonAppendix);
}
}
return commonContract.getSid();
});
}

2
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorder/app/order/AppOrderDetailsVo.java

@ -30,6 +30,8 @@ public class AppOrderDetailsVo implements Vo {
private String phone;
@ApiModelProperty(value = "客户类型")
private String customerKey;
@ApiModelProperty("客户类型")
private String customerType;
@ApiModelProperty(value = "订单类型")
private String orderType;
@ApiModelProperty(value = "挂靠公司")

13
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml

@ -93,11 +93,11 @@
resultType="com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppBusSalesOrderBillInfoVo">
SELECT customerSid,
customerName,
mobile AS customerMobile,
payTypeKey AS payType,
payType AS payValue,
billingTypeKey AS invoiceType,
billingType AS invoiceValue,
mobile AS customerMobile,
payTypeKey AS payType,
payType AS payValue,
billingTypeKey AS invoiceType,
billingType AS invoiceValue,
affiliatedCompany,
affiliatedCompanySid as affiliatedOrgSid,
financePlan,
@ -175,6 +175,7 @@
bo.customerName as name,
bo.mobile as phone,
bo.customerClassKey as customerKey,
bo.customerClass as customerType,
bo.affiliatedCompany as affiliated,
bo.billingType as invoiceType,
bo.orgName as departmentName,
@ -209,7 +210,7 @@
</update>
<select id="selectNum" resultType="int">
select IFNULL(CAST(REPLACE(MAX(billNo), #{bill}, '') AS SIGNED),0) as code
select IFNULL(CAST(REPLACE(MAX(billNo), #{bill}, '') AS SIGNED), 0) as code
from bus_sales_order
where billNo LIKE concat(#{bill}, '%')
</select>

3
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeign.java

@ -147,5 +147,8 @@ public interface CrmCustomerTempFeign {
@PutMapping("/saveCustomerArchives")
public ResultBean saveCustomerArchives(@Valid @RequestBody AppCrmCustomerTempArchivesDto dto);
@ResponseBody
@GetMapping("/selectCustomerFile/{customerSid}")
public ResultBean<List<String>> selectCustomerFile(@PathVariable("customerSid")String customerSid);
}

5
anrui-crm/anrui-crm-api/src/main/java/com/yxt/anrui/crm/api/crmcustomertemp/CrmCustomerTempFeignFallback.java

@ -115,5 +115,10 @@ public class CrmCustomerTempFeignFallback implements CrmCustomerTempFeign {
return null;
}
@Override
public ResultBean<List<String>> selectCustomerFile(String customerSid) {
return null;
}
}

1
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileMapper.xml

@ -26,7 +26,6 @@
ccf.dataType AS `key`,
ccf.fileName AS title,
createTime
-- (SELECT MAX(cf.createTime) FROM crm_file cf WHERE cf.linkSid = ccf.sid) AS createTime
FROM crm_customer_file ccf
WHERE ccf.linkSid = #{customerSid}
</select>

27
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomerfile/CrmCustomerFileService.java

@ -32,8 +32,6 @@ import com.yxt.anrui.base.api.basedatalist.BaseDataListFeign;
import com.yxt.anrui.base.api.basedatalist.BaseDataListVo;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
import com.yxt.anrui.crm.api.crmcustomerfile.*;
import com.yxt.anrui.crm.api.crmcustomerfile.AppCrmCustomerTempArchivesDto;
import com.yxt.anrui.crm.api.crmcustomerfile.AppCustomerArchivesDataDto;
import com.yxt.anrui.crm.api.crmfile.CrmFile;
import com.yxt.anrui.crm.api.crmfile.CrmFileDetailsVo;
import com.yxt.anrui.crm.api.crmfile.CrmFileDto;
@ -41,19 +39,16 @@ import com.yxt.anrui.crm.biz.crmfile.CrmFileService;
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.utils.DateUtils;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.DateUtils;
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 org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@ -311,4 +306,22 @@ public class CrmCustomerFileService extends MybatisBaseService<CrmCustomerFileMa
String dataType = "身份证";
return baseMapper.selectIdImageByCustomerSid(customerSid, dataType);
}
public ResultBean<List<String>> selectCustomerFile(String customerSid) {
ResultBean<List<String>> rb = ResultBean.fireFail();
List<AppCustomerArchivesDataVo> dataVos = baseMapper.selectByCustomerSid(customerSid);
List<String> list = new ArrayList<>();
if (dataVos.size() > 0) {
for (AppCustomerArchivesDataVo appCustomerArchivesDataVo : dataVos) {
String sid = appCustomerArchivesDataVo.getSid();
List<CrmFile> listVo = baseMapper.selArchivesFileImageBySid(sid);
for (CrmFile crmFile : listVo) {
String url = fileUploadComponent.getUrlPrefix() + crmFile.getFilePath();
list.add(url);
}
appCustomerArchivesDataVo.setFiles(list);
}
}
return rb.success().setData(list);
}
}

5
anrui-crm/anrui-crm-biz/src/main/java/com/yxt/anrui/crm/biz/crmcustomertemp/CrmCustomerTempRest.java

@ -263,5 +263,10 @@ public class CrmCustomerTempRest implements CrmCustomerTempFeign {
return crmCustomerFileService.saveCustomerArchives(dto);
}
@Override
public ResultBean<List<String>> selectCustomerFile(String customerSid) {
return crmCustomerFileService.selectCustomerFile(customerSid);
}
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeign.java

@ -68,4 +68,9 @@ public interface FinPaymentrecordFeign {
@PostMapping("/update")
@ResponseBody
ResultBean update(@RequestBody FinPaymentrecordUpdateDto dto);
@ApiOperation("作废")
@PutMapping("/updateState/{sid}")
@ResponseBody
ResultBean updateState(@PathVariable("sid")String sid);
}

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finpaymentrecord/FinPaymentrecordFeignFallback.java

@ -64,4 +64,9 @@ public class FinPaymentrecordFeignFallback implements FinPaymentrecordFeign {
public ResultBean update(FinPaymentrecordUpdateDto dto) {
return null;
}
@Override
public ResultBean updateState(String sid) {
return null;
}
}

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordMapper.java

@ -26,14 +26,14 @@
package com.yxt.anrui.fin.biz.finpaymentrecord;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
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.fin.api.finpaymentrecord.FinPaymentrecord;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecord;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordVo;
import java.util.List;
@ -66,4 +66,6 @@ public interface FinPaymentrecordMapper extends BaseMapper<FinPaymentrecord> {
List<String> selectApplySids(@Param("list") List<String> sids);
int updateStateBySid(@Param("sid") String sid, @Param("state") int i);
List<String> selectApplySidBySid(List<String> sids);
}

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordMapper.xml

@ -48,4 +48,12 @@
set state = #{state}
where sid = #{sid}
</update>
<select id="selectApplySidBySid" resultType="java.lang.String">
select state
from fin_paymentrecord WHERE sid IN
<foreach collection="list" item="item" index="index" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>

5
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordRest.java

@ -71,4 +71,9 @@ public class FinPaymentrecordRest implements FinPaymentrecordFeign {
public ResultBean update(FinPaymentrecordUpdateDto dto) {
return finPaymentrecordService.updateAll(dto);
}
@Override
public ResultBean updateState(String sid) {
return finPaymentrecordService.updateState(sid);
}
}

39
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finpaymentrecord/FinPaymentrecordService.java

@ -136,6 +136,13 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
if (applySids.contains("")) {
return rb.setMsg("处理的数据包含收款账号不存在的数据");
}
//判断是否包含已作废的
List<String> sidState = baseMapper.selectApplySidBySid(sids);
if (sidState.size() > 1) {
if (sidState.contains(3)) {
return rb.setMsg("处理的数据包含已作废的记录");
}
}
List<String> list = new ArrayList<>();
for (int i = 0; i < sids.size(); i++) {
FinPaymentrecord finPaymentrecord = fetchBySid(sids.get(i));
@ -155,15 +162,14 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
}
//推送金蝶付款单
try{
ApPayBill apb=createApPayBill(finPaymentrecord);
try {
ApPayBill apb = createApPayBill(finPaymentrecord);
ResultBean resultBean1 = apPayBillService.draftApPayBill(apb);
}catch (Exception e){
} catch (Exception e) {
log.error(e.getMessage());
}
}
return rb.success();
}
@ -213,17 +219,17 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
//支付类型
fpaybillentry.setFPayType("A");
//付款用途
if(ManPurOrderType.CostTitle.DJ_COSTTITLE.getRemarks().equals(finPaymentrecord.getCostTitleValue())){
if (ManPurOrderType.CostTitle.DJ_COSTTITLE.getRemarks().equals(finPaymentrecord.getCostTitleValue())) {
//订金
fpaybillentry.setFPURPOSEID("SFKYT09_SYS");
}else{
} else {
//车款
fpaybillentry.setFPURPOSEID("SFKYT08_SYS");
}
//结算方式
if("承兑".equals(finPaymentrecord.getPayWayValue())){
if ("承兑".equals(finPaymentrecord.getPayWayValue())) {
fpaybillentry.setFSETTLETYPEID("09");
}else{
} else {
fpaybillentry.setFSETTLETYPEID("02");
}
FPAYBILLENTRYs.add(fpaybillentry);
@ -236,4 +242,21 @@ public class FinPaymentrecordService extends MybatisBaseService<FinPaymentrecord
}
}
/**
* 作废
*
* @param sid
* @return
*/
public ResultBean updateState(String sid) {
ResultBean rb = ResultBean.fireFail();
//查询是否是未打款的
FinPaymentrecord finPaymentrecord = fetchBySid(sid);
if (finPaymentrecord.getState() == 2) {
return rb.setMsg("该记录已打款,不能作废");
}
int i = baseMapper.updateStateBySid(sid, 3);
return rb.success();
}
}

64
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventorymonth/AppScmVehInventorymonthQuery.java

@ -0,0 +1,64 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.api.scmvehinventorymonth;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: aaa(aaa) <br/>
* File: ScmVehInventorymonthQuery.java <br/>
* Class: com.yxt.anrui.scm.api.api.scmvehinventorymonth.ScmVehInventorymonthQuery <br/>
* Description: 月度盘库 查询条件. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-09-16 15:52:05 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "月度盘库 查询条件", description = "月度盘库 查询条件")
public class AppScmVehInventorymonthQuery implements Query {
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("报告编号/创建人")
private String names;
@ApiModelProperty("创建日期")
private String date;
@ApiModelProperty("盘库报告sid")
private String reportSid;
@ApiModelProperty("盘库结果")
private String state;
@ApiModelProperty("使用组织名称")
private String useOrgSid;
}

80
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventorymonth/AppScmVehInventorymonthVo.java

@ -0,0 +1,80 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.api.scmvehinventorymonth;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: aaa(aaa) <br/>
* File: ScmVehInventorymonthVo.java <br/>
* Class: com.yxt.anrui.scm.api.api.scmvehinventorymonth.ScmVehInventorymonthVo <br/>
* Description: 月度盘库 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-09-16 15:52:05 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "月度盘库 视图数据对象", description = "月度盘库 视图数据对象")
public class AppScmVehInventorymonthVo implements Vo {
private String sid; // sid
@ApiModelProperty("编号(yyyyMMdd)")
private String billNo; // 编号(yyyyMMdd)
@ApiModelProperty("创建组织")
private String createOrgSid; // 创建组织
@ApiModelProperty("创建组织名称")
private String createOrgName; // 创建组织名称
@ApiModelProperty("使用组织")
private String useOrgSid; // 使用组织
@ApiModelProperty("使用组织名称")
private String useOrgName; // 使用组织名称
@ApiModelProperty("剩余盘库记录数量")
private String surplusNumber;
@ApiModelProperty("盘库记录总数数量")
private String totalNumber;
@ApiModelProperty("盘亏数量")
private String lossNumber;
@ApiModelProperty("盘损数量")
private String damageNumber;
@ApiModelProperty("盘盈数量")
private String profitNumber;
@ApiModelProperty("实盘数量")
private String actualNumber;
@ApiModelProperty("是否显示生成报告按钮 剩余盘库记录=0时显示")
private Boolean showBtn;
}

12
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventorymonth/ScmVehInventorymonthFeign.java

@ -25,6 +25,8 @@
*********************************************************/
package com.yxt.anrui.scm.api.scmvehinventorymonth;
import com.yxt.anrui.scm.api.scmvehicleinventory.AppScmVehicleCarInventoryListPageQuery;
import com.yxt.anrui.scm.api.scmvehicleinventory.AppScmVehicleCarInventoryListPageVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
@ -50,8 +52,8 @@ import java.util.List;
*/
@Api(tags = "月度盘库")
@FeignClient(
contextId = "aaa-ScmVehInventorymonth",
name = "aaa",
contextId = "anrui-scm-ScmVehInventorymonth",
name = "anrui-scm",
path = "v1/scmvehinventorymonth",
fallback = ScmVehInventorymonthFeignFallback.class)
public interface ScmVehInventorymonthFeign {
@ -81,5 +83,11 @@ public interface ScmVehInventorymonthFeign {
@ResponseBody
public ResultBean getInventoryRecords(@PathVariable("userSid") String userSid);
@ApiOperation("手机端-获取盘库报告列表")
@PostMapping("/getCarInventoryReportList")
@ResponseBody
public ResultBean<PagerVo<AppScmVehInventorymonthVo>> getCarInventoryReportList(@RequestBody PagerQuery<AppScmVehInventorymonthQuery> pagerQuery);
}

5
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventorymonth/ScmVehInventorymonthFeignFallback.java

@ -74,4 +74,9 @@ public class ScmVehInventorymonthFeignFallback implements ScmVehInventorymonthFe
public ResultBean getInventoryRecords(String userSid) {
return null;
}
@Override
public ResultBean<PagerVo<AppScmVehInventorymonthVo>> getCarInventoryReportList(PagerQuery<AppScmVehInventorymonthQuery> pagerQuery) {
return null;
}
}

8
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehinventoryreport/ScmVehInventoryreportFeign.java

@ -50,8 +50,8 @@ import java.util.List;
*/
@Api(tags = "盘库报告")
@FeignClient(
contextId = "aaa-ScmVehInventoryreport",
name = "aaa",
contextId = "anrui-scm-ScmVehInventoryreport",
name = "anrui-scm",
path = "v1/scmvehinventoryreport",
fallback = ScmVehInventoryreportFeignFallback.class)
public interface ScmVehInventoryreportFeign {
@ -65,12 +65,12 @@ public interface ScmVehInventoryreportFeign {
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody ScmVehInventoryreportDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody

9
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java

@ -413,7 +413,7 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
ScmVehicleGressionVeh scmVehicleGressionVeh = new ScmVehicleGressionVeh();
BeanUtil.copyProperties(scmVehicleGressionVehDto, scmVehicleGressionVeh, "sid");
vinNo = scmVehicleGressionVehDto.getVehVin();
BaseVehicleVo baseVehicleVo = baseVehicleFeign.selVehicleByVinNo(vinNo).getData();
BaseVehicle baseVehicleVo = baseVehicleFeign.selectByVinNoAndOrgSid(vinNo,useOrgSid).getData();
scmVehicleGressionVeh.setVehSid(baseVehicleVo.getSid());
scmVehicleGressionVeh.setMainSid(scmVehicleGression.getSid());
scmVehicleGressionVehService.save(scmVehicleGressionVeh);
@ -432,7 +432,8 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
ScmVehicleGressionVeh scmVehicleGressionVeh = new ScmVehicleGressionVeh();
BeanUtil.copyProperties(scmVehicleGressionVehDto, scmVehicleGressionVeh, "sid");
vinNo = scmVehicleGressionVehDto.getVehVin();
BaseVehicleVo baseVehicleVo = baseVehicleFeign.selVehicleByVinNo(vinNo).getData();
// BaseVehicleVo baseVehicleVo = baseVehicleFeign.selVehicleByVinNo(vinNo).getData();
BaseVehicle baseVehicleVo = baseVehicleFeign.selectByVinNoAndOrgSid(vinNo,useOrgSid).getData();
scmVehicleGressionVeh.setVehSid(baseVehicleVo.getSid());
scmVehicleGressionVeh.setMainSid(scmVehicleGression.getSid());
scmVehicleGressionVehService.save(scmVehicleGressionVeh);
@ -716,13 +717,15 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
return rb.setMsg(resultBean.getMsg());
}
String businessSid = resultBean.getData();
scmVehicleGression = fetchBySid(businessSid);
String state = "2";
baseMapper.updateStateBySid(businessSid, state);
//推送车辆移库状态
List<String> vinList = scmVehicleGressionVehService.fetchVoByMainSid(businessSid);
if (vinList.size() > 0) {
for (String s : vinList) {
BaseVehicleVo baseVehicleVo = baseVehicleFeign.selVehicleByVinNo(s).getData();
BaseVehicle baseVehicleVo = baseVehicleFeign.selectByVinNoAndOrgSid(s,scmVehicleGression.getUseOrgSid()).getData();
// BaseVehicleVo baseVehicleVo = baseVehicleFeign.selVehicleByVinNo(s).getData();
BaseVehicleTempstateDto baseVehicleTempstateDto = new BaseVehicleTempstateDto();
baseVehicleTempstateDto.setVehSid(baseVehicleVo.getSid());
baseVehicleTempstateDto.setTempStateKey("001");

3
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleinventory/ScmVehicleInventoryMapper.java

@ -125,4 +125,7 @@ public interface ScmVehicleInventoryMapper extends BaseMapper<ScmVehicleInventor
String getVin(@Param("vin") String vin);
List<ScmVehicleStayInventoryVo> selInventory(@Param("vin") String vin, @Param("id") String id, @Param("useOrgSid") String useOrgSid);
@Select("select count(*) from scm_vehicle_inventory svi where svi.useOrgSid = #{useOrgSid} and InventoryState = '无' ")
int getInventoryState(@Param("useOrgSid") String useOrgSid);
}

23
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleinventory/ScmVehicleInventoryService.java

@ -167,12 +167,12 @@ public class ScmVehicleInventoryService extends MybatisBaseService<ScmVehicleInv
QueryWrapper<AppScmVehicleCarInventoryListPageVo> qw = appCarQueryWrapper(pagerQuery.getParams());
AppScmVehicleCarInventoryListPageQuery params = pagerQuery.getParams();
IPage<AppScmVehicleCarInventoryListPageVo> iPage = baseMapper.getCarInventoryList(page, qw, params.getName());
List<AppScmVehicleCarInventoryListPageVo> records = iPage.getRecords();
for (AppScmVehicleCarInventoryListPageVo record : records) {
if ("2".equals(record.getState())) {
record.setShowUpdataBtn(true);
}
}
// List<AppScmVehicleCarInventoryListPageVo> records = iPage.getRecords();
// for (AppScmVehicleCarInventoryListPageVo record : records) {
// if ("2".equals(record.getState())) {
// record.setShowUpdataBtn(true);
// }
// }
return iPage;
}
@ -202,7 +202,6 @@ public class ScmVehicleInventoryService extends MybatisBaseService<ScmVehicleInv
}
/**
* 手机端-获取盘库记录列表 查询条件
*
@ -217,6 +216,7 @@ public class ScmVehicleInventoryService extends MybatisBaseService<ScmVehicleInv
if (StringUtils.isNotBlank(query.getWarehouseSid())) {
qw.eq("svi.locationSid", query.getWarehouseSid());
}
qw.notIn("InventoryState", "无");
String inventStartDate = query.getInventStartDate();
String inventEndDate = query.getInventEndDate();
qw.apply(StringUtils.isNotEmpty(inventStartDate), "date_format (InventoryDate,'%Y-%m-%d') >= date_format('" + inventStartDate + "','%Y-%m-%d')").
@ -457,4 +457,13 @@ public class ScmVehicleInventoryService extends MybatisBaseService<ScmVehicleInv
int count = baseMapper.getToDoNum(useOrgSid);
return rb.success().setData(String.valueOf(count));
}
public boolean getInventoryState(String userSid) {
String useOrgSid = sysStaffOrgFeign.getPathSidByUserSid(userSid).getData();
int count = baseMapper.getInventoryState(useOrgSid);
if (count == 0) {
return true;
}
return false;
}
}

65
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventorymonth/ScmVehInventorymonthMapper.java

@ -0,0 +1,65 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.biz.scmvehinventorymonth;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonth;
import com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthVo;
import java.util.List;
/**
* Project: aaa(aaa) <br/>
* File: ScmVehInventorymonthMapper.java <br/>
* Class: com.yxt.anrui.scm.api.biz.scmvehinventorymonth.ScmVehInventorymonthMapper <br/>
* Description: 月度盘库. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-09-16 15:52:05 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface ScmVehInventorymonthMapper extends BaseMapper<ScmVehInventorymonth> {
//@Update("update scm_veh_inventorymonth set name=#{msg} where id=#{id}")
//IPage<ScmVehInventorymonthVo> voPage(IPage<ScmVehInventorymonth> page, @Param(Constants.WRAPPER) QueryWrapper<ScmVehInventorymonth> qw);
IPage<ScmVehInventorymonthVo> selectPageVo(IPage<ScmVehInventorymonth> page, @Param(Constants.WRAPPER) Wrapper<ScmVehInventorymonth> qw);
List<ScmVehInventorymonthVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<ScmVehInventorymonth> qw);
@Select("select * from scm_veh_inventorymonth")
List<ScmVehInventorymonthVo> selectListVo();
}

13
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventorymonth/ScmVehInventorymonthMapper.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.scmvehinventorymonth.ScmVehInventorymonthMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthVo">
SELECT * FROM scm_veh_inventorymonth <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthVo">
SELECT * FROM scm_veh_inventorymonth <where> ${ew.sqlSegment} </where>
</select>
</mapper>

106
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventorymonth/ScmVehInventorymonthRest.java

@ -0,0 +1,106 @@
package com.yxt.anrui.scm.biz.scmvehinventorymonth; /*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
import com.yxt.anrui.scm.api.scmvehinventorymonth.*;
import com.yxt.anrui.scm.biz.scmvehinventorymonth.ScmVehInventorymonthService;
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 io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: aaa(aaa) <br/>
* File: ScmVehInventorymonthFeignFallback.java <br/>
* Class: com.yxt.anrui.scm.api.biz.scmvehinventorymonth.ScmVehInventorymonthRest <br/>
* Description: 月度盘库. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-09-16 15:52:05 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "月度盘库")
@RestController("com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthRest")
@RequestMapping("v1/scmvehinventorymonth")
public class ScmVehInventorymonthRest implements ScmVehInventorymonthFeign {
@Autowired
private ScmVehInventorymonthService scmVehInventorymonthService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<ScmVehInventorymonthVo>> listPage(@RequestBody PagerQuery<ScmVehInventorymonthQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<ScmVehInventorymonthVo> pv = scmVehInventorymonthService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody ScmVehInventorymonthDto dto) {
ResultBean rb = ResultBean.fireFail();
scmVehInventorymonthService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids) {
ResultBean rb = ResultBean.fireFail();
scmVehInventorymonthService.delBySids(sids);
return rb.success();
}
@Override
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<ScmVehInventorymonthDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
ScmVehInventorymonthDetailsVo vo = scmVehInventorymonthService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@Override
public ResultBean getInventoryRecords(String userSid) {
return scmVehInventorymonthService.getInventoryRecords(userSid);
}
@Override
public ResultBean<PagerVo<AppScmVehInventorymonthVo>> getCarInventoryReportList(PagerQuery<AppScmVehInventorymonthQuery> pagerQuery) {
return null;
}
}

170
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventorymonth/ScmVehInventorymonthService.java

@ -0,0 +1,170 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.biz.scmvehinventorymonth;
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.basevehicle.AppScmInventoryRecordsVo;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.scm.api.scmvehicleinventory.ScmVehicleInventory;
import com.yxt.anrui.scm.biz.scmvehicleinventory.ScmVehicleInventoryService;
import org.apache.commons.lang3.StringUtils;
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.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonth;
import com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthQuery;
import com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthVo;
import com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthDetailsVo;
import com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthDto;
import com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthFeign;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Collections;
import java.util.List;
/**
* Project: aaa(aaa) <br/>
* File: ScmVehInventorymonthService.java <br/>
* Class: com.yxt.anrui.scm.api.biz.scmvehinventorymonth.ScmVehInventorymonthService <br/>
* Description: 月度盘库 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-09-16 15:52:05 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class ScmVehInventorymonthService extends MybatisBaseService<ScmVehInventorymonthMapper, ScmVehInventorymonth> {
@Autowired
SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
BaseVehicleFeign baseVehicleFeign;
@Autowired
SysUserFeign sysUserFeign;
@Autowired
ScmVehicleInventoryService scmVehicleInventoryService;
private QueryWrapper<ScmVehInventorymonth> createQueryWrapper(ScmVehInventorymonthQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<ScmVehInventorymonth> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<ScmVehInventorymonthVo> listPageVo(PagerQuery<ScmVehInventorymonthQuery> pq) {
ScmVehInventorymonthQuery query = pq.getParams();
QueryWrapper<ScmVehInventorymonth> qw = createQueryWrapper(query);
IPage<ScmVehInventorymonth> page = PagerUtil.queryToPage(pq);
IPage<ScmVehInventorymonthVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<ScmVehInventorymonthVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(ScmVehInventorymonthDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(ScmVehInventorymonthDto dto) {
ScmVehInventorymonth entity = new ScmVehInventorymonth();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(ScmVehInventorymonthDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
ScmVehInventorymonth entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public ScmVehInventorymonthDetailsVo fetchDetailsVoBySid(String sid) {
ScmVehInventorymonth entity = fetchBySid(sid);
ScmVehInventorymonthDetailsVo vo = new ScmVehInventorymonthDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
@Transactional(rollbackFor = Exception.class)
public ResultBean getInventoryRecords(String userSid) {
ResultBean rb = ResultBean.fireFail();
String useOrgSid = sysStaffOrgFeign.getPathSidByUserSid(userSid).getData();
SysUserVo sysUserVo = sysUserFeign.fetchBySid(userSid).getData();
SysStaffOrg sysStaffOrg = sysStaffOrgFeign.getOrgByStaffSid(sysUserVo.getStaffSid()).getData();
boolean inventoryState = scmVehicleInventoryService.getInventoryState(userSid);
if (inventoryState) {
return rb.setMsg("盘库记录生成失败,记录存在未确认数据");
}
List<AppScmInventoryRecordsVo> list = baseVehicleFeign.selectInventoryRecords(userSid).getData();
ScmVehInventorymonth scmVehInventorymonth = new ScmVehInventorymonth();
scmVehInventorymonth.setBillNo("");
scmVehInventorymonth.setCreateOrgSid(useOrgSid);
scmVehInventorymonth.setCreateOrgName(sysStaffOrg.getOrgName());
scmVehInventorymonth.setUseOrgSid(useOrgSid);
scmVehInventorymonth.setUseOrgName(sysStaffOrg.getOrgName());
save(scmVehInventorymonth);
list.removeAll(Collections.singleton(null));
if (!list.isEmpty()) {
for (AppScmInventoryRecordsVo appScmInventoryRecordsVo : list) {
ScmVehicleInventory scmVehicleInventory = new ScmVehicleInventory();
scmVehicleInventory.setVinNo(appScmInventoryRecordsVo.getVin());
scmVehicleInventory.setMainSid(scmVehInventorymonth.getSid());
scmVehicleInventory.setLocation(appScmInventoryRecordsVo.getWarehouse());
scmVehicleInventory.setLocationSid(appScmInventoryRecordsVo.getWarehouseSid());
scmVehicleInventory.setInventoryState("无");
scmVehicleInventory.setInventoryStateKey("");
scmVehicleInventory.setCreateOrgSid(useOrgSid);
scmVehicleInventory.setUseOrgSid(useOrgSid);
scmVehicleInventoryService.save(scmVehicleInventory);
}
} else {
return rb.setMsg("暂无需要盘库记录");
}
return rb.success();
}
}

65
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventoryreport/ScmVehInventoryreportMapper.java

@ -0,0 +1,65 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.biz.scmvehinventoryreport;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreport;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportVo;
import java.util.List;
/**
* Project: aaa(aaa) <br/>
* File: ScmVehInventoryreportMapper.java <br/>
* Class: com.yxt.anrui.scm.api.biz.scmvehinventoryreport.ScmVehInventoryreportMapper <br/>
* Description: 盘库报告. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-09-16 15:52:05 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper
public interface ScmVehInventoryreportMapper extends BaseMapper<ScmVehInventoryreport> {
//@Update("update scm_veh_inventoryreport set name=#{msg} where id=#{id}")
//IPage<ScmVehInventoryreportVo> voPage(IPage<ScmVehInventoryreport> page, @Param(Constants.WRAPPER) QueryWrapper<ScmVehInventoryreport> qw);
IPage<ScmVehInventoryreportVo> selectPageVo(IPage<ScmVehInventoryreport> page, @Param(Constants.WRAPPER) Wrapper<ScmVehInventoryreport> qw);
List<ScmVehInventoryreportVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<ScmVehInventoryreport> qw);
@Select("select * from scm_veh_inventoryreport")
List<ScmVehInventoryreportVo> selectListVo();
}

13
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventoryreport/ScmVehInventoryreportMapper.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.scmvehinventoryreport.ScmVehInventoryreportMapper">
<!-- <where> ${ew.sqlSegment} </where>-->
<!-- ${ew.customSqlSegment} -->
<select id="selectPageVo" resultType="com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportVo">
SELECT * FROM scm_veh_inventoryreport <where> ${ew.sqlSegment} </where>
</select>
<select id="selectListAllVo" resultType="com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportVo">
SELECT * FROM scm_veh_inventoryreport <where> ${ew.sqlSegment} </where>
</select>
</mapper>

100
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventoryreport/ScmVehInventoryreportRest.java

@ -0,0 +1,100 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.biz.scmvehinventoryreport;
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 io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreport;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportQuery;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportVo;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportDetailsVo;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportDto;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportFeign;
/**
* Project: aaa(aaa) <br/>
* File: ScmVehInventoryreportFeignFallback.java <br/>
* Class: com.yxt.anrui.scm.api.biz.scmvehinventoryreport.ScmVehInventoryreportRest <br/>
* Description: 盘库报告. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-09-16 15:52:05 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "盘库报告")
@RestController("com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportRest")
@RequestMapping("v1/scmvehinventoryreport")
public class ScmVehInventoryreportRest implements ScmVehInventoryreportFeign {
@Autowired
private ScmVehInventoryreportService scmVehInventoryreportService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<ScmVehInventoryreportVo>> listPage(@RequestBody PagerQuery<ScmVehInventoryreportQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<ScmVehInventoryreportVo> pv = scmVehInventoryreportService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody ScmVehInventoryreportDto dto){
ResultBean rb = ResultBean.fireFail();
scmVehInventoryreportService.saveOrUpdateDto(dto);
return rb.success();
}
@Override
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
scmVehInventoryreportService.delBySids(sids);
return rb.success();
}
@Override
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<ScmVehInventoryreportDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
ScmVehInventoryreportDetailsVo vo = scmVehInventoryreportService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
}

110
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehinventoryreport/ScmVehInventoryreportService.java

@ -0,0 +1,110 @@
/*********************************************************
*********************************************************
******************** *******************
************* ************
******* _oo0oo_ *******
*** o8888888o ***
* 88" . "88 *
* (| -_- |) *
* 0\ = /0 *
* ___/`---'\___ *
* .' \\| |// '. *
* / \\||| : |||// \ *
* / _||||| -:- |||||- \ *
* | | \\\ - /// | | *
* | \_| ''\---/'' |_/ | *
* \ .-\__ '-' ___/-. / *
* ___'. .' /--.--\ `. .'___ *
* ."" '< `.___\_<|>_/___.' >' "". *
* | | : `- \`.;`\ _ /`;.`/ - ` : | | *
* \ \ `_. \_ __\ /__ _/ .-` / / *
* =====`-.____`.___ \_____/___.-`___.-'===== *
* `=---=' *
* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ *
*********__佛祖保佑__永无BUG__验收通过__钞票多多__*********
*********************************************************/
package com.yxt.anrui.scm.biz.scmvehinventoryreport;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.commons.lang3.StringUtils;
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.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreport;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportQuery;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportVo;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportDetailsVo;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportDto;
import com.yxt.anrui.scm.api.scmvehinventoryreport.ScmVehInventoryreportFeign;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* Project: aaa(aaa) <br/>
* File: ScmVehInventoryreportService.java <br/>
* Class: com.yxt.anrui.scm.api.biz.scmvehinventoryreport.ScmVehInventoryreportService <br/>
* Description: 盘库报告 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-09-16 15:52:05 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class ScmVehInventoryreportService extends MybatisBaseService<ScmVehInventoryreportMapper, ScmVehInventoryreport> {
private QueryWrapper<ScmVehInventoryreport> createQueryWrapper(ScmVehInventoryreportQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<ScmVehInventoryreport> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<ScmVehInventoryreportVo> listPageVo(PagerQuery<ScmVehInventoryreportQuery> pq) {
ScmVehInventoryreportQuery query = pq.getParams();
QueryWrapper<ScmVehInventoryreport> qw = createQueryWrapper(query);
IPage<ScmVehInventoryreport> page = PagerUtil.queryToPage(pq);
IPage<ScmVehInventoryreportVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<ScmVehInventoryreportVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public void saveOrUpdateDto(ScmVehInventoryreportDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
this.insertByDto(dto);
return;
}
this.updateByDto(dto);
}
public void insertByDto(ScmVehInventoryreportDto dto){
ScmVehInventoryreport entity = new ScmVehInventoryreport();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(ScmVehInventoryreportDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
ScmVehInventoryreport entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public ScmVehInventoryreportDetailsVo fetchDetailsVoBySid(String sid){
ScmVehInventoryreport entity = fetchBySid(sid);
ScmVehInventoryreportDetailsVo vo = new ScmVehInventoryreportDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
}

7
anrui-scm/anrui-scm-ui/src/api/weishoumaiduan/unsold.js

@ -54,6 +54,13 @@ export default {
method: 'get'
})
},
// 获取厂家销售通路
actualList: function(data) {
return request({
url: '/base/v1/basemanufacturerbank/actualList/' + data,
method: 'get'
})
},
// 流程审批(同意)
complete: function(params) {
return request({

22
anrui-scm/anrui-scm-ui/src/views/cheliang/cheliangtaizhang/cheliangtaizhang.vue

@ -45,7 +45,12 @@
<el-table-column width="80px" fixed label="序号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="车型" fixed width="200" align="left" header-align="center">
<template slot-scope="scope">
<span class="bluezi" @click="cheLiangXiangXiPeiZhi(scope.row)">{{ scope.row.modelName }}</span>
<el-popover trigger="hover" placement="top">
<span>{{ scope.row.modelNameQuan }}</span>
<div slot="reference" class="name-wrapper">
<span class="bluezi" @click="cheLiangXiangXiPeiZhi(scope.row)">{{ scope.row.modelName }}</span>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column label="车架号" fixed width="200" align="center">
@ -63,7 +68,16 @@
<el-table-column prop="priceDate" width="130" label="厂家入库日期" align="center"/>
<el-table-column prop="libraryAge" width="80" label="库龄(天)" align="center"/>
<el-table-column prop="arrivalDate" width="130" label="到货日期" align="center"/>
<el-table-column prop="configName" width="460" label="常用配置名称" align="left" header-align="center"/>
<el-table-column width="460" label="常用配置名称" align="left" header-align="center">
<template slot-scope="scope">
<el-popover trigger="hover" placement="top">
<span>{{ scope.row.otherConfig }}</span>
<div slot="reference" class="name-wrapper">
<span>{{ scope.row.configName }}</span>
</div>
</el-popover>
</template>
</el-table-column>
<el-table-column prop="contractPrice" width="130" label="厂家合同价" align="center"/>
<el-table-column prop="costPrice" width="130" label="厂家结算价" align="center"/>
<el-table-column prop="createOrgName" width="130" label="创建组织名称" align="center"/>
@ -89,7 +103,7 @@
</el-table-column>
<el-table-column prop="solidDate" width="130" label="买断日期" align="center"/>
<el-table-column prop="warrantyCardNo" width="130" label="保修卡号" align="center"/>
<el-table-column prop="brandName" width="130" label="品牌" align="center"/>
<el-table-column prop="vehModelBrandName" width="130" label="品牌" align="center"/>
<el-table-column prop="vehicleTypeValue" width="130" label="功能" align="center"/>
<el-table-column prop="productLineValue" width="130" label="系列" align="center"/>
<el-table-column prop="driveFormValue" width="130" label="驱动" align="center"/>
@ -123,7 +137,7 @@
<el-table-column prop="independentSources" width="130" label="独立热源" align="center"/>
<el-table-column prop="fuelTank" width="130" label="燃料箱" align="center"/>
<el-table-column prop="multimedia" width="130" label="多媒体" align="center"/>
<el-table-column prop="otherConfig" width="130" label="更多配置" align="center"/>
<el-table-column prop="otherConfig" width="200" label="更多配置" align="center"/>
</el-table>
</div>
<div class="pages">

68
anrui-scm/anrui-scm-ui/src/views/cheliang/hegezhengtaizhang/hegezhengtaizhangAdd.vue

@ -98,7 +98,8 @@
<el-col :span="24">
<el-form-item prop="remarks">
<span slot="label">备注</span>
<el-input v-model="temp.remarks" type="textarea" :rows="3" maxlength="125" placeholder="" class="addinputw addinputw_remarks" clearable/>
<!-- <el-input v-model="temp.remarks" type="textarea" :rows="3" maxlength="125" placeholder="" class="addinputw addinputw_remarks" clearable/>-->
<span>{{ temp.remarks }}</span>
</el-form-item>
</el-col>
</el-row>
@ -320,6 +321,22 @@
</el-row>
</el-form>
</div>
<el-dialog :visible.sync="dialogVisible" width="50%">
<el-form class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="3" class="tleftb">
<span>说明原因</span>
</el-col>
<el-col :span="21">
<el-form-item><el-input v-model="smRemarks" type="textarea" :rows="3" maxlength="125" placeholder="" class="addinputw addinputw_remarks" clearable/></el-form-item>
</el-col>
</el-row>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="handleCreate"> </el-button>
<el-button @click="handleReturn"> </el-button>
</span>
</el-dialog>
</div>
</template>
@ -334,10 +351,12 @@ import { typeValues } from '@/api/cheliang/dictcommons'
import ImageUpload from '@/components/uploadFile/ManyImageUpload' //
export default {
name: 'PinpaiAdd',
components: {ImageUpload},
components: { ImageUpload },
data() {
return {
viewTitle: '',
dialogVisible: false,
smRemarks: '',
// ---------
menuState: {
add: false, //
@ -359,7 +378,8 @@ export default {
certificatePhoto: [],
certificateState: '004', // key
certificateStateValue: '正式', // value
noticeModel: '' //
noticeModel: '', //
smRemarks: ''
}, //
templook: {}, //
Situation: [],
@ -667,9 +687,12 @@ export default {
certificateSituationValue: '',
certificatePhoto: [],
certificateState: '0002', // key
certificateStateValue: '正式' // value
certificateStateValue: '正式', // value
smRemarks: ''
} //
this.$emit('doback')
this.dialogVisible = false
this.smRemarks = ''
this.$emit('doback')
},
//
@ -711,18 +734,31 @@ export default {
})
} else {
// this.temp.certificatePhoto = this.attachTypeYingyezhizhao
this.temp.smRemarks = this.smRemarks
Update(this.temp).then((response) => {
this.FormLoading = false
if (response.code === '200') {
if (response.success) {
// this.getList()
this.dialogFormVisible = false
this.$notify({
title: '提示',
message: '修改成功',
type: 'success',
duration: 2000
})
this.handleReturn('true')
if (response.msg !== '该车架号后八位与车辆台账中车架号不符,请填写说明原因') {
this.dialogFormVisible = false
this.$notify({
title: '提示',
message: '修改成功',
type: 'success',
duration: 2000
})
this.handleReturn('true')
} else {
const tip = response.msg
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
this.smRemarks = ''
this.dialogVisible = true
})
}
}
})
}
@ -811,10 +847,6 @@ export default {
}
</script>
<style scoped>
.addinputwda {
width: 600px;
}
.formadd .el-row .el-col /deep/ .el-form-item .addinputw_remarks {
width: 92%;
}

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

@ -485,6 +485,7 @@ export default {
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
this.formobj.sid = ''
this.formobj.applyType = ''
this.formobj.applyTypeKey = ''
this.formobj.schedulingType = '' //

20
anrui-scm/anrui-scm-ui/src/views/supplychain/cunfangdidianbiangeng/cunfangdidianbiangengAdd.vue

@ -41,11 +41,11 @@
</el-form-item>
</el-col>
<el-col :span="3">
<span>现存放地点负责人</span>
<span><span class="icon">*</span>现存放地点负责人</span>
</el-col>
<el-col :span="9">
<el-form-item>
<el-select v-model="temp.staffName" placeholder="请选择" clearable class="addinputw" @change="staffNameChange">
<el-form-item prop="staffName">
<el-select v-model="temp.staffName" placeholder="请选择" class="addinputw" @change="staffNameChange">
<el-option v-for="item in staff_list" :key="item.userSid" :label="item.userName" :value="item.userName"/>
</el-select>
</el-form-item>
@ -248,7 +248,8 @@ export default {
rules: {
operator: [{ required: true, message: '经办人不能为空', trigger: 'change' }],
location: [{ required: true, message: '现存放地点不能为空', trigger: 'change' }],
targetLocation: [{ required: true, message: '目标存放地点不能为空', trigger: 'change' }]
targetLocation: [{ required: true, message: '目标存放地点不能为空', trigger: 'change' }],
staffName: [{ required: true, message: '现存放地点负责人不能为空', trigger: 'change' }]
}
}
},
@ -353,6 +354,7 @@ export default {
if (this.temp.locationSid !== '') {
this.vinNoVisible = true
this.$nextTick(() => {
this.vinNoList.params.vin = ''
this.handlevinNo()
})
} else {
@ -408,7 +410,15 @@ export default {
type: 'error'
})
} else {
this.temp.scmVehicleGressionVehs = this.vinNoChoice
if (this.vinNoChoice.length > 0) {
this.vinNoChoice.forEach((e) => {
this.temp.scmVehicleGressionVehs.push({
vehVin: e.vehVin,
settlementStatus: e.settlementStatus,
settlementStatusValue: e.settlementStatusValue
})
})
}
this.vinNoVisible = false
}
},

319
anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldAdd.vue

@ -18,27 +18,42 @@
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="titwu"><span>车辆未售买断申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="rowStyle">
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请日期:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.createTime }}</span></el-form-item>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>分公司</span>
</el-col>
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请人:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
<el-col :span="4">
<el-form-item><span>{{ formobj.useOrgName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><el-input class="addinputw addinputOne" v-model="formobj.money" @keyup.native="UpNumber" @keydown.native="UpNumber" clearable style="width: 15%"></el-input></el-form-item>
<el-col :span="4" class="tleftb">
<span>申请人</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.applicationName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
<el-form-item><el-input class="addinputw addinputOne" v-model="formobj.reason" type="textarea" :autosize="{ minRows: 1, maxRows: 10}" resize="none"></el-input></el-form-item>
<el-row>
<el-col :span="4" class="tleftb">
<span>买断原因</span>
</el-col>
<el-col :span="12">
<el-form-item><el-input v-model="formobj.reason" type="textarea" :autosize="{ minRows: 1, maxRows: 10}" resize="none" clearable placeholder="" class="addinputw"></el-input></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>是否需要付款</span>
</el-col>
<el-col :span="4">
<el-form-item>
<el-radio v-model="formobj.isPay" label="1"></el-radio>
<el-radio v-model="formobj.isPay" label="0"></el-radio>
</el-form-item>
</el-col>
</el-row>
<div class="title">
@ -47,45 +62,121 @@
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="addCommodity()">选择车辆</el-button>
</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%">
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="100px" align="center" header-align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="dataDelete(scope.$index, formobj.detailsList[scope.$index])">删除
<el-button size="mini" type="danger" @click="dataDelete(scope.$index)">删除
</el-button>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<el-table-column label="车架号" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<el-table-column label="车型" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="厂家入库日期" align="center">
<el-table-column label="版本" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.vehicleVersionValue }}</span>
</template>
</el-table-column>
<el-table-column label="燃料" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.fuelTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="变速箱" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.gearboxTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="排放标准" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.emissionStandardValue }}</span>
</template>
</el-table-column>
<el-table-column label="厂家入库日期" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<el-table-column label="库龄(天)" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<el-table-column label="内部编码" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<el-table-column label="厂家结算价" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
</template>
</el-table-column>
<el-table-column prop="actualMoney" label="买断金额" align="center" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.actualMoney" placeholder="" clearable @keyup.native="UpNumber($event, scope.row)" @keydown.native="UpNumber($event, scope.row)"></el-input>
</template>
</el-table-column>
</el-table>
<div v-show="formobj.isPay == '1'">
<div class="title">
<div>付款明细</div>
<div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="handleAdd()">添加</el-button>
</div>
</div>
<el-table :key="paymentKey" :data="formobj.detailsPayList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="100px" align="center" header-align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="handleDelete(scope.$index)">删除
</el-button>
</template>
</el-table-column>
<el-table-column label="付款方式" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.paymentType" placeholder="请选择" filterable @change="changePaymentType($event, scope.row)">
<el-option v-for="item in payment_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="厂家销售通路" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.actualPay" placeholder="请选择" filterable @change="changeActualPay($event, scope.row)">
<el-option v-for="item in actualPay_list" :key="item.bankAccount" :label="item.accountName" :value="item.accountName"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.payAccount" placeholder="" clearable @keyup.native="UpNumberOne($event, scope.row)" @keydown.native="UpNumberOne($event, scope.row)"></el-input>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.payRemark" placeholder="" clearable></el-input>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
@ -98,6 +189,7 @@
<script>
import req from '@/api/weishoumaiduan/unsold'
import vehicle from './vehicle.vue'
import { getPathSidByUserSid, fetchBySid, typeValues } from '@/api/cheliang/dictcommons'
export default {
name: 'weishoumaiduanAdd',
@ -110,17 +202,25 @@ export default {
viewState: 1,
index: 0,
tableKey: 0,
paymentKey: 1,
payment_list: [],
actualPay_list: [],
//
formobj: {
sid: '', // sid
applicationName: '',
isPay: '',
payAccountAll: '',
useOrgName: '',
useOrgSid: '',
money: '',
createTime: '',
reason: '',
userSid: '',
instanceId: '', // ID
taskId: '', // ID
detailsList: []
detailsList: [],
detailsPayList: []
},
rules: {},
submitdisabled: false
@ -141,7 +241,29 @@ export default {
}
this.formobj.createTime = year + '-' + month + '-' + day
},
UpNumber(e) {
init() {
typeValues({ type: 'paymentType' }).then((res) => {
if (res.success) {
this.payment_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
if (resp.success) {
this.formobj.useOrgSid = resp.data
fetchBySid(resp.data).then((res) => {
if (res.success) {
this.formobj.useOrgName = res.data.name
}
})
req.actualList(resp.data).then((respsone) => {
if (respsone.success) {
this.actualPay_list = respsone.data
}
})
}
})
},
UpNumber(e, row) {
e.target.value = e.target.value.replace(/[^\d]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0') // 0
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
@ -149,7 +271,17 @@ export default {
console.log(e.target.value)
e.target.value = parseFloat(e.target.value)
}
this.formobj.money = e.target.value
row.actualMoney = e.target.value
},
UpNumberOne(e, row) {
e.target.value = e.target.value.replace(/[^\d]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0') // 0
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
// 0102
console.log(e.target.value)
e.target.value = parseFloat(e.target.value)
}
row.payAccount = e.target.value
},
//
addCommodity() {
@ -157,11 +289,26 @@ export default {
this.$refs['divVehicle'].showData(this.formobj.detailsList)
},
//
dataDelete(index, row) {
dataDelete(index) {
this.formobj.detailsList.splice(index, 1)
},
handleAdd() {
this.formobj.detailsPayList.push({
actualPay: '',
bank: '',
payAccount: '',
payRemark: '',
paymentType: '',
paymentTypeKey: '',
receivingAccount: ''
})
},
handleDelete(index) {
this.formobj.detailsPayList.splice(index, 1)
},
showAdd() {
this.newDate()
this.init()
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
@ -194,11 +341,43 @@ export default {
vinNo: e.vinNo,
insideCode: e.insideCode,
vehicleNum: e.vehicleNum,
dayNum: e.dayNum
dayNum: e.dayNum,
vehicleVersionValue: e.vehicleVersionValue,
fuelTypeValue: e.fuelTypeValue,
gearboxTypeValue: e.gearboxTypeValue,
emissionStandardValue: e.emissionStandardValue,
actualMoney: e.priced
})
})
}
},
changePaymentType(value, row) {
let bb = null
this.payment_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
value: e.dictValue,
key: e.dictKey
}
}
})
row.paymentTypeKey = bb.key
},
changeActualPay(value, row) {
let bb = null
this.actualPay_list.forEach((e) => {
if (e.accountName === value) {
bb = {
accountName: e.accountName,
bankAccount: e.bankAccount,
depositBank: e.depositBank
}
}
})
row.actualPay = bb.accountName
row.bank = bb.depositBank
row.receivingAccount = bb.bankAccount
},
save() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
@ -222,6 +401,10 @@ export default {
})
},
submitVehicleApply() {
if (this.formobj.isPay == '1' && this.formobj.payAccountAll !== this.formobj.money) {
this.$message({ showClose:true, type: 'error', message: '因买断金额合计与付款金额合计不一致,提交失败' })
return
}
req.submitVehicleApply(this.formobj).then((res) => {
if (res.success) {
this.$message({
@ -239,6 +422,57 @@ export default {
}
})
},
//
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 === 'payAccount') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
} else if (column.property === 'actualMoney') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.money = 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
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
@ -246,13 +480,18 @@ export default {
this.formobj = {
sid: '', // sid
applicationName: '',
createTime: '',
isPay: '',
payAccountAll: '',
useOrgName: '',
useOrgSid: '',
money: '',
createTime: '',
reason: '',
userSid: '',
instanceId: '', // ID
taskId: '', // ID
userSid: '',
detailsList: []
detailsList: [],
detailsPayList: []
}
this.$refs['form_obj'].resetFields()
this.$emit('doback')
@ -271,19 +510,5 @@ export default {
justify-content: space-between;
align-items: center;
}
.spanOneWidth {
border-right: 0px !important;
width: 150px !important;
}
.addinputOne {
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;
}
.colStyle {
border-right: 0px !important;
border-bottom: 0px !important;
}
</style>

197
anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldInfo.vue

@ -14,65 +14,142 @@
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="titwu"><span>车辆未售买断申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="rowStyle">
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请日期:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.createTime }}</span></el-form-item>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>分公司</span>
</el-col>
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请人:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
<el-col :span="4">
<el-form-item><span>{{ formobj.useOrgName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.money }}</span></el-form-item>
<el-col :span="4" class="tleftb">
<span>申请人</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.applicationName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.reason }}</span></el-form-item>
<el-row>
<el-col :span="4" class="tleftb">
<span>买断原因</span>
</el-col>
<el-col :span="12">
<el-form-item><span>{{ formobj.reason }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>是否需要付款</span>
</el-col>
<el-col :span="4">
<el-form-item>
<span>{{ formobj.isPay === '1' ? '是' : '否' }}</span>
</el-form-item>
</el-col>
</el-row>
<div class="title">
<div>车辆列表</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%">
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="center">
<el-table-column label="车架号" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<el-table-column label="车型" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="厂家入库日期" align="center">
<el-table-column label="版本" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.vehicleVersionValue }}</span>
</template>
</el-table-column>
<el-table-column label="燃料" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.fuelTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="变速箱" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.gearboxTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="排放标准" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.emissionStandardValue }}</span>
</template>
</el-table-column>
<el-table-column label="厂家入库日期" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<el-table-column label="库龄(天)" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<el-table-column label="内部编码" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<el-table-column label="厂家结算价" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
</template>
</el-table-column>
<el-table-column prop="actualMoney" label="买断金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.actualMoney }}</span>
</template>
</el-table-column>
</el-table>
<div v-show="formobj.isPay == '1'">
<div class="title">
<div>付款明细</div>
</div>
<el-table :key="paymentKey" :data="formobj.detailsPayList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="付款方式" align="center">
<template slot-scope="scope">
<span>{{ scope.row.paymentType }}</span>
</template>
</el-table-column>
<el-table-column label="厂家销售通路" align="center">
<template slot-scope="scope">
<span>{{ scope.row.actualPay }}</span>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payAccount }}</span>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payRemark }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
@ -91,6 +168,7 @@ export default {
viewState: 1,
index: 0,
tableKey: 0,
paymentKey: 1,
//
formobj: {
sid: '', // sid
@ -119,6 +197,57 @@ export default {
this.formobj = row
})
},
//
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 === 'payAccount') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
} else if (column.property === 'actualMoney') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.money = 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
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
@ -140,24 +269,4 @@ export default {
}
</script>
<style scoped>
.title {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.spanOneWidth {
border-right: 0px !important;
width: 150px !important;
}
.addinputOne {
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;
}
.colStyle {
border-right: 0px !important;
border-bottom: 0px !important;
}
</style>

4
anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/unsoldguanli.vue

@ -151,7 +151,7 @@ export default {
userSid: window.sessionStorage.getItem('userSid')
},
current: 1,
size: 10,
size: 5,
total: 0
},
rules: {}
@ -272,7 +272,7 @@ export default {
userSid: window.sessionStorage.getItem('userSid')
},
current: 1,
size: 10,
size: 5,
total: 0
}
this.getList()

6
anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/vehicle.vue

@ -309,7 +309,11 @@ export default {
priced: element.priced,
insideCode: element.insideCode,
vehicleNum: element.vehicleNum,
dayNum: element.dayNum
dayNum: element.dayNum,
vehicleVersionValue: element.vehicleVersionValue,
fuelTypeValue: element.fuelTypeValue,
gearboxTypeValue: element.gearboxTypeValue,
emissionStandardValue: element.emissionStandardValue
})
})
this.sids = aa

20
anrui-scm/anrui-scm-ui/src/views/workFlow/cunfangdidianbiangengFlow/cunfangdidianbiangengEdit.vue

@ -40,11 +40,11 @@
</el-form-item>
</el-col>
<el-col :span="3" class="tleftb">
<span>现存放地点负责人</span>
<span><span class="icon">*</span>现存放地点负责人</span>
</el-col>
<el-col :span="9">
<el-form-item>
<el-select v-model="temp.staffName" placeholder="请选择" clearable class="addinputw" @change="staffNameChange">
<el-form-item prop="staffName">
<el-select v-model="temp.staffName" placeholder="请选择" class="addinputw" @change="staffNameChange">
<el-option v-for="item in staff_list" :key="item.userSid" :label="item.userName" :value="item.userName"/>
</el-select>
</el-form-item>
@ -248,7 +248,8 @@ export default {
rules: {
operator: [{ required: true, message: '经办人不能为空', trigger: 'change' }],
location: [{ required: true, message: '现存放地点不能为空', trigger: 'change' }],
targetLocation: [{ required: true, message: '目标存放地点不能为空', trigger: 'change' }]
targetLocation: [{ required: true, message: '目标存放地点不能为空', trigger: 'change' }],
staffName: [{ required: true, message: '现存放地点负责人不能为空', trigger: 'change' }]
}
}
},
@ -370,6 +371,7 @@ export default {
if (this.temp.locationSid !== '') {
this.vinNoVisible = true
this.$nextTick(() => {
this.vinNoList.params.vin = ''
this.handlevinNo()
})
} else {
@ -425,7 +427,15 @@ export default {
type: 'error'
})
} else {
this.temp.scmVehicleGressionVehs = this.vinNoChoice
if (this.vinNoChoice.length > 0) {
this.vinNoChoice.forEach((e) => {
this.temp.scmVehicleGressionVehs.push({
vehVin: e.vehVin,
settlementStatus: e.settlementStatus,
settlementStatusValue: e.settlementStatusValue
})
})
}
this.vinNoVisible = false
}
},

6
anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/vehicle.vue

@ -309,7 +309,11 @@ export default {
priced: element.priced,
insideCode: element.insideCode,
vehicleNum: element.vehicleNum,
dayNum: element.dayNum
dayNum: element.dayNum,
vehicleVersionValue: element.vehicleVersionValue,
fuelTypeValue: element.fuelTypeValue,
gearboxTypeValue: element.gearboxTypeValue,
emissionStandardValue: element.emissionStandardValue
})
})
this.sids = aa

202
anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weishoumaiduanDaiBanInfo.vue

@ -16,65 +16,142 @@
<!--Start 新增修改部分-->
<div class="">
<div class="titwu"><span>车辆未售买断申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="rowStyle">
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请日期:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.createTime }}</span></el-form-item>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>分公司</span>
</el-col>
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请人:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
<el-col :span="4">
<el-form-item><span>{{ formobj.useOrgName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.money }}</span></el-form-item>
<el-col :span="4" class="tleftb">
<span>申请人</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.applicationName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.reason }}</span></el-form-item>
<el-row>
<el-col :span="4" class="tleftb">
<span>买断原因</span>
</el-col>
<el-col :span="12">
<el-form-item><span>{{ formobj.reason }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>是否需要付款</span>
</el-col>
<el-col :span="4">
<el-form-item>
<span>{{ formobj.isPay === '1' ? '是' : '否' }}</span>
</el-form-item>
</el-col>
</el-row>
<div class="title">
<div>车辆列表</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%">
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="center">
<el-table-column label="车架号" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<el-table-column label="车型" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="厂家入库日期" align="center">
<el-table-column label="版本" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.vehicleVersionValue }}</span>
</template>
</el-table-column>
<el-table-column label="燃料" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.fuelTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="变速箱" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.gearboxTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="排放标准" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.emissionStandardValue }}</span>
</template>
</el-table-column>
<el-table-column label="厂家入库日期" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<el-table-column label="库龄(天)" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<el-table-column label="内部编码" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<el-table-column label="厂家结算价" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
</template>
</el-table-column>
<el-table-column prop="actualMoney" label="买断金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.actualMoney }}</span>
</template>
</el-table-column>
</el-table>
<div v-show="formobj.isPay == '1'">
<div class="title">
<div>付款明细</div>
</div>
<el-table :key="paymentKey" :data="formobj.detailsPayList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="付款方式" align="center">
<template slot-scope="scope">
<span>{{ scope.row.paymentType }}</span>
</template>
</el-table-column>
<el-table-column label="厂家销售通路" align="center">
<template slot-scope="scope">
<span>{{ scope.row.actualPay }}</span>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payAccount }}</span>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payRemark }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
@ -114,6 +191,7 @@ export default {
viewState: 1,
index: 0,
tableKey: 0,
paymentKey: 1,
list1: [],
operation: '', //
dialogList: {
@ -166,7 +244,7 @@ export default {
params: {
//
code: 2,
data: 390 + 'px'
data: 450 + 'px'
}
}, '*')
},
@ -178,6 +256,57 @@ export default {
}
})
},
//
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 === 'payAccount') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
} else if (column.property === 'actualMoney') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.money = 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
},
//
openAgree(val) {
this.operation = val
@ -309,28 +438,5 @@ export default {
text-align: center;
padding: 30px 0 20px 0;
}
.title {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.spanOneWidth {
border-right: 0px !important;
width: 150px !important;
}
.spanTwoWidth {
width: 150px !important;
}
.addinputOne {
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;
}
.colStyle {
border-right: 0px !important;
border-bottom: 0px !important;
}
</style>

199
anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weishoumaiduanYiBanInfo.vue

@ -14,65 +14,142 @@
<!--Start 新增修改部分-->
<div class="">
<div class="titwu"><span>车辆未售买断申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="rowStyle">
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请日期:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.createTime }}</span></el-form-item>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>分公司</span>
</el-col>
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请人:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
<el-col :span="4">
<el-form-item><span>{{ formobj.useOrgName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.money }}</span></el-form-item>
<el-col :span="4" class="tleftb">
<span>申请人</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.applicationName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.reason }}</span></el-form-item>
<el-row>
<el-col :span="4" class="tleftb">
<span>买断原因</span>
</el-col>
<el-col :span="12">
<el-form-item><span>{{ formobj.reason }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>是否需要付款</span>
</el-col>
<el-col :span="4">
<el-form-item>
<span>{{ formobj.isPay === '1' ? '是' : '否' }}</span>
</el-form-item>
</el-col>
</el-row>
<div class="title">
<div>车辆列表</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%">
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="车架号" align="center">
<el-table-column label="车架号" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<el-table-column label="车型" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="入库日期" align="center">
<el-table-column label="版本" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.vehicleVersionValue }}</span>
</template>
</el-table-column>
<el-table-column label="燃料" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.fuelTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="变速箱" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.gearboxTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="排放标准" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.emissionStandardValue }}</span>
</template>
</el-table-column>
<el-table-column label="厂家入库日期" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<el-table-column label="库龄(天)" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<el-table-column label="内部编码" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<el-table-column label="厂家结算价" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
</template>
</el-table-column>
<el-table-column prop="actualMoney" label="买断金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.actualMoney }}</span>
</template>
</el-table-column>
</el-table>
<div v-show="formobj.isPay == '1'">
<div class="title">
<div>付款明细</div>
</div>
<el-table :key="paymentKey" :data="formobj.detailsPayList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="付款方式" align="center">
<template slot-scope="scope">
<span>{{ scope.row.paymentType }}</span>
</template>
</el-table-column>
<el-table-column label="厂家销售通路" align="center">
<template slot-scope="scope">
<span>{{ scope.row.actualPay }}</span>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payAccount }}</span>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payRemark }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
@ -90,6 +167,7 @@ export default {
dialogStatus: '',
index: 0,
tableKey: 0,
paymentKey: 1,
//
formobj: {},
rules: {},
@ -127,7 +205,7 @@ export default {
params: {
//
code: 2,
data: 390 + 'px'
data: 450 + 'px'
}
}, '*')
},
@ -139,6 +217,57 @@ export default {
}
})
},
//
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 === 'payAccount') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
} else if (column.property === 'actualMoney') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.money = 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
},
/** 确认撤回任务 */
openRevoke() {
this.$confirm('是否确认执行撤回操作', '提示', {
@ -186,25 +315,5 @@ export default {
text-align: center;
padding: 30px 0 20px 0;
}
.title {
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.spanOneWidth {
border-right: 0px !important;
width: 150px !important;
}
.addinputOne {
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;
}
.colStyle {
border-right: 0px !important;
border-bottom: 0px !important;
}
</style>

308
anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/weushoumaiduanEdit.vue

@ -17,27 +17,42 @@
<!--Start 新增修改部分-->
<div class="">
<div class="titwu"><span>车辆未售买断申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row class="rowStyle">
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请日期:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.createTime }}</span></el-form-item>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>分公司</span>
</el-col>
<el-col :span="12" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请人:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applicationName }}</span></el-form-item>
<el-col :span="4">
<el-form-item><span>{{ formobj.useOrgName }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>申请买断费用:</span></div>
<el-form-item><el-input class="addinputw addinputOne" v-model="formobj.money" @keyup.native="UpNumber" @keydown.native="UpNumber" clearable style="width: 15%"></el-input></el-form-item>
<el-col :span="4" class="tleftb">
<span>申请人</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.applicationName }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>申请日期</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.createTime }}</span></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
<div class="span-sty spanOneWidth"><span>买断原因:</span></div>
<el-form-item><el-input class="addinputw addinputOne" v-model="formobj.reason" type="textarea" :autosize="{ minRows: 1, maxRows: 10}" resize="none"></el-input></el-form-item>
<el-row>
<el-col :span="4" class="tleftb">
<span>买断原因</span>
</el-col>
<el-col :span="12">
<el-form-item><el-input v-model="formobj.reason" type="textarea" :autosize="{ minRows: 1, maxRows: 10}" resize="none" clearable placeholder="" class="addinputw"></el-input></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>是否需要付款</span>
</el-col>
<el-col :span="4">
<el-form-item>
<el-radio v-model="formobj.isPay" label="1"></el-radio>
<el-radio v-model="formobj.isPay" label="0"></el-radio>
</el-form-item>
</el-col>
</el-row>
<div class="title">
@ -46,45 +61,121 @@
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="addCommodity()">选择车辆</el-button>
</div>
</div>
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%">
<el-table :key="tableKey" :data="formobj.detailsList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="100px" align="center" header-align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="dataDelete(scope.$index, formobj.detailsList[scope.$index])">删除
<el-button size="mini" type="danger" @click="dataDelete(scope.$index)">删除
</el-button>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<el-table-column label="车架号" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<el-table-column label="车型" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
</template>
</el-table-column>
<el-table-column label="厂家入库日期" align="center">
<el-table-column label="版本" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.vehicleVersionValue }}</span>
</template>
</el-table-column>
<el-table-column label="燃料" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.fuelTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="变速箱" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.gearboxTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="排放标准" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.emissionStandardValue }}</span>
</template>
</el-table-column>
<el-table-column label="厂家入库日期" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundDate }}</span>
</template>
</el-table-column>
<el-table-column label="库龄(天)" align="center">
<el-table-column label="库龄(天)" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.dayNum }}</span>
</template>
</el-table-column>
<el-table-column label="内部编码" align="center">
<el-table-column label="内部编码" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.insideCode }}<span>({{ scope.row.vehicleNum }})</span></span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center">
<el-table-column label="厂家结算价" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.inboundPrice }}</span>
</template>
</el-table-column>
<el-table-column prop="actualMoney" label="买断金额" align="center" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.actualMoney" placeholder="" clearable @keyup.native="UpNumber($event, scope.row)" @keydown.native="UpNumber($event, scope.row)"></el-input>
</template>
</el-table-column>
</el-table>
<div v-show="formobj.isPay == '1'">
<div class="title">
<div>付款明细</div>
<div>
<el-button type="primary" size="mini" icon="el-icon-plus" class="btntopblueline" @click="handleAdd()">添加</el-button>
</div>
</div>
<el-table :key="paymentKey" :data="formobj.detailsPayList" :index="index" border style="width: 100%" show-summary :summary-method="getSummaries">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="100px" align="center" header-align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="handleDelete(scope.$index)">删除
</el-button>
</template>
</el-table-column>
<el-table-column label="付款方式" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.paymentType" placeholder="请选择" filterable @change="changePaymentType($event, scope.row)">
<el-option v-for="item in payment_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="厂家销售通路" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.actualPay" placeholder="请选择" filterable @change="changeActualPay($event, scope.row)">
<el-option v-for="item in actualPay_list" :key="item.bankAccount" :label="item.accountName" :value="item.accountName"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="开户行" align="center">
<template slot-scope="scope">
<span>{{ scope.row.bank }}</span>
</template>
</el-table-column>
<el-table-column label="收款银行账号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.receivingAccount }}</span>
</template>
</el-table-column>
<el-table-column prop="payAccount" label="付款金额(元)" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.payAccount" placeholder="" clearable @keyup.native="UpNumberOne($event, scope.row)" @keydown.native="UpNumberOne($event, scope.row)"></el-input>
</template>
</el-table-column>
<el-table-column label="付款备注" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.payRemark" placeholder="" clearable></el-input>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
</div>
@ -97,6 +188,7 @@
<script>
import req from '@/api/weishoumaiduan/unsold'
import vehicle from './vehicle.vue'
import { fetchBySid, getPathSidByUserSid, typeValues } from '@/api/cheliang/dictcommons'
export default {
name: 'maiduanAdd',
@ -109,17 +201,25 @@ export default {
viewState: 1,
index: 0,
tableKey: 0,
paymentKey: 1,
payment_list: [],
actualPay_list: [],
//
formobj: {
sid: '', // sid
applicationName: '',
isPay: '',
payAccountAll: '',
useOrgName: '',
useOrgSid: '',
money: '',
createTime: '',
reason: '',
userSid: '',
instanceId: '', // ID
taskId: '', // ID
detailsList: []
detailsList: [],
detailsPayList: []
},
rules: {},
submitdisabled: false
@ -138,12 +238,44 @@ export default {
params: {
//
code: 2,
data: 390 + 'px'
data: 450 + 'px'
}
}, '*')
},
methods: {
UpNumber(e) {
init() {
typeValues({ type: 'paymentType' }).then((res) => {
if (res.success) {
this.payment_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
if (resp.success) {
this.formobj.useOrgSid = resp.data
fetchBySid(resp.data).then((res) => {
if (res.success) {
this.formobj.useOrgName = res.data.name
}
})
req.actualList(resp.data).then((respsone) => {
if (respsone.success) {
this.actualPay_list = respsone.data
}
})
}
})
},
UpNumber(e, row) {
e.target.value = e.target.value.replace(/[^\d]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0') // 0
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
// 0102
console.log(e.target.value)
e.target.value = parseFloat(e.target.value)
}
row.actualMoney = e.target.value
},
UpNumberOne(e, row) {
e.target.value = e.target.value.replace(/[^\d]/g, '') // ."-"
e.target.value = e.target.value.replace(/^00/, '0') // 0
if (e.target.value.indexOf('.') < 0 && e.target.value !== '' && e.target.value !== '-') {
@ -151,7 +283,7 @@ export default {
console.log(e.target.value)
e.target.value = parseFloat(e.target.value)
}
this.formobj.money = e.target.value
row.payAccount = e.target.value
},
//
addCommodity() {
@ -162,9 +294,24 @@ export default {
dataDelete(index, row) {
this.formobj.detailsList.splice(index, 1)
},
handleAdd() {
this.formobj.detailsPayList.push({
actualPay: '',
bank: '',
payAccount: '',
payRemark: '',
paymentType: '',
paymentTypeKey: '',
receivingAccount: ''
})
},
handleDelete(index) {
this.formobj.detailsPayList.splice(index, 1)
},
showInfo(sid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
this.init()
})
this.viewTitle = '【编辑】车辆未售买断申请'
console.log('编辑回显', sid)
@ -187,11 +334,43 @@ export default {
vinNo: e.vinNo,
insideCode: e.insideCode,
vehicleNum: e.vehicleNum,
dayNum: e.dayNum
dayNum: e.dayNum,
vehicleVersionValue: e.vehicleVersionValue,
fuelTypeValue: e.fuelTypeValue,
gearboxTypeValue: e.gearboxTypeValue,
emissionStandardValue: e.emissionStandardValue,
actualMoney: e.priced
})
})
}
},
changePaymentType(value, row) {
let bb = null
this.payment_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
value: e.dictValue,
key: e.dictKey
}
}
})
row.paymentTypeKey = bb.key
},
changeActualPay(value, row) {
let bb = null
this.actualPay_list.forEach((e) => {
if (e.accountName === value) {
bb = {
accountName: e.accountName,
bankAccount: e.bankAccount,
depositBank: e.depositBank
}
}
})
row.actualPay = bb.accountName
row.bank = bb.depositBank
row.receivingAccount = bb.bankAccount
},
save() {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
@ -222,6 +401,10 @@ export default {
})
},
submitVehicleApply() {
if (this.formobj.isPay == '1' && this.formobj.payAccountAll !== this.formobj.money) {
this.$message({ showClose:true, type: 'error', message: '因买断金额合计与付款金额合计不一致,提交失败' })
return
}
req.submitVehicleApply(this.formobj).then((res) => {
if (res.success) {
this.$message({
@ -240,6 +423,57 @@ export default {
}
})
},
//
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 === 'payAccount') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.payAccountAll = sums[index] += ''
} else if (column.property === 'actualMoney') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
this.formobj.money = 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
}
@ -260,19 +494,5 @@ export default {
justify-content: space-between;
align-items: center;
}
.spanOneWidth {
border-right: 0px !important;
width: 150px !important;
}
.addinputOne {
margin-left: 140px !important;
}
.rowStyle {
border-left: 0px;
}
.colStyle {
border-right: 0px !important;
border-bottom: 0px !important;
}
</style>

13
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/CommonContractInitVo.java

@ -57,13 +57,8 @@ public class CommonContractInitVo implements Vo {
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("合同附件")
private String appdixUrl;
@ApiModelProperty("现场签署图片附件")
private String sceneSignUrl;
@ApiModelProperty("身份证图片")
private String idImagesUrl;
@ApiModelProperty("配置sid")
private String configSid;
@ApiModelProperty("车型sid")
private String modelSid;
}

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/AppScmVehicleInventoryFeign.java

@ -59,7 +59,7 @@ public interface AppScmVehicleInventoryFeign {
@ResponseBody
public ResultBean getInventoryRecords(@PathVariable("userSid") String userSid);
@ApiOperation("手机端-获取盘库列表")
@ApiOperation("手机端-获取盘库列表")
@PostMapping("/getInventoryList")
@ResponseBody
public ResultBean<PagerVo<InventoryListPageVo>> getInventoryList(@RequestBody PagerQuery<InventoryListPageQuery> pagerQuery);
@ -74,7 +74,7 @@ public interface AppScmVehicleInventoryFeign {
@ResponseBody
public ResultBean<StayInventoryInfoVo> getInventory(@PathVariable("recordSid") String recordSid);
@ApiOperation("手机端-初始化盘库记录")
@ApiOperation("手机端-初始化盘库记录-弃用")
@GetMapping("/getInventoryByRecordSid/{recordSid}")
@ResponseBody
public ResultBean<StayInventoryInfoVo> getInventoryByRecordSid(@PathVariable("recordSid") String recordSid);
@ -84,7 +84,7 @@ public interface AppScmVehicleInventoryFeign {
@ResponseBody
public ResultBean saveInventory(@RequestBody StayInventoryDto dto);
@ApiOperation("手机端-保存盘库记录操作")
@ApiOperation("手机端-保存盘库记录操作-弃用")
@PostMapping("/saveInventoryByRecordSid")
@ResponseBody
public ResultBean saveInventoryByRecordSid(@RequestBody StayInventoryDto dto);

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/CarInventoryListPageQuery.java

@ -19,7 +19,7 @@ public class CarInventoryListPageQuery implements Query {
@ApiModelProperty("存放地点sid")
private String warehouseSid;
@ApiModelProperty("盘库状态 通过1 不通过 2")
@ApiModelProperty("盘库状态")
private String state;
@ApiModelProperty("使用组织分公司sid")

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/CarInventoryListPageVo.java

@ -13,10 +13,10 @@ public class CarInventoryListPageVo implements Vo {
@ApiModelProperty("车架号")
private String vin;
@ApiModelProperty("合格证状态")
private String certificateState;
// @ApiModelProperty("合格证状态")
// private String certificateState;
@ApiModelProperty("状态")
@ApiModelProperty("盘库状态状态")
private String state;
@ApiModelProperty("最新盘库日期")

11
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/inventory/AppScmVehicleInventoryService.java

@ -30,6 +30,7 @@ import com.yxt.anrui.scm.api.scmvehicleinventory.*;
import com.yxt.anrui.scm.api.scmvehicleinventory.AppScmVehicleStayInventoryListPageQuery;
import com.yxt.anrui.scm.api.scmvehicleinventory.AppScmVehicleStayInventoryListPageVo;
import com.yxt.anrui.scm.api.scmvehiclestayinventory.ScmVehicleStayInventoryFeign;
import com.yxt.anrui.scm.api.scmvehinventorymonth.ScmVehInventorymonthFeign;
import com.yxt.anrui.terminal.api.supplychain.inventory.*;
import com.yxt.anrui.terminal.config.CoverUtils;
import com.yxt.common.core.query.PagerQuery;
@ -60,6 +61,9 @@ public class AppScmVehicleInventoryService {
@Autowired
ScmVehicleStayInventoryFeign scmVehicleStayInventoryFeign;
@Autowired
ScmVehInventorymonthFeign scmVehInventorymonthFeign;
/**
* 手机端-判断是否生成盘库记录
*
@ -67,13 +71,12 @@ public class AppScmVehicleInventoryService {
* @return
*/
public ResultBean getInventoryRecords(String userSid) {
// ResultBean resultBean = scmVehicleStayInventoryFeign.getInventoryRecords(userSid);
// return resultBean;
return null;
ResultBean resultBean = scmVehInventorymonthFeign.getInventoryRecords(userSid);
return resultBean;
}
/**
* 手机端-获取盘库列表
* 手机端-获取盘库列表
*
* @param pagerQuery
* @return

31
doc/databases/base_tables.sql

@ -859,7 +859,7 @@ CREATE TABLE `bus_vehicle_apply_sz`
`szSid` varchar(64) DEFAULT NULL COMMENT '上装sid',
`detailsSid` varchar(64) DEFAULT NULL COMMENT '排产车型sid',
`costPrice` int(64) DEFAULT NULL COMMENT '厂家结算价',
`guidePrice` int(64) DEFAULT NULL COMMENT '销售指导价',
`guidePrice` int(64) DEFAULT NULL COMMENT '销售指导价',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
@ -867,5 +867,34 @@ CREATE TABLE `bus_vehicle_apply_sz`
DROP TABLE IF EXISTS `base_vehicle_actual_pay`;
CREATE TABLE `base_vehicle_actual_pay`
(
`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 '车辆未售买断',
`paymentType` varchar(64) DEFAULT NULL COMMENT '付款方式',
`paymentTypeKey` varchar(64) DEFAULT NULL COMMENT '付款方式key',
`actualPay` varchar(255) DEFAULT NULL COMMENT '厂家销售通路',
`bank` varchar(255) DEFAULT NULL COMMENT '开户行',
`receivingAccount` varchar(255) DEFAULT NULL COMMENT '收款银行账号',
`payAccount` varchar(255) DEFAULT NULL COMMENT '付款金额',
`payRemark` varchar(255) DEFAULT NULL COMMENT '付款备注',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='未售买断付款';

52
doc/databases/scm_tables_vehicle.sql

@ -275,4 +275,54 @@ CREATE TABLE `scm_vehicle_patrolinspectionsheet`
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='巡检单';
DEFAULT CHARSET = utf8 COMMENT ='巡检单';
-- 10、月度盘库
DROP TABLE IF EXISTS `scm_veh_inventoryMonth`;
CREATE TABLE `scm_veh_inventoryMonth`
(
`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 '盘库报告生成状态(0 未生成 1 已生成)',
`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',
`billNo` varchar(64) DEFAULT NULL COMMENT '编号(yyyyMMdd)',
`createOrgSid` varchar(64) DEFAULT NULL COMMENT '创建组织',
`createOrgName` varchar(64) DEFAULT NULL COMMENT '创建组织名称',
`useOrgSid` varchar(64) DEFAULT NULL COMMENT '使用组织',
`useOrgName` varchar(64) DEFAULT NULL COMMENT '使用组织名称',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='月度盘库';
-- 5、盘库报告
DROP TABLE IF EXISTS `scm_veh_inventoryReport`;
CREATE TABLE `scm_veh_inventoryReport`
(
`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',
`mainSid` varchar(64) DEFAULT NULL COMMENT '月度盘库sid',
`receiverSids` varchar(64) DEFAULT NULL COMMENT '接收人sid',
`receiverNames` varchar(64) DEFAULT NULL COMMENT '接收人姓名',
`reportContent` varchar(64) DEFAULT NULL COMMENT '盘库报告内容',
PRIMARY KEY (`id`),
KEY `id` (`id`)
) ENGINE = INNODB
DEFAULT CHARSET = utf8 COMMENT ='盘库报告';
Loading…
Cancel
Save