| | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.hutool.core.convert.Convert; |
| | | import cn.hutool.core.date.LocalDateTimeUtil; |
| | | import cn.hutool.core.io.FileUtil; |
| | | import cn.hutool.core.lang.Assert; |
| | | import cn.hutool.core.util.StrUtil; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | |
| | | import com.ruoyi.common.enums.FileNameType; |
| | | import com.ruoyi.common.enums.SaleEnum; |
| | | import com.ruoyi.common.exception.base.BaseException; |
| | | import com.ruoyi.common.utils.*; |
| | | import com.ruoyi.common.utils.DateUtils; |
| | | import com.ruoyi.common.utils.EnumUtil; |
| | | import com.ruoyi.common.utils.SecurityUtils; |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.poi.ExcelUtil; |
| | | import com.ruoyi.framework.security.LoginUser; |
| | | import com.ruoyi.framework.web.domain.AjaxResult; |
| | |
| | | import java.lang.reflect.Field; |
| | | import java.math.BigDecimal; |
| | | import java.math.RoundingMode; |
| | | import java.net.URLEncoder; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.nio.file.Files; |
| | | import java.nio.file.Path; |
| | | import java.nio.file.Paths; |
| | |
| | | |
| | | // 填写乙方信息 |
| | | ExportProcessContractVo.Customer partyB = new ExportProcessContractVo.Customer(); |
| | | exportProcessContract.setPartyBClientName("");//todo@ 乙方公司名称 |
| | | exportProcessContract.setPartyBClientName("天津阳光彩印股份有限公司"); |
| | | partyB.setBankName("农行天津武清开发区支行"); |
| | | partyB.setBankCode("02061601040014681"); |
| | | partyB.setTaxpayerIdentificationNumber("91120000562687393p"); |
| | | partyB.setAddress("天津武清区开发区泉州北路29号"); |
| | | partyB.setFax("022-82126666"); |
| | | partyB.setPostCode("301700"); |
| | | exportProcessContract.setPartyB(partyB); |
| | | |
| | | // 填写商品信息 |
| | |
| | | } |
| | | |
| | | @SneakyThrows |
| | | private void exportProcessContractToWord(@NotNull ExportProcessContractVo exportProcessContract){ |
| | | private void exportProcessContractToWord(@NotNull ExportProcessContractVo exportProcessContract) { |
| | | // 确保 saleProducts 不为 null |
| | | if (exportProcessContract.getSaleProducts() == null) { |
| | | exportProcessContract.setSaleProducts(new ArrayList<>()); |
| | |
| | | HttpServletResponse response = |
| | | ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder.getRequestAttributes())) |
| | | .getResponse(); |
| | | String rawFileName = StrUtil.format("{}-{}合同.docx", |
| | | exportProcessContract.getPartyAClientName(), |
| | | exportProcessContract.getCreateTime()); |
| | | String encodedFileName = URLEncoder.encode(rawFileName, StandardCharsets.UTF_8.toString()); |
| | | response.setHeader("Content-Disposition", "attachment; filename*=UTF-8''" + encodedFileName); |
| | | response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document"); |
| | | response.setHeader("Content-Disposition", "attachment;filename="+ StrUtil.format("{}-{}",exportProcessContract.getPartyAClientName(),exportProcessContract.getCreateTime()) +"合同.docx"); |
| | | |
| | | template.write(response.getOutputStream()); |
| | | template.close(); |
| | | response.flushBuffer(); |