Przeglądaj źródła

1.费用明细结算单位不能为空判断
2.场站api增加消息推送以及接收记录

纪新园 3 miesięcy temu
rodzic
commit
b66ec9ec57

+ 13 - 2
blade-service-api/blade-los-api/src/main/java/org/springblade/los/box/dynamics/entity/BoxDynamicsRecord.java

@@ -22,7 +22,6 @@ import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
 import java.io.Serializable;
-import java.time.LocalDateTime;
 import java.util.Date;
 
 /**
@@ -171,11 +170,23 @@ public class BoxDynamicsRecord implements Serializable {
 	@ApiModelProperty(value = "租户号")
 	private String tenantId;
 
-/**
+	/**
 	 * 箱号
 	 */
 	@ApiModelProperty(value = "箱号")
 	private String boxCode;
 
+	/**
+	 * 数据类型 1=业务数据,2=请求记录
+	 */
+	@ApiModelProperty(value = "数据类型")
+	private String type;
+
+	/**
+	 * 请求接口状态
+	 */
+	@ApiModelProperty(value = "请求接口状态")
+	private String description;
+
 
 }

+ 6 - 0
blade-service/blade-los/src/main/java/org/springblade/los/box/service/impl/ExpenseApplicationServiceImpl.java

@@ -224,6 +224,9 @@ public class ExpenseApplicationServiceImpl extends ServiceImpl<ExpenseApplicatio
 					throw new RuntimeException("请选择单一非本币币种");
 				}
 				for (FeeCenter item : expenseApplication.getFeeCenterList()) {
+					if(ObjectUtils.isNull(item.getCorpId())){
+						throw new RuntimeException("单号:"+item.getBillNo()+"费用明细结算单位不能为空");
+					}
 					if ("MH".equals(item.getBillType())) {
 						if (ObjectUtils.isNull(item.getHblno())) {
 							throw new RuntimeException("费用" + item.getFeeCnName() + "分单号为空,请先保存");
@@ -361,6 +364,9 @@ public class ExpenseApplicationServiceImpl extends ServiceImpl<ExpenseApplicatio
 				bills = billsService.getById(expenseApplication.getSrcId());
 			}
 			for (FeeCenter item : expenseApplication.getFeeCenterList()) {
+				if(ObjectUtils.isNull(item.getCorpId())){
+					throw new RuntimeException("单号:"+item.getBillNo()+"费用明细结算单位不能为空");
+				}
 				if (1 == item.getAccStatus()) {
 					throw new RuntimeException("费用:" + item.getFeeCnName() + "已生成账单");
 				}

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

@@ -2178,6 +2178,9 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				.ne(FeeCenter::getAuditStatus, "4"));
 			if (!feeCenterList.isEmpty()) {
 				for (FeeCenter item : feeCenterList) {
+					if(ObjectUtils.isNull(item.getCorpId())){
+						throw new RuntimeException("单号:"+item.getBillNo()+"费用明细结算单位不能为空");
+					}
 					if ("MH".equals(item.getBillType())) {
 						if (ObjectUtils.isNull(item.getHblno())) {
 							throw new RuntimeException("费用" + item.getFeeCnName() + "分单号为空,请先保存");
@@ -2255,6 +2258,9 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 				.eq(FeeCenter::getAuditStatus, "1"));
 			if (!feeCenterList.isEmpty()) {
 				for (FeeCenter item : feeCenterList) {
+					if(ObjectUtils.isNull(item.getCorpId())){
+						throw new RuntimeException("单号:"+item.getBillNo()+"费用明细结算单位不能为空");
+					}
 					int version = StringUtil.isBlank(item.getVersion()) ? 1 : Integer.parseInt(item.getVersion());
 					item.setVersion(String.valueOf(version + 1));
 					item.setUpdateTime(new Date());

+ 3 - 0
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FeeCenterUpdateRecordServiceImpl.java

@@ -115,6 +115,9 @@ public class FeeCenterUpdateRecordServiceImpl extends ServiceImpl<FeeCenterUpdat
 		if (feeCenter == null) {
 			throw new RuntimeException("未查到费用明细");
 		}
+		if(ObjectUtils.isNull(feeCenter.getCorpId())){
+			throw new RuntimeException("单号:"+feeCenter.getBillNo()+"费用明细结算单位不能为空");
+		}
 		String exrateType = currencyUtils.standardCurrency(feeCenter.getBranchId());
 		if ("0".equals(feeCenterUpdateRecord.getType())) {
 			feeCenter.setAuditStatus("5");

+ 45 - 3
blade-service/blade-los/src/main/java/org/springblade/los/ftp/service/impl/CyFtpServiceImpl.java

@@ -9,6 +9,8 @@ import org.apache.commons.io.IOUtils;
 import org.apache.commons.net.ftp.FTP;
 import org.apache.commons.net.ftp.FTPClient;
 import org.apache.commons.net.ftp.FTPFile;
+import org.springblade.client.entity.Message;
+import org.springblade.client.feign.IMessageClient;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -32,6 +34,9 @@ import org.springblade.los.ftp.dto.ApiRequest;
 import org.springblade.los.ftp.dto.ContainerMovement;
 import org.springblade.los.ftp.service.CyFtpService;
 import org.springblade.resource.feign.IOssClient;
+import org.springblade.system.feign.ISysClient;
+import org.springblade.system.user.entity.User;
+import org.springblade.system.user.feign.IUserClient;
 import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Service;
 import org.springframework.web.multipart.MultipartFile;
@@ -72,6 +77,12 @@ public class CyFtpServiceImpl implements CyFtpService {
 
 	private final BillsMapper billsMapper;
 
+	private final IMessageClient messageClient;
+
+	private final IUserClient userClient;
+
+	private final ISysClient sysClient;
+
 	@Override
 	public R ftpFilesHandle(Long corpId, String type) {
 		BCorps bCorps = bCorpsService.getById(corpId);
@@ -585,12 +596,43 @@ public class CyFtpServiceImpl implements CyFtpService {
 			boxDynamicsRecord.setStationCode(bCorps.getCode());
 			boxDynamicsRecord.setStationId(bCorps.getId());
 		}
-		// 13. 错误处理:如果有错误信息则直接返回
+		if (ObjectUtils.isNotNull(msg.toString())) {
+			boxDynamicsRecord.setType("2");
+			boxDynamicsRecord.setDescription("接收失败");
+		} else {
+			boxDynamicsRecord.setType("1");
+			boxDynamicsRecord.setDescription("接收成功");
+		}
+		//发送消息
+		R<String> res = sysClient.getRoleIds(AuthUtil.getTenantId(), "箱管");
+		if (res.isSuccess() && ObjectUtils.isNotNull()) {
+			R<List<User>> userListR = userClient.listUserByRoleIds(res.getData());
+			if (userListR.isSuccess() && ObjectUtils.isNotNull(userListR.getData())) {
+				for (User item : userListR.getData()) {
+					Message sendMessage = new Message();
+					sendMessage.setParameter(boxDynamicsRecord.getId() + "");
+					sendMessage.setUserName(AuthUtil.getUserName());
+					sendMessage.setUserId(null);
+					sendMessage.setToUserId(item.getId());
+					sendMessage.setToUserName(item.getName());
+					sendMessage.setMessageType(1);
+					sendMessage.setTenantId(AuthUtil.getTenantId());
+					sendMessage.setCreateUser(null);
+					sendMessage.setCreateTime(new Date());
+					sendMessage.setPageLabel("");
+					sendMessage.setPageStatus("");
+					sendMessage.setMessageBody(boxDynamicsRecord.getStationCname() + "场站已推送" + boxDynamicsRecord.getBoxDynamics()
+						+ "记录,推送时间:" + formatter.format(boxDynamicsRecord.getImportDate()) + ",推送结果:" + boxDynamicsRecord.getDescription());
+					messageClient.save(sendMessage);
+				}
+			}
+		}
+		// 13. 数据保存处理
+		boxDynamicsRecordService.insert(boxDynamicsRecord);
+		// 14. 错误处理:如果有错误信息则直接返回
 		if (ObjectUtils.isNotNull(msg.toString())) {
 			return R.fail(500, msg + " 请联系相关人员!");
 		} else {
-			// 14. 数据保存处理
-			boxDynamicsRecordService.insert(boxDynamicsRecord);
 			for (BoxDynamicsRecordItems item : itemsList) {
 				item.setPid(boxDynamicsRecord.getId());
 				boxDynamicsRecordItemsService.insert(item);