Browse Source

2023年11月9日17:40:01

纪新园 2 years ago
parent
commit
8ca91f034d

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

@@ -1220,7 +1220,7 @@ public class Bills implements Serializable {
 	@ApiModelProperty(value = "版本")
 	private String version;
 	/**
-	 * 状态(0 正常 1停用)
+	 * 状态 0 = 新建  1=审核提交  2=审核中  3= 审核通过  4=审核驳回
 	 */
 	@ApiModelProperty(value = "状态(0 正常 1停用)")
 	private Integer status;
@@ -1438,5 +1438,15 @@ public class Bills implements Serializable {
 	@TableField(exist = false)
 	private String businessTypeCode;
 
+	//跳转对应页面的路由
+	@TableField(exist = false)
+	private String url;
+	//页面枚举
+	@TableField(exist = false)
+	private String pageStatus;
+	//页面名字
+	@TableField(exist = false)
+	private String pageLabel;
+
 
 }

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

@@ -24,6 +24,7 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
 import lombok.AllArgsConstructor;
+import org.springblade.common.annotation.RepeatSubmit;
 import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -277,4 +278,62 @@ public class BillsController extends BladeController {
 		return billsService.getBillNo(bills);
 	}
 
+	/**
+	 * 单据请核
+	 */
+	@PostMapping("/checkBills")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "请核", notes = "传入bills")
+	@RepeatSubmit
+	public R checkOrder(@RequestBody Bills bills) {
+		Bills declare = billsService.checkBills(bills);
+		return R.data(declare);
+	}
+
+	/**
+	 * 撤销单据请核
+	 */
+	@PostMapping("/revokeCheckBills")
+	@ApiOperationSupport(order = 13)
+	@ApiOperation(value = "撤销请核", notes = "传入bills")
+	@RepeatSubmit
+	public R revokeCheckBills(@RequestBody Bills bills) {
+		Bills declare = billsService.revokeCheckOrder(bills);
+		return R.data(declare);
+	}
+
+	/**
+	 * 审核通过
+	 */
+	@PostMapping("/passCheck")
+	@ApiOperationSupport(order = 14)
+	@ApiOperation(value = "审核通过", notes = "传入id")
+	@RepeatSubmit
+	public R passCheck(@ApiParam(value = "主表id", required = true) @RequestParam Long id) {
+		return billsService.passCheck(id);
+	}
+
+	/**
+	 * 审核中
+	 */
+	@PostMapping("/underReview")
+	@ApiOperationSupport(order = 15)
+	@ApiOperation(value = "审核中", notes = "传入id")
+	@RepeatSubmit
+	public R underReview(@ApiParam(value = "主表id", required = true) @RequestParam Long id) {
+		return billsService.underReview(id);
+	}
+
+	/**
+	 * 审核不通过
+	 */
+	@PostMapping("/passCancel")
+	@ApiOperationSupport(order = 16)
+	@ApiOperation(value = "Feign-审核不通过", notes = "传入财务id")
+	@RepeatSubmit
+	public R passCancel(@ApiParam(value = "财务主表id", required = true) @RequestParam Long id) {
+		billsService.passCancel(id);
+		return R.success("操作成功");
+	}
+
 }

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

@@ -96,4 +96,33 @@ public interface IBillsService extends IService<Bills> {
 	 * @return
 	 */
 	R disembarking(String ids);
+
+	/**
+	 * 单据请核
+	 * @param bills
+	 * @return
+	 */
+    Bills checkBills(Bills bills);
+
+	/**
+	 * 撤销单据请核
+	 * @param bills
+	 * @return
+	 */
+	Bills revokeCheckOrder(Bills bills);
+
+	/**
+	 * 审核通过
+	 */
+	R passCheck(Long id);
+
+	/**
+	 * 审核中
+	 */
+	R underReview(Long id);
+
+	/**
+	 * 审核不通过
+	 */
+	R passCancel(Long id);
 }

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

@@ -18,6 +18,7 @@ package org.springblade.los.business.sea.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
@@ -38,8 +39,16 @@ import org.springblade.los.business.sea.entity.*;
 import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.business.sea.service.*;
 import org.springblade.los.business.sea.vo.BillsVO;
+import org.springblade.los.check.dto.LosAuditProecessDTO;
+import org.springblade.los.check.entity.LosAuditPathsActs;
+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.finance.fee.entity.FeeCenter;
+import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.service.IFeeCenterService;
+import org.springblade.los.finance.fee.service.IFinAccBillsService;
 import org.springblade.system.feign.ISysClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -76,12 +85,20 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 
 	private final IFeeCenterService feeCenterService;
 
+	private final IFinAccBillsService finAccBillsService;
+
 	private final IBusinessBillNoService businessBillNoService;
 
 	private final IBCurrencyService bCurrencyService;
 
 	private final IBusinessTypeService bBusinessTypeService;
 
+	private final IAuditPathsActsService auditPathsActsService;
+
+	private final IAuditPathsLevelsService auditPathsLevelsService;
+
+	private final IAuditProecessService auditProecessService;
+
 
 	@Override
 	public IPage<BillsVO> selectBillsPage(IPage<BillsVO> page, BillsVO bills) {
@@ -524,4 +541,163 @@ public class BillsServiceImpl extends ServiceImpl<BillsMapper, Bills> implements
 		return R.data("操作成功");
 	}
 
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public Bills checkBills(Bills bills) {
+		Bills declare = baseMapper.selectById(bills.getId());
+
+		//审批数据
+		LosAuditProecessDTO auditProecessDTO = new LosAuditProecessDTO();
+		//获取审批级次
+		List<LosAuditPathsLevels> auditPathsLevels = null;
+		// 判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
+		LosAuditPathsActs pathsActs = null;
+		//是否开启流程
+		LambdaQueryWrapper<LosAuditPathsActs> auditPathsActsLambdaQueryWrapper = new LambdaQueryWrapper<>();
+		auditPathsActsLambdaQueryWrapper
+			.eq(LosAuditPathsActs::getIsEnable, 1)
+			.eq(LosAuditPathsActs::getFidStatus, "status")
+			.eq(LosAuditPathsActs::getTenantId, AuthUtil.getTenantId())
+			.eq(LosAuditPathsActs::getSalesCompanyId, AuthUtil.getDeptId())
+			.eq(LosAuditPathsActs::getActId, 1108);
+		pathsActs = auditPathsActsService.getOne(auditPathsActsLambdaQueryWrapper);
+		//获取审批信息
+		LosAuditPathsActs losAuditPathsActs = auditPathsActsService.getOne(new LambdaQueryWrapper<LosAuditPathsActs>()
+			.eq(LosAuditPathsActs::getActId, 1108)
+			.eq(LosAuditPathsActs::getFidStatus, "status")
+			.eq(LosAuditPathsActs::getSalesCompanyId, AuthUtil.getDeptId())
+			.eq(LosAuditPathsActs::getTenantId, AuthUtil.getTenantId()));
+		Long pathId = losAuditPathsActs.getPathId();
+		auditPathsLevels = auditPathsLevelsService.list(new LambdaQueryWrapper<LosAuditPathsLevels>()
+			.eq(LosAuditPathsLevels::getTenantId, AuthUtil.getTenantId()).eq(LosAuditPathsLevels::getPathId, pathId));
+		auditProecessDTO.setTimes(1);
+		auditProecessDTO.setProcessType("退款审批");
+
+		// 没开启审批流直接走 通过流程
+		if (pathsActs == null || pathsActs.getIsEnable() == 2) {
+			throw new SecurityException("当前租户未查询到审批流配置");
+		} else {
+
+			if (CollectionUtils.isEmpty(auditPathsLevels)) {
+				throw new SecurityException("开启审批失败:未查询到审批信息");
+			}
+			// 绑定审核类型
+			auditProecessDTO.setCheckType("HYCK-DJ");
+			// 追加跳转路由url
+			auditProecessDTO.setUrl(bills.getUrl());
+			auditProecessDTO.setPageStatus(bills.getPageStatus());
+			auditProecessDTO.setPageLabel(bills.getPageLabel());
+			auditProecessDTO.setOrderRemark(declare.getRemarks());
+			auditProecessDTO.setPathsLevelsList(auditPathsLevels);
+			auditProecessDTO.setActId(1);
+			auditProecessDTO.setSrcBillId(declare.getId());
+			auditProecessDTO.setBillId(declare.getId());
+			auditProecessDTO.setBillNo(declare.getBillNo());
+			auditProecessDTO.setSendUserId(AuthUtil.getUserId());
+			auditProecessDTO.setSendName(AuthUtil.getUserName());
+			auditProecessDTO.setSendTime(new Date());
+			auditProecessDTO.setBillTime(declare.getCreateTime());
+			auditProecessDTO.setTenantId(AuthUtil.getTenantId());
+			auditProecessDTO.setCorpId(declare.getCorpId());
+			auditProecessDTO.setSalesCompanyId(Long.parseLong(declare.getCreateDept()));
+			auditProecessDTO.setSalesCompanyName(declare.getCreateDeptName());
+			R financeProcess = auditProecessService.createFinanceProcess(auditProecessDTO);
+			if (!financeProcess.isSuccess()) {
+				throw new SecurityException("操作失败,请联系管理员");
+			}
+		}
+		declare.setStatus(1);
+		baseMapper.updateById(declare);
+		List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getIsDeleted, 0)
+			.eq(FeeCenter::getPid, declare.getId())
+			.eq(FeeCenter::getAccStatus, 0));
+		if (feeCenterList.size() == 0) {
+			return declare;
+		} else {
+			FinAccBills finAccBills = new FinAccBills();
+			finAccBills.setFeeCenterList(feeCenterList);
+			finAccBills.setBusinessTypeCode("HYZD");
+			finAccBills.setBillNoFormat("HYZD");
+			finAccBills.setAccountType("");
+			finAccBills.setCorpArgreementNo(declare.getCorpArgreementNo());
+			finAccBills.setRefno(declare.getRefno());
+			finAccBills.setBookingNo(declare.getBookingNo());
+			finAccBills.setPolNamePrint(declare.getPolNamePrint());
+			finAccBills.setPodNamePrint(declare.getPodNamePrint());
+			finAccBillsService.generateBill(finAccBills);
+			return declare;
+		}
+
+	}
+
+	@Override
+	@Transactional(rollbackFor = Exception.class)
+	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
+	public Bills revokeCheckOrder(Bills bills) {
+		Bills declare = baseMapper.selectById(bills.getId());
+		R financeProcess = auditProecessService.deteleByBillId(bills.getId());
+		if (!financeProcess.isSuccess()) {
+			throw new SecurityException("操作失败,请联系管理员");
+		}
+		declare.setStatus(0);
+		baseMapper.updateById(declare);
+		List<FeeCenter> feeCenterList = feeCenterService.list(new LambdaQueryWrapper<FeeCenter>()
+			.eq(FeeCenter::getTenantId, AuthUtil.getTenantId())
+			.eq(FeeCenter::getIsDeleted, 0)
+			.eq(FeeCenter::getPid, declare.getId())
+			.eq(FeeCenter::getAccStatus, 0));
+		if (feeCenterList.size() == 0) {
+			return declare;
+		} else {
+			for (FeeCenter item : feeCenterList) {
+				if (ObjectUtils.isNotNull(item.getStlBillNo())) {
+					throw new RuntimeException("已生成结算单,撤销失败");
+				}
+			}
+			FinAccBills finAccBills = new FinAccBills();
+			finAccBills.setFeeCenterList(feeCenterList);
+			finAccBillsService.revokeBill(finAccBills);
+			return declare;
+		}
+	}
+
+	@Override
+	public R passCheck(Long id) {
+		Bills bills = baseMapper.selectById(id);
+		if (bills == null) {
+			throw new SecurityException("审批通过失败");
+		}
+		bills.setStatus(3);
+		baseMapper.updateById(bills);
+
+		return R.success("操作成功");
+	}
+
+	@Override
+	public R underReview(Long id) {
+		Bills bills = baseMapper.selectById(id);
+		if (bills == null) {
+			throw new SecurityException("审批通过失败");
+		}
+		bills.setStatus(2);
+		baseMapper.updateById(bills);
+
+		return R.success("操作成功");
+	}
+
+	@Override
+	public R passCancel(Long id) {
+		Bills bills = baseMapper.selectById(id);
+		if (bills == null) {
+			throw new SecurityException("审批通过失败");
+		}
+
+		bills.setStatus(4);
+		baseMapper.updateById(bills);
+		return R.success("操作成功");
+	}
+
 }

+ 39 - 18
blade-service/blade-los/src/main/java/org/springblade/los/check/controller/AuditProecessController.java

@@ -35,8 +35,8 @@ import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.BeanUtil;
 import org.springblade.core.tool.utils.ObjectUtil;
-import org.springblade.finance.feign.IFinanceClient;
-import org.springblade.finance.vojo.Settlement;
+import org.springblade.los.basic.corps.entity.BCorps;
+import org.springblade.los.basic.corps.service.IBCorpsService;
 import org.springblade.los.check.dto.LosAuditProecessDTO;
 import org.springblade.los.check.entity.LosAuditProecess;
 import org.springblade.los.check.service.IAuditProecessService;
@@ -46,11 +46,8 @@ import org.springblade.system.user.feign.IUserClient;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
-import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 审批流记录 控制器
@@ -68,6 +65,8 @@ public class AuditProecessController extends BladeController {
 
 	private final IUserClient userClient;
 
+	private final IBCorpsService bCorpsService;
+
 	/**
 	 * 分页 审批流记录
 	 */
@@ -97,19 +96,43 @@ public class AuditProecessController extends BladeController {
 		IPage pages = auditProecessService.page(Condition.getPage(query), lambdaQueryWrapper);
 		List<LosAuditProecess> auditProecessList = pages.getRecords();
 		if (CollectionUtils.isNotEmpty(auditProecessList)) {
+			List<Long> corpIds = auditProecessList.stream().map(LosAuditProecess::getCorpId).filter(Objects::nonNull).distinct().collect(Collectors.toList());
+			List<BCorps> bCorpsList = null;
+			if (corpIds.size() > 0) {
+				bCorpsList = bCorpsService.list(new LambdaQueryWrapper<BCorps>()
+					.eq(BCorps::getTenantId, AuthUtil.getTenantId())
+					.eq(BCorps::getIsDeleted, 0)
+					.in(BCorps::getId, corpIds)
+					.eq(BCorps::getStatus, 0));
+			}
+			List<User> userList = null;
+			StringBuilder sendIds = new StringBuilder();
+			for (LosAuditProecess item : auditProecessList) {
+				if (ObjectUtils.isNotNull(item.getSendUserId())) {
+					sendIds.append(item.getSendUserId()).append(",");
+				}
+			}
+			if (sendIds.length() > 1) {
+				userList = userClient.selectUserIds(sendIds.substring(0, sendIds.length() - 1));
+			}
 			List<LosAuditOrderVO> auditOrderVOS = new ArrayList<>();
-			auditProecessList.forEach(e -> {
+			for (LosAuditProecess e : auditProecessList) {
 				LosAuditOrderVO auditOrderVO = new LosAuditOrderVO();
 				BeanUtil.copyProperties(e, auditOrderVO);
-				if (ObjectUtil.isNotEmpty(e.getSendUserId())) {
-					R<User> user = userClient.userInfoById(e.getSendUserId());
-					if (user.isSuccess() && ObjectUtil.isNotEmpty(user.getData())) {
-						auditOrderVO.setSendRealName(user.getData().getRealName());
+				if (userList != null && userList.size() > 0 && ObjectUtil.isNotEmpty(e.getSendUserId())) {
+					User user = userList.stream().filter(i -> i.getId().equals(e.getSendUserId())).findFirst().orElse(new User());
+					if (ObjectUtils.isNotNull(user.getRealName())) {
+						auditOrderVO.setSendRealName(user.getRealName());
+					}
+				}
+				if (bCorpsList != null && bCorpsList.size() > 0 && ObjectUtils.isNotNull(e.getCorpId())) {
+					BCorps bCorps = bCorpsList.stream().filter(i -> i.getId().equals(e.getCorpId())).findFirst().orElse(new BCorps());
+					if (ObjectUtils.isNotNull(bCorps.getCnName())) {
+						auditOrderVO.setCorpsName(bCorps.getCnName());
 					}
 				}
 				auditOrderVOS.add(auditOrderVO);
-			});
-
+			}
 			pages.setRecords(auditOrderVOS);
 			return R.data(pages);
 		} else {
@@ -201,10 +224,8 @@ public class AuditProecessController extends BladeController {
 		if (StringUtils.isBlank(proecess.getCheckType())) {
 			throw new SecurityException("审核失败,未填写审批类型");
 		}
-		if ("PJTK".equals(proecess.getCheckType())) {
-			auditProecessService.pjOrderCheck(auditProecess);
-		} else if ("PJCG".equals(proecess.getCheckType())) {
-			auditProecessService.pjOrderCheck(auditProecess);
+		if ("HYCK-DJ".equals(proecess.getCheckType())) {
+			auditProecessService.losBillsCheck(auditProecess);
 		}
 		return R.data(auditProecess);
 	}

+ 2 - 2
blade-service/blade-los/src/main/java/org/springblade/los/check/service/IAuditProecessService.java

@@ -48,8 +48,8 @@ public interface IAuditProecessService extends IService<LosAuditProecess> {
 
 	void deteleByBillIdOrGrade(Long billId, Integer times);
 	/**
-	 * 配件销售退款审核
+	 * 海运出口单据审核
 	 * @param auditProecess
 	 */
-	void pjOrderCheck(LosAuditProecess auditProecess);
+	void losBillsCheck(LosAuditProecess auditProecess);
 }

+ 61 - 45
blade-service/blade-los/src/main/java/org/springblade/los/check/service/impl/AuditProecessServiceImpl.java

@@ -19,7 +19,6 @@ package org.springblade.los.check.service.impl;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
-import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import io.seata.spring.annotation.GlobalTransactional;
@@ -28,6 +27,10 @@ import org.springblade.client.entity.Message;
 import org.springblade.client.feign.IMessageClient;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
+import org.springblade.los.basic.corps.entity.BCorps;
+import org.springblade.los.basic.corps.service.IBCorpsService;
+import org.springblade.los.business.sea.entity.Bills;
+import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.check.dto.LosAuditProecessDTO;
 import org.springblade.los.check.entity.LosAuditPathsActs;
 import org.springblade.los.check.entity.LosAuditPathsLevels;
@@ -36,9 +39,6 @@ import org.springblade.los.check.mapper.AuditPathsActsMapper;
 import org.springblade.los.check.mapper.AuditProecessMapper;
 import org.springblade.los.check.service.IAuditProecessService;
 import org.springblade.los.check.vo.LosAuditProecessVO;
-import org.springblade.system.feign.ISysClient;
-import org.springblade.system.user.feign.IUserClient;
-import org.springblade.system.user.feign.IUserSearchClient;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -63,11 +63,10 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 
 	private final IMessageClient messageClient;
 
-	private final ISysClient sysClient;
+	private final BillsMapper billsMapper;
 
-	private final IUserClient userClient;
+	private final IBCorpsService bCorpsService;
 
-	private final IUserSearchClient iUserSearchClient;
 
 	@Override
 	public IPage<LosAuditProecessVO> selectAuditProecessPage(IPage<LosAuditProecessVO> page, LosAuditProecessVO auditProecess) {
@@ -140,15 +139,12 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
 				String corpName = null;
 				if (auditProecessDTO.getCorpId() != null) {
-					String status = sysClient.getParamService("mall.data");
-					if (ObjectUtils.isNotNull(status) && "1".equals(status)) {
-						/*PjCorpsDesc corpMessage = ipjCorpClient.getByCorp(auditProecessDTO.getCorpId());
-						if (corpMessage != null) {
-							corpName = corpMessage.getCname();
-						}*/
+					BCorps corpMessage = bCorpsService.getById(auditProecessDTO.getCorpId());
+					if (corpMessage != null) {
+						corpName = corpMessage.getCorpName();
 					}
 				}
-				String orderDate = null;
+				String billsDate = null;
 				//开启之后, 给第一级推送消息
 
 				Message message = new Message();
@@ -157,13 +153,8 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				message.setMessageType(1);
 				message.setOrigin(1);
 				message.setParameter(String.valueOf(auditProecessDTO.getBillId()));
-				if ("退款审批".equals(auditProecessDTO.getProcessType())) {
-					message.setMessageBody("您有新的售后审核,客户名:" + corpName + "," + "订单号:" +
-						"" + auditProecessDTO.getBillNo() + ",请审核。"
-						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
-					);
-				} else if ("采购审核".equals(auditProecessDTO.getProcessType())) {
-					message.setMessageBody("您有新的采购审核,客户名:" + corpName + "," + "订单号:" +
+				if ("海运出口审核".equals(auditProecessDTO.getProcessType())) {
+					message.setMessageBody("您有新的单据审核,客户名:" + corpName + "," + "业务单号:" +
 						"" + auditProecessDTO.getBillNo() + ",请审核。"
 						+ " 提交人:" + auditProecessDTO.getSendName() + "  " + "提交时间" + simpleDateFormat.format(auditProecessDTO.getSendTime())
 					);
@@ -232,12 +223,12 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 	}
 
 	/**
-	 * 配件销售退款审核
+	 * 海运出口单据审核
 	 */
 	@Override
 	@Transactional(rollbackFor = Exception.class)
 	@GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
-	public void pjOrderCheck(LosAuditProecess auditProecess) {
+	public void losBillsCheck(LosAuditProecess auditProecess) {
 		//查看最新操作记录,防止重复提交
 		LosAuditProecess proecessTemp = baseMapper.selectById(auditProecess.getId());
 		if (proecessTemp == null) {
@@ -274,7 +265,7 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 		//审批时间
 		auditProecess.setAuditOpTime(new Date());
 
-//		PjOrder order = ipjOrderClient.getByIdOrder(proecessTemp.getBillId());
+		Bills bills = billsMapper.selectById(proecessTemp.getBillId());
 
 		//不是最后一级
 		if ("F".equals(iffinalItem)) {
@@ -283,10 +274,16 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 			if (operate == 1) {
 				//如果是第一级, 则修改状态为审批中
 				if (auditProecess.getLevelId() == 1) {
-					/*R submit = ipjOrderClient.orderUnderReview(auditProecess.getSrcBillId());
-					if (!submit.isSuccess()) {
+//					R submit = billsService.underReview(auditProecess.getSrcBillId());
+					Bills detail = billsMapper.selectById(auditProecess.getSrcBillId());
+					if (detail == null) {
+						throw new SecurityException("审批通过失败");
+					}
+					detail.setStatus(2);
+					int count = billsMapper.updateById(detail);
+					if (count > 0) {
 						throw new SecurityException("审批开始修改审核状态失败");
-					}*/
+					}
 				}
 
 				auditProecess.setAuditStatus("A");
@@ -315,11 +312,11 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				SimpleDateFormat simpleDateFormat = new SimpleDateFormat();
 
 				//获得订单创建日期
-				String orderDate = null;
+				String billsDate = null;
 				if (proecessTemp.getBillId() != null) {
-					/*if (order != null) {
-						orderDate = simpleDateFormat.format(order.getCreateTime());
-					}*/
+					if (bills != null) {
+						billsDate = simpleDateFormat.format(bills.getCreateTime());
+					}
 				}
 
 				Message message = new Message();
@@ -329,8 +326,8 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 				message.setMessageType(1);
 				message.setTenantId(AuthUtil.getTenantId());
 
-				message.setMessageBody("您有新的审核,订单单号:" + "" + proecessTemp.getBillNo() + ","
-					+ "订单日期:" + orderDate + ",请审核。"
+				message.setMessageBody("您有新的审核,业务单号:" + "" + proecessTemp.getBillNo() + ","
+					+ "单据日期:" + billsDate + ",请审核。"
 					+ "提交人:" + proecessTemp.getSendName() + "  " + "提交时间" + simpleDateFormat.format(proecessTemp.getSendTime())
 				);
 
@@ -344,13 +341,18 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 			//不通过
 			else if (operate == 2) {
 				auditProecess.setAuditStatus("B");
-				//todo 调用feign取消
-				/*R r = ipjOrderClient.orderPassCancel(auditProecess.getSrcBillId());
-				if (!r.isSuccess()) {
+				Bills detail = billsMapper.selectById(auditProecess.getSrcBillId());
+				if (detail == null) {
+					throw new SecurityException("审批通过失败");
+				}
+				detail.setStatus(4);
+				int count = billsMapper.updateById(detail);
+//				R r = billsService.passCancel(auditProecess.getSrcBillId());
+				if (count > 0) {
 					throw new SecurityException("修改订单数据失败");
-				}*/
+				}
 
-				sendMessage.setMessageBody("您的审核未通过" + ",订单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				sendMessage.setMessageBody("您的审核未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
 					throw new SecurityException("发送消息失败");
@@ -362,14 +364,19 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 		else if ("T".equals(iffinalItem)) {
 			//通过
 			if (operate == 1) {
-				//todo 调用feign直接通过
 				auditProecess.setAuditStatus("A");
-				/*R r = ipjOrderClient.orderPassCheck(auditProecess.getSrcBillId());
-				if (!r.isSuccess()) {
+				Bills detail = billsMapper.selectById(auditProecess.getSrcBillId());
+				if (bills == null) {
+					throw new SecurityException("审批通过失败");
+				}
+				detail.setStatus(3);
+				int count = billsMapper.updateById(detail);
+//				R r = billsService.passCheck(auditProecess.getSrcBillId());
+				if (count > 0) {
 					throw new SecurityException("修改订单数据失败");
-				}*/
+				}
 
-				sendMessage.setMessageBody("您的审核已通过" + ",订单号:" + proecessTemp.getBillNo() + ",请继续操作");
+				sendMessage.setMessageBody("您的审核已通过" + ",业务单号:" + proecessTemp.getBillNo() + ",请继续操作");
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
 					throw new SecurityException("发送消息失败");
@@ -379,11 +386,20 @@ public class AuditProecessServiceImpl extends ServiceImpl<AuditProecessMapper, L
 			else if (operate == 2) {
 				//todo 调用feign取消
 				auditProecess.setAuditStatus("B");
-				/*R r = ipjOrderClient.orderPassCancel(auditProecess.getSrcBillId());
+				Bills detail = billsMapper.selectById(auditProecess.getSrcBillId());
+				if (detail == null) {
+					throw new SecurityException("审批通过失败");
+				}
+				detail.setStatus(4);
+				int count = billsMapper.updateById(detail);
+				if (count > 0) {
+					throw new SecurityException("修改订单数据失败");
+				}
+				/*R r = billsService.passCancel(auditProecess.getSrcBillId());
 				if (!r.isSuccess()) {
 					throw new SecurityException("修改订单数据失败");
 				}*/
-				sendMessage.setMessageBody("您的审核未通过" + ",订单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
+				sendMessage.setMessageBody("您的审核未通过" + ",业务单号:" + proecessTemp.getBillNo() + ",驳回原因:" + auditProecess.getAuditMsg());
 				R save = messageClient.save(sendMessage);
 				if (!save.isSuccess()) {
 					throw new SecurityException("发送消息失败");

+ 8 - 6
blade-service/blade-los/src/main/java/org/springblade/los/finance/fee/service/impl/FinAccBillsServiceImpl.java

@@ -29,7 +29,7 @@ import org.springblade.los.basic.business.service.IBusinessTypeService;
 import org.springblade.los.billno.entity.BusinessBillNo;
 import org.springblade.los.billno.service.IBusinessBillNoService;
 import org.springblade.los.business.sea.entity.Bills;
-import org.springblade.los.business.sea.service.IBillsService;
+import org.springblade.los.business.sea.mapper.BillsMapper;
 import org.springblade.los.finance.fee.entity.FeeCenter;
 import org.springblade.los.finance.fee.entity.FinAccBills;
 import org.springblade.los.finance.fee.mapper.FinAccBillsMapper;
@@ -62,7 +62,7 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 
 	private final IFeeCenterService feeCenterService;
 
-	private final IBillsService billsService;
+	private final BillsMapper billsMapper;
 
 	private final IBusinessBillNoService businessBillNoService;
 
@@ -118,7 +118,7 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 		List<Bills> billsList = new ArrayList<>();
 		List<Long> ids = finAccBills.getFeeCenterList().stream().map(FeeCenter::getPid).collect(Collectors.toList());
 		if (ObjectUtils.isNotNull(ids) && ids.size() > 0) {
-			billsList = billsService.list(new LambdaQueryWrapper<Bills>()
+			billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
 				.eq(Bills::getTenantId, AuthUtil.getTenantId())
 				.eq(Bills::getIsDeleted, 0)
 				.eq(Bills::getBusinessType, "SE")
@@ -242,8 +242,9 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 		feeCenterService.saveOrUpdateBatch(feeCenterList);
 		for (Bills item : billsList) {
 			item.setBillingStatus(item.getBillingStatus() + 1);
+			billsMapper.updateById(item);
 		}
-		billsService.saveOrUpdateBatch(billsList);
+//		billsService.saveOrUpdateBatch(billsList);
 		return R.data("操作成功");
 	}
 
@@ -258,7 +259,7 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 		List<Bills> billsList = new ArrayList<>();
 		List<Long> ids = finAccBills.getFeeCenterList().stream().map(FeeCenter::getPid).collect(Collectors.toList());
 		if (ObjectUtils.isNotNull(ids) && ids.size() > 0) {
-			billsList = billsService.list(new LambdaQueryWrapper<Bills>()
+			billsList = billsMapper.selectList(new LambdaQueryWrapper<Bills>()
 				.eq(Bills::getTenantId, AuthUtil.getTenantId())
 				.eq(Bills::getIsDeleted, 0)
 				.eq(Bills::getBusinessType, "SE")
@@ -283,8 +284,9 @@ public class FinAccBillsServiceImpl extends ServiceImpl<FinAccBillsMapper, FinAc
 				throw new RuntimeException("撤销账单失败");
 			}
 			item.setBillingStatus(item.getBillingStatus() - 1);
+			billsMapper.updateById(item);
 		}
-		billsService.saveOrUpdateBatch(billsList);
+//		billsService.saveOrUpdateBatch(billsList);
 		return R.data("操作成功");
 	}