Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectReceivablesDetailedVo.java
#	anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedVo.java
master
God 2 years ago
parent
commit
5ca8476787
  1. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdiscountpackagehandover/BusDiscountpackageHandoverQuery.java
  2. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppInformationHandoverInfoVo.java
  3. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppSaveDataDto.java
  4. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/AppTwoDto.java
  5. 1
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverDetailsVo.java
  6. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml
  7. 4
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdiscountpackagehandover/BusDiscountpackageHandoverService.java
  8. 116
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandover/BusHandoverService.java
  9. 13
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverpreparevehicle/BusHandoverPrepareVehicleService.java
  10. 26
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  11. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.xml
  12. 3
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverMapper.xml
  13. 16
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busvehicleinformationhandover/BusVehicleInformationHandoverService.java
  14. 18
      anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagehandover.vue
  15. 20
      anrui-buscenter/anrui-buscenter-ui/src/views/discountpackagehandover/discountpackagetobehandover.vue
  16. 6
      anrui-buscenter/anrui-buscenter-ui/src/views/fapiaoneibujieshou/InternalinvoicereceiveAdd.vue
  17. 12
      anrui-buscenter/anrui-buscenter-ui/src/views/fapiaoneibujieshou/Internalinvoicetobereceived.vue
  18. 8
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationDaiBanInfo.vue
  19. 8
      anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationYiBanInfo.vue
  20. 12
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmation.vue
  21. 8
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmationInfo.vue
  22. 19
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerconfirmeddelivery.vue
  23. 4
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerdeliveryconfirmation.vue
  24. 6
      anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/suicheziliaojiaojie/cardatahandedoverAdd.vue
  25. 11
      anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/paymentConfirmation.js
  26. 687
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/agencyfund/agencyfundAdd.vue
  27. 645
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/acknowledgementReceiptAdd.vue
  28. 232
      anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/relation/amountpledged.vue
  29. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/AppFinSelectedReceivablesPaymentDetailsVo.java
  30. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectReceivablesDetailedVo.java
  31. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedVo.java
  32. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesPaymentDetailsQuery.java
  33. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/DetailsOfReceivablesAndUncollectedItemsVo.java
  34. 277
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  35. 24
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml
  36. 51
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java
  37. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysflowableconfig/SysFlowableConfigService.java
  38. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysorganization/SysOrganizationRest.java
  39. 14
      anrui-riskcenter-ui/.editorconfig
  40. 10
      anrui-riskcenter-ui/.env.development
  41. 9
      anrui-riskcenter-ui/.env.production
  42. 8
      anrui-riskcenter-ui/.env.staging
  43. 4
      anrui-riskcenter-ui/.eslintignore
  44. 199
      anrui-riskcenter-ui/.eslintrc.js
  45. 16
      anrui-riskcenter-ui/.gitignore
  46. 28
      anrui-riskcenter-ui/.project
  47. 5
      anrui-riskcenter-ui/.travis.yml
  48. 21
      anrui-riskcenter-ui/LICENSE
  49. 0
      anrui-riskcenter-ui/README-zh.md
  50. 90
      anrui-riskcenter-ui/README.md
  51. 14
      anrui-riskcenter-ui/babel.config.js
  52. 35
      anrui-riskcenter-ui/build/index.js
  53. 24
      anrui-riskcenter-ui/jest.config.js
  54. 9
      anrui-riskcenter-ui/jsconfig.json
  55. 57
      anrui-riskcenter-ui/mock/index.js
  56. 81
      anrui-riskcenter-ui/mock/mock-server.js
  57. 29
      anrui-riskcenter-ui/mock/table.js
  58. 84
      anrui-riskcenter-ui/mock/user.js
  59. 25
      anrui-riskcenter-ui/mock/utils.js
  60. 69
      anrui-riskcenter-ui/package.json
  61. 8
      anrui-riskcenter-ui/postcss.config.js
  62. BIN
      anrui-riskcenter-ui/public/favicon.ico
  63. BIN
      anrui-riskcenter-ui/public/image/liuchengtu.jpg
  64. 17
      anrui-riskcenter-ui/public/index.html
  65. 14
      anrui-riskcenter-ui/src/App.vue
  66. 20
      anrui-riskcenter-ui/src/api/Common/Upload.js
  67. 49
      anrui-riskcenter-ui/src/api/Common/areaPicker.js
  68. 13
      anrui-riskcenter-ui/src/api/Common/permission.js
  69. 36
      anrui-riskcenter-ui/src/api/User/login.js
  70. 44
      anrui-riskcenter-ui/src/api/system/Role/role.js
  71. 44
      anrui-riskcenter-ui/src/api/user.js
  72. BIN
      anrui-riskcenter-ui/src/assets/404_images/404.png
  73. BIN
      anrui-riskcenter-ui/src/assets/404_images/404_cloud.png
  74. BIN
      anrui-riskcenter-ui/src/assets/home/anrui.png
  75. BIN
      anrui-riskcenter-ui/src/assets/home/bIcon1.png
  76. BIN
      anrui-riskcenter-ui/src/assets/home/bIcon2.png
  77. BIN
      anrui-riskcenter-ui/src/assets/home/bIcon3.png
  78. BIN
      anrui-riskcenter-ui/src/assets/home/bIcon4.png
  79. BIN
      anrui-riskcenter-ui/src/assets/home/bIcon5.png
  80. BIN
      anrui-riskcenter-ui/src/assets/home/bIcon6.png
  81. BIN
      anrui-riskcenter-ui/src/assets/home/bIcon7.png
  82. BIN
      anrui-riskcenter-ui/src/assets/home/bIcon8.png
  83. BIN
      anrui-riskcenter-ui/src/assets/home/bottomBg.png
  84. BIN
      anrui-riskcenter-ui/src/assets/home/line.png
  85. BIN
      anrui-riskcenter-ui/src/assets/home/ltBg.png
  86. BIN
      anrui-riskcenter-ui/src/assets/home/ltIcon1.png
  87. BIN
      anrui-riskcenter-ui/src/assets/home/ltIcon2.png
  88. BIN
      anrui-riskcenter-ui/src/assets/home/ltIcon3.png
  89. BIN
      anrui-riskcenter-ui/src/assets/home/ltIcon4.png
  90. BIN
      anrui-riskcenter-ui/src/assets/home/notice.png
  91. BIN
      anrui-riskcenter-ui/src/assets/home/rtBg.png
  92. BIN
      anrui-riskcenter-ui/src/assets/images/arrow.png
  93. BIN
      anrui-riskcenter-ui/src/assets/images/bdrysh.png
  94. BIN
      anrui-riskcenter-ui/src/assets/images/btn.png
  95. BIN
      anrui-riskcenter-ui/src/assets/images/cdgl.png
  96. BIN
      anrui-riskcenter-ui/src/assets/images/cxjl.png
  97. BIN
      anrui-riskcenter-ui/src/assets/images/czsc.png
  98. BIN
      anrui-riskcenter-ui/src/assets/images/dwrysh.png
  99. BIN
      anrui-riskcenter-ui/src/assets/images/dwxxgl.png
  100. BIN
      anrui-riskcenter-ui/src/assets/images/dy.png

2
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdiscountpackagehandover/BusDiscountpackageHandoverQuery.java

@ -35,7 +35,7 @@ public class BusDiscountpackageHandoverQuery implements Query {
private String recName; // 客户名称
@ApiModelProperty("组织全路径")
private String orgSidPath;
private String orgPath;
@ApiModelProperty("菜单sid")
private String menuSid;
@ApiModelProperty("菜单url")

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

@ -17,6 +17,7 @@ import java.util.List;
@NoArgsConstructor
@AllArgsConstructor
public class AppInformationHandoverInfoVo implements Vo {
private Integer isFuelVehicle;
private String sid;
private String contractId;
private String customerName;

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

@ -29,7 +29,7 @@ public class AppSaveDataDto implements Dto {
private String modelSid;
private String modelOrgPath;
private List<AppManiFestBean> maniFestBeanList;
private String orgPath;
@ApiModelProperty("车钥匙个数")
private Integer vehicleKeyNum; // 车钥匙个数
@ApiModelProperty("一致性证书0无1有")

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

@ -21,4 +21,5 @@ public class AppTwoDto implements Dto {
private String modelSid;
private String modelOrgPath;
private String docs;
private String orgPath;
}

1
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busvehicleinformationhandover/BusVehicleInformationHandoverDetailsVo.java

@ -36,5 +36,4 @@ public class BusVehicleInformationHandoverDetailsVo implements Vo {
private String recName; // 接收人
@ApiModelProperty("随车资料")
private BusVehicleInformationVo busVehicleInformation;
}

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyMapper.xml

@ -133,7 +133,7 @@
</select>
<select id="selectNumByContractNo" resultType="int">
select sum(bddd.giveNum) from bus_delivered_details_discount bddd left join bus_delivered bd on bd.sid = bddd.applySid
select IFNULL(sum(bddd.giveNum),0) from bus_delivered_details_discount bddd left join bus_delivered bd on bd.sid = bddd.applySid
where contractNo = #{contractId} and (bd.state =2 or bd.state = 3)
</select>
</mapper>

4
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdiscountpackagehandover/BusDiscountpackageHandoverService.java

@ -175,14 +175,14 @@ public class BusDiscountpackageHandoverService extends MybatisBaseService<BusDis
//层级筛选
//=======================
PrivilegeQuery privilegeQuery = new PrivilegeQuery();
privilegeQuery.setOrgPath(query.getOrgSidPath());
privilegeQuery.setOrgPath(query.getOrgPath());
//privilegeQuery.setMenuSid(query.getMenuSid());
privilegeQuery.setMenuUrl(query.getMenuUrl());
privilegeQuery.setUserSid(query.getUserSid());
ResultBean<String> defaultIdReltBean = sysUserFeign.selectPrivilegeLevel(privilegeQuery);
if (StringUtils.isNotBlank(defaultIdReltBean.getData())) {
//数据权限ID(1集团、2事业部、3分公司、4部门、5个人)
String orgSidPath = query.getOrgSidPath();
String orgSidPath = query.getOrgPath();
orgSidPath = orgSidPath + "/";
int i1 = orgSidPath.indexOf("/");
int i2 = orgSidPath.indexOf("/", i1 + 1);

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

@ -1036,36 +1036,37 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
}
}
baseMapper.insert(busHandover);
ResultBean<List<String>> pdf = createPdf(busHandover.getSid());
String path = "";
if (pdf.getSuccess()) {
//打印pdf
List<String> filePaths = pdf.getData();
List<File> fileList = new ArrayList<>();
if (!filePaths.isEmpty()) {
for (String filePath : filePaths) {
File file = new File(filePath);
fileList.add(file);
}
}
String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
long seconds = System.currentTimeMillis();
String targetPath = docPdfComponent.getUploadTemplateUrl();
File file = WordConvertUtils.mulFile2One(fileList, targetPath + dateStr + seconds + "交车确认.pdf");
if (fileList.size() <= 0) {
path = null;
} else {
for (File fileDelete : fileList) {
fileDelete.delete();
}
path = dateStr + seconds + "交车确认.pdf";
}
}
BusHandover entity = fetchBySid(busHandover.getSid());
entity.setFilePath(path);
baseMapper.updateById(entity);
String temp = "/template/";
return rb.success().setData(temp + path);
// ResultBean<List<String>> pdf = createPdf(busHandover.getSid());
// String path = "";
// if (pdf.getSuccess()) {
// //打印pdf
// List<String> filePaths = pdf.getData();
// List<File> fileList = new ArrayList<>();
// if (!filePaths.isEmpty()) {
// for (String filePath : filePaths) {
// File file = new File(filePath);
// fileList.add(file);
// }
// }
// String dateStr = DateUtil.format(new Date(), "yyyyMMdd");
// long seconds = System.currentTimeMillis();
// String targetPath = docPdfComponent.getUploadTemplateUrl();
// File file = WordConvertUtils.mulFile2One(fileList, targetPath + dateStr + seconds + "交车确认.pdf");
// if (fileList.size() <= 0) {
// path = null;
// } else {
// for (File fileDelete : fileList) {
// fileDelete.delete();
// }
// path = dateStr + seconds + "交车确认.pdf";
// }
// }
// BusHandover entity = fetchBySid(busHandover.getSid());
// entity.setFilePath(path);
// baseMapper.updateById(entity);
// String temp = "/template/";
// return rb.success().setData(temp + path);
return rb.success().setData("");
}
/**
@ -1447,26 +1448,28 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
List<BusHandoverItems> itemsList = busHandoverItemsService.getItemsListByMainSid(sid).getData();
itemsList.removeAll(Collections.singleton(null));
for (BusHandoverItems v : itemsList) {
BusHandoverItemListDetailsVo detailsVo = new BusHandoverItemListDetailsVo();
String handoverPhoto = v.getHandoverPhoto();
String policyPhoto = v.getPolicyPhoto();
BeanUtil.copyProperties(v, detailsVo);
if (StringUtils.isNotBlank(handoverPhoto)) {
List<String> stringList = Arrays.asList(handoverPhoto.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
detailsVo.setDeliveryImages(stringList);
}
BusHandoverPrepareVehicle busHandoverPrepareVehicle = busHandoverPrepareVehicleService.fetchDetailsByVinSid(v.getVinSid());
if (null != busHandoverPrepareVehicle) {
List<BuscenterFile> fileList = buscenterFileService.selectByLinkSid(busHandoverPrepareVehicle.getSid(), BuscenterFileEnum.HANDOVER_POLICY.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> policyPhotoList = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
detailsVo.setPolicyImages(policyPhotoList);
if ("主车".equals(v.getVehivelOrTrailer())) {
BusHandoverItemListDetailsVo detailsVo = new BusHandoverItemListDetailsVo();
String handoverPhoto = v.getHandoverPhoto();
String policyPhoto = v.getPolicyPhoto();
BeanUtil.copyProperties(v, detailsVo);
if (StringUtils.isNotBlank(handoverPhoto)) {
List<String> stringList = Arrays.asList(handoverPhoto.split(",")).stream().map(c -> fileUploadComponent.getUrlPrefix() + c).collect(Collectors.toList());
detailsVo.setDeliveryImages(stringList);
}
BusHandoverPrepareVehicle busHandoverPrepareVehicle = busHandoverPrepareVehicleService.fetchDetailsByVinSid(v.getVinSid());
if (null != busHandoverPrepareVehicle) {
List<BuscenterFile> fileList = buscenterFileService.selectByLinkSid(busHandoverPrepareVehicle.getSid(), BuscenterFileEnum.HANDOVER_POLICY.getAttachType());
fileList.removeAll(Collections.singleton(null));
if (!fileList.isEmpty()) {
List<String> policyPhotoList = fileList.stream().map(c -> fileUploadComponent.getUrlPrefix() + c.getFilePath()).
collect(Collectors.toList());
detailsVo.setPolicyImages(policyPhotoList);
}
}
detailsVo.setVinSid(v.getVinSid());
items.add(detailsVo);
}
detailsVo.setVinSid(v.getVinSid());
items.add(detailsVo);
}
vo.setCarList(items);
//接收车辆确认书照片
@ -2185,7 +2188,7 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
// if (receiveSidList.size() == 1 && receiveSidList.get(0).equals(busVehicleApply.getCreateBySid())) {
if ("销售专员提交申请".equals(nextName)) {
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
SysUserVo userVo = sysUserFeign.fetchBySid(busHandover.getCreateBySid()).getData();
@ -2671,13 +2674,14 @@ public class BusHandoverService extends MybatisBaseService<BusHandoverMapper, Bu
pdfVo.setColor("-");
pdfVo.setListPdfVos(listPdfVos);
String uploadTemplateUrl = docPdfComponent.getUploadTemplateUrl();
String s = receiveVehicleConfirmationCreatePdf(pdfVo);
BusHandover entity = fetchBySid(sid);
String savePath = s.substring(uploadTemplateUrl.length());
entity.setTrailerFilePath(savePath);
baseMapper.updateById(entity);
String temp = "/template/";
return rb.success().setData(temp + savePath);
// String s = receiveVehicleConfirmationCreatePdf(pdfVo);
// BusHandover entity = fetchBySid(sid);
// String savePath = s.substring(uploadTemplateUrl.length());
// entity.setTrailerFilePath(savePath);
// baseMapper.updateById(entity);
// String temp = "/template/";
// return rb.success().setData(temp + savePath);
return rb.success().setData("");
}

13
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bushandoverpreparevehicle/BusHandoverPrepareVehicleService.java

@ -28,6 +28,7 @@ package com.yxt.anrui.buscenter.biz.bushandoverpreparevehicle;
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.common.enums.CertificState;
import com.yxt.anrui.buscenter.api.bushandoverprepare.BusHandoverPrepare;
import com.yxt.anrui.buscenter.api.bushandoverprepare.HandoverInformationIntemVo;
import com.yxt.anrui.buscenter.api.bushandoverpreparevehicle.*;
@ -147,7 +148,8 @@ public class BusHandoverPrepareVehicleService extends MybatisBaseService<BusHand
List<BusVehicleInformation> busVehicleInformationList = busVehicleInformationService.selectByMainSids(busVehicleInformationHandover.getSid());
busVehicleInformationList.removeAll(Collections.singleton(null));
if (busVehicleInformationList.isEmpty() && !vo.isOnBoardDataState()) {
vo.setOnBoardDataStateStr("接收确认");
// vo.setOnBoardDataStateStr("接收确认");
vo.setOnBoardDataState(false);
}else{
//随车资料的状态控制
if(busVehicleInformationHandover.getCompleteState() == 0){//未完成
@ -158,6 +160,7 @@ public class BusHandoverPrepareVehicleService extends MybatisBaseService<BusHand
HandoverInformationIntemVo handoverInformationIntemVo = listTwo.get(0);
if(StringUtils.isBlank(handoverInformationIntemVo.getRecTime())){
vo.setOnBoardDataState(false);
vo.setOnBoardDataStateStr("接收确认");
}else{
vo.setOnBoardDataState(true);
}
@ -166,7 +169,13 @@ public class BusHandoverPrepareVehicleService extends MybatisBaseService<BusHand
vo.setOnBoardDataStateStr("接收确认");
}
}else{
vo.setOnBoardDataState(true);
if(CertificState.TransferState.TRANSTATE_YYJ.getCode().equals(busVehicleInformationHandover.getTransferStateKey())){
vo.setOnBoardDataState(true);
}else{
vo.setOnBoardDataState(false);
vo.setOnBoardDataStateStr("接收确认");
}
}
}
}

26
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -409,7 +409,7 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
initBigDecimalTwo = initBigDecimalTwo.add(stringList.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add));
}
if (initBigDecimalTwo.compareTo(BigDecimal.ZERO) != 0) {
vinList.set(i, vinList.get(i) + "促销(" + initBigDecimalTwo.toString() + "元)");
vinList.set(i, vinList.get(i) + "促销(" + initBigDecimalTwo.toString() + "元)");
}
}
}
@ -458,21 +458,27 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
List<VinListsVo> vinLists = busSalesOrderVehicleService.selectLists(sid);
//包含采购系统的车架号
List<String> vinList = vinLists.stream().map(v -> v.getVinNo()).collect(Collectors.toList());
if (!vinList.isEmpty()) {
for (int i = 0; i < vinLists.size(); i++) {
VinListsVo vinListsVo = vinLists.get(i);
BigDecimal initBigDecimalTwo = BigDecimal.ZERO;
//根据sid去查询销售政策的sid,根据销售政策查询销售政策的金额
ResultBean<List<String>> listResultBean = baseDiscountpackageFeign.getMoney(vinListsVo.getVinSid(), entity.getUseOrgSid());
if (listResultBean.getSuccess() && !listResultBean.getData().isEmpty()) {
List<String> stringList = listResultBean.getData();
initBigDecimalTwo = initBigDecimalTwo.add(stringList.stream().map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add));
}
if (initBigDecimalTwo.compareTo(BigDecimal.ZERO) != 0) {
vinList.set(i, vinList.get(i) + ",促销(" + initBigDecimalTwo.toString() + "元)");
}
}
}
busSalesOrderModelDetailsVo.setVinNo(vinList);
/* List<BusSalesOrderVehicleDetailsVo> busSalesOrderVehicleListVoList = busSalesOrderVehicleService.detailsList(entity.getSid());
if (busSalesOrderVehicleListVoList.size() != 0) {
vo.setBusSalesOrderVehicleList(busSalesOrderVehicleListVoList);
}*/
} else if (BusSalesOrderConstantUtils.TypeEnum.PURCHASE_ORDER.getCode().equals(entity.getType())) {
List<BusSalesVehicleOrder> stringLists = busSalesVehicleOrderService.selectLists(sid);
//包含采购系统的采购订单编号
List<String> stringList = stringLists.stream().map(v -> v.getLinkNo()).collect(Collectors.toList());
busSalesOrderModelDetailsVo.setLinkNo(stringList);
//查询采购订单
// List<BusSalesVehicleOrderDetailsVo> busSalesVehicleOrderDetailsVoList = busSalesVehicleOrderService.detailsList(entity.getSid());
// if (busSalesVehicleOrderDetailsVoList.size() != 0) {
// vo.setBusSalesVehicleOrderList(busSalesVehicleOrderDetailsVoList);
// }
}
vo.setBusSalesOrderModel(busSalesOrderModelDetailsVo);
}

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdiscount/BusSalesOrderDiscountMapper.xml

@ -72,7 +72,7 @@
</select>
<select id="selectByContractNo" resultType="int">
select sum(bddd.num) from bus_sales_order_discount bddd left join bus_sales_order bo on bo.sid = bddd.salesOrderSid
select IFNULL(sum(bddd.num),0) from bus_sales_order_discount bddd left join bus_sales_order bo on bo.sid = bddd.salesOrderSid
where bo.contractNo = #{contractId}
</select>
</mapper>

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

@ -95,7 +95,8 @@
model,
contractNo as contractId,
customerName,
remarks
remarks,
isFuelVehicle
FROM bus_vehicle_information_handover
where sid = #{sid}
</select>

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

@ -148,6 +148,9 @@ public class BusVehicleInformationHandoverService extends MybatisBaseService<Bus
//一次交接
BusVehicleInformation newInformation = new BusVehicleInformation();
BeanUtil.copyProperties(informationDto, newInformation, "id", "sid");
if (null == informationDto.getGasCertificate()) {
newInformation.setGasCertificate(0);
}
//移交状态改为移交中
entity.setTransferStateKey("003");
entity.setTransferStateValue("移交中");
@ -679,7 +682,9 @@ public class BusVehicleInformationHandoverService extends MybatisBaseService<Bus
list.add(new AppManiFestBean(0, "保修手册、说明书", "manual", "", new ArrayList<>()));
list.add(new AppManiFestBean(0, "环保清单", "environmentalList", "", new ArrayList<>()));
list.add(new AppManiFestBean(0, "驾驶员卡", "dirverCard", "", new ArrayList<>()));
list.add(new AppManiFestBean(0, "气瓶产品质量证明书(燃气车)", "gasCertificate", "", new ArrayList<>()));
if (vo.getIsFuelVehicle() == 0) {
list.add(new AppManiFestBean(0, "气瓶产品质量证明书(燃气车)", "gasCertificate", "", new ArrayList<>()));
}
vo.setManiFestBeanList(list);
return rb.success().setData(vo);
}
@ -696,7 +701,7 @@ public class BusVehicleInformationHandoverService extends MybatisBaseService<Bus
BusVehicleInformationHandover entity = fetchBySid(sid);
String receiverSid = entity.getReceiverSid();
SysUserVo sysUserVo = sysUserFeign.fetchBySid(dto.getUserSid()).getData();
String orgPath = sysUserVo.getOrgSidPath();
String orgPath = dto.getOrgPath();
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.selectByOrgSidPath(orgPath).getData();
List<AppManiFestBean> maniFestBeanList = dto.getManiFestBeanList();
for (AppManiFestBean appManiFestBean : maniFestBeanList) {
@ -725,6 +730,9 @@ public class BusVehicleInformationHandoverService extends MybatisBaseService<Bus
if (StringUtils.isNotBlank(dto.getRemarks())) {
dto.setTransferRemarks(dto.getRemarks());
}
if (null == dto.getGasCertificate()) {
dto.setGasCertificate(0);
}
StringBuffer str = new StringBuffer();
//车钥匙
if (dto.getVehicleKeyNum() > 0) {
@ -797,8 +805,6 @@ public class BusVehicleInformationHandoverService extends MybatisBaseService<Bus
} else {
entity.setCompleteState(1);
}
} else {
entity.setCompleteState(1);
}
}
}
@ -902,7 +908,7 @@ public class BusVehicleInformationHandoverService extends MybatisBaseService<Bus
BusVehicleInformationHandover handover = fetchBySid(sid);
String receiverSid = handover.getReceiverSid();
SysUserVo sysUserVo = sysUserFeign.fetchBySid(dto.getUserSid()).getData();
String orgPath = sysUserVo.getOrgSidPath();
String orgPath = dto.getOrgPath();
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.selectByOrgSidPath(orgPath).getData();
List<BusVehicleInformation> informations = busVehicleInformationService.getByHandoverSid(sid);
if (informations.size() == 1) {

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

@ -54,47 +54,47 @@
</div>
</template>
</el-table-column>
<el-table-column label="创建日期" align="center">
<el-table-column label="创建日期" align="center" width="110">
<template slot-scope="scope">
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center">
<el-table-column label="合同编号" align="center" width="110">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column label="客户名称" align="center" width="180">
<el-table-column label="客户名称" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.customerName }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center" width="180">
<el-table-column label="车型" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.vehModel }}</span>
</template>
</el-table-column>
<el-table-column label="出库台数" align="center" width="180">
<el-table-column label="出库台数" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.vehCount }}</span>
</template>
</el-table-column>
<el-table-column label="待接收人" align="center" width="180">
<el-table-column label="待接收人" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.recName }}</span>
</template>
</el-table-column>
<el-table-column label="待接收人电话" align="center" width="180">
<el-table-column label="待接收人电话" align="center" width="160">
<template slot-scope="scope">
<span>{{ scope.row.recPhone }}</span>
</template>
</el-table-column>
<el-table-column label="移交人" align="center" width="180">
<el-table-column label="移交人" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.transferName }}</span>
</template>
</el-table-column>
<el-table-column label="移交人电话" align="center" width="180">
<el-table-column label="移交人电话" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.transferPhone }}</span>
</template>

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

@ -49,50 +49,50 @@
</el-table-column>
<el-table-column label="状态" align="center">
<template slot-scope="scope">
<span>{{ scope.row.state == 1 ? '待准备' : scope.row.state == 2 ? '待交接' : scope.row.state == 3 ? '已交接' : '其他' }}</span>
<span>{{ scope.row.transferstateValue }}</span>
</template>
</el-table-column>
<el-table-column label="创建日期" align="center">
<el-table-column label="创建日期" align="center" width="110">
<template slot-scope="scope">
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center">
<el-table-column label="合同编号" align="center" width="110">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column label="客户名称" align="center" width="180">
<el-table-column label="客户名称" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.customerName }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center" width="180">
<el-table-column label="车型" align="center" min-width="150">
<template slot-scope="scope">
<span>{{ scope.row.vehModel }}</span>
</template>
</el-table-column>
<el-table-column label="出库台数" align="center" width="180">
<el-table-column label="出库台数" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.vehCount }}</span>
</template>
</el-table-column>
<el-table-column label="待接收人" align="center" width="180">
<el-table-column label="待接收人" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.recName }}</span>
</template>
</el-table-column>
<el-table-column label="待接收人电话" align="center" width="180">
<el-table-column label="待接收人电话" align="center" width="160">
<template slot-scope="scope">
<span>{{ scope.row.recPhone }}</span>
</template>
</el-table-column>
<el-table-column label="移交人" align="center" width="180">
<el-table-column label="移交人" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.transferName }}</span>
</template>
</el-table-column>
<el-table-column label="移交人电话" align="center" width="180">
<el-table-column label="移交人电话" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.transferPhone }}</span>
</template>

6
anrui-buscenter/anrui-buscenter-ui/src/views/fapiaoneibujieshou/InternalinvoicereceiveAdd.vue

@ -143,8 +143,10 @@ export default {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
for (var i = 0; i < this.formobj.receiveFilesList.length; i++) {
this.params.receiveFilesList.push(this.formobj.receiveFilesList[i].url)
if (this.formobj.receiveFilesList > 0) {
for (var i = 0; i < this.formobj.receiveFilesList.length; i++) {
this.params.receiveFilesList.push(this.formobj.receiveFilesList[i].url)
}
}
this.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.params.userSid = window.sessionStorage.getItem('userSid')

12
anrui-buscenter/anrui-buscenter-ui/src/views/fapiaoneibujieshou/Internalinvoicetobereceived.vue

@ -148,7 +148,7 @@
</el-row>
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span class="icon">*</span>接收附件</div>
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center">接收附件</div>
<el-form-item> <upload ref="uploadImg" class="addinputInfo" v-model="image_list1" :accept="accept" :limit="50" bucket="map" :upload-data="{ type: '0001' }"/></el-form-item>
</el-col>
</el-row>
@ -365,12 +365,10 @@ export default {
}
},
handleConfirm() {
if (this.image_list1.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请上传接收附件' })
return
}
for (var i = 0; i< this.image_list1.length; i++) {
this.formobj.receiveFilesList.push(this.image_list1[i].url)
if (this.image_list1.length > 0) {
for (var i = 0; i< this.image_list1.length; i++) {
this.formobj.receiveFilesList.push(this.image_list1[i].url)
}
}
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.formobj.userSid = window.sessionStorage.getItem('userSid')

8
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationDaiBanInfo.vue

@ -79,7 +79,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>接收车辆确认书</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.receiveCarImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>
@ -87,7 +87,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>委托提车授权书及委托人身份证</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.entrustImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>
@ -95,7 +95,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>交车资料确认单</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.entrustConfirmImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>
@ -103,7 +103,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>出门证照片</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.exitTicketImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>

8
anrui-buscenter/anrui-buscenter-ui/src/views/workflow/jiaochebanliFlow/deliveryconfirmationYiBanInfo.vue

@ -77,7 +77,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>接收车辆确认书</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.receiveCarImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>
@ -85,7 +85,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>委托提车授权书及委托人身份证</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.entrustImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>
@ -93,7 +93,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>交车资料确认单</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.entrustConfirmImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>
@ -101,7 +101,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>出门证照片</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.exitTicketImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>

12
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmation.vue

@ -320,18 +320,6 @@ export default {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.getUrl()
if (this.formobj.receiveCarImages.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请上传接受车辆确认书' })
return
}
if (this.formobj.entrustConfirmImages.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请上传交车资料确认单' })
return
}
if (this.formobj.exitTicketImages.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请上传出门证照片' })
return
}
this.submitdisabled = true
submit(this.formobj).then((respsone) => {
if (respsone.success) {

8
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/deliveryconfirmationInfo.vue

@ -77,7 +77,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>接收车辆确认书</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.receiveCarImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>
@ -85,7 +85,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>委托提车授权书及委托人身份证</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.entrustImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>
@ -93,7 +93,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>交车资料确认单</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.entrustConfirmImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>
@ -101,7 +101,7 @@
<el-row>
<el-col :span="24">
<div class="span-sty" style="display: flex;flex-direction: row;justify-content: flex-end;align-items: center"><span>出门证照片</span></div>
<el-form-item>
<el-form-item style="height: 178px;width: 178px">
<el-image class="addinputInfo" style="height: 178px;width: 178px" v-for="(item, index) in formobj.exitTicketImages" :key="index" :src="item" :preview-src-list="formobj.receiveCarImages"/>
</el-form-item>
</el-col>

19
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerconfirmeddelivery.vue

@ -35,9 +35,7 @@
<el-col :span="16">
<div class="span-sty"><span><span class="icon">*</span>车辆交付地点</span></div>
<el-form-item prop="deliverAddress">
<el-select class="addinputInfo" v-model="formobj.deliverAddress" placeholder="请选择" @change="changeAddress" filterable clearable>
<el-option v-for="item in warehouwarehouse_list" :key="item.sid" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
<el-form-item prop="mobile"><el-input v-model="formobj.deliverAddress" clearable placeholder="" class="addinputInfo addinputw" style="width: 50%"/></el-form-item>
</el-form-item>
</el-col>
</el-row>
@ -48,7 +46,6 @@
<script>
import { saveGcVinBill } from '@/api/jiaochebanli/cardelivery'
import { selectWarehouseByUserSid } from '@/api/dictcommons/dictcommons'
export default {
name: 'GuaCheJiaoFuQueRen',
@ -56,7 +53,6 @@ export default {
return {
viewTitle: '',
submitdisabled: false,
warehouwarehouse_list: [],
formobj: {
sid: '',
userSid: '',
@ -66,7 +62,6 @@ export default {
mobile: '',
deliverDate: '',
deliverAddress: '',
deliverAddressKey: ''
},
rules: {
recipient: [{ required: true, message: '接收人不能为空', trigger: 'blur' }],
@ -92,15 +87,6 @@ export default {
day: nowDate.getDate()
}
this.formobj.deliverDate = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day)
selectWarehouseByUserSid({ userSid: window.sessionStorage.getItem('userSid'), orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((res) => {
if (res.success) {
this.warehouwarehouse_list = res.data
}
})
},
changeAddress(value) {
const choose = this.warehouwarehouse_list.filter((item) => item.dictValue === value)
this.formobj.deliverAddressKey = choose[0].sid
},
handleConfirm() {
this.$refs['form_obj'].validate((valid) => {
@ -132,8 +118,7 @@ export default {
idNo: '',
mobile: '',
deliverDate: '',
deliverAddress: '',
deliverAddressKey: ''
deliverAddress: ''
}
this.submitdisabled = false
this.$refs['form_obj'].resetFields()

4
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/jiaochebanli/trailerdeliveryconfirmation.vue

@ -222,10 +222,6 @@ export default {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.getUrl()
if (this.formobj.receiveCarImages.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请上传接受车辆确认书' })
return
}
this.submitdisabled = true
saveDeliveryConfirmGcInfo(this.formobj).then((resp) => {
if (resp.success) {

6
anrui-buscenter/anrui-buscenter-ui/src/views/xiaoshouguanli/suicheziliaojiaojie/cardatahandedoverAdd.vue

@ -100,7 +100,7 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-row v-if="formobj.isFuelVehicle == '1'">
<el-col :span="24">
<div class="span-sty"><span class="icon">*</span>气瓶产品质量证明书(燃气车)</div>
<el-form-item>
@ -155,6 +155,7 @@ export default {
transferRemarks: '',
transferName: '',
recTime: '',
isFuelVehicle: false
}
},
rules: {}
@ -241,7 +242,8 @@ export default {
gasCertificate: '',
transferRemarks: '',
transferName: '',
recTime: ''
recTime: '',
isFuelVehicle: false
}
}
this.submitdisabled = false

11
anrui-buscenter/anrui-finmanage-ui/src/api/anruifinmanagement/paymentConfirmation.js

@ -171,3 +171,14 @@ export function ctskd(data) {
headers: { 'Content-Type': 'application/json' }
})
}
// 选择已认款项
export function selectPageList(data) {
return request({
url: '/fin/finselectedreceivablesdetailed/selectPageList',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}

687
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/agencyfund/agencyfundAdd.vue

@ -1,324 +1,328 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
</div>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" class="formadd">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>申请部门</span>
</el-col>
<el-col :span="4">
<el-form-item>
<span>{{ formobj.createDept }}</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.createByName }}</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.createDate }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>销售部门</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="staffDeptName">
<el-select v-model="formobj.staffDeptName" placeholder="请选择" :disabled="forbidden" @change="changeStaffDept" filterable>
<el-option v-for="item in staffDept_list" :key="item.orgDeptSid" :label="item.orgDeptName" :value="item.orgDeptName"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>销售专员</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="staffName">
<el-select v-model="formobj.staffName" placeholder="请选择" :disabled="forbidden" @change="changeStaff" filterable>
<el-option v-for="item in staff_list" :key="item.staffSid" :label="item.staffName" :value="item.staffName"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>采购系统</span>
</el-col>
<el-col :span="4">
<el-form-item prop="purchaseSystemName">
<el-select v-model="formobj.purchaseSystemName" placeholder="请选择" :disabled="forbidden" @change="changePurchase" filterable clearable>
<el-option v-for="item in purchase_list" :key="item.deptSid" :label="item.purchaseSystemName" :value="item.purchaseSystemName"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款方式</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionTypeValue">
<el-select v-model="formobj.collectionTypeValue" placeholder="请选择" :disabled="forbidden" @change="changeCollectionType" filterable clearable>
<el-option v-for="item in receiptType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款金额()</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionMoney">
<el-input v-model="formobj.collectionMoney" @keyup.native="UpNumber" @keydown.native="UpNumber" :disabled="forbidden" @change="changeCollectionMoney" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款日期</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionDate">
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.collectionDate" :disabled="forbidden" clearable type="date" style="width: 93%" placeholder="请选择"/>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'">
<el-col :span="4" class="tleftb balanceStyle">
<span><span class="icon">*</span>收款银行账号</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<el-select v-model="formobj.collectionBankNum" placeholder="请选择" :disabled="forbidden" @change="changeCollectionBankNum" filterable clearable>
<el-option v-for="item in collectionBankNum_list" :key="item.accountSid" :label="item.bankAccount" :value="item.bankAccount"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb balanceStyle">
<span>收款账户名称</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<span>{{ formobj.receivingName }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb balanceStyle">
<span>收款银行</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<span>{{ formobj.collectionBank }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>付款方名称</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="payerName">
<el-input v-model="formobj.payerName" :disabled="forbidden" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'"><span class="icon">*</span>付款账号后4位</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item>
<el-input v-model="formobj.payAccount" v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'" :disabled="forbidden" maxlength="4" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'">付款银行</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item>
<el-input v-model="formobj.payBank" v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'" :disabled="forbidden" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>备注</span>
</el-col>
<el-col :span="20" class="trightb">
<el-form-item>
<el-input v-model="formobj.remarks" :disabled="forbidden" style="width: 70%" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>打款凭证</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<Upload v-show="forbidden !== true" style="float:left;" ref="remit" @handleSuccess="remitAdd" @handleRemove="remitRemove" />
<span v-show="forbidden == true" v-for="(item, index) in list1" :key="index">{{ item.name }}
</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>汇款确认书</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<Upload style="float:left;" ref="remittance" @handleSuccess="remittanceAdd" @handleRemove="remittanceRemove" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="padding: 0px">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="合同编号:">
<el-input v-model="listQuery.contractNo" size="mini" placeholder="" style="width: 110px" clearable/>
<div class="listconadd">
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" class="formadd">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>申请部门</span>
</el-col>
<el-col :span="4">
<el-form-item>
<span>{{ formobj.createDept }}</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.createByName }}</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.createDate }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>销售部门</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="staffDeptName">
<el-select v-model="formobj.staffDeptName" placeholder="请选择" :disabled="forbidden" @change="changeStaffDept" filterable>
<el-option v-for="item in staffDept_list" :key="item.orgDeptSid" :label="item.orgDeptName" :value="item.orgDeptName"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>销售专员</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="staffName">
<el-select v-model="formobj.staffName" placeholder="请选择" :disabled="forbidden" @change="changeStaff" filterable>
<el-option v-for="item in staff_list" :key="item.staffSid" :label="item.staffName" :value="item.staffName"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>采购系统</span>
</el-col>
<el-col :span="4">
<el-form-item prop="purchaseSystemName">
<el-select v-model="formobj.purchaseSystemName" placeholder="请选择" :disabled="forbidden" @change="changePurchase" filterable clearable>
<el-option v-for="item in purchase_list" :key="item.deptSid" :label="item.purchaseSystemName" :value="item.purchaseSystemName"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款方式</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionTypeValue">
<el-select v-model="formobj.collectionTypeValue" placeholder="请选择" :disabled="forbidden" @change="changeCollectionType" filterable clearable>
<el-option v-for="item in receiptType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款金额()</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionMoney">
<el-input v-model="formobj.collectionMoney" @keyup.native="UpNumber" @keydown.native="UpNumber" :disabled="forbidden" @change="changeCollectionMoney" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款日期</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionDate">
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.collectionDate" :disabled="forbidden" clearable type="date" style="width: 93%" placeholder="请选择"/>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'">
<el-col :span="4" class="tleftb balanceStyle">
<span><span class="icon">*</span>收款银行账号</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<el-select v-model="formobj.collectionBankNum" placeholder="请选择" :disabled="forbidden" @change="changeCollectionBankNum" filterable clearable>
<el-option v-for="item in collectionBankNum_list" :key="item.accountSid" :label="item.bankAccount" :value="item.bankAccount"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb balanceStyle">
<span>收款账户名称</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<span>{{ formobj.receivingName }}</span>
</el-form-item>
<el-form-item label="客户名称:">
<el-input v-model="listQuery.customerName" size="mini" placeholder="" style="width: 100px" clearable/>
</el-col>
<el-col :span="4" class="tleftb balanceStyle">
<span>收款银行</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<span>{{ formobj.collectionBank }}</span>
</el-form-item>
<el-form-item label="联系电话:">
<el-input v-model="listQuery.customerPhone" size="mini" placeholder="" style="width: 140px" clearable/>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>付款方名称</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="payerName">
<el-input v-model="formobj.payerName" :disabled="forbidden" placeholder="" clearable/>
</el-form-item>
<el-form-item label="车架号:">
<el-input v-model="listQuery.vinNo" size="mini" placeholder="" style="width: 140px" clearable/>
</el-col>
<el-col :span="4" class="tleftb">
<span v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'"><span class="icon">*</span>付款账号后4位</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item>
<el-input v-model="formobj.payAccount" v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'" :disabled="forbidden" maxlength="4" placeholder="" clearable/>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div style="padding-left: 20%">
<el-button type="primary" size="mini" @click="handleFilter">查询</el-button>
<el-button type="primary" size="mini" @click="handReset">重置</el-button>
</el-col>
<el-col :span="4" class="tleftb">
<span v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'">付款银行</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item>
<el-input v-model="formobj.payBank" v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'" :disabled="forbidden" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>备注</span>
</el-col>
<el-col :span="20" class="trightb">
<el-form-item>
<el-input v-model="formobj.remarks" :disabled="forbidden" style="width: 70%" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>打款凭证</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<Upload v-show="forbidden !== true" style="float:left;" ref="remit" @handleSuccess="remitAdd" @handleRemove="remitRemove" />
<span v-show="forbidden == true" v-for="(item, index) in list1" :key="index">{{ item.name }}
</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>汇款确认书</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<Upload style="float:left;" ref="remittance" @handleSuccess="remittanceAdd" @handleRemove="remittanceRemove" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="padding: 0px">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="合同编号:">
<el-input v-model="listQuery.contractNo" size="mini" placeholder="" style="width: 110px" clearable/>
</el-form-item>
<el-form-item label="客户名称:">
<el-input v-model="listQuery.customerName" size="mini" placeholder="" style="width: 100px" clearable/>
</el-form-item>
<el-form-item label="联系电话:">
<el-input v-model="listQuery.customerPhone" size="mini" placeholder="" style="width: 140px" clearable/>
</el-form-item>
<el-form-item label="车架号:">
<el-input v-model="listQuery.vinNo" size="mini" placeholder="" style="width: 140px" clearable/>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div style="padding-left: 20%">
<el-button type="primary" size="mini" @click="handleFilter">查询</el-button>
<el-button type="primary" size="mini" @click="handReset">重置</el-button>
<el-button type="primary" size="mini" @click="handleSelect">选择已认款项</el-button>
</div>
<div>
<span >余额:</span><el-input v-model="balance" placeholder="" style="width: 120px" readonly/>
</div>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<div>
<span >余额:</span><el-input v-model="balance" placeholder="" style="width: 120px" readonly/>
<div class="tableTitle">应收未收款款项明细</div>
<el-table border :key="overduereceivableKey" width="100%" :data="overduereceivable_list">
<el-table-column fixed label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="handAdd(scope.row)">添加</el-button>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.contractNo }}
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.VIN }}
</template>
</el-table-column>
<el-table-column label="客户/电话" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.customerName }} {{ scope.row.customerPhone }}
</template>
</el-table-column>
<el-table-column label="付款" align="center" width="70">
<template slot-scope="scope">
{{ scope.row.payType }}
</template>
</el-table-column>
<el-table-column label="应收金额" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.reveivableMoney }}
</template>
</el-table-column>
<el-table-column label="应收项目" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.receivablesName }}
</template>
</el-table-column>
<el-table-column label="当前应收" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.currentReceivableMoney }}
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<div>
<div class="tableTitle">应收未收款款项明细</div>
<el-table border :key="overduereceivableKey" width="100%" :data="overduereceivable_list">
<el-table-column fixed label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="handAdd(scope.row)">添加</el-button>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.contractNo }}
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.VIN }}
</template>
</el-table-column>
<el-table-column label="客户/电话" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.customerName }} {{ scope.row.customerPhone }}
</template>
</el-table-column>
<el-table-column label="付款" align="center" width="70">
<template slot-scope="scope">
{{ scope.row.payType }}
</template>
</el-table-column>
<el-table-column label="应收金额" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.reveivableMoney }}
</template>
</el-table-column>
<el-table-column label="应收项目" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.receivablesName }}
</template>
</el-table-column>
<el-table-column label="当前应收" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.currentReceivableMoney }}
</template>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col :span="14">
<div>
<div class="tableTitle">已选应收款项明细</div>
<el-table border :key="selectedreceivableKey" width="100%" :data="formobj.finSelectedReceivablesDetaileds">
<el-table-column fixed label="操作" align="center" width="70">
<template slot-scope="scope">
<el-button type="danger" size="small" @click="handDelete(scope.row)">移除</el-button>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center" width="95">
<template slot-scope="scope">
{{ scope.row.contractNo }}
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.VIN }}
</template>
</el-table-column>
<el-table-column label="客户/电话" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.customerName }} {{ scope.row.customerPhone }}
</template>
</el-table-column>
<el-table-column label="付款" align="center" width="70">
<template slot-scope="scope">
{{ scope.row.payType }}
</template>
</el-table-column>
<el-table-column label="应收项目" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.receivablesName }}
</template>
</el-table-column>
<el-table-column label="当前应收" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.currentReceivableMoney }}
</template>
</el-table-column>
<el-table-column label="认款金额" align="center" width="130">
<template slot-scope="scope">
<el-input v-model="scope.row.subscriptionMoney" @input="changeMoney(scope.row)" @keyup.native="UpNumber" @keydown.native="UpNumber" @change="changeSubscriptionMoney" placeholder="" clearable/>
</template>
</el-table-column>
<el-table-column label="剩余应收" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.surplusReceivable }}</span>
</template>
</el-table-column>
<el-table-column label="认款申请日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.subscriptionDate }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-col>
</el-row>
</el-form>
</el-col>
<el-col :span="14">
<div>
<div class="tableTitle">已选应收款项明细</div>
<el-table border :key="selectedreceivableKey" width="100%" :data="formobj.finSelectedReceivablesDetaileds">
<el-table-column fixed label="操作" align="center" width="70">
<template slot-scope="scope">
<el-button type="danger" size="small" @click="handDelete(scope.row)">移除</el-button>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center" width="95">
<template slot-scope="scope">
{{ scope.row.contractNo }}
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.VIN }}
</template>
</el-table-column>
<el-table-column label="客户/电话" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.customerName }} {{ scope.row.customerPhone }}
</template>
</el-table-column>
<el-table-column label="付款" align="center" width="70">
<template slot-scope="scope">
{{ scope.row.payType }}
</template>
</el-table-column>
<el-table-column label="应收项目" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.receivablesName }}
</template>
</el-table-column>
<el-table-column label="当前应收" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.currentReceivableMoney }}
</template>
</el-table-column>
<el-table-column label="认款金额" align="center" width="130">
<template slot-scope="scope">
<el-input v-model="scope.row.subscriptionMoney" @input="changeMoney(scope.row)" @keyup.native="UpNumber" @keydown.native="UpNumber" @change="changeSubscriptionMoney" placeholder="" clearable/>
</template>
</el-table-column>
<el-table-column label="剩余应收" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.surplusReceivable }}</span>
</template>
</el-table-column>
<el-table-column label="认款申请日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.subscriptionDate }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-col>
</el-row>
</el-form>
</div>
</div>
<amountpledged v-show="viewState == 2" ref="divSelect" @doback="resetState" @backData="backData"/>
</div>
</template>
@ -326,15 +330,18 @@
import { save, listAll, fetchDetailBySid } from '@/api/anruifinmanagement/paymentConfirmation.js'
import Upload from '@/components/uploadFile/filesUpload' //
import { selAccountByOrgSid, typeValues, fetchDetailsByUseOrgSid, getOrgSidByPath, selectOrgList } from '@/api/jichuxinxi/dictcommons'
import amountpledged from '../paymentConfirmation/relation/amountpledged'
export default {
name: 'DaiShouKuanAdd',
components: {
Upload
Upload,
amountpledged
},
data() {
return {
viewTitle: '',
viewState: 1,
dialogStatus: '',
overduereceivableKey: 0,
selectedreceivableKey: 1,
@ -392,7 +399,7 @@ export default {
createBySid: '',
vinNo: '',
orgPath: '',
purchaseSystemSid: '',
purchaseSystemSid: ''
},
rules: {
collectionMoney: [{ required: true, message: '收款金额不能为空', trigger: 'blur' }],
@ -604,6 +611,55 @@ export default {
}
this.getlist()
},
handleSelect() {
if (this.formobj.collectionMoney === '') {
this.$message({ showClose: true, type: 'error', message: '请先填写收款金额' })
return
}
if (this.formobj.purchaseSystemName === '') {
this.$message({ showClose: true, type: 'error', message: '请先选择采购系统' })
return
}
this.viewState = 2
this.$refs['divSelect'].showData(this.formobj.finSelectedReceivablesDetaileds, this.formobj.purchaseSystemSid)
},
backData(val) {
this.viewState = 1
var nowDate = new Date()
var date = {
year: nowDate.getFullYear(),
month: nowDate.getMonth() + 1,
day: nowDate.getDate()
}
var dayDate = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day)
for (var i = 0; i < val.length; i++) {
this.formobj.finSelectedReceivablesDetaileds.push({
createByName: window.sessionStorage.getItem('name'),
contractSid: val[i].contractSid,
contractNo: val[i].contractNo,
customerSid: val[i].customerSid,
customerName: val[i].customerName,
VIN: val[i].VIN,
useOrgSid: '',
customerPhone: val[i].customerPhone,
receivablesName: val[i].receivablesName,
currentReceivableMoney: val[i].currentReceivableMoney,
lastSubscriptionMoney: '',
subscriptionMoney: '',
surplusReceivable: '',
subscribedOf: val[i].subscribedOf,
subscriptionDate: dayDate,
collSid: '',
receivablesSid: val[i].sid,
payType: val[i].payType,
payTypeKey: val[i].payTypeKey,
sid: val[i].sid
})
}
},
resetState() {
this.viewState = 1
},
showAdd() {
this.DataDictionary()
this.newDate()
@ -722,6 +778,7 @@ export default {
lastSubscriptionMoney: '',
subscriptionMoney: '',
surplusReceivable: '',
subscribedOf: row.subscribedOf,
subscriptionDate: dayDate,
collSid: '',
receivablesSid: row.sid,
@ -734,10 +791,12 @@ export default {
}
},
handDelete(row) {
this.listQuery.sids.splice(this.listQuery.sids.indexOf(row.sid), 1)
this.formobj.finSelectedReceivablesDetaileds.splice(this.formobj.finSelectedReceivablesDetaileds.indexOf(row), 1)
this.calculateBalance()
this.getlist()
if (row.subscribedOf == 0) {
this.listQuery.sids.splice(this.listQuery.sids.indexOf(row.sid), 1)
this.getlist()
}
},
submit() {
if ((this.formobj.collectionTypeKey === '03' || this.formobj.collectionTypeKey === '05') && this.formobj.collectionBankNum === '') {

645
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/acknowledgementReceiptAdd.vue

@ -1,303 +1,307 @@
<template>
<div class="app-container">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
<div v-show="viewState == 1">
<div class="tab-header webtop">
<div>{{ viewTitle }}</div>
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="submit()">提交
</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
</div>
<div class="listconadd">
<div class="titwu"><span>收款确认申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" class="formadd">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>申请部门</span>
</el-col>
<el-col :span="4">
<el-form-item>
<span>{{ formobj.createDept }}</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.createByName }}</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.createDate }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款方式</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionTypeValue">
<el-select v-model="formobj.collectionTypeValue" placeholder="请选择" :disabled="forbidden" @change="changeCollectionType" filterable clearable>
<el-option v-for="item in receiptType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款金额()</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionMoney">
<el-input v-model="formobj.collectionMoney" @keyup.native="UpNumber" @keydown.native="UpNumber" :disabled="forbidden" @change="changeCollectionMoney" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款日期</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionDate">
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.collectionDate" :disabled="forbidden" clearable type="date" style="width: 93%" placeholder="请选择"/>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'">
<el-col :span="4" class="tleftb balanceStyle">
<span><span class="icon">*</span>收款银行账号</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<el-select v-model="formobj.collectionBankNum" placeholder="请选择" :disabled="forbidden" @change="changeCollectionBankNum" filterable clearable>
<el-option v-for="item in collectionBankNum_list" :key="item.accountSid" :label="item.bankAccount" :value="item.bankAccount"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb balanceStyle">
<span>收款账户名称</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<span>{{ formobj.receivingName }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb balanceStyle">
<span>收款银行</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<span>{{ formobj.collectionBank }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>付款方名称</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="payerName">
<el-input v-model="formobj.payerName" :disabled="forbidden" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'"><span class="icon">*</span>付款账号后4位</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item>
<el-input v-model="formobj.payAccount" v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'" :disabled="forbidden" maxlength="4" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'">付款银行</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item>
<el-input v-model="formobj.payBank" v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'" :disabled="forbidden" placeholder="" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>备注</span>
</el-col>
<el-col :span="12" class="trightb">
<el-form-item>
<el-input v-model="formobj.remarks" :disabled="forbidden" style="width: 70%" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>采购系统</span>
</el-col>
<el-col :span="4">
<el-form-item prop="purchaseSystemName">
<el-select v-model="formobj.purchaseSystemName" placeholder="请选择" :disabled="forbidden" @change="changePurchase" filterable clearable>
<el-option v-for="item in purchase_list" :key="item.deptSid" :label="item.purchaseSystemName" :value="item.purchaseSystemName"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>打款凭证</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<Upload v-show="forbidden !== true" style="float:left;" ref="remit" @handleSuccess="remitAdd" @handleRemove="remitRemove" />
<span v-show="forbidden == true" v-for="(item, index) in list1" :key="index">{{ item.name }}
</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>汇款确认书</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<Upload style="float:left;" ref="remittance" @handleSuccess="remittanceAdd" @handleRemove="remittanceRemove" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="padding: 0px">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="合同编号:">
<el-input v-model="listQuery.contractNo" size="mini" placeholder="" style="width: 110px" clearable/>
<div class="listconadd">
<div class="titwu"><span>收款确认申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" label-position="top" class="formadd">
<el-row style="border-top: 1px solid #e0e3eb">
<el-col :span="4" class="tleftb">
<span>申请部门</span>
</el-col>
<el-col :span="4">
<el-form-item>
<span>{{ formobj.createDept }}</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.createByName }}</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.createDate }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款方式</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionTypeValue">
<el-select v-model="formobj.collectionTypeValue" placeholder="请选择" :disabled="forbidden" @change="changeCollectionType" filterable clearable>
<el-option v-for="item in receiptType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款金额()</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionMoney">
<el-input v-model="formobj.collectionMoney" @keyup.native="UpNumber" @keydown.native="UpNumber" :disabled="forbidden" @change="changeCollectionMoney" placeholder="" clearable/>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>收款日期</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="collectionDate">
<el-date-picker value-format="yyyy-MM-dd" v-model="formobj.collectionDate" :disabled="forbidden" clearable type="date" style="width: 93%" placeholder="请选择"/>
</el-form-item>
</el-col>
</el-row>
<el-row v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'">
<el-col :span="4" class="tleftb balanceStyle">
<span><span class="icon">*</span>收款银行账号</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<el-select v-model="formobj.collectionBankNum" placeholder="请选择" :disabled="forbidden" @change="changeCollectionBankNum" filterable clearable>
<el-option v-for="item in collectionBankNum_list" :key="item.accountSid" :label="item.bankAccount" :value="item.bankAccount"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb balanceStyle">
<span>收款账户名称</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<span>{{ formobj.receivingName }}</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb balanceStyle">
<span>收款银行</span>
</el-col>
<el-col :span="4" class="tlineheightb">
<el-form-item>
<span>{{ formobj.collectionBank }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>付款方名称</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item prop="payerName">
<el-input v-model="formobj.payerName" :disabled="forbidden" placeholder="" clearable/>
</el-form-item>
<el-form-item label="客户名称:">
<el-input v-model="listQuery.customerName" size="mini" placeholder="" style="width: 100px" clearable/>
</el-col>
<el-col :span="4" class="tleftb">
<span v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'"><span class="icon">*</span>付款账号后4位</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item>
<el-input v-model="formobj.payAccount" v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'" :disabled="forbidden" maxlength="4" placeholder="" clearable/>
</el-form-item>
<el-form-item label="联系电话:">
<el-input v-model="listQuery.customerPhone" size="mini" placeholder="" style="width: 140px" clearable/>
</el-col>
<el-col :span="4" class="tleftb">
<span v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'">付款银行</span>
</el-col>
<el-col :span="4" class="trightb">
<el-form-item>
<el-input v-model="formobj.payBank" v-show="formobj.collectionTypeKey === '03' || formobj.collectionTypeKey === '05'" :disabled="forbidden" placeholder="" clearable/>
</el-form-item>
<el-form-item label="车架号:">
<el-input v-model="listQuery.vinNo" size="mini" placeholder="" style="width: 140px" clearable/>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>备注</span>
</el-col>
<el-col :span="12" class="trightb">
<el-form-item>
<el-input v-model="formobj.remarks" :disabled="forbidden" style="width: 70%" placeholder="" clearable/>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div style="padding-left: 20%">
<el-button type="primary" size="mini" @click="handleFilter">查询</el-button>
<el-button type="primary" size="mini" @click="handReset">重置</el-button>
</el-col>
<el-col :span="4" class="tleftb">
<span><span class="icon">*</span>采购系统</span>
</el-col>
<el-col :span="4">
<el-form-item prop="purchaseSystemName">
<el-select v-model="formobj.purchaseSystemName" placeholder="请选择" :disabled="forbidden" @change="changePurchase" filterable clearable>
<el-option v-for="item in purchase_list" :key="item.deptSid" :label="item.purchaseSystemName" :value="item.purchaseSystemName"/>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>打款凭证</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<Upload v-show="forbidden !== true" style="float:left;" ref="remit" @handleSuccess="remitAdd" @handleRemove="remitRemove" />
<span v-show="forbidden == true" v-for="(item, index) in list1" :key="index">{{ item.name }}
</span>
</el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>汇款确认书</span>
</el-col>
<el-col :span="8" class="trightb">
<el-form-item>
<Upload style="float:left;" ref="remittance" @handleSuccess="remittanceAdd" @handleRemove="remittanceRemove" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="24" style="padding: 0px">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="合同编号:">
<el-input v-model="listQuery.contractNo" size="mini" placeholder="" style="width: 110px" clearable/>
</el-form-item>
<el-form-item label="客户名称:">
<el-input v-model="listQuery.customerName" size="mini" placeholder="" style="width: 100px" clearable/>
</el-form-item>
<el-form-item label="联系电话:">
<el-input v-model="listQuery.customerPhone" size="mini" placeholder="" style="width: 140px" clearable/>
</el-form-item>
<el-form-item label="车架号:">
<el-input v-model="listQuery.vinNo" size="mini" placeholder="" style="width: 140px" clearable/>
</el-form-item>
</el-form>
</el-col>
</el-row>
<el-row>
<el-col :span="24">
<div style="display: flex;flex-direction: row;justify-content: space-between;align-items: center">
<div style="padding-left: 20%">
<el-button type="primary" size="mini" @click="handleFilter">查询</el-button>
<el-button type="primary" size="mini" @click="handReset">重置</el-button>
<el-button type="primary" size="mini" @click="handleSelect">选择已认款项</el-button>
</div>
<div>
<span >余额:</span><el-input v-model="balance" placeholder="" style="width: 120px" readonly/>
</div>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<div>
<div class="tableTitle">应收未收款款项明细</div>
<el-table border :key="overduereceivableKey" width="100%" :data="overduereceivable_list">
<el-table-column fixed label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="handAdd(scope.row)">添加</el-button>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.contractNo }}
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.VIN }}
</template>
</el-table-column>
<el-table-column label="客户/电话" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.customerName }} {{ scope.row.customerPhone }}
</template>
</el-table-column>
<el-table-column label="付款" align="center" width="70">
<template slot-scope="scope">
{{ scope.row.payType }}
</template>
</el-table-column>
<el-table-column label="应收金额" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.reveivableMoney }}
</template>
</el-table-column>
<el-table-column label="应收项目" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.receivablesName }}
</template>
</el-table-column>
<el-table-column label="当前应收" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.currentReceivableMoney }}
</template>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col :span="14">
<div>
<span >余额:</span><el-input v-model="balance" placeholder="" style="width: 120px" readonly/>
<div class="tableTitle">已选应收款项明细</div>
<el-table border :key="selectedreceivableKey" width="100%" :data="formobj.finSelectedReceivablesDetaileds">
<el-table-column fixed label="操作" align="center" width="70">
<template slot-scope="scope">
<el-button type="danger" size="small" @click="handDelete(scope.row)">移除</el-button>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center" width="95">
<template slot-scope="scope">
{{ scope.row.contractNo }}
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.VIN }}
</template>
</el-table-column>
<el-table-column label="客户/电话" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.customerName }} {{ scope.row.customerPhone }}
</template>
</el-table-column>
<el-table-column label="付款" align="center" width="70">
<template slot-scope="scope">
{{ scope.row.payType }}
</template>
</el-table-column>
<el-table-column label="应收项目" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.receivablesName }}
</template>
</el-table-column>
<el-table-column label="当前应收" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.currentReceivableMoney }}
</template>
</el-table-column>
<el-table-column label="认款金额" align="center" width="130">
<template slot-scope="scope">
<el-input v-model="scope.row.subscriptionMoney" @input="changeMoney(scope.row)" @keyup.native="UpNumber" @keydown.native="UpNumber" @change="changeSubscriptionMoney" placeholder="" clearable/>
</template>
</el-table-column>
<el-table-column label="剩余应收" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.surplusReceivable }}</span>
</template>
</el-table-column>
<el-table-column label="认款申请日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.subscriptionDate }}</span>
</template>
</el-table-column>
</el-table>
</div>
</div>
</el-col>
</el-row>
<el-row>
<el-col :span="10">
<div>
<div class="tableTitle">应收未收款款项明细</div>
<el-table border :key="overduereceivableKey" width="100%" :data="overduereceivable_list">
<el-table-column fixed label="操作" align="center" width="80">
<template slot-scope="scope">
<el-button type="primary" size="small" @click="handAdd(scope.row)">添加</el-button>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.contractNo }}
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.VIN }}
</template>
</el-table-column>
<el-table-column label="客户/电话" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.customerName }} {{ scope.row.customerPhone }}
</template>
</el-table-column>
<el-table-column label="付款" align="center" width="70">
<template slot-scope="scope">
{{ scope.row.payType }}
</template>
</el-table-column>
<el-table-column label="应收金额" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.reveivableMoney }}
</template>
</el-table-column>
<el-table-column label="应收项目" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.receivablesName }}
</template>
</el-table-column>
<el-table-column label="当前应收" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.currentReceivableMoney }}
</template>
</el-table-column>
</el-table>
</div>
</el-col>
<el-col :span="14">
<div>
<div class="tableTitle">已选应收款项明细</div>
<el-table border :key="selectedreceivableKey" width="100%" :data="formobj.finSelectedReceivablesDetaileds">
<el-table-column fixed label="操作" align="center" width="70">
<template slot-scope="scope">
<el-button type="danger" size="small" @click="handDelete(scope.row)">移除</el-button>
</template>
</el-table-column>
<el-table-column label="合同编号" align="center" width="95">
<template slot-scope="scope">
{{ scope.row.contractNo }}
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.VIN }}
</template>
</el-table-column>
<el-table-column label="客户/电话" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.customerName }} {{ scope.row.customerPhone }}
</template>
</el-table-column>
<el-table-column label="付款" align="center" width="70">
<template slot-scope="scope">
{{ scope.row.payType }}
</template>
</el-table-column>
<el-table-column label="应收项目" align="center" width="90">
<template slot-scope="scope">
{{ scope.row.receivablesName }}
</template>
</el-table-column>
<el-table-column label="当前应收" align="center" width="100">
<template slot-scope="scope">
{{ scope.row.currentReceivableMoney }}
</template>
</el-table-column>
<el-table-column label="认款金额" align="center" width="130">
<template slot-scope="scope">
<el-input v-model="scope.row.subscriptionMoney" @input="changeMoney(scope.row)" @keyup.native="UpNumber" @keydown.native="UpNumber" @change="changeSubscriptionMoney" placeholder="" clearable/>
</template>
</el-table-column>
<el-table-column label="剩余应收" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.surplusReceivable }}</span>
</template>
</el-table-column>
<el-table-column label="认款申请日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.subscriptionDate }}</span>
</template>
</el-table-column>
</el-table>
</div>
</el-col>
</el-row>
</el-form>
</el-col>
</el-row>
</el-form>
</div>
</div>
<amountpledged v-show="viewState == 2" ref="divSelect" @doback="resetState" @backData="backData"/>
</div>
</template>
@ -305,15 +309,18 @@
import { save, listAll, fetchDetailBySid } from '@/api/anruifinmanagement/paymentConfirmation.js'
import Upload from '@/components/uploadFile/filesUpload' //
import { selAccountByOrgSid, typeValues, fetchDetailsByUseOrgSid, getOrgSidByPath } from '@/api/jichuxinxi/dictcommons'
import amountpledged from './relation/amountpledged'
export default {
name: 'acknowledgementReceiptAdd',
components: {
Upload
Upload,
amountpledged
},
data() {
return {
viewTitle: '',
viewState: 1,
dialogStatus: '',
overduereceivableKey: 0,
selectedreceivableKey: 1,
@ -365,7 +372,7 @@ export default {
createBySid: '',
vinNo: '',
orgPath: '',
purchaseSystemSid: '',
purchaseSystemSid: ''
},
rules: {
collectionMoney: [{ required: true, message: '收款金额不能为空', trigger: 'blur' }],
@ -554,6 +561,55 @@ export default {
}
this.getlist()
},
handleSelect() {
if (this.formobj.collectionMoney === '') {
this.$message({ showClose: true, type: 'error', message: '请先填写收款金额' })
return
}
if (this.formobj.purchaseSystemName === '') {
this.$message({ showClose: true, type: 'error', message: '请先选择采购系统' })
return
}
this.viewState = 2
this.$refs['divSelect'].showData(this.formobj.finSelectedReceivablesDetaileds, this.formobj.purchaseSystemSid)
},
backData(val) {
this.viewState = 1
var nowDate = new Date()
var date = {
year: nowDate.getFullYear(),
month: nowDate.getMonth() + 1,
day: nowDate.getDate()
}
var dayDate = date.year + '-' + (date.month >= 10 ? date.month : '0' + date.month) + '-' + (date.day >= 10 ? date.day : '0' + date.day)
for (var i = 0; i < val.length; i++) {
this.formobj.finSelectedReceivablesDetaileds.push({
createByName: window.sessionStorage.getItem('name'),
contractSid: val[i].contractSid,
contractNo: val[i].contractNo,
customerSid: val[i].customerSid,
customerName: val[i].customerName,
VIN: val[i].VIN,
useOrgSid: '',
customerPhone: val[i].customerPhone,
receivablesName: val[i].receivablesName,
currentReceivableMoney: val[i].currentReceivableMoney,
lastSubscriptionMoney: '',
subscriptionMoney: '',
surplusReceivable: '',
subscribedOf: val[i].subscribedOf,
subscriptionDate: dayDate,
collSid: '',
receivablesSid: val[i].sid,
payType: val[i].payType,
payTypeKey: val[i].payTypeKey,
sid: val[i].sid
})
}
},
resetState() {
this.viewState = 1
},
showAdd() {
this.DataDictionary()
this.newDate()
@ -672,6 +728,7 @@ export default {
lastSubscriptionMoney: '',
subscriptionMoney: '',
surplusReceivable: '',
subscribedOf: row.subscribedOf,
subscriptionDate: dayDate,
collSid: '',
receivablesSid: row.sid,
@ -684,10 +741,12 @@ export default {
}
},
handDelete(row) {
this.listQuery.sids.splice(this.listQuery.sids.indexOf(row.sid), 1)
this.formobj.finSelectedReceivablesDetaileds.splice(this.formobj.finSelectedReceivablesDetaileds.indexOf(row), 1)
this.calculateBalance()
this.getlist()
if (row.subscribedOf == 0) {
this.listQuery.sids.splice(this.listQuery.sids.indexOf(row.sid), 1)
this.getlist()
}
},
submit() {
if ((this.formobj.collectionTypeKey === '03' || this.formobj.collectionTypeKey === '05') && this.formobj.collectionBankNum === '') {

232
anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/paymentConfirmation/relation/amountpledged.vue

@ -0,0 +1,232 @@
<template>
<div class="app-container">
<div>
<div class="tab-header webtop">
<div>已认款完成的车款或首付款及费用</div>
<div>
<el-button type="primary" size="small" @click="AddUpdateReturn">确定</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<div class="main-content">
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="合同编号">
<el-input v-model="listQuery.params.contractNo" placeholder="" clearable class="filter-item"/>
</el-form-item>
<el-form-item label="客户名称">
<el-input v-model="listQuery.params.customerName" placeholder="" clearable class="filter-item"/>
</el-form-item>
<el-form-item label="联系电话">
<el-input v-model="listQuery.params.mobile" placeholder="" clearable class="filter-item"/>
</el-form-item>
<el-form-item label="车架号">
<el-input v-model="listQuery.params.vinNo" placeholder="" clearable class="filter-item"/>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center">
<el-button type="primary" icon="el-icon-search" size="small" @click="handleFilter">查询</el-button>
<el-button type="primary" icon="el-icon-refresh" size="small" @click="handresetting">重置</el-button>
</div>
</div>
</div>
<div class="">
<el-table :key="tableKey" ref="multipleTable" v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column width="50px" type="selection" align="center"/>
<el-table-column width="80px" label="编号" type="index" :index="indexMethod" align="center"/>
<el-table-column label="合同编号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.contractNo }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.VIN }}</span>
</template>
</el-table-column>
<el-table-column label="客户/电话" align="center">
<template slot-scope="scope">
<span>{{ scope.row.customerName }}/{{ scope.row.customerPhone }}</span>
</template>
</el-table-column>
<el-table-column label="销售类型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.payType }}</span>
</template>
</el-table-column>
<el-table-column label="应收项目" align="center">
<template slot-scope="scope">
<span>{{ scope.row.receivablesName }}</span>
</template>
</el-table-column>
<el-table-column label="当前应收" align="center">
<template slot-scope="scope">
<span>{{ scope.row.currentReceivableMoney }}</span>
</template>
</el-table-column>
<el-table-column label="认款金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.subscriptionMoney }}</span>
</template>
</el-table-column>
<el-table-column label="剩余应收" align="center">
<template slot-scope="scope">
<span>{{ scope.row.reveivableMoney }}</span>
</template>
</el-table-column>
<el-table-column label="认款申请日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.subscriptionDate }}</span>
</template>
</el-table-column>
</el-table>
</div>
<div class="pages">
<div class="tit"/>
<!-- 翻页 -->
<pagination v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
</div>
</div>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import { selectPageList } from '@/api/anruifinmanagement/paymentConfirmation.js'
export default {
name: 'AmountPledged',
components: {
Pagination
},
data() {
return {
isSearchShow: false,
searchxianshitit: '隐藏查询条件',
tableKey: 0,
sids: [],
list: [],
listLoading: false,
listQuery: {
current: 1,
size: 10,
params: {
contractNo: '',
customerName: '',
mobile: '',
orgPath: '',
userSid: '',
purchaseSystemSid: '',
vinNo: '',
sids: []
},
total: 0
}
}
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
handleReturn() {
this.$emit('doback')
},
//
getList() {
this.listLoading = true
this.listQuery.params.userSid = window.sessionStorage.getItem('userSid')
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
selectPageList(this.listQuery).then((response) => {
this.listLoading = false
if (response.success) {
this.listQuery.total = response.data.total
this.list = response.data.records
}
})
},
//
handleFilter() {
this.getList()
},
//
handresetting() {
this.listQuery.params.contractNo = ''
this.listQuery.params.customerName = ''
this.listQuery.params.mobile = ''
this.listQuery.params.vinNo = ''
this.listQuery.params.orgPath = ''
this.listQuery.params.userSid = ''
this.listQuery.current = 1
this.listQuery.size = 5
this.listQuery.total = 0
this.getList()
},
handleSelectionChange(row) {
this.sids = []
const aa = []
row.forEach((element) => {
aa.push({
contractSid: element.contractSid,
contractNo: element.contractNo,
customerSid: element.customerSid,
customerName: element.customerName,
customerPhone: element.customerPhone,
receivablesName: element.receivablesName,
currentReceivableMoney: element.currentReceivableMoney,
subscribedOf: element.subscribedOf,
sid: element.sid,
VIN: element.VIN,
payType: element.payType,
payTypeKey: element.payTypeKey
})
})
this.sids = aa
},
showData(value, purchaseSystemSid) {
const aa = []
if (value.length > 0) {
for (var i = 0; i < value.length; i++) {
aa.push(value[i].sid)
}
this.listQuery.params.sids = aa
} else {
this.listQuery.params.sids = []
}
this.listQuery.current = 1
this.listQuery.total = 0
this.listQuery.size = 5
this.listQuery.params.purchaseSystemSid = purchaseSystemSid
this.getList()
},
//
AddUpdateReturn() {
if (this.sids.length > 0) {
this.$emit('backData', this.sids)
} else {
this.$notify({
title: '提示',
message: '请选择至少一条记录!',
type: 'error',
duration: 2000
})
}
}
}
}
</script>
<style scoped>
</style>

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/AppFinSelectedReceivablesPaymentDetailsVo.java

@ -49,4 +49,6 @@ public class AppFinSelectedReceivablesPaymentDetailsVo implements Vo {
@ApiModelProperty("分公司sid")
private String useOrgSid;
private int subscribedOf;
}

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectReceivablesDetailedVo.java

@ -50,10 +50,12 @@ public class FinSelectReceivablesDetailedVo implements Vo {
private int subscribedOf;
private String subscriptionMoney;
@ApiModelProperty("分公司sid")
private String useOrgSid;
@ApiModelProperty("认款申请日期")
private String subscriptionDate;
@ApiModelProperty("余额")
private String balance;
@ApiModelProperty("款项状态")

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedVo.java

@ -117,6 +117,8 @@ public class FinSelectedReceivablesDetailedVo implements Vo {
@ApiModelProperty("全款贷款")
private String payType;
private int subscribedOf;
@ApiModelProperty("余额")
private String balance;
@ApiModelProperty("款项状态")

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finselectedreceivablesdetailed/FinSelectedReceivablesPaymentDetailsQuery.java

@ -4,6 +4,8 @@ import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description: 已认款查询
* @author: dimengzhe
@ -31,4 +33,7 @@ public class FinSelectedReceivablesPaymentDetailsQuery implements Query {
private String name;
@ApiModelProperty("应收款项sid")
private List<String> sids;
}

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finuncollectedreceivablesdetailed/DetailsOfReceivablesAndUncollectedItemsVo.java

@ -69,7 +69,7 @@ public class DetailsOfReceivablesAndUncollectedItemsVo implements Vo {
@ApiModelProperty("当前应收金额")
private String currentReceivableMoney; // 当前应收金额
@ApiModelProperty("应收金额")
@ApiModelProperty("剩余应收金额")
private String reveivableMoney;
@ApiModelProperty("业务车辆sid")
private String busVinSid;

277
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -57,7 +57,6 @@ import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeig
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.crm.api.crmcustomertemp.CustomerQuery;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationVo;
import com.yxt.anrui.fin.api.fincollectionconfirmation.*;
import com.yxt.anrui.fin.api.fincollectionconfirmation.app.AppBusArrearsCarryMoneyVo;
import com.yxt.anrui.fin.api.fincollectionconfirmation.app.FinConfirmDto;
@ -101,7 +100,6 @@ import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Project: anrui-fin(销售相关) <br/>
@ -493,11 +491,14 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
//认款日期默认为当天的日期
finSelectedReceivablesDetailed.setSubscriptionDate(DateUtil.today());
finSelectedReceivablesDetailedService.insert(finSelectedReceivablesDetailed);
//应收未收减去相应的认款
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().subtract(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
if(v.getSubscribedOf() == 0){
//应收未收减去相应的认款
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().subtract(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
}
});
}
finCollectionConfirmation.setBalance(finCollectionConfirmation.getCollectionMoney());
@ -534,31 +535,14 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
finSelectedReceivablesDetailed.setCreateBySid(dto.getUserSid());
finSelectedReceivablesDetailed.setSubscriptionDate(DateUtil.today());
finSelectedReceivablesDetailedService.insert(finSelectedReceivablesDetailed);
//添加已选车架号为临时状态
/* BaseVehicleTempstateDto baseVehicleTempstateDto = new BaseVehicleTempstateDto();
baseVehicleTempstateDto.setTempStateKey(VehicleStateTempOrLast.PaymentEnum.FIN_PAYMENT.getCode());
baseVehicleTempstateDto.setTempStateValue(VehicleStateTempOrLast.PaymentEnum.FIN_PAYMENT.getRemarks());
if ("车款".equals(v.getReceivablesName())) {
baseVehicleTempstateDto.setTempKey("001");
baseVehicleTempstateDto.setTempValue("车款");
}
if ("订金".equals(v.getReceivablesName())) {
baseVehicleTempstateDto.setTempKey("002");
baseVehicleTempstateDto.setTempValue("订金");
if(v.getSubscribedOf() == 0){
//应收未收减去相应的认款
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().subtract(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
}
baseVehicleTempstateDto.setBusSid(finalSid);
//根据合同编号和车架号查询该合同的车辆sid
ResultBean<String> resultBean = busSalesOrderFeign.getVinSidByConSid(v.getContractNo(), v.getVIN());
if (resultBean.getSuccess()) {
baseVehicleTempstateDto.setVehSid(resultBean.getData());
}
ResultBean vehicleStateResult = baseVehicleTempstateFeign.save(baseVehicleTempstateDto);*/
//应收未收减去相应的认款
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().subtract(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
});
}
finCollectionConfirmation.setAuditState(1);
@ -1019,11 +1003,14 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
finSelectedReceivablesDetailed.setCreateByName(finCollectionConfirmation.getCreateByName());
finSelectedReceivablesDetailed.setUseOrgSid(paymentDetail.getUseOrgSid());
finSelectedReceivablesDetailed.setCustomerSid(paymentDetail.getCustomerSid());
finSelectedReceivablesDetailed.setSubscribedOf(paymentDetail.getSubscribedOf());
finSelectedReceivablesDetailedService.save(finSelectedReceivablesDetailed);
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().subtract(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
if(paymentDetail.getSubscribedOf() == 0){
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().subtract(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
}
}
return rb.success();
}
@ -1130,8 +1117,9 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
}
}
if (StringUtils.isNotBlank(pagerQuery.getParams().getName())) {
List<AppFinUncollectedReceivablesDetailedVo> cll = collList.stream().filter(v -> v.getVin().contains(pagerQuery.getParams().getName())).collect(Collectors.toList());
collList = Stream.of(collList, cll).flatMap(Collection::stream).collect(Collectors.toList());
collList = collList.stream().filter(v -> v.getVin().contains(pagerQuery.getParams().getName())).collect(Collectors.toList());
// List<AppFinUncollectedReceivablesDetailedVo> cll = collList.stream().filter(v -> v.getVin().contains(pagerQuery.getParams().getName())).collect(Collectors.toList());
// collList = Stream.of(collList, cll).flatMap(Collection::stream).collect(Collectors.toList());
}
}
//将collList根据sid去重
@ -1139,13 +1127,22 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
-> new TreeSet<>(Comparator.comparing(AppFinUncollectedReceivablesDetailedVo::getSid))), ArrayList::new));
//根据合同编号倒序排序
collList = collList.stream().sorted(Comparator.comparing(AppFinUncollectedReceivablesDetailedVo::getContractId).reversed()).collect(Collectors.toList());
//分页
/*//分页
IPage<AppFinUncollectedReceivablesDetailedVo> page1 = new Page<>();
page1.setRecords(collList);
page1.setTotal(collList.size());
page1.setPages((collList.size() / pagerQuery.getSize()) + 1);
page1.setCurrent(pagerQuery.getCurrent());
page1.setSize(pagerQuery.getSize());
return page1;*/
//分页
IPage<AppFinUncollectedReceivablesDetailedVo> page1 = new Page<>();
page1.setTotal(collList.size());
page1.setPages(collList.size()/pagerQuery.getSize()+(collList.size()%pagerQuery.getSize()==0?0:1));
collList = collList.stream().skip((pagerQuery.getCurrent() - 1) *pagerQuery.getSize()).limit(pagerQuery.getSize()).collect(Collectors.toList()); //开始分页
page1.setRecords(collList);
page1.setCurrent(pagerQuery.getCurrent());
page1.setSize(pagerQuery.getSize());
return page1;
}
@ -1184,11 +1181,14 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
finSelectedReceivablesDetailed.setAuditDate(DateUtil.today());
finSelectedReceivablesDetailed.setAuditState(2);
finSelectedReceivablesDetailedService.updateById(finSelectedReceivablesDetailed);
//应收未收将款项加回来
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().add(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
if(v.getSubscribedOf() == 0){
//应收未收将款项加回来
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().add(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
}
});
confirmation.setAuditState(2);
//更新驳回原因
@ -1428,116 +1428,119 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
finSelectedReceivablesDetailedService.updateById(finSelectedReceivablesDetailed);
//ToDo:查询是否符合待出库的条件
//该合同编号下的该车架号的所有认款金额
List<FinSelectedReceivablesDetailedVo> voList = finSelectedReceivablesDetailedService.selectListByVin(v.getContractNo(), finUncollectedReceivablesDetailed.getBusVinSid(), 3);
BigDecimal bigDecimalVinAll = voList.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
//查询该合同编号下的销售订单的单车成交价
ResultBean<CommonContract> commonContractResultBean = commonContractFeign.selectByNo(v.getContractNo());
if (commonContractResultBean.getSuccess()) {
CommonContract commonContract = commonContractResultBean.getData();
if (commonContract != null) {
ResultBean<AppOrderDetailsVo> orderDetails = busSalesOrderFeign.getSaleOrderDetails(commonContract.getBusSid());
AppOrderDetailsVo vo = orderDetails.getData();
if (vo != null) {
AppOrderPriceInfoVo priceInfoVo = vo.getPriceInfo();
AppOrderDepositInfoVo depositInfo = vo.getDepositInfo();
if (depositInfo != null) {
if ("02".equals(depositInfo.getDepositTypeKey())) {//订金结转
BigDecimal decimalDeposit = BigDecimal.ZERO;
if (StringUtils.isNotBlank(depositInfo.getDepositTotal())) {
decimalDeposit = new BigDecimal(depositInfo.getDepositTotal());
}
if (StringUtils.isNotBlank(depositInfo.getMakeUpDeposit())) {
decimalDeposit = decimalDeposit.subtract(new BigDecimal(depositInfo.getMakeUpDeposit()));
if(v.getSubscribedOf() == 0){
List<FinSelectedReceivablesDetailedVo> voList = finSelectedReceivablesDetailedService.selectListByVin(v.getContractNo(), finUncollectedReceivablesDetailed.getBusVinSid(), 3);
BigDecimal bigDecimalVinAll = voList.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
//查询该合同编号下的销售订单的单车成交价
ResultBean<CommonContract> commonContractResultBean = commonContractFeign.selectByNo(v.getContractNo());
if (commonContractResultBean.getSuccess()) {
CommonContract commonContract = commonContractResultBean.getData();
if (commonContract != null) {
ResultBean<AppOrderDetailsVo> orderDetails = busSalesOrderFeign.getSaleOrderDetails(commonContract.getBusSid());
AppOrderDetailsVo vo = orderDetails.getData();
if (vo != null) {
AppOrderPriceInfoVo priceInfoVo = vo.getPriceInfo();
AppOrderDepositInfoVo depositInfo = vo.getDepositInfo();
if (depositInfo != null) {
if ("02".equals(depositInfo.getDepositTypeKey())) {//订金结转
BigDecimal decimalDeposit = BigDecimal.ZERO;
if (StringUtils.isNotBlank(depositInfo.getDepositTotal())) {
decimalDeposit = new BigDecimal(depositInfo.getDepositTotal());
}
if (StringUtils.isNotBlank(depositInfo.getMakeUpDeposit())) {
decimalDeposit = decimalDeposit.subtract(new BigDecimal(depositInfo.getMakeUpDeposit()));
}
decimalDeposit = decimalDeposit.divide(new BigDecimal(priceInfoVo.getNumber()), BigDecimal.ROUND_CEILING);
bigDecimalVinAll = bigDecimalVinAll.add(decimalDeposit);
}
decimalDeposit = decimalDeposit.divide(new BigDecimal(priceInfoVo.getNumber()), BigDecimal.ROUND_CEILING);
bigDecimalVinAll = bigDecimalVinAll.add(decimalDeposit);
}
}
//单台整体成交价
BigDecimal singleFinalPrice = new BigDecimal(priceInfoVo.getSingleFinalPrice());
BigDecimal leftAll = BigDecimal.ZERO;
BigDecimal rightAll = BigDecimal.ZERO;
if ("2".equals(vo.getFinancePlan()) || "2".equals(vo.getPayTypeKey())) {
//根据销售订单sid查询金融方案
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsFeign.selectDetailss(commonContract.getBusSid());
SolutionsDetailsVo solutionsDetailsVo = solutionsDetailsVoResultBean.getData();
if (solutionsDetailsVo != null) {
if (StringUtils.isNotBlank(solutionsDetailsVo.getTypeKey())) {
if ("02".equals(solutionsDetailsVo.getTypeKey())) {
//外部金融:成交价 = 订金+车款+厂家贴息-服务费
leftAll = leftAll.add(singleFinalPrice);
if (StringUtils.isNotBlank(solutionsDetailsVo.getFactoryDiscount())) {
leftAll = leftAll.subtract(new BigDecimal(solutionsDetailsVo.getFactoryDiscount()));
//单台整体成交价
BigDecimal singleFinalPrice = new BigDecimal(priceInfoVo.getSingleFinalPrice());
BigDecimal leftAll = BigDecimal.ZERO;
BigDecimal rightAll = BigDecimal.ZERO;
if ("2".equals(vo.getFinancePlan()) || "2".equals(vo.getPayTypeKey())) {
//根据销售订单sid查询金融方案
ResultBean<SolutionsDetailsVo> solutionsDetailsVoResultBean = loanSolutionsFeign.selectDetailss(commonContract.getBusSid());
SolutionsDetailsVo solutionsDetailsVo = solutionsDetailsVoResultBean.getData();
if (solutionsDetailsVo != null) {
if (StringUtils.isNotBlank(solutionsDetailsVo.getTypeKey())) {
if ("02".equals(solutionsDetailsVo.getTypeKey())) {
//外部金融:成交价 = 订金+车款+厂家贴息-服务费
leftAll = leftAll.add(singleFinalPrice);
if (StringUtils.isNotBlank(solutionsDetailsVo.getFactoryDiscount())) {
leftAll = leftAll.subtract(new BigDecimal(solutionsDetailsVo.getFactoryDiscount()));
}
if (StringUtils.isNotBlank(solutionsDetailsVo.getServiceAmount())) {
leftAll = leftAll.add(new BigDecimal(solutionsDetailsVo.getServiceAmount()));
}
rightAll = rightAll.add(bigDecimalVinAll);
} else {
//自营非担保: 实收订金 = 首付款及费用+订金
if (StringUtils.isNotBlank(solutionsDetailsVo.getRealTotal())) {
leftAll = leftAll.add(new BigDecimal(solutionsDetailsVo.getRealTotal()));
}
rightAll = rightAll.add(bigDecimalVinAll);
}
if (StringUtils.isNotBlank(solutionsDetailsVo.getServiceAmount())) {
leftAll = leftAll.add(new BigDecimal(solutionsDetailsVo.getServiceAmount()));
}
rightAll = rightAll.add(bigDecimalVinAll);
} else {
//自营非担保: 实收订金 = 首付款及费用+订金
} else {//担保贷款: 实收订金 = 首付款及费用+订金
if (StringUtils.isNotBlank(solutionsDetailsVo.getRealTotal())) {
leftAll = leftAll.add(new BigDecimal(solutionsDetailsVo.getRealTotal()));
}
rightAll = rightAll.add(bigDecimalVinAll);
}
} else {//担保贷款: 实收订金 = 首付款及费用+订金
if (StringUtils.isNotBlank(solutionsDetailsVo.getRealTotal())) {
leftAll = leftAll.add(new BigDecimal(solutionsDetailsVo.getRealTotal()));
}
} else {
// 成交价 = 车款+订金
leftAll = leftAll.add(singleFinalPrice);
rightAll = rightAll.add(bigDecimalVinAll);
}
} else {
// 成交价 = 车款+订金
// 成交价 = 车款+订金
leftAll = leftAll.add(singleFinalPrice);
rightAll = rightAll.add(bigDecimalVinAll);
}
} else {
// 成交价 = 车款+订金
leftAll = leftAll.add(singleFinalPrice);
rightAll = rightAll.add(bigDecimalVinAll);
}
//根据busVinSid查询待出库中是否存在该数据
ResultBean<BusDelivered> busDeliveredResultBean = busDeliveredFeign.selectByBusVinSid(finUncollectedReceivablesDetailed.getBusVinSid());
if (busDeliveredResultBean.getData() == null) {
if (leftAll.compareTo(rightAll) <= 0) {//推送待出库
BusDeliveredDto busDeliveredDto = new BusDeliveredDto();
busDeliveredDto.setSubscriptionKey(VehicleStateTempOrLast.PaymentEnum.PAY_MODELS.getCode());
busDeliveredDto.setSubscription(VehicleStateTempOrLast.PaymentEnum.PAY_MODELS.getRemarks());
busDeliveredDto.setPaymentMethodKey(vo.getPayTypeKey());
busDeliveredDto.setPaymentMethod(vo.getPayType());
busDeliveredDto.setContractNo(v.getContractNo());
busDeliveredDto.setName(v.getCustomerName());
busDeliveredDto.setVinNo(v.getVIN());
busDeliveredDto.setMobile(v.getCustomerPhone());
busDeliveredDto.setPrice(priceInfoVo.getSingleFinalPrice());
busDeliveredDto.setCreateBySid(confirmation.getStaffUserSid());
SubmitVo intermediary1 = vo.getIntermediary1();
if (intermediary1 != null) {
busDeliveredDto.setDistributorName(intermediary1.getIntermediaryName());
busDeliveredDto.setDistributorPrice(intermediary1.getAgencyFee());
}
SubmitVo intermediary2 = vo.getIntermediary2();
if (intermediary2 != null) {
busDeliveredDto.setDistributorNameTwo(intermediary2.getIntermediaryName());
busDeliveredDto.setDistributorPriceTwo(intermediary2.getAgencyFee());
}
busDeliveredDto.setSingleCarDiscountPrice(priceInfoVo.getSingleCarDiscountPrice());
//根据客户sid查询客户的身份证号
AppOrderModelInfoVo appOrderModelInfoVo = vo.getModelInfo();
busDeliveredDto.setModelName(appOrderModelInfoVo.getModelName());
busDeliveredDto.setUseOrgSid(confirmation.getUseOrgSid());
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(confirmation.getUseOrgSid());
if (sysOrganizationVoResultBean.getData() != null) {
busDeliveredDto.setUseOrgName(sysOrganizationVoResultBean.getData().getName());
//根据busVinSid查询待出库中是否存在该数据
ResultBean<BusDelivered> busDeliveredResultBean = busDeliveredFeign.selectByBusVinSid(finUncollectedReceivablesDetailed.getBusVinSid());
if (busDeliveredResultBean.getData() == null) {
if (leftAll.compareTo(rightAll) <= 0) {//推送待出库
BusDeliveredDto busDeliveredDto = new BusDeliveredDto();
busDeliveredDto.setSubscriptionKey(VehicleStateTempOrLast.PaymentEnum.PAY_MODELS.getCode());
busDeliveredDto.setSubscription(VehicleStateTempOrLast.PaymentEnum.PAY_MODELS.getRemarks());
busDeliveredDto.setPaymentMethodKey(vo.getPayTypeKey());
busDeliveredDto.setPaymentMethod(vo.getPayType());
busDeliveredDto.setContractNo(v.getContractNo());
busDeliveredDto.setName(v.getCustomerName());
busDeliveredDto.setVinNo(v.getVIN());
busDeliveredDto.setMobile(v.getCustomerPhone());
busDeliveredDto.setPrice(priceInfoVo.getSingleFinalPrice());
busDeliveredDto.setCreateBySid(confirmation.getStaffUserSid());
SubmitVo intermediary1 = vo.getIntermediary1();
if (intermediary1 != null) {
busDeliveredDto.setDistributorName(intermediary1.getIntermediaryName());
busDeliveredDto.setDistributorPrice(intermediary1.getAgencyFee());
}
SubmitVo intermediary2 = vo.getIntermediary2();
if (intermediary2 != null) {
busDeliveredDto.setDistributorNameTwo(intermediary2.getIntermediaryName());
busDeliveredDto.setDistributorPriceTwo(intermediary2.getAgencyFee());
}
busDeliveredDto.setSingleCarDiscountPrice(priceInfoVo.getSingleCarDiscountPrice());
//根据客户sid查询客户的身份证号
AppOrderModelInfoVo appOrderModelInfoVo = vo.getModelInfo();
busDeliveredDto.setModelName(appOrderModelInfoVo.getModelName());
busDeliveredDto.setUseOrgSid(confirmation.getUseOrgSid());
ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(confirmation.getUseOrgSid());
if (sysOrganizationVoResultBean.getData() != null) {
busDeliveredDto.setUseOrgName(sysOrganizationVoResultBean.getData().getName());
}
busDeliveredDto.setBusVinSid(finUncollectedReceivablesDetailed.getBusVinSid());
ResultBean resultBean1 = busDeliveredFeign.save(busDeliveredDto);
}
busDeliveredDto.setBusVinSid(finUncollectedReceivablesDetailed.getBusVinSid());
ResultBean resultBean1 = busDeliveredFeign.save(busDeliveredDto);
}
}
}
}
}
}
});
//查询该申请已认款金额总数
subscriptionMoneyAll = finSelectedReceivablesDetailedVos.stream().map(FinSelectedReceivablesDetailedVo::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
@ -2257,10 +2260,12 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
finSelectedReceivablesDetailed.setAuditState(4);
finSelectedReceivablesDetailedService.updateById(finSelectedReceivablesDetailed);
//应收未收将款项加回来
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().add(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
if(v.getSubscribedOf() == 0){
FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().add(finSelectedReceivablesDetailed.getSubscriptionMoney());
finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
}
});
confirmation.setAuditState(4);
confirmation.setReason("申请人已撤回");

24
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedMapper.xml

@ -122,7 +122,8 @@
payType,
payTypeKey,
customerSid,
useOrgSid
useOrgSid,
subscribedOf
FROM fin_selected_receivables_detailed
WHERE collSid = #{collectionBillSid}
</select>
@ -180,7 +181,7 @@
where collSid = #{sid}
and auditState = #{state}
and receivablesName = #{type}
and payTypeKey = #{payTypeKey}
and payTypeKey = #{payTypeKey} and subscribedOf = 0
group by contractNo
</select>
@ -191,7 +192,7 @@
where collSid = #{sid}
and auditState = #{state}
and receivablesName = #{type}
and payTypeKey = #{payTypeKey}
and payTypeKey = #{payTypeKey} and subscribedOf = 0
</select>
<select id="selectCustomerList" resultType="com.yxt.anrui.fin.api.finselectedreceivablesdetailed.SelectCustomerVo">
@ -199,7 +200,7 @@
from fin_selected_receivables_detailed
where collSid = #{sid}
and auditState = #{state}
and receivablesName = #{type}
and receivablesName = #{type} and subscribedOf = 0
group by concat(customerName, customerPhone)
</select>
@ -208,7 +209,7 @@
select *
from fin_selected_receivables_detailed
where collSid = #{sid}
and auditState = #{state}
and auditState = #{state} and subscribedOf = 0
and receivablesName = #{type}
</select>
@ -220,7 +221,7 @@
and auditState = #{state}
and receivablesName = #{type}
and customerName = #{customerName}
and customerPhone = #{customerPhone}
and customerPhone = #{customerPhone} and subscribedOf = 0
and length(VIN) > 0
</select>
@ -231,7 +232,7 @@
where collSid = #{sid}
and auditState = #{state}
and receivablesName = #{type}
and contractNo = #{contractNo}
and contractNo = #{contractNo} and subscribedOf = 0
and length(VIN) > 0
</select>
@ -242,7 +243,7 @@
where collSid = #{sid}
and auditState = #{state}
and receivablesName = #{type}
and contractNo = #{contractNo}
and contractNo = #{contractNo} and subscribedOf = 0
and length(VIN) = 0
</select>
@ -254,7 +255,7 @@
and auditState = #{state}
and receivablesName = #{type}
and customerName = #{customerName}
and customerPhone = #{customerPhone}
and customerPhone = #{customerPhone} and subscribedOf = 0
and length(VIN) = 0
</select>
@ -263,7 +264,7 @@
from fin_selected_receivables_detailed fd
left join fin_uncollected_receivables_detailed ff on ff.sid = fd.receivablesSid
where ff.busVinSid = #{busVinSid}
and fd.auditState = 3
and fd.auditState = 3 and subscribedOf = 0
</select>
<update id="updateAuditStateBySid">
@ -304,7 +305,8 @@
furd.payType,
furd.payTypeKey,
fd.subscriptionMoney,
fd.useOrgSid
fd.useOrgSid,
fd.subscriptionDate
from fin_selected_receivables_detailed fd
left join fin_uncollected_receivables_detailed furd on furd.sid = fd.receivablesSid
<where>

51
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finselectedreceivablesdetailed/FinSelectedReceivablesDetailedService.java

@ -34,8 +34,6 @@ import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.fin.api.fincollectionconfirmation.AppFinSelectedReceivablesPaymentDetailsQuery;
import com.yxt.anrui.fin.api.fincollectionconfirmation.AppFinSelectedReceivablesPaymentDetailsVo;
import com.yxt.anrui.fin.api.fincollectionconfirmation.FinCollectionConfirmation;
import com.yxt.anrui.fin.api.fincollectionconfirmation.FinCollectionConfirmationJYDDKYDJVo;
import com.yxt.anrui.fin.api.fincollectionconfirmation.app.AppBusArrearsCarryMoneyVo;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.*;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppFinUncollectedReceivablesDetailedVo;
@ -53,9 +51,11 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.TreeSet;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/**
* Project: anrui-fin(销售相关) <br/>
@ -360,12 +360,23 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
if (StringUtils.isNotBlank(userSid)) {
qw.eq("fd.createBySid", userSid);
}
//查询没有认完的车辆sid
/* List<String> stringList = baseMapper.selectUnSelectList(pagerQuery.getParams().getPurchaseSystemSid(),userSid,useOrgSid);
stringList.removeAll(Collections.singleton(null));
if(!stringList.isEmpty()){
qw.notIn("receivablesSid",stringList);
}*/
List<String> sids = pagerQuery.getParams().getSids();
if (sids != null) {
for (String sid : sids) {
if (StringUtils.isNotBlank(sid)) {
qw.ne("fd.sid", sid);
}
}
}
if(StringUtils.isNotBlank(params.getContractNo())){
qw.like("fd.contractNo",params.getContractNo());
}
if(StringUtils.isNotBlank(params.getCustomerName())){
qw.like("fd.customerName",params.getCustomerName());
}
if(StringUtils.isNotBlank(params.getMobile())){
qw.like("fd.customerPhone",params.getMobile());
}
List<FinSelectReceivablesDetailedVo> collList = baseMapper.selectPageList(qw, params.getName());
if (collList.isEmpty()) {
collList = baseMapper.selectPageList(qw, "");
@ -404,6 +415,9 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
if (StringUtils.isNotBlank(pagerQuery.getParams().getName())) {
collList = collList.stream().filter(v -> v.getVIN().contains(pagerQuery.getParams().getName())).collect(Collectors.toList());
}
if (StringUtils.isNotBlank(pagerQuery.getParams().getVinNo())) {
collList = collList.stream().filter(v -> v.getVIN().contains(pagerQuery.getParams().getVinNo())).collect(Collectors.toList());
}
} else {
for (FinSelectReceivablesDetailedVo record : collList) {
BigDecimal currentMoney = new BigDecimal(record.getCurrentReceivableMoney());
@ -438,8 +452,14 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
}
}
if (StringUtils.isNotBlank(pagerQuery.getParams().getName())) {
List<FinSelectReceivablesDetailedVo> cll = collList.stream().filter(v -> v.getVIN().contains(pagerQuery.getParams().getName())).collect(Collectors.toList());
collList = Stream.of(collList, cll).flatMap(Collection::stream).collect(Collectors.toList());
collList = collList.stream().filter(v -> v.getVIN().contains(pagerQuery.getParams().getName())).collect(Collectors.toList());
// List<FinSelectReceivablesDetailedVo> cll = collList.stream().filter(v -> v.getVIN().contains(pagerQuery.getParams().getName())).collect(Collectors.toList());
// collList = Stream.of(collList, cll).flatMap(Collection::stream).collect(Collectors.toList());
}
if (StringUtils.isNotBlank(pagerQuery.getParams().getVinNo())) {
collList = collList.stream().filter(v -> v.getVIN().contains(pagerQuery.getParams().getVinNo())).collect(Collectors.toList());
// List<FinSelectReceivablesDetailedVo> cll = collList.stream().filter(v -> v.getVIN().contains(pagerQuery.getParams().getVinNo())).collect(Collectors.toList());
// collList = Stream.of(collList, cll).flatMap(Collection::stream).collect(Collectors.toList());
}
}
//将collList根据sid去重
@ -449,9 +469,12 @@ public class FinSelectedReceivablesDetailedService extends MybatisBaseService<Fi
collList = collList.stream().sorted(Comparator.comparing(FinSelectReceivablesDetailedVo::getContractNo).reversed()).collect(Collectors.toList());
//分页
IPage<FinSelectReceivablesDetailedVo> page1 = new Page<>();
page1.setRecords(collList);
page1.setTotal(collList.size());
page1.setPages((collList.size() / pagerQuery.getSize()) + 1);
// page1.setPages((collList.size() / pagerQuery.getSize()) + 1);
page1.setPages(collList.size()/pagerQuery.getSize()+(collList.size()%pagerQuery.getSize()==0?0:1));
collList = collList.stream().skip((pagerQuery.getCurrent() - 1) *pagerQuery.getSize()).limit(pagerQuery.getSize()).collect(Collectors.toList()); //开始分页
// collList = CollUtil.page(Integer.parseInt(String.valueOf(pagerQuery.getCurrent())), Integer.parseInt(String.valueOf(pagerQuery.getSize())), collList);
page1.setRecords(collList);
page1.setCurrent(pagerQuery.getCurrent());
page1.setSize(pagerQuery.getSize());
return page1;

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

@ -22,7 +22,7 @@ public class SysFlowableConfigService extends MybatisBaseService<SysFlowableConf
SysFlowableConfigVvo sysFlowableConfigVvo = new SysFlowableConfigVvo();
//查询该用户当前时间是否有转办人
String userSid = query.getUserSid();
Date nowDate = query.getNowDate();
Date nowDate = new Date();
SysFlowableConfig sysFlowableConfig = baseMapper.selectByUserSid(userSid,nowDate);
BeanUtil.copyProperties(sysFlowableConfig,sysFlowableConfigVvo);
return rb.success().setData(sysFlowableConfigVvo);

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

@ -452,6 +452,8 @@ public class SysOrganizationRest implements SysOrganizationFeign {
ResultBean<List<SysFinanceVo>> rb = ResultBean.fireFail();
String useOrgSid = sysStaffOrgService.getOrgSidByPath(orgPath).getData();
List<SysFinanceVo> list = sysOrganizationService.selectBy("金融服务部",useOrgSid);
list.removeAll(Collections.singleton(null));
list = list.stream().filter(v -> StringUtils.isNotBlank(v.getUserSid())).collect(toList());
return rb.success().setData(list);
}

14
anrui-riskcenter-ui/.editorconfig

@ -0,0 +1,14 @@
# http://editorconfig.org
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
[*.md]
insert_final_newline = false
trim_trailing_whitespace = false

10
anrui-riskcenter-ui/.env.development

@ -0,0 +1,10 @@
# just a flag
ENV = 'development'
# base api
VUE_APP_BASE_API = '/api'
## 配置测试和本地开发时的 接口地址
##VUE_APP_URL = "http://26077a35f5.wicp.vip"
VUE_APP_URL = "http://anrui.yyundong.com"

9
anrui-riskcenter-ui/.env.production

@ -0,0 +1,9 @@
# just a flag
ENV = 'production'
# base api
VUE_APP_BASE_API = '/api'
## 配置 正式接口地址
VUE_APP_URL = "http://218.11.12.154:8111"

8
anrui-riskcenter-ui/.env.staging

@ -0,0 +1,8 @@
NODE_ENV = production
# just a flag
ENV = 'staging'
# base api
VUE_APP_BASE_API = '/stage-api'

4
anrui-riskcenter-ui/.eslintignore

@ -0,0 +1,4 @@
build/*.js
src/assets
public
dist

199
anrui-riskcenter-ui/.eslintrc.js

@ -0,0 +1,199 @@
module.exports = {
root: true,
parserOptions: {
parser: 'babel-eslint',
sourceType: 'module'
},
env: {
browser: true,
node: true,
es6: true,
},
extends: ['plugin:vue/recommended', 'eslint:recommended'],
// add your custom rules here
//it is base on https://github.com/vuejs/eslint-config-vue
rules: {
"vue/max-attributes-per-line": [2, {
"singleline": 10,
"multiline": {
"max": 1,
"allowFirstLine": false
}
}],
"vue/singleline-html-element-content-newline": "off",
"vue/multiline-html-element-content-newline":"off",
"vue/name-property-casing": ["error", "PascalCase"],
"vue/no-v-html": "off",
'accessor-pairs': 2,
'arrow-spacing': [2, {
'before': true,
'after': true
}],
'block-spacing': [2, 'always'],
'brace-style': [2, '1tbs', {
'allowSingleLine': true
}],
'camelcase': [0, {
'properties': 'always'
}],
'comma-dangle': [2, 'never'],
'comma-spacing': [2, {
'before': false,
'after': true
}],
'comma-style': [2, 'last'],
'constructor-super': 2,
'curly': [2, 'multi-line'],
'dot-location': [2, 'property'],
'eol-last': 2,
'eqeqeq': ["error", "always", {"null": "ignore"}],
'generator-star-spacing': [2, {
'before': true,
'after': true
}],
'handle-callback-err': [2, '^(err|error)$'],
// 'indent': [2, 2, {
// 'SwitchCase': 1
// }],
'indent': 'off',
'jsx-quotes': [2, 'prefer-single'],
'key-spacing': [2, {
'beforeColon': false,
'afterColon': true
}],
'keyword-spacing': [2, {
'before': true,
'after': true
}],
'new-cap': [2, {
'newIsCap': true,
'capIsNew': false
}],
'new-parens': 2,
'no-array-constructor': 2,
'no-caller': 2,
'no-console': 'off',
'no-class-assign': 2,
'no-cond-assign': 2,
'no-const-assign': 2,
'no-control-regex': 0,
'no-delete-var': 2,
'no-dupe-args': 2,
'no-dupe-class-members': 2,
'no-dupe-keys': 2,
'no-duplicate-case': 2,
'no-empty-character-class': 2,
'no-empty-pattern': 2,
'no-eval': 2,
'no-ex-assign': 2,
'no-extend-native': 2,
'no-extra-bind': 2,
'no-extra-boolean-cast': 2,
'no-extra-parens': [2, 'functions'],
'no-fallthrough': 2,
'no-floating-decimal': 2,
'no-func-assign': 2,
'no-implied-eval': 2,
'no-inner-declarations': [2, 'functions'],
'no-invalid-regexp': 2,
'no-irregular-whitespace': 2,
'no-iterator': 2,
'no-label-var': 2,
'no-labels': [2, {
'allowLoop': false,
'allowSwitch': false
}],
'no-lone-blocks': 2,
'no-mixed-spaces-and-tabs': 2,
'no-multi-spaces': 2,
'no-multi-str': 2,
'no-multiple-empty-lines': [2, {
'max': 1
}],
'no-native-reassign': 2,
'no-negated-in-lhs': 2,
'no-new-object': 2,
'no-new-require': 2,
'no-new-symbol': 2,
'no-new-wrappers': 2,
'no-obj-calls': 2,
'no-octal': 2,
'no-octal-escape': 2,
'no-path-concat': 2,
'no-proto': 2,
'no-redeclare': 2,
'no-regex-spaces': 2,
'no-return-assign': [2, 'except-parens'],
'no-self-assign': 2,
'no-self-compare': 2,
'no-sequences': 2,
'no-shadow-restricted-names': 2,
'no-spaced-func': 2,
'no-sparse-arrays': 2,
'no-this-before-super': 2,
'no-throw-literal': 2,
'no-trailing-spaces': 2,
'no-undef': 2,
'no-undef-init': 2,
'no-unexpected-multiline': 2,
'no-unmodified-loop-condition': 2,
'no-unneeded-ternary': [2, {
'defaultAssignment': false
}],
'no-unreachable': 2,
'no-unsafe-finally': 2,
'no-unused-vars': [2, {
'vars': 'all',
'args': 'none'
}],
'no-useless-call': 2,
'no-useless-computed-key': 2,
'no-useless-constructor': 2,
'no-useless-escape': 0,
'no-whitespace-before-property': 2,
'no-with': 2,
'one-var': [2, {
'initialized': 'never'
}],
'operator-linebreak': [2, 'after', {
'overrides': {
'?': 'before',
':': 'before'
}
}],
'padded-blocks': [2, 'never'],
'quotes': [2, 'single', {
'avoidEscape': true,
'allowTemplateLiterals': true
}],
'semi': [2, 'never'],
'semi-spacing': [2, {
'before': false,
'after': true
}],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'space-infix-ops': 2,
'space-unary-ops': [2, {
'words': true,
'nonwords': false
}],
'spaced-comment': [2, 'always', {
'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ',']
}],
'template-curly-spacing': [2, 'never'],
'use-isnan': 2,
'valid-typeof': 2,
'wrap-iife': [2, 'any'],
'yield-star-spacing': [2, 'both'],
'yoda': [2, 'never'],
'prefer-const': 2,
'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0,
'object-curly-spacing': [2, 'always', {
objectsInObjects: false
}],
'array-bracket-spacing': [2, 'never']
}
}

16
anrui-riskcenter-ui/.gitignore

@ -0,0 +1,16 @@
.DS_Store
node_modules/
dist/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
tests/**/coverage/
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln

28
anrui-riskcenter-ui/.project

@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>anrui-system-ui</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.aptana.ide.core.unifiedBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.aptana.projects.webnature</nature>
</natures>
<filteredResources>
<filter>
<id>1629107336958</id>
<name></name>
<type>26</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>

5
anrui-riskcenter-ui/.travis.yml

@ -0,0 +1,5 @@
language: node_js
node_js: 10
script: npm run test
notifications:
email: false

21
anrui-riskcenter-ui/LICENSE

@ -0,0 +1,21 @@
MIT License
Copyright (c) 2017-present PanJiaChen
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

0
anrui-riskcenter-ui/README-zh.md

90
anrui-riskcenter-ui/README.md

@ -0,0 +1,90 @@
# vue-admin-template
English | [简体中文](./README-zh.md)
> A minimal vue admin template with Element UI & axios & iconfont & permission control & lint
**Live demo:** http://panjiachen.github.io/vue-admin-template
**The current version is `v4.0+` build on `vue-cli`. If you want to use the old version , you can switch branch to [tag/3.11.0](https://github.com/PanJiaChen/vue-admin-template/tree/tag/3.11.0), it does not rely on `vue-cli`**
## Build Setup
```bash
# clone the project
git clone https://github.com/PanJiaChen/vue-admin-template.git
# enter the project directory
cd vue-admin-template
# install dependency
npm install
# develop
npm run dev
```
This will automatically open http://localhost:9528
## Build
```bash
# build for test environment
npm run build:stage
# build for production environment
npm run build:prod
```
## Advanced
```bash
# preview the release environment effect
npm run preview
# preview the release environment effect + static resource analysis
npm run preview -- --report
# code format check
npm run lint
# code format check and auto fix
npm run lint -- --fix
```
Refer to [Documentation](https://panjiachen.github.io/vue-element-admin-site/guide/essentials/deploy.html) for more information
## Demo
![demo](https://github.com/PanJiaChen/PanJiaChen.github.io/blob/master/images/demo.gif)
## Extra
If you want router permission && generate menu by user roles , you can use this branch [permission-control](https://github.com/PanJiaChen/vue-admin-template/tree/permission-control)
For `typescript` version, you can use [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template) (Credits: [@Armour](https://github.com/Armour))
## Related Project
- [vue-element-admin](https://github.com/PanJiaChen/vue-element-admin)
- [electron-vue-admin](https://github.com/PanJiaChen/electron-vue-admin)
- [vue-typescript-admin-template](https://github.com/Armour/vue-typescript-admin-template)
- [awesome-project](https://github.com/PanJiaChen/vue-element-admin/issues/2312)
## Browsers support
Modern browsers and Internet Explorer 10+.
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari |
| --------- | --------- | --------- | --------- |
| IE10, IE11, Edge| last 2 versions| last 2 versions| last 2 versions
## License
[MIT](https://github.com/PanJiaChen/vue-admin-template/blob/master/LICENSE) license.
Copyright (c) 2017-present PanJiaChen

14
anrui-riskcenter-ui/babel.config.js

@ -0,0 +1,14 @@
module.exports = {
presets: [
// https://github.com/vuejs/vue-cli/tree/master/packages/@vue/babel-preset-app
'@vue/cli-plugin-babel/preset'
],
'env': {
'development': {
// babel-plugin-dynamic-import-node plugin only does one thing by converting all import() to require().
// This plugin can significantly increase the speed of hot updates, when you have a large number of pages.
// https://panjiachen.github.io/vue-element-admin-site/guide/advanced/lazy-loading.html
'plugins': ['dynamic-import-node']
}
}
}

35
anrui-riskcenter-ui/build/index.js

@ -0,0 +1,35 @@
const { run } = require('runjs')
const chalk = require('chalk')
const config = require('../vue.config.js')
const rawArgv = process.argv.slice(2)
const args = rawArgv.join(' ')
if (process.env.npm_config_preview || rawArgv.includes('--preview')) {
const report = rawArgv.includes('--report')
run(`vue-cli-service build ${args}`)
const port = 9526
const publicPath = config.publicPath
var connect = require('connect')
var serveStatic = require('serve-static')
const app = connect()
app.use(
publicPath,
serveStatic('./dist', {
index: ['index.html', '/']
})
)
app.listen(port, function () {
console.log(chalk.green(`> Preview at http://localhost:${port}${publicPath}`))
if (report) {
console.log(chalk.green(`> Report at http://localhost:${port}${publicPath}report.html`))
}
})
} else {
run(`vue-cli-service build ${args}`)
}

24
anrui-riskcenter-ui/jest.config.js

@ -0,0 +1,24 @@
module.exports = {
moduleFileExtensions: ['js', 'jsx', 'json', 'vue'],
transform: {
'^.+\\.vue$': 'vue-jest',
'.+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$':
'jest-transform-stub',
'^.+\\.jsx?$': 'babel-jest'
},
moduleNameMapper: {
'^@/(.*)$': '<rootDir>/src/$1'
},
snapshotSerializers: ['jest-serializer-vue'],
testMatch: [
'**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)'
],
collectCoverageFrom: ['src/utils/**/*.{js,vue}', '!src/utils/auth.js', '!src/utils/request.js', 'src/components/**/*.{js,vue}'],
coverageDirectory: '<rootDir>/tests/unit/coverage',
// 'collectCoverage': true,
'coverageReporters': [
'lcov',
'text-summary'
],
testURL: 'http://localhost/'
}

9
anrui-riskcenter-ui/jsconfig.json

@ -0,0 +1,9 @@
{
"compilerOptions": {
"baseUrl": "./",
"paths": {
"@/*": ["src/*"]
}
},
"exclude": ["node_modules", "dist"]
}

57
anrui-riskcenter-ui/mock/index.js

@ -0,0 +1,57 @@
const Mock = require('mockjs')
const { param2Obj } = require('./utils')
const user = require('./user')
const table = require('./table')
const mocks = [
...user,
...table
]
// for front mock
// please use it cautiously, it will redefine XMLHttpRequest,
// which will cause many of your third-party libraries to be invalidated(like progress event).
function mockXHR() {
// mock patch
// https://github.com/nuysoft/Mock/issues/300
Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send
Mock.XHR.prototype.send = function() {
if (this.custom.xhr) {
this.custom.xhr.withCredentials = this.withCredentials || false
if (this.responseType) {
this.custom.xhr.responseType = this.responseType
}
}
this.proxy_send(...arguments)
}
function XHR2ExpressReqWrap(respond) {
return function(options) {
let result = null
if (respond instanceof Function) {
const { body, type, url } = options
// https://expressjs.com/en/4x/api.html#req
result = respond({
method: type,
body: JSON.parse(body),
query: param2Obj(url)
})
} else {
result = respond
}
return Mock.mock(result)
}
}
for (const i of mocks) {
Mock.mock(new RegExp(i.url), i.type || 'get', XHR2ExpressReqWrap(i.response))
}
}
module.exports = {
mocks,
mockXHR
}

81
anrui-riskcenter-ui/mock/mock-server.js

@ -0,0 +1,81 @@
const chokidar = require('chokidar')
const bodyParser = require('body-parser')
const chalk = require('chalk')
const path = require('path')
const Mock = require('mockjs')
const mockDir = path.join(process.cwd(), 'mock')
function registerRoutes(app) {
let mockLastIndex
const { mocks } = require('./index.js')
const mocksForServer = mocks.map(route => {
return responseFake(route.url, route.type, route.response)
})
for (const mock of mocksForServer) {
app[mock.type](mock.url, mock.response)
mockLastIndex = app._router.stack.length
}
const mockRoutesLength = Object.keys(mocksForServer).length
return {
mockRoutesLength: mockRoutesLength,
mockStartIndex: mockLastIndex - mockRoutesLength
}
}
function unregisterRoutes() {
Object.keys(require.cache).forEach(i => {
if (i.includes(mockDir)) {
delete require.cache[require.resolve(i)]
}
})
}
// for mock server
const responseFake = (url, type, respond) => {
return {
url: new RegExp(`${process.env.VUE_APP_BASE_API}${url}`),
type: type || 'get',
response(req, res) {
console.log('request invoke:' + req.path)
res.json(Mock.mock(respond instanceof Function ? respond(req, res) : respond))
}
}
}
module.exports = app => {
// parse app.body
// https://expressjs.com/en/4x/api.html#req.body
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({
extended: true
}))
const mockRoutes = registerRoutes(app)
var mockRoutesLength = mockRoutes.mockRoutesLength
var mockStartIndex = mockRoutes.mockStartIndex
// watch files, hot reload mock server
chokidar.watch(mockDir, {
ignored: /mock-server/,
ignoreInitial: true
}).on('all', (event, path) => {
if (event === 'change' || event === 'add') {
try {
// remove mock routes stack
app._router.stack.splice(mockStartIndex, mockRoutesLength)
// clear routes cache
unregisterRoutes()
const mockRoutes = registerRoutes(app)
mockRoutesLength = mockRoutes.mockRoutesLength
mockStartIndex = mockRoutes.mockStartIndex
console.log(chalk.magentaBright(`\n > Mock Server hot reload success! changed ${path}`))
} catch (error) {
console.log(chalk.redBright(error))
}
}
})
}

29
anrui-riskcenter-ui/mock/table.js

@ -0,0 +1,29 @@
const Mock = require('mockjs')
const data = Mock.mock({
'items|30': [{
id: '@id',
title: '@sentence(10, 20)',
'status|1': ['published', 'draft', 'deleted'],
author: 'name',
display_time: '@datetime',
pageviews: '@integer(300, 5000)'
}]
})
module.exports = [
{
url: '/vue-admin-template/table/list',
type: 'get',
response: config => {
const items = data.items
return {
code: 20000,
data: {
total: items.length,
items: items
}
}
}
}
]

84
anrui-riskcenter-ui/mock/user.js

@ -0,0 +1,84 @@
const tokens = {
admin: {
token: 'admin-token'
},
editor: {
token: 'editor-token'
}
}
const users = {
'admin-token': {
roles: ['admin'],
introduction: 'I am a super administrator',
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
name: 'Super Admin'
},
'editor-token': {
roles: ['editor'],
introduction: 'I am an editor',
avatar: 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif',
name: 'Normal Editor'
}
}
module.exports = [
// user login
{
url: '/vue-admin-template/user/login',
type: 'post',
response: config => {
const { username } = config.body
const token = tokens[username]
// mock error
if (!token) {
return {
code: 60204,
message: 'Account and password are incorrect.'
}
}
return {
code: 20000,
data: token
}
}
},
// get user info
{
url: '/vue-admin-template/user/info\.*',
type: 'get',
response: config => {
const { token } = config.query
const info = users[token]
// mock error
if (!info) {
return {
code: 50008,
message: 'Login failed, unable to get user details.'
}
}
return {
code: 20000,
data: info
}
}
},
// user logout
{
url: '/vue-admin-template/user/logout',
type: 'post',
response: _ => {
return {
code: 20000,
data: 'success'
}
}
}
]

25
anrui-riskcenter-ui/mock/utils.js

@ -0,0 +1,25 @@
/**
* @param {string} url
* @returns {Object}
*/
function param2Obj(url) {
const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ')
if (!search) {
return {}
}
const obj = {}
const searchArr = search.split('&')
searchArr.forEach(v => {
const index = v.indexOf('=')
if (index !== -1) {
const name = v.substring(0, index)
const val = v.substring(index + 1, v.length)
obj[name] = val
}
})
return obj
}
module.exports = {
param2Obj
}

69
anrui-riskcenter-ui/package.json

@ -0,0 +1,69 @@
{
"name": "admin-template",
"version": "4.4.0",
"description": "A vue admin template with Element UI & axios & iconfont & permission control & lint",
"author": "Pan <panfree23@gmail.com>",
"scripts": {
"dev": "vue-cli-service serve",
"build:prod": "vue-cli-service build",
"build:stage": "vue-cli-service build --mode staging",
"preview": "node build/index.js --preview",
"svgo": "svgo -f src/icons/svg --config=src/icons/svgo.yml",
"lint": "eslint --ext .js,.vue src",
"test:unit": "jest --clearCache && vue-cli-service test:unit",
"test:ci": "npm run lint && npm run test:unit"
},
"dependencies": {
"axios": "0.18.1",
"core-js": "^3.22.5",
"element-ui": "2.13.2",
"js-cookie": "2.2.0",
"normalize.css": "7.0.0",
"nprogress": "0.2.0",
"path-to-regexp": "2.4.0",
"portfinder": "^1.0.21",
"qs": "^6.9.4",
"sass-resources-loader": "^2.1.1",
"viewerjs": "^1.9.0",
"vue": "2.6.10",
"vue-amap": "^0.5.10",
"vue-router": "3.0.6",
"vuex": "3.1.0",
"vuex-persistedstate": "^4.0.0"
},
"devDependencies": {
"@vue/cli-plugin-babel": "4.4.4",
"@vue/cli-plugin-eslint": "4.4.4",
"@vue/cli-plugin-unit-jest": "4.4.4",
"@vue/cli-service": "4.4.4",
"@vue/test-utils": "1.0.0-beta.29",
"autoprefixer": "9.5.1",
"babel-eslint": "10.1.0",
"babel-jest": "23.6.0",
"babel-plugin-dynamic-import-node": "2.3.3",
"babel-polyfill": "^6.26.0",
"chalk": "2.4.2",
"connect": "3.6.6",
"eslint": "6.7.2",
"eslint-plugin-vue": "6.2.2",
"html-webpack-plugin": "3.2.0",
"mockjs": "1.0.1-beta3",
"runjs": "4.3.2",
"sass": "1.26.8",
"sass-loader": "8.0.2",
"script-ext-html-webpack-plugin": "2.1.3",
"serve-static": "1.13.2",
"svg-sprite-loader": "4.1.3",
"svgo": "1.2.2",
"vue-template-compiler": "2.6.10"
},
"browserslist": [
"> 1%",
"last 2 versions"
],
"engines": {
"node": ">=8.9",
"npm": ">= 3.0.0"
},
"license": "MIT"
}

8
anrui-riskcenter-ui/postcss.config.js

@ -0,0 +1,8 @@
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
'plugins': {
// to edit target browsers: use "browserslist" field in package.json
'autoprefixer': {}
}
}

BIN
anrui-riskcenter-ui/public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
anrui-riskcenter-ui/public/image/liuchengtu.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

17
anrui-riskcenter-ui/public/index.html

@ -0,0 +1,17 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= webpackConfig.name %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= webpackConfig.name %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>

14
anrui-riskcenter-ui/src/App.vue

@ -0,0 +1,14 @@
<template>
<div id="app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App',
mounted() {
},
}
</script>

20
anrui-riskcenter-ui/src/api/Common/Upload.js

@ -0,0 +1,20 @@
import request from '@/utils/request'
// 上传图片
export function imageUpload(data){
return request({
url: '/jlcyry/file/upload',
method: 'post',
data,
headers:{'Content-Type':'multipart/form-data'}
})
}
// export function uploadFile(data){
// return request({
// url: '/portal/file/upload',
// method: 'post',
// data,
// headers:{'Content-Type':'multipart/form-data'}
// })
// }
//
export const uploadFile = '/api/portal/file/upload'

49
anrui-riskcenter-ui/src/api/Common/areaPicker.js

@ -0,0 +1,49 @@
import request from '@/utils/request'
//区域获取省
// export function getProvince(data) {
// return request({
// url: '/system/region/getProvince',
// method: 'get'
// })
// }
// //根据省sid获取该省的所有市
// export function getCity(data) {
// return request({
// url: '/system/region/getCity',
// method: 'get',
// params: data
// })
// }
// //根据市sid获取该市的所有县区
// export function getCounty(data) {
// return request({
// url: '/system/region/getCounty',
// method: 'get',
// params: data
// })
// }
// 获取省/portal/v1/regions/getProvince
export function getProvince(data) {
return request({
url: '/portal/v1/regions/getProvince',data,
method: 'get',
params:data,
})
}
// 根据省sid获取该省的所有市
export function getCity(data) {
return request({
url: '/portal/v1/regions/getCity',
params:data,
method: 'get',
})
}
// 根据市sid获取该市的所有县区
export function getCounty(data) {
return request({
url: '/portal/v1/regions/getCounty',
method: 'get',
params:data,
})
}

13
anrui-riskcenter-ui/src/api/Common/permission.js

@ -0,0 +1,13 @@
import request from '@/utils/request'
// 请求按钮权限
export default {
// 查询分页列表,输入当前路径和userSid,返回
buttonPermission: function(params) {
return request({
url: '/demopackage/v1/demo/buttonPermission',
method: 'post',
data: params
})
}
}

36
anrui-riskcenter-ui/src/api/User/login.js

@ -0,0 +1,36 @@
import request from '@/utils/request'
import qs from 'qs'
class user {
login(data) { // 登录
return request({
url: '/system/user/login',
method: 'post',
data
})
}
logout(data) { // 退出
return request({
url: '/portal/v1/sysuser/signOut',
method: 'post',
data: qs.stringify(data)
})
}
updatePassword(data) { // 退出修改密码
return request({
url: '/portal/v1/sysuser/updatePassword',
method: 'post',
data: qs.stringify(data)
})
}
reGetPwd(data){
return request({
url: `/system/user/reGetPwd/${data.userName}/${data.userPhone}`,
method: 'post',
data: qs.stringify(data)
})
}
}
export default new user()

44
anrui-riskcenter-ui/src/api/system/Role/role.js

@ -0,0 +1,44 @@
import request from '@/utils/request'
import qs from 'qs'
let tokens = window.sessionStorage.getItem('token');
//
export function rolemenus(data) {
return request({
url: '/system/v1/rolemenus/'+data.roleSid,
method: 'get',
params: data
})
}
// 获取左侧菜单
export function getrolemenus(data) {
return request({
url: '/portal/v1/sysmenu/sourcemenutree',
data: data,
method: 'POST',
async: false,
headers: {'Content-Type': 'application/json'}
})
}
// 获取角色的主页菜单
export function sourcesofrole(data) {
return request({
url: '/system/v1/rolemenus/sourcesofrole',
method: 'POST',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 根据token值获取登录后的用户信息
export function loginDetails(data) {
return request({
url: '/portal/v1/sysuser/loginDetails',
method: 'post',
data: data,
headers: {
'Content-Type': 'application/json'
}
})
}

44
anrui-riskcenter-ui/src/api/user.js

@ -0,0 +1,44 @@
import request from '@/utils/request'
import qs from 'qs'
//登录
export function login(data) {
return request({
url: '/portal/v1/sysuser/login',
method: 'post',
data: data,
headers: {'Content-Type': 'application/json'}
})
}
// 用户注册
export function registUser(data) {
return request({
url: '/system/user/save',
method: 'post',
data,
headers:{'Content-Type':'application/x-www-form-urlencoded;'}
})
}
// 获取手机验证码
export function getVerificationCode(data) {
return request({
url: '/system/user/getVerificationCode',
method: 'get',
params: data
})
}
// 获取登录验证码
export function imgCode() {
return request({
url: '/system/api/defaultBlendCode?temm=' + new Date().getTime(),
method: 'get'
})
}
// 获取用信息
export function getInfo(token) {
return request({
url: '/system/user/loginDetails',
method: 'post',
})
}

BIN
anrui-riskcenter-ui/src/assets/404_images/404.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 96 KiB

BIN
anrui-riskcenter-ui/src/assets/404_images/404_cloud.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.7 KiB

BIN
anrui-riskcenter-ui/src/assets/home/anrui.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
anrui-riskcenter-ui/src/assets/home/bIcon1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.5 KiB

BIN
anrui-riskcenter-ui/src/assets/home/bIcon2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
anrui-riskcenter-ui/src/assets/home/bIcon3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

BIN
anrui-riskcenter-ui/src/assets/home/bIcon4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

BIN
anrui-riskcenter-ui/src/assets/home/bIcon5.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

BIN
anrui-riskcenter-ui/src/assets/home/bIcon6.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

BIN
anrui-riskcenter-ui/src/assets/home/bIcon7.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 KiB

BIN
anrui-riskcenter-ui/src/assets/home/bIcon8.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

BIN
anrui-riskcenter-ui/src/assets/home/bottomBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

BIN
anrui-riskcenter-ui/src/assets/home/line.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 B

BIN
anrui-riskcenter-ui/src/assets/home/ltBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
anrui-riskcenter-ui/src/assets/home/ltIcon1.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

BIN
anrui-riskcenter-ui/src/assets/home/ltIcon2.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
anrui-riskcenter-ui/src/assets/home/ltIcon3.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

BIN
anrui-riskcenter-ui/src/assets/home/ltIcon4.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

BIN
anrui-riskcenter-ui/src/assets/home/notice.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 944 B

BIN
anrui-riskcenter-ui/src/assets/home/rtBg.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

BIN
anrui-riskcenter-ui/src/assets/images/arrow.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
anrui-riskcenter-ui/src/assets/images/bdrysh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
anrui-riskcenter-ui/src/assets/images/btn.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
anrui-riskcenter-ui/src/assets/images/cdgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

BIN
anrui-riskcenter-ui/src/assets/images/cxjl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
anrui-riskcenter-ui/src/assets/images/czsc.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
anrui-riskcenter-ui/src/assets/images/dwrysh.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
anrui-riskcenter-ui/src/assets/images/dwxxgl.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
anrui-riskcenter-ui/src/assets/images/dy.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save