| | |
| | | import com.fasterxml.jackson.databind.ObjectMapper |
| | | import com.fasterxml.jackson.module.kotlin.readValue |
| | | import com.github.pagehelper.PageHelper |
| | | import com.google.gson.Gson |
| | | import net.coobird.thumbnailator.tasks.io.InputStreamImageSource |
| | | import org.springframework.beans.factory.annotation.Value |
| | | import org.springframework.stereotype.Service |
| | |
| | | import tk.mybatis.mapper.entity.Example |
| | | import java.awt.Image |
| | | import java.io.File |
| | | import java.time.LocalDate |
| | | import java.time.format.DateTimeFormatter |
| | | import java.util.* |
| | | import javax.imageio.ImageReader |
| | | import javax.imageio.stream.ImageInputStream |
| | |
| | | var success = 0 |
| | | commitmentVos.forEach { |
| | | var picPath = "" |
| | | val time = DateUtil().DateToString(Date(), DateUtil.DateStyle.YYYY_MM) |
| | | val time = DateUtil.DateToString(Date(), DateUtil.DateStyle.YYYY_MM) |
| | | files.forEach { file -> |
| | | val fileName = file.originalFilename |
| | | //TODO 此处的文件路径需要修改为动态配置 |
| | |
| | | return commitmentVos.size == success |
| | | } |
| | | |
| | | override fun createLetterOfCommitment(userId: String, info: CommitmentVo, sign: MultipartFile, seal: MultipartFile?): BaseResponse<String> { |
| | | val signUrl = FileUtil.compressImage2(sign.bytes, 400) |
| | | override fun createLetterOfCommitment(userId: String, info: String, sign: MultipartFile?, seal: MultipartFile?): BaseResponse<List<String>> { |
| | | sign ?: return BaseResponse(false, "签名图片未上传成功") |
| | | val infoVo = Gson().fromJson(info, CommitmentVo::class.java) |
| | | |
| | | val signUrl = infoVo.sign.ifBlank { FileUtil.compressImage2(sign.bytes, 400) } |
| | | val sealUrl = if (seal != null) FileUtil.compressImage2(seal.bytes, 400) else "" |
| | | |
| | | val templatePath = (Thread.currentThread().contextClassLoader?.getResource("/")?.path ?: "src/main") + "/resources/templates/" |
| | | |
| | | val time = DateUtil().DateToString(Date(), DateUtil.DateStyle.YYYY_MM) |
| | | val templatePath = (Thread.currentThread().contextClassLoader?.getResource("/")?.path ?: "src/main/resources") + "/templates/" |
| | | val time = DateUtil.DateToString(Date(), DateUtil.DateStyle.YYYY_MM) |
| | | val path = "commitments/$time/$userId/" |
| | | val contractPath = imgPath + path |
| | | |
| | |
| | | contractName = "commitment-vehicle-${now.time}.pdf" |
| | | } |
| | | } |
| | | // val picName = contractName.replace("pdf", "jpg") |
| | | |
| | | //补全信息 |
| | | infoVo.apply { |
| | | if (city.isBlank()) city = "上海市" |
| | | if (district.isBlank()) district = userInfo.extension1 ?: "" |
| | | if (year.isBlank()) { |
| | | val t = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")).split("-") |
| | | year = t[0] |
| | | month = t[1] |
| | | day = t[2] |
| | | } |
| | | } |
| | | params.apply { |
| | | put("City", info.city) |
| | | put("District", info.district) |
| | | put("Department", info.department) |
| | | put("SocialCode", info.socialCode) |
| | | put("Number", info.number) |
| | | put("JuridicalPerson", info.juridicalPerson) |
| | | put("IdNo", info.idNo) |
| | | put("Type1", if (info.type1) "✓" else "□") |
| | | put("Type2", if (info.type2) "✓" else "□") |
| | | put("Type3", if (info.type3) "✓" else "□") |
| | | put("Type4", if (info.type4) "✓" else "□") |
| | | put("City", infoVo.city) |
| | | put("District", infoVo.district) |
| | | put("Department", infoVo.department) |
| | | put("SocialCode", infoVo.socialCode) |
| | | put("Number", infoVo.number) |
| | | put("JuridicalPerson", infoVo.juridicalPerson) |
| | | put("IdNo", infoVo.idNo) |
| | | put("Type1", if (infoVo.type1) "√" else "□") |
| | | put("Type2", if (infoVo.type2) "√" else "□") |
| | | put("Type3", if (infoVo.type3) "√" else "□") |
| | | put("Type4", if (infoVo.type4) "√" else "□") |
| | | put("Sign", signUrl) |
| | | put("Seal", sealUrl) |
| | | put("Year", info.year) |
| | | put("Month", info.month) |
| | | put("Day", info.day) |
| | | put("Year", infoVo.year) |
| | | put("Month", infoVo.month) |
| | | put("Day", infoVo.day) |
| | | } |
| | | val param = DynamicParam(templatePath, templateName, contractPath, contractName, params) |
| | | GeneratePdfUtil.generateContract(param) |
| | | //将生产的承诺书记录插入数据库 |
| | | val picPaths = GeneratePdfUtil.generateContract(param) |
| | | var picPath = "" |
| | | for (i in picPaths.indices) { |
| | | val picName = contractName.replace(".pdf", "(${i}).jpg"); |
| | | if (picPath.isNotBlank()) { |
| | | picPath += ";" |
| | | } |
| | | picPath += (path + picName) |
| | | } |
| | | |
| | | //将生成的承诺书记录插入数据库 |
| | | val commitment = Commitment().apply { |
| | | cmGuid = UUIDGenerator.generate16ShortUUID() |
| | | uiGuid = userId |
| | | cmUrl = path + contractName |
| | | cmUrl = picPath |
| | | cmPdfUrl = path + contractName |
| | | cmCreateTime = Date() |
| | | } |
| | | val r = commitmentMapper.insert(commitment) |
| | | |
| | | return BaseResponse(r == 1, data = path) |
| | | return BaseResponse(r == 1, data = listOf(commitment.cmUrl, commitment.cmPdfUrl)) |
| | | } |
| | | } |