Procházet zdrojové kódy

MH 导入增加是否已生成账单校验

wfg před 5 měsíci
rodič
revize
cde286e0f4

+ 12 - 0
blade-service-api/blade-los-api/src/main/java/org/springblade/los/business/sea/entity/Bills.java

@@ -2235,4 +2235,16 @@ public class Bills implements Serializable {
 	 */
 	@TableField(exist = false)
 	private Boolean isAMS;
+
+	/**
+	 * Int Flag
+	 */
+	@TableField(exist = false)
+	private Integer intFlag;
+
+	/**
+	 * String Flag
+	 */
+	@TableField(exist = false)
+	private String strFlag;
 }

+ 74 - 53
blade-service/blade-los/src/main/java/org/springblade/los/business/sea/service/impl/MscZipImportImpl.java

@@ -47,6 +47,8 @@ import org.springblade.los.business.sea.entity.Containers;
 import org.springblade.los.business.sea.service.IContainersService;
 import org.springblade.los.business.sea.entity.ContainersCommodity;
 import org.springblade.los.business.sea.service.IContainersCommodityService;
+import org.springblade.los.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.service.IFeeCenterService;
 import org.springblade.system.entity.Dept;
 import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.feign.IUserClient;
@@ -87,6 +89,8 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 	private final IBPackagesService bPackagesService;
 	private final IBCntrTypesService bCntrTypesService;
 
+	private final IFeeCenterService feeCenterService;
+
 	private final ISysClient sysClient;
 	private final IUserClient userClient;
 	private final IDeptUtils deptUtils;
@@ -1212,17 +1216,10 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 				Object object = StringTools.handle(mhBill, "Bills");
 				Bills bills = JSONObject.parseObject(JSONObject.toJSONString(object), Bills.class);
 
-				if (ObjectUtils.isNull(bills.getBillNo())) {
-					BusinessBillNo businessBillNo = new BusinessBillNo();
-					businessBillNo.setBusinessTypeId(businessType.getId());
-					businessBillNo.setCode(bills.getBillNoFormat());
-					R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
-					if (!clientBillNo.isSuccess()) {
-						TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
-						return R.fail(500, "生成订单编号失败");
-					}
-					bills.setBillNo((String) clientBillNo.getData());
-				}
+				// 导入标志 0 未处理 200 成功 >=400 失败
+				bills.setIntFlag(0);
+				// 导入信息
+				bills.setStrFlag("");
 
 				if (ObjectUtils.isNull(bills.getId())) {
 					bills.setCreateTime(new Date());
@@ -1232,6 +1229,7 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 					bills.setVersion("1");
 
 					this.save(bills);
+					bills.setIntFlag(200);
 				} else {
 					Bills dataSourceBill = baseMapper.selectOne(new LambdaQueryWrapper<Bills>().select(Bills::getId, Bills::getVersion).eq(Bills::getId, bills.getId()));
 					if (!Objects.equals(dataSourceBill.getVersion(), bills.getVersion())) {
@@ -1247,57 +1245,80 @@ public class MscZipImportImpl extends ServiceImpl<BillsMapper, Bills> implements
 					bills.setUpdateUserName(AuthUtil.getUserName());
 
 					// 查一下是否有生成账单的费用,有的话不允许更改
-
-
-
-					this.updateById(bills);
-
-					bPreContainersService.remove(new LambdaQueryWrapper<PreContainers>()
-						.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
-						.eq(PreContainers::getPid, bills.getId())
-					);
-
-					bContainersService.remove(new LambdaQueryWrapper<Containers>()
-						.eq(Containers::getTenantId, AuthUtil.getTenantId())
-						.eq(Containers::getPid, bills.getId())
-					);
-
-					bContainersCommodityService.remove(new LambdaQueryWrapper<ContainersCommodity>()
-						.eq(ContainersCommodity::getTenantId, AuthUtil.getTenantId())
-						.eq(ContainersCommodity::getPpId, bills.getId())
-					);
+					int feeCount = feeCenterService.count(new LambdaQueryWrapper<FeeCenter>()
+						.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+						.eq(FeeCenter::getPid, bills.getId())
+						.eq(FeeCenter::getAccStatus, 1L)
+						.gt(FeeCenter::getAccBillId, 0L));
+
+					if(feeCount>0){
+						bills.setIntFlag(400);
+						bills.setStrFlag("订舱号 " + bills.getBookingNo() + " 费用已经生产账单,不可导入!");
+					}else {
+						this.updateById(bills);
+						bills.setIntFlag(200);
+
+						bPreContainersService.remove(new LambdaQueryWrapper<PreContainers>()
+							.eq(PreContainers::getTenantId, AuthUtil.getTenantId())
+							.eq(PreContainers::getPid, bills.getId())
+						);
+
+						bContainersService.remove(new LambdaQueryWrapper<Containers>()
+							.eq(Containers::getTenantId, AuthUtil.getTenantId())
+							.eq(Containers::getPid, bills.getId())
+						);
+
+						bContainersCommodityService.remove(new LambdaQueryWrapper<ContainersCommodity>()
+							.eq(ContainersCommodity::getTenantId, AuthUtil.getTenantId())
+							.eq(ContainersCommodity::getPpId, bills.getId())
+						);
+					}
 				}
 
-				SeaBillsDetail seaBillsDetail = bills.getDetail();
-				if(ObjectUtils.isNotNull(seaBillsDetail)) {
-					seaBillsDetail.setPid(bills.getId());
-					bSeaBillsDetailService.saveOrUpdate(seaBillsDetail);
-				}
+				if(bills.getIntFlag()==200){
+					if (ObjectUtils.isNull(bills.getBillNo())) {
+						BusinessBillNo businessBillNo = new BusinessBillNo();
+						businessBillNo.setBusinessTypeId(businessType.getId());
+						businessBillNo.setCode(bills.getBillNoFormat());
+						R clientBillNo = businessBillNoService.getBillNoLos(businessBillNo);
+						if (!clientBillNo.isSuccess()) {
+							TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+							return R.fail(500, "生成订单编号失败");
+						}
+						bills.setBillNo((String) clientBillNo.getData());
+					}
 
-				List<PreContainers> preContainers = bills.getPreContainersList();
-				if(ObjectUtils.isNotNull(preContainers)) {
-					for (PreContainers preContainer : preContainers) {
-						preContainer.setPid(bills.getId());
+					SeaBillsDetail seaBillsDetail = bills.getDetail();
+					if (ObjectUtils.isNotNull(seaBillsDetail)) {
+						seaBillsDetail.setPid(bills.getId());
+						bSeaBillsDetailService.saveOrUpdate(seaBillsDetail);
 					}
-				}
-				bPreContainersService.saveOrUpdateBatch(preContainers);
 
-				List<Containers> containers = bills.getContainersList();
-				if(ObjectUtils.isNotNull(containers)) {
-					for (Containers container : containers) {
-						container.setPid(bills.getId());
+					List<PreContainers> preContainers = bills.getPreContainersList();
+					if (ObjectUtils.isNotNull(preContainers)) {
+						for (PreContainers preContainer : preContainers) {
+							preContainer.setPid(bills.getId());
+						}
 					}
+					bPreContainersService.saveOrUpdateBatch(preContainers);
 
-					bContainersService.saveOrUpdateBatch(containers);
+					List<Containers> containers = bills.getContainersList();
+					if (ObjectUtils.isNotNull(containers)) {
+						for (Containers container : containers) {
+							container.setPid(bills.getId());
+						}
 
-					for (Containers container : containers) {
-						List<ContainersCommodity> cntrCommoditys = container.getContainersCommodityList();
-						if(ObjectUtils.isNotNull(cntrCommoditys)) {
-							for (ContainersCommodity cntrCommodity : cntrCommoditys) {
-								cntrCommodity.setPpId(bills.getId());
-								cntrCommodity.setPid(container.getId());
+						bContainersService.saveOrUpdateBatch(containers);
+
+						for (Containers container : containers) {
+							List<ContainersCommodity> cntrCommoditys = container.getContainersCommodityList();
+							if (ObjectUtils.isNotNull(cntrCommoditys)) {
+								for (ContainersCommodity cntrCommodity : cntrCommoditys) {
+									cntrCommodity.setPpId(bills.getId());
+									cntrCommodity.setPid(container.getId());
+								}
+								bContainersCommodityService.saveOrUpdateBatch(cntrCommoditys);
 							}
-							bContainersCommodityService.saveOrUpdateBatch(cntrCommoditys);
 						}
 					}
 				}