Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 2 months ago
parent
commit
34bc11dbc6
  1. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/PayBaseVehicleVo.java
  2. 21
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  3. 2
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnveh/ReturnPushVo.java
  4. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyMapper.java
  5. 9
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyMapper.xml
  6. 34
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyService.java
  7. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/rsk/FinSelectedReceivablesDetailedRsk.java
  8. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java
  9. 8
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml
  10. 56
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  11. 86
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDetailsVo.java
  12. 84
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDto.java
  13. 15
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordRest.java
  14. 48
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.java
  15. 17
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyRest.java
  16. 8
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/sms/pricestrategybill/AppPricestrategyBillFeign.java
  17. 8
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/sms/pricestrategybill/AppPricestrategyBillService.java
  18. 14
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBwBillPageListVo.java
  19. 4
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml
  20. 19
      yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java
  21. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/FittingsInventoryQuery.java
  22. 3
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/FittingsInventoryVo.java
  23. 25
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml
  24. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryQuery.java
  25. 18
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java
  26. 5
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryVo.java
  27. 57
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordMapper.xml
  28. 10
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java
  29. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordsQuery.java
  30. 4
      yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordsVo.java

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/PayBaseVehicleVo.java

@ -52,8 +52,6 @@ public class PayBaseVehicleVo implements Vo {
private String saleTypeValue; private String saleTypeValue;
@ApiModelProperty("买断状态") @ApiModelProperty("买断状态")
private String settlementStatusValue; private String settlementStatusValue;
@ApiModelProperty("交清状态")
private String finState;
@ApiModelProperty(value = "品牌") @ApiModelProperty(value = "品牌")
private String brandName; private String brandName;

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

@ -3546,6 +3546,11 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
} else if ("0".equals(query.getIsSales())) { } else if ("0".equals(query.getIsSales())) {
qw.isNull("bv.salesDate"); qw.isNull("bv.salesDate");
} }
if ("1".equals(query.getIsSettle())) {
qw.eq("vs.finState", 1);
} else if ("0".equals(query.getIsSettle())) {
qw.and(wrapper -> wrapper.isNull("vs.finState").or().eq("vs.finState", 0));
}
if (StringUtils.isNotBlank(query.getVinNo())) { if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("bv.vinNo", query.getVinNo()); qw.like("bv.vinNo", query.getVinNo());
} }
@ -3603,22 +3608,6 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
qw.groupBy("bv.sid"); qw.groupBy("bv.sid");
qw.orderByDesc("bv.createTime"); qw.orderByDesc("bv.createTime");
IPage<PayBaseVehicleVo> pagging = baseMapper.selectPayVehicleList(page, qw); IPage<PayBaseVehicleVo> pagging = baseMapper.selectPayVehicleList(page, qw);
Iterator<PayBaseVehicleVo> iterator = pagging.getRecords().iterator();
if (query.getIsSettle().equals("0")) {
while (iterator.hasNext()) {
PayBaseVehicleVo next = iterator.next();
if ("1".equals(next.getFinState())) {
pagging.getRecords().remove(next);
}
}
} else if (query.getIsSettle().equals("1")) {
while (iterator.hasNext()) {
PayBaseVehicleVo next = iterator.next();
if (StringUtils.isBlank(next.getFinState()) || "0".equals(next.getFinState())) {
pagging.getRecords().remove(next);
}
}
}
PagerVo<PayBaseVehicleVo> p = PagerUtil.pageToVo(pagging, null); PagerVo<PayBaseVehicleVo> p = PagerUtil.pageToVo(pagging, null);
return p; return p;
} }

2
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/bussalesorderreturnveh/ReturnPushVo.java

@ -13,4 +13,6 @@ public class ReturnPushVo {
private String billNo; private String billNo;
private String materialCode; private String materialCode;
private String typeKey;
} }

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyMapper.java

@ -90,4 +90,6 @@ public interface BusSalesOrderReturnVehApplyMapper extends BaseMapper<BusSalesOr
int updateByBorrowSid(String s); int updateByBorrowSid(String s);
ReturnPushVo selectByVinSid(String vehSid); ReturnPushVo selectByVinSid(String vehSid);
List<ReturnPushVo> selectByBillNo(String billNo);
} }

9
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyMapper.xml

@ -79,9 +79,16 @@
</update> </update>
<select id="selectByVinSid" resultType="com.yxt.anrui.buscenter.api.bussalesorderreturnveh.ReturnPushVo"> <select id="selectByVinSid" resultType="com.yxt.anrui.buscenter.api.bussalesorderreturnveh.ReturnPushVo">
SELECT ba.billNo,bo.materialCode SELECT ba.billNo,bo.materialCode,bo.typeKey
FROM anrui_base.base_vehicle_out bo FROM anrui_base.base_vehicle_out bo
left join anrui_base.base_vehicle_out_apply ba on ba.sid = bo.mainSid left join anrui_base.base_vehicle_out_apply ba on ba.sid = bo.mainSid
where bo.materialTypeKey = '001' and bo.isDelete = 0 and bo.vinSid = #{vehSid} where bo.materialTypeKey = '001' and bo.isDelete = 0 and bo.vinSid = #{vehSid}
</select> </select>
<select id="selectByBillNo" resultType="com.yxt.anrui.buscenter.api.bussalesorderreturnveh.ReturnPushVo">
SELECT ba.billNo,bo.materialCode,bo.typeKey
FROM anrui_base.base_vehicle_out bo
left join anrui_base.base_vehicle_out_apply ba on ba.sid = bo.mainSid
where bo.materialTypeKey = '001' and ba.billNo = #{billNo} order by bo.id asc
</select>
</mapper> </mapper>

34
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyService.java

@ -705,6 +705,31 @@ public class BusSalesOrderReturnVehApplyService extends MybatisBaseService<BusSa
salesReturnDetailDto.setFOwnerId(vehicleSelectVo.getOrgCode());*/ salesReturnDetailDto.setFOwnerId(vehicleSelectVo.getOrgCode());*/
busSalesReturnOrdersDto.setSaleOrgId(vehicleSelectVo.getOrgCode()); busSalesReturnOrdersDto.setSaleOrgId(vehicleSelectVo.getOrgCode());
} }
//对已经出库的车推送销售退货单----------2025-04-03
SalOutStockPushSalReturnStock.SalesReturnDetailDto salesReturnDetailDto = new SalOutStockPushSalReturnStock.SalesReturnDetailDto();
ReturnPushVo returnPushVo = baseMapper.selectByVinSid(vehSid);
if (returnPushVo != null) {
salesReturnDetailDto.setFMaterialId(returnPushVo.getMaterialCode());
salesReturnDetailDto.setBillNo(returnPushVo.getBillNo());
if("002".equals(returnPushVo.getTypeKey())){//贷款车
int j = 1;
List<ReturnPushVo> returnPushVoList = baseMapper.selectByBillNo(returnPushVo.getBillNo());
returnPushVoList.removeAll(Collections.singleton(null));
if(!returnPushVoList.isEmpty()){
for (int k = 0; k < returnPushVoList.size(); k++) {
ReturnPushVo l = returnPushVoList.get(k);
if(l.getMaterialCode().equals(returnPushVo.getMaterialCode())){
String temporaryNumZc = String.format("%02d", j);
salesReturnDetailDto.setBillNo(returnPushVo.getBillNo()+ "-"+temporaryNumZc);
j++;
break;
}
}
}
}
salesReturnDetailDtoList.add(salesReturnDetailDto);
}
List<BaseSalesReturnVo> returnVos = baseVehicleOutFeign.selectByVehReturn(vehSid, busSalesOrderReturnVehApply.getContractNo()).getData(); List<BaseSalesReturnVo> returnVos = baseVehicleOutFeign.selectByVehReturn(vehSid, busSalesOrderReturnVehApply.getContractNo()).getData();
if (null != returnVos) { if (null != returnVos) {
if (!returnVos.isEmpty()) { if (!returnVos.isEmpty()) {
@ -752,14 +777,7 @@ public class BusSalesOrderReturnVehApplyService extends MybatisBaseService<BusSa
//删除推送的单车返利管理 //删除推送的单车返利管理
scmVehRebateFeign.delByVehSid2(vehSid, busSalesOrderReturnVehApply.getUseOrgSid(), "029"); scmVehRebateFeign.delByVehSid2(vehSid, busSalesOrderReturnVehApply.getUseOrgSid(), "029");
//对已经出库的车推送销售退货单----------2025-04-03
SalOutStockPushSalReturnStock.SalesReturnDetailDto salesReturnDetailDto = new SalOutStockPushSalReturnStock.SalesReturnDetailDto();
ReturnPushVo returnPushVo = baseMapper.selectByVinSid(vehSid);
if (returnPushVo != null) {
salesReturnDetailDto.setFMaterialId(returnPushVo.getMaterialCode());
salesReturnDetailDto.setBillNo(returnPushVo.getBillNo());
salesReturnDetailDtoList.add(salesReturnDetailDto);
}
} }

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

@ -1,6 +1,6 @@
package com.yxt.anrui.fin.api.fincollectionconfirmation.rsk; package com.yxt.anrui.fin.api.fincollectionconfirmation.rsk;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.java

@ -202,4 +202,6 @@ public interface FinCollectionConfirmationMapper extends BaseMapper<FinCollectio
List<FinCollectionConfirmation> selectNotPush(); List<FinCollectionConfirmation> selectNotPush();
String selectCurrentMoney(String sid); String selectCurrentMoney(String sid);
int selBeVehCountByBusVinSidAndPeriod(@Param("busVinSid") String busVinSid, @Param("period") String period);
} }

8
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationMapper.xml

@ -560,4 +560,12 @@
WHERE furd.sid = #{sid} WHERE furd.sid = #{sid}
LIMIT 1 LIMIT 1
</select> </select>
<select id="selBeVehCountByBusVinSidAndPeriod" resultType="java.lang.Integer">
SELECT
COUNT(*)
FROM
anrui_riskcenter.loan_be_collection_veh AS v
LEFT JOIN anrui_riskcenter.loan_be_collection_apply as a ON v.mainSid = a.sid
WHERE a.nodeState != '终止' AND v.saleVehSid = #{busVinSid} AND v.beOverduePeriod = #{period}
</select>
</mapper> </mapper>

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

@ -3990,6 +3990,31 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (StringUtils.isBlank(v.getSubscriptionMoney())) { if (StringUtils.isBlank(v.getSubscriptionMoney())) {
return rb.setMsg("认款金额不允许为空"); return rb.setMsg("认款金额不允许为空");
} }
if (v.getReceivablesName().equals("月还") || v.getReceivablesName().equals("资方逾期利息")) {
String planSid = "";
if (v.getReceivablesName().equals("月还")) {
planSid = v.getReceivablesSid();
} else {
FinUncollectedReceivablesDetailedJR jr = finUncollectedReceivablesDetailedJRService.fetchBySid(v.getReceivablesSid());
if (jr != null) {
planSid = jr.getBusSid();
}
}
LoanRepaymentPlanDetails planDetails = loanRepaymentPlanDetailsFeign.fetchDetails(planSid).getData();
if (null != planDetails) {
BigDecimal paymentMoney = BigDecimal.ZERO;//垫款金额
if (null != planDetails.getPaymentMoney()) {
paymentMoney = planDetails.getPaymentMoney();
}
if (paymentMoney.compareTo(BigDecimal.ZERO) == 0) {
//存在未终止的垫款申请,且不存在垫款应收
int count = baseMapper.selBeVehCountByBusVinSidAndPeriod(planDetails.getBusVinSid(),planDetails.getPeriod());
if (count > 0) {
return rb.setMsg("存在未支付垫款数据,认款失败!");
}
}
}
}
} }
} }
BigDecimal subscriptionMoneyAll = finSelectedReceivablesDetailedDtos.stream().map(FinSelectedReceivablesDetailedRsk::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal subscriptionMoneyAll = finSelectedReceivablesDetailedDtos.stream().map(FinSelectedReceivablesDetailedRsk::getSubscriptionMoney).map(BigDecimal::new).reduce(BigDecimal.ZERO, BigDecimal::add);
@ -4019,20 +4044,6 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation(); FinCollectionConfirmation finCollectionConfirmation = new FinCollectionConfirmation();
BeanUtil.copyProperties(dto, finCollectionConfirmation, "sid"); BeanUtil.copyProperties(dto, finCollectionConfirmation, "sid");
finCollectionConfirmation.setSource("02"); finCollectionConfirmation.setSource("02");
// if (StringUtils.isBlank(finCollectionConfirmation.getStaffUserSid())) {
// //收款
// finCollectionConfirmation.setStaffName(finCollectionConfirmation.getCreateByName());
// finCollectionConfirmation.setStaffUserSid(dto.getUserSid());
// finCollectionConfirmation.setStaffDeptName(finCollectionConfirmation.getCreateDept());
// finCollectionConfirmation.setStaffDeptSid(finCollectionConfirmation.getCreateDeptSid());
// String orgPath = dto.getOrgPath();
// finCollectionConfirmation.setOrgSidPath(orgPath);
// ResultBean<SysOrganizationVo> sysOrganizationVoResultBean = sysOrganizationFeign.fetchBySid(useOrgSid);
// if (sysOrganizationVoResultBean.getData() != null) {
// finCollectionConfirmation.setUseOrgName(sysOrganizationVoResultBean.getData().getName());
// }
// } else
// {
//代收款 //代收款
String orgPath = dto.getOrgPath(); String orgPath = dto.getOrgPath();
finCollectionConfirmation.setOrgSidPath(orgPath); finCollectionConfirmation.setOrgSidPath(orgPath);
@ -4040,10 +4051,6 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (sysOrganizationVoResultBean.getData() != null) { if (sysOrganizationVoResultBean.getData() != null) {
finCollectionConfirmation.setUseOrgName(sysOrganizationVoResultBean.getData().getName()); finCollectionConfirmation.setUseOrgName(sysOrganizationVoResultBean.getData().getName());
} }
// List<String> orgList = Arrays.asList(orgPath.split("/"));
// orgList.set(orgList.size() - 1, dto.getStaffDeptSid());
// finCollectionConfirmation.setOrgSidPath(String.join("/", orgList));
// }
sid = finCollectionConfirmation.getSid(); sid = finCollectionConfirmation.getSid();
finCollectionConfirmation.setCreateBySid(dto.getUserSid()); finCollectionConfirmation.setCreateBySid(dto.getUserSid());
finCollectionConfirmation.setUseOrgSid(useOrgSid); finCollectionConfirmation.setUseOrgSid(useOrgSid);
@ -4106,22 +4113,9 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
finSelectedReceivablesDetailed.setCreateBySid(dto.getUserSid()); finSelectedReceivablesDetailed.setCreateBySid(dto.getUserSid());
//认款日期默认为当天的日期 //认款日期默认为当天的日期
finSelectedReceivablesDetailed.setSubscriptionDate(DateUtil.today()); finSelectedReceivablesDetailed.setSubscriptionDate(DateUtil.today());
// finSelectedReceivablesDetailed.setBalance(v.getSubscriptionMoney());
// FinUncollectedReceivablesDetailed finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
// finSelectedReceivablesDetailed.setStaffName(finUncollectedReceivablesDetailed.getStaffName());
// finSelectedReceivablesDetailed.setStaffUserSid(finUncollectedReceivablesDetailed.getStaffUserSid());
// finSelectedReceivablesDetailed.setStaffDeptSid(finUncollectedReceivablesDetailed.getStaffDeptSid());
// finSelectedReceivablesDetailed.setStaffDeptName(finUncollectedReceivablesDetailed.getStaffDeptName());
finSelectedReceivablesDetailed.setOrgSidPath(finCollectionConfirmation.getOrgSidPath()); finSelectedReceivablesDetailed.setOrgSidPath(finCollectionConfirmation.getOrgSidPath());
finSelectedReceivablesDetailed.setUseOrgName(finCollectionConfirmation.getUseOrgName()); finSelectedReceivablesDetailed.setUseOrgName(finCollectionConfirmation.getUseOrgName());
finSelectedReceivablesDetailedService.insert(finSelectedReceivablesDetailed); finSelectedReceivablesDetailedService.insert(finSelectedReceivablesDetailed);
// if (v.getSubscribedOf() == 0) {
// //应收未收减去相应的认款
// finUncollectedReceivablesDetailed = finUncollectedReceivablesDetailedService.fetchBySid(finSelectedReceivablesDetailed.getReceivablesSid());
// BigDecimal currentReceivableMoney = finUncollectedReceivablesDetailed.getCurrentReceivableMoney().subtract(finSelectedReceivablesDetailed.getSubscriptionMoney());
// finUncollectedReceivablesDetailed.setCurrentReceivableMoney(currentReceivableMoney);
// finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
// }
}); });
} }
finCollectionConfirmation.setBalance(finCollectionConfirmation.getCollectionMoney()); finCollectionConfirmation.setBalance(finCollectionConfirmation.getCollectionMoney());

86
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDetailsVo.java

@ -25,29 +25,13 @@
*********************************************************/ *********************************************************/
package com.yxt.anrui.riskcenter.api.loanrestorereportapply; package com.yxt.anrui.riskcenter.api.loanrestorereportapply;
import com.yxt.common.core.vo.Vo; import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/**
* Project: anrui-riskcenter(车辆交回事前报备申请) <br/>
* File: LoanRestoreReportApplyVo.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loanrestorereportapply.LoanRestoreReportApplyVo <br/>
* Description: 车辆交回事前报备申请 视图数据对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-01-08 11:43:57 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data @Data
@ApiModel(value = "车辆交回事前报备申请 视图数据详情", description = "车辆交回事前报备申请 视图数据详情") @ApiModel(value = "车辆交回事前报备申请 视图数据详情", description = "车辆交回事前报备申请 视图数据详情")
public class LoanRestoreReportApplyDetailsVo implements Vo { public class LoanRestoreReportApplyDetailsVo implements Vo {
@ -60,77 +44,77 @@ public class LoanRestoreReportApplyDetailsVo implements Vo {
private String createTime; private String createTime;
@ApiModelProperty("创建人sid") @ApiModelProperty("创建人sid")
private String createBySid; private String createBySid;
@ApiModelProperty("创建人") @ApiModelProperty("创建人")
private String createByName; // 创建人 private String createByName; // 创建人
@ApiModelProperty("申请编号") @ApiModelProperty("申请编号")
private String billNo; // 申请编号 private String billNo; // 申请编号
@ApiModelProperty("申请部门sid") @ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称") @ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称 private String deptName; // 申请部门名称
@ApiModelProperty("销售订单车辆sid") @ApiModelProperty("销售订单车辆sid")
private String saleVehSid; private String saleVehSid;
@ApiModelProperty("车架号") @ApiModelProperty("车架号")
private String vinNo; // 车架号 private String vinNo; // 车架号
@ApiModelProperty("车牌号") @ApiModelProperty("车牌号")
private String carNum; // 车牌号 private String carNum; // 车牌号
@ApiModelProperty("客户名称") @ApiModelProperty("客户名称")
private String custName; // 客户名称 private String custName; // 客户名称
@ApiModelProperty("贷款人") @ApiModelProperty("贷款人")
private String borrName; // 贷款人 private String borrName; // 贷款人
@ApiModelProperty("贷款合同编号") @ApiModelProperty("贷款合同编号")
private String loanContractNo; // 贷款合同编号 private String loanContractNo; // 贷款合同编号
@ApiModelProperty("资方") @ApiModelProperty("资方")
private String bankName; // 资方 private String bankName; // 资方
@ApiModelProperty("资方合同编号") @ApiModelProperty("资方合同编号")
private String bankContractNo; // 资方合同编号 private String bankContractNo; // 资方合同编号
@ApiModelProperty("已还金额") @ApiModelProperty("已还金额")
private String alRepaidMoney; // 已还金额 private String alRepaidMoney; // 已还金额
@ApiModelProperty("当前逾期金额") @ApiModelProperty("当前逾期金额")
private String currentBeMoney; // 当前逾期金额 private String currentBeMoney; // 当前逾期金额
@ApiModelProperty("其中资金占用费") @ApiModelProperty("其中资金占用费")
private String wheFundOccMoney; // 其中资金占用费 private String wheFundOccMoney; // 其中资金占用费
@ApiModelProperty("未到期金额") @ApiModelProperty("未到期金额")
private String unexpiredMoney; // 未到期金额 private String unexpiredMoney; // 未到期金额
@ApiModelProperty("总期数") @ApiModelProperty("总期数")
private String nper; // 总期数 private String nper; // 总期数
@ApiModelProperty("当前期数") @ApiModelProperty("当前期数")
private String currentPeriod; // 当前期数 private String currentPeriod; // 当前期数
@ApiModelProperty("已还金额换算期数") @ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod; // 已还金额换算期数 private String alRepaidMoneyConPeriod; // 已还金额换算期数
@ApiModelProperty("逾期金额换算期数") @ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod; // 逾期金额换算期数 private String beOverdueMoneyAndPeriod; // 逾期金额换算期数
@ApiModelProperty("交回方式key") @ApiModelProperty("交回方式key")
private String restoreTypeKey; // 交回方式key private String restoreTypeKey; // 交回方式key
@ApiModelProperty("交回方式value") @ApiModelProperty("交回方式value")
private String restoreTypeValue; // 交回方式value private String restoreTypeValue; // 交回方式value
@ApiModelProperty("预交回日期") @ApiModelProperty("预交回日期")
private String restoreDate; // 预交回日期 private String restoreDate; // 预交回日期
@ApiModelProperty("经办人sid") @ApiModelProperty("经办人sid")
private String operatorSid; // 经办人sid private String operatorSid; // 经办人sid
@ApiModelProperty("经办人姓名") @ApiModelProperty("经办人姓名")
private String operatorName; // 经办人姓名 private String operatorName; // 经办人姓名
@ApiModelProperty("涉及相关费用") @ApiModelProperty("涉及相关费用")
private String involveCorrMoney; // 涉及相关费用 private String involveCorrMoney; // 涉及相关费用
@ApiModelProperty("费用说明") @ApiModelProperty("费用说明")
private String costRemarks; // 费用说明 private String costRemarks; // 费用说明
@ApiModelProperty("分公司sid") @ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称") @ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称 private String useOrgName; // 分公司名称
@ApiModelProperty("组织全路径") @ApiModelProperty("组织全路径")
private String orgPath; // 组织全路径 private String orgPath; // 组织全路径
@ApiModelProperty("流程定义的id") @ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id private String procDefId; // 流程定义的id
@ApiModelProperty("环节定义的sid") @ApiModelProperty("环节定义的sid")
private String nodeSid; // 环节定义的sid private String nodeSid; // 环节定义的sid
@ApiModelProperty("流程实例的sid") @ApiModelProperty("流程实例的sid")
private String procInstSid; // 流程实例的sid private String procInstSid; // 流程实例的sid
@ApiModelProperty("流程状态") @ApiModelProperty("流程状态")
private String nodeState; // 流程状态 private String nodeState; // 流程状态
@ApiModelProperty("任务id") @ApiModelProperty("任务id")
private String taskId; // 任务id private String taskId; // 任务id
@ApiModelProperty("催收记录sid") @ApiModelProperty("催收记录sid")
private String csjlSid; private String csjlSid;

84
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanrestorereportapply/LoanRestoreReportApplyDto.java

@ -25,29 +25,13 @@
*********************************************************/ *********************************************************/
package com.yxt.anrui.riskcenter.api.loanrestorereportapply; package com.yxt.anrui.riskcenter.api.loanrestorereportapply;
import com.yxt.common.core.dto.Dto; import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
/**
* Project: anrui-riskcenter(车辆交回事前报备申请) <br/>
* File: LoanRestoreReportApplyDto.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loanrestorereportapply.LoanRestoreReportApplyDto <br/>
* Description: 车辆交回事前报备申请 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-01-08 11:43:57 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data @Data
@ApiModel(value = "车辆交回事前报备申请 数据传输对象", description = "车辆交回事前报备申请 数据传输对象") @ApiModel(value = "车辆交回事前报备申请 数据传输对象", description = "车辆交回事前报备申请 数据传输对象")
public class LoanRestoreReportApplyDto implements Dto { public class LoanRestoreReportApplyDto implements Dto {
@ -58,75 +42,75 @@ public class LoanRestoreReportApplyDto implements Dto {
private String remarks; private String remarks;
@ApiModelProperty("创建人sid") @ApiModelProperty("创建人sid")
private String createBySid; private String createBySid;
@ApiModelProperty("创建人") @ApiModelProperty("创建人")
private String createByName; // 创建人 private String createByName; // 创建人
@ApiModelProperty("申请编号") @ApiModelProperty("申请编号")
private String billNo; // 申请编号 private String billNo; // 申请编号
@ApiModelProperty("申请部门sid") @ApiModelProperty("申请部门sid")
private String deptSid; // 申请部门sid private String deptSid; // 申请部门sid
@ApiModelProperty("申请部门名称") @ApiModelProperty("申请部门名称")
private String deptName; // 申请部门名称 private String deptName; // 申请部门名称
@ApiModelProperty("销售订单车辆sid") @ApiModelProperty("销售订单车辆sid")
private String saleVehSid; private String saleVehSid;
@ApiModelProperty("车架号") @ApiModelProperty("车架号")
private String vinNo; // 车架号 private String vinNo; // 车架号
@ApiModelProperty("车牌号") @ApiModelProperty("车牌号")
private String carNum; // 车牌号 private String carNum; // 车牌号
@ApiModelProperty("客户名称") @ApiModelProperty("客户名称")
private String custName; // 客户名称 private String custName; // 客户名称
@ApiModelProperty("贷款人") @ApiModelProperty("贷款人")
private String borrName; // 贷款人 private String borrName; // 贷款人
@ApiModelProperty("贷款合同编号") @ApiModelProperty("贷款合同编号")
private String loanContractNo; // 贷款合同编号 private String loanContractNo; // 贷款合同编号
@ApiModelProperty("资方") @ApiModelProperty("资方")
private String bankName; // 资方 private String bankName; // 资方
@ApiModelProperty("资方合同编号") @ApiModelProperty("资方合同编号")
private String bankContractNo; // 资方合同编号 private String bankContractNo; // 资方合同编号
@ApiModelProperty("已还金额") @ApiModelProperty("已还金额")
private String alRepaidMoney; // 已还金额 private String alRepaidMoney; // 已还金额
@ApiModelProperty("当前逾期金额") @ApiModelProperty("当前逾期金额")
private String currentBeMoney; // 当前逾期金额 private String currentBeMoney; // 当前逾期金额
@ApiModelProperty("其中资金占用费") @ApiModelProperty("其中资金占用费")
private String wheFundOccMoney; // 其中资金占用费 private String wheFundOccMoney; // 其中资金占用费
@ApiModelProperty("未到期金额") @ApiModelProperty("未到期金额")
private String unexpiredMoney; // 未到期金额 private String unexpiredMoney; // 未到期金额
@ApiModelProperty("总期数") @ApiModelProperty("总期数")
private String nper; // 总期数 private String nper; // 总期数
@ApiModelProperty("当前期数") @ApiModelProperty("当前期数")
private String currentPeriod; // 当前期数 private String currentPeriod; // 当前期数
@ApiModelProperty("已还金额换算期数") @ApiModelProperty("已还金额换算期数")
private String alRepaidMoneyConPeriod; // 已还金额换算期数 private String alRepaidMoneyConPeriod; // 已还金额换算期数
@ApiModelProperty("逾期金额换算期数") @ApiModelProperty("逾期金额换算期数")
private String beOverdueMoneyAndPeriod; // 逾期金额换算期数 private String beOverdueMoneyAndPeriod; // 逾期金额换算期数
@ApiModelProperty("交回方式key") @ApiModelProperty("交回方式key")
private String restoreTypeKey; // 交回方式key private String restoreTypeKey; // 交回方式key
@ApiModelProperty("交回方式value") @ApiModelProperty("交回方式value")
private String restoreTypeValue; // 交回方式value private String restoreTypeValue; // 交回方式value
@ApiModelProperty("预交回日期") @ApiModelProperty("预交回日期")
private String restoreDate; // 预交回日期 private String restoreDate; // 预交回日期
@ApiModelProperty("经办人sid") @ApiModelProperty("经办人sid")
private String operatorSid; // 经办人sid private String operatorSid; // 经办人sid
@ApiModelProperty("经办人姓名") @ApiModelProperty("经办人姓名")
private String operatorName; // 经办人姓名 private String operatorName; // 经办人姓名
@ApiModelProperty("涉及相关费用") @ApiModelProperty("涉及相关费用")
private String involveCorrMoney; // 涉及相关费用 private String involveCorrMoney; // 涉及相关费用
@ApiModelProperty("费用说明") @ApiModelProperty("费用说明")
private String costRemarks; // 费用说明 private String costRemarks; // 费用说明
@ApiModelProperty("分公司sid") @ApiModelProperty("分公司sid")
private String useOrgSid; // 分公司sid private String useOrgSid; // 分公司sid
@ApiModelProperty("分公司名称") @ApiModelProperty("分公司名称")
private String useOrgName; // 分公司名称 private String useOrgName; // 分公司名称
@ApiModelProperty("组织全路径") @ApiModelProperty("组织全路径")
private String orgPath; // 组织全路径 private String orgPath; // 组织全路径
@ApiModelProperty("流程定义的id") @ApiModelProperty("流程定义的id")
private String procDefId; // 流程定义的id private String procDefId; // 流程定义的id
@ApiModelProperty("环节定义的sid") @ApiModelProperty("环节定义的sid")
private String nodeSid; // 环节定义的sid private String nodeSid; // 环节定义的sid
@ApiModelProperty("流程实例的sid") @ApiModelProperty("流程实例的sid")
private String procInstSid; // 流程实例的sid private String procInstSid; // 流程实例的sid
@ApiModelProperty("流程状态") @ApiModelProperty("流程状态")
private String nodeState; // 流程状态 private String nodeState; // 流程状态
@ApiModelProperty("任务id") @ApiModelProperty("任务id")
private String taskId; // 任务id private String taskId; // 任务id
@ApiModelProperty("附件路径") @ApiModelProperty("附件路径")

15
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanbecollectionrecord/LoanBeCollectionRecordRest.java

@ -36,21 +36,8 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
/**
* Project: anrui-riskcenter(逾期催收记录) <br/>
* File: LoanBeCollectionRecordFeignFallback.java <br/>
* Class: com.yxt.anrui.riskcenter.biz.loanbecollectionrecord.LoanBeCollectionRecordRest <br/>
* Description: 逾期催收记录. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-12-11 13:45:40 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "逾期催收记录") @Api(tags = "逾期催收记录")
@RestController("com.yxt.anrui.riskcenter.biz.loanbecollectionrecord.LoanBeCollectionRecordRest") @RestController
@RequestMapping("v1/loanbecollectionrecord") @RequestMapping("v1/loanbecollectionrecord")
public class LoanBeCollectionRecordRest implements LoanBeCollectionRecordFeign { public class LoanBeCollectionRecordRest implements LoanBeCollectionRecordFeign {

48
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyMapper.java

@ -39,53 +39,37 @@ import com.yxt.anrui.riskcenter.api.loanrestorereportapply.LoanRestoreReportAppl
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
/**
* Project: anrui-riskcenter(车辆交回事前报备申请) <br/>
* File: LoanRestoreReportApplyMapper.java <br/>
* Class: com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyMapper <br/>
* Description: 车辆交回事前报备申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-01-08 11:43:57 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Mapper @Mapper
public interface LoanRestoreReportApplyMapper extends BaseMapper<LoanRestoreReportApply> { public interface LoanRestoreReportApplyMapper extends BaseMapper<LoanRestoreReportApply> {
//@Update("update loan_restore_report_apply set name=#{msg} where id=#{id}") IPage<LoanRestoreReportApplyVo> selectPageVo(IPage<LoanRestoreReportApply> page, @Param(Constants.WRAPPER) Wrapper<LoanRestoreReportApply> qw);
//IPage<LoanRestoreReportApplyVo> voPage(IPage<LoanRestoreReportApply> page, @Param(Constants.WRAPPER) QueryWrapper<LoanRestoreReportApply> qw);
List<LoanRestoreReportApplyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<LoanRestoreReportApply> qw);
IPage<LoanRestoreReportApplyVo> selectPageVo(IPage<LoanRestoreReportApply> page, @Param(Constants.WRAPPER) Wrapper<LoanRestoreReportApply> qw);
@Select("select * from loan_restore_report_apply")
List<LoanRestoreReportApplyVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<LoanRestoreReportApply> qw); List<LoanRestoreReportApplyVo> selectListVo();
@Select("select * from loan_restore_report_apply")
List<LoanRestoreReportApplyVo> selectListVo();
int updateFlowFiled(Map<String, Object> map); int updateFlowFiled(Map<String, Object> map);
String selectNum(String billNo); String selectNum(String billNo);
String getYhje(String saleVehSid); String getYhje(String saleVehSid);
String getWdqje(String saleVehSid); String getWdqje(String saleVehSid);
String getZqs(String saleVehSid); String getZqs(String saleVehSid);
String getDqqs(String saleVehSid); String getDqqs(String saleVehSid);
String getYhjehsqs(String saleVehSid); String getYhjehsqs(String saleVehSid);
String getDqyqje(String saleVehSid); String getDqyqje(String saleVehSid);
String getQzzjzyf(String saleVehSid); String getQzzjzyf(String saleVehSid);
String getYqjehsqs(String saleVehSid); String getYqjehsqs(String saleVehSid);
int selectBySid(String join); int selectBySid(String join);
LoanRestoreReportCarInfo jkCarInfo(String saleVehSid); LoanRestoreReportCarInfo jkCarInfo(String saleVehSid);
} }

17
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanrestorereportapply/LoanRestoreReportApplyRest.java

@ -40,21 +40,8 @@ import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
/**
* Project: anrui-riskcenter(车辆交回事前报备申请) <br/>
* File: LoanRestoreReportApplyFeignFallback.java <br/>
* Class: com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyRest <br/>
* Description: 车辆交回事前报备申请. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2024-01-08 11:43:57 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "车辆交回事前报备申请") @Api(tags = "车辆交回事前报备申请")
@RestController("com.yxt.anrui.riskcenter.biz.loanrestorereportapply.LoanRestoreReportApplyRest") @RestController
@RequestMapping("v1/loanrestorereportapply") @RequestMapping("v1/loanrestorereportapply")
public class LoanRestoreReportApplyRest implements LoanRestoreReportApplyFeign { public class LoanRestoreReportApplyRest implements LoanRestoreReportApplyFeign {
@ -98,7 +85,7 @@ public class LoanRestoreReportApplyRest implements LoanRestoreReportApplyFeign {
@Override @Override
public ResultBean<LoanRestoreReportApplyDetailsVo> init(String saleVehSid, String orgPath, String userSid) { public ResultBean<LoanRestoreReportApplyDetailsVo> init(String saleVehSid, String orgPath, String userSid) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
LoanRestoreReportApplyDetailsVo loanRestoreReportApplyDetailsVo = loanRestoreReportApplyService.init(saleVehSid, orgPath, userSid); LoanRestoreReportApplyDetailsVo loanRestoreReportApplyDetailsVo = loanRestoreReportApplyService.init(saleVehSid, orgPath, userSid);
return rb.success().setData(loanRestoreReportApplyDetailsVo); return rb.success().setData(loanRestoreReportApplyDetailsVo);
} }

8
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/sms/pricestrategybill/AppPricestrategyBillFeign.java

@ -23,22 +23,22 @@ public interface AppPricestrategyBillFeign {
/**********************************************流程********************************************/ /**********************************************流程********************************************/
@ApiOperation("办理") @ApiOperation("办理")
@PutMapping("/agreeCreditInfo") @PutMapping("/agreeSpriceInfo")
@ResponseBody @ResponseBody
ResultBean agreeCreditInfo(@RequestBody PricestrategyBillDto dto); ResultBean agreeCreditInfo(@RequestBody PricestrategyBillDto dto);
@ApiOperation("驳回") @ApiOperation("驳回")
@PutMapping("/rejectCreditInfo") @PutMapping("/rejectSpriceInfo")
@ResponseBody @ResponseBody
ResultBean rejectCreditInfo(@RequestBody PricestrategyBillTaskQuery query); ResultBean rejectCreditInfo(@RequestBody PricestrategyBillTaskQuery query);
@ApiOperation("撤回") @ApiOperation("撤回")
@PutMapping("/recallCreditInfo") @PutMapping("/recallSpriceInfo")
@ResponseBody @ResponseBody
ResultBean recallCreditInfo(@RequestBody PricestrategyBillTaskQuery query); ResultBean recallCreditInfo(@RequestBody PricestrategyBillTaskQuery query);
@ApiOperation("终止") @ApiOperation("终止")
@PutMapping("/stopCreditInfo") @PutMapping("/stopSpriceInfo")
@ResponseBody @ResponseBody
ResultBean stopCreditInfo(@RequestBody PricestrategyBillTaskQuery query); ResultBean stopCreditInfo(@RequestBody PricestrategyBillTaskQuery query);

8
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/sms/pricestrategybill/AppPricestrategyBillService.java

@ -72,7 +72,7 @@ public class AppPricestrategyBillService {
}else { }else {
String strategyDescribe = ""; String strategyDescribe = "";
for (AppPricestrategyBillGoodstypedetailDetailsVo appPricestrategyBillGoodstypedetailDetailsVo : appPricestrategyBillGoodstypedetailDetailsVos) { for (AppPricestrategyBillGoodstypedetailDetailsVo appPricestrategyBillGoodstypedetailDetailsVo : appPricestrategyBillGoodstypedetailDetailsVos) {
strategyDescribe = strategyDescribe + appPricestrategyBillGoodstypedetailDetailsVo.getRangeStart() + "——" + appPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd() + " " + appPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate() + "; "; strategyDescribe = strategyDescribe + appPricestrategyBillGoodstypedetailDetailsVo.getRangeStart() + "-" + appPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd() + " " + appPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate() + "%; ";
} }
appPricestrategyBillDetailDetailsVo.setStrategyDescribe(strategyDescribe); appPricestrategyBillDetailDetailsVo.setStrategyDescribe(strategyDescribe);
} }
@ -82,7 +82,7 @@ public class AppPricestrategyBillService {
public ResultBean agreeCreditInfo(PricestrategyBillDto dto) { public ResultBean agreeCreditInfo(PricestrategyBillDto dto) {
ResultBean rb = ResultBean.fireFail(); ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid /*//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid()); ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) { if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg()); return rb.setMsg(userVoResultBean.getMsg());
@ -93,10 +93,10 @@ public class AppPricestrategyBillService {
return rb.setMsg(staffOrgResultBean.getMsg()); return rb.setMsg(staffOrgResultBean.getMsg());
} }
//用户的组织全路径 //用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath(); String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();*/
SmsPricestrategyBillCompleteDto completeInventoryProfitinDto = new SmsPricestrategyBillCompleteDto(); SmsPricestrategyBillCompleteDto completeInventoryProfitinDto = new SmsPricestrategyBillCompleteDto();
BeanUtil.copyProperties(dto, completeInventoryProfitinDto); BeanUtil.copyProperties(dto, completeInventoryProfitinDto);
completeInventoryProfitinDto.setOrgPath(orgSidPath); // completeInventoryProfitinDto.setOrgPath(orgSidPath);
ResultBean resultBean = smsPricestrategyBillFeign.complete(completeInventoryProfitinDto); ResultBean resultBean = smsPricestrategyBillFeign.complete(completeInventoryProfitinDto);
if (!resultBean.getSuccess()) { if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg()); return rb.setMsg(resultBean.getMsg());

14
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairBwBillPageListVo.java

@ -36,13 +36,19 @@ public class AsBusrepairBwBillPageListVo {
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8") @JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
private Date entryTime; private Date entryTime;
@ApiModelProperty("工时费") @ApiModelProperty("工时费")
private BigDecimal hourAmount; private String hourAmount;
@ApiModelProperty("材料费") @ApiModelProperty("材料费")
private BigDecimal goodsAmount; private String goodsAmount;
@ApiModelProperty("外出费") @ApiModelProperty("外出费")
private BigDecimal outAmount; private String outAmount;
@ApiModelProperty("其他费用") @ApiModelProperty("其他费用")
private BigDecimal otherAmount; private String otherAmount;
@ApiModelProperty("加税点项目") @ApiModelProperty("加税点项目")
private String taxItems; private String taxItems;
@ApiModelProperty("施救费用")
private String rescueAmount;
@ApiModelProperty("结算金额")
private String settleAmount;
@ApiModelProperty("结算日期")
private String settleTime;
} }

4
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml

@ -224,7 +224,9 @@
a.goodsAmount, a.goodsAmount,
a.outAmount, a.outAmount,
a.otherAmount, a.otherAmount,
ai.taxItems ai.taxItems,
a.rescueAmount,
a.settleAmount
from as_busrepair_bill a from as_busrepair_bill a
LEFT JOIN as_busrepair_bill_vech AS b on a.sid = b.billSid LEFT JOIN as_busrepair_bill_vech AS b on a.sid = b.billSid
left join as_busrepair_bill_invoice as ai on a.sid = ai.billSid left join as_busrepair_bill_invoice as ai on a.sid = ai.billSid

19
yxt-sms-biz/src/main/java/com/yxt/sms/biz/smspricestrategybill/SmsPricestrategyBillService.java

@ -67,6 +67,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.*; import java.util.*;
import java.util.concurrent.*; import java.util.concurrent.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@ -437,10 +438,26 @@ public class SmsPricestrategyBillService extends MybatisBaseService<SmsPricestra
for (SmsGoods smsGood : smsGoods) { for (SmsGoods smsGood : smsGoods) {
BigDecimal cost = smsGood.getCost(); BigDecimal cost = smsGood.getCost();
for (SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo : smsPricestrategyBillGoodstypedetailDetailsVos) { for (SmsPricestrategyBillGoodstypedetailDetailsVo smsPricestrategyBillGoodstypedetailDetailsVo : smsPricestrategyBillGoodstypedetailDetailsVos) {
if (cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeStart()) != -1 && cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd()) != 1) { /*if (cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeStart()) != -1 && cost.compareTo(smsPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd()) != 1) {
BigDecimal markupRate = smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate(); BigDecimal markupRate = smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate();
cost = cost.add(cost.multiply(markupRate).divide(new BigDecimal("100"))); cost = cost.add(cost.multiply(markupRate).divide(new BigDecimal("100")));
smsGoodsService.updateSalesPrice(smsGood.getSid(), cost.toString()); smsGoodsService.updateSalesPrice(smsGood.getSid(), cost.toString());
}*/
BigDecimal rangeStart = smsPricestrategyBillGoodstypedetailDetailsVo.getRangeStart();
BigDecimal rangeEnd = smsPricestrategyBillGoodstypedetailDetailsVo.getRangeEnd();
boolean inRange = true;
if (rangeStart != null) {
inRange &= cost.compareTo(rangeStart) >= 0;
}
if (rangeEnd != null) {
inRange &= cost.compareTo(rangeEnd) <= 0;
}
if (inRange) {
BigDecimal markupRate = smsPricestrategyBillGoodstypedetailDetailsVo.getMarkupRate();
cost = cost.add(cost.multiply(markupRate).divide(new BigDecimal("100"),2, RoundingMode.HALF_UP));
smsGoodsService.updateSalesPrice(smsGood.getSid(), cost.toString());
} }
} }
} }

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/FittingsInventoryQuery.java

@ -1,6 +1,7 @@
package com.yxt.wms.biz.inventory.wmsinventory; package com.yxt.wms.biz.inventory.wmsinventory;
import com.yxt.common.core.query.Query; import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
/** /**
@ -44,5 +45,7 @@ public class FittingsInventoryQuery implements Query {
* 仓库 * 仓库
*/ */
private String warehouseName; private String warehouseName;
private String warehouseRackCode;
private String wareAreaName;
private String wareZoneName;
} }

3
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/FittingsInventoryVo.java

@ -51,5 +51,8 @@ public class FittingsInventoryVo implements Vo {
* 仓库 * 仓库
*/ */
private String warehouseName; private String warehouseName;
private String warehouseRackCode;
private String wareAreaName;
private String wareZoneName;
} }

25
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryMapper.xml

@ -16,6 +16,8 @@
a.manufacturerName, a.manufacturerName,
a.warehouseName, a.warehouseName,
a.warehouseRackCode, a.warehouseRackCode,
wa.areaName wareAreaName,
wz.zoneName wareZoneName,
a.count, a.count,
a.cost, a.cost,
a.taxRate tax, a.taxRate tax,
@ -24,7 +26,10 @@
FROM FROM
wms_inventory a wms_inventory a
LEFT JOIN anrui_portal.sys_organization as s ON a.useOrgSid = s.sid LEFT JOIN anrui_portal.sys_organization as s ON a.useOrgSid = s.sid
LEFT JOIN wms_warehouse_info as i ON a.warehouseSid = i.sid LEFT JOIN wms_warehouse_rack as wr ON a.warehouseRackSid = wr.sid
LEFT JOIN wms_warehouse_area as wa ON wr.locationSid = wa.sid
LEFT JOIN wms_warehouse_zone as wz ON wr.zoneSid = wz.sid
LEFT JOIN wms_warehouse_info as i ON wr.warehouseSid = i.sid
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}
</where> </where>
@ -452,16 +457,22 @@
wi.goodsSkuOwnSpec, wi.goodsSkuOwnSpec,
wi.unit, wi.unit,
wi.warehouseName, wi.warehouseName,
wi.warehouseRackCode,
wa.areaName wareAreaName,
wz.zoneName wareZoneName,
wi.manufacturerName, wi.manufacturerName,
wi.supplierName billObjName, wi.supplierName billObjName,
IFNULL(SUM(count),0) as inventoryCount, IFNULL(SUM(count),0) as inventoryCount,
s.orgSidPath s.orgSidPath
FROM FROM
wms_inventory as wi wms_inventory as wi
LEFT JOIN wms_warehouse_info AS i ON wi.warehouseSid = i.sid LEFT JOIN wms_warehouse_rack as wr ON wi.warehouseRackSid = wr.sid
LEFT JOIN wms_warehouse_area as wa ON wr.locationSid = wa.sid
LEFT JOIN wms_warehouse_zone as wz ON wr.zoneSid = wz.sid
LEFT JOIN wms_warehouse_info as i ON wr.warehouseSid = i.sid
LEFT JOIN anrui_portal.sys_organization as so ON wi.createOrgSid = so.sid LEFT JOIN anrui_portal.sys_organization as so ON wi.createOrgSid = so.sid
LEFT JOIN anrui_portal.sys_organization as s ON wi.useOrgSid = s.sid LEFT JOIN anrui_portal.sys_organization as s ON wi.useOrgSid = s.sid
GROUP BY wi.createOrgSid,wi.useOrgSid,wi.warehouseSid,wi.goodsSkuCode,wi.supplierName) as a GROUP BY wi.createOrgSid,wi.useOrgSid,wi.warehouseRackSid,wi.goodsSkuCode,wi.supplierName) as a
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}
</where> </where>
@ -815,12 +826,12 @@
<select id="selOaInventoryList" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory"> <select id="selOaInventoryList" resultType="com.yxt.wms.biz.inventory.wmsinventory.WmsInventory">
select wi.* select wi.*
from wms_inventory as wi from wms_inventory as wi
LEFT JOIN wms_warehouse_info wwi on wi.warehouseSid = wwi.sid LEFT JOIN wms_warehouse_info wwi on wi.warehouseSid = wwi.sid
where wi.count > 0 where wi.count > 0
and wi.useOrgSid = #{useOrgSid} and wi.useOrgSid = #{useOrgSid}
and wwi.warehouseTypeValue = #{warehouseTypeValue} and wwi.warehouseTypeValue = #{warehouseTypeValue}
<if test="name != null and name != ''"> <if test="name != null and name != ''">
and wi.goodsID LIKE concat('%', #{name}, '%') and wi.goodsID LIKE concat('%', #{name}, '%')
</if> </if>
</select> </select>

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryQuery.java

@ -25,6 +25,11 @@ public class WmsInventoryQuery implements Query {
@ApiModelProperty("库位编码") @ApiModelProperty("库位编码")
private String warehouseRackCode; private String warehouseRackCode;
@ApiModelProperty("库区名称")
private String wareAreaName;
@ApiModelProperty("区域名称")
private String wareZoneName;
@ApiModelProperty("批次号") @ApiModelProperty("批次号")
private String batchNumber; private String batchNumber;

18
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryService.java

@ -115,6 +115,12 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
if (StringUtils.isNotBlank(query.getWarehouseRackCode())) { if (StringUtils.isNotBlank(query.getWarehouseRackCode())) {
qw.like("a.warehouseRackCode", query.getWarehouseRackCode()); qw.like("a.warehouseRackCode", query.getWarehouseRackCode());
} }
if (StringUtils.isNotBlank(query.getWareAreaName())) {
qw.like("wa.areaName", query.getWareAreaName());
}
if (StringUtils.isNotBlank(query.getWareZoneName())) {
qw.like("wz.zoneName", query.getWareZoneName());
}
if (StringUtils.isNotBlank(query.getSupplierName())) { if (StringUtils.isNotBlank(query.getSupplierName())) {
qw.like("a.supplierName", query.getSupplierName()); qw.like("a.supplierName", query.getSupplierName());
} }
@ -919,6 +925,15 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
if (StringUtils.isNotBlank(query.getWarehouseName())) { if (StringUtils.isNotBlank(query.getWarehouseName())) {
qw.like("a.warehouseName", query.getWarehouseName()); qw.like("a.warehouseName", query.getWarehouseName());
} }
if (StringUtils.isNotBlank(query.getWareAreaName())) {
qw.like("a.wareAreaName", query.getWareAreaName());
}
if (StringUtils.isNotBlank(query.getWarehouseRackCode())) {
qw.like("a.warehouseRackCode", query.getWarehouseRackCode());
}
if (StringUtils.isNotBlank(query.getWareZoneName())) {
qw.like("a.wareZoneName", query.getWareZoneName());
}
if (StringUtils.isNotBlank(query.getName())) { if (StringUtils.isNotBlank(query.getName())) {
qw.and(wrapper -> wrapper.like("a.billObjName", query.getName()) qw.and(wrapper -> wrapper.like("a.billObjName", query.getName())
.or().like("a.deptName", query.getName()) .or().like("a.deptName", query.getName())
@ -927,6 +942,9 @@ public class WmsInventoryService extends MybatisBaseService<WmsInventoryMapper,
.or().like("a.manufacturerName", query.getName()) .or().like("a.manufacturerName", query.getName())
.or().like("a.useOrgName", query.getName()) .or().like("a.useOrgName", query.getName())
.or().like("a.warehouseName", query.getName()) .or().like("a.warehouseName", query.getName())
.or().like("a.wareAreaName", query.getName())
.or().like("a.wareZoneName", query.getName())
.or().like("a.warehouseRackCode", query.getName())
); );
} }
qw.notLike("a.goodsID","-O"); qw.notLike("a.goodsID","-O");

5
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventory/WmsInventoryVo.java

@ -49,4 +49,9 @@ public class WmsInventoryVo implements Vo {
private String cost; private String cost;
@ApiModelProperty("税率") @ApiModelProperty("税率")
private String tax; private String tax;
@ApiModelProperty("库区名称")
private String wareAreaName;
@ApiModelProperty("区域名称")
private String wareZoneName;
} }

57
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordMapper.xml

@ -21,18 +21,18 @@
<select id="selInItCountBySettleTime" resultType="java.lang.String"> <select id="selInItCountBySettleTime" resultType="java.lang.String">
SELECT IFNULL(SUM(d.currentBalance), 0) AS count SELECT IFNULL(SUM(d.currentBalance), 0) AS count
FROM wms_inventory_settlebill_detail AS d FROM wms_inventory_settlebill_detail AS d
LEFT JOIN wms_inventory_settlebill AS s LEFT JOIN wms_inventory_settlebill AS s
ON d.billSid = s.sid ON d.billSid = s.sid
WHERE s.settleState = 2 WHERE s.settleState = 2
AND s.createTime &lt;= #{settleTime} AND s.createTime &lt;= #{settleTime}
GROUP BY d.billSid GROUP BY d.billSid
ORDER BY s.createTime DESC ORDER BY s.createTime DESC
LIMIT 1 LIMIT 1
</select> </select>
<select id="selInboundAndOutboundCount" <select id="selInboundAndOutboundCount"
resultType="com.yxt.wms.biz.inventory.wmsinventoryrecord.report.WmsInAndOutboundVo"> resultType="com.yxt.wms.biz.inventory.wmsinventoryrecord.report.WmsInAndOutboundVo">
SELECT IFNULL(SUM(r.count), 0) as `count`, SELECT IFNULL(SUM(r.count), 0) as `count`,
r.billType r.billType
FROM wms_inventory_record AS r FROM wms_inventory_record AS r
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}
@ -41,7 +41,7 @@
<select id="inventoryInboundAndOutboundStats" <select id="inventoryInboundAndOutboundStats"
resultType="com.yxt.wms.biz.inventory.wmsinventoryrecord.report.WmsInventoryCountDetailsVo"> resultType="com.yxt.wms.biz.inventory.wmsinventoryrecord.report.WmsInventoryCountDetailsVo">
SELECT IFNULL(SUM(r.count), 0) AS `count`, SELECT IFNULL(SUM(r.count), 0) AS `count`,
r.busTypeValue r.busTypeValue
FROM wms_inventory_record AS r FROM wms_inventory_record AS r
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}
@ -50,24 +50,24 @@
<select id="inventoryDetailsRecord" <select id="inventoryDetailsRecord"
resultType="com.yxt.wms.biz.inventory.wmsinventoryrecord.report.WmsInventoryDetailsRecordVo"> resultType="com.yxt.wms.biz.inventory.wmsinventoryrecord.report.WmsInventoryDetailsRecordVo">
SELECT CASE SELECT CASE
r.billType r.billType
WHEN '1' THEN WHEN '1' THEN
IFNULL((r.currentCount - r.count), 0) IFNULL((r.currentCount - r.count), 0)
WHEN '0' THEN WHEN '0' THEN
IFNULL((r.currentCount + r.count), 0) IFNULL((r.currentCount + r.count), 0)
END initCount, END initCount,
r.currentCount, r.currentCount,
r.count, r.count,
r.busTypeValue, r.busTypeValue,
r.goodsSpuName, r.goodsSpuName,
r.createTime, r.createTime,
r.goodsSpuName, r.goodsSpuName,
r.goodsSkuTitle, r.goodsSkuTitle,
r.goodsSkuCode, r.goodsSkuCode,
r.goodsSkuOwnSpec, r.goodsSkuOwnSpec,
r.unit, r.unit,
r.warehouseName, r.warehouseName,
r.warehouseRackCode r.warehouseRackCode
FROM wms_inventory_record AS r FROM wms_inventory_record AS r
<where> <where>
${ew.sqlSegment} ${ew.sqlSegment}
@ -96,6 +96,8 @@
wir.goodsSkuOwnSpec, wir.goodsSkuOwnSpec,
wir.warehouseName, wir.warehouseName,
wir.warehouseRackCode, wir.warehouseRackCode,
wa.areaName wareAreaName,
wz.zoneName wareZoneName,
wir.billNo, wir.billNo,
wir.billType, wir.billType,
DATE_FORMAT(wir.createTime, '%Y-%m-%d') as createTime, DATE_FORMAT(wir.createTime, '%Y-%m-%d') as createTime,
@ -114,7 +116,10 @@
ui.`name` createByName ui.`name` createByName
from wms_inventory_record wir from wms_inventory_record wir
LEFT JOIN wms_inventory as wi ON wir.inventorySid = wi.sid LEFT JOIN wms_inventory as wi ON wir.inventorySid = wi.sid
LEFT JOIN wms_warehouse_info as i ON wir.warehouseSid = i.sid LEFT JOIN wms_warehouse_rack as wr ON wir.warehouseRackSid = wr.sid
LEFT JOIN wms_warehouse_area as wa ON wr.locationSid = wa.sid
LEFT JOIN wms_warehouse_zone as wz ON wr.zoneSid = wz.sid
LEFT JOIN wms_warehouse_info as i ON wr.warehouseSid = i.sid
LEFT JOIN anrui_portal.sys_organization as s ON wi.useOrgSid = s.sid LEFT JOIN anrui_portal.sys_organization as s ON wi.useOrgSid = s.sid
LEFT JOIN anrui_portal.sys_user as u ON wir.createBySid = u.sid LEFT JOIN anrui_portal.sys_user as u ON wir.createBySid = u.sid
LEFT JOIN anrui_portal.sys_staffinfo as ui ON u.staffSid = ui.sid LEFT JOIN anrui_portal.sys_staffinfo as ui ON u.staffSid = ui.sid
@ -193,9 +198,9 @@
<select id="selByGoodsID" resultType="java.lang.String"> <select id="selByGoodsID" resultType="java.lang.String">
SELECT SELECT
billNo billNo
FROM FROM
wms_inventory_record wms_inventory_record
WHERE billType = '0' WHERE billType = '0'
AND goodsID = #{content} AND goodsID = #{content}
</select> </select>

10
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordService.java

@ -294,10 +294,20 @@ public class WmsInventoryRecordService extends MybatisBaseService<WmsInventoryRe
if (StringUtils.isNotBlank(query.getWarehouseRackCode())) { if (StringUtils.isNotBlank(query.getWarehouseRackCode())) {
qw.like("wir.warehouseRackCode", query.getWarehouseRackCode()); qw.like("wir.warehouseRackCode", query.getWarehouseRackCode());
} }
if (StringUtils.isNotBlank(query.getWareAreaName())) {
qw.like("wa.areaName", query.getWareAreaName());
}
if (StringUtils.isNotBlank(query.getWareZoneName())) {
qw.like("wz.zoneName", query.getWareZoneName());
}
//供应商名称 //供应商名称
if (StringUtils.isNotBlank(query.getSupplierName())) { if (StringUtils.isNotBlank(query.getSupplierName())) {
qw.like("wir.supplierName", query.getSupplierName()); qw.like("wir.supplierName", query.getSupplierName());
} }
//来源单据编号 //来源单据编号
if (StringUtils.isNotBlank(query.getBillNo())) { if (StringUtils.isNotBlank(query.getBillNo())) {
qw.like("wir.billNo", query.getBillNo()); qw.like("wir.billNo", query.getBillNo());

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordsQuery.java

@ -22,6 +22,10 @@ public class WmsInventoryRecordsQuery implements Query {
private String warehouseName; private String warehouseName;
@ApiModelProperty("库位编号") @ApiModelProperty("库位编号")
private String warehouseRackCode; private String warehouseRackCode;
@ApiModelProperty("库区名称")
private String wareAreaName;
@ApiModelProperty("区域名称")
private String wareZoneName;
@ApiModelProperty("厂家") @ApiModelProperty("厂家")
private String manufacturerName; private String manufacturerName;
@ApiModelProperty("供应商") @ApiModelProperty("供应商")

4
yxt-wms-biz/src/main/java/com/yxt/wms/biz/inventory/wmsinventoryrecord/WmsInventoryRecordsVo.java

@ -29,6 +29,10 @@ public class WmsInventoryRecordsVo {
private String warehouseRackCode; private String warehouseRackCode;
@ApiModelProperty("库区名称") @ApiModelProperty("库区名称")
private String warehouseAreaName; private String warehouseAreaName;
@ApiModelProperty("库区名称")
private String wareAreaName;
@ApiModelProperty("区域名称")
private String wareZoneName;
@ApiModelProperty("来源单据编号") @ApiModelProperty("来源单据编号")
private String billNo; private String billNo;
@ApiModelProperty("单据类型(1入库、0出库)") @ApiModelProperty("单据类型(1入库、0出库)")

Loading…
Cancel
Save