package com.glxp.api.controller.system; import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.Log; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.BusinessType; import com.glxp.api.entity.system.SystemPDFTemplateEntity; import com.glxp.api.req.system.FilterPdfTemplateRequest; import com.glxp.api.req.system.SysPdfTemplateSaveRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.system.SystemPDFTemplateResponse; import com.glxp.api.res.system.SystemPDFTemplateSelectResponse; import com.glxp.api.service.system.SystemPDFTemplateService; import com.glxp.api.util.JasperUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import java.io.File; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @RestController public class SysPdfTemplateController { @Resource private SystemPDFTemplateService systemPDFTemplateService; @AuthRuleAnnotation("system/pdf/template/list") @GetMapping("/system/pdf/template/list") public BaseResponse list(@Valid FilterPdfTemplateRequest filterPdfTemplateRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } // systemPDFTemplateRequest.setType(2); List systemPDFTemplateEntityList = systemPDFTemplateService.queryPage(filterPdfTemplateRequest); List systemPDFTemplateResponseList = systemPDFTemplateEntityList.stream().map(item -> { SystemPDFTemplateResponse systemPDFTemplateResponse = new SystemPDFTemplateResponse(); BeanUtils.copyProperties(item, systemPDFTemplateResponse); if(item.getBussinessStatus()!=null){ systemPDFTemplateResponse.setBussinessStatusList(Arrays.asList(item.getBussinessStatus().split(","))); } return systemPDFTemplateResponse; }).collect(Collectors.toList()); PageInfo pageInfo = new PageInfo<>(systemPDFTemplateEntityList); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(systemPDFTemplateResponseList); return ResultVOUtils.success(pageSimpleResponse); } @AuthRuleAnnotation("") @PostMapping("/system/pdf/template/demoPrint") public void demoPrint( @RequestBody FilterPdfTemplateRequest filterPdfTemplateRequest, HttpServletRequest request, HttpServletResponse response) throws Exception { SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(String.valueOf(filterPdfTemplateRequest.getId())); String data = ""; if (systemPDFTemplateEntity.getModule() == 3) { data = "{\"data\":[{\"batchNo\":\"2020\",\"billNo\":\"2022040811589\",\"billType\":\"ST39730635520\",\"billdate\":\"2022-04-08\",\"corpId\":\"39864007581\",\"corpName\":\"漳州**有限公司\",\"count\":\"4\",\"customerId\":\"39864007581\",\"expireDate\":\"251020\",\"id\":\"10\",\"index\":\"1\",\"locInv\":\"总库\",\"orderIdFk\":\"SM412208685600\",\"printStatus\":\"102\",\"productDate\":\"201020\",\"productId\":\"169\",\"productName\":\"一次性使用开环式微创肛肠吻合器\",\"sourceType\":\"1\",\"spec\":\"TST33-T80——2993规格\",\"status\":\"5\",\"sweepCount\":\"0\",\"title\":\"漳州**医院\",\"type\":\"2\",\"unitIdFk\":\"39864007581\",\"ylqxzcrbarmc\":\"漳州**有限公司\",\"zczbhhzbapzbh\":\"苏械注准2022000000\",\"price\":\"10.00\"},{\"batchNo\":\"2023\",\"billNo\":\"2022040811589\",\"billType\":\"ST39730635520\",\"billdate\":\"2022-04-08\",\"corpId\":\"39864007581\",\"corpName\":\"漳州**有限公司\",\"count\":\"4\",\"customerId\":\"39864007581\",\"expireDate\":\"251020\",\"id\":\"10\",\"index\":\"2\",\"locInv\":\"总库\",\"orderIdFk\":\"SM412208685600\",\"printStatus\":\"102\",\"productDate\":\"201020\",\"productId\":\"169\",\"productName\":\"一次性使用开环式微创肛肠吻合器\",\"sourceType\":\"1\",\"spec\":\"TST33-T80——2993规格\",\"status\":\"5\",\"sweepCount\":\"0\",\"title\":\"漳州**医院\",\"type\":\"2\",\"unitIdFk\":\"39864007581\",\"ylqxzcrbarmc\":\"漳州**有限公司\",\"zczbhhzbapzbh\":\"苏械注准2022000000\",\"price\":\"10.00\"},{\"batchNo\":\"2021\",\"billNo\":\"2022040811589\",\"billType\":\"ST39730635520\",\"billdate\":\"2022-04-08\",\"corpId\":\"39864007581\",\"corpName\":\"漳州**有限公司\",\"count\":\"4\",\"customerId\":\"39864007581\",\"expireDate\":\"251020\",\"id\":\"10\",\"index\":\"3\",\"locInv\":\"总库\",\"orderIdFk\":\"SM412208685600\",\"printStatus\":\"102\",\"productDate\":\"201020\",\"productId\":\"169\",\"productName\":\"一次性使用开环式微创肛肠吻合器\",\"sourceType\":\"1\",\"spec\":\"TST33-T80——2993规格\",\"status\":\"5\",\"sweepCount\":\"0\",\"title\":\"漳州**医院\",\"type\":\"2\",\"unitIdFk\":\"39864007581\",\"ylqxzcrbarmc\":\"漳州**有限公司\",\"zczbhhzbapzbh\":\"苏械注准2022000000\",\"price\":\"10.00\"}]}"; } else if (systemPDFTemplateEntity.getModule() == 2) { data = "{\"data\":[{\"batchNo\":\"2021\",\"corpName\":\"漳州***医院\",\"count\":10,\"cpmctymc\":\"髋关节假体\",\"expireDate\":\"230606\",\"ggxh\":\"DTUCS Ⅱ 3#\",\"id\":4,\"nameCode\":\"06902139302144\",\"produceDate\":\"210606\",\"udiCode\":\"#06902139302144#210606#230606#2021###\",\"ylqxzcrbarmc\":\"漳州**有限公司\",\"zczbhhzbapzbh\":\"国械注准201000000000\"},{\"batchNo\":\"2021\",\"corpName\":\"漳州***医院\",\"count\":10,\"cpmctymc\":\"髋关节假体\",\"expireDate\":\"230606\",\"ggxh\":\"DTUCS Ⅱ 3#\",\"id\":4,\"nameCode\":\"06902139302144\",\"produceDate\":\"210606\",\"udiCode\":\"#06902139302144#210606#230606#2021###\",\"ylqxzcrbarmc\":\"漳州**有限公司\",\"zczbhhzbapzbh\":\"国械注准201000000000\"},{\"batchNo\":\"2021\",\"corpName\":\"漳州***医院\",\"count\":10,\"cpmctymc\":\"髋关节假体\",\"expireDate\":\"230606\",\"ggxh\":\"DTUCS Ⅱ 3#\",\"id\":4,\"nameCode\":\"06902139302144\",\"produceDate\":\"210606\",\"udiCode\":\"#06902139302144#210606#230606#2021###\",\"ylqxzcrbarmc\":\"漳州**有限公司\",\"zczbhhzbapzbh\":\"国械注准201000000000\"},{\"batchNo\":\"2021\",\"corpName\":\"漳州***医院\",\"count\":10,\"cpmctymc\":\"髋关节假体\",\"expireDate\":\"230606\",\"ggxh\":\"DTUCS Ⅱ 3#\",\"id\":4,\"nameCode\":\"06902139302144\",\"produceDate\":\"210606\",\"udiCode\":\"#06902139302144#210606#230606#2021###\",\"ylqxzcrbarmc\":\"漳州**有限公司\",\"zczbhhzbapzbh\":\"国械注准201000000000\"},{\"batchNo\":\"2021\",\"corpName\":\"漳州***医院\",\"count\":10,\"cpmctymc\":\"髋关节假体\",\"expireDate\":\"230606\",\"ggxh\":\"DTUCS Ⅱ 3#\",\"id\":4,\"nameCode\":\"06902139302144\",\"produceDate\":\"210606\",\"udiCode\":\"#06902139302144#210606#230606#2021###\",\"ylqxzcrbarmc\":\"漳州**有限公司\",\"zczbhhzbapzbh\":\"国械注准201000000000\"},{\"batchNo\":\"2021\",\"corpName\":\"漳州***医院\",\"count\":10,\"cpmctymc\":\"髋关节假体\",\"expireDate\":\"230606\",\"ggxh\":\"DTUCS Ⅱ 3#\",\"id\":4,\"nameCode\":\"06902139302144\",\"produceDate\":\"210606\",\"udiCode\":\"#06902139302144#210606#230606#2021###\",\"ylqxzcrbarmc\":\"漳州**有限公司\",\"zczbhhzbapzbh\":\"国械注准201000000000\"}]}"; } else if (systemPDFTemplateEntity.getModule() == 1) { data = "[{\"area\":\"福建省厦门市湖里区\",\"vaiDate\":\"2023-03-15\",\"code\":\"1113\",\"companyName\":\"盛夏科技\",\"classes\":\"经营企业\",\"mobile\":\"18575144832\",\"index\":\"1\",\"remark\":\"12\",\"detailAddr\":\"湖里\",\"name\":\"业务许可证\",\"creditNum\":\"6464684643\",\"auditStatus\":\"审核通过\",\"expireDate\":\"2023-03-16\",\"contacts\":\"东\",\"email\":\"46456@qq.com\",\"status\":\"有效\"}]"; } JasperUtils.jasperReport(request, response, data, systemPDFTemplateEntity.getPath(), "pdf"); } @AuthRuleAnnotation("system/pdf/template/list") @GetMapping("/system/pdf/template/pdfTemplates") public BaseResponse pdfTemplates(@RequestParam(value = "page", defaultValue = "1") Integer page, @RequestParam(value = "limit", defaultValue = "100") Integer limit) { List systemPDFTemplateEntityList = systemPDFTemplateService.listPDFTemplates(page, limit); PageInfo pageInfo = new PageInfo<>(systemPDFTemplateEntityList); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); List systemPDFTemplateSelectResponses = systemPDFTemplateEntityList.stream().map(e -> { SystemPDFTemplateSelectResponse systemPDFTemplateSelectResponse = new SystemPDFTemplateSelectResponse(); BeanUtils.copyProperties(e, systemPDFTemplateSelectResponse); systemPDFTemplateSelectResponse.setIdStr(String.valueOf(e.getId())); return systemPDFTemplateSelectResponse; }).collect(Collectors.toList()); pageSimpleResponse.setList(systemPDFTemplateSelectResponses); return ResultVOUtils.success(pageSimpleResponse); } @AuthRuleAnnotation("system/pdf/template/save") @PostMapping("/system/pdf/template/save") @Log(title = "pdf模板", businessType = BusinessType.INSERT) public BaseResponse save(@RequestBody @Valid SysPdfTemplateSaveRequest sysPdfTemplateSaveRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } SystemPDFTemplateEntity systemPDFTemplateEntity = new SystemPDFTemplateEntity(); BeanUtils.copyProperties(sysPdfTemplateSaveRequest, systemPDFTemplateEntity); if(sysPdfTemplateSaveRequest.getBussinessStatusList().size()>0){ String bussinessStatus = String.join(",", sysPdfTemplateSaveRequest.getBussinessStatusList()); systemPDFTemplateEntity.setBussinessStatus(bussinessStatus); } systemPDFTemplateEntity.setCreate_time(new Date()); systemPDFTemplateEntity.setUpdate_time(new Date()); boolean b = systemPDFTemplateService.insert(systemPDFTemplateEntity); if (!b) { return ResultVOUtils.error(ResultEnum.NOT_NETWORK); } return ResultVOUtils.success(); } @AuthRuleAnnotation("system/pdf/template/update") @PostMapping("/system/pdf/template/update") @Log(title = "pdf模板", businessType = BusinessType.UPDATE) public BaseResponse update(@RequestBody SysPdfTemplateSaveRequest sysPdfTemplateSaveRequest) { // systemPDFTemplateSaveRequest.setId(1); if(sysPdfTemplateSaveRequest.getBussinessStatusList()!=null && sysPdfTemplateSaveRequest.getBussinessStatusList().size()>0){ String bussinessStatus = String.join(",", sysPdfTemplateSaveRequest.getBussinessStatusList()); sysPdfTemplateSaveRequest.setBussinessStatus(bussinessStatus); } sysPdfTemplateSaveRequest.setUpdate_time(new Date()); systemPDFTemplateService.updateById(sysPdfTemplateSaveRequest); return ResultVOUtils.success("修改成功"); } @AuthRuleAnnotation("system/pdf/template/delete") @PostMapping("/system/pdf/template/delete") @Log(title = "pdf模板", businessType = BusinessType.DELETE) public BaseResponse deleteById(@RequestBody SysPdfTemplateSaveRequest sysPdfTemplateSaveRequest) { if (StringUtils.isNotBlank(sysPdfTemplateSaveRequest.getPath())) {//删除文件 File file = new File(sysPdfTemplateSaveRequest.getPath()); file.delete(); } boolean b = systemPDFTemplateService.deleteById(sysPdfTemplateSaveRequest.getId()); if (b) return ResultVOUtils.success("删除成功"); else { return ResultVOUtils.error(500, "删除失败"); } } }