From bc2303c124ba9f9c66ea418c3d019f6c982ae976 Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Mon, 11 Mar 2024 10:17:54 +0800 Subject: [PATCH 1/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=B7=A5=E7=A7=8D?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- yxt-as-ui/src/api/profession/profession.js | 35 ++ yxt-as-ui/src/views/profession/profession.vue | 326 ++++++++++++++++++ 2 files changed, 361 insertions(+) create mode 100644 yxt-as-ui/src/api/profession/profession.js create mode 100644 yxt-as-ui/src/views/profession/profession.vue diff --git a/yxt-as-ui/src/api/profession/profession.js b/yxt-as-ui/src/api/profession/profession.js new file mode 100644 index 0000000000..d2a6e25e45 --- /dev/null +++ b/yxt-as-ui/src/api/profession/profession.js @@ -0,0 +1,35 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/as/v1/asservicetype/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + fetchBySid: function(data) { + return request({ + url: '/as/v1/asservicetype/fetchDetailsBySid/' + data, + method: 'get' + }) + }, + saveOrUpdate: function(data) { + return request({ + url: '/as/v1/asservicetype/save', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + deleteBySids: function(data) { + return request({ + url: '/as/v1/asservicetype/delBySids', + method: 'DELETE', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + } +} diff --git a/yxt-as-ui/src/views/profession/profession.vue b/yxt-as-ui/src/views/profession/profession.vue new file mode 100644 index 0000000000..5df2ade69c --- /dev/null +++ b/yxt-as-ui/src/views/profession/profession.vue @@ -0,0 +1,326 @@ + + + + + + + + + {{ searchxianshitit }} + + + + + + + + + + + 查询 + 重置 + + + + + + 工种列表 + + + + + + + + + + 编辑 + + + + + + + + + + + + + + + + + + + + + + + 类别名称 + + + + 类别编码 + + + + + + 提成比例 + + + + 提成金额 + + + + + + 排序 + + + + + + + + + + + From 90bac4f473b7674a007c6c0bdd1552b6b406cbfe Mon Sep 17 00:00:00 2001 From: dimengzhe Date: Mon, 11 Mar 2024 14:54:52 +0800 Subject: [PATCH 2/9] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/finbillapplication/BillFileVo.java | 1 + .../FinBillApplicationMapper.java | 2 + .../FinBillApplicationMapper.xml | 4 + .../FinBillApplicationService.java | 146 +++++++++++------- .../src/main/resources/ftl/invoiceApply.ftl | 4 +- 5 files changed, 100 insertions(+), 57 deletions(-) diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/BillFileVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/BillFileVo.java index bf834c1b92..57d347e3a3 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/BillFileVo.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/BillFileVo.java @@ -20,4 +20,5 @@ public class BillFileVo { private String openPrice; @ApiModelProperty("发票类型") private String type; + private String vinNo; } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java index 014fd5a086..5d025c613a 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.java @@ -118,4 +118,6 @@ public interface FinBillApplicationMapper extends BaseMapper BaseVehicle selectByVinSid(String vehSid); CrmCustomerTemp selectByCustomerSid(String openTickSid); + + BaseVehicle selectVinNoByVinSid(String vehSid); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml index 64e8eccd78..49c7665c5e 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationMapper.xml @@ -219,4 +219,8 @@ select * from anrui_crm.crm_customer_temp where sid = #{openTickSid} + + + select * from anrui_base.base_vehicle where sid = #{vehSid} + \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java index ff089386fe..d39952a9ae 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java @@ -84,6 +84,7 @@ import com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerVo; import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicle; import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleDto; import com.yxt.anrui.fin.api.finbillvehicle.FinBillVehicleVo; +import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicing; import com.yxt.anrui.fin.api.fincompanyinvoicing.FinCompanyInvoicingDetailsVo; import com.yxt.anrui.fin.api.finfundscarriedforwardapply.FinFundsCarriedForwardApply; import com.yxt.anrui.fin.api.finvehicleinvoice.FinVehicleInvoiceDto; @@ -131,6 +132,7 @@ import com.yxt.messagecenter.api.message.*; import com.yxt.messagecenter.api.messagelist.MessageList; import com.yxt.messagecenter.api.messagelist.MessageListFeign; import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.formula.functions.T; import org.apache.tomcat.util.threads.ThreadPoolExecutor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -145,6 +147,7 @@ import java.util.*; import java.util.concurrent.*; import java.util.stream.Collectors; +import static java.util.Collections.singletonList; import static java.util.Comparator.comparing; /** @@ -731,31 +734,43 @@ public class FinBillApplicationService extends MybatisBaseService 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()); } - if (loanSolutions != null) { + /* if (loanSolutions != null) { if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) { billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); } - } + }*/ + billFileVo.setOpenPrice(dto.getOneBillMoney()); billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型 - list.add(billFileVo); - + List vinNoString = new ArrayList<>(); List lllList = new ArrayList<>(); + BillFileVo finalBillFileVo = billFileVo; sameOpenTickSidList.forEach(v -> { + //车架号 + BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid()); + /* if(baseVehicle != null){ + vinNoString.add(baseVehicle.getVinNo()); + }*/ List finBillTrailers = dto.getFinBillTrailers(); finBillTrailers.removeAll(Collections.singleton(null)); finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList()); lllList.addAll(finBillTrailers); + /* String vinNo = String.join(",",vinNoString); + billFileVo.setVinNo(vinNo);*/ + list.add(finalBillFileVo); }); + + //==========================主车结束 Map carNameMap = new HashMap<>(); if (!lllList.isEmpty()) { for (int i = 0; i < lllList.size(); i++) { + List trailerVinString = new ArrayList<>(); FinBillTrailerDto finBillTrailerDto = lllList.get(i); billFileVo = new BillFileVo(); BaseTrailer baseTrailer = baseMapper.selectByTrailerNo(finBillTrailerDto.getGcVinNo()); @@ -763,36 +778,42 @@ public class FinBillApplicationService extends MybatisBaseService ssList = castList(carNameMap.get(carName),String.class); + String trailerVinNo = String.join(",",ssList); + billFileVo1.setOpenPrice(Arrays.asList(carName.split("#")).get(1)); + billFileVo1.setCarName(Arrays.asList(carName.split("#")).get(0)); + billFileVo1.setVinNo(trailerVinNo); } } - } + }*/ map.put("list", list); map.put("name", finBillVehicleDto.getOpenTickName()); String date = DateUtil.today(); @@ -803,7 +824,8 @@ public class FinBillApplicationService extends MybatisBaseService 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());//户籍地址 + + if("1".equals(busSalesOrder.getPayTypeKey())){ + if (loanSolutions != null) { + if (!dto.getOneBillMoney().equals(loanSolutions.getMainVehicleAmount())) { + String remarks = ""; + String date = DateUtil.today(); + List 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> mapResultBean = commonContractFeign.getModelMap(filemap); + checkMap = mapResultBean.getData(); + //生成新车空白合同 + checkMap.put("totalPrice", ""); + checkMap.put("priceRemarks", ""); + checkMap.put("depositTotal", ""); + checkMap.put("createOrgName", ""); + checkMap.put("payTypeKey", busSalesOrder.getPayTypeKey()); } - filemap.put("invoiceType", dto.getOpenTickTypeValue());//开票类型 - remarks = "数量" + finBillVehicles.size() + "台,单台成交价: 元。"; - filemap.put("remarks", remarks); - filemap.put("busSid", busSalesOrder.getSid()); - ResultBean> 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 { @@ -5243,4 +5268,15 @@ public class FinBillApplicationService extends MybatisBaseService castList(Object obj, Class clazz){ + List result = new ArrayList<>(); + if(obj instanceof List>){ + for (Object o : (List>) obj){ + result.add(clazz.cast(o)); + } + return result; + } + return new ArrayList<>(); + } } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/resources/ftl/invoiceApply.ftl b/anrui-fin/anrui-fin-biz/src/main/resources/ftl/invoiceApply.ftl index b0c8d38a94..9ed854be92 100644 --- a/anrui-fin/anrui-fin-biz/src/main/resources/ftl/invoiceApply.ftl +++ b/anrui-fin/anrui-fin-biz/src/main/resources/ftl/invoiceApply.ftl @@ -998,7 +998,7 @@ - 数量 + 车架号 @@ -1194,7 +1194,7 @@ - ${car.num!} + ${car.vinNo!} From a25171354b21af9599364d71a90768403342d14f Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Mon, 11 Mar 2024 15:10:35 +0800 Subject: [PATCH 3/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=BB=B4=E4=BF=AE?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/maintenanceitem/maintenanceitem.js | 57 ++++ yxt-as-ui/src/router/index.js | 48 +++ .../views/maintenanceitem/maintenanceitem.vue | 282 ++++++++++++++++++ .../maintenanceitem/maintenanceitemAdd.vue | 278 +++++++++++++++++ .../maintenanceitem/maintenanceitemInfo.vue | 183 ++++++++++++ 5 files changed, 848 insertions(+) create mode 100644 yxt-as-ui/src/api/maintenanceitem/maintenanceitem.js create mode 100644 yxt-as-ui/src/views/maintenanceitem/maintenanceitem.vue create mode 100644 yxt-as-ui/src/views/maintenanceitem/maintenanceitemAdd.vue create mode 100644 yxt-as-ui/src/views/maintenanceitem/maintenanceitemInfo.vue diff --git a/yxt-as-ui/src/api/maintenanceitem/maintenanceitem.js b/yxt-as-ui/src/api/maintenanceitem/maintenanceitem.js new file mode 100644 index 0000000000..67de01bafc --- /dev/null +++ b/yxt-as-ui/src/api/maintenanceitem/maintenanceitem.js @@ -0,0 +1,57 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/as/v1/AsServiceItem/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + saveOrUpdate: function(data) { + return request({ + url: '/as/v1/AsServiceItem/saveServiceItem', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + fetchBySid: function(data) { + return request({ + url: '/as/v1/AsServiceItem/fetchDetails/' + data, + method: 'get' + }) + }, + deleteBySids: function(data) { + return request({ + url: '/as/v1/AsServiceItem/delBySids', + method: 'DELETE', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + // 根据分公司全路径sid查询本分公司下的品牌,再根据品牌查询相应的关联车型信息 + getVehModel: function(data) { + return request({ + url: '/as/v1/AsServiceItem/getVehModel', + method: 'get', + params: data + }) + }, + getManufacturers: function(data) { + return request({ + url: '/as/v1/AsServiceItem/getManufacturers', + method: 'get', + params: data + }) + }, + getServiceType: function(data) { + return request({ + url: '/as/v1/AsServiceItem/getServiceType', + method: 'get', + params: data + }) + } +} diff --git a/yxt-as-ui/src/router/index.js b/yxt-as-ui/src/router/index.js index 41a69e52e5..af0f079c4d 100644 --- a/yxt-as-ui/src/router/index.js +++ b/yxt-as-ui/src/router/index.js @@ -42,6 +42,54 @@ export const constantRoutes = [ component: () => import('@/views/404'), hidden: true + }, + { + path: '/profession', + component: Layout, + redirect: '/profession', + meta: { + title: '工种管理' + }, + children: [ + { + path: '/profession/profession', + component: () => import('@/views/profession/profession.vue'), + name: 'Profession', + meta: { title: '工种管理', noCache: true } + } + ] + }, + { + path: '/subjects', + component: Layout, + redirect: '/subjects', + meta: { + title: '科目管理' + }, + children: [ + { + path: '/subjects/subjects', + component: () => import('@/views/subjects/subjects.vue'), + name: 'Subjects', + meta: { title: '科目管理', noCache: true } + } + ] + }, + { + path: '/maintenanceitem', + component: Layout, + redirect: '/maintenanceitem', + meta: { + title: '维修项目管理' + }, + children: [ + { + path: '/maintenanceitem/maintenanceitem', + component: () => import('@/views/maintenanceitem/maintenanceitem.vue'), + name: 'MaintenanceItem', + meta: { title: '维修项目管理', noCache: true } + } + ] }, // 404 page must be placed at the end !!! // { path: '*', redirect: '/404', hidden: true } diff --git a/yxt-as-ui/src/views/maintenanceitem/maintenanceitem.vue b/yxt-as-ui/src/views/maintenanceitem/maintenanceitem.vue new file mode 100644 index 0000000000..26ba7a43f8 --- /dev/null +++ b/yxt-as-ui/src/views/maintenanceitem/maintenanceitem.vue @@ -0,0 +1,282 @@ + + + + + + + + + {{ searchxianshitit }} + + + + + + + + + + + + + + 查询 + 重置 + + + + + + 维修项目列表 + + + + + + + + + + 办理 + 查看 + + + + + + + + + + + + + + + + {{ scope.row.isReserve == '1' ? '是' : '否' }} + + + + + + + + + + + + + + + + + + + + + + + diff --git a/yxt-as-ui/src/views/maintenanceitem/maintenanceitemAdd.vue b/yxt-as-ui/src/views/maintenanceitem/maintenanceitemAdd.vue new file mode 100644 index 0000000000..79b69f9a01 --- /dev/null +++ b/yxt-as-ui/src/views/maintenanceitem/maintenanceitemAdd.vue @@ -0,0 +1,278 @@ + + + + + {{ viewTitle }} + + 保存 + 关闭 + + + + + + + *项目名称 + + + + 拼音缩写 + + + + *工种 + + + + + + + + + + 车型 + + + + + + + + 厂家 + + + + + + + + 备注 + + + + + + 排序 + + + + 工时单价 + + + + 工时数 + + + + + + 销售价 + + + + 考核工时 + + + + 成本 + + + + + + 预约项目 + + + 是 + 否 + + + + + 洗车项目 + + + 是 + 否 + + + + + + + + + + + + + + + diff --git a/yxt-as-ui/src/views/maintenanceitem/maintenanceitemInfo.vue b/yxt-as-ui/src/views/maintenanceitem/maintenanceitemInfo.vue new file mode 100644 index 0000000000..2a33b82ee8 --- /dev/null +++ b/yxt-as-ui/src/views/maintenanceitem/maintenanceitemInfo.vue @@ -0,0 +1,183 @@ + + + + + {{ viewTitle }} + + 关闭 + + + + + + + 项目名称 + {{ formobj.sitemName }} + + + 拼音缩写 + {{ formobj.sitemCode }} + + + 工种 + {{ formobj.serviceType }} + + + + + 车型 + {{ formobj.goodsModel }} + + + 厂家 + {{ formobj.manufacturer }} + + + 备注 + {{ formobj.remarks }} + + + + + 排序 + {{ formobj.sortNo }} + + + 工时单价 + {{ formobj.hourPrice }} + + + 工时数 + {{ formobj.hours }} + + + + + 销售价 + {{ formobj.price }} + + + 考核工时 + {{ formobj.examineHourPrice }} + + + 成本 + {{ formobj.cost }} + + + + + 预约项目 + {{ formobj.isReserve == '1' ? '是' : '否' }} + + + 洗车项目 + {{ formobj.isClean == '1' ? '是' : '否' }} + + + + + + + + + + + + + From db68fe75343e58f594697a8fe9396c69208a9d3f Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Mon, 11 Mar 2024 15:58:19 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PcSelBillVinNoPageVo.java | 11 +++++++ .../FinBillApplicationService.java | 32 ++++++++++++++++--- .../api/autoservice/invoiced/SelBillZcVo.java | 12 +++++++ 3 files changed, 51 insertions(+), 4 deletions(-) diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/PcSelBillVinNoPageVo.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/PcSelBillVinNoPageVo.java index 5276294210..570e67ffe1 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/PcSelBillVinNoPageVo.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/PcSelBillVinNoPageVo.java @@ -69,4 +69,15 @@ public class PcSelBillVinNoPageVo implements Vo { @ApiModelProperty("信审终审状态") @JsonProperty("xSState") private String xSState; + + @ApiModelProperty("开票类型value") + private String invoiceType; + @ApiModelProperty("开票类型key") + private String invoiceTypeKey; + @ApiModelProperty("开票名称sid") + private String openTickSid; + @ApiModelProperty("开票名称") + private String invoiceName; + @ApiModelProperty("开票信息") + private String invoiceInfo; } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java index ff089386fe..2e05912266 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java @@ -455,6 +455,32 @@ public class FinBillApplicationService extends MybatisBaseService zcHgzImages; From 0859122d9f4167d1a0766b966bd31f87dd023829 Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Mon, 11 Mar 2024 16:02:27 +0800 Subject: [PATCH 5/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=99=84=E5=8A=A0?= =?UTF-8?q?=E9=A1=B9=E7=9B=AE=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/additionitem/additionitem.js | 35 ++ yxt-as-ui/src/router/index.js | 16 + .../src/views/additionitem/additionitem.vue | 326 ++++++++++++++++++ 3 files changed, 377 insertions(+) create mode 100644 yxt-as-ui/src/api/additionitem/additionitem.js create mode 100644 yxt-as-ui/src/views/additionitem/additionitem.vue diff --git a/yxt-as-ui/src/api/additionitem/additionitem.js b/yxt-as-ui/src/api/additionitem/additionitem.js new file mode 100644 index 0000000000..35df6f409b --- /dev/null +++ b/yxt-as-ui/src/api/additionitem/additionitem.js @@ -0,0 +1,35 @@ +import request from '@/utils/request' + +export default { + // 查询分页列表 + listPage: function(params) { + return request({ + url: '/as/v1/AsServiceAttachItem/listPage', + method: 'post', + data: params, + headers: { 'Content-Type': 'application/json' } + }) + }, + saveOrUpdate: function(data) { + return request({ + url: '/as/v1/AsServiceAttachItem/saveAttachItem', + method: 'post', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + }, + fetchBySid: function(data) { + return request({ + url: '/as/v1/AsServiceAttachItem/fetchDetails/' + data, + method: 'get' + }) + }, + deleteBySids: function(data) { + return request({ + url: '/as/v1/AsServiceAttachItem/delBySids', + method: 'DELETE', + data: data, + headers: { 'Content-Type': 'application/json' } + }) + } +} diff --git a/yxt-as-ui/src/router/index.js b/yxt-as-ui/src/router/index.js index af0f079c4d..a77e076b75 100644 --- a/yxt-as-ui/src/router/index.js +++ b/yxt-as-ui/src/router/index.js @@ -90,6 +90,22 @@ export const constantRoutes = [ meta: { title: '维修项目管理', noCache: true } } ] + }, + { + path: '/additionitem', + component: Layout, + redirect: '/additionitem', + meta: { + title: '附加项目管理' + }, + children: [ + { + path: '/additionitem/additionitem', + component: () => import('@/views/additionitem/additionitem.vue'), + name: 'AdditionItem', + meta: { title: '附加项目管理', noCache: true } + } + ] }, // 404 page must be placed at the end !!! // { path: '*', redirect: '/404', hidden: true } diff --git a/yxt-as-ui/src/views/additionitem/additionitem.vue b/yxt-as-ui/src/views/additionitem/additionitem.vue new file mode 100644 index 0000000000..f6a49fbd2b --- /dev/null +++ b/yxt-as-ui/src/views/additionitem/additionitem.vue @@ -0,0 +1,326 @@ + + + + + + + + + {{ searchxianshitit }} + + + + + + + + 查询 + 重置 + + + + + + 附加项目列表 + + + + + + + + + + 编辑 + + + + + + + + + + + + + + + + + + + + + + + + 项目名称 + + + + 拼音缩写 + + + + + + 备注 + + + + 排序 + + + + + + 销售价 + + + + 成本 + + + + + + + + + + + From ceb663d3f4d72f08195d908f1e4d6c2185a1a0a6 Mon Sep 17 00:00:00 2001 From: yunuo970428 <405378304@qq.com> Date: Mon, 11 Mar 2024 16:13:31 +0800 Subject: [PATCH 6/9] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backups/finginvoiceapplyAdd.vue | 20 +++++++++---------- .../finginvoiceapplyEdit.vue | 20 +++++++++---------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyAdd.vue b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyAdd.vue index 2c02084865..5ab72b5da1 100644 --- a/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyAdd.vue +++ b/anrui-buscenter/anrui-finmanage-ui/src/views/anruifinmanagement/finginvoiceapply/backups/finginvoiceapplyAdd.vue @@ -71,7 +71,7 @@ 开票类型默认 - + @@ -79,14 +79,14 @@ 开票名称默认 - + - 维护开票信息 + 维护开票信息 @@ -109,14 +109,14 @@ - + - + @@ -427,11 +427,11 @@ export default { vehSid: e.vinSid, certificateStateValue: e.certificateState, certificateStateKey: e.certificateStateKey, - billTypeValue: '', - billTypeKey: '', - openTickName: '', - openTickSid: '', - openTickRemarks: '', + billTypeValue: e.invoiceType, + billTypeKey: e.invoiceTypeKey, + openTickName: e.invoiceName, + openTickSid: e.openTickSid, + openTickRemarks: e.invoiceInfo, xSState: e.xSState }) // 循环赋值挂车列表 diff --git a/anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyEdit.vue b/anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyEdit.vue index 20f5b465a7..7459d3fa35 100644 --- a/anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyEdit.vue +++ b/anrui-buscenter/anrui-finmanage-ui/src/views/workFlow/kaipiaoguanliFlow/finginvoiceapplyEdit.vue @@ -70,7 +70,7 @@ 开票类型默认 - + @@ -78,14 +78,14 @@ 开票名称默认 - + - 维护开票信息 + 维护开票信息 @@ -108,14 +108,14 @@ - + - + @@ -448,11 +448,11 @@ export default { vehSid: e.vinSid, certificateStateValue: e.certificateState, certificateStateKey: e.certificateStateKey, - billTypeValue: '', - billTypeKey: '', - openTickName: '', - openTickSid: '', - openTickRemarks: '', + billTypeValue: e.invoiceType, + billTypeKey: e.invoiceTypeKey, + openTickName: e.invoiceName, + openTickSid: e.openTickSid, + openTickRemarks: e.invoiceInfo, xSState: e.xSState }) // 循环赋值挂车列表 From eebff38f2fa87771e3992f960ab148492dc85308 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Mon, 11 Mar 2024 16:29:45 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LoanHomevisitPrepService.java | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java index 46d99efcae..2d25c11599 100644 --- a/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java +++ b/anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loanhomevisitprep/LoanHomevisitPrepService.java @@ -594,7 +594,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService urls = new ArrayList<>(); @@ -652,7 +652,7 @@ public class LoanHomevisitPrepService extends MybatisBaseService Date: Mon, 11 Mar 2024 16:36:58 +0800 Subject: [PATCH 8/9] =?UTF-8?q?=E6=B3=A8=E9=87=8A=E5=BC=80=E7=A5=A8?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/finbillapplication/DownloanVoUrl.java | 16 + .../FinBillApplicationFeign.java | 5 + .../FinBillApplicationFeignFallback.java | 5 + .../FinBillApplicationRest.java | 5 + .../FinBillApplicationService.java | 289 +++++++++++++++++- .../autoservice/invoiced/InvoicedFeign.java | 6 + .../invoiced/InvoicedFeignFallback.java | 5 + .../autoservice/invoiced/InvoicedRest.java | 5 + .../autoservice/invoiced/InvoicedService.java | 123 ++++++++ 9 files changed, 457 insertions(+), 2 deletions(-) create mode 100644 anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java new file mode 100644 index 0000000000..7965f5cfe8 --- /dev/null +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/DownloanVoUrl.java @@ -0,0 +1,16 @@ +package com.yxt.anrui.fin.api.finbillapplication; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @description: + * @author: dimengzhe + * @date: 2024/3/11 + **/ +@Data +public class DownloanVoUrl { + + @ApiModelProperty("整体附件下载地址") + private String allDownloadUrl; +} diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java index 6bd9723362..c12e5870d5 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeign.java @@ -274,4 +274,9 @@ public interface FinBillApplicationFeign { @GetMapping("/selectByCon") @ResponseBody ResultBean selectByCon(@RequestParam("contractNo") String contractNo); + + @ApiOperation("点击生成附件") + @PostMapping("/saveInvoicedApplyInfoPdf") + @ResponseBody + public ResultBean saveInvoicedApplyInfoPdf(@RequestBody FinBillApplicationDto dto); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java index 779b332140..b60a612990 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/finbillapplication/FinBillApplicationFeignFallback.java @@ -286,4 +286,9 @@ public class FinBillApplicationFeignFallback implements FinBillApplicationFeign public ResultBean selectByCon(String contractNo) { return null; } + + @Override + public ResultBean saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) { + return null; + } } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java index e2991da398..0366086c4e 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationRest.java @@ -345,4 +345,9 @@ public class FinBillApplicationRest implements FinBillApplicationFeign { public ResultBean selectByCon(String contractNo) { return finBillApplicationService.selectByCon(contractNo); } + + @Override + public ResultBean saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) { + return finBillApplicationService.saveInvoicedApplyInfoPdf(dto); + } } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java index 04e2bd9f68..8540d02b53 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java @@ -987,6 +987,278 @@ public class FinBillApplicationService extends MybatisBaseService filesList = new ArrayList<>(); + //根据合同号查询销售订单数据 + BusSalesOrder busSalesOrder = baseMapper.selectByContract(contractNo); + SolutionsDetailsVo loanSolutions = loanSolutionsFeign.selectDetailss(busSalesOrder.getSid()).getData(); + if ("1".equals(busSalesOrder.getPayTypeKey())) {//全款 + List finBillVehicles = dto.getFinBillVehicles(); + BusSalesOrderModel busSalesOrderModel = baseMapper.selectByOrderSid(busSalesOrder.getSid()); + BusSalesOrderPrice busSalesOrderPrice = baseMapper.selectByPrices(busSalesOrder.getSid()); + //按开票名称sid分组 + Map> groupedByOpenTickSid = finBillVehicles.stream() + .collect(Collectors.groupingBy(FinBillVehicleDto::getOpenTickSid)); + //遍历分组并组装每组的数据 + groupedByOpenTickSid.forEach((openTickSid, sameOpenTickSidList) -> { + Map map = new HashMap<>(); + Map carMap = new HashMap<>(); + Map filemap = new HashMap<>(); + Map checkMap = new HashMap<>(); + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = finCompanyInvoicingService.fetchDetailsVoBySid(openTickSid); + if (!openTickSid.equals(busSalesOrder.getAffiliatedCompanySid())) { + FinBillVehicleDto finBillVehicleDto = sameOpenTickSidList.get(0); + //生成开票申请书 + if (StringUtils.isNotBlank(busSalesOrder.getPurchaseSystemSid())) { + ResultBean invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); + if (invoicingDetailsVoResultBean.getData() != null) { + map.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); + } + } + map.put("contractNo", busSalesOrder.getContractNo()); + List 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()); + } + /* if (loanSolutions != null) { + if (StringUtils.isNotBlank(loanSolutions.getMainVehicleAmount())) { + billFileVo.setOpenPrice(loanSolutions.getMainVehicleAmount()); + } + }*/ + billFileVo.setOpenPrice(dto.getOneBillMoney()); + billFileVo.setType(finBillVehicleDto.getBillTypeValue());//开票类型 + List vinNoString = new ArrayList<>(); + List lllList = new ArrayList<>(); + BillFileVo finalBillFileVo = billFileVo; + sameOpenTickSidList.forEach(v -> { + //车架号 + BaseVehicle baseVehicle = baseMapper.selectVinNoByVinSid(v.getVehSid()); + /* if(baseVehicle != null){ + vinNoString.add(baseVehicle.getVinNo()); + }*/ + List finBillTrailers = dto.getFinBillTrailers(); + finBillTrailers.removeAll(Collections.singleton(null)); + finBillTrailers = finBillTrailers.stream().filter(vv -> vv.getVinNo().contains(v.getVinNo())).collect(Collectors.toList()); + lllList.addAll(finBillTrailers); + /* String vinNo = String.join(",",vinNoString); + billFileVo.setVinNo(vinNo);*/ + list.add(finalBillFileVo); + }); + + //==========================主车结束 + Map carNameMap = new HashMap<>(); + if (!lllList.isEmpty()) { + for (int i = 0; i < lllList.size(); i++) { + List trailerVinString = new ArrayList<>(); + FinBillTrailerDto 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(); + /* if (carNameMap.containsKey(carName)) { + carNameMap.put(carName, Arrays.asList(carNameMap.get(carName).toString()).add(baseTrailer.getVinNo())); + continue; + } else { + billFileVo.setType(busSalesOrder.getBillingType()); + billFileVo.setCarName(carName); + if (busSalesOrderModel != null) { + billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); + } + trailerVinString.add(baseTrailer.getVinNo()); + carNameMap.put(carName,trailerVinString); + list.add(billFileVo); + }*/ + billFileVo.setCarName(carName); + billFileVo.setVinNo(baseTrailer.getVinNo()); + billFileVo.setOpenPrice(finBillTrailerDto.getOneBillMoney()); + billFileVo.setPrice(busSalesOrderPrice.getSingleFinalPrice().toString()); + billFileVo.setType(finBillTrailerDto.getBillTypeValue()); + list.add(billFileVo); + } + } + } + } + /*if (!list.isEmpty()) { + for (int i = 0; i < list.size(); i++) { + BillFileVo billFileVo1 = list.get(i); + String carName = billFileVo1.getCarName(); + if (carNameMap.containsKey(carName)) { + List ssList = castList(carNameMap.get(carName),String.class); + String trailerVinNo = String.join(",",ssList); + billFileVo1.setOpenPrice(Arrays.asList(carName.split("#")).get(1)); + billFileVo1.setCarName(Arrays.asList(carName.split("#")).get(0)); + billFileVo1.setVinNo(trailerVinNo); + } + } + }*/ + map.put("list", list); + map.put("name", finBillVehicleDto.getOpenTickName()); + String date = DateUtil.today(); + List 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); + FinCompanyInvoicing finCompanyInvoicing = finCompanyInvoicingService.fetchBySid(openTickSid); + if (!"02".equals(finBillVehicleDto.getBillTypeKey()) && finCompanyInvoicing != 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 invoicingDetailsVoResultBean = finCompanyInvoicingService.getDetailsByUseOrgAndSystem(busSalesOrder.getUseOrgSid(), busSalesOrder.getPurchaseSystemSid()); + if (invoicingDetailsVoResultBean.getData() != null) { + carMap.put("createOrgName", invoicingDetailsVoResultBean.getData().getName()); + } + } + carMap.put("date", date); + List carContractListVos = new ArrayList<>(); + for (FinBillVehicleDto 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 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> 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(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); + + if (!map.isEmpty()) { + Future 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 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 finalCheckMap = checkMap; + if (!finalCheckMap.isEmpty()) { + Future 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())){//非担保、生成开票申请书和车辆登记合同 + /*LoanNoGuaranteeCreditReviewDetailsVo loanNoGuaranteeCreditReviewDetailsVo = loanNoGuaranteeCreditReviewFeign.selByBorrSid(busSalesOrderVehicle.getBorrowerSid()).getData(); + record.setInvoiceTypeKey(busSalesOrder.getBillingTypeKey()); + record.setInvoiceType(busSalesOrder.getBillingType()); + if ("1".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){ + record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getBorrowerName()); + }else if ("2".equals(loanNoGuaranteeCreditReviewDetailsVo.getType())){ + record.setInvoiceName(loanNoGuaranteeCreditReviewDetailsVo.getAffiliatedCompany()); + }*/ + + } + + } + if(StringUtils.isNotBlank(fileUrl)){ + FinBillApplication finBillApplication = fetchBySid(dto.getSid()); + finBillApplication.setFileUrl(fileUrl); + baseMapper.updateById(finBillApplication); + } + return fileUrl; + } + public String blackFile(Map map) { String ftl = ""; String name = ""; @@ -5277,8 +5549,8 @@ public class FinBillApplicationService extends MybatisBaseService(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy()); Future future1 = pool.submit(() -> { String fileUrl = getFileUrl(dto); + return fileUrl; }); } catch (Exception e) { e.printStackTrace(); log.error("生成文件失败:==========================" + e.getMessage()); }*/ +// String fileUrl = getFileUrlNew(dto); + String fileUrl = ""; + return fileUrl; } public List castList(Object obj, Class clazz){ @@ -5303,4 +5579,13 @@ public class FinBillApplicationService extends MybatisBaseService(); } + + public ResultBean saveInvoicedApplyInfoPdf(FinBillApplicationDto dto) { + ResultBean rb = ResultBean.fireFail(); + DownloanVoUrl downloanVoUrl = new DownloanVoUrl(); + ResultBean resultBean = saveOrUpdateDto(dto); + String contractNo = createContractNo(dto); + downloanVoUrl.setAllDownloadUrl(docPdfComponent.getPrefixTemplateUrl()+contractNo); + return rb.success().setData(downloanVoUrl); + } } \ No newline at end of file diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java index 275b7858f6..8efc5a5ffc 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeign.java @@ -1,5 +1,6 @@ package com.yxt.anrui.terminal.api.autoservice.invoiced; +import com.yxt.anrui.terminal.api.autoservice.arrearsTakeCar.AdvanceArrearsDto; import com.yxt.anrui.terminal.api.autoservice.invoiced.flowable.*; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; @@ -98,4 +99,9 @@ public interface InvoicedFeign { @GetMapping("/getFlowOperateTitleByKP") @ResponseBody ResultBean getFlowOperateTitleByKP(@SpringQueryMap InvoicedQuery query); + + @ApiOperation("点击生成附件") + @PostMapping("/saveInvoicedApplyInfoPdf") + @ResponseBody + public ResultBean saveInvoicedApplyInfoPdf(@RequestBody BillApplicationIInfoDto dto); } diff --git a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java index 7465251923..3c21cf45dc 100644 --- a/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java +++ b/anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/invoiced/InvoicedFeignFallback.java @@ -89,4 +89,9 @@ public class InvoicedFeignFallback implements InvoicedFeign { public ResultBean getFlowOperateTitleByKP(InvoicedQuery query) { return null; } + + @Override + public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) { + return null; + } } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java index 61f7fdab5c..8f4bd9d047 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedRest.java @@ -97,4 +97,9 @@ public class InvoicedRest implements InvoicedFeign { public ResultBean getFlowOperateTitleByKP(InvoicedQuery query) { return invoicedService.getFlowOperateTitleByKP(query); } + + @Override + public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) { + return invoicedService.saveInvoicedApplyInfoPdf(dto); + } } diff --git a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java index cc974981e8..fed6d69dd2 100644 --- a/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java +++ b/anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/invoiced/InvoicedService.java @@ -1116,4 +1116,127 @@ public class InvoicedService { } return rb.success(); } + + public ResultBean saveInvoicedApplyInfoPdf(BillApplicationIInfoDto dto) { + FinBillApplicationDto finBillApplicationDto = new FinBillApplicationDto(); + BeanUtil.copyProperties(dto, finBillApplicationDto, "carBuyContractImages"); + String useOrgSid = sysStaffOrgFeign.getOrgSidByPath(dto.getOrgPath()).getData(); + if (dto.getShowBtn()) { + finBillApplicationDto.setShowBtnStr("1"); + } else { + finBillApplicationDto.setShowBtnStr("0"); + } + finBillApplicationDto.setUseOrgSid(useOrgSid); + finBillApplicationDto.setCreateBySid(dto.getUserSid()); + finBillApplicationDto.setTotalBillMoney(dto.getInvoiceTotal()); + finBillApplicationDto.setOrgSidPath(dto.getOrgPath()); + finBillApplicationDto.setSaleTypeValue(dto.getSaleType()); + finBillApplicationDto.setSaleDeptName(dto.getSellerDept()); + finBillApplicationDto.setStaffName(dto.getSellerName()); + finBillApplicationDto.setOpenTickUnitName(dto.getInvoicingUnit()); + finBillApplicationDto.setCustomerName(dto.getName()); + finBillApplicationDto.setOneBillMoney(dto.getInvoiceMoney()); + finBillApplicationDto.setOpenTickTypeKey(dto.getOpenTickTypeKey()); + finBillApplicationDto.setOpenTickTypeValue(dto.getOpenTickTypeValue()); + finBillApplicationDto.setOpenTickSid(dto.getOpenTickSid()); + finBillApplicationDto.setOpenTickName(dto.getOpenTickName()); + finBillApplicationDto.setBillStateKey(dto.getInvoiceStateKey()); + finBillApplicationDto.setBillStateValue(dto.getInvoiceState()); + finBillApplicationDto.setContractNo(dto.getContractId()); + finBillApplicationDto.setApplyDate(dto.getDate()); + finBillApplicationDto.setCreateBySid(dto.getUserSid()); + finBillApplicationDto.setNodeState(dto.getNodeState()); + finBillApplicationDto.setBillNo(dto.getBillNo()); + String publishInfo = dto.getPublishInfo(); + String[] split = publishInfo.split("-"); + finBillApplicationDto.setDeptName(split[0]); + finBillApplicationDto.setCreateByName(split[1]); + //开票车辆信息 + List vinList = dto.getVinList(); + List finBillVehicleDtos = new ArrayList<>(); + for (VinListDto vinListDto : vinList) { + if (StringUtils.isBlank(vinListDto.getInvoiceInfo())) { + return new ResultBean().fail().setMsg("开票信息不能为空"); + } + FinBillVehicleDto finBillVehicleDto = new FinBillVehicleDto(); + finBillVehicleDto.setVinNo(vinListDto.getVin()); + finBillVehicleDto.setVehSid(vinListDto.getVinSid()); + finBillVehicleDto.setCertificateStateKey(vinListDto.getCertificateStateKey()); + finBillVehicleDto.setCertificateStateValue(vinListDto.getCertificateState()); + finBillVehicleDto.setBillTypeKey(vinListDto.getInvoiceTypeKey()); + finBillVehicleDto.setBillTypeValue(vinListDto.getInvoiceType()); + finBillVehicleDto.setOpenTickSid(vinListDto.getOpenTickSid()); + finBillVehicleDto.setOpenTickName(vinListDto.getInvoiceName()); + finBillVehicleDto.setOpenTickRemarks(vinListDto.getInvoiceInfo()); + finBillVehicleDto.setXSState(vinListDto.getXSState()); + finBillVehicleDtos.add(finBillVehicleDto); + } + finBillApplicationDto.setFinBillVehicles(finBillVehicleDtos); + //开票挂车信息 + List finBillTrailers = dto.getFinBillTrailers(); + List finBillTrailerDtos = new ArrayList<>(); + if (finBillTrailers != null && finBillTrailers.size() > 0) { + for (FinBillTrailerDto finBillTrailer : finBillTrailers) { + com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto finBillTrailerDto = new com.yxt.anrui.fin.api.finbilltrailer.FinBillTrailerDto(); + BeanUtil.copyProperties(finBillTrailer, finBillTrailerDto); + finBillTrailerDtos.add(finBillTrailerDto); + } + } + finBillApplicationDto.setFinBillTrailers(finBillTrailerDtos); + //附件信息 + List appCarBuyContractImages = dto.getCarBuyContractImages();//车辆买卖合同 + List customerInvoiceApplyImages = dto.getCustomerInvoiceApplyImages();//客户开票申请书 + List invoiceApplyConfirmImages = dto.getInvoiceApplyConfirmImages();//开票信息确认书 + List registerContractImages = dto.getRegisterContractImages();//车辆登记合同 + List idCardImages = dto.getIdCardImages();//证件 + List carBuyContractImages = new ArrayList<>(); // 车辆买卖合同 + List khkpsqsApplicationAppendxs = new ArrayList<>(); // 客户开票申请书附件信息 + List kpxxqrsApplicationAppendxs = new ArrayList<>(); // 开票信息确认书附件信息 + List cldjhtApplicationAppendxs = new ArrayList<>(); // 车辆登记合同附件信息 + List idCardImagesPC = new ArrayList<>();//证件 + if (appCarBuyContractImages != null) { + for (String appCarBuyContractImage : appCarBuyContractImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(appCarBuyContractImage); + carBuyContractImages.add(finBillFileDto); + } + } + if (customerInvoiceApplyImages != null) { + for (String customerInvoiceApplyImage : customerInvoiceApplyImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(customerInvoiceApplyImage); + khkpsqsApplicationAppendxs.add(finBillFileDto); + } + } + if (invoiceApplyConfirmImages != null) { + for (String invoiceApplyConfirmImage : invoiceApplyConfirmImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(invoiceApplyConfirmImage); + kpxxqrsApplicationAppendxs.add(finBillFileDto); + } + } + if (registerContractImages != null) { + for (String registerContractImage : registerContractImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(registerContractImage); + cldjhtApplicationAppendxs.add(finBillFileDto); + } + } + if (idCardImages != null) { + for (String idCardImage : idCardImages) { + FinBillFileDto finBillFileDto = new FinBillFileDto(); + finBillFileDto.setFileUrl(idCardImage); + idCardImagesPC.add(finBillFileDto); + } + } + finBillApplicationDto.setCarBuyContractImages(carBuyContractImages); + finBillApplicationDto.setKhkpsqsApplicationAppendxs(khkpsqsApplicationAppendxs); + finBillApplicationDto.setKpxxqrsApplicationAppendxs(kpxxqrsApplicationAppendxs); + finBillApplicationDto.setCldjhtApplicationAppendxs(cldjhtApplicationAppendxs); + finBillApplicationDto.setZjApplicationAppendxs(idCardImagesPC); + finBillApplicationDto.setArrearsMoney("0"); + + ResultBean resultBean = finBillApplicationFeign.saveInvoicedApplyInfoPdf(finBillApplicationDto); + return resultBean; + } } From 5892aa589460916d73a589364f0faf8304ad8c77 Mon Sep 17 00:00:00 2001 From: God <10745413@qq.com> Date: Mon, 11 Mar 2024 17:29:08 +0800 Subject: [PATCH 9/9] =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../FinBillApplicationService.java | 96 +++++++++++++++++++ .../FinCompanyInvoicingMapper.java | 3 + .../FinCompanyInvoicingService.java | 6 ++ 3 files changed, 105 insertions(+) diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java index 04e2bd9f68..12e051238d 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/finbillapplication/FinBillApplicationService.java @@ -63,6 +63,8 @@ import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderContractNoDto import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderModelInfoVo; import com.yxt.anrui.buscenter.api.bussalesorder.app.order.AppOrderPriceInfoVo; import com.yxt.anrui.buscenter.api.bussalesorder.app.vin.VinListsVo; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDetailsVo; +import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign; import com.yxt.anrui.buscenter.api.bussalesordermodel.BusSalesOrderModel; import com.yxt.anrui.buscenter.api.bussalesorderprice.BusSalesOrderPrice; import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle; @@ -227,6 +229,8 @@ public class FinBillApplicationService extends MybatisBaseService selectInvoingByOrgPath(String userOrgSid); FinCompanyInvoicingDetailsVo selByTaxpayerNoAndUseOrgSid(@Param("taxpayerNo") String taxpayerNo, @Param("useOrgSid") String useOrgSid); + + @Select("select * from fin_company_invoicing where name = #{affiliatedCompany}") + FinCompanyInvoicingDetailsVo selectInvoingByName(String affiliatedCompany); } \ No newline at end of file diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java index c438e567b5..1aef4d31f2 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincompanyinvoicing/FinCompanyInvoicingService.java @@ -569,4 +569,10 @@ public class FinCompanyInvoicingService extends MybatisBaseService selectInvoingByName(String affiliatedCompany) { + ResultBean rb = ResultBean.fireFail(); + FinCompanyInvoicingDetailsVo finCompanyInvoicingDetailsVo = baseMapper.selectInvoingByName(affiliatedCompany); + return rb.success().setData(finCompanyInvoicingDetailsVo); + } } \ No newline at end of file