Browse Source

背箱小票链接生成

liyuan 6 months ago
parent
commit
7541e62f72

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

@@ -900,5 +900,11 @@ public class BillsController extends BladeController {
 	public R documentVerification(@RequestBody Bills bills) {
 		return billsService.documentVerification(bills);
 	}*/
+
+
+	@PostMapping("/getReceiptUrl")
+	public R<String> getReceiptUrl(@RequestParam("billId") Long billId) {
+		return billsService.getReceiptUrl(billId);
+	}
 }
 

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

@@ -162,4 +162,12 @@ public interface IBillsService extends IService<Bills> {
     R retreatPledge(String ids, String type);
 
 	void removeHblNo(Long id);
+
+	/**
+	 * 获取回执单地址
+	 *
+	 * @param billId id
+	 * @return 结果
+	 */
+	R<String> getReceiptUrl(Long billId);
 }

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

@@ -60,6 +60,7 @@ import org.springblade.los.check.entity.LosAuditPathsLevels;
 import org.springblade.los.check.service.IAuditPathsActsService;
 import org.springblade.los.check.service.IAuditPathsLevelsService;
 import org.springblade.los.check.service.IAuditProecessService;
+import org.springblade.los.enums.ReceiptStationEnum;
 import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
@@ -79,6 +80,7 @@ import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.interceptor.TransactionAspectSupport;
+import org.springframework.util.StringUtils;
 
 import java.math.BigDecimal;
 import java.math.MathContext;
@@ -3500,4 +3502,48 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		baseMapper.updateById(bills);
 	}
 
+	@Override
+	public R<String> getReceiptUrl(Long billId) {
+		Bills bills = baseMapper.selectById(billId);
+		if (org.springframework.util.ObjectUtils.isEmpty(bills)) {
+			return R.fail("单据不存在");
+		}
+		if (!StringUtils.hasText(bills.getMblno())) {
+			return R.fail("提单号不存在, 不允许复制");
+		}
+		BCorps corps = ibCorpsService.getById(bills.getCarrierId());
+		if (org.springframework.util.ObjectUtils.isEmpty(corps)) {
+			return R.fail("船公司不存在");
+		}
+		String returnUrl = "http://www.jms-logistics.com:7805/ep/CtnTicket/JMS/%s/%s?cyCode=";
+		List<String> corpNoList = Arrays.asList("QDCMA", "QDCNC", "QDANL");
+		R<String> successR = R.success("复制成功,内容已复制到剪切板");
+		if (corpNoList.contains(corps.getCode())) {
+			String shipCode = "LIANYUNGANG".equals(bills.getPodEnName()) ? "CMA_LYG" : "CMA_TAO";
+			successR.setData(String.format(returnUrl, shipCode, bills.getMblno()));
+			return successR;
+		}
+		if ("QDHMM".equals(corps.getCode())) {
+			String mblNo = bills.getMblno().startsWith("HDMU") ? bills.getMblno().replace("HDMU", "") : bills.getMblno();
+			successR.setData(String.format(returnUrl, "HMM_TAO", mblNo));
+			return successR;
+		}
+		if ("QDPIL".equals(corps.getCode())) {
+			successR.setData(String.format(returnUrl, "PIL_TAO", bills.getMblno()));
+			return successR;
+		}
+		if ("ONE".equals(corps.getCode())) {
+			if (org.springframework.util.ObjectUtils.isEmpty(bills.getCyId())) {
+				return R.fail("ONE 船公司必须选择场站!");
+			}
+			ReceiptStationEnum receiptEnum = ReceiptStationEnum.getById(bills.getCyId());
+			if (receiptEnum == null) {
+				return R.fail("当前场站不在支持范围内!");
+			}
+			successR.setData(String.format(returnUrl, "ONE_TAO", bills.getMblno()) + receiptEnum.code);
+			return successR;
+		}
+		return R.fail("仅 CMA/NAL/CNC/HMM/ONE/PIL 可以复制背箱小票连接地址!");
+	}
+
 }

+ 79 - 0
blade-service/blade-los/src/main/java/org/springblade/los/enums/ReceiptStationEnum.java

@@ -0,0 +1,79 @@
+package org.springblade.los.enums;
+
+/**
+ * @author Rain
+ */
+
+public enum ReceiptStationEnum {
+
+	/**
+	 * 青岛港捷丰
+	 */
+	QINGDAO_PORT_JIEFENG("青岛港捷丰", 11351L, "CNTAO31"),
+
+	/**
+	 * 青岛大亚
+	 */
+	QINGDAO_DAYA("青岛大亚", 341L, "CNTAO32"),
+
+	/**
+	 * 青岛港联华
+	 */
+	QINGDAO_GONGLIANHUA("青岛港联华", 11278L, "CNTAO33"),
+
+	/**
+	 * 青岛陆海
+	 */
+	QINGDAO_LUHAI("青岛陆海", 142L, "CNTAO36"),
+
+	/**
+	 * 青岛港联欣
+	 */
+	QINGDAO_GONGLIANXIN("青岛港联欣", 10298L, "CNTAO39"),
+
+	/**
+	 * 青岛港联捷
+	 */
+	QINGDAO_GONGLIANJIE("青岛港联捷", 10554L, "CNTAO43"),
+
+	/**
+	 * 青岛中外运
+	 */
+	QINGDAO_WOYUAN("青岛中外运", 143L, "CNTAO44"),
+
+	/**
+	 * 胜狮物流
+	 */
+	SHENGSHI_LOGISTICS("胜狮物流", 272L, "CNTAO47");
+
+	/**
+	 * 场站名
+	 */
+	public final String name;
+
+	/**
+	 *
+	 */
+	public final Long id;
+
+	/**
+	 * ship Code
+	 */
+	public final String code;
+
+	ReceiptStationEnum(String name, Long id, String code) {
+		this.name = name;
+		this.id = id;
+		this.code = code;
+	}
+
+	public static ReceiptStationEnum getById(Long id) {
+		for (ReceiptStationEnum value : ReceiptStationEnum.values()) {
+			if (value.id.equals(id)) {
+				return value;
+			}
+		}
+		return null;
+	}
+
+}