You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/controller/purchase/PurOrderPrintController.java

302 lines
16 KiB
Java

package com.glxp.api.controller.purchase;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.glxp.api.annotation.AuthRuleAnnotation;
import com.glxp.api.common.enums.ResultEnum;
import com.glxp.api.common.util.ResultVOUtils;
import com.glxp.api.constant.Constant;
import com.glxp.api.constant.ConstantStatus;
import com.glxp.api.entity.system.SysPdfTemplateRelevanceBizEntity;
import com.glxp.api.entity.system.SystemPDFTemplateEntity;
import com.glxp.api.exception.JsonException;
import com.glxp.api.req.inout.FilterReceiveDetailRequest;
import com.glxp.api.req.inout.FilterReceiveRequest;
import com.glxp.api.req.inout.PurOrderPrintRequest;
import com.glxp.api.req.purchase.PurApplyDetailRequest;
import com.glxp.api.req.purchase.PurApplyRequest;
import com.glxp.api.req.purchase.PurOrderDetailRequest;
import com.glxp.api.req.purchase.PurOrderRequest;
import com.glxp.api.res.inout.ReceiveDetailResponse;
import com.glxp.api.res.inout.ReceiveResponse;
import com.glxp.api.res.purchase.PurApplyResponse;
import com.glxp.api.res.purchase.PurOrderDetailResponse;
import com.glxp.api.res.purchase.PurOrderResponse;
import com.glxp.api.service.inout.impl.ReceiveDetailService;
import com.glxp.api.service.inout.impl.ReceiveService;
import com.glxp.api.service.purchase.PurOrderService;
import com.glxp.api.service.purchase.impl.PurApplyDetailService;
import com.glxp.api.service.purchase.impl.PurApplyService;
import com.glxp.api.service.purchase.impl.PurOrderDetailService;
import com.glxp.api.service.system.SystemPDFTemplateRelevanceBizService;
import com.glxp.api.service.system.SystemPDFTemplateService;
import com.glxp.api.util.IntUtil;
import com.glxp.api.util.JasperUtils;
import com.glxp.api.util.MsDateUtil;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
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.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 业务管理打印
*/
@Slf4j
@RestController
public class PurOrderPrintController {
@Value("${file_path}")
private String filePath;
@Resource
SystemPDFTemplateRelevanceBizService systemPDFTemplateRelevanceBizService;
@Resource
private SystemPDFTemplateService systemPDFTemplateService;
@Resource
ReceiveService receiveService;
@Resource
ReceiveDetailService receivedetailService;
@Resource
PurApplyService purApplyService;
@Resource
PurApplyDetailService purApplyDetailService;
@Resource
PurOrderService purOrderService;
@Resource
PurOrderDetailService purOrderDetailService;
/**
* 领用单单据打印
*
* @param request
* @param response
* @throws Exception
*/
@AuthRuleAnnotation("")
@PostMapping("/pur/receive/order/printOrder")
public void printOrder(@RequestBody PurOrderPrintRequest purOrderPrintRequest, HttpServletRequest request, HttpServletResponse response) throws Exception {
FilterReceiveRequest filterReceiveRequest = new FilterReceiveRequest();
filterReceiveRequest.setBillNo(purOrderPrintRequest.getBillNo());
List<ReceiveResponse> receiveResponses = receiveService.filterList(filterReceiveRequest);
ReceiveResponse purReceiveEntity = receiveResponses.get(0);
if (purReceiveEntity == null) {
throw new JsonException(500, "单据未找到!");
}
SysPdfTemplateRelevanceBizEntity sysPdfTemplateRelevanceBizEntity;
if (IntUtil.value(purReceiveEntity.getStatus()) == 3) {
sysPdfTemplateRelevanceBizEntity = systemPDFTemplateRelevanceBizService.findByModuleKey("bizAlready", "HCLY");
} else {
sysPdfTemplateRelevanceBizEntity = systemPDFTemplateRelevanceBizService.findByModuleKey("bizlWait", "HCLY");
}
SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(sysPdfTemplateRelevanceBizEntity.getTemplateId() + "");
if (systemPDFTemplateEntity == null)
throw new JsonException(500, "未设置模板!");
//打印单号标签
Map<String, Object> data = new HashMap<>(1);
List<Object> list = new ArrayList<>();
FilterReceiveDetailRequest filterReceiveDetailRequest = new FilterReceiveDetailRequest();
filterReceiveDetailRequest.setOrderIdFk(purReceiveEntity.getBillNo());
List<ReceiveDetailResponse> responseList = receivedetailService.filterList(filterReceiveDetailRequest);
int i = 1;
if (CollUtil.isNotEmpty(responseList)) {
for (ReceiveDetailResponse obj : responseList) {
Map<String, Object> supData = new HashMap<>();
supData.put("billNo", purReceiveEntity.getBillNo());
supData.put("deptName", purReceiveEntity.getDeptName());
supData.put("deptCode", purReceiveEntity.getDeptCode());
supData.put("invName", purReceiveEntity.getInvName());
supData.put("invCode", purReceiveEntity.getInvCode());
supData.put("targetDeptName", purReceiveEntity.getTargetDeptName());
supData.put("targetDeptCode", purReceiveEntity.getTargetInvCode());
supData.put("targetInvName", purReceiveEntity.getTargetInvName());
supData.put("targetInvCode", purReceiveEntity.getTargetInvCode());
supData.put("createUserName", purReceiveEntity.getCreateUserName());
supData.put("auditUserName", purReceiveEntity.getAuditUserName());
supData.put("billDate", MsDateUtil.formatDate(purReceiveEntity.getBillDate(), "yyyy-MM-dd"));
supData.put("auditTime", MsDateUtil.formatDate(purReceiveEntity.getAuditTime(), "yyyy-MM-dd"));
supData.put("count", obj.getCount());
supData.put("cpmctymc", obj.getCpmctymc());
supData.put("ggxh", obj.getGgxh());
supData.put("manufactory", obj.getManufactory());
supData.put("measname", obj.getMeasname() == null ? "" : obj.getMeasname());
supData.put("nameCode", obj.getNameCode());
supData.put("price", obj.getPrice() == null ? "" : obj.getPrice());
supData.put("supName", obj.getSupName());
supData.put("ylqxzcrbarmc", obj.getYlqxzcrbarmc());
supData.put("zczbhhzbapzbh", obj.getZczbhhzbapzbh());
list.add(supData);
i++;
}
}
data.put("data", list);
String param = JSONObject.toJSONString(data, SerializerFeature.WriteMapNullValue);
JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf");
}
/**
* 申购单打印
*
* @param request
* @param response
* @throws Exception
*/
@AuthRuleAnnotation("")
@PostMapping("/pur/apply/order/printOrder")
public void printApplyOrder(@RequestBody PurOrderPrintRequest purOrderPrintRequest, HttpServletRequest request, HttpServletResponse response) throws Exception {
PurApplyRequest purApplyRequest = new PurApplyRequest();
purApplyRequest.setBillNo(purOrderPrintRequest.getBillNo());
List<PurApplyResponse> purApplyResponses = purApplyService.queryPageList(purApplyRequest);
PurApplyResponse purApplyResponse = purApplyResponses.get(0);
if (purApplyResponse == null) {
throw new JsonException(500, "单据未找到!");
}
SysPdfTemplateRelevanceBizEntity sysPdfTemplateRelevanceBizEntity;
if (IntUtil.value(purApplyResponse.getStatus()) == 3) {
sysPdfTemplateRelevanceBizEntity = systemPDFTemplateRelevanceBizService.findByModuleKey("bizAlready", ConstantStatus.BUS_ORDER_CPSG);
} else {
sysPdfTemplateRelevanceBizEntity = systemPDFTemplateRelevanceBizService.findByModuleKey("bizlWait", ConstantStatus.BUS_ORDER_CPSG);
}
SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(sysPdfTemplateRelevanceBizEntity.getTemplateId() + "");
if (systemPDFTemplateEntity == null)
throw new JsonException(500, "未设置模板!");
//打印单号标签
Map<String, Object> data = new HashMap<>(1);
List<Object> list = new ArrayList<>();
PurApplyDetailRequest purApplyDetailRequest = new PurApplyDetailRequest();
purApplyDetailRequest.setOrderIdFk(purApplyResponse.getId() + "");
List<PurOrderDetailResponse> responseList = purApplyDetailService.joinQueryList(purApplyDetailRequest);
int i = 1;
if (CollUtil.isNotEmpty(responseList)) {
for (PurOrderDetailResponse obj : responseList) {
Map<String, Object> supData = new HashMap<>();
supData.put("billNo", purApplyResponse.getBillNo());
supData.put("deptName", purApplyResponse.getDeptName());
supData.put("deptCode", purApplyResponse.getDeptCode());
supData.put("invName", purApplyResponse.getInvName());
supData.put("invCode", purApplyResponse.getInvCode());
supData.put("targetDeptName", purApplyResponse.getTargetDeptName());
supData.put("targetDeptCode", purApplyResponse.getTargetInvCode());
supData.put("targetInvName", purApplyResponse.getTargetInvName());
supData.put("targetInvCode", purApplyResponse.getTargetInvCode());
supData.put("createUserName", purApplyResponse.getCreateByName());
supData.put("auditUserName", purApplyResponse.getAuditByName());
supData.put("billDate", MsDateUtil.formatDate(purApplyResponse.getBillDate(), "yyyy-MM-dd"));
supData.put("auditTime", MsDateUtil.formatDate(purApplyResponse.getAuditTime(), "yyyy-MM-dd"));
supData.put("count", obj.getCount());
supData.put("cpmctymc", obj.getProductName());
supData.put("ggxh", obj.getSpec());
supData.put("manufactory", obj.getManufactory());
supData.put("measname", obj.getMeasname() == null ? "" : obj.getMeasname());
supData.put("nameCode", obj.getNameCode());
supData.put("price", obj.getPrice() == null ? "" : obj.getPrice());
supData.put("supName", obj.getSupName());
supData.put("ylqxzcrbarmc", obj.getYlqxzcrbarmc());
supData.put("zczbhhzbapzbh", obj.getZczbhhzbapzbh());
supData.put("arrivalTime", MsDateUtil.formatDate(purApplyResponse.getArrivalTime(), "yyyy-MM-dd"));
supData.put("remark1", sysPdfTemplateRelevanceBizEntity.getRemark1() == null ? ' ' : sysPdfTemplateRelevanceBizEntity.getRemark1());
supData.put("remark2", sysPdfTemplateRelevanceBizEntity.getRemark2() == null ? ' ' : sysPdfTemplateRelevanceBizEntity.getRemark2());
supData.put("remark3", sysPdfTemplateRelevanceBizEntity.getRemark3() == null ? ' ' : sysPdfTemplateRelevanceBizEntity.getRemark3());
list.add(supData);
i++;
}
}
data.put("data", list);
String param = JSONObject.toJSONString(data, SerializerFeature.WriteMapNullValue);
JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf");
}
/**
* 采购订单打印
*
* @param request
* @param response
* @throws Exception
*/
@AuthRuleAnnotation("")
@PostMapping("/pur/purchase/order/printOrder")
public void printPurchaseOrder(@RequestBody PurOrderPrintRequest purOrderPrintRequest, HttpServletRequest request, HttpServletResponse response) throws Exception {
PurOrderRequest purOrderRequest = new PurOrderRequest();
purOrderRequest.setBillNo(purOrderPrintRequest.getBillNo());
List<PurOrderResponse> purOrderResponses = purOrderService.queryPageList(purOrderRequest);
PurOrderResponse purOrderResponse = purOrderResponses.get(0);
if (purOrderResponse == null) {
throw new JsonException(500, "单据未找到!");
}
SysPdfTemplateRelevanceBizEntity sysPdfTemplateRelevanceBizEntity;
if (IntUtil.value(purOrderResponse.getStatus()) == 3) {
sysPdfTemplateRelevanceBizEntity = systemPDFTemplateRelevanceBizService.findByModuleKey("bizAlready", ConstantStatus.BUS_ORDER_CGDD);
} else {
sysPdfTemplateRelevanceBizEntity = systemPDFTemplateRelevanceBizService.findByModuleKey("bizlWait", ConstantStatus.BUS_ORDER_CGDD);
}
SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(sysPdfTemplateRelevanceBizEntity.getTemplateId() + "");
if (systemPDFTemplateEntity == null)
throw new JsonException(500, "未设置模板!");
//打印单号标签
Map<String, Object> data = new HashMap<>(1);
List<Object> list = new ArrayList<>();
PurOrderDetailRequest purOrderDetailRequest = new PurOrderDetailRequest();
purOrderDetailRequest.setOrderIdFk(purOrderPrintRequest.getBillNo());
List<PurOrderDetailResponse> responseList = purOrderDetailService.joinQueryList(purOrderDetailRequest);
int i = 1;
if (CollUtil.isNotEmpty(responseList)) {
for (PurOrderDetailResponse obj : responseList) {
Map<String, Object> supData = new HashMap<>();
supData.put("billNo", purOrderResponse.getBillNo());
supData.put("deptName", purOrderResponse.getDeptName());
supData.put("deptCode", purOrderResponse.getDeptCode());
supData.put("invName", purOrderResponse.getInvName());
supData.put("invCode", purOrderResponse.getInvCode());
supData.put("supName", purOrderResponse.getSupName());
supData.put("applyInvName", purOrderResponse.getApplyInvName());
supData.put("applyCreateBy", purOrderResponse.getApplyCreateBy());
supData.put("auditUserName", purOrderResponse.getAuditUserName());
supData.put("billDate", MsDateUtil.formatDate(purOrderResponse.getBillDate(), "yyyy-MM-dd"));
supData.put("auditTime", MsDateUtil.formatDate(purOrderResponse.getAuditTime(), "yyyy-MM-dd"));
supData.put("arrivalTime", MsDateUtil.formatDate(purOrderResponse.getArrivalTime(), "yyyy-MM-dd"));
if (IntUtil.value(purOrderResponse.getEmergency()) == 2) {
supData.put("emergency", "较急");
} else if (IntUtil.value(purOrderResponse.getEmergency()) == 3) {
supData.put("emergency", "特急");
} else {
supData.put("emergency", "正常");
}
supData.put("emergency", MsDateUtil.formatDate(purOrderResponse.getArrivalTime(), "yyyy-MM-dd"));
supData.put("count", obj.getCount());
supData.put("cpmctymc", obj.getProductName());
supData.put("ggxh", obj.getSpec());
supData.put("manufactory", obj.getManufactory());
supData.put("measname", obj.getMeasname() == null ? "" : obj.getMeasname());
supData.put("nameCode", obj.getNameCode());
supData.put("price", obj.getPrice() == null ? "" : obj.getPrice());
supData.put("supName", obj.getSupName());
supData.put("ylqxzcrbarmc", obj.getYlqxzcrbarmc());
supData.put("zczbhhzbapzbh", obj.getZczbhhzbapzbh());
list.add(supData);
i++;
}
}
data.put("data", list);
String param = JSONObject.toJSONString(data, SerializerFeature.WriteMapNullValue);
JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf");
}
}