|
@@ -9,17 +9,12 @@ import javax.annotation.Resource;
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
-import cn.ezhizao.project.business.domain.BizCarrier;
|
|
|
-import cn.ezhizao.project.business.domain.BizOutsourcedOrderDetail;
|
|
|
-import cn.ezhizao.project.business.domain.BizReturnReceiptDetail;
|
|
|
-import cn.ezhizao.project.business.service.IBizOutsourcedOrderDetailService;
|
|
|
-import cn.ezhizao.project.business.service.IBizReturnReceiptDetailService;
|
|
|
+import cn.ezhizao.project.business.domain.*;
|
|
|
+import cn.ezhizao.project.business.service.*;
|
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
import cn.ezhizao.framework.aspectj.lang.annotation.Log;
|
|
|
import cn.ezhizao.framework.aspectj.lang.enums.BusinessType;
|
|
|
-import cn.ezhizao.project.business.domain.BizOutsourcedOrderDetailProcess;
|
|
|
-import cn.ezhizao.project.business.service.IBizOutsourcedOrderDetailProcessService;
|
|
|
import cn.ezhizao.framework.web.controller.BaseController;
|
|
|
import cn.ezhizao.framework.web.domain.AjaxResult;
|
|
|
import cn.ezhizao.common.utils.poi.ExcelUtil;
|
|
@@ -42,6 +37,10 @@ public class BizOutsourcedOrderDetailProcessController extends BaseController
|
|
|
@Resource
|
|
|
private IBizOutsourcedOrderDetailService bizOutsourcedOrderDetailService;
|
|
|
@Resource
|
|
|
+ private IBizSupplierService bizSupplierService;
|
|
|
+ @Resource
|
|
|
+ private IBizDayworkCarrierService bizDayworkCarrierService;
|
|
|
+ @Resource
|
|
|
private HttpServletRequest request;
|
|
|
|
|
|
/**
|
|
@@ -64,6 +63,11 @@ public class BizOutsourcedOrderDetailProcessController extends BaseController
|
|
|
bizOutsourcedOrderDetailProcess.setSupplierId(Long.valueOf(request.getHeader("tenantId")));
|
|
|
List<BizOutsourcedOrderDetailProcess> list = bizOutsourcedOrderDetailProcessService.getList(bizOutsourcedOrderDetailProcess);
|
|
|
List<BizOutsourcedOrderDetail> details = bizOutsourcedOrderDetailService.query().in("id", list.isEmpty() ? Collections.singletonList(0L) : list.stream().map(BizOutsourcedOrderDetailProcess::getDetailId).collect(Collectors.toList())).list();
|
|
|
+ BizSupplier supplier = bizSupplierService.getById(Long.valueOf(request.getHeader("tenantId")));
|
|
|
+ List<BizDayworkCarrier> currentCarriers = new ArrayList<>();
|
|
|
+ if(supplier.getIsInnerOutsource().equals(1) && !details.isEmpty()) {
|
|
|
+ currentCarriers.addAll(bizDayworkCarrierService.query().eq("is_changed", 0).in("daywork_id", details.stream().map(BizOutsourcedOrderDetail::getDayworkId).collect(Collectors.toList())).list());
|
|
|
+ }
|
|
|
//收回状态
|
|
|
list.forEach(item ->{
|
|
|
item.setReturnStatus(0);
|
|
@@ -72,29 +76,47 @@ public class BizOutsourcedOrderDetailProcessController extends BaseController
|
|
|
}
|
|
|
BizOutsourcedOrderDetail detail = details.stream().filter(v -> v.getId().equals(item.getDetailId())).findFirst().orElse(null);
|
|
|
if(detail != null) {
|
|
|
- // 将字符串拆分转为对象
|
|
|
- List<BizCarrier> carriers = new ArrayList<>();
|
|
|
- // 为了减少前段的逻辑,所以需要先将拆分后的id也拼接起来
|
|
|
- List<Long> carrierIds = new ArrayList<>();
|
|
|
- //使用 StringTokenizer 来分割字符串
|
|
|
- StringTokenizer tokenizer = new StringTokenizer(detail.getNewCarrier(), ",");
|
|
|
- while (tokenizer.hasMoreTokens()) {
|
|
|
- String token = tokenizer.nextToken();
|
|
|
- // 检查当前 token 是否包含 "|" 字符 如果没有表示不是新箱,则跳过当前 token
|
|
|
- if (token.contains("|")) {
|
|
|
- String[] idCode = token.split("\\|"); // 安全地分割 token
|
|
|
- if (idCode.length == 2) {
|
|
|
- carrierIds.add(Long.parseLong(idCode[0]));
|
|
|
- BizCarrier bizCarrier = new BizCarrier();
|
|
|
- bizCarrier.setId(Long.parseLong(idCode[0]));
|
|
|
- bizCarrier.setCode(idCode[1]);
|
|
|
- carriers.add(bizCarrier);
|
|
|
+ if(supplier.getIsInnerOutsource().equals(1)) {
|
|
|
+ // 将字符串拆分转为对象
|
|
|
+ List<BizCarrier> carriers = new ArrayList<>();
|
|
|
+ // 为了减少前段的逻辑,所以需要先将拆分后的id也拼接起来
|
|
|
+ List<Long> carrierIds = new ArrayList<>();
|
|
|
+ currentCarriers.stream().filter(v -> v.getDayworkId().equals(detail.getDayworkId())).forEach(l -> {
|
|
|
+ BizCarrier carrier = new BizCarrier();
|
|
|
+ carrierIds.add(l.getCarrierId());
|
|
|
+ carrier.setCode(l.getCarrierCode());
|
|
|
+ carrier.setId(l.getCarrierId());
|
|
|
+ carriers.add(carrier);
|
|
|
+ });
|
|
|
+ item.setNewCarriers(carriers);
|
|
|
+ item.setCarrierIds(carrierIds);
|
|
|
+ item.setCarriers(carriers);
|
|
|
+ item.setNewCarrierName(carriers.stream().map(BizCarrier::getCode).collect(Collectors.joining()));
|
|
|
+ } else {
|
|
|
+ // 将字符串拆分转为对象
|
|
|
+ List<BizCarrier> carriers = new ArrayList<>();
|
|
|
+ // 为了减少前段的逻辑,所以需要先将拆分后的id也拼接起来
|
|
|
+ List<Long> carrierIds = new ArrayList<>();
|
|
|
+ //使用 StringTokenizer 来分割字符串
|
|
|
+ StringTokenizer tokenizer = new StringTokenizer(detail.getNewCarrier(), ",");
|
|
|
+ while (tokenizer.hasMoreTokens()) {
|
|
|
+ String token = tokenizer.nextToken();
|
|
|
+ // 检查当前 token 是否包含 "|" 字符 如果没有表示不是新箱,则跳过当前 token
|
|
|
+ if (token.contains("|")) {
|
|
|
+ String[] idCode = token.split("\\|"); // 安全地分割 token
|
|
|
+ if (idCode.length == 2) {
|
|
|
+ carrierIds.add(Long.parseLong(idCode[0]));
|
|
|
+ BizCarrier bizCarrier = new BizCarrier();
|
|
|
+ bizCarrier.setId(Long.parseLong(idCode[0]));
|
|
|
+ bizCarrier.setCode(idCode[1]);
|
|
|
+ carriers.add(bizCarrier);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ item.setNewCarriers(carriers);
|
|
|
+ item.setCarrierIds(carrierIds);
|
|
|
+ item.setCarriers(carriers);
|
|
|
}
|
|
|
- item.setNewCarriers(carriers);
|
|
|
- item.setCarrierIds(carrierIds);
|
|
|
- item.setCarriers(carriers);
|
|
|
}
|
|
|
});
|
|
|
return getDataTable(list);
|