|
@@ -33,9 +33,14 @@ import org.jeecg.common.util.UUIDGenerator;
|
|
|
import org.jeecg.modules.baseCode.entity.*;
|
|
|
import org.jeecg.modules.baseCode.service.*;
|
|
|
import org.jeecg.modules.cuspCode.entity.CuspCustomerProfile;
|
|
|
+import org.jeecg.modules.cuspCode.entity.CuspSupplierProfile;
|
|
|
import org.jeecg.modules.cuspCode.service.ICuspCustomerProfileService;
|
|
|
+import org.jeecg.modules.cuspCode.service.ICuspSupplierProfileService;
|
|
|
import org.jeecg.modules.platCode.entity.PlatCommissionOrder;
|
|
|
+import org.jeecg.modules.platCode.entity.PlatCommissionOrderProduct;
|
|
|
import org.jeecg.modules.platCode.mapper.PlatCommissionOrderMapper;
|
|
|
+import org.jeecg.modules.platCode.service.IPlatCommissionOrderProductService;
|
|
|
+import org.jeecg.modules.platCode.service.IPlatCommissionOrderService;
|
|
|
import org.jeecg.modules.purCode.entity.PurOrder;
|
|
|
import org.jeecg.modules.purCode.service.IPurOrderService;
|
|
|
import org.jeecg.modules.saleCode.entity.*;
|
|
@@ -137,6 +142,13 @@ public class SaleInvoiceController {
|
|
|
private PlatCommissionOrderMapper platCommissionOrderMapper;
|
|
|
@Autowired
|
|
|
private ISaleQuotationProductService saleQuotationProductService;
|
|
|
+ @Autowired
|
|
|
+ private IPlatCommissionOrderService platCommissionOrderService;
|
|
|
+ @Autowired
|
|
|
+ private IPlatCommissionOrderProductService platCommissionOrderProductService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ICuspSupplierProfileService cuspSupplierProfileService;
|
|
|
|
|
|
@Value(value = "${jeecg.path.upload}")
|
|
|
private String uploadpath;
|
|
@@ -527,6 +539,13 @@ public class SaleInvoiceController {
|
|
|
|
|
|
//发货通知单单号
|
|
|
String sourceCode = saleInvoice.getSourceCode();
|
|
|
+
|
|
|
+ String project = saleInvoice.getProject();
|
|
|
+ if (StringUtils.isBlank(project)) {
|
|
|
+
|
|
|
+ return Result.error("项目不存在,无法关联数据");
|
|
|
+ }
|
|
|
+
|
|
|
if (StringUtils.isBlank(sourceCode)) {
|
|
|
|
|
|
return Result.error("sourceCode不存在,未找到对应数据");
|
|
@@ -560,10 +579,24 @@ public class SaleInvoiceController {
|
|
|
String xsCode = list.get(0).getSourceCode();
|
|
|
QueryWrapper<PurOrder> queryPurOrder = new QueryWrapper();
|
|
|
queryPurOrder.likeRight("source_code2", xsCode);
|
|
|
+ queryPurOrder.eq("close", "0");
|
|
|
List<PurOrder> cgList = purOrderService.list(queryPurOrder);
|
|
|
if (cgList.size() > 0) {
|
|
|
+
|
|
|
return Result.OK(cgList.get(0));
|
|
|
// sourceId = cgList.get(0).getId();
|
|
|
+ }else{
|
|
|
+
|
|
|
+ QueryWrapper<PurOrder> queryPurOrder2 = new QueryWrapper();
|
|
|
+ queryPurOrder2.eq("project", project);
|
|
|
+ queryPurOrder2.eq("close", "0");
|
|
|
+ List<PurOrder> cgList2 = purOrderService.list(queryPurOrder2);
|
|
|
+ if (cgList2.size() > 0) {
|
|
|
+ return Result.OK(cgList2.get(0));
|
|
|
+ }else{
|
|
|
+ return Result.error("采购订单已关闭,未找到对应新订单数据");
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
} else if (type.equals("saleContract")) {
|
|
@@ -768,39 +801,41 @@ public class SaleInvoiceController {
|
|
|
String sourceCode = saleInvoice.getSourceCode();//发货通知单
|
|
|
String sourceCode2 = saleInvoice.getSourceCode2();//佣金订单
|
|
|
|
|
|
- SaleDelivery saleDelivery = saleDeliveryService.getByBillCode(saleInvoice.getSourceCode());
|
|
|
- SaleOrder saleOrder = saleOrderService.getByBillCode(saleDelivery.getSourceCode());
|
|
|
- String saleCreateBy = "";
|
|
|
- if (saleOrder != null) {
|
|
|
- saleCreateBy = saleOrder.getCreateBy();
|
|
|
- }
|
|
|
- if (saleOrder == null || saleOrder.getDoubleDiscount() == null) {
|
|
|
- saleOrder = new SaleOrder();
|
|
|
- templates = templatesN;
|
|
|
- } else {
|
|
|
- templates = templatesZ;
|
|
|
- }
|
|
|
+ if(StringUtils.isNotBlank(sourceCode)){
|
|
|
+
|
|
|
+ SaleDelivery saleDelivery = saleDeliveryService.getByBillCode(sourceCode);
|
|
|
+ SaleOrder saleOrder = saleOrderService.getByBillCode(saleDelivery.getSourceCode());
|
|
|
+ String saleCreateBy = "";
|
|
|
+ if (saleOrder != null) {
|
|
|
+ saleCreateBy = saleOrder.getCreateBy();
|
|
|
+ }
|
|
|
+ if (saleOrder == null || saleOrder.getDoubleDiscount() == null) {
|
|
|
+ saleOrder = new SaleOrder();
|
|
|
+ templates = templatesN;
|
|
|
+ } else {
|
|
|
+ templates = templatesZ;
|
|
|
+ }
|
|
|
// List<SaleOrderProduct> orderProductList = saleOrderProductService.selectByMainId(saleOrder.getId());
|
|
|
- List<SaleInvoiceProduct> productList = saleInvoiceProductService.selectByMainId(id);
|
|
|
- List<SaleInvoiceShip> invoiceShipList = saleInvoiceShipService.selectByMainId(id);
|
|
|
- String productClass = saleDelivery.getProductionClass();
|
|
|
- String orderCode = saleDelivery.getSourceCode();
|
|
|
- String currency = saleDelivery.getCurrency();
|
|
|
- saleInvoice.setProductionClass(productClass);
|
|
|
- saleInvoice.setCurrency(currency);
|
|
|
+ List<SaleInvoiceProduct> productList = saleInvoiceProductService.selectByMainId(id);
|
|
|
+ List<SaleInvoiceShip> invoiceShipList = saleInvoiceShipService.selectByMainId(id);
|
|
|
+ String productClass = saleDelivery.getProductionClass();
|
|
|
+ String orderCode = saleDelivery.getSourceCode();
|
|
|
+ String currency = saleDelivery.getCurrency();
|
|
|
+ saleInvoice.setProductionClass(productClass);
|
|
|
+ saleInvoice.setCurrency(currency);
|
|
|
|
|
|
|
|
|
- if (templates != null) {
|
|
|
- try {
|
|
|
+ if (templates != null) {
|
|
|
+ try {
|
|
|
|
|
|
- String productionClass = saleInvoice.getProductionClass();
|
|
|
- if (StringUtils.isNotBlank(productionClass)) {
|
|
|
+ String productionClass = saleInvoice.getProductionClass();
|
|
|
+ if (StringUtils.isNotBlank(productionClass)) {
|
|
|
|
|
|
- BaseProductClass classEnt = baseProductClassService.getById(productionClass);
|
|
|
- if (classEnt != null) {
|
|
|
- saleInvoice.setProductionClass(classEnt.getName());
|
|
|
+ BaseProductClass classEnt = baseProductClassService.getById(productionClass);
|
|
|
+ if (classEnt != null) {
|
|
|
+ saleInvoice.setProductionClass(classEnt.getName());
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
// if(saleOrder != null){
|
|
|
// saleInvoice.setContacts(saleOrder.getSalesmanName());
|
|
@@ -827,157 +862,406 @@ public class SaleInvoiceController {
|
|
|
// }
|
|
|
|
|
|
|
|
|
- String paymentTerms = null;
|
|
|
- String customerId = saleInvoice.getCustomer();
|
|
|
- if (StringUtils.isNotBlank(customerId)) {
|
|
|
+ String paymentTerms = null;
|
|
|
+ String customerId = saleInvoice.getCustomer();
|
|
|
+ if (StringUtils.isNotBlank(customerId)) {
|
|
|
|
|
|
- CuspCustomerProfile classEnt = cuspCustomerProfileService.getById(customerId);
|
|
|
- if (classEnt != null) {
|
|
|
- paymentTerms = classEnt.getPaymentTerms();
|
|
|
+ CuspCustomerProfile classEnt = cuspCustomerProfileService.getById(customerId);
|
|
|
+ if (classEnt != null) {
|
|
|
+ paymentTerms = classEnt.getPaymentTerms();
|
|
|
|
|
|
- saleInvoice.setContacts(classEnt.getContacts());
|
|
|
- saleInvoice.setPhone(classEnt.getPhone());
|
|
|
- saleInvoice.setEmail(classEnt.getEmail());
|
|
|
+ saleInvoice.setContacts(classEnt.getContacts());
|
|
|
+ saleInvoice.setPhone(classEnt.getPhone());
|
|
|
+ saleInvoice.setEmail(classEnt.getEmail());
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
|
|
|
- // 获取计产品档案
|
|
|
- List<BaseProductArchive> productArchiveList = new ArrayList<>();
|
|
|
- if (oConvertUtils.listIsNotEmpty(productList)){
|
|
|
- LambdaQueryWrapper<BaseProductArchive> productWrapper = new LambdaQueryWrapper<>();
|
|
|
- productWrapper.in(BaseProductArchive::getId, productList.stream().map(SaleInvoiceProduct::getProductId).collect(Collectors.toList()));
|
|
|
- productArchiveList = baseProductArchiveService.list(productWrapper);
|
|
|
- }
|
|
|
- // 获取发货单行
|
|
|
- List<SaleDeliveryDetails> saleDeliveryDetailsList = new ArrayList<>();
|
|
|
- if (oConvertUtils.isNotEmpty(productList)){
|
|
|
- LambdaQueryWrapper<SaleDeliveryDetails> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
- queryWrapper.in(SaleDeliveryDetails::getId, productList.stream().map(SaleInvoiceProduct::getSourceId).collect(Collectors.toList()));
|
|
|
- saleDeliveryDetailsList = saleDeliveryDetailsService.list(queryWrapper);
|
|
|
- }
|
|
|
- // 获取销售订单行
|
|
|
- List<SaleOrderProduct> saleOrderProductList = new ArrayList<>();
|
|
|
- if (oConvertUtils.listIsNotEmpty(saleDeliveryDetailsList)){
|
|
|
- LambdaQueryWrapper<SaleOrderProduct> productWrapper = new LambdaQueryWrapper<>();
|
|
|
- productWrapper.in(SaleOrderProduct::getId, saleDeliveryDetailsList.stream().map(SaleDeliveryDetails::getSourceId).collect(Collectors.toList()));
|
|
|
- saleOrderProductList = saleOrderProductService.list(productWrapper);
|
|
|
- }
|
|
|
- // 获取报价单行
|
|
|
- List<SaleQuotationProduct> saleQuotationProductList = new ArrayList<>();
|
|
|
- if (oConvertUtils.listIsNotEmpty(saleOrderProductList)){
|
|
|
- LambdaQueryWrapper<SaleQuotationProduct> productWrapper = new LambdaQueryWrapper<>();
|
|
|
- productWrapper.in(SaleQuotationProduct::getId, saleOrderProductList.stream().map(SaleOrderProduct::getSourceId).collect(Collectors.toList()));
|
|
|
- saleQuotationProductList = saleQuotationProductService.list(productWrapper);
|
|
|
- }
|
|
|
- // 获取销售订单
|
|
|
+ // 获取计产品档案
|
|
|
+ List<BaseProductArchive> productArchiveList = new ArrayList<>();
|
|
|
+ if (oConvertUtils.listIsNotEmpty(productList)){
|
|
|
+ LambdaQueryWrapper<BaseProductArchive> productWrapper = new LambdaQueryWrapper<>();
|
|
|
+ productWrapper.in(BaseProductArchive::getId, productList.stream().map(SaleInvoiceProduct::getProductId).collect(Collectors.toList()));
|
|
|
+ productArchiveList = baseProductArchiveService.list(productWrapper);
|
|
|
+ }
|
|
|
+ // 获取发货单行
|
|
|
+ List<SaleDeliveryDetails> saleDeliveryDetailsList = new ArrayList<>();
|
|
|
+ if (oConvertUtils.isNotEmpty(productList)){
|
|
|
+ LambdaQueryWrapper<SaleDeliveryDetails> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.in(SaleDeliveryDetails::getId, productList.stream().map(SaleInvoiceProduct::getSourceId).collect(Collectors.toList()));
|
|
|
+ saleDeliveryDetailsList = saleDeliveryDetailsService.list(queryWrapper);
|
|
|
+ }
|
|
|
+ // 获取销售订单行
|
|
|
+ List<SaleOrderProduct> saleOrderProductList = new ArrayList<>();
|
|
|
+ if (oConvertUtils.listIsNotEmpty(saleDeliveryDetailsList)){
|
|
|
+ LambdaQueryWrapper<SaleOrderProduct> productWrapper = new LambdaQueryWrapper<>();
|
|
|
+ productWrapper.in(SaleOrderProduct::getId, saleDeliveryDetailsList.stream().map(SaleDeliveryDetails::getSourceId).collect(Collectors.toList()));
|
|
|
+ saleOrderProductList = saleOrderProductService.list(productWrapper);
|
|
|
+ }
|
|
|
+ // 获取报价单行
|
|
|
+ List<SaleQuotationProduct> saleQuotationProductList = new ArrayList<>();
|
|
|
+ if (oConvertUtils.listIsNotEmpty(saleOrderProductList)){
|
|
|
+ LambdaQueryWrapper<SaleQuotationProduct> productWrapper = new LambdaQueryWrapper<>();
|
|
|
+ productWrapper.in(SaleQuotationProduct::getId, saleOrderProductList.stream().map(SaleOrderProduct::getSourceId).collect(Collectors.toList()));
|
|
|
+ saleQuotationProductList = saleQuotationProductService.list(productWrapper);
|
|
|
+ }
|
|
|
+ // 获取销售订单
|
|
|
// saleInvoice.setPaymentTerms(saleOrder.getPaymentTerms());
|
|
|
- saleInvoice.setPaymentTerms(paymentTerms);
|
|
|
- // 客户订单号
|
|
|
- saleInvoice.setContactsNo(saleOrder.getCustomerOrder());
|
|
|
- // 查询数据字典
|
|
|
- String currencyText = sysDictService.queryDictTextByKey("currency", saleInvoice.getCurrency());
|
|
|
- saleInvoice.setCurrencyText(currencyText);
|
|
|
- String paymentTermsText = sysDictService.queryDictTextByKey("customer_payment_terms", saleInvoice.getPaymentTerms());
|
|
|
- saleInvoice.setPaymentTermsText(paymentTermsText);
|
|
|
- List<DictModel> unitDictList = sysDictService.queryDictItemsByCode("measurement_unit");
|
|
|
-
|
|
|
- // 产品设置
|
|
|
- int rowNum = 1;
|
|
|
- BigDecimal invoiceMoney = BigDecimal.ZERO;
|
|
|
- for(SaleInvoiceProduct o:productList){
|
|
|
- BigDecimal amount = o.getTaxMoney() == null ? BigDecimal.ZERO: o.getTaxMoney();
|
|
|
- invoiceMoney = invoiceMoney.add(amount);
|
|
|
- o.setRowNumber(rowNum++);
|
|
|
-
|
|
|
-
|
|
|
- BaseProductArchive findProduct = productArchiveList.stream().filter(e->e.getId().equals(o.getProductId())).findFirst().orElse(null);
|
|
|
- if (findProduct != null){
|
|
|
- o.setUnit(findProduct.getMeasurementUnit());
|
|
|
- if (findProduct.getMeasurementUnit() != null){
|
|
|
- DictModel findDict = unitDictList.stream().filter(d->d.getValue().equals(findProduct.getMeasurementUnit())).findFirst().orElse(null);
|
|
|
- if (findDict != null){
|
|
|
- o.setUnit(findDict.getText());
|
|
|
+ saleInvoice.setPaymentTerms(paymentTerms);
|
|
|
+ // 客户订单号
|
|
|
+ saleInvoice.setContactsNo(saleOrder.getCustomerOrder());
|
|
|
+ // 查询数据字典
|
|
|
+ String currencyText = sysDictService.queryDictTextByKey("currency", saleInvoice.getCurrency());
|
|
|
+ saleInvoice.setCurrencyText(currencyText);
|
|
|
+ String paymentTermsText = sysDictService.queryDictTextByKey("customer_payment_terms", saleInvoice.getPaymentTerms());
|
|
|
+ saleInvoice.setPaymentTermsText(paymentTermsText);
|
|
|
+ List<DictModel> unitDictList = sysDictService.queryDictItemsByCode("measurement_unit");
|
|
|
+
|
|
|
+ // 产品设置
|
|
|
+ int rowNum = 1;
|
|
|
+ BigDecimal invoiceMoney = BigDecimal.ZERO;
|
|
|
+ for(SaleInvoiceProduct o:productList){
|
|
|
+ BigDecimal amount = o.getTaxMoney() == null ? BigDecimal.ZERO: o.getTaxMoney();
|
|
|
+ invoiceMoney = invoiceMoney.add(amount);
|
|
|
+ o.setRowNumber(rowNum++);
|
|
|
+
|
|
|
+
|
|
|
+ BaseProductArchive findProduct = productArchiveList.stream().filter(e->e.getId().equals(o.getProductId())).findFirst().orElse(null);
|
|
|
+ if (findProduct != null){
|
|
|
+ o.setUnit(findProduct.getMeasurementUnit());
|
|
|
+ if (findProduct.getMeasurementUnit() != null){
|
|
|
+ DictModel findDict = unitDictList.stream().filter(d->d.getValue().equals(findProduct.getMeasurementUnit())).findFirst().orElse(null);
|
|
|
+ if (findDict != null){
|
|
|
+ o.setUnit(findDict.getText());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ SaleDeliveryDetails saleDeliveryDetails = saleDeliveryDetailsList.stream().filter(e->e.getId().equals(o.getSourceId())).findFirst().orElse(null);
|
|
|
+ if (saleDeliveryDetails != null) {
|
|
|
+ SaleOrderProduct saleOrderProduct = saleOrderProductList.stream().filter(e -> e.getId().equals(saleDeliveryDetails.getSourceId())).findFirst().orElse(null);
|
|
|
+ if (saleOrderProduct != null) {
|
|
|
+
|
|
|
+ SaleQuotationProduct saleQuotationProduct = saleQuotationProductList.stream().filter(e -> e.getId().equals(saleOrderProduct.getSourceId())).findFirst().orElse(null);
|
|
|
+
|
|
|
+ if (saleQuotationProduct !=null && oConvertUtils.isNotEmpty(saleQuotationProduct.getDiscount())) {
|
|
|
+ o.setDiscountText(saleQuotationProduct.getDiscount().intValue() + "%");
|
|
|
+ }
|
|
|
+ if (saleQuotationProduct !=null && oConvertUtils.isNotEmpty(saleQuotationProduct.getSalePrice())) {
|
|
|
+
|
|
|
+
|
|
|
+ BigDecimal dic = saleQuotationProduct.getDiscount() ==null?BigDecimal.ZERO:saleQuotationProduct.getDiscount();
|
|
|
+ BigDecimal dis = (new BigDecimal("100").subtract(dic)).divide(new BigDecimal("100"));
|
|
|
+
|
|
|
+ BigDecimal getSalePrice = saleQuotationProduct.getSalePrice() == null ? BigDecimal.ZERO : saleQuotationProduct.getSalePrice();
|
|
|
+ BigDecimal setTaxPrice = getSalePrice.divide(dis, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ o.setTaxPrice(setTaxPrice);
|
|
|
+
|
|
|
+// o.setTaxPrice(saleQuotationProduct.getSalePrice());
|
|
|
+ }
|
|
|
+// if (oConvertUtils.isNotEmpty(saleOrderProduct.getDiscount()) && saleOrderProduct.getDiscount().intValue() != 0) {
|
|
|
+// o.setDiscountText(saleOrderProduct.getDiscount().intValue() + "%");
|
|
|
+// }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- SaleDeliveryDetails saleDeliveryDetails = saleDeliveryDetailsList.stream().filter(e->e.getId().equals(o.getSourceId())).findFirst().orElse(null);
|
|
|
- if (saleDeliveryDetails != null) {
|
|
|
- SaleOrderProduct saleOrderProduct = saleOrderProductList.stream().filter(e -> e.getId().equals(saleDeliveryDetails.getSourceId())).findFirst().orElse(null);
|
|
|
- if (saleOrderProduct != null) {
|
|
|
+ saleInvoice.setInvoiceMoney(invoiceMoney.setScale(2));
|
|
|
+
|
|
|
+ if (oConvertUtils.isNotEmpty(saleOrder.getDoubleDiscount())) {
|
|
|
+ saleInvoice.setDiscountText(saleOrder.getDoubleDiscount().intValue() + "%");
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ String shipname = "";
|
|
|
+ String imo = "";
|
|
|
+
|
|
|
+ if(oConvertUtils.listIsNotEmpty(invoiceShipList)){
|
|
|
|
|
|
- SaleQuotationProduct saleQuotationProduct = saleQuotationProductList.stream().filter(e -> e.getId().equals(saleOrderProduct.getSourceId())).findFirst().orElse(null);
|
|
|
+ shipname = invoiceShipList.stream().map(SaleInvoiceShip::getShipName).distinct().collect(Collectors.joining());
|
|
|
|
|
|
- if (saleQuotationProduct !=null && oConvertUtils.isNotEmpty(saleQuotationProduct.getDiscount())) {
|
|
|
- o.setDiscountText(saleQuotationProduct.getDiscount().intValue() + "%");
|
|
|
+ LambdaQueryWrapper<BaseShipArchive> shipArchiveLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ shipArchiveLambdaQueryWrapper.in(BaseShipArchive::getId,invoiceShipList.stream().map(SaleInvoiceShip::getShipId).collect(Collectors.joining()));
|
|
|
+ List<BaseShipArchive> baseShipArchiveList = baseShipArchiveService.list(shipArchiveLambdaQueryWrapper);
|
|
|
+
|
|
|
+ if(oConvertUtils.listIsNotEmpty(baseShipArchiveList)){
|
|
|
+ imo = baseShipArchiveList.stream().map(BaseShipArchive::getImo).distinct().collect(Collectors.joining());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ saleInvoice.setShipName(shipname);
|
|
|
+ saleInvoice.setImo(imo);
|
|
|
+
|
|
|
+ if(productList.size() > 0){
|
|
|
+
|
|
|
+ saleInvoice.setQualityGrade(productList.get(0).getQualityGrade());
|
|
|
+ }
|
|
|
+ // 账期
|
|
|
+ saleInvoice.setBillDateText(DateUtils.date2Str(saleInvoice.getBillDate(), DateUtils.date_sdf.get()));
|
|
|
+ saleInvoice.setDueDateText(saleInvoice.getBillDateText());
|
|
|
+ if (oConvertUtils.isNotEmpty(paymentTermsText)){
|
|
|
+ if (paymentTermsText.indexOf(" ")>-1){
|
|
|
+ String[] split = paymentTermsText.split(" ");
|
|
|
+ if (oConvertUtils.getInt(split[0], 0)>0) {
|
|
|
+ saleInvoice.setDueDateText(DateUtils.date2Str(DateUtils.dateAdd(saleInvoice.getBillDate(), Calendar.DATE, Integer.parseInt(split[0])), DateUtils.date_sdf.get()));
|
|
|
}
|
|
|
- if (saleQuotationProduct !=null && oConvertUtils.isNotEmpty(saleQuotationProduct.getSalePrice())) {
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 订单金额
|
|
|
+ BigDecimal orderMoney = BigDecimal.ZERO;
|
|
|
+// for (SaleOrderProduct o : orderProductList) {
|
|
|
+ for (SaleInvoiceProduct o : productList) {
|
|
|
+ BigDecimal amount = o.getTaxMoney() == null ? BigDecimal.ZERO : o.getTaxMoney();
|
|
|
+ orderMoney = orderMoney.add(amount);
|
|
|
+ }
|
|
|
+ saleInvoice.setOrderMoney(orderMoney.setScale(2));
|
|
|
+ saleInvoice.setAgreementTerms(saleOrder.getAgreementTerms());
|
|
|
+ // 制单人信息
|
|
|
+// SysUser sysUser = sysUserService.getUserByName(saleInvoice.getCreateBy());
|
|
|
+// if(saleOrder !=null && StringUtils.isNotBlank(saleOrder.getCreateBy())){
|
|
|
+// SysUser sysUser = sysUserService.getUserByName(saleOrder.getCreateBy());
|
|
|
+// if(sysUser !=null){
|
|
|
+// saleInvoice.setSalesPhone(sysUser.getPhone());
|
|
|
+// saleInvoice.setSalesEmail(sysUser.getEmail());
|
|
|
+// saleInvoice.setSalesmanName(sysUser.getRealname());
|
|
|
+// }
|
|
|
+ saleInvoice.setSalesmanName(saleCreateBy);
|
|
|
+// }
|
|
|
|
|
|
+ String templateFilePath = uploadpath + templates.getTemplateFile();
|
|
|
+ String tempFilePath = uploadpath + "/"+ UUIDGenerator.generate()+".xlsx";
|
|
|
|
|
|
- BigDecimal dic = saleQuotationProduct.getDiscount() ==null?BigDecimal.ZERO:saleQuotationProduct.getDiscount();
|
|
|
- BigDecimal dis = (new BigDecimal("100").subtract(dic)).divide(new BigDecimal("100"));
|
|
|
+ try (ExcelWriter excelWriter = EasyExcel.write(tempFilePath).withTemplate(templateFilePath).build()) {
|
|
|
+ WriteSheet writeSheet = EasyExcel.writerSheet().build();
|
|
|
+ FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).forceNewRow(Boolean.TRUE).build();
|
|
|
+ excelWriter.fill(new FillWrapper(productList), fillConfig, writeSheet);
|
|
|
+ excelWriter.fill(saleInvoice, writeSheet);
|
|
|
+ }
|
|
|
+ List<String> noteList = new ArrayList<>();
|
|
|
+ productList.forEach(p->noteList.add(p.getNotes()));
|
|
|
|
|
|
- BigDecimal getSalePrice = saleQuotationProduct.getSalePrice() == null ? BigDecimal.ZERO : saleQuotationProduct.getSalePrice();
|
|
|
- BigDecimal setTaxPrice = getSalePrice.divide(dis, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
- o.setTaxPrice(setTaxPrice);
|
|
|
+ ExcelExportUtils.excelInsertRowNotes(getOutputStream(saleInvoice.getInvoiceCode()+".xlsx", response),
|
|
|
+ tempFilePath, 19, noteList, 1, 4);
|
|
|
|
|
|
-// o.setTaxPrice(saleQuotationProduct.getSalePrice());
|
|
|
+
|
|
|
+
|
|
|
+ } catch (Exception ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }else{
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ if(StringUtils.isBlank(sourceCode2)){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ QueryWrapper<PlatCommissionOrder> commonQuery = new QueryWrapper<>();
|
|
|
+ commonQuery.eq("del_flag","0");
|
|
|
+ commonQuery.eq("bill_code",sourceCode2);
|
|
|
+ List<PlatCommissionOrder> listCommon = platCommissionOrderService.list(commonQuery);
|
|
|
+ PlatCommissionOrder saleDelivery = listCommon.get(0);
|
|
|
+
|
|
|
+ List<PlatCommissionOrderProduct> commonProductList = platCommissionOrderProductService.selectByMainId(saleDelivery.getId());
|
|
|
+
|
|
|
+ String saleCreateBy = saleDelivery.getCreateBy();
|
|
|
+ templates = templatesN;
|
|
|
+
|
|
|
+ List<SaleInvoiceProduct> productList = saleInvoiceProductService.selectByMainId(id);
|
|
|
+ List<SaleInvoiceShip> invoiceShipList = saleInvoiceShipService.selectByMainId(id);
|
|
|
+ String productClass = commonProductList.get(0).getProductClass();
|
|
|
+ String orderCode = null;
|
|
|
+ String currency = saleDelivery.getCurrency();
|
|
|
+ saleInvoice.setProductionClass(productClass);
|
|
|
+ saleInvoice.setCurrency(currency);
|
|
|
+
|
|
|
+ if (templates != null) {
|
|
|
+ try {
|
|
|
+
|
|
|
+ String productionClass = saleInvoice.getProductionClass();
|
|
|
+ if (StringUtils.isNotBlank(productionClass)) {
|
|
|
+
|
|
|
+ BaseProductClass classEnt = baseProductClassService.getById(productionClass);
|
|
|
+ if (classEnt != null) {
|
|
|
+ saleInvoice.setProductionClass(classEnt.getName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+// if(saleOrder != null){
|
|
|
+// saleInvoice.setContacts(saleOrder.getSalesmanName());
|
|
|
+// }
|
|
|
+
|
|
|
+// if (StringUtils.isNotBlank(orderCode)) {
|
|
|
+// LambdaQueryWrapper<SaleDelivery> saleDeliveryQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+// saleDeliveryQueryWrapper.eq(SaleDelivery::getBillCode,orderCode);
|
|
|
+// List<SaleDelivery> list = saleDeliveryService.list(saleDeliveryQueryWrapper);
|
|
|
+// if(list.size() > 0){
|
|
|
+// SaleDelivery saleDeliveryEntity = list.get(0);
|
|
|
+// String saleOrderCode = saleDeliveryEntity.getSourceCode();
|
|
|
+// if (StringUtils.isNotBlank(saleOrderCode)) {
|
|
|
+// LambdaQueryWrapper<SaleOrder> saleOrderQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+// saleOrderQueryWrapper.eq(SaleOrder::getBillCode,saleOrderCode);
|
|
|
+// List<SaleOrder> listSaleOrder = saleOrderService.list(saleOrderQueryWrapper);
|
|
|
+// if(listSaleOrder.size() > 0){
|
|
|
+//// saleInvoice.setContacts(saleOrder.getLiaisonInfo());
|
|
|
+// saleInvoice.setContacts(saleOrder.getLiaisonInfo());
|
|
|
+// }
|
|
|
+// }
|
|
|
+//
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+
|
|
|
+ String paymentTerms = null;
|
|
|
+ String customerId = saleInvoice.getCustomer();
|
|
|
+ if (StringUtils.isNotBlank(customerId)) {
|
|
|
+ CuspSupplierProfile supplierEnt = cuspSupplierProfileService.getById(customerId);
|
|
|
+// CuspCustomerProfile classEnt = cuspCustomerProfileService.getById(customerId);
|
|
|
+ if (supplierEnt != null) {
|
|
|
+ paymentTerms = supplierEnt.getPaymentTerms();
|
|
|
+
|
|
|
+ saleInvoice.setContacts(supplierEnt.getContacts());
|
|
|
+ saleInvoice.setPhone(supplierEnt.getPhone());
|
|
|
+ saleInvoice.setEmail(supplierEnt.getEmail());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取计产品档案
|
|
|
+ List<BaseProductArchive> productArchiveList = new ArrayList<>();
|
|
|
+ if (oConvertUtils.listIsNotEmpty(productList)){
|
|
|
+ LambdaQueryWrapper<BaseProductArchive> productWrapper = new LambdaQueryWrapper<>();
|
|
|
+ productWrapper.in(BaseProductArchive::getId, productList.stream().map(SaleInvoiceProduct::getProductId).collect(Collectors.toList()));
|
|
|
+ productArchiveList = baseProductArchiveService.list(productWrapper);
|
|
|
+ }
|
|
|
+ // 获取发货单行
|
|
|
+ List<SaleDeliveryDetails> saleDeliveryDetailsList = new ArrayList<>();
|
|
|
+ if (oConvertUtils.isNotEmpty(productList)){
|
|
|
+ LambdaQueryWrapper<SaleDeliveryDetails> queryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ queryWrapper.in(SaleDeliveryDetails::getId, productList.stream().map(SaleInvoiceProduct::getSourceId).collect(Collectors.toList()));
|
|
|
+ saleDeliveryDetailsList = saleDeliveryDetailsService.list(queryWrapper);
|
|
|
+ }
|
|
|
+ // 获取销售订单行
|
|
|
+ List<SaleOrderProduct> saleOrderProductList = new ArrayList<>();
|
|
|
+ if (oConvertUtils.listIsNotEmpty(saleDeliveryDetailsList)){
|
|
|
+ LambdaQueryWrapper<SaleOrderProduct> productWrapper = new LambdaQueryWrapper<>();
|
|
|
+ productWrapper.in(SaleOrderProduct::getId, saleDeliveryDetailsList.stream().map(SaleDeliveryDetails::getSourceId).collect(Collectors.toList()));
|
|
|
+ saleOrderProductList = saleOrderProductService.list(productWrapper);
|
|
|
+ }
|
|
|
+ // 获取报价单行
|
|
|
+ List<SaleQuotationProduct> saleQuotationProductList = new ArrayList<>();
|
|
|
+ if (oConvertUtils.listIsNotEmpty(saleOrderProductList)){
|
|
|
+ LambdaQueryWrapper<SaleQuotationProduct> productWrapper = new LambdaQueryWrapper<>();
|
|
|
+ productWrapper.in(SaleQuotationProduct::getId, saleOrderProductList.stream().map(SaleOrderProduct::getSourceId).collect(Collectors.toList()));
|
|
|
+ saleQuotationProductList = saleQuotationProductService.list(productWrapper);
|
|
|
+ }
|
|
|
+ // 获取销售订单
|
|
|
+// saleInvoice.setPaymentTerms(saleOrder.getPaymentTerms());
|
|
|
+ saleInvoice.setPaymentTerms(paymentTerms);
|
|
|
+ // 客户订单号
|
|
|
+ saleInvoice.setContactsNo("");
|
|
|
+ // 查询数据字典
|
|
|
+ String currencyText = sysDictService.queryDictTextByKey("currency", saleInvoice.getCurrency());
|
|
|
+ saleInvoice.setCurrencyText(currencyText);
|
|
|
+ String paymentTermsText = sysDictService.queryDictTextByKey("customer_payment_terms", saleInvoice.getPaymentTerms());
|
|
|
+ saleInvoice.setPaymentTermsText(paymentTermsText);
|
|
|
+ List<DictModel> unitDictList = sysDictService.queryDictItemsByCode("measurement_unit");
|
|
|
+
|
|
|
+ // 产品设置
|
|
|
+ int rowNum = 1;
|
|
|
+ BigDecimal invoiceMoney = BigDecimal.ZERO;
|
|
|
+ for(SaleInvoiceProduct o:productList){
|
|
|
+ BigDecimal amount = o.getTaxMoney() == null ? BigDecimal.ZERO: o.getTaxMoney();
|
|
|
+ invoiceMoney = invoiceMoney.add(amount);
|
|
|
+ o.setRowNumber(rowNum++);
|
|
|
+
|
|
|
+
|
|
|
+ BaseProductArchive findProduct = productArchiveList.stream().filter(e->e.getId().equals(o.getProductId())).findFirst().orElse(null);
|
|
|
+ if (findProduct != null){
|
|
|
+ o.setUnit(findProduct.getMeasurementUnit());
|
|
|
+ if (findProduct.getMeasurementUnit() != null){
|
|
|
+ DictModel findDict = unitDictList.stream().filter(d->d.getValue().equals(findProduct.getMeasurementUnit())).findFirst().orElse(null);
|
|
|
+ if (findDict != null){
|
|
|
+ o.setUnit(findDict.getText());
|
|
|
+ }
|
|
|
}
|
|
|
+ }
|
|
|
+ SaleDeliveryDetails saleDeliveryDetails = saleDeliveryDetailsList.stream().filter(e->e.getId().equals(o.getSourceId())).findFirst().orElse(null);
|
|
|
+ if (saleDeliveryDetails != null) {
|
|
|
+ SaleOrderProduct saleOrderProduct = saleOrderProductList.stream().filter(e -> e.getId().equals(saleDeliveryDetails.getSourceId())).findFirst().orElse(null);
|
|
|
+ if (saleOrderProduct != null) {
|
|
|
+
|
|
|
+ SaleQuotationProduct saleQuotationProduct = saleQuotationProductList.stream().filter(e -> e.getId().equals(saleOrderProduct.getSourceId())).findFirst().orElse(null);
|
|
|
+
|
|
|
+ if (saleQuotationProduct !=null && oConvertUtils.isNotEmpty(saleQuotationProduct.getDiscount())) {
|
|
|
+ o.setDiscountText(saleQuotationProduct.getDiscount().intValue() + "%");
|
|
|
+ }
|
|
|
+ if (saleQuotationProduct !=null && oConvertUtils.isNotEmpty(saleQuotationProduct.getSalePrice())) {
|
|
|
+
|
|
|
+
|
|
|
+ BigDecimal dic = saleQuotationProduct.getDiscount() ==null?BigDecimal.ZERO:saleQuotationProduct.getDiscount();
|
|
|
+ BigDecimal dis = (new BigDecimal("100").subtract(dic)).divide(new BigDecimal("100"));
|
|
|
+
|
|
|
+ BigDecimal getSalePrice = saleQuotationProduct.getSalePrice() == null ? BigDecimal.ZERO : saleQuotationProduct.getSalePrice();
|
|
|
+ BigDecimal setTaxPrice = getSalePrice.divide(dis, 2, BigDecimal.ROUND_HALF_UP);
|
|
|
+ o.setTaxPrice(setTaxPrice);
|
|
|
+
|
|
|
+// o.setTaxPrice(saleQuotationProduct.getSalePrice());
|
|
|
+ }
|
|
|
// if (oConvertUtils.isNotEmpty(saleOrderProduct.getDiscount()) && saleOrderProduct.getDiscount().intValue() != 0) {
|
|
|
// o.setDiscountText(saleOrderProduct.getDiscount().intValue() + "%");
|
|
|
// }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- saleInvoice.setInvoiceMoney(invoiceMoney.setScale(2));
|
|
|
+ saleInvoice.setInvoiceMoney(invoiceMoney.setScale(2));
|
|
|
|
|
|
- if (oConvertUtils.isNotEmpty(saleOrder.getDoubleDiscount())) {
|
|
|
- saleInvoice.setDiscountText(saleOrder.getDoubleDiscount().intValue() + "%");
|
|
|
- }
|
|
|
+// if (oConvertUtils.isNotEmpty(saleOrder.getDoubleDiscount())) {
|
|
|
+// saleInvoice.setDiscountText(saleOrder.getDoubleDiscount().intValue() + "%");
|
|
|
+// }
|
|
|
|
|
|
|
|
|
- String shipname = "";
|
|
|
- String imo = "";
|
|
|
+ String shipname = "";
|
|
|
+ String imo = "";
|
|
|
|
|
|
- if(oConvertUtils.listIsNotEmpty(invoiceShipList)){
|
|
|
+ if(oConvertUtils.listIsNotEmpty(invoiceShipList)){
|
|
|
|
|
|
- shipname = invoiceShipList.stream().map(SaleInvoiceShip::getShipName).distinct().collect(Collectors.joining());
|
|
|
+ shipname = invoiceShipList.stream().map(SaleInvoiceShip::getShipName).distinct().collect(Collectors.joining());
|
|
|
|
|
|
- LambdaQueryWrapper<BaseShipArchive> shipArchiveLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
- shipArchiveLambdaQueryWrapper.in(BaseShipArchive::getId,invoiceShipList.stream().map(SaleInvoiceShip::getShipId).collect(Collectors.joining()));
|
|
|
- List<BaseShipArchive> baseShipArchiveList = baseShipArchiveService.list(shipArchiveLambdaQueryWrapper);
|
|
|
+ LambdaQueryWrapper<BaseShipArchive> shipArchiveLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
+ shipArchiveLambdaQueryWrapper.in(BaseShipArchive::getId,invoiceShipList.stream().map(SaleInvoiceShip::getShipId).collect(Collectors.joining()));
|
|
|
+ List<BaseShipArchive> baseShipArchiveList = baseShipArchiveService.list(shipArchiveLambdaQueryWrapper);
|
|
|
|
|
|
- if(oConvertUtils.listIsNotEmpty(baseShipArchiveList)){
|
|
|
- imo = baseShipArchiveList.stream().map(BaseShipArchive::getImo).distinct().collect(Collectors.joining());
|
|
|
+ if(oConvertUtils.listIsNotEmpty(baseShipArchiveList)){
|
|
|
+ imo = baseShipArchiveList.stream().map(BaseShipArchive::getImo).distinct().collect(Collectors.joining());
|
|
|
+ }
|
|
|
}
|
|
|
- }
|
|
|
- saleInvoice.setShipName(shipname);
|
|
|
- saleInvoice.setImo(imo);
|
|
|
+ saleInvoice.setShipName(shipname);
|
|
|
+ saleInvoice.setImo(imo);
|
|
|
|
|
|
- if(productList.size() > 0){
|
|
|
+ if(productList.size() > 0){
|
|
|
|
|
|
- saleInvoice.setQualityGrade(productList.get(0).getQualityGrade());
|
|
|
- }
|
|
|
- // 账期
|
|
|
- saleInvoice.setBillDateText(DateUtils.date2Str(saleInvoice.getBillDate(), DateUtils.date_sdf.get()));
|
|
|
- saleInvoice.setDueDateText(saleInvoice.getBillDateText());
|
|
|
- if (oConvertUtils.isNotEmpty(paymentTermsText)){
|
|
|
- if (paymentTermsText.indexOf(" ")>-1){
|
|
|
- String[] split = paymentTermsText.split(" ");
|
|
|
- if (oConvertUtils.getInt(split[0], 0)>0) {
|
|
|
- saleInvoice.setDueDateText(DateUtils.date2Str(DateUtils.dateAdd(saleInvoice.getBillDate(), Calendar.DATE, Integer.parseInt(split[0])), DateUtils.date_sdf.get()));
|
|
|
+ saleInvoice.setQualityGrade(productList.get(0).getQualityGrade());
|
|
|
+ }
|
|
|
+ // 账期
|
|
|
+ saleInvoice.setBillDateText(DateUtils.date2Str(saleInvoice.getBillDate(), DateUtils.date_sdf.get()));
|
|
|
+ saleInvoice.setDueDateText(saleInvoice.getBillDateText());
|
|
|
+ if (oConvertUtils.isNotEmpty(paymentTermsText)){
|
|
|
+ if (paymentTermsText.indexOf(" ")>-1){
|
|
|
+ String[] split = paymentTermsText.split(" ");
|
|
|
+ if (oConvertUtils.getInt(split[0], 0)>0) {
|
|
|
+ saleInvoice.setDueDateText(DateUtils.date2Str(DateUtils.dateAdd(saleInvoice.getBillDate(), Calendar.DATE, Integer.parseInt(split[0])), DateUtils.date_sdf.get()));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
- }
|
|
|
- // 订单金额
|
|
|
- BigDecimal orderMoney = BigDecimal.ZERO;
|
|
|
+ // 订单金额
|
|
|
+ BigDecimal orderMoney = BigDecimal.ZERO;
|
|
|
// for (SaleOrderProduct o : orderProductList) {
|
|
|
- for (SaleInvoiceProduct o : productList) {
|
|
|
- BigDecimal amount = o.getTaxMoney() == null ? BigDecimal.ZERO : o.getTaxMoney();
|
|
|
- orderMoney = orderMoney.add(amount);
|
|
|
- }
|
|
|
- saleInvoice.setOrderMoney(orderMoney.setScale(2));
|
|
|
- saleInvoice.setAgreementTerms(saleOrder.getAgreementTerms());
|
|
|
- // 制单人信息
|
|
|
+ for (SaleInvoiceProduct o : productList) {
|
|
|
+ BigDecimal amount = o.getTaxMoney() == null ? BigDecimal.ZERO : o.getTaxMoney();
|
|
|
+ orderMoney = orderMoney.add(amount);
|
|
|
+ }
|
|
|
+ saleInvoice.setOrderMoney(orderMoney.setScale(2));
|
|
|
+// saleInvoice.setAgreementTerms(saleOrder.getAgreementTerms());
|
|
|
+ // 制单人信息
|
|
|
// SysUser sysUser = sysUserService.getUserByName(saleInvoice.getCreateBy());
|
|
|
// if(saleOrder !=null && StringUtils.isNotBlank(saleOrder.getCreateBy())){
|
|
|
// SysUser sysUser = sysUserService.getUserByName(saleOrder.getCreateBy());
|
|
@@ -989,29 +1273,33 @@ public class SaleInvoiceController {
|
|
|
saleInvoice.setSalesmanName(saleCreateBy);
|
|
|
// }
|
|
|
|
|
|
- String templateFilePath = uploadpath + templates.getTemplateFile();
|
|
|
- String tempFilePath = uploadpath + "/"+ UUIDGenerator.generate()+".xlsx";
|
|
|
+ String templateFilePath = uploadpath + templates.getTemplateFile();
|
|
|
+ String tempFilePath = uploadpath + "/"+ UUIDGenerator.generate()+".xlsx";
|
|
|
|
|
|
- try (ExcelWriter excelWriter = EasyExcel.write(tempFilePath).withTemplate(templateFilePath).build()) {
|
|
|
- WriteSheet writeSheet = EasyExcel.writerSheet().build();
|
|
|
- FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).forceNewRow(Boolean.TRUE).build();
|
|
|
- excelWriter.fill(new FillWrapper(productList), fillConfig, writeSheet);
|
|
|
- excelWriter.fill(saleInvoice, writeSheet);
|
|
|
- }
|
|
|
- List<String> noteList = new ArrayList<>();
|
|
|
- productList.forEach(p->noteList.add(p.getNotes()));
|
|
|
+ try (ExcelWriter excelWriter = EasyExcel.write(tempFilePath).withTemplate(templateFilePath).build()) {
|
|
|
+ WriteSheet writeSheet = EasyExcel.writerSheet().build();
|
|
|
+ FillConfig fillConfig = FillConfig.builder().direction(WriteDirectionEnum.VERTICAL).forceNewRow(Boolean.TRUE).build();
|
|
|
+ excelWriter.fill(new FillWrapper(productList), fillConfig, writeSheet);
|
|
|
+ excelWriter.fill(saleInvoice, writeSheet);
|
|
|
+ }
|
|
|
+ List<String> noteList = new ArrayList<>();
|
|
|
+ productList.forEach(p->noteList.add(p.getNotes()));
|
|
|
|
|
|
- ExcelExportUtils.excelInsertRowNotes(getOutputStream(saleInvoice.getInvoiceCode()+".xlsx", response),
|
|
|
- tempFilePath, 19, noteList, 1, 4);
|
|
|
+ ExcelExportUtils.excelInsertRowNotes(getOutputStream(saleInvoice.getInvoiceCode()+".xlsx", response),
|
|
|
+ tempFilePath, 19, noteList, 1, 4);
|
|
|
|
|
|
|
|
|
|
|
|
- } catch (Exception ex) {
|
|
|
- ex.printStackTrace();
|
|
|
+ } catch (Exception ex) {
|
|
|
+ ex.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+
|
|
|
}
|
|
|
|
|
|
/**
|