Ver Fonte

1.增加下货纸数据导出接口

纪新园 há 1 mês atrás
pai
commit
0df0412bcd

+ 10 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/controller/BillsController.java

@@ -39,6 +39,7 @@ import org.springblade.los.business.sea.entity.SeaBillsDetail;
 import org.springblade.los.business.sea.service.IBillsService;
 import org.springblade.los.business.sea.service.ISeaBillsDetailService;
 import org.springblade.los.excel.BillsExcel;
+import org.springblade.los.excel.DeliveryPaperExcel;
 import org.springblade.system.entity.DictBiz;
 import org.springblade.system.feign.IDictBizClient;
 import org.springframework.web.bind.annotation.*;
@@ -999,5 +1000,14 @@ public class BillsController extends BladeController {
 		return billsService.sendDeliveryPaper(ids);
 	}
 
+	/**
+	 * 下货纸数据导出
+	 */
+	@GetMapping("/sendDeliveryPaperExport")
+	public void sendDeliveryPaperExport(@RequestParam("ids") String ids, HttpServletResponse response) {
+		List<DeliveryPaperExcel> excelList = billsService.sendDeliveryPaperExport(ids);
+		ExcelUtil.export(response, "下货纸数据", "下货纸数据", excelList, DeliveryPaperExcel.class);
+	}
+
 }
 

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/IBillsService.java

@@ -24,6 +24,7 @@ import org.springblade.los.business.release.entity.SeaReleaseBillItems;
 import org.springblade.los.business.sea.entity.Bills;
 import org.springblade.los.business.sea.vo.BillsVO;
 import org.springblade.los.check.entity.LosAuditPathsLevels;
+import org.springblade.los.excel.DeliveryPaperExcel;
 
 import java.math.BigDecimal;
 import java.util.List;
@@ -245,4 +246,6 @@ public interface IBillsService extends IService<Bills> {
 	R sendVerificationPrompt(String ids);
 
 	R sendDeliveryPaper(String ids);
+
+	List<DeliveryPaperExcel> sendDeliveryPaperExport(String ids);
 }

+ 57 - 0
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/BillsServiceImpl.java

@@ -6393,4 +6393,61 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		}
 		return R.data(excelList);
 	}
+
+	@Override
+	public List<DeliveryPaperExcel> sendDeliveryPaperExport(String ids) {
+		if (ObjectUtils.isNull(ids)) {
+			throw new RuntimeException("缺少必要参数");
+		}
+		List<Long> idList = Func.toLongList(ids);
+		List<Bills> billsList = baseMapper.selectList(new LambdaQueryWrapper<Bills>()
+			.eq(Bills::getIsDeleted, 0)
+			.in(Bills::getId, idList));
+		if (billsList.isEmpty()) {
+			throw new RuntimeException("未查到海运出口单据,发送失败!");
+		}
+		List<PreContainers> preContainersList = preContainersService.list(new LambdaQueryWrapper<PreContainers>()
+			.eq(PreContainers::getIsDeleted, 0)
+			.in(PreContainers::getPid, idList));
+		if (preContainersList.isEmpty()) {
+			throw new RuntimeException("未查到预配箱型信息,发送失败!");
+		}
+		List<SeaContainerNumberItem> containerNumberItemList = seaContainerNumberItemService.list(new LambdaQueryWrapper<SeaContainerNumberItem>()
+			.eq(SeaContainerNumberItem::getIsDeleted, 0)
+			.in(SeaContainerNumberItem::getPid, idList)
+			.in(SeaContainerNumberItem::getBoxType, preContainersList.stream().map(PreContainers::getCntrTypeCode)
+				.distinct().collect(Collectors.toList())));
+		if (containerNumberItemList.isEmpty()) {
+			throw new RuntimeException("未选择放箱号,发送失败!");
+		}
+		List<DeliveryPaperExcel> excelList = new ArrayList<>();
+		for (Bills item : billsList) {
+			DeliveryPaperExcel excel = new DeliveryPaperExcel();
+			excel.setEtd(item.getEtd());
+			excel.setPodEnName(item.getPodEnName());
+			excel.setVesselCnName(item.getVesselEnName());
+			excel.setVoyageNo(item.getVoyageNo());
+			excel.setBoxOwner("WFL");
+			excel.setInboundContainerOwner(item.getCarrierEnName());
+			excel.setPotEnName(item.getPotEnName());
+			excel.setMblno(item.getMblno());
+			excel.setHblno(item.getHblno());
+			excel.setQuantityCntrDescr(item.getQuantityCntrDescr());
+			excel.setGrossWeight(item.getGrossWeight());
+			String containerNumber = "";
+			List<PreContainers> preContainers = preContainersList.stream().filter(e -> e.getPid().equals(item.getId()))
+				.collect(Collectors.toList());
+			for (PreContainers containers : preContainers) {
+				List<SeaContainerNumberItem> containerNumberItems = containerNumberItemList.stream().filter(e ->
+					containers.getCntrTypeCode().equals(e.getBoxType()) && 0 != e.getOccupyNum()).collect(Collectors.toList());
+				for (SeaContainerNumberItem numberItem : containerNumberItems) {
+					containerNumber = containerNumber + numberItem.getContainerNumber() + " " + numberItem.getOccupyNum() + "*" +
+						containers.getCntrTypeCode() + "\n";
+				}
+			}
+			excel.setContainerNumber(containerNumber);
+			excelList.add(excel);
+		}
+		return excelList;
+	}
 }