diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleState.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleState.java index 3c6bdcf918..aca7f8f122 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleState.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleState.java @@ -35,7 +35,7 @@ public class BaseVehicleState extends BaseEntity { @ApiModelProperty("开票申请状态:未发起过0,审批通过的为1,审批不通过为改为0,审批中的为2,驳回或撤回到发起人修改为0,默认为0,提交时需要判断是否已发起开票申请流程") private String invoiceApplyState; @ApiModelProperty("资方终审:0未通过,1通过,贷款资方终审通过时设置为1") - private String manageState; + private String manageState; @ApiModelProperty("包牌业务") private String packageBusiness; @ApiModelProperty("合同状态") diff --git a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java index 716735e7fe..6bc2ea8452 100644 --- a/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java +++ b/anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclestate/BaseVehicleStateEnum.java @@ -91,6 +91,11 @@ public class BaseVehicleStateEnum { JFZB("21","家访准备"), JFKC("22","家访考察"), JFZLSH("23","家访资料审核"), + KPSQTJ("24","开票申请提交"), + KPSQZZ("25","开票申请终止"), + KPSQTG("26","开票申请通过"), + KPSQBH("27","开票申请驳回"), + KPSQCH("28","开票申请撤回"), ; private String typeKey; diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributorapply/BaseDistributorApplyService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributorapply/BaseDistributorApplyService.java index d5d8a0c95e..b34ed22f66 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributorapply/BaseDistributorApplyService.java +++ b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributorapply/BaseDistributorApplyService.java @@ -1368,8 +1368,8 @@ public class BaseDistributorApplyService extends MybatisBaseService> listPage(@RequestBody PagerQuery pq); - @ApiOperation("可欠款出库车辆列表") - @PostMapping("/unListPage") - @ResponseBody - public ResultBean> unListPage(@RequestBody PagerQuery pq); - - @ApiOperation("新增或修改") + /* @ApiOperation("新增或修改") @PostMapping("/save") @ResponseBody public ResultBean save(@RequestBody BusDeliveredDto dto); @@ -86,7 +82,7 @@ public interface BusDeliveredFeign { @ApiOperation("根据SID获取一条记录") @GetMapping("/fetchDetailsBySid/{sid}") @ResponseBody - public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid); + public ResultBean fetchDetailsBySid(@PathVariable("sid") String sid);*/ @ApiOperation("移动端-获取待出库列表") @PostMapping("/getRetrievalNotList") @@ -112,4 +108,27 @@ public interface BusDeliveredFeign { @GetMapping("/selectByBusVinSid") @ResponseBody ResultBean selectByBusVinSid(@RequestParam("busVinSid") String busVinSid); + + /********************************欠款出库***********************************************/ + + @ApiOperation("PC可欠款出库车辆列表") + @PostMapping("/unListPage") + @ResponseBody + public ResultBean> unListPage(@RequestBody PagerQuery pq); + + @ApiOperation("欠款出库初始化") + @PostMapping("/qkGetRetrievalApplyInfo") + @ResponseBody + public ResultBean qkGetRetrievalApplyInfo(@RequestBody AppDeliveredDetailsQuery query); + + @ApiOperation("欠款出库补充车辆返回") + @PostMapping("/qkSelectInfo") + @ResponseBody + ResultBean> qkSelectInfo(@RequestBody DeliverDetailsQuery query); + + @ApiOperation("移动端-可欠款出库") + @PostMapping("/getRetrievalNotListQk") + @ResponseBody + public ResultBean> getRetrievalNotListQk(@RequestBody PagerQuery pq); + } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/BusDeliveredFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/BusDeliveredFeignFallback.java index eb25ed6a99..89f8da09b2 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/BusDeliveredFeignFallback.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/BusDeliveredFeignFallback.java @@ -25,6 +25,7 @@ *********************************************************/ package com.yxt.anrui.buscenter.api.busdelivered; +import com.yxt.anrui.buscenter.api.busdeliveredapply.DeliveredDetailsVo2; import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.AppCarListVo; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -60,7 +61,7 @@ public class BusDeliveredFeignFallback implements BusDeliveredFeign { return null; } - @Override + /*@Override public ResultBean save(BusDeliveredDto dto){ return ResultBean.fireFail().setMsg("接口anrui-buscenter/busdelivered/save无法访问"); } @@ -74,7 +75,7 @@ public class BusDeliveredFeignFallback implements BusDeliveredFeign { public ResultBean fetchDetailsBySid(String sid){ ResultBean rb = ResultBean.fireFail(); return rb.setMsg("接口anrui-buscenter/busdelivered/fetchDetailsBySid无法访问"); - } + }*/ @Override public ResultBean> getRetrievalNotList(PagerQuery pq) { @@ -86,6 +87,11 @@ public class BusDeliveredFeignFallback implements BusDeliveredFeign { return null; } + @Override + public ResultBean qkGetRetrievalApplyInfo(AppDeliveredDetailsQuery query) { + return null; + } + @Override public ResultBean addRetrievalApply(AddRetrievalApplyDto dto) { return null; @@ -100,4 +106,14 @@ public class BusDeliveredFeignFallback implements BusDeliveredFeign { public ResultBean selectByBusVinSid(String busVinSid) { return null; } + + @Override + public ResultBean> qkSelectInfo(DeliverDetailsQuery query) { + return null; + } + + @Override + public ResultBean> getRetrievalNotListQk(PagerQuery pq) { + return null; + } } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/BusDeliveredPageVo2.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/BusDeliveredPageVo2.java new file mode 100644 index 0000000000..99ecd0b53f --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/BusDeliveredPageVo2.java @@ -0,0 +1,46 @@ +package com.yxt.anrui.buscenter.api.busdelivered; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/10/11 + **/ +@Data +public class BusDeliveredPageVo2 { + + @ApiModelProperty("列表sid") + private String sid; + + @ApiModelProperty("合同编号") + @JsonProperty("contractId") + private String contractNo; + + @ApiModelProperty("业务状态") + @JsonProperty("subscription") + private String subscription; + + @ApiModelProperty("业务状态") + @JsonProperty("subscriptionKey") + private String subscriptionKey; + + @ApiModelProperty("销售类型") + @JsonProperty("paymentMethod") + private String paymentMethod; + + @ApiModelProperty("销售类型") + @JsonProperty("paymentMethodKey") + private String paymentMethodKey; + + @ApiModelProperty("客户名称") + @JsonProperty("customerName") + private String name; + + @ApiModelProperty("车架号集合") + private List vinList; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/UnDeliverQuery.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/UnDeliverQuery.java index 05b9b73eb6..4c5e45cb3f 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/UnDeliverQuery.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/UnDeliverQuery.java @@ -25,5 +25,5 @@ public class UnDeliverQuery implements Query { @ApiModelProperty("车架号") private String vinNo; @ApiModelProperty("已选择的车辆") - private List list = new ArrayList<>(); + private List vinSid = new ArrayList<>(); } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/VinListVo2.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/VinListVo2.java new file mode 100644 index 0000000000..7fbc4d00a6 --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdelivered/VinListVo2.java @@ -0,0 +1,22 @@ +package com.yxt.anrui.buscenter.api.busdelivered; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/10/11 + **/ +@Data +public class VinListVo2 { + + @ApiModelProperty("车架号") + private String vin; + @ApiModelProperty("车辆sid") + private String vinSid; + @ApiModelProperty("销售订单车辆sid") + private String busVinSid; + @ApiModelProperty("业务状态") + private String businessState; +} diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApply.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApply.java index 24ba590bd2..60f8a026d3 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApply.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApply.java @@ -127,4 +127,8 @@ public class BusDeliveredApply extends BaseEntity { private String hasInvoice; @ApiModelProperty("类型:0正常出库,1欠款出库") private int typeState; + + private String promiseFile; + private String danFile; + private String carFile; } diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApplyFeign.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApplyFeign.java index 9cc84d2650..f53db8f4fd 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApplyFeign.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApplyFeign.java @@ -175,7 +175,7 @@ public interface BusDeliveredApplyFeign { ResultBean deliveredFinSelectByBusVinSid(@RequestParam("contractNo") String contractNo, @RequestParam("vinSid") String vinSid); /*******************************************欠款出库相关****************************************************/ - @ApiOperation("欠款出库申请分页列表") + @ApiOperation("PC欠款出库申请分页列表") @PostMapping("/unListPage") @ResponseBody public ResultBean> unListPage(@RequestBody PagerQuery pq); @@ -190,4 +190,43 @@ public interface BusDeliveredApplyFeign { @ResponseBody public ResultBean submitUnDeliveredApply(@Valid @RequestBody SubmitUnDeliveredApplyDto dto); + @ApiOperation(value = "办理(同意)") + @PostMapping("/qkComplete") + @ResponseBody + public ResultBean qkComplete(@Valid @RequestBody BusDeliveredApplyCompleteDto query); + + @ApiOperation(value = "获取上一个环节") + @GetMapping(value = "/qkGetPreviousNodesForReject") + ResultBean> qkGetPreviousNodesForReject(@Valid @SpringQueryMap GetNodeQuery query); + + @ApiOperation(value = "获取下一个环节") + @GetMapping(value = "/qkGetNextNodesForSubmit") + ResultBean> qkGetNextNodesForSubmit(@Valid @SpringQueryMap GetNodeQuery query); + + @ApiOperation(value = "驳回任务") + @PostMapping(value = "/qkReject") + @ResponseBody + public ResultBean qkReject(@Valid @RequestBody BusDeliveredApplyTaskQuery query); + + @ApiOperation(value = "撤回流程") + @PostMapping(value = "/qkRevokeProcess") + @ResponseBody + public ResultBean qkRevokeProcess(@Valid @RequestBody BusDeliveredApplyTaskQuery query); + + @ApiOperation(value = "终止任务") + @PostMapping(value = "/qkBreakProcess") + @ResponseBody + public ResultBean qkBreakProcess(@Valid @RequestBody BusDeliveredApplyTaskQuery query); + + @ApiOperation("移动端出库申请详情") + @GetMapping("/qkGetRetrievalApplyDetails") + @ResponseBody + public ResultBean qkGetRetrievalApplyDetails(@RequestParam("sid") String sid); + + @ApiOperation("移动端欠款出库分页") + @PostMapping("/getRetrievalApplyListQk") + @ResponseBody + public ResultBean> getRetrievalApplyListQk(@RequestBody PagerQuery pagerQuery); + + } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApplyFeignFallback.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApplyFeignFallback.java index b0f55cb123..28780c178c 100644 --- a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApplyFeignFallback.java +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/BusDeliveredApplyFeignFallback.java @@ -146,6 +146,46 @@ public class BusDeliveredApplyFeignFallback implements BusDeliveredApplyFeign { return null; } + @Override + public ResultBean qkComplete(BusDeliveredApplyCompleteDto query) { + return null; + } + + @Override + public ResultBean> qkGetPreviousNodesForReject(GetNodeQuery query) { + return null; + } + + @Override + public ResultBean> qkGetNextNodesForSubmit(GetNodeQuery query) { + return null; + } + + @Override + public ResultBean qkReject(BusDeliveredApplyTaskQuery query) { + return null; + } + + @Override + public ResultBean qkRevokeProcess(BusDeliveredApplyTaskQuery query) { + return null; + } + + @Override + public ResultBean qkBreakProcess(BusDeliveredApplyTaskQuery query) { + return null; + } + + @Override + public ResultBean qkGetRetrievalApplyDetails(String sid) { + return null; + } + + @Override + public ResultBean> getRetrievalApplyListQk(PagerQuery pagerQuery) { + return null; + } + @Override public ResultBean complete(BusDeliveredApplyCompleteDto query) { return null; diff --git a/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/DeliveredDetailsVo2.java b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/DeliveredDetailsVo2.java new file mode 100644 index 0000000000..8e4bb5b42f --- /dev/null +++ b/anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busdeliveredapply/DeliveredDetailsVo2.java @@ -0,0 +1,119 @@ +package com.yxt.anrui.buscenter.api.busdeliveredapply; + +import com.yxt.anrui.buscenter.api.busdelivered.DeliveredDictVo; +import com.yxt.anrui.buscenter.api.busdelivered.DeliveredLeavesVo; +import com.yxt.anrui.buscenter.api.busdeliveredapplydetails.AppCarListVo; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.ArrayList; +import java.util.List; + +/** + * @description: + * @author: dimengzhe + * @date: 2023/10/11 + **/ +@Data +public class DeliveredDetailsVo2 { + + @ApiModelProperty("合同编号") + private String contractId; + //销售类型 + private String paymentMethod; + private String paymentMethodKey; + @ApiModelProperty("APP发起信息:部门-人员名") + private String publishInfo; + @ApiModelProperty("销售部门") + private String staffDeptSid; + private String staffDeptName; + @ApiModelProperty("发起日期") + private String createTime; + @ApiModelProperty("销售专员") + private String staffName; + @ApiModelProperty("客户sid") + private String customerSid; + @ApiModelProperty("客户名称") + private String name; + @ApiModelProperty("客户电话") + private String mobile; + @ApiModelProperty("车型名称") + private String modelName; + @ApiModelProperty("APP单车中介人1") + private String distributorName; + @ApiModelProperty("APP单车中介人2") + private String distributorNameTwo; + @ApiModelProperty("车型sid") + private String modelSid; + @ApiModelProperty("配置sid") + private String configSid; + @ApiModelProperty("主车成交价") + private String price; + @ApiModelProperty("实际购车人数据字典") + private List buyerType = new ArrayList<>(); + @ApiModelProperty("购车人类型key") + private String typeKey; + @ApiModelProperty("购车人类型值") + private String type; + @ApiModelProperty("贷款人") + private String loanName; + @ApiModelProperty("贷款人sid") + private String loanSid; + @ApiModelProperty("贷款人电话") + private String loanMobile; + @ApiModelProperty("总备注") + private String remarks; + @ApiModelProperty("优惠包剩余") + private List discountLeave = new ArrayList<>(); + @ApiModelProperty("用户sid") + private String userSid; + @ApiModelProperty("记录sid") + private String sid; + @ApiModelProperty("orgPath") + private String orgPath; + @ApiModelProperty("车辆集合") + private List carList; + @ApiModelProperty(value = "实例id") + private String procInstId; + @ApiModelProperty(value = "任务id") + private String taskId; + + @ApiModelProperty("销售专员sid") + private String pcStaffSid; + @ApiModelProperty("PC发起人") + private String pcApplyName; + @ApiModelProperty("PC发起人sid") + private String pcApplySid; + @ApiModelProperty("PC发起人部门") + private String pcApplyDept; + @ApiModelProperty("PC发起人部门sid") + private String pcApplyDeptSid; + @ApiModelProperty("PC中介人1") + private String pcDistributorName; + @ApiModelProperty("PC服务费1") + private String pcDistributorPrice; + @ApiModelProperty("PC中介人2") + private String pcDistributorNameTwo; + @ApiModelProperty("PC服务费2") + private String pcDistributorPriceTwo; + @ApiModelProperty("PC服务费合计1") + private String pcDistributorPriceAll; + @ApiModelProperty("PC服务费合计2") + private String pcDistributorPriceTwoAll; + + @ApiModelProperty("销售订单sid") + private String busSalesOrderSid; + @ApiModelProperty("环节key") + private String taskDefKey; + @ApiModelProperty("是否显示贷款人选择") + private boolean showLoanUser; + + @ApiModelProperty("责任人担保承诺书") + private List promiseList = new ArrayList<>(); + + @ApiModelProperty("担保承诺书") + private List danFileList = new ArrayList<>(); + + @ApiModelProperty("车辆登记合同") + private List carFileList = new ArrayList<>(); +} diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.java b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.java index 6c8b425e81..f95684acfe 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.java +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.java @@ -91,7 +91,7 @@ public interface BusDeliveredMapper extends BaseMapper { int updateStateByContractNo(@Param("contractNo") String contractNo, @Param("list") List vinSidList, @Param("state") int i); - IPage selectListsVo(IPage page,@Param(Constants.WRAPPER) QueryWrapper qw); + IPage selectListsVo(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); BusDelivered getState(@Param("contractNo") String contractNo, @Param("vinSid") String vinSid); @@ -99,10 +99,13 @@ public interface BusDeliveredMapper extends BaseMapper { List selectByState(); - IPage selectListsVoNew(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw); + IPage selectListsVoNew(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); - IPage getRetrievalNotLists(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw, @Param("name") String name); - IPage getRetrievalNotListNew(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw, @Param("name") String name); + IPage getRetrievalNotLists(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw, @Param("name") String name); - IPage unListPage(IPage page, @Param(Constants.WRAPPER)QueryWrapper qw); + IPage getRetrievalNotListNew(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw, @Param("name") String name); + + IPage unListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + IPage getRetrievalNotListQk(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw, @Param("name") String name); } \ No newline at end of file diff --git a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml index 2624eafeba..0699d82d1f 100644 --- a/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml +++ b/anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdelivered/BusDeliveredMapper.xml @@ -369,6 +369,45 @@ order by bo.contractNo desc--> + + + @@ -377,6 +416,15 @@ select="vinLists" column="contractNo"> + + + + + + + +