|
|
@@ -20,6 +20,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import io.seata.spring.annotation.GlobalTransactional;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import org.springblade.check.dto.AuditProecessDTO;
|
|
|
+import org.springblade.check.entity.AuditPathsActs;
|
|
|
+import org.springblade.check.entity.AuditPathsLevels;
|
|
|
+import org.springblade.check.feign.ICheckClient;
|
|
|
+import org.springblade.client.entity.CorpsDesc;
|
|
|
import org.springblade.client.feign.ISerialClient;
|
|
|
import org.springblade.core.secure.utils.AuthUtil;
|
|
|
import org.springblade.core.tool.api.R;
|
|
|
@@ -46,6 +51,7 @@ import org.springframework.transaction.interceptor.TransactionAspectSupport;
|
|
|
|
|
|
import java.math.BigDecimal;
|
|
|
import java.util.Date;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* 配件销售采购表 服务实现类
|
|
|
@@ -61,6 +67,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
* 生成系统编号
|
|
|
*/
|
|
|
private ISerialClient serialClient;
|
|
|
+ private ICheckClient checkClient;
|
|
|
|
|
|
private final OrderItemsMapper orderItemsMapper;
|
|
|
private final ShipMapper shipMapper;
|
|
|
@@ -100,7 +107,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
shipLambdaQueryWrapper.eq(PjShip::getTenantId, AuthUtil.getTenantId())
|
|
|
.eq(PjShip::getIsDeleted, 0)
|
|
|
.eq(PjShip::getOrdId, detail.getId());
|
|
|
- detail.setShipList(shipMapper.selectList(shipLambdaQueryWrapper));
|
|
|
+ detail.setOutboundRecordsList(shipMapper.selectList(shipLambdaQueryWrapper));
|
|
|
return detail;
|
|
|
}
|
|
|
|
|
|
@@ -194,7 +201,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
if (ObjectUtil.isNotEmpty(goodsDesc.getWhether()) && goodsDesc.getWhether().equals("1")){//是否管理批次号
|
|
|
lambdaQueryWrapper.eq(PjStockDesc::getDot, item.getDot());
|
|
|
}else {
|
|
|
- lambdaQueryWrapper.isNull(PjStockDesc::getDot);
|
|
|
+ lambdaQueryWrapper.and(i -> i.eq(PjStockDesc::getDot, "").or().isNull(PjStockDesc::getDot));
|
|
|
}
|
|
|
|
|
|
PjStockDesc stockDesc = stockDescMapper.selectOne(lambdaQueryWrapper);
|
|
|
@@ -406,4 +413,104 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, PjOrder> implemen
|
|
|
return detail;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 销售申请退款请核
|
|
|
+ *
|
|
|
+ * @param order
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional(rollbackFor = Exception.class)
|
|
|
+ @GlobalTransactional(rollbackFor = Exception.class, timeoutMills = 12000000)
|
|
|
+ public PjOrder checkOrder(PjOrder order) {
|
|
|
+ PjOrder declare = baseMapper.selectById(order.getId());
|
|
|
+
|
|
|
+ //审批数据
|
|
|
+ AuditProecessDTO auditProecessDTO = new AuditProecessDTO();
|
|
|
+ //获取审批级次
|
|
|
+ List<AuditPathsLevels> auditPathsLevels = null;
|
|
|
+ // 判断是否有审批流,如果审批流已开启就进入审批流,否则直接走申请通过
|
|
|
+ AuditPathsActs pathsActs = null;
|
|
|
+ //是否开启流程
|
|
|
+ pathsActs = checkClient.getActsByActId(1106, "status");
|
|
|
+ //获取审批信息
|
|
|
+ auditPathsLevels = checkClient.listLevelsByActId(1106, "status");
|
|
|
+ auditProecessDTO.setTimes(1);
|
|
|
+ auditProecessDTO.setProcessType("退款审批");
|
|
|
+
|
|
|
+ // 没开启审批流直接走 通过流程
|
|
|
+ if (pathsActs == null || pathsActs.getIsEnable() == 2) {
|
|
|
+ throw new SecurityException("当前租户未查询到审批流配置");
|
|
|
+ } else {
|
|
|
+
|
|
|
+ if (CollectionUtils.isEmpty(auditPathsLevels)) {
|
|
|
+ throw new SecurityException("开启审批失败:未查询到审批信息");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 绑定审核类型
|
|
|
+ auditProecessDTO.setCheckType("PJTK");//代理订单
|
|
|
+ // 追加跳转路由url
|
|
|
+ auditProecessDTO.setUrl(order.getUrl());
|
|
|
+ auditProecessDTO.setPageStatus(order.getPageStatus());
|
|
|
+ auditProecessDTO.setPageLabel(order.getPageLabel());
|
|
|
+ auditProecessDTO.setOrderRemark(declare.getRemarks());//订单备注
|
|
|
+ auditProecessDTO.setPathsLevelsList(auditPathsLevels);
|
|
|
+ auditProecessDTO.setActId(1);
|
|
|
+ auditProecessDTO.setSrcBillId(declare.getId());//申请表id
|
|
|
+ auditProecessDTO.setBillId(declare.getId());//业务id
|
|
|
+ auditProecessDTO.setBillNo(declare.getOrdNo());//业务编号
|
|
|
+ auditProecessDTO.setSendUserId(AuthUtil.getUserId());//请核人id
|
|
|
+ auditProecessDTO.setSendName(AuthUtil.getUserName());//请核人名称
|
|
|
+ auditProecessDTO.setSendTime(new Date());//请核时间
|
|
|
+ auditProecessDTO.setBillTime(declare.getCreateTime());//业务日期
|
|
|
+ auditProecessDTO.setTenantId(AuthUtil.getTenantId());//租户id
|
|
|
+ R financeProcess = checkClient.createFinanceProcess(auditProecessDTO);
|
|
|
+ if (!financeProcess.isSuccess()) {
|
|
|
+ throw new SecurityException("操作失败,请联系管理员");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ declare.setStatus("退款中");
|
|
|
+ baseMapper.updateById(declare);
|
|
|
+
|
|
|
+ return declare;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 退款审批通过
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R passCheck(Long id) {
|
|
|
+ PjOrder order = baseMapper.selectById(id);
|
|
|
+ if (order == null) {
|
|
|
+ throw new SecurityException("审批通过失败");
|
|
|
+ }
|
|
|
+ if (order.getStatus() == "已取消") {
|
|
|
+ throw new SecurityException("订单已审批通过请勿重复审批");
|
|
|
+ }
|
|
|
+
|
|
|
+ order.setStatus("已取消");
|
|
|
+ order.setCheckStatus("审核完成");
|
|
|
+ baseMapper.updateById(order);
|
|
|
+
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 审核中
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ public R underReview(Long id) {
|
|
|
+ PjOrder order = baseMapper.selectById(id);
|
|
|
+ if (order == null) {
|
|
|
+ throw new SecurityException("审批通过失败");
|
|
|
+ }
|
|
|
+
|
|
|
+ order.setStatus("退款中");
|
|
|
+ order.setCheckStatus("审批中");
|
|
|
+ baseMapper.updateById(order);
|
|
|
+
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
}
|