diff --git a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java index 52cf35e866..a4d896c6fb 100644 --- a/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java +++ b/yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java @@ -61,7 +61,9 @@ import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryFeign; import com.yxt.anrui.as.feign.wms.wmsoldinventory.WmsOldInventoryPush; import com.yxt.common.base.config.component.FileUploadComponent; import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.ConstantUtils; import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.WordConvertUtils; import com.yxt.common.core.query.PagerQuery; import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; @@ -71,12 +73,16 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.io.File; +import java.io.InputStream; import java.math.BigDecimal; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.ZoneId; import java.util.*; +import static java.util.Comparator.comparing; + /** * @description: * @author: dimengzhe @@ -131,6 +137,7 @@ public class AsBusrepairBillService extends MybatisBaseService claimNos = asBusclaimBillService.selectByRepairBillSid(sid); if (!claimNos.isEmpty()) { - vo.setClaimNo(String.join(",",claimNos)); + vo.setClaimNo(String.join(",", claimNos)); } if (StringUtils.isNotBlank(detailsVo.getVinNo())) { vo.setVinNo(detailsVo.getVinNo()); @@ -1327,15 +1335,15 @@ public class AsBusrepairBillService extends MybatisBaseService detailsVos = detailsVo.getGoodsDetailsVos(); + if (!detailsVos.isEmpty()) { + List goodsPdfVos = new ArrayList<>(); + for (int i = 0; i < detailsVos.size(); i++) { + GoodsDetailsVo goodsDetailsVo = detailsVos.get(i); + SettleGoodsPdfVo goodsPdfVo = new SettleGoodsPdfVo(); + BeanUtil.copyProperties(goodsDetailsVo, goodsPdfVo); + goodsPdfVo.setSortNo(String.valueOf(i + 1)); + BigDecimal price = BigDecimal.ZERO; + BigDecimal amount = BigDecimal.ZERO; + if (StringUtils.isNotBlank(goodsDetailsVo.getPrice())) { + price = new BigDecimal(goodsDetailsVo.getPrice()); + } + if (StringUtils.isNotBlank(goodsDetailsVo.getAmount())) { + amount = new BigDecimal(goodsDetailsVo.getAmount()); + } + goodsPdfVos.add(goodsPdfVo); + if (subject.equals("保内")) { + sumMoney2.add(price); + } + if (subject.equals("保外")) { + sumMoney2.add(amount); + } + } + } + vo.setSumMoney2(sumMoney2.toString()); + String caps2 = bigDecimalToLocalStr(sumMoney2); + vo.setCaps2(caps2); + if (StringUtils.isNotBlank(detailsVo.getSubsidyAmount())) { + vo.setSubsidyAmount(detailsVo.getSubsidyAmount()); + } + if (StringUtils.isNotBlank(detailsVo.getOutAmount())) { + vo.setOutAmount(detailsVo.getOutAmount()); + } + if (StringUtils.isNotBlank(detailsVo.getRescueAmount())) { + vo.setRescueAmount(detailsVo.getRescueAmount()); + } + if (StringUtils.isNotBlank(detailsVo.getReceivableAmount())) { + vo.setReceivableAmount(detailsVo.getReceivableAmount()); + } + if (StringUtils.isNotBlank(detailsVo.getActualAmount())) { + vo.setActualAmount(detailsVo.getActualAmount()); + } + vo.setUserName(userName); + String path = createSettlePdf(vo, type, subject); + } + return rb.success().setData(filePath); + } + private String createSettlePdf(SettlePdfVo vo, String type, String subject) { + String finalPath = ""; + Map dataMap = new HashMap(); + List> list = new ArrayList<>(); + List> newList = new ArrayList<>(); + dataMap.put("company", vo.getCompany()); + dataMap.put("dept", vo.getDept()); + dataMap.put("settleTime", vo.getSettleTime()); + dataMap.put("customer", vo.getCustomer()); + dataMap.put("mobile", vo.getCompany()); + dataMap.put("billNo", vo.getCompany()); + dataMap.put("billType", vo.getCompany()); + dataMap.put("vehModel", vo.getCompany()); + dataMap.put("claimManufacturer", vo.getCompany()); + dataMap.put("claimNo", vo.getCompany()); + dataMap.put("vinNo", vo.getCompany()); + dataMap.put("vehMark", vo.getCompany()); + dataMap.put("isKp", vo.getCompany()); + dataMap.put("caps1", vo.getCompany()); + dataMap.put("sumMoney1", vo.getCompany()); + dataMap.put("caps2", vo.getCompany()); + dataMap.put("sumMoney2", vo.getCompany()); + dataMap.put("outAmount", vo.getCompany()); + dataMap.put("subsidyAmount", vo.getCompany()); + dataMap.put("rescueAmount", vo.getCompany()); + dataMap.put("receivableAmount", vo.getCompany()); + dataMap.put("actualAmount", vo.getCompany()); + dataMap.put("userName", vo.getCompany()); +// +// private String sortNo; //序号 +// private String serviceItem; //维修项目 +// private String serviceItemCode; //维修项目编码 +// private String serviceType; //工种 +// private String hourPrice; //工时单价 +// private String hours; //工时数量 +// private String price; //维修金额 +// private String discount; //折扣 +// private String discountAmount; //优惠 +// private String amount; //销售金额 +// private String repairerName; //维修技师 +// private String remarks; //备注 +// +// private List goods = new ArrayList<>(); - + List items = vo.getItems(); + if (!items.isEmpty()) { + for (SettleItemPdfVo itemPdfVo : items) { + Map map = new HashMap<>(); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + map.put("sortNo", itemPdfVo.getSortNo()); + list.add(map); + } } - return rb.success().setData(filePath); +// dataMap.put("list", list); +// String temp = "/template/"; +// String targetPath = docPdfComponent.getUploadTemplateUrl(); +// try { +// //获取模板 +// InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("ftl/vouchers/yhjt.ftl"); +// //生成word文件名 +// String dateStr = DateUtil.format(new Date(), "yyyyMMdd"); +// long seconds = System.currentTimeMillis(); +// String typeName = dateStr + seconds + ".doc"; +// File file = new File(targetPath + "templateVouchers" + seconds + ".ftl"); +// File dir = new File(targetPath); +// WordConvertUtils.inputStreamToFile(inputStream, file); +// WordConvertUtils.creatWord1(dataMap, file, targetPath, typeName, dir); +// //新生成的word路径 +// String wordPath = targetPath + typeName; +// String pdfName = "月还计提审批" + dateStr + seconds + ".pdf"; +// WordConvertUtils.doc2pdf(wordPath, targetPath, pdfName); +// finalPath = temp + pdfName; +// } catch (NoClassDefFoundError e) { +// e.printStackTrace(); +// finalPath = targetPath; +// } + + return finalPath; } public static String bigDecimalToLocalStr(BigDecimal bigDecimal) {