Browse Source

Merge remote-tracking branch 'origin/master'

master
fanzongzhe 1 year ago
parent
commit
5062d14664
  1. 9
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/BusBillApplicationDetailsVo.java
  2. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/BusBillApplicationFeign.java
  3. 5
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/BusBillApplicationFeignFallback.java
  4. 18
      anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/DownloanVoUrl.java
  5. 5
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationMapper.java
  6. 10
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationMapper.xml
  7. 5
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationRest.java
  8. 439
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java
  9. 11
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/BillApplicationIInfoVoss.java
  10. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java
  11. 9
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationDetailsVo.java
  12. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillvehicle/FinBillVehicleVo.java
  13. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml
  14. 134
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java
  15. BIN
      anrui-system-ui/src/assets/home/bIcon9.png
  16. 37
      anrui-system-ui/src/views/Home/Home.vue
  17. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/BillApplicationIInfoDto.java
  18. 11
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/BillApplicationIInfoVo.java
  19. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java
  20. 5
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java
  21. 5
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java
  22. 127
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java
  23. 4
      doc/databases/统计报表更新.sql
  24. 35
      yxt-as-ui/src/api/subjects/subjects.js
  25. 36
      yxt-as-ui/src/api/team/team.js
  26. 16
      yxt-as-ui/src/router/index.js
  27. 3
      yxt-as-ui/src/views/additionitem/additionitem.vue
  28. 1
      yxt-as-ui/src/views/maintenanceitem/maintenanceitemAdd.vue
  29. 14
      yxt-as-ui/src/views/profession/profession.vue
  30. 319
      yxt-as-ui/src/views/subjects/subjects.vue
  31. 304
      yxt-as-ui/src/views/team/team.vue
  32. 6
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillDto.java
  33. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicegroup/AsServiceGroupDto.java
  34. 9
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicegroup/AsServiceGroupQuery.java
  35. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicegroup/AsServiceGroupVo.java
  36. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicesubject/AsServiceSubjectDto.java
  37. 13
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicesubject/AsServiceSubjectQuery.java
  38. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicesubject/AsServiceSubjectVo.java
  39. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicetype/AsServiceTypeDto.java
  40. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicetype/AsServiceTypeQuery.java
  41. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asservicetype/AsServiceTypeVo.java
  42. 12
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java
  43. 2
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicegroup/AsServiceGroupRest.java
  44. 27
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicegroup/AsServiceGroupService.java
  45. 27
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicesubject/AsServiceSubjectService.java
  46. 2
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicetype/AsServiceTypeService.java

9
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/BusBillApplicationDetailsVo.java

@ -163,4 +163,13 @@ public class BusBillApplicationDetailsVo implements Vo {
@ApiModelProperty("出库申请sid")
private String ckSid;
// 下载地址
private String allDownloadUrl;
// 显示生成合同 下载合同按钮 全款/非耽误为true
private int contractBtns;
// 销售订单开票名称
private String orderInvoiceSid;
// 销售订单开票价格
private String orderInvoicePrice;
}

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/BusBillApplicationFeign.java

@ -56,4 +56,9 @@ public interface BusBillApplicationFeign {
@GetMapping("/fetchBySid")
@ResponseBody
ResultBean<BusBillApplication> fetchBySid(@RequestParam("busSid") String busSid);
@ApiOperation("点击生成附件")
@PostMapping("/saveInvoicedApplyInfo2Pdf")
@ResponseBody
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfo2Pdf(@RequestBody BusBillApplicationDto dto);
}

5
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/BusBillApplicationFeignFallback.java

@ -46,4 +46,9 @@ public class BusBillApplicationFeignFallback implements BusBillApplicationFeign
return null;
}
@Override
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfo2Pdf(BusBillApplicationDto dto) {
return null;
}
}

18
anrui-buscenter/anrui-buscenter-api/src/main/java/com/yxt/anrui/buscenter/api/busbillapplication/DownloanVoUrl.java

@ -0,0 +1,18 @@
package com.yxt.anrui.buscenter.api.busbillapplication;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/3/12
**/
@Data
public class DownloanVoUrl {
@ApiModelProperty("整体附件下载地址")
private String allDownloadUrl;
private String sid;
}

5
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationMapper.java

@ -40,6 +40,7 @@ import com.yxt.anrui.buscenter.api.busbillapplication.*;
import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplication;
import org.apache.ibatis.annotations.Mapper;
@ -101,4 +102,8 @@ public interface BusBillApplicationMapper extends BaseMapper<BusBillApplication>
BaseVehicle selectByVinSid(String vehSid);
CrmCustomerTemp selectByCustomerSid(String openTickSid);
BaseVehicle selectVinNoByVinSid(String vehSid);
BusSalesOrderVehicle selectByBorrowSid(@Param("contractNo") String contractNo, @Param("vehSid") String vehSid);
}

10
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationMapper.xml

@ -129,4 +129,14 @@
<select id="selectByCustomerSid" resultType="com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTemp">
select * from anrui_crm.crm_customer_temp where sid = #{openTickSid}
</select>
<select id="selectVinNoByVinSid" resultType="com.yxt.anrui.base.api.basevehicle.BaseVehicle">
select * from anrui_base.base_vehicle where sid = #{vehSid}
</select>
<select id="selectByBorrowSid" resultType="com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle">
select bv.* from anrui_buscenter.bus_sales_order_vehicle bv
left join anrui_buscenter.bus_sales_order bo on bo.sid = bv.salesOrderSid
where bv.linkSid = #{vehSid} and bo.contractNo = #{contractNo}
</select>
</mapper>

5
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationRest.java

@ -70,4 +70,9 @@ public class BusBillApplicationRest implements BusBillApplicationFeign {
BusBillApplication busBillApplication = busBillApplicationService.fetchBySid(busSid);
return rb.success().setData(busBillApplication);
}
@Override
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfo2Pdf(BusBillApplicationDto dto) {
return busBillApplicationService.saveInvoicedApplyInfo2Pdf(dto);
}
}

439
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busbillapplication/BusBillApplicationService.java

@ -53,6 +53,7 @@ import com.yxt.anrui.buscenter.api.bussalesorder.BusSalesOrder;
import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderDetailsVo;
import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel;
import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.biz.busbillfile.BusBillFileService;
import com.yxt.anrui.buscenter.biz.busbilltrailer.BusBillTrailerService;
import com.yxt.anrui.buscenter.biz.busbillvehicle.BusBillVehicleService;
@ -68,8 +69,11 @@ import com.yxt.anrui.fin.api.finbillapplication.FinBillApplication;
import com.yxt.anrui.fin.api.finbillapplication.FinBillApplicationDto;
import com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto;
import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleDto;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicing;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo;
import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingFeign;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewDetailsVo;
import com.yxt.anrui.riskcenter.api.loannoguaranteecreditreview.LoanNoGuaranteeCreditReviewFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutions.app.SolutionsDetailsVo;
import com.yxt.common.base.config.component.DocPdfComponent;
@ -122,6 +126,8 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
private LoanSolutionsFeign loanSolutionsFeign;
@Autowired
private DocPdfComponent docPdfComponent;
@Autowired
private LoanNoGuaranteeCreditReviewFeign loanNoGuaranteeCreditReviewFeign;
public ResultBean<String> saveOrUpdateDto(BusBillApplicationDto dto) {
ResultBean rb = ResultBean.fireFail();
@ -495,6 +501,35 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
if (data != null) {
vo.setShowValueCustomer(!data.getSingleFinalPrice().equals(entity.getOneBillMoney()));
}
//生成的合同下载地址
String allDownloadUrl = "";
if(StringUtils.isNotBlank(entity.getFileUrl())){
allDownloadUrl = docPdfComponent.getPrefixTemplateUrl()+entity.getFileUrl();
vo.setAllDownloadUrl(allDownloadUrl);
}
int contractBtns = 0;
//根据合同号查询销售订单数据
busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
contractBtns = 1;
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){
contractBtns = 2;
}
}
vo.setContractBtns(contractBtns);
//销售订单开票sid
if(StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())){
vo.setOrderInvoiceSid(busSalesOrder.getAffiliatedCompanySid());
}
if(busSalesOrderPrice != null){
if(busSalesOrderPrice.getSingleFinalPrice() != null){
vo.setOrderInvoicePrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
}
return vo;
}
@ -1077,7 +1112,7 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
return fileUrl;
}
public void createContractNo(BusBillApplicationDto dto){
public String createContractNo(BusBillApplicationDto dto){
/* try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
@ -1091,5 +1126,407 @@ public class BusBillApplicationService extends MybatisBaseService<BusBillApplica
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}*/
// String fileUrl = getFileUrlNew(dto);
String fileUrl = "";
return fileUrl;
}
public String getFileUrlNew(BusBillApplicationDto dto) {
String fileUrl = "";
String contractNo = dto.getContractNo();
List<File> filesList = new ArrayList<>();
//根据合同号查询销售订单数据
BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
List<BusBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
//按开票名称sid分组
Map<String, List<BusBillVehicleDto>> groupedByOpenTickSid = finBillVehicles.stream()
.collect(Collectors.groupingBy(BusBillVehicleDto::getOpenTickSid));
//遍历分组并组装每组的数据
groupedByOpenTickSid.forEach((openTickSid, sameOpenTickSidList) -> {
Map<String, Object> map = new HashMap<>();
Map<String, Object> carMap = new HashMap<>();
Map<String, Object> filemap = new HashMap<>();
Map<String, Object> checkMap = new HashMap<>();
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsVoBySid(openTickSid).getData();
if (!openTickSid.equals(busSalesOrder.getAffiliatedCompanySid())) {
BusBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0);
//生成开票申请书
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
map.put("contractNo", busSalesOrder.getContractNo());
List<BillFileVo> list = new ArrayList<>();
//====================================主车开始
BillFileVo billFileVo = new BillFileVo();
if (busSalesOrderModel != null) {
billFileVo.setCarName(busSalesOrderModel.getModelName());
billFileVo.setNum(String.valueOf(sameOpenTickSidList.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
billFileVo.setOpenPrice(dto.getOneBillMoney());
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
List<String> vinNoString = new ArrayList<>();
List<BusBillTrailerDto> lllList = new ArrayList<>();
BillFileVo finalBillFileVo = billFileVo;
sameOpenTickSidList.forEach(v -> {
//车架号
BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid());
if(baseVehicle != null){
finalBillFileVo.setVinNo(baseVehicle.getVinNo());
}
List<BusBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
finBillTrailers.removeAll(Collections.singleton(null));
finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList());
lllList.addAll(finBillTrailers);
list.add(finalBillFileVo);
});
//==========================主车结束
Map<String, Object> carNameMap = new HashMap<>();
if (!lllList.isEmpty()) {
for (int i = 0; i < lllList.size(); i++) {
List<String> trailerVinString = new ArrayList<>();
BusBillTrailerDto finBillTrailerDto = lllList.get(i);
billFileVo = new BillFileVo();
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo());
if (baseTrailer != null) {
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
if (baseTrailerModel != null) {
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
billFileVo.setCarName(carName);
billFileVo.setVinNo(baseTrailer.getVinNo());
billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney());
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
billFileVo.setType(finBillTrailerDto.getBillTypeValue());
list.add(billFileVo);
}
}
}
}
map.put("list", list);
map.put("name", finBillVehicleDto.getOpenTickName());
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsVoBySid(openTickSid).getData();
if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicingDetailsVo != null) {//机动车
if (finCompanyInvoicingDetailsVo != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
}
carMap.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (BusBillVehicleDto salesOrderVehicle : sameOpenTickSidList) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
}
}
}
if("1".equals(busSalesOrder.getPayTypeKey())){
if (loanSolutions != null) {
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
String remarks = "";
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
filemap.put("year", year);
filemap.put("month", month);
filemap.put("day", day);
if (finCompanyInvoicingDetailsVo != null) {
filemap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
filemap.put("customerName", finCompanyInvoicingDetailsVo.getName());//乙方
filemap.put("invoiceNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//纳税人识别号
filemap.put("idNo", finCompanyInvoicingDetailsVo.getTaxpayerNo());//乙方证件号码
filemap.put("adds", finCompanyInvoicingDetailsVo.getAddress());//户籍地址
} else {
CrmCustomerTemp crmCustomerTemp = baseMapper.selectByCustomerSid(dto.getOpenTickSid());
if (crmCustomerTemp != null) {
filemap.put("invoiceName", crmCustomerTemp.getName());//开票名称
filemap.put("customerName", crmCustomerTemp.getName());//乙方
filemap.put("invoiceNo", crmCustomerTemp.getIDNumber());//纳税人识别号
filemap.put("idNo", crmCustomerTemp.getIDNumber());//乙方证件号码
filemap.put("adds", crmCustomerTemp.getCertificateAddress());//户籍地址
}
}
filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型
remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。";
filemap.put("remarks", remarks);
filemap.put("busSid", busSalesOrder.getSid());
ResultBean<Map<String, Object>> mapResultBean = commonContractFeign.getModelMap(filemap);
checkMap = mapResultBean.getData();
//生成新车空白合同
checkMap.put("totalPrice", "");
checkMap.put("priceRemarks", "");
checkMap.put("depositTotal", "");
checkMap.put("createOrgName", "");
checkMap.put("payTypeKey", busSalesOrder.getPayTypeKey());
}
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 2,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
if (!map.isEmpty()) {
Future<String> future1 = pool.submit(() -> {
return getInvoiceApplyFile(map);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
if (!carMap.isEmpty()) {
Future<String> future2 = pool.submit(() -> {
return getCarFile(carMap);
});
if (StringUtils.isNotBlank(future2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
filesList.add(file);
}
}
if("1".equals(busSalesOrder.getPayTypeKey())){
Map<String, Object> finalCheckMap = checkMap;
if (!finalCheckMap.isEmpty()) {
Future<String> future3 = pool.submit(() -> {
return blackFile(finalCheckMap);
});
if (StringUtils.isNotBlank(future3.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future3.get());
filesList.add(file);
}
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}
});
if (filesList.size() > 0) {
String typeName = contractNo + "开票附件.pdf";
try {
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){//非担保、生成开票申请书和车辆登记合同
List<BusBillVehicleDto> finBillVehicles = dto.getFinBillVehicles();
for (BusBillVehicleDto v : finBillVehicles) {
BusSalesOrderVehicle busSalesOrderVehicle = baseMapper.selectByBorrowSid(dto.getContractNo(), v.getVehSid());
LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())) {//登记在挂靠公司
v.setOpenTickSid(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompanySid());
v.setOpenTickName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
v.setBillTypeKey(busSalesOrder.getBillingTypeKey());
v.setBillTypeValue(busSalesOrder.getBillingType());
}
}
//按开票名称sid分组
Map<String, List<BusBillVehicleDto>> groupedByOpenTickSid = finBillVehicles.stream()
.collect(Collectors.groupingBy(BusBillVehicleDto::getOpenTickSid));
//遍历分组并组装每组的数据
groupedByOpenTickSid.forEach((openTickSid, sameOpenTickSidList) -> {
Map<String, Object> map = new HashMap<>();
Map<String, Object> carMap = new HashMap<>();
BusBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0);
//生成开票申请书
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
map.put("contractNo", busSalesOrder.getContractNo());
List<BillFileVo> list = new ArrayList<>();
//====================================主车开始
BillFileVo billFileVo = new BillFileVo();
if (busSalesOrderModel != null) {
billFileVo.setCarName(busSalesOrderModel.getModelName());
billFileVo.setNum(String.valueOf(sameOpenTickSidList.size()));
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
billFileVo.setOpenPrice(dto.getOneBillMoney());
billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型
List<String> vinNoString = new ArrayList<>();
List<BusBillTrailerDto> lllList = new ArrayList<>();
BillFileVo finalBillFileVo = billFileVo;
sameOpenTickSidList.forEach(v -> {
//车架号
BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid());
if(baseVehicle != null){
finalBillFileVo.setVinNo(baseVehicle.getVinNo());
}
List<BusBillTrailerDto> finBillTrailers = dto.getFinBillTrailers();
finBillTrailers.removeAll(Collections.singleton(null));
finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList());
lllList.addAll(finBillTrailers);
list.add(finalBillFileVo);
});
//==========================主车结束
Map<String, Object> carNameMap = new HashMap<>();
if (!lllList.isEmpty()) {
for (int i = 0; i < lllList.size(); i++) {
List<String> trailerVinString = new ArrayList<>();
BusBillTrailerDto finBillTrailerDto = lllList.get(i);
billFileVo = new BillFileVo();
BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo());
if (baseTrailer != null) {
BaseTrailerModel baseTrailerModel = baseMapper.selectByModelSid(baseTrailer.getTrailerModelSid());
if (baseTrailerModel != null) {
String carName = "外廓-" + Integer.parseInt(baseTrailerModel.getAppearanceSizeLong()) / 1000 + "米" + "\t" + baseTrailerModel.getTrailerTypeValue();
billFileVo.setCarName(carName);
billFileVo.setVinNo(baseTrailer.getVinNo());
billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney());
billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString());
billFileVo.setType(finBillTrailerDto.getBillTypeValue());
list.add(billFileVo);
}
}
}
}
map.put("list", list);
map.put("name", finBillVehicleDto.getOpenTickName());
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
String year = dateString.get(0);
String month = dateString.get(1);
String day = dateString.get(2);
map.put("year", year);
map.put("month", month);
map.put("day", day);
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingFeign.fetchDetailsVoBySid(openTickSid).getData();
if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicingDetailsVo != null) {//机动车
if (finCompanyInvoicingDetailsVo != null) {
//生成车辆登记合同
if (busSalesOrder != null) {
carMap.put("Yf", busSalesOrder.getCustomerName());
carMap.put("invoiceName", finCompanyInvoicingDetailsVo.getName());//开票名称
}
carMap.put("contractNo", "D" + map.get("contractNo"));
if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) {
ResultBean<FinCompanyInvoicingDetailsVo> invoicingDetailsVoResultBean = finCompanyInvoicingFeign.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid());
if (invoicingDetailsVoResultBean.getData() != null) {
carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName());
}
}
carMap.put("date", date);
List<CarContractListVo> carContractListVos = new ArrayList<>();
for (BusBillVehicleDto salesOrderVehicle : sameOpenTickSidList) {
CarContractListVo carContractListVo = new CarContractListVo();
BaseVehicle baseVehicle = baseMapper.selectByVinSid(salesOrderVehicle.getVehSid());
carContractListVo.setBrand(baseVehicle.getModelName());
carContractListVo.setVinNo(baseVehicle.getVinNo());
carContractListVo.setEnginNo(baseVehicle.getEngineNo());
carContractListVos.add(carContractListVo);
}
carMap.put("carLists", carContractListVos);
}
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 2,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
if (!map.isEmpty()) {
Future<String> future1 = pool.submit(() -> {
return getInvoiceApplyFile(map);
});
if (StringUtils.isNotBlank(future1.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future1.get());
filesList.add(file);
}
}
if (!carMap.isEmpty()) {
Future<String> future2 = pool.submit(() -> {
return getCarFile(carMap);
});
if (StringUtils.isNotBlank(future2.get())) {
File file = new File(docPdfComponent.getUploadTemplateUrl() + future2.get());
filesList.add(file);
}
}
} catch (Exception e) {
e.printStackTrace();
log.error("生成文件失败:==========================" + e.getMessage());
}
});
if (filesList.size() > 0) {
String typeName = contractNo + "开票附件.pdf";
try {
File allFile = WordConvertUtils.mulFile2One(filesList, docPdfComponent.getUploadTemplateUrl() + typeName);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("-========" + docPdfComponent.getUploadTemplateUrl() + typeName);
fileUrl = typeName;
}
}
}
if(StringUtils.isNotBlank(fileUrl)){
BusBillApplication finBillApplication = fetchBySid(dto.getSid());
finBillApplication.setFileUrl(fileUrl);
baseMapper.updateById(finBillApplication);
}
return fileUrl;
}
public ResultBean<DownloanVoUrl> saveInvoicedApplyInfo2Pdf(BusBillApplicationDto dto) {
ResultBean<DownloanVoUrl> rb = ResultBean.fireFail();
DownloanVoUrl downloanVoUrl = new DownloanVoUrl();
ResultBean<String> resultBean = saveOrUpdateDto(dto);
String contractNo = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+contractNo);
downloanVoUrl.setSid(resultBean.getData());
return rb.success().setData(downloanVoUrl);
}
}

11
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/BillApplicationIInfoVoss.java

@ -18,6 +18,8 @@ public class BillApplicationIInfoVoss {
private String sid;
@ApiModelProperty("出库sid")
private String ckSid;
@ApiModelProperty(value = "销售类型key")
private String saleTypeKey;
@ApiModelProperty(value = "销售类型value")
private String saleType;
@ApiModelProperty("部门-人员名")
@ -98,4 +100,13 @@ public class BillApplicationIInfoVoss {
private Boolean showValueCustomer;
@ApiModelProperty("是否为单独新增")
private Boolean showBtn;
// 下载地址
private String allDownloadUrl;
// 显示生成合同 下载合同按钮 全款/非耽误为true
private int contractBtns;
// 销售订单开票名称
private String orderInvoiceSid;
// 销售订单开票价格
private String orderInvoicePrice;
}

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java

@ -13,4 +13,6 @@ public class DownloanVoUrl {
@ApiModelProperty("整体附件下载地址")
private String allDownloadUrl;
private String sid;
}

9
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationDetailsVo.java

@ -185,4 +185,13 @@ public class FinBillApplicationDetailsVo extends AppBillApplicationIInfoVo imple
private List<FinBillFileVo> cldjhtApplicationAppendxs; // 车辆登记合同
@ApiModelProperty("欠款领票附件")
private List<FinBillFileVo> arrearsCollectionAppendxs;
// 下载地址
private String allDownloadUrl;
// 显示生成合同 下载合同按钮 全款/非耽误为true
private int contractBtns;
// 销售订单开票名称
private String orderInvoiceSid;
// 销售订单开票价格
private String orderInvoicePrice;
}

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillvehicle/FinBillVehicleVo.java

@ -79,6 +79,8 @@ public class FinBillVehicleVo implements Vo {
private String openTickSid; // 开票名称sid
@ApiModelProperty("开票名称")
private String openTickName; // 开票名称
@ApiModelProperty("开票信息")
private String invoiceInfo;
@ApiModelProperty("合格证状态key")
private String certificateStateKey; // 合格证状态key
@ApiModelProperty("合格证状态value")

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml

@ -172,7 +172,7 @@
<select id="selectByBus" resultType="com.yxt.anrui.fin.api.finbillapplication.VinListVos">
SELECT DISTINCT
bv.`linkNo` AS vin,
RIGHT(bv.`linkNo`, 8) AS vin,
bv.`linkSid` AS vinSid,
bc.`certificateState` AS certificateStateKey,
bc.`certificateStateValue` AS certificateState,

134
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java

@ -507,7 +507,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
record.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
record.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName());
record.setInvoiceName(busSalesOrderBorrowerDetailsVo.getBorrowerName());
record.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
record.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
@ -1162,7 +1162,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
if("1".equals(busSalesOrder.getPayTypeKey())){
if (loanSolutions != null) {
if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) {
if (busSalesOrderPrice.getSingleFinalPrice().compareTo(new BigDecimal(dto.getOneBillMoney())) != 0) {
String remarks = "";
String date = DateUtil.today();
List<String> dateString = Arrays.asList(date.split("-"));
@ -1514,27 +1514,27 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
FinBillApplication entity = fetchBySid(sid);
List<FinBillVehicleVo> finBillVehicleVos = finBillVehicleService.fetchVehBySid(sid);
String contractNo = entity.getContractNo();
FinBillApplicationDetailsVo vo = new FinBillApplicationDetailsVo();
BeanUtil.copyProperties(entity, vo);
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(contractNo).getData();
SolutionsDetailsVo solutionsDetailsVo = loanSolutionsFeign.selectDetails(busSalesOrder.getSid()).getData();
BigDecimal oneBillMoney;
/*if ("2".equals(entity.getSaleTypeKey())){
if ("2".equals(entity.getSaleTypeKey())){
oneBillMoney = new BigDecimal(solutionsDetailsVo.getMainVehicleAmount());
entity.setOneBillMoney(oneBillMoney);
entity.setTotalBillMoney(oneBillMoney.multiply(new BigDecimal(finBillVehicleVos.size())));
entity.setOpenTickTypeKey(busSalesOrder.getBillingTypeKey());
entity.setOpenTickTypeValue(busSalesOrder.getBillingType());
vo.setOneBillMoney(oneBillMoney.toString());
vo.setTotalBillMoney(oneBillMoney.multiply(new BigDecimal(finBillVehicleVos.size())).toString());
vo.setOpenTickTypeKey(busSalesOrder.getBillingTypeKey());
vo.setOpenTickTypeValue(busSalesOrder.getBillingType());
vo.setNoEditInvoiceTypeAndName(true);
vo.setNoEditInvoiceMoney(true);
}else {
oneBillMoney = entity.getOneBillMoney();
if (oneBillMoney != null) {
entity.setTotalBillMoney(entity.getOneBillMoney().multiply(new BigDecimal(finBillVehicleVos.size())));
vo.setTotalBillMoney(entity.getOneBillMoney().multiply(new BigDecimal(finBillVehicleVos.size())).toString());
vo.setNoEditInvoiceTypeAndName(false);
vo.setNoEditInvoiceMoney(true);
}
}*/
oneBillMoney = entity.getOneBillMoney();
if (oneBillMoney != null) {
entity.setTotalBillMoney(entity.getOneBillMoney().multiply(new BigDecimal(finBillVehicleVos.size())));
}
FinBillApplicationDetailsVo vo = new FinBillApplicationDetailsVo();
BeanUtil.copyProperties(entity, vo);
vo.setBusSalesOrderSid(busSalesOrder.getSid());
if (finBillVehicleVos != null) {
for (FinBillVehicleVo finBillVehicleVo : finBillVehicleVos) {
@ -1543,29 +1543,75 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
List<String> clhgeImages = baseVehicleAppendixFeign.selectBySid(baseVehicleCertificateVo.getSid()).getData();
finBillVehicleVo.setCertificatePhoto(clhgeImages);
}
/*BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(contractNo, finBillVehicleVo.getVehSid()).getData();
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleFeign.selectByNoAndVinSid(contractNo, finBillVehicleVo.getVehSid()).getData();
if ("2".equals(entity.getSaleTypeKey())){
if ("01".equals(busSalesOrder.getFinancePlan())){//担保
String jfkcSid = loanHomevisitInvestigateFeign.selSaleOrderSidAndBorrSid(busSalesOrder.getSid(), busSalesOrderVehicle.getBorrowerSid()).getData();
LoanHomevisitInvestigateCustomerDetailsVo loanHomevisitInvestigateCustomerDetailsVo = loanHomevisitInvestigateCustomerFeign.selectByMainSid(jfkcSid).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
finBillVehicleVo.setBillTypeKey(busSalesOrder.getBillingTypeKey());
finBillVehicleVo.setBillTypeValue(busSalesOrder.getBillingType());
if ("1".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
finBillVehicleVo.setOpenTickName(loanHomevisitInvestigateCustomerDetailsVo.getBorrowerName());
finBillVehicleVo.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
finBillVehicleVo.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanHomevisitInvestigateCustomerDetailsVo.getVehRegis())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByTaxpayerNo(loanHomevisitInvestigateCustomerDetailsVo.getAccCompRegistNum()).getData();
finBillVehicleVo.setOpenTickName(loanHomevisitInvestigateCustomerDetailsVo.getAccCompName());
finBillVehicleVo.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
finBillVehicleVo.setInvoiceInfo(openTickRemarks);
}
}else if ("02".equals(busSalesOrder.getFinancePlan())){//非担保
LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData();
BusSalesOrderBorrowerDetailsVo busSalesOrderBorrowerDetailsVo = busSalesOrderBorrowerFeign.fetchDetailsBySid(busSalesOrderVehicle.getBorrowerSid()).getData();
CrmCustomerTempVo crmCustomerTempVo = crmCustomerTempFeign.fetchSid(busSalesOrderBorrowerDetailsVo.getCustomSid()).getData();
finBillVehicleVo.setBillTypeKey(busSalesOrder.getBillingTypeKey());
finBillVehicleVo.setBillTypeValue(busSalesOrder.getBillingType());
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
finBillVehicleVo.setOpenTickName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName());
finBillVehicleVo.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
finBillVehicleVo.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.selectInvoingByName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany()).getData();
finBillVehicleVo.setOpenTickName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany());
finBillVehicleVo.setOpenTickSid(finCompanyInvoicingDetailsVo.getSid());
String openTickRemarks = "";
if (com.yxt.common.base.utils.StringUtils.isNotBlank(openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getTaxpayerNo() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getAddress())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getAddress() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getPhone())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getPhone() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankName())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankName() + ";";
}
if (com.yxt.common.base.utils.StringUtils.isNotBlank(finCompanyInvoicingDetailsVo.getBankAccount())) {
openTickRemarks = openTickRemarks + finCompanyInvoicingDetailsVo.getBankAccount() + ";";
}
finBillVehicleVo.setInvoiceInfo(openTickRemarks);
}
}
}*/
}
}
}
vo.setFinBillVehicles(finBillVehicleVos);
@ -1677,6 +1723,35 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
if (data != null) {
vo.setShowValueCustomer(!data.getSingleFinalPrice().equals(entity.getOneBillMoney()));
}
//生成的合同下载地址
String allDownloadUrl = "";
if(StringUtils.isNotBlank(entity.getFileUrl())){
allDownloadUrl = docPdfComponent.getPrefixTemplateUrl()+entity.getFileUrl();
vo.setAllDownloadUrl(allDownloadUrl);
}
int contractBtns = 0;
//根据合同号查询销售订单数据
busSalesOrder = baseMapper.selectByContract(contractNo);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
contractBtns = 1;
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){
contractBtns = 2;
}
}
vo.setContractBtns(contractBtns);
//销售订单开票sid
if(StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())){
vo.setOrderInvoiceSid(busSalesOrder.getAffiliatedCompanySid());
}
if(busSalesOrderPrice != null){
if(busSalesOrderPrice.getSingleFinalPrice() != null){
vo.setOrderInvoicePrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
}
return vo;
}
@ -5722,7 +5797,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
vinListVos1.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey());
vinListVos1.setInvoiceType(busSalesOrder.getBillingType());
if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
vinListVos1.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName());
vinListVos1.setInvoiceName(busSalesOrderBorrowerDetailsVo.getBorrowerName());
vinListVos1.setOpenTickSid(busSalesOrderBorrowerDetailsVo.getCustomSid());
vinListVos1.setInvoiceInfo(crmCustomerTempVo.getIDNumber());
}else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){
@ -5753,6 +5828,30 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
}
billApplicationIInfoVoss.setVinList(vinListVos);
billApplicationIInfoVoss.setFinBillTrailers(pcSelBillGcVos);
//生成的合同下载地址
int contractBtns = 0;
//根据合同号查询销售订单数据
busSalesOrder = baseMapper.selectByContract(contractId);
SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData();
BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid());
BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid());
if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款
contractBtns = 1;
}else{
if(StringUtils.isNotBlank(loanSolutions.getTypeKey())){
contractBtns = 2;
}
}
billApplicationIInfoVoss.setContractBtns(contractBtns);
//销售订单开票sid
if(StringUtils.isNotBlank(busSalesOrder.getAffiliatedCompanySid())){
billApplicationIInfoVoss.setOrderInvoiceSid(busSalesOrder.getAffiliatedCompanySid());
}
if(busSalesOrderPrice != null){
if(busSalesOrderPrice.getSingleFinalPrice() != null){
billApplicationIInfoVoss.setOrderInvoicePrice(busSalesOrderPrice.getSingleFinalPrice().toString());
}
}
return rb.success().setData(billApplicationIInfoVoss);
}
@ -5799,6 +5898,7 @@ public class FinBillApplicationService extends MybatisBaseService<FinBillApplica
ResultBean<String> resultBean = saveOrUpdateDto(dto);
String contractNo = createContractNo(dto);
downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+contractNo);
downloanVoUrl.setSid(resultBean.getData());
return rb.success().setData(downloanVoUrl);
}
}

BIN
anrui-system-ui/src/assets/home/bIcon9.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

37
anrui-system-ui/src/views/Home/Home.vue

@ -167,6 +167,9 @@ export default {
}, {
imgUrl: require('@/assets/home/notice.png'),
title: '消息中心'
}, {
imgUrl: require('@/assets/home/bIcon9.png'),
title: '售后服务'
}, {
imgUrl: require('@/assets/home/bIcon8.png'),
title: '系统管理'
@ -376,17 +379,10 @@ export default {
defaultOrgPathName: this.defaultOrgPathName,
defaultOrgPath: this.defaultOrgPath
}
if (index == '9') {
// this.$router.push({path: '/index'})
let myPopup = window.open('/#/index' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
} else if (index == '7') {
// let myPopup = window.open('http://127.0.0.1:9531/base/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
let myPopup = window.open('http://anrui.yyundong.com/base/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
// let myPopup = window.open('http://120.46.172.184/base/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
} else if (index == '8') {
// let myPopup = window.open('http://127.0.0.1:9531/message/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
let myPopup = window.open('http://anrui.yyundong.com/message/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
// let myPopup = window.open('http://120.46.172.184/message/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
if (index == '0') {
// let myPopup = window.open('http://127.0.0.1:9531/buscenter/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
let myPopup = window.open('http://anrui.yyundong.com/buscenter/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
// let myPopup = window.open('http://120.46.172.184/buscenter/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
} else if (index == '1') {
// let myPopup = window.open('http://127.0.0.1:9531/scm/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
let myPopup = window.open('http://anrui.yyundong.com/scm/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
@ -407,10 +403,21 @@ export default {
// let myPopup = window.open('http://127.0.0.1:9531/reportcenter/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
let myPopup = window.open('http://anrui.yyundong.com/reportcenter/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
// let myPopup = window.open('http://120.46.172.184/reportcenter/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
} else if (index == '0') {
// let myPopup = window.open('http://127.0.0.1:9531/buscenter/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
let myPopup = window.open('http://anrui.yyundong.com/buscenter/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
// let myPopup = window.open('http://120.46.172.184/buscenter/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
} else if (index == '7') {
// let myPopup = window.open('http://127.0.0.1:9531/base/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
let myPopup = window.open('http://anrui.yyundong.com/base/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
// let myPopup = window.open('http://120.46.172.184/base/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
} else if (index == '8') {
// let myPopup = window.open('http://127.0.0.1:9531/message/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
let myPopup = window.open('http://anrui.yyundong.com/message/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
// let myPopup = window.open('http://120.46.172.184/message/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
} else if (index == '9') {
// let myPopup = window.open('http://127.0.0.1:9531/as/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
let myPopup = window.open('http://anrui.yyundong.com/as/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
// let myPopup = window.open('http://120.46.172.184/as/#/' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
} else if (index == '10') {
// this.$router.push({path: '/index'})
let myPopup = window.open('/#/index' + '?token=' + getStorage() + '&organizationData=' + encodeURI((JSON.stringify(organizationData))), '_blank')
}
// const page = this.$router.resolve({name: name})
// window.open(page.href,'_blank')

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/BillApplicationIInfoDto.java

@ -15,6 +15,8 @@ public class BillApplicationIInfoDto implements Dto {
private String sid;
@ApiModelProperty("出库sid")
private String ckSid;
@ApiModelProperty(value = "销售类型key")
private String saleTypeKey;
@ApiModelProperty(value = "销售类型value")
private String saleType;
@ApiModelProperty("部门-人员名")

11
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/BillApplicationIInfoVo.java

@ -15,6 +15,8 @@ public class BillApplicationIInfoVo implements Vo {
private String sid;
@ApiModelProperty("出库sid")
private String ckSid;
@ApiModelProperty(value = "销售类型key")
private String saleTypeKey;
@ApiModelProperty(value = "销售类型value")
private String saleType;
@ApiModelProperty("部门-人员名")
@ -97,4 +99,13 @@ public class BillApplicationIInfoVo implements Vo {
private Boolean showBtn;
@ApiModelProperty("是否显示信审终审")
private Boolean showXsState = false;
// 下载地址
private String allDownloadUrl;
// 显示生成合同 下载合同按钮 全款/非耽误为true
private int contractBtns;
// 销售订单开票名称
private String orderInvoiceSid;
// 销售订单开票价格
private String orderInvoicePrice;
}

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java

@ -104,4 +104,10 @@ public interface InvoicedFeign {
@PostMapping("/saveInvoicedApplyInfoPdf")
@ResponseBody
public ResultBean saveInvoicedApplyInfoPdf(@RequestBody BillApplicationIInfoDto dto);
@ApiOperation("出库开票点击生成附件")
@PostMapping("/saveInvoicedApplyInfo2Pdf")
@ResponseBody
public ResultBean saveInvoicedApplyInfo2Pdf(@Valid @RequestBody BillApplicationIInfoDto dto);
}

5
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java

@ -94,4 +94,9 @@ public class InvoicedFeignFallback implements InvoicedFeign {
public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) {
return null;
}
@Override
public ResultBean saveInvoicedApplyInfo2Pdf(BillApplicationIInfoDto dto) {
return null;
}
}

5
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java

@ -102,4 +102,9 @@ public class InvoicedRest implements InvoicedFeign {
public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) {
return invoicedService.saveInvoicedApplyInfoPdf(dto);
}
@Override
public ResultBean saveInvoicedApplyInfo2Pdf(BillApplicationIInfoDto dto) {
return invoicedService.saveInvoicedApplyInfo2Pdf(dto);
}
}

127
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java

@ -136,7 +136,7 @@ public class InvoicedService {
pcSelBillVinNoQuery.setName(params.getName());
pcSelBillVinNoQuery.setOrgPath(params.getOrgPath());
pcSelBillVinNoQuery.setContractId(params.getContractId());
pcSelBillVinNoQuery.setVinNos(params.getVins());
pcSelBillVinNoQuery.setVins(params.getVins());
PagerQuery<PcSelBillVinNoQuery> pcq = new PagerQuery<>();
pcq.setParams(pcSelBillVinNoQuery);
PagerVo<PcSelBillVinNoPageVo> data = finBillApplicationFeign.getSelectVinsList(pcq).getData();
@ -373,6 +373,10 @@ public class InvoicedService {
billApplicationIInfoVo.setDate(data.getApplyDate());
billApplicationIInfoVo.setUserSid(data.getCreateBySid());
billApplicationIInfoVo.setPublishInfo(data.getDeptName() + "-" + data.getCreateByName());
billApplicationIInfoVo.setAllDownloadUrl(data.getAllDownloadUrl());
billApplicationIInfoVo.setContractBtns(data.getContractBtns());
billApplicationIInfoVo.setOrderInvoiceSid(data.getOrderInvoiceSid());
billApplicationIInfoVo.setOrderInvoicePrice(data.getOrderInvoicePrice());
//根据合同查询销售订单
BusSalesOrder busSalesOrder = busSalesOrderFeign.selectOrderByContractNo(data.getContractNo()).getData();
billApplicationIInfoVo.setBusSalesOrderSid(busSalesOrder.getSid());
@ -520,6 +524,7 @@ public class InvoicedService {
finBillApplicationDto.setCreateBySid(dto.getUserSid());
finBillApplicationDto.setTotalBillMoney(dto.getInvoiceTotal());
finBillApplicationDto.setOrgSidPath(dto.getOrgPath());
finBillApplicationDto.setSaleTypeKey(dto.getSaleTypeKey());
finBillApplicationDto.setSaleTypeValue(dto.getSaleType());
finBillApplicationDto.setSaleDeptName(dto.getSellerDept());
finBillApplicationDto.setStaffName(dto.getSellerName());
@ -1239,4 +1244,124 @@ public class InvoicedService {
ResultBean resultBean = finBillApplicationFeign.saveInvoicedApplyInfoPdf(finBillApplicationDto);
return resultBean;
}
public ResultBean saveInvoicedApplyInfo2Pdf(BillApplicationIInfoDto billApplicationIInfoDto) {
BusBillApplicationDto busBillApplicationDto = new BusBillApplicationDto();
BeanUtil.copyProperties(billApplicationIInfoDto, busBillApplicationDto, "carBuyContractImages");
String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(billApplicationIInfoDto.getOrgPath()).getData();
busBillApplicationDto.setUseOrgSid(useOrgSid);
busBillApplicationDto.setCreateBySid(billApplicationIInfoDto.getUserSid());
busBillApplicationDto.setTotalBillMoney(billApplicationIInfoDto.getInvoiceTotal());
busBillApplicationDto.setOrgSidPath(billApplicationIInfoDto.getOrgPath());
busBillApplicationDto.setSaleTypeValue(billApplicationIInfoDto.getSaleType());
busBillApplicationDto.setSaleDeptName(billApplicationIInfoDto.getSellerDept());
busBillApplicationDto.setStaffName(billApplicationIInfoDto.getSellerName());
busBillApplicationDto.setOpenTickUnitName(billApplicationIInfoDto.getInvoicingUnit());
busBillApplicationDto.setCustomerName(billApplicationIInfoDto.getName());
busBillApplicationDto.setOneBillMoney(billApplicationIInfoDto.getInvoiceMoney());
busBillApplicationDto.setOpenTickTypeKey(billApplicationIInfoDto.getOpenTickTypeKey());
busBillApplicationDto.setOpenTickTypeValue(billApplicationIInfoDto.getOpenTickTypeValue());
busBillApplicationDto.setOpenTickSid(billApplicationIInfoDto.getOpenTickSid());
busBillApplicationDto.setOpenTickName(billApplicationIInfoDto.getOpenTickName());
busBillApplicationDto.setBillStateKey(billApplicationIInfoDto.getInvoiceStateKey());
busBillApplicationDto.setBillStateValue(billApplicationIInfoDto.getInvoiceState());
busBillApplicationDto.setContractNo(billApplicationIInfoDto.getContractId());
busBillApplicationDto.setApplyDate(billApplicationIInfoDto.getDate());
busBillApplicationDto.setCreateBySid(billApplicationIInfoDto.getUserSid());
busBillApplicationDto.setNodeState(billApplicationIInfoDto.getNodeState());
busBillApplicationDto.setBillNo(billApplicationIInfoDto.getBillNo());
busBillApplicationDto.setModelSid(billApplicationIInfoDto.getModelSid());
busBillApplicationDto.setModelName(billApplicationIInfoDto.getModelName());
String publishInfo = billApplicationIInfoDto.getPublishInfo();
String[] split = publishInfo.split("-");
busBillApplicationDto.setDeptName(split[0]);
busBillApplicationDto.setCreateByName(split[1]);
//开票车辆信息
List<VinListDto> vinList = billApplicationIInfoDto.getVinList();
List<BusBillVehicleDto> busBillVehicleDtos = new ArrayList<>();
for (VinListDto vinListDto : vinList) {
if (StringUtils.isBlank(vinListDto.getInvoiceInfo())) {
return new ResultBean().fail().setMsg("开票信息不能为空");
}
BusBillVehicleDto busBillVehicleDto = new BusBillVehicleDto();
busBillVehicleDto.setVinNo(vinListDto.getVin());
busBillVehicleDto.setVehSid(vinListDto.getVinSid());
busBillVehicleDto.setCertificateStateKey(vinListDto.getCertificateStateKey());
busBillVehicleDto.setCertificateStateValue(vinListDto.getCertificateState());
busBillVehicleDto.setBillTypeKey(vinListDto.getInvoiceTypeKey());
busBillVehicleDto.setBillTypeValue(vinListDto.getInvoiceType());
busBillVehicleDto.setOpenTickSid(vinListDto.getOpenTickSid());
busBillVehicleDto.setOpenTickName(vinListDto.getInvoiceName());
busBillVehicleDto.setOpenTickRemarks(vinListDto.getInvoiceInfo());
busBillVehicleDtos.add(busBillVehicleDto);
}
busBillApplicationDto.setFinBillVehicles(busBillVehicleDtos);
//开票挂车信息
List<FinBillTrailerDto> finBillTrailers = billApplicationIInfoDto.getFinBillTrailers();
List<BusBillTrailerDto> busBillTrailerDtos = new ArrayList<>();
if (finBillTrailers != null && finBillTrailers.size() > 0) {
for (FinBillTrailerDto finBillTrailerDto : finBillTrailers) {
BusBillTrailerDto busBillTrailerDto = new BusBillTrailerDto();
BeanUtil.copyProperties(finBillTrailerDto, busBillTrailerDto);
busBillTrailerDtos.add(busBillTrailerDto);
}
}
busBillApplicationDto.setFinBillTrailers(busBillTrailerDtos);
//附件信息
List<String> appCarBuyContractImages = billApplicationIInfoDto.getCarBuyContractImages();//车辆买卖合同
List<String> customerInvoiceApplyImages = billApplicationIInfoDto.getCustomerInvoiceApplyImages();//客户开票申请书
List<String> invoiceApplyConfirmImages = billApplicationIInfoDto.getInvoiceApplyConfirmImages();//开票信息确认书
List<String> registerContractImages = billApplicationIInfoDto.getRegisterContractImages();//车辆登记合同
List<String> idCardImages = billApplicationIInfoDto.getIdCardImages();//证件
if (idCardImages == null || idCardImages.size() == 0) {
return new ResultBean().fail().setMsg("证件不能为空");
}
List<BusBillFileDto> carBuyContractImages = new ArrayList<>(); // 车辆买卖合同
List<BusBillFileDto> khkpsqsApplicationAppendxs = new ArrayList<>(); // 客户开票申请书附件信息
List<BusBillFileDto> kpxxqrsApplicationAppendxs = new ArrayList<>(); // 开票信息确认书附件信息
List<BusBillFileDto> cldjhtApplicationAppendxs = new ArrayList<>(); // 车辆登记合同附件信息
List<BusBillFileDto> idCardImagesPC = new ArrayList<>();//证件
if (appCarBuyContractImages != null) {
for (String appCarBuyContractImage : appCarBuyContractImages) {
BusBillFileDto busBillFileDto = new BusBillFileDto();
busBillFileDto.setFileUrl(appCarBuyContractImage);
carBuyContractImages.add(busBillFileDto);
}
}
if (customerInvoiceApplyImages != null) {
for (String customerInvoiceApplyImage : customerInvoiceApplyImages) {
BusBillFileDto busBillFileDto = new BusBillFileDto();
busBillFileDto.setFileUrl(customerInvoiceApplyImage);
khkpsqsApplicationAppendxs.add(busBillFileDto);
}
}
if (invoiceApplyConfirmImages != null) {
for (String invoiceApplyConfirmImage : invoiceApplyConfirmImages) {
BusBillFileDto busBillFileDto = new BusBillFileDto();
busBillFileDto.setFileUrl(invoiceApplyConfirmImage);
kpxxqrsApplicationAppendxs.add(busBillFileDto);
}
}
if (registerContractImages != null) {
for (String registerContractImage : registerContractImages) {
BusBillFileDto busBillFileDto = new BusBillFileDto();
busBillFileDto.setFileUrl(registerContractImage);
cldjhtApplicationAppendxs.add(busBillFileDto);
}
}
if (idCardImages != null) {
for (String idCardImage : idCardImages) {
BusBillFileDto busBillFileDto = new BusBillFileDto();
busBillFileDto.setFileUrl(idCardImage);
idCardImagesPC.add(busBillFileDto);
}
}
busBillApplicationDto.setCarBuyContractImages(carBuyContractImages);
busBillApplicationDto.setKhkpsqsApplicationAppendxs(khkpsqsApplicationAppendxs);
busBillApplicationDto.setKpxxqrsApplicationAppendxs(kpxxqrsApplicationAppendxs);
busBillApplicationDto.setCldjhtApplicationAppendxs(cldjhtApplicationAppendxs);
busBillApplicationDto.setZjApplicationAppendxs(idCardImagesPC);
ResultBean resultBean = busBillApplicationFeign.saveInvoicedApplyInfo2Pdf(busBillApplicationDto);
return resultBean;
}
}

4
doc/databases/统计报表更新.sql

@ -313,13 +313,13 @@ BEGIN
LEFT JOIN anrui_buscenter.bus_sales_order_vehicle bov ON bov.linkSid = bv.sid
LEFT JOIN anrui_buscenter.bus_sales_order bo ON bo.sid = bov.salesOrderSid
LEFT JOIN anrui_buscenter.bus_sales_order_model bm ON bm.salesOrderSid = bo.sid
left join anrui_base.base_vehicle_state bs on bs.saleOrderSid = bo.sid
left join anrui_base.base_vehicle_state bs on bs.busSid = bov.sid
WHERE bo.nodeState = '已办结'
AND bv.vehicleState = '0002'
and bo.useOrgSid = a.useOrgSid
and bm.modelSid = a.modelSid
and bm.modelConfigSid = a.modelConfigSid
and bs.saleOrderSid is null
and bs.busSid is null
and bo.contractNo = a.contractNo) as ssscount
FROM (
SELECT count(bov.id) AS scount,

35
yxt-as-ui/src/api/subjects/subjects.js

@ -0,0 +1,35 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/as/v1/asservicesubject/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
fetchBySid: function(data) {
return request({
url: '/as/v1/asservicesubject/fetchDetailsBySid/' + data,
method: 'get'
})
},
saveOrUpdate: function(data) {
return request({
url: '/as/v1/asservicesubject/save',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
deleteBySids: function(data) {
return request({
url: '/as/v1/asservicesubject/delBySids',
method: 'DELETE',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
}

36
yxt-as-ui/src/api/team/team.js

@ -0,0 +1,36 @@
import request from '@/utils/request'
export default {
// 查询分页列表
listPage: function(params) {
return request({
url: '/as/v1/asservicegroup/listPage',
method: 'post',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
fetchBySid: function(data) {
return request({
url: '/as/v1/asservicegroup/fetchDetailsBySid/' + data,
method: 'get'
})
},
saveOrUpdate: function(data) {
return request({
url: '/as/v1/asservicegroup/save',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
deleteBySids: function(data) {
return request({
url: '/as/v1/asservicegroup/delBySids',
method: 'DELETE',
data: data,
headers: { 'Content-Type': 'application/json' }
})
}
}

16
yxt-as-ui/src/router/index.js

@ -75,6 +75,22 @@ export const constantRoutes = [
}
]
},
{
path: '/team',
component: Layout,
redirect: '/team',
meta: {
title: '班组管理'
},
children: [
{
path: '/team/team',
component: () => import('@/views/team/team.vue'),
name: 'Team',
meta: { title: '班组管理', noCache: true }
}
]
},
{
path: '/maintenanceitem',
component: Layout,

3
yxt-as-ui/src/views/additionitem/additionitem.vue

@ -110,6 +110,7 @@ export default {
dialogVisible: false,
formobj: {
orgPath: '',
createBySid: '',
sid: '',
sortNo: '',
aitemCode: '',
@ -253,6 +254,7 @@ export default {
})
},
handleConfirm() {
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.saveOrUpdate(this.formobj).then((resp) => {
if (resp.success) {
@ -266,6 +268,7 @@ export default {
this.dialogVisible = false
this.formobj = {
orgPath: '',
createBySid: '',
sid: '',
sortNo: '',
aitemCode: '',

1
yxt-as-ui/src/views/maintenanceitem/maintenanceitemAdd.vue

@ -215,6 +215,7 @@ export default {
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.saveOrUpdate(this.formobj).then((res) => {
if (res.success) {

14
yxt-as-ui/src/views/profession/profession.vue

@ -9,9 +9,6 @@
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="门店">
<el-input v-model="listQuery.params.useOrgName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="工种">
<el-input v-model="listQuery.params.serviceTypeName" placeholder="" clearable/>
</el-form-item>
@ -41,7 +38,7 @@
<el-table-column prop="serviceTypeName" label="类别名称" align="center" />
<el-table-column prop="percentageRate" label="提成比例" align="center" />
<el-table-column prop="percentageAmount" label="提成金额" align="center" />
<el-table-column prop="useOrgName" label="门店" align="center" />
<el-table-column prop="createOrgName" label="门店" align="center" />
</el-table>
</div>
<!--End 主页面主要部分-->
@ -108,6 +105,7 @@ export default {
dialogVisible: false,
formobj: {
orgPath: '',
createBySid: '',
sid: '',
sortNo: '',
serviceTypeCode: '',
@ -152,7 +150,7 @@ export default {
size: 10,
total: 0,
params: {
useOrgName: '',
orgPath: '',
serviceTypeName: '',
store: ''
}
@ -209,6 +207,7 @@ export default {
//
getList() {
this.listLoading = true
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
@ -232,7 +231,7 @@ export default {
size: 10,
total: 0,
params: {
useOrgName: '',
orgPath: '',
serviceTypeName: '',
store: ''
}
@ -251,10 +250,12 @@ export default {
})
},
handleConfirm() {
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.saveOrUpdate(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.getList()
this.handleClose()
}
})
@ -263,6 +264,7 @@ export default {
this.dialogVisible = false
this.formobj = {
orgPath: '',
createBySid: '',
sid: '',
sortNo: '',
serviceTypeCode: '',

319
yxt-as-ui/src/views/subjects/subjects.vue

@ -0,0 +1,319 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="科目管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<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" label-width="100px" class="tab-header">
<el-form-item label="科目">
<el-input v-model="listQuery.params.subjectName" placeholder="" clearable/>
</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="handleReset">重置</el-button>
</div>
</div>
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">科目列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" :border="true" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="操作" width="180px" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
</template>
</el-table-column>
<el-table-column prop="subjectName" label="科目名称" align="center" />
<el-table-column prop="subjectType" label="类型" align="center" />
<el-table-column prop="sortNo" label="排序" align="center" />
<el-table-column prop="createOrgName" label="门店" align="center" />
</el-table>
</div>
<!--End 主页面主要部分-->
<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>
<!--End查询列表部分-->
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="70%">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">科目名称</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.subjectName" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">科目编码</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.subjectCode" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<div class="span-sty">科目类型</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.subjectType" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">排序</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.sortNo" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button size="small" @click="handleClose">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/subjects/subjects'
export default {
name: 'Subjects',
components: {
Pagination,
pageye,
ButtonBar
},
data() {
return {
dialogVisible: false,
formobj: {
orgPath: '',
sid: '',
sortNo: '',
subjectCode: '',
subjectName: '',
subjectType: '',
useOrgSid: '',
createOrgSid: '',
createBySid: ''
},
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
listLoading: false,
//
listQuery: {
current: 1,
size: 10,
total: 0,
params: {
orgPath: '',
subjectName: '',
store: ''
}
}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
orgPath: '',
subjectName: '',
store: ''
}
}
this.getList()
},
toAdd() {
this.dialogVisible = true
},
toEdit(row) {
this.dialogVisible = true
req.fetchBySid(row.sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
}
})
},
handleConfirm() {
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.saveOrUpdate(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.getList()
this.handleClose()
}
})
},
handleClose() {
this.dialogVisible = false
this.formobj = {
orgPath: '',
sid: '',
sortNo: '',
subjectCode: '',
subjectName: '',
subjectType: '',
useOrgSid: '',
createOrgSid: '',
createBySid: ''
}
},
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
//
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.span-sty {
width: 80px !important;
}
.addinputInfo {
margin-left: 75px !important;
}
</style>

304
yxt-as-ui/src/views/team/team.vue

@ -0,0 +1,304 @@
<template>
<div class="app-container">
<!--列表页面-->
<div v-show="viewState == 1">
<button-bar view-title="班组管理" ref="btnbar" :btndisabled="btndisabled" @btnhandle="btnHandle"/>
<!--Start查询列表部分-->
<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" label-width="100px" class="tab-header">
<el-form-item label="班组名称">
<el-input v-model="listQuery.params.groupName" placeholder="" clearable/>
</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="handleReset">重置</el-button>
</div>
</div>
</div>
<!--End查询列表部分-->
<div class="listtop">
<div class="tit">班组列表</div>
<pageye v-show="list.length > 0" :total="listQuery.total" :page.sync="listQuery.current" :limit.sync="listQuery.size" class="pagination" @pagination="getList"/>
</div>
<!--Start 主页面主要部分 -->
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" :border="true" style="width: 100%;" @selection-change="handleSelectionChange">
<el-table-column type="selection" align="center" width="50"/>
<el-table-column label="序号" type="index" width="80" :index="indexMethod" align="center"/>
<el-table-column label="操作" width="180px" align="center">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">编辑</el-button>
</template>
</el-table-column>
<el-table-column prop="groupName" label="班组名称" align="center" />
<el-table-column prop="sortNo" label="排序" align="center" />
<el-table-column prop="createOrgName" label="门店" align="center" />
</el-table>
</div>
<!--End 主页面主要部分-->
<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>
<!--End查询列表部分-->
</div>
</div>
<el-dialog :visible.sync="dialogVisible" width="70%">
<el-form ref="form_obj" :model="formobj" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<div class="span-sty">班组名称</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.groupName" clearable placeholder="" /></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty">排序</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.sortNo" clearable placeholder="" /></el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button size="small" @click="handleClose">取消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import req from '@/api/team/team'
export default {
name: 'Team',
components: {
Pagination,
pageye,
ButtonBar
},
data() {
return {
dialogVisible: false,
formobj: {
orgPath: '',
sid: '',
sortNo: '',
groupName: '',
useOrgSid: '',
createOrgSid: '',
createBySid: ''
},
btndisabled: false,
btnList: [
{
type: 'primary',
size: 'small',
icon: 'plus',
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'danger',
size: 'small',
icon: 'del',
btnKey: 'doDel',
btnLabel: '删除'
},
{
type: 'info',
size: 'small',
icon: 'cross',
btnKey: 'doClose',
btnLabel: '关闭'
}
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 1, // 1 2 3 4
tableKey: 0,
list: [],
sids: [], // SIDs
listLoading: false,
//
listQuery: {
current: 1,
size: 10,
total: 0,
params: {
orgPath: '',
groupName: '',
store: ''
}
}
}
},
created() {
//
this.getList()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
if (this.isSearchShow) {
this.searchxianshitit = '隐藏查询条件'
} else {
this.searchxianshitit = '显示查询条件'
}
},
btnHandle(btnKey) {
console.log('XXXXXXXXXXXXXXX ' + btnKey)
switch (btnKey) {
case 'toAdd':
this.toAdd()
break
case 'doDel':
this.doDel()
break
case 'doClose':
this.doClose()
break
default:
break
}
},
// sid
handleSelectionChange(row) {
const aa = []
row.forEach(element => {
aa.push(element.sid)
})
this.sids = aa
},
//
indexMethod(index) {
var pagestart = (this.listQuery.current - 1) * this.listQuery.size
var pageindex = index + 1 + pagestart
return pageindex
},
//
getList() {
this.listLoading = true
this.listQuery.params.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.listPage(this.listQuery).then(response => {
this.listLoading = false
if (response.success) {
this.list = response.data.records
this.listQuery.total = response.data.total
} else {
this.list = []
this.listQuery.total = 0
}
})
},
//
handleFilter() {
this.listQuery.current = 1
this.getList()
},
//
handleReset() {
this.listQuery = {
current: 1,
size: 10,
total: 0,
params: {
orgPath: '',
groupName: '',
store: ''
}
}
this.getList()
},
toAdd() {
this.dialogVisible = true
},
toEdit(row) {
this.dialogVisible = true
req.fetchBySid(row.sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
}
})
},
handleConfirm() {
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.orgPath = window.sessionStorage.getItem('defaultOrgPath')
req.saveOrUpdate(this.formobj).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.getList()
this.handleClose()
}
})
},
handleClose() {
this.dialogVisible = false
this.formobj = {
orgPath: '',
sid: '',
sortNo: '',
groupName: '',
useOrgSid: '',
createOrgSid: '',
createBySid: ''
}
},
//
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })
return
}
const tip = '请确认是否删除所选 ' + this.sids.length + ' 条记录?'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.deleteBySids(this.sids).then(resp => {
if (resp.success) {
this.$message({ type: 'success', message: resp.msg, showClose: true })
}
this.getList()
loading.close()
}).catch(e => {
loading.close()
})
}).catch(() => {
})
},
//
resetState() {
this.viewState = 1
},
doClose() {
this.$store.dispatch('tagsView/delView', this.$route)
this.$router.go(-1)
}
}
}
</script>
<style scoped>
.span-sty {
width: 80px !important;
}
.addinputInfo {
margin-left: 75px !important;
}
</style>

6
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairinventorybill/AsBusrepairInventorybillDto.java

@ -32,10 +32,8 @@ public class AsBusrepairInventorybillDto {
private String warehouseManagerSid;
@ApiModelProperty("库管操作人")
private String warehouseManager;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
private List<AsBusrepairInventorybillDetailDto> detailList = new ArrayList<>();
private String orgPath;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicegroup/AsServiceGroupDto.java

@ -51,6 +51,8 @@ public class AsServiceGroupDto implements Dto {
private String sid; // sid
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("班组名称")
private String groupName;
@ApiModelProperty("排序")

9
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicegroup/AsServiceGroupQuery.java

@ -49,13 +49,8 @@ import lombok.Data;
@ApiModel(value = "班组 查询条件", description = "班组 查询条件")
public class AsServiceGroupQuery implements Query {
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("班组名称")
private String groupName;
@ApiModelProperty("排序")
private Integer sortNo;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicegroup/AsServiceGroupVo.java

@ -55,4 +55,6 @@ public class AsServiceGroupVo implements Vo {
private String groupName;
@ApiModelProperty("排序")
private Integer sortNo;
@ApiModelProperty("门店")
private String createOrgName;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicesubject/AsServiceSubjectDto.java

@ -51,6 +51,8 @@ public class AsServiceSubjectDto implements Dto {
private String sid; // sid
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("科目名称")
private String subjectName;
@ApiModelProperty("科目编码")

13
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicesubject/AsServiceSubjectQuery.java

@ -49,17 +49,8 @@ import lombok.Data;
@ApiModel(value = "科目 查询条件", description = "科目 查询条件")
public class AsServiceSubjectQuery implements Query {
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("科目名称")
private String subjectName;
@ApiModelProperty("科目编码")
private String subjectCode;
@ApiModelProperty("科目类型")
private String subjectType;
@ApiModelProperty("排序")
private Integer sortNo;
@ApiModelProperty("使用组织sid")
private String useOrgSid;
@ApiModelProperty("创建组织sid")
private String createOrgSid;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicesubject/AsServiceSubjectVo.java

@ -59,4 +59,6 @@ public class AsServiceSubjectVo implements Vo {
private String subjectType;
@ApiModelProperty("排序")
private Integer sortNo;
@ApiModelProperty("门店")
private String createOrgName;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicetype/AsServiceTypeDto.java

@ -53,6 +53,8 @@ public class AsServiceTypeDto implements Dto {
private String sid; // sid
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("服务类别名称")
private String serviceTypeName;
@ApiModelProperty("服务类别编码")

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicetype/AsServiceTypeQuery.java

@ -51,8 +51,8 @@ import java.math.BigDecimal;
@ApiModel(value = "服务类别-工种 查询条件", description = "服务类别-工种 查询条件")
public class AsServiceTypeQuery implements Query {
@ApiModelProperty("门店")
private String store;
@ApiModelProperty("组织全路径")
private String orgPath;
@ApiModelProperty("服务类别名称")
private String serviceTypeName;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asservicetype/AsServiceTypeVo.java

@ -62,5 +62,5 @@ public class AsServiceTypeVo implements Vo {
@ApiModelProperty("提成金额")
private BigDecimal percentageAmount;
@ApiModelProperty("门店")
private String store;
private String createOrgName;
}

12
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairinventorybill/AsBusrepairInventorybillService.java

@ -11,6 +11,7 @@ import com.yxt.anrui.as.api.asbusrepairinventorybill.AsBusrepairInventorybillVo;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetail;
import com.yxt.anrui.as.api.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailDto;
import com.yxt.anrui.as.biz.asbusrepairinventorybilldetail.AsBusrepairInventorybillDetailService;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDetailDto;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillDto;
import com.yxt.anrui.as.feign.wms.wmsinventorybill.WmsInventoryBillFeign;
@ -23,6 +24,7 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@ -39,8 +41,10 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
@Autowired
private AsBusrepairInventorybillDetailService asBusrepairInventorybillDetailService;
@Autowired
@Resource
private WmsInventoryBillFeign wmsInventoryBillFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
/**
* 维修出/退库分页列表
@ -75,6 +79,12 @@ public class AsBusrepairInventorybillService extends MybatisBaseService<AsBusrep
if (!detailList.isEmpty()) {
asBusrepairInventorybillDetailService.saveOrUpdateDetail(detailList, sid);
}
String orgPath = dto.getOrgPath();
if(StringUtils.isNotBlank(orgPath)){
String useOrgSid =sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
asBusrepairInventorybill.setCreateOrgSid(useOrgSid);
asBusrepairInventorybill.setUseOrgSid(useOrgSid);
}
baseMapper.insert(asBusrepairInventorybill);
} else {
AsBusrepairInventorybill asBusrepairInventorybill = fetchBySid(sid);

2
yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicegroup/AsServiceGroupRest.java

@ -76,7 +76,7 @@ public class AsServiceGroupRest{
}
@ApiOperation("根据sid批量删除")
@PostMapping("/delBySids")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
asServiceGroupService.delBySids(sids);

27
yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicegroup/AsServiceGroupService.java

@ -28,6 +28,9 @@ package com.yxt.anrui.as.biz.asservicegroup;
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.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -39,6 +42,7 @@ import com.yxt.anrui.as.api.asservicegroup.AsServiceGroupVo;
import com.yxt.anrui.as.api.asservicegroup.AsServiceGroupDetailsVo;
import com.yxt.anrui.as.api.asservicegroup.AsServiceGroupDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -56,16 +60,20 @@ import org.springframework.stereotype.Service;
*/
@Service
public class AsServiceGroupService extends MybatisBaseService<AsServiceGroupMapper, AsServiceGroup> {
private QueryWrapper<AsServiceGroup> createQueryWrapper(AsServiceGroupQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<AsServiceGroup> qw = new QueryWrapper<>();
return qw;
}
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
public PagerVo<AsServiceGroupVo> listPageVo(PagerQuery<AsServiceGroupQuery> pq) {
AsServiceGroupQuery query = pq.getParams();
QueryWrapper<AsServiceGroup> qw = createQueryWrapper(query);
QueryWrapper<AsServiceGroup> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getGroupName())){
qw.like("groupName",query.getGroupName());
}
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData();
qw.eq("createOrgSid",createOrgSid);
IPage<AsServiceGroup> page = PagerUtil.queryToPage(pq);
IPage<AsServiceGroupVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<AsServiceGroupVo> p = PagerUtil.pageToVo(pagging, null);
@ -75,6 +83,11 @@ public class AsServiceGroupService extends MybatisBaseService<AsServiceGroupMapp
public void saveOrUpdateDto(AsServiceGroupDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
String orgPath = dto.getOrgPath();
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(createOrgSid).getData();
dto.setCreateOrgSid(createOrgSid);
dto.setCreateOrgName(sysOrganizationVo.getName());
this.insertByDto(dto);
return;
}

27
yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicesubject/AsServiceSubjectService.java

@ -28,6 +28,9 @@ package com.yxt.anrui.as.biz.asservicesubject;
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.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
@ -39,6 +42,7 @@ import com.yxt.anrui.as.api.asservicesubject.AsServiceSubjectVo;
import com.yxt.anrui.as.api.asservicesubject.AsServiceSubjectDetailsVo;
import com.yxt.anrui.as.api.asservicesubject.AsServiceSubjectDto;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
/**
@ -56,16 +60,20 @@ import org.springframework.stereotype.Service;
*/
@Service
public class AsServiceSubjectService extends MybatisBaseService<AsServiceSubjectMapper, AsServiceSubject> {
private QueryWrapper<AsServiceSubject> createQueryWrapper(AsServiceSubjectQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<AsServiceSubject> qw = new QueryWrapper<>();
return qw;
}
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
public PagerVo<AsServiceSubjectVo> listPageVo(PagerQuery<AsServiceSubjectQuery> pq) {
AsServiceSubjectQuery query = pq.getParams();
QueryWrapper<AsServiceSubject> qw = createQueryWrapper(query);
QueryWrapper<AsServiceSubject> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getSubjectName())){
qw.like("subjectName",query.getSubjectName());
}
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData();
qw.eq("createOrgSid",createOrgSid);
IPage<AsServiceSubject> page = PagerUtil.queryToPage(pq);
IPage<AsServiceSubjectVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<AsServiceSubjectVo> p = PagerUtil.pageToVo(pagging, null);
@ -75,6 +83,11 @@ public class AsServiceSubjectService extends MybatisBaseService<AsServiceSubject
public void saveOrUpdateDto(AsServiceSubjectDto dto){
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
String orgPath = dto.getOrgPath();
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
SysOrganizationVo sysOrganizationVo = sysOrganizationFeign.fetchBySid(createOrgSid).getData();
dto.setCreateOrgSid(createOrgSid);
dto.setCreateOrgName(sysOrganizationVo.getName());
this.insertByDto(dto);
return;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/biz/asservicetype/AsServiceTypeService.java

@ -72,6 +72,8 @@ public class AsServiceTypeService extends MybatisBaseService<AsServiceTypeMapper
if (StringUtils.isNotBlank(query.getServiceTypeName())){
qw.like("serviceTypeName", query.getServiceTypeName());
}
String createOrgSid = sysStaffOrgFeign.getOrgSidByPath(query.getOrgPath()).getData();
qw.eq("createOrgSid",createOrgSid);
IPage<AsServiceType> page = PagerUtil.queryToPage(pq);
IPage<AsServiceTypeVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<AsServiceTypeVo> p = PagerUtil.pageToVo(pagging, null);

Loading…
Cancel
Save