package com.glxp.api.controller.inout; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; 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.constant.ConstantType; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.entity.system.SysPdfTemplateRelevanceStatemenEntity; import com.glxp.api.entity.system.SystemPDFTemplateEntity; import com.glxp.api.req.inout.FilterCodeRequest; import com.glxp.api.req.inout.FilterOrderDetailResultRequest; import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.inout.InspectionPDFTemplateRequest; import com.glxp.api.res.inout.IoCodeResponse; import com.glxp.api.res.inout.IoOrderDetailResultResponse; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; import com.glxp.api.service.system.SystemPDFModuleService; import com.glxp.api.service.system.SystemPDFTemplateService; import com.glxp.api.util.JasperUtils; import net.sf.jasperreports.engine.JRException; import org.springframework.beans.factory.annotation.Value; 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.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * 单据扫码明细查询接口 */ @RestController public class IoOrderDetailResultController extends BaseController { @Resource IoOrderService orderService; @Resource private IoOrderDetailResultService orderDetailResultService; @Resource IBasicBussinessTypeService basicBussinessTypeService; @Resource IoCodeService codeService; @Resource private SystemPDFTemplateService systemPDFTemplateService; @Resource private SystemPDFModuleService systemPDFModuleService; @Value("${file_path}") private String filePath; /** * 查询单据扫码明细列表 * * @param orderDetailResultRequest * @return */ @AuthRuleAnnotation("") @GetMapping("/udiwms/inout/resultDetail/filterList") public BaseResponse filterList(FilterOrderDetailResultRequest orderDetailResultRequest) { List list = orderDetailResultService.filterList(orderDetailResultRequest); PageInfo pageInfo = new PageInfo<>(list); return ResultVOUtils.page(pageInfo); } /** * 查询单据扫码明细列表 * * @param orderDetailResultRequest * @return */ @AuthRuleAnnotation("") @GetMapping("/udiwms/inout/resultDetail/filterOrderList") public BaseResponse filterOrderList(FilterOrderDetailResultRequest orderDetailResultRequest) { if (isHosUser()) { // orderDetailResultRequest.setFromCorpName(); } else { orderDetailResultRequest.setFromCorp(getCustomerId()); } FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); filterOrderRequest.setVueType(orderDetailResultRequest.getActionType()); List actions = orderService.setActions(filterOrderRequest); if (CollUtil.isEmpty(actions)) { return ResultVOUtils.success(""); } orderDetailResultRequest.setActions(actions); List list = orderDetailResultService.filterOrderList(orderDetailResultRequest); for (IoOrderDetailResultResponse orderDetailResultResponse : list) { if (orderDetailResultResponse.getMainAction().equals(ConstantType.TYPE_OUT)) { orderDetailResultResponse.setOutCount(orderDetailResultResponse.getReCount()); orderDetailResultResponse.setInCount(0); } else { orderDetailResultResponse.setOutCount(0); orderDetailResultResponse.setInCount(orderDetailResultResponse.getReCount()); } } PageInfo pageInfo = new PageInfo<>(list); return ResultVOUtils.page(pageInfo); } /** * pda下载业务单据详情复核 */ @AuthRuleAnnotation("") @GetMapping(value = "/warehouse/inout/order/detail") public BaseResponse orderDetail(FilterOrderDetailResultRequest filterErpOrderRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } if (StrUtil.isEmpty(filterErpOrderRequest.getOrderIdFk())) { return ResultVOUtils.error(500, "单据号不能为空!"); } IoOrderEntity orderEntity = orderService.findByBillNo(filterErpOrderRequest.getOrderIdFk()); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(orderEntity.getAction()); filterErpOrderRequest.setPage(null); filterErpOrderRequest.setLimit(null); List list = orderDetailResultService.filterList(filterErpOrderRequest); return ResultVOUtils.success(list); } @Resource IoOrderDetailBizService orderDetailBizService; @Resource IoOrderDetailCodeService orderDetailCodeService; @Resource IoCheckInoutService checkInoutService; @AuthRuleAnnotation("") @GetMapping("/udiwms/inout/wditCheck/filterList") public BaseResponse waitCheckList(FilterOrderDetailResultRequest orderDetailResultRequest) { List orderDetailBizEntities = orderDetailBizService.findByOrderId(orderDetailResultRequest.getOrderIdFk()); List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(orderDetailResultRequest.getOrderIdFk()); return ResultVOUtils.success(checkInoutService.combineCheck(orderDetailBizEntities, orderDetailCodeEntities)); } @AuthRuleAnnotation("") @GetMapping("/udiwms/inout/waitAllocate/filterList") public BaseResponse waitAllocate(FilterOrderDetailResultRequest orderDetailResultRequest) { IoOrderEntity orderEntity = orderService.findByBillNo(orderDetailResultRequest.getOrderIdFk()); List orderDetailBizEntities = orderDetailBizService.findByOrderId(orderDetailResultRequest.getOrderIdFk()); checkInoutService.bizNoPiCheck(orderDetailBizEntities, orderEntity); return ResultVOUtils.success(orderDetailBizEntities); } //校验模板是否正确 @AuthRuleAnnotation("") @PostMapping("/udiwms/pdf/template/order/result/file") public BaseResponse inspectionStockOrderPDFFromTemplateFile(@RequestBody InspectionPDFTemplateRequest inspectionPDFTemplateRequest) { //查询模板文件是否存在 SysPdfTemplateRelevanceStatemenEntity sysPdfTemplateRelevanceStatemenEntity = systemPDFModuleService.selectByStatemenId(inspectionPDFTemplateRequest.getId()); if (null == sysPdfTemplateRelevanceStatemenEntity) { return ResultVOUtils.error(ResultEnum.DATA_NOT, "所属模块错误"); } SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(String.valueOf(sysPdfTemplateRelevanceStatemenEntity.getTemplateId())); if (null == systemPDFTemplateEntity) { return ResultVOUtils.error(ResultEnum.DATA_NOT, "模板错误"); } return ResultVOUtils.success(sysPdfTemplateRelevanceStatemenEntity.getTemplateId()); } /** * 出入库明细打印 * * @param filterOrderDetailResultRequest * @return */ @AuthRuleAnnotation("") @PostMapping("/udiwms/inout/resultDetail/filterOrderPrint") public BaseResponse filterOrderPrint(@RequestBody FilterOrderDetailResultRequest filterOrderDetailResultRequest, HttpServletRequest request, HttpServletResponse response) throws JRException, IOException { List ioOrderDetailResultResponseList = new ArrayList<>(); SystemPDFTemplateEntity systemPDFTemplateEntity = systemPDFTemplateService.selectById(filterOrderDetailResultRequest.getTemplateId()); //打印单号标签 Map data = new HashMap<>(1); List list = new ArrayList<>(); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//定义新的日期格式 //按选入打印 if (filterOrderDetailResultRequest.getList() != null && filterOrderDetailResultRequest.getList().size() > 0) { ioOrderDetailResultResponseList = filterOrderDetailResultRequest.getList(); } else { //按查询打印 FilterOrderRequest filterOrderRequest = new FilterOrderRequest(); filterOrderRequest.setVueType(filterOrderDetailResultRequest.getActionType()); List actions = orderService.setActions(filterOrderRequest); if (CollUtil.isEmpty(actions)) { return ResultVOUtils.success(""); } filterOrderDetailResultRequest.setActions(actions); ioOrderDetailResultResponseList = orderDetailResultService.filterOrderList(filterOrderDetailResultRequest); for (IoOrderDetailResultResponse orderDetailResultResponse : ioOrderDetailResultResponseList) { if (orderDetailResultResponse.getMainAction().equals(ConstantType.TYPE_OUT)) { orderDetailResultResponse.setOutCount(orderDetailResultResponse.getReCount()); orderDetailResultResponse.setInCount(0); } else { orderDetailResultResponse.setOutCount(0); orderDetailResultResponse.setInCount(orderDetailResultResponse.getReCount()); } } } int i = 1; for (IoOrderDetailResultResponse ioOrderDetailResultResponse : ioOrderDetailResultResponseList) { //组装数据 Map ioOrderDetailResultData = new HashMap<>(); ioOrderDetailResultData.put("index", String.valueOf(i)); ioOrderDetailResultData.put("nameCode", ioOrderDetailResultResponse.getNameCode() == null ? ' ' : ioOrderDetailResultResponse.getNameCode()); ioOrderDetailResultData.put("batchNo", ioOrderDetailResultResponse.getBatchNo() == null ? ' ' : ioOrderDetailResultResponse.getBatchNo()); ioOrderDetailResultData.put("productDate", ioOrderDetailResultResponse.getProductDate() == null ? ' ' : ioOrderDetailResultResponse.getProductDate()); ioOrderDetailResultData.put("expireDate", ioOrderDetailResultResponse.getExpireDate() == null ? ' ' : ioOrderDetailResultResponse.getExpireDate()); ioOrderDetailResultData.put("coName", ioOrderDetailResultResponse.getCoName() == null ? ' ' : ioOrderDetailResultResponse.getCoName()); ioOrderDetailResultData.put("certCode", ioOrderDetailResultResponse.getCertCode() == null ? ' ' : ioOrderDetailResultResponse.getCertCode()); ioOrderDetailResultData.put("ylqxzcrbarmc", ioOrderDetailResultResponse.getYlqxzcrbarmc() == null ? ' ' : ioOrderDetailResultResponse.getYlqxzcrbarmc()); ioOrderDetailResultData.put("manufacturer", ioOrderDetailResultResponse.getManufacturer() == null ? ' ' : ioOrderDetailResultResponse.getManufacturer()); ioOrderDetailResultData.put("measname", ioOrderDetailResultResponse.getMeasname() == null ? ' ' : ioOrderDetailResultResponse.getMeasname()); ioOrderDetailResultData.put("spec", ioOrderDetailResultResponse.getSpec() == null ? ' ' : ioOrderDetailResultResponse.getSpec()); ioOrderDetailResultData.put("price", ioOrderDetailResultResponse.getPrice() == null ? ' ' : ioOrderDetailResultResponse.getPrice()); ioOrderDetailResultData.put("count", ioOrderDetailResultResponse.getCount()); ioOrderDetailResultData.put("reCount", ioOrderDetailResultResponse.getReCount()); ioOrderDetailResultData.put("inCount", ioOrderDetailResultResponse.getInCount()); ioOrderDetailResultData.put("acceptCount", ioOrderDetailResultResponse.getAcceptCount()); ioOrderDetailResultData.put("fromCorpName", ioOrderDetailResultResponse.getFromCorpName() == null ? ' ' : ioOrderDetailResultResponse.getFromCorpName()); ioOrderDetailResultData.put("billTypeName", ioOrderDetailResultResponse.getBillTypeName() == null ? ' ' : ioOrderDetailResultResponse.getBillTypeName()); ioOrderDetailResultData.put("mainAction", ioOrderDetailResultResponse.getMainAction() == null ? ' ' : ioOrderDetailResultResponse.getMainAction()); ioOrderDetailResultData.put("auditTime", ioOrderDetailResultResponse.getAuditTime() == null ? ' ' : formatter.format(ioOrderDetailResultResponse.getAuditTime())); list.add(ioOrderDetailResultData); i++; } String param = JSON.toJSONString(list); JasperUtils.jasperReport(request, response, param, filePath + "pdf/template/" + systemPDFTemplateEntity.getPath(), "pdf"); return ResultVOUtils.success(); } }