|
|
package com.glxp.api.controller.inv;
|
|
|
|
|
|
import cn.hutool.core.thread.ThreadUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import com.github.pagehelper.PageInfo;
|
|
|
import com.glxp.api.annotation.AuthRuleAnnotation;
|
|
|
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.dao.inv.InvInnerOrderPdfTempDao;
|
|
|
import com.glxp.api.entity.inv.InvInnerOrderPrintEntity;
|
|
|
import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity;
|
|
|
import com.glxp.api.entity.system.SystemPDFModuleEntity;
|
|
|
import com.glxp.api.entity.system.SystemPDFTemplateEntity;
|
|
|
import com.glxp.api.req.inout.InspectionPDFTemplateRequest;
|
|
|
import com.glxp.api.req.inv.*;
|
|
|
import com.glxp.api.res.PageSimpleResponse;
|
|
|
import com.glxp.api.res.inv.innerOrderPrintRequest;
|
|
|
import com.glxp.api.service.auth.CustomerService;
|
|
|
import com.glxp.api.service.basic.UdiProductService;
|
|
|
import com.glxp.api.service.inv.InnerOrderDetailService;
|
|
|
import com.glxp.api.service.inv.InvInnerOrderPdfTempService;
|
|
|
import com.glxp.api.service.inv.InvInnerOrderPrintService;
|
|
|
import com.glxp.api.service.inv.JaspaperService;
|
|
|
import com.glxp.api.service.system.SystemPDFModuleService;
|
|
|
import com.glxp.api.service.system.SystemPDFTemplateService;
|
|
|
import com.glxp.api.util.CustomUtil;
|
|
|
import com.glxp.api.util.FileUtils;
|
|
|
import com.glxp.api.util.JasperUtils;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Value;
|
|
|
import org.springframework.scheduling.annotation.Async;
|
|
|
import org.springframework.validation.BindingResult;
|
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
import java.io.File;
|
|
|
import java.util.*;
|
|
|
|
|
|
@RestController
|
|
|
public class InvInnerOrderPrintController {
|
|
|
|
|
|
@Resource
|
|
|
private InvInnerOrderPrintService invInnerOrderPrintService;
|
|
|
|
|
|
@Resource
|
|
|
SystemPDFModuleService systemPDFModuleService;
|
|
|
@Resource
|
|
|
SystemPDFTemplateService systemPDFTemplateService;
|
|
|
@Value("${file_path}")
|
|
|
private String dirPath;
|
|
|
@Resource
|
|
|
private JaspaperService jaspaperService;
|
|
|
@Resource
|
|
|
private InvInnerOrderPdfTempService innerOrderPdfTempService;
|
|
|
|
|
|
|
|
|
@GetMapping("/udiwms/innerOrderPrint/filter")
|
|
|
public BaseResponse filterList(FilterinnerOrderprintRequest filterinnerOrderprintRequest) {
|
|
|
List<InvInnerOrderPrintEntity> list = invInnerOrderPrintService.filterOrderPrintList(filterinnerOrderprintRequest);
|
|
|
PageInfo<InvInnerOrderPrintEntity> pageInfo = new PageInfo<>(list);
|
|
|
PageSimpleResponse<InvInnerOrderPrintEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
pageSimpleResponse.setList(pageInfo.getList());
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
}
|
|
|
|
|
|
@PostMapping("/udiwms/innerOrderPrint/addOrderPrint")
|
|
|
public BaseResponse addOrderPrint(@RequestBody invInnerOrderprintReques invInnerOrderprintReques) {
|
|
|
|
|
|
if (invInnerOrderprintReques.getOrderIdFk() != null) {
|
|
|
invInnerOrderPrintService.addOrderList(invInnerOrderprintReques.getOrderIdFk());
|
|
|
} else {
|
|
|
return ResultVOUtils.error(999, "参数错误!");
|
|
|
}
|
|
|
return ResultVOUtils.success();
|
|
|
|
|
|
}
|
|
|
|
|
|
//-----------打印码
|
|
|
@AuthRuleAnnotation("")
|
|
|
@PostMapping("/udiwms/pdf/template/inspection/stock/qrcode/text/file")
|
|
|
public BaseResponse inspectionStockQRCodeTextPDFFromTemplateFile(
|
|
|
@RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) throws Exception {
|
|
|
|
|
|
if (inspectionPDFTemplateRequest.getModuleId() == null)
|
|
|
inspectionPDFTemplateRequest.setModuleId(3);
|
|
|
SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(inspectionPDFTemplateRequest.getModuleId() + "");
|
|
|
if (systemPDFModuleEntity == null) return ResultVOUtils.error(ResultEnum.DATA_NOT, "所属模块错误");
|
|
|
SystemPDFTemplateEntity systemPDFTemplateEntity =
|
|
|
systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId()));
|
|
|
if (systemPDFTemplateEntity == null) return ResultVOUtils.error(ResultEnum.DATA_NOT, "模板错误");
|
|
|
|
|
|
return ResultVOUtils.success();
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@PostMapping("/udiwms/pdf/template/stock/qrcode/text/file")
|
|
|
public BaseResponse stockQRCodeTextPDFFromTemplateFile(
|
|
|
@RequestBody InnerOrderQRCodeTextPDFTemplateRequest stockQRCodeTextPDFTemplateRequest,
|
|
|
HttpServletRequest request, HttpServletResponse response) throws Exception {
|
|
|
if (stockQRCodeTextPDFTemplateRequest.getModuleId() == null)
|
|
|
stockQRCodeTextPDFTemplateRequest.setModuleId(3);
|
|
|
SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(stockQRCodeTextPDFTemplateRequest.getModuleId() + "");
|
|
|
if (systemPDFModuleEntity == null) return ResultVOUtils.error(500, "未找到单据模板模块设置,请检查");
|
|
|
SystemPDFTemplateEntity systemPDFTemplateEntity =
|
|
|
systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId()));
|
|
|
if (systemPDFTemplateEntity == null) return null;
|
|
|
List<innerOrderPrintRequest> printEntities = new ArrayList<>();
|
|
|
List<innerOrderPrintRequest> mStockPrintEntities = new ArrayList<>();
|
|
|
FilterinnerOrderprintRequest filterinnerOrderprintRequest = new FilterinnerOrderprintRequest();
|
|
|
if (stockQRCodeTextPDFTemplateRequest.getOrderId() != null) {
|
|
|
filterinnerOrderprintRequest.setSOrderId(stockQRCodeTextPDFTemplateRequest.getOrderId());
|
|
|
} else {
|
|
|
filterinnerOrderprintRequest.setId(stockQRCodeTextPDFTemplateRequest.getQueryId());
|
|
|
}
|
|
|
List<innerOrderPrintRequest> stockPrintEntities = invInnerOrderPrintService.filterJoinInnerPrint(filterinnerOrderprintRequest);
|
|
|
if (stockPrintEntities != null && stockPrintEntities.size() > 0) {
|
|
|
mStockPrintEntities.addAll(stockPrintEntities);
|
|
|
}
|
|
|
for (innerOrderPrintRequest innerOrderPrintRequest : mStockPrintEntities) {
|
|
|
PdfPrintCountEntity pdfPrintCount = getCount(stockQRCodeTextPDFTemplateRequest.getCountList(), innerOrderPrintRequest);
|
|
|
if (pdfPrintCount != null && pdfPrintCount.getRowCount() > 0) {
|
|
|
for (int i = 0; i < pdfPrintCount.getRowCount(); i++) {
|
|
|
innerOrderPrintRequest clone = new innerOrderPrintRequest();
|
|
|
BeanUtils.copyProperties(innerOrderPrintRequest, clone);
|
|
|
printEntities.add(clone);
|
|
|
}
|
|
|
} else {
|
|
|
printEntities.add(innerOrderPrintRequest);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
if (printEntities.size() > 1000) { //如果标签打印数据大于1000,则切割生成多个文件
|
|
|
if (!FileUtils.isFileExist(dirPath + "/pdfprint")) {
|
|
|
new File(dirPath + "/pdfprint").mkdirs();
|
|
|
}
|
|
|
List<List<innerOrderPrintRequest>> splits = CustomUtil.splitList(printEntities, 100);
|
|
|
int index = 0;
|
|
|
List<InvInnerOrderPdfTempEntity> stockPrintTempEntities = new ArrayList<>();
|
|
|
for (int i = 0; i < splits.size(); i++) {
|
|
|
index++;
|
|
|
InvInnerOrderPdfTempEntity stockPrintTempEntity = new InvInnerOrderPdfTempEntity();
|
|
|
if (stockQRCodeTextPDFTemplateRequest.getOrderId() != null) {
|
|
|
String fileName = stockQRCodeTextPDFTemplateRequest.getOrderId() + "__" + index + "__标签打印" + ".pdf";
|
|
|
String filePath = dirPath + "\\pdfprint\\" + fileName;
|
|
|
stockPrintTempEntity.setFileName(fileName);
|
|
|
stockPrintTempEntity.setFilePath(filePath);
|
|
|
stockPrintTempEntity.setStockOrderFk(stockQRCodeTextPDFTemplateRequest.getOrderId());
|
|
|
} else {
|
|
|
String fileName = stockQRCodeTextPDFTemplateRequest.getQueryId() + "__" + index + "__标签打印" + ".pdf";
|
|
|
String filePath = dirPath + "\\pdfprint\\" + fileName;
|
|
|
stockPrintTempEntity.setFileName(fileName);
|
|
|
stockPrintTempEntity.setFilePath(filePath);
|
|
|
stockPrintTempEntity.setPrintCodeIdFk(stockQRCodeTextPDFTemplateRequest.getQueryId());
|
|
|
}
|
|
|
stockPrintTempEntity.setStatus(0);
|
|
|
stockPrintTempEntity.setGenkey(CustomUtil.getId());
|
|
|
innerOrderPdfTempService.insertStockPrintTempEntity(stockPrintTempEntity);
|
|
|
stockPrintTempEntities.add(stockPrintTempEntity);
|
|
|
}
|
|
|
jaspaperService.printPdfLocal(splits, stockPrintTempEntities, systemPDFTemplateEntity.getPath());
|
|
|
PageInfo<InvInnerOrderPdfTempEntity> pageInfo;
|
|
|
pageInfo = new PageInfo<>(stockPrintTempEntities);
|
|
|
PageSimpleResponse<InvInnerOrderPdfTempEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
pageSimpleResponse.setList(stockPrintTempEntities);
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
|
} else {
|
|
|
Map<String, Object> data = new HashMap<String, Object>();
|
|
|
data.put("data", printEntities);
|
|
|
JasperUtils.jasperReport(request, response, data, systemPDFTemplateEntity.getPath(), "pdf");
|
|
|
|
|
|
|
|
|
}
|
|
|
for (innerOrderPrintRequest innerOrderPrintRequest : mStockPrintEntities) {
|
|
|
InvInnerOrderPrintEntity innerOrderPrintEntity = new InvInnerOrderPrintEntity();
|
|
|
innerOrderPrintEntity.setStatus(1);
|
|
|
innerOrderPrintEntity.setId(innerOrderPrintRequest.getId());
|
|
|
invInnerOrderPrintService.updateOrder(innerOrderPrintEntity);
|
|
|
}
|
|
|
return null;
|
|
|
|
|
|
}
|
|
|
|
|
|
public PdfPrintCountEntity getCount(List<PdfPrintCountEntity> countList, innerOrderPrintRequest innerOrderPrintRequest) {
|
|
|
for (PdfPrintCountEntity pdfPrintCount : countList) {
|
|
|
if (pdfPrintCount.getQueryId().equals(innerOrderPrintRequest.getId() + "")) {
|
|
|
return pdfPrintCount;
|
|
|
}
|
|
|
}
|
|
|
return null;
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@PostMapping("/udiwms/pdf/template/stock/qrcode/text/maxfile")
|
|
|
public BaseResponse stockQRCodeMaxTextPDFFromTemplateFile(@RequestBody InnerOrderQRCodeTextPDFTemplateRequest innerOrderQRCodeTextPDFTemplateRequest) {
|
|
|
|
|
|
PageSimpleResponse pageSimpleResponse = invInnerOrderPrintService.print(innerOrderQRCodeTextPDFTemplateRequest);
|
|
|
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
|
|
|
}
|
|
|
|
|
|
@AuthRuleAnnotation("")
|
|
|
@GetMapping("/spms/stock/qrcode/filterTemp")
|
|
|
public BaseResponse filterTemp(DeleteStPrintTempRequest deleteStPrintTempRequest,
|
|
|
BindingResult bindingResult) {
|
|
|
|
|
|
if (bindingResult.hasErrors()) {
|
|
|
return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage());
|
|
|
}
|
|
|
List<InvInnerOrderPdfTempEntity> stockQRCodeTextEntityList = innerOrderPdfTempService.filterStockPrintTempEntity(deleteStPrintTempRequest);
|
|
|
PageInfo<InvInnerOrderPdfTempEntity> pageInfo;
|
|
|
pageInfo = new PageInfo<>(stockQRCodeTextEntityList);
|
|
|
PageSimpleResponse<InvInnerOrderPdfTempEntity> pageSimpleResponse = new PageSimpleResponse<>();
|
|
|
pageSimpleResponse.setTotal(pageInfo.getTotal());
|
|
|
pageSimpleResponse.setList(stockQRCodeTextEntityList);
|
|
|
return ResultVOUtils.success(pageSimpleResponse);
|
|
|
}
|
|
|
|
|
|
}
|