|
@@ -0,0 +1,98 @@
|
|
|
+package cn.ezhizao.project.business.switchDept.controller;
|
|
|
+
|
|
|
+import cn.ezhizao.framework.web.controller.BaseController;
|
|
|
+import cn.ezhizao.framework.web.domain.AjaxResult;
|
|
|
+import cn.ezhizao.project.business.product.domain.*;
|
|
|
+import cn.ezhizao.project.business.product.service.*;
|
|
|
+import cn.ezhizao.project.business.technologicalProcessDetail.domain.BizTechnologicalProcessDetail;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Collections;
|
|
|
+import java.util.List;
|
|
|
+import java.util.stream.Collectors;
|
|
|
+
|
|
|
+/**
|
|
|
+ * 临时周转controller
|
|
|
+ *
|
|
|
+ * @author zhuangdezheng
|
|
|
+ * @date 2024-04-20
|
|
|
+ */
|
|
|
+@RestController
|
|
|
+@RequestMapping("/business/switch")
|
|
|
+public class SwitchController extends BaseController {
|
|
|
+ @Resource
|
|
|
+ IBizDayworkService dayworkService;
|
|
|
+ @Resource
|
|
|
+ IBizDayworkItemService dayworkItemService;
|
|
|
+ @Resource
|
|
|
+ IBizDayworkCarrierService dayworkCarrierService;
|
|
|
+ @Resource
|
|
|
+ IBizProductionPlanDetailService productionPlanDetailService;
|
|
|
+ @Resource
|
|
|
+ IBizLotTechnologicalProcessDetailService lotTechnologicalProcessDetailService;
|
|
|
+
|
|
|
+ @PostMapping("/getDayworkByCarrierCode")
|
|
|
+ public AjaxResult getDayworkByCarrierCode(@RequestBody BizDayworkItem bizDayworkItem) {
|
|
|
+ List<BizDayworkCarrier> bizDayworkCarriers = dayworkCarrierService.query().eq("carrier_id", bizDayworkItem.getCarrierId()).eq("is_changed", 0).list();
|
|
|
+ if (bizDayworkCarriers.isEmpty()) {
|
|
|
+ throw new RuntimeException("该载具未绑定任何批次!");
|
|
|
+ }
|
|
|
+ List<BizDaywork> bizDayworks = dayworkService.query().in("id", bizDayworkCarriers.isEmpty()
|
|
|
+ ?
|
|
|
+ Collections.singletonList(0L)
|
|
|
+ :
|
|
|
+ bizDayworkCarriers.stream()
|
|
|
+ .map(BizDayworkCarrier::getDayworkId)
|
|
|
+ .collect(Collectors.toList())
|
|
|
+ )
|
|
|
+ .list();
|
|
|
+ // 判断是否是在当前工段
|
|
|
+ bizDayworks = bizDayworks.stream().filter(v -> v.getDeptId().equals(bizDayworkItem.getDeptId())).collect(Collectors.toList());
|
|
|
+ List<BizDayworkItem> allBizDayworkItem = dayworkItemService.query().in("daywork_id", bizDayworks.isEmpty() ? Collections.singletonList(0L) : bizDayworks.stream().map(BizDaywork::getId).collect(Collectors.toList())).orderByDesc("create_time").list();
|
|
|
+ bizDayworks.forEach(l -> l.setDayworkItemList(allBizDayworkItem.stream().filter(v -> v.getDayworkId().equals(l.getId())).collect(Collectors.toList())));
|
|
|
+ bizDayworks.forEach(l -> l.setDayworkItemList(allBizDayworkItem.stream().filter(v -> v.getDayworkId().equals(l.getId())).collect(Collectors.toList())));
|
|
|
+ List<BizDayworkItem> turnoverItems = new ArrayList<>();
|
|
|
+ for (BizDaywork bizDaywork : bizDayworks) {
|
|
|
+ if (bizDaywork.getDayworkItemList().get(0).getStatus().equals("4")
|
|
|
+ || bizDaywork.getDayworkItemList().get(0).getStatus().equals("5")
|
|
|
+ || bizDaywork.getDayworkItemList().get(0).getStatus().equals("7")) {
|
|
|
+ turnoverItems.add(bizDaywork.getDayworkItemList().get(0));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (turnoverItems.isEmpty()) {
|
|
|
+ return success(turnoverItems);
|
|
|
+ } else {
|
|
|
+ BizDayworkItem conditions = new BizDayworkItem();
|
|
|
+ conditions.setIds(turnoverItems.stream().map(BizDayworkItem::getId).collect(Collectors.toList()));
|
|
|
+ List<BizDayworkItem> items = dayworkItemService.getList(conditions);
|
|
|
+ //拿到生产计划id
|
|
|
+ List<Long> productionPlanDetailIds = items.stream().map(BizDayworkItem::getProductionPlanDetailId).collect(Collectors.toList());
|
|
|
+ List<BizProductionPlanDetail> bizProductionPlanDetails = productionPlanDetailService.query().in("id", productionPlanDetailIds.isEmpty() ? Collections.singletonList(0L) : productionPlanDetailIds).list();
|
|
|
+ //查找批次id
|
|
|
+ List<Long> LotTechnologicalProcessesIds = items.stream().filter(v -> v.getDaywork().getIsAmend().equals(1) || v.getDaywork().getIsWasteRecycling().equals(1)).map(BizDayworkItem::getTechnologicalProcessId).collect(Collectors.toList());
|
|
|
+ List<BizLotTechnologicalProcessDetail> bizLotTechnologicalProcessDetails = lotTechnologicalProcessDetailService.query().in("lot_technological_process_id", LotTechnologicalProcessesIds.isEmpty() ? Collections.singletonList(0L) : LotTechnologicalProcessesIds).list();
|
|
|
+ for (BizDayworkItem item : items) {
|
|
|
+ //添加产品描述
|
|
|
+ item.setProductDescription(bizProductionPlanDetails.stream().filter(v -> v.getId().equals(item.getProductionPlanDetailId())).collect(Collectors.toList()).get(0).getProductDescription());
|
|
|
+ //如果不是正常批次,则工艺重新取
|
|
|
+ if (item.getDaywork().getIsAmend().equals(1) || item.getDaywork().getIsWasteRecycling().equals(1)) {
|
|
|
+ List<BizLotTechnologicalProcessDetail> processDetail = bizLotTechnologicalProcessDetails.stream().filter(v -> v.getLotId().equals(item.getLotId())).collect(Collectors.toList());
|
|
|
+ BizLotTechnologicalProcessDetail process = processDetail.stream().filter(v -> v.getProcessStepNumber().equals(item.getProcessStepNumber())).findFirst().orElse(null);
|
|
|
+ BizTechnologicalProcessDetail technologicalProcessDetail = new BizTechnologicalProcessDetail();
|
|
|
+ technologicalProcessDetail.setProcessAlias(process.getProcessAlias());
|
|
|
+ technologicalProcessDetail.setProcessCode(process.getProcessCode());
|
|
|
+ technologicalProcessDetail.setProductDescription(process.getProductDescription());
|
|
|
+ technologicalProcessDetail.setProcessStepNumber(process.getProcessStepNumber());
|
|
|
+ item.setTechnologicalProcessDetail(technologicalProcessDetail);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return success(items);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+}
|