Merge remote-tracking branch 'origin/master'

master
anthonywj 2 years ago
commit 5015ad932c

@ -160,17 +160,6 @@ public class InnerOrderController {
@PostMapping("/insertDetail")
public BaseResponse detailAdd(@RequestBody InnerOrderDetailEntity innerOrderDetailEntity) {
// long userId = customerService.getUserId();
// InnerOrderEntity innerOrderEntity=new InnerOrderEntity();
//// innerOrderEntity.setPrintStatus(1);
//// innerOrderEntity.setGenStatus(1);
// innerOrderEntity.setCreateTime(new Date());
// innerOrderEntity.setCreateUser(userId+"");
// innerOrderEntity.setStatus(1);
// innerOrderService.insert(innerOrderEntity);
// Integer id=innerOrderEntity.getId();
//
// innerOrderDetailEntity.setOrderIdFk(id);
innerOrderDetailService.insert(innerOrderDetailEntity);
return ResultVOUtils.success("");
}

@ -0,0 +1,230 @@
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;
/**
*
*
* @return
*/
@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 {
SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(6 + "");
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 {
SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(6 + "");
if (systemPDFModuleEntity == null) return null;
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);
}
}

@ -21,4 +21,6 @@ public interface InnerOrderDetailDao {
Boolean deleteByOrderId(@Param("orderIdFk") String orderIdFk);
List<InnerOrderDetailEntity> selectOrderList(@Param("orderIdFk") String orderIdFk);
}

@ -2,6 +2,14 @@ package com.glxp.api.dao.inv;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.glxp.api.entity.inv.InvInnerOrderPrintEntity;
import com.glxp.api.req.inv.FilterinnerOrderprintRequest;
import com.glxp.api.res.inv.innerOrderPrintRequest;
import java.util.List;
public interface InvInnerOrderPrintDao extends BaseMapper<InvInnerOrderPrintEntity> {
List<InvInnerOrderPrintEntity> filterOrderPrintList(FilterinnerOrderprintRequest filterinnerOrderprintRequest);
List<innerOrderPrintRequest> filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest);
}

@ -71,6 +71,7 @@ public class UdiProductEntity {
private String code;
private Integer count;
private String warehouseCode;
private String deptCode;
private String udplatCode;
private String relId;//关联ID主键
private Integer status;

@ -23,7 +23,7 @@ public class InvInnerOrderPdfTempEntity {
private String filePath;
@TableField(value = "`status`")
private String status;
private Integer status;
@TableField(value = "printCodeIdFk")
private String printCodeIdFk;
@ -31,17 +31,5 @@ public class InvInnerOrderPdfTempEntity {
@TableField(value = "stockOrderFk")
private String stockOrderFk;
public static final String COL_ID = "id";
public static final String COL_GENKEY = "genkey";
public static final String COL_FILENAME = "fileName";
public static final String COL_FILEPATH = "filePath";
public static final String COL_STATUS = "status";
public static final String COL_PRINTCODEIDFK = "printCodeIdFk";
public static final String COL_STOCKORDERFK = "stockOrderFk";
}
}

@ -63,6 +63,13 @@ public class InvInnerOrderPrintEntity {
@TableField(value = "updateTime")
private Date updateTime;
@TableField(value = "status")
private Integer status;
@TableField(value = "expireDate")
private String expireDate;
public static final String COL_ID = "id";
public static final String COL_ORDERIDFK = "orderIdFk";

@ -0,0 +1,11 @@
package com.glxp.api.req.inv;
import lombok.Data;
@Data
public class DeleteStPrintTempRequest {
private String printCodeIdFk;
private String stockOrderFk;
private Integer id;
private String genKey;
}

@ -0,0 +1,26 @@
package com.glxp.api.req.inv;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
@Data
public class FilterinnerOrderprintRequest extends ListPageRequest {
private String nameCode;
private String printStatus;
private String udiCode;
private String cpmctymc;
private String thirdName;
private String thirdId;
private String batchNo;
private String udiRlIdFk;
private String warehouseCode;
private String spaceCode;
private String thirdSysFk;
private String genKeyFk;
private String sOrderId;
private String sDetailId;
private String id;
private String orderIdFk;
}

@ -0,0 +1,27 @@
package com.glxp.api.req.inv;
import lombok.Data;
import java.util.List;
@Data
public class InnerOrderQRCodeTextPDFTemplateRequest {
private String id;
private String queryId;
private String orderId;
private String billNo;
private String detailId;
private String actionName;
private String text;
private String path;
private int rowCount;
private int qrcodeCount;
private List<PdfPrintCountEntity> countList;
private String orderName;
private Integer moduleId;
}

@ -0,0 +1,10 @@
package com.glxp.api.req.inv;
import lombok.Data;
@Data
public class PdfPrintCountEntity {
private String queryId;
private Integer rowCount;
}

@ -0,0 +1,10 @@
package com.glxp.api.req.inv;
import com.glxp.api.util.page.ListPageRequest;
import lombok.Data;
@Data
public class invInnerOrderprintReques{
private String orderIdFk;
}

@ -71,6 +71,7 @@ public class UdiRlSupResponse {
private String spmc;
private Integer productType;
private String price;
private String proId;
//产品代理商
private String cpdls;

@ -0,0 +1,41 @@
package com.glxp.api.res.inv;
import lombok.Data;
import java.util.Date;
@Data
public class innerOrderPrintRequest {
private Integer id;
private String udiRlIdFk;
private String udiCode;
private String nameCode;
private String cpmctymc;
private String batchNo;
private String productDate;
private String expireDate;
private String serialNo;
private String codeType;
private String thirdId;
private String thirdName;
private String printStatus;
private String ggxh;
private String ylqxzcrbarmc;
private String zczbhhzbapzbh;
private String warehouseName;
private String warehouseCode;
private String spaceCode;
private String spaceName;
private String thirdSysFk;
private String nnum;
private String genKeyFk;
private String sOrderId;
private String sDetailId;
private Date updateTime;
private Integer count;
private String corpName;
}

@ -21,4 +21,6 @@ public interface InnerOrderDetailService {
Boolean deleteByOrderId(@Param("orderIdFk") String orderIdFk);
List<InnerOrderDetailEntity> selectOrderList(String orderIdFk);
}

@ -0,0 +1,19 @@
package com.glxp.api.service.inv;
import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity;
import com.glxp.api.req.inv.DeleteStPrintTempRequest;
import java.util.List;
public interface InvInnerOrderPdfTempService {
List<InvInnerOrderPdfTempEntity> filterStockPrintTempEntity(DeleteStPrintTempRequest deleteStPrintTempRequest);
boolean insertStockPrintTempEntity(InvInnerOrderPdfTempEntity invInnerOrderPdfTempEntity);
boolean insertStockPrintTempList(List<InvInnerOrderPdfTempEntity> invInnerOrderPdfTempEntities);
boolean delete(DeleteStPrintTempRequest deleteStPrintTempRequest);
}

@ -0,0 +1,31 @@
package com.glxp.api.service.inv;
import com.glxp.api.entity.inv.InvInnerOrderPrintEntity;
import com.glxp.api.req.inv.DeleteStPrintTempRequest;
import com.glxp.api.req.inv.FilterinnerOrderprintRequest;
import com.glxp.api.req.inv.InnerOrderQRCodeTextPDFTemplateRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.inv.innerOrderPrintRequest;
import java.util.List;
public interface InvInnerOrderPrintService {
List<InvInnerOrderPrintEntity> filterOrderPrintList(FilterinnerOrderprintRequest filterinnerOrderprintRequest);
Boolean addOrderList(String orderIdFk);
InvInnerOrderPrintEntity selectById(String id);
List<innerOrderPrintRequest> filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest);
Boolean updateOrder(InvInnerOrderPrintEntity invInnerOrderPrintEntity);
PageSimpleResponse print(InnerOrderQRCodeTextPDFTemplateRequest innerOrderQRCodeTextPDFTemplateRequest);
}

@ -0,0 +1,50 @@
package com.glxp.api.service.inv;
import cn.hutool.core.thread.ThreadUtil;
import com.glxp.api.dao.inv.InvInnerOrderPdfTempDao;
import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity;
import com.glxp.api.res.inv.innerOrderPrintRequest;
import com.glxp.api.util.JasperUtils;
import net.sf.jasperreports.engine.JRException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class JaspaperService {
@Value("${file_path}")
private String dirPath;
@Resource
private InvInnerOrderPdfTempDao innerOrderPdfTempDao;
@Async
public void printPdfLocal(List<List<innerOrderPrintRequest>> splits, List<InvInnerOrderPdfTempEntity> stockPrintTempEntities, String resource) {
ThreadUtil.execAsync(() -> {
for (int i = 0; i < stockPrintTempEntities.size(); i++) {
InvInnerOrderPdfTempEntity stockPrintTempEntity = stockPrintTempEntities.get(i);
Map<String, Object> data = new HashMap<String, Object>();
data.put("data", splits.get(i));
try {
JasperUtils.jasperReportToFile(stockPrintTempEntity.getFilePath(), data, resource);
stockPrintTempEntity.setStatus(1);
} catch (IOException e) {
stockPrintTempEntity.setStatus(2);
e.printStackTrace();
} catch (JRException e) {
stockPrintTempEntity.setStatus(2);
e.printStackTrace();
}
innerOrderPdfTempDao.updateById(stockPrintTempEntity);
}
});
}
}

@ -49,4 +49,9 @@ public class InnerOrderDetailServiceImpl implements InnerOrderDetailService {
public Boolean deleteByOrderId(String orderIdFk) {
return innerOrderDetailDao.deleteByOrderId(orderIdFk);
}
@Override
public List<InnerOrderDetailEntity> selectOrderList(String orderIdFk) {
return innerOrderDetailDao.selectOrderList(orderIdFk);
}
}

@ -0,0 +1,71 @@
package com.glxp.api.service.inv.impl;
import cn.hutool.core.thread.ThreadUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.glxp.api.dao.inv.InvInnerOrderPdfTempDao;
import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity;
import com.glxp.api.req.inv.DeleteStPrintTempRequest;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.service.inv.InvInnerOrderPdfTempService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class InvInnerOrderPdfTempServiceImpl implements InvInnerOrderPdfTempService {
@Resource
InvInnerOrderPdfTempDao innerOrderPdfTempDao;
@Override
public List<InvInnerOrderPdfTempEntity> filterStockPrintTempEntity(DeleteStPrintTempRequest deleteStPrintTempRequest) {
QueryWrapper<InvInnerOrderPdfTempEntity> ew=new QueryWrapper<>();
if (deleteStPrintTempRequest.getStockOrderFk() != null) {
ew.eq("stockOrderFk", deleteStPrintTempRequest.getStockOrderFk());
}
if (deleteStPrintTempRequest.getPrintCodeIdFk() != null) {
ew.eq("printCodeIdFk", deleteStPrintTempRequest.getPrintCodeIdFk());
}
if (deleteStPrintTempRequest.getId() != null) {
ew.eq("id", deleteStPrintTempRequest.getId());
}
List<InvInnerOrderPdfTempEntity> invInnerOrderPdfTempEntityList=innerOrderPdfTempDao.selectList(ew);
return invInnerOrderPdfTempEntityList;
}
@Override
public boolean insertStockPrintTempEntity(InvInnerOrderPdfTempEntity invInnerOrderPdfTempEntity) {
innerOrderPdfTempDao.insert(invInnerOrderPdfTempEntity);
return true;
}
@Override
public boolean insertStockPrintTempList(List<InvInnerOrderPdfTempEntity> invInnerOrderPdfTempEntities) {
for (InvInnerOrderPdfTempEntity obj : invInnerOrderPdfTempEntities) {
innerOrderPdfTempDao.insert(obj);
}
return true;
}
@Override
public boolean delete(DeleteStPrintTempRequest deleteStPrintTempRequest) {
QueryWrapper<InvInnerOrderPdfTempEntity> ew = new QueryWrapper<>();
if (deleteStPrintTempRequest.getStockOrderFk() != null) {
ew.eq("stockOrderFk", deleteStPrintTempRequest.getStockOrderFk());
}
if (deleteStPrintTempRequest.getPrintCodeIdFk() != null) {
ew.eq("printCodeIdFk", deleteStPrintTempRequest.getPrintCodeIdFk());
}
innerOrderPdfTempDao.delete(ew);
return true;
}
}

@ -0,0 +1,239 @@
package com.glxp.api.service.inv.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.glxp.api.dao.basic.UdiRelevanceDao;
import com.glxp.api.dao.inv.InvInnerOrderPrintDao;
import com.glxp.api.entity.basic.UdiProductEntity;
import com.glxp.api.entity.inv.InnerOrderDetailEntity;
import com.glxp.api.entity.inv.InvInnerOrderPdfTempEntity;
import com.glxp.api.entity.inv.InvInnerOrderPrintEntity;
import com.glxp.api.entity.system.SystemPDFModuleEntity;
import com.glxp.api.entity.system.SystemPDFTemplateEntity;
import com.glxp.api.req.basic.FilterUdiRelRequest;
import com.glxp.api.req.inv.*;
import com.glxp.api.res.PageSimpleResponse;
import com.glxp.api.res.basic.UdiRelevanceResponse;
import com.glxp.api.res.inv.InvCountOrderDetailResponse;
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.basic.UdiRelevanceService;
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 org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.io.File;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.List;
@Service
@Transactional(rollbackFor = Exception.class)
public class InvInnerOrderPrintServiceImpl implements InvInnerOrderPrintService {
@Resource
InvInnerOrderPrintDao invInnerOrderPrintDao;
@Resource
private InnerOrderDetailService innerOrderDetailService;
@Resource
private CustomerService customerService;
@Resource
private UdiProductService udiProductService;
@Resource
private UdiRelevanceDao udiRelevanceDao;
@Resource
private InvInnerOrderPrintService invInnerOrderPrintService;
@Value("${file_path}")
private String dirPath;
@Resource
private JaspaperService jaspaperService;
@Resource
private InvInnerOrderPdfTempService innerOrderPdfTempService;
@Resource
SystemPDFModuleService systemPDFModuleService;
@Resource
SystemPDFTemplateService systemPDFTemplateService;
@Override
public List<InvInnerOrderPrintEntity> filterOrderPrintList(FilterinnerOrderprintRequest filterinnerOrderprintRequest) {
if (filterinnerOrderprintRequest == null) {
return Collections.emptyList();
}
int offset = (filterinnerOrderprintRequest.getPage() - 1) * filterinnerOrderprintRequest.getLimit();
PageHelper.offsetPage(offset, filterinnerOrderprintRequest.getLimit());
List<InvInnerOrderPrintEntity> data = invInnerOrderPrintDao.filterOrderPrintList(filterinnerOrderprintRequest);
return data;
}
@Override
public Boolean addOrderList(String orderIdFk) {
//先删除数据
QueryWrapper<InvInnerOrderPrintEntity> ew=new QueryWrapper<>();
ew.eq("orderIdFk",orderIdFk);
invInnerOrderPrintDao.delete(ew);
List<InnerOrderDetailEntity> innerOrderDetailEntityList=innerOrderDetailService.selectOrderList(orderIdFk);
for(InnerOrderDetailEntity obj:innerOrderDetailEntityList){
InvInnerOrderPrintEntity innerOrderPrintEntity=new InvInnerOrderPrintEntity();
innerOrderPrintEntity.setOrderIdFk(obj.getOrderIdFk());
innerOrderPrintEntity.setProductId(obj.getProductId());
innerOrderPrintEntity.setExpireDate(obj.getExpireDate());
innerOrderPrintEntity.setProductDate(obj.getProductDate());
innerOrderPrintEntity.setProductName(obj.getProductName());
innerOrderPrintEntity.setCount(obj.getCount());
innerOrderPrintEntity.setBatchNo(obj.getBatchNo());
innerOrderPrintEntity.setCreateTime(new Date());
innerOrderPrintEntity.setUpdateTime(new Date());
innerOrderPrintEntity.setStatus(0);
innerOrderPrintEntity.setCreateUser(customerService.getUserId()+"");
innerOrderPrintEntity.setUpdateUser(customerService.getUserId()+"");
FilterUdiRelRequest filterUdiRelRequest=new FilterUdiRelRequest();
filterUdiRelRequest.setId(Long.valueOf(obj.getProductId()));
//查询耗材字典信息
UdiRelevanceResponse filterUdiRelevance=udiRelevanceDao.filterUdiRelevance(filterUdiRelRequest).get(0);
//查询产品信息
UdiProductEntity udiProductEntity=udiProductService.findByNameCode(filterUdiRelevance.getNameCode());
String udiCode = "#" + udiProductEntity.getNameCode() + "#" + udiProductEntity.getProduceDate() + "#" + udiProductEntity.getExpireDate() +
"#" + udiProductEntity.getBatchNo() + "#" + udiProductEntity.getSerialNo() + "#" + udiProductEntity.getWarehouseCode() + "#" + udiProductEntity.getDeptCode();
innerOrderPrintEntity.setUdiCode(udiCode);
invInnerOrderPrintDao.insert(innerOrderPrintEntity);
}
return true;
}
@Override
public InvInnerOrderPrintEntity selectById(String id) {
return invInnerOrderPrintDao.selectById(id);
}
@Override
public List<innerOrderPrintRequest> filterJoinInnerPrint(FilterinnerOrderprintRequest filterinnerOrderprintRequest) {
if (filterinnerOrderprintRequest == null) {
return Collections.emptyList();
}
if(filterinnerOrderprintRequest.getPage()!=null){
int offset = (filterinnerOrderprintRequest.getPage() - 1) * filterinnerOrderprintRequest.getLimit();
PageHelper.offsetPage(offset, filterinnerOrderprintRequest.getLimit());
}
List<innerOrderPrintRequest> data = invInnerOrderPrintDao.filterJoinInnerPrint(filterinnerOrderprintRequest);
return data;
}
@Override
public Boolean updateOrder(InvInnerOrderPrintEntity invInnerOrderPrintEntity) {
invInnerOrderPrintDao.updateById(invInnerOrderPrintEntity);
return true;
}
@Override
public PageSimpleResponse print(InnerOrderQRCodeTextPDFTemplateRequest innerOrderQRCodeTextPDFTemplateRequest) {
SystemPDFModuleEntity systemPDFModuleEntity = systemPDFModuleService.selectById(6 + "");
if (systemPDFModuleEntity == null) return null;
SystemPDFTemplateEntity systemPDFTemplateEntity =
systemPDFTemplateService.selectById(String.valueOf(systemPDFModuleEntity.getTemplateId()));
if (systemPDFTemplateEntity == null) return null;
List<innerOrderPrintRequest> printEntities = new ArrayList<>();
List<innerOrderPrintRequest> mStockPrintEntities = new ArrayList<>();
FilterinnerOrderprintRequest filterStockprintRequest = new FilterinnerOrderprintRequest();
DeleteStPrintTempRequest deleteStPrintTempRequest = new DeleteStPrintTempRequest();
if (innerOrderQRCodeTextPDFTemplateRequest.getOrderId() != null) {
filterStockprintRequest.setSOrderId(innerOrderQRCodeTextPDFTemplateRequest.getOrderId());
deleteStPrintTempRequest.setStockOrderFk(innerOrderQRCodeTextPDFTemplateRequest.getOrderId() + "");
} else {
deleteStPrintTempRequest.setPrintCodeIdFk(innerOrderQRCodeTextPDFTemplateRequest.getQueryId());
filterStockprintRequest.setId(innerOrderQRCodeTextPDFTemplateRequest.getQueryId());
}
innerOrderPdfTempService.delete(deleteStPrintTempRequest);
List<innerOrderPrintRequest> stockPrintEntities = invInnerOrderPrintService.filterJoinInnerPrint(filterStockprintRequest);
if (stockPrintEntities != null && stockPrintEntities.size() > 0) {
mStockPrintEntities.addAll(stockPrintEntities);
}
for (innerOrderPrintRequest innerOrderPrintRequest : mStockPrintEntities) {
PdfPrintCountEntity pdfPrintCount = getCount(innerOrderQRCodeTextPDFTemplateRequest.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 (!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 (innerOrderQRCodeTextPDFTemplateRequest.getOrderId() != null) {
String fileName = innerOrderQRCodeTextPDFTemplateRequest.getOrderId() + "__" + index + "__标签打印" + ".pdf";
String filePath = dirPath + "\\pdfprint\\" + fileName;
stockPrintTempEntity.setFileName(fileName);
stockPrintTempEntity.setFilePath(filePath);
stockPrintTempEntity.setStockOrderFk(innerOrderQRCodeTextPDFTemplateRequest.getOrderId());
} else {
String fileName = innerOrderQRCodeTextPDFTemplateRequest.getQueryId() + "__" + index + "__标签打印" + ".pdf";
String filePath = dirPath + "\\pdfprint\\" + fileName;
stockPrintTempEntity.setFileName(fileName);
stockPrintTempEntity.setFilePath(filePath);
stockPrintTempEntity.setPrintCodeIdFk(innerOrderQRCodeTextPDFTemplateRequest.getQueryId());
}
stockPrintTempEntity.setStatus(0);
stockPrintTempEntity.setGenkey(CustomUtil.getId());
stockPrintTempEntities.add(stockPrintTempEntity);
}
jaspaperService.printPdfLocal(splits, stockPrintTempEntities, systemPDFTemplateEntity.getPath());
innerOrderPdfTempService.insertStockPrintTempList(stockPrintTempEntities);
for (innerOrderPrintRequest innerOrderPrintRequest : mStockPrintEntities) {
InvInnerOrderPrintEntity innerOrderPrintEntity=new InvInnerOrderPrintEntity();
innerOrderPrintEntity.setStatus(1);
innerOrderPrintEntity.setId(innerOrderPrintRequest.getId());
invInnerOrderPrintService.updateOrder(innerOrderPrintEntity);
}
PageInfo<InvInnerOrderPdfTempEntity> pageInfo;
pageInfo = new PageInfo<>(stockPrintTempEntities);
PageSimpleResponse<InvInnerOrderPdfTempEntity> pageSimpleResponse = new PageSimpleResponse<>();
pageSimpleResponse.setTotal(pageInfo.getTotal());
pageSimpleResponse.setList(stockPrintTempEntities);
return pageSimpleResponse;
}
public PdfPrintCountEntity getCount(List<PdfPrintCountEntity> countList, innerOrderPrintRequest innerOrderPrintRequest) {
for (PdfPrintCountEntity pdfPrintCount : countList) {
if (pdfPrintCount.getQueryId().equals(innerOrderPrintRequest.getId() + "")) {
return pdfPrintCount;
}
}
return null;
}
}

@ -43,6 +43,7 @@
basic_udirel.isLock,
basic_udirel.mainId,
basic_udirel.isAdavence,
basic_products.id AS proId,
basic_products.originUuid,
basic_products.nameCode,
basic_products.deviceRecordKey,

@ -79,4 +79,17 @@
WHERE id = #{id}
</update>
<select id="selectOrderList" parameterType="string"
resultType="com.glxp.api.entity.inv.InnerOrderDetailEntity">
select
*
FROM inv_inner_order_detail
<where>
<if test="orderIdFk != '' and orderIdFk != null">
AND orderIdFk = #{orderIdFk}
</if>
</where>
</select>
</mapper>

@ -22,4 +22,84 @@
id, orderIdFk, udiCode, productId, productName, `count`, productDate, batchNo, `createUser`,
createTime, updateUser, updateTime
</sql>
<select id="filterOrderPrintList" parameterType="com.glxp.api.req.inv.FilterinnerOrderprintRequest"
resultType="com.glxp.api.entity.inv.InvInnerOrderPrintEntity">
SELECT * FROM inv_inner_order_print
<where>
<if test="orderIdFk != '' and orderIdFk != null">
AND orderIdFk = #{orderIdFk}
</if>
<if test="udiCode != '' and udiCode != null">
AND udiCode = #{udiCode}
</if>
</where>
</select>
<select id="filterJoinInnerPrint" parameterType="com.glxp.api.req.inv.FilterinnerOrderprintRequest"
resultType="com.glxp.api.res.inv.innerOrderPrintRequest">
SELECT
inv_inner_order_print.id,
inv_inner_order_print.udiCode,
basic_products.nameCode,
inv_inner_order_print.batchNo,
inv_inner_order_print.productDate,
inv_inner_order_print.expireDate,
inv_inner_order_print.count,
basic_products.cpmctymc,
basic_products.ylqxzcrbarmc,
basic_products.zczbhhzbapzbh,
basic_products.ggxh
FROM
inv_inner_order_print
LEFT JOIN basic_udirel ON inv_inner_order_print.productId = basic_udirel.id
INNER JOIN basic_products ON basic_products.uuid = basic_udirel.uuid
<where>
<if test="nameCode != '' and nameCode != null">
AND inv_stockprint.nameCode = #{nameCode}
</if>
<if test="udiCode != '' and udiCode != null">
AND inv_stockprint.udiCode = #{udiCode}
</if>
<if test="printStatus != '' and printStatus != null">
AND printStatus = #{printStatus}
</if>
<if test="cpmctymc != '' and cpmctymc != null">
AND inv_stockprint.cpmctymc like concat('%',#{cpmctymc},'%')
</if>
<if test="thirdName != '' and thirdName != null">
AND inv_stockprint.thirdName like concat('%',#{thirdName},'%')
</if>
<if test="thirdId != '' and thirdId != null">
AND inv_stockprint.thirdId = #{thirdId}
</if>
<if test="thirdSysFk != '' and thirdSysFk != null">
AND inv_stockprint.thirdSysFk = #{thirdSysFk}
</if>
<if test="genKeyFk != '' and genKeyFk != null">
AND inv_stockprint.genKeyFk = #{genKeyFk}
</if>
<if test="sDetailId != '' and sDetailId != null">
AND inv_stockprint.sDetailId = #{sDetailId}
</if>
<if test="sOrderId != '' and sOrderId != null">
AND inv_inner_order_print.orderIdFk = #{sOrderId}
</if>
<if test="id != '' and id != null">
AND inv_inner_order_print.id = #{id}
</if>
and diType = 1
</where>
</select>
</mapper>
Loading…
Cancel
Save