|
@@ -17,8 +17,6 @@ import cn.ezhizao.project.business.resourceGroup.domain.BizProductionResourceGro
|
|
|
import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupDetailService;
|
|
|
import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupService;
|
|
|
import cn.ezhizao.project.business.resourceGroup.service.IBizProductionResourceGroupSubPlanService;
|
|
|
-import cn.ezhizao.project.business.technologicalProcess.service.IBizTechnologicalProcessService;
|
|
|
-import cn.ezhizao.project.business.technologicalProcessDetail.service.IBizTechnologicalProcessDetailService;
|
|
|
import cn.ezhizao.project.business.workshop.domain.BizWorkshop;
|
|
|
import cn.ezhizao.project.business.workshop.service.IBizWorkshopService;
|
|
|
import cn.ezhizao.project.system.domain.SysDept;
|
|
@@ -80,6 +78,7 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
|
|
|
// 获取快速报工列表
|
|
|
@PostMapping("/list")
|
|
|
+ @Log(title = "快速报工记录", businessType = BusinessType.SELECT)
|
|
|
public TableDataInfo list(@RequestBody BizProductionPlanDetail bizProductionPlanDetail) throws NoSuchFieldException, IllegalAccessException {
|
|
|
// 根据员工信息获取当前未完成的所有快速报工
|
|
|
List<BizDayworkItem> list = bizDayworkItemService.getUnfinishedDayworkItemByUser(SecurityUtils.getLoginUser().getUser().getUserId());
|
|
@@ -101,7 +100,7 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
List<BizLotTechnologicalProcessDetail> processDetails = tProcessDetails.stream().filter(t -> t.getLotTechnologicalProcessId().equals(p.getId())).collect(Collectors.toList());
|
|
|
v.setProcess(processDetails.stream().filter(l -> l.getId().equals(v.getTechnologicalProcessDetailId())).map(BizProcess::new).findFirst().orElse(new BizProcess()));
|
|
|
v.setProcessSequence(processDetails.stream().map(BizProcess::new).collect(Collectors.toList()));
|
|
|
- v.setNextProcess(v.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(v.getTechnologicalProcessDetail().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
|
|
|
+ v.setNextProcess(v.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(v.getProcess().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
|
|
|
} else {
|
|
|
v.setNextProcess(v.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(v.getTechnologicalProcessDetail().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
|
|
|
}
|
|
@@ -125,6 +124,7 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
|
|
|
// 批量完成报工
|
|
|
@PostMapping("/finishQuick")
|
|
|
+ @Log(title = "快速报工结束报工", businessType = BusinessType.INSERT)
|
|
|
public AjaxResult finishQuick(@RequestBody List<BizDayworkItem> items) {
|
|
|
List<BizDayworkItem> addItems = new ArrayList<>();
|
|
|
List<BizDayworkItem> updateItems = new ArrayList<>();
|
|
@@ -166,6 +166,7 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
if (turnItem.getStatus().equals("7")) {
|
|
|
l.setDeptId(turnItem.getDeptId());
|
|
|
l.setProcessQualifiedNum(lotNum);
|
|
|
+ l.setTemporaryProcessQualifiedNum(lotNum);
|
|
|
updateDaywork.add(l);
|
|
|
}
|
|
|
turnItem.setLotId(latestItem.getLotId());
|
|
@@ -175,6 +176,7 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
turnItem.setUserName(user.getUserName());
|
|
|
turnItem.setNickName(user.getNickName());
|
|
|
turnItem.setWorkingHours(0L);
|
|
|
+ turnItem.setFormDayworkItemId(latestItem.getFormDayworkItemId());
|
|
|
turnItem.setTenantId(latestItem.getTenantId());
|
|
|
turnItem.setProdNum(latestItem.getProdNum());
|
|
|
turnItem.setProductionPlanDetailId(latestItem.getProductionPlanDetailId());
|
|
@@ -208,6 +210,7 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
|
|
|
// 通过周转箱获取所有批次 和对应工序
|
|
|
@PostMapping("/getDayworkByCarrierId")
|
|
|
+ @Log(title = "快速报工扫码载具", businessType = BusinessType.SELECT)
|
|
|
public AjaxResult getDayworkByCarrierId(@RequestBody BizDayworkItem bizDayworkItem) throws NoSuchFieldException, IllegalAccessException {
|
|
|
// 获取快速报工的所有工段
|
|
|
SysDept dept = deptService.selectDeptById(bizDayworkItem.getDeptId());
|
|
@@ -241,7 +244,6 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
Map<String, Object> result = new HashMap<>();
|
|
|
if (turnoverItems.isEmpty()) {
|
|
|
result.put("items", turnoverItems);
|
|
|
-
|
|
|
return success(result);
|
|
|
} else {
|
|
|
BizDayworkItem conditions = new BizDayworkItem();
|
|
@@ -254,47 +256,63 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
List<SysDept> depts = deptService.selectDeptList(deptConditions);
|
|
|
// 对应工段的车间
|
|
|
List<BizWorkshop> workshops = workshopService.query().list();
|
|
|
-
|
|
|
+ AtomicBoolean hasNoProcess = new AtomicBoolean(false);
|
|
|
items.forEach(l -> {
|
|
|
BizProductionPlanDetail productionPlanDetail = list.stream().filter(v -> v.getId().equals(l.getProductionPlanDetailId())).findFirst().orElse(null);
|
|
|
l.setProductionPlanNo(productionPlanDetail != null ? productionPlanDetail.getProductionPlanNo() : null);
|
|
|
if (l.getDaywork().getIsAmend().equals(1) || l.getDaywork().getIsWasteRecycling().equals(1)) {
|
|
|
BizLotTechnologicalProcess p = ltp.stream().filter(v -> v.getLotId().equals(l.getDaywork().getLotId())).findFirst().orElse(new BizLotTechnologicalProcess());
|
|
|
List<BizLotTechnologicalProcessDetail> processDetails = ltpd.stream().filter(t -> t.getLotTechnologicalProcessId().equals(p.getId())).collect(Collectors.toList());
|
|
|
- l.setProcess(processDetails.stream().filter(v -> v.getId().equals(l.getTechnologicalProcessDetailId())).map(BizProcess::new).findFirst().orElse(new BizProcess()));
|
|
|
- l.setProcessSequence(processDetails.stream().map(BizProcess::new).collect(Collectors.toList()));
|
|
|
- l.setNextProcess(l.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(l.getTechnologicalProcessDetail().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
|
|
|
- l.setNextProcesses(l.getProcess() != null ? processDetails.stream().sorted(Comparator.comparing(BizLotTechnologicalProcessDetail::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).map(BizProcess::new).collect(Collectors.toList()) : new ArrayList<>());
|
|
|
- l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
|
|
|
+ if (processDetails.stream().filter(v -> v.getProcessStepNumber().compareTo(l.getProcessStepNumber()) > 0).noneMatch(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getProcessId())))) {
|
|
|
+ hasNoProcess.set(true);
|
|
|
+ } else {
|
|
|
+ l.setProcess(processDetails.stream().filter(v -> v.getProcessStepNumber().compareTo(l.getProcessStepNumber()) > 0).filter(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getProcessId()))).map(BizProcess::new).findFirst().orElse(new BizProcess()));
|
|
|
+ l.setProcessSequence(processDetails.stream().map(BizProcess::new).collect(Collectors.toList()));
|
|
|
+ l.setNextProcess(l.getProcessSequence().stream().filter(e -> e.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).min(Comparator.comparing(BizProcess::getProcessStepNumber)).orElse(null));
|
|
|
+ l.setNextProcesses(l.getProcess() != null ? processDetails.stream().sorted(Comparator.comparing(BizLotTechnologicalProcessDetail::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).map(BizProcess::new).collect(Collectors.toList()) : new ArrayList<>());
|
|
|
+ l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
|
|
|
+ List<SysDept> nextDept = depts.stream().filter(
|
|
|
+ e -> allProcesses.stream().filter(
|
|
|
+ v -> l.getNextProcesses().stream().anyMatch(
|
|
|
+ n -> v.getProcessId().equals(n.getId()))).anyMatch(
|
|
|
+ v -> e.getDeptId().equals(v.getDeptId()))
|
|
|
+ ).collect(Collectors.toList());
|
|
|
|
|
|
- List<SysDept> nextDept = depts.stream().filter(e -> allProcesses.stream().filter(v -> l.getNextProcesses().stream().anyMatch(n -> v.getProcessId().equals(n.getId()))).anyMatch(v -> e.getDeptId().equals(v.getDeptId()))
|
|
|
- ).collect(Collectors.toList());
|
|
|
- workshops.forEach(e -> {
|
|
|
- nextDept.forEach(v -> {
|
|
|
- if (e.getDepts().stream().noneMatch(n -> v.getDeptId().equals(n.getDeptId())) ) {
|
|
|
- e.getDepts().add(v);
|
|
|
+ workshops.forEach(e -> {
|
|
|
+ if (e.getDepts() == null) {
|
|
|
+ e.setDepts(new ArrayList<>());
|
|
|
}
|
|
|
+ nextDept.forEach(v -> {
|
|
|
+ if (v.getWorkshopId().equals(e.getId()) && e.getDepts().stream().noneMatch(n -> v.getDeptId().equals(n.getDeptId()))) {
|
|
|
+ e.getDepts().add(v);
|
|
|
+ }
|
|
|
+ });
|
|
|
});
|
|
|
- });
|
|
|
+ }
|
|
|
+
|
|
|
} else {
|
|
|
BizProcess process = l.getProcessSequence().stream().filter(v -> v.getTechnologicalProcessDetailId().equals(l.getTechnologicalProcessDetailId())).findFirst().orElse(new BizProcess());
|
|
|
- l.setProcess(l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(process.getProcessStepNumber()) > 0).filter(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getId()))).findFirst().orElse(null));
|
|
|
- l.setNextProcesses(l.getProcess() != null ? l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).collect(Collectors.toList()) : new ArrayList<>());
|
|
|
- l.setNextProcess(l.getNextProcesses().isEmpty() ? null : l.getNextProcesses().get(0));
|
|
|
+ if (l.getProcessSequence().stream().filter(v -> v.getProcessStepNumber().compareTo(l.getProcessStepNumber()) > 0).noneMatch(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getId())))) {
|
|
|
+ hasNoProcess.set(true);
|
|
|
+ } else {
|
|
|
+ l.setProcess(l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(process.getProcessStepNumber()) > 0).filter(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getId()))).findFirst().orElse(null));
|
|
|
+ l.setNextProcesses(l.getProcess() != null ? l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(l.getProcess().getProcessStepNumber()) > 0).collect(Collectors.toList()) : new ArrayList<>());
|
|
|
+ l.setNextProcess(l.getNextProcesses().isEmpty() ? null : l.getNextProcesses().get(0));
|
|
|
|
|
|
- l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
|
|
|
- List<SysDept> nextDept = depts.stream().filter(e -> allProcesses.stream().filter(v -> l.getNextProcesses().stream().anyMatch(n -> v.getProcessId().equals(n.getId()))).anyMatch(v -> e.getDeptId().equals(v.getDeptId()))
|
|
|
- ).collect(Collectors.toList());
|
|
|
- workshops.forEach(e -> {
|
|
|
- if (e.getDepts() == null) {
|
|
|
- e.setDepts(new ArrayList<>());
|
|
|
- }
|
|
|
- nextDept.forEach(v -> {
|
|
|
- if (v.getWorkshopId().equals(e.getId()) && e.getDepts().stream().noneMatch(n -> v.getDeptId().equals(n.getDeptId())) ) {
|
|
|
- e.getDepts().add(v);
|
|
|
+ l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
|
|
|
+ List<SysDept> nextDept = depts.stream().filter(e -> allProcesses.stream().filter(v -> l.getNextProcesses().stream().anyMatch(n -> v.getProcessId().equals(n.getId()))).anyMatch(v -> e.getDeptId().equals(v.getDeptId()))
|
|
|
+ ).collect(Collectors.toList());
|
|
|
+ workshops.forEach(e -> {
|
|
|
+ if (e.getDepts() == null) {
|
|
|
+ e.setDepts(new ArrayList<>());
|
|
|
}
|
|
|
+ nextDept.forEach(v -> {
|
|
|
+ if (v.getWorkshopId().equals(e.getId()) && e.getDepts().stream().noneMatch(n -> v.getDeptId().equals(n.getDeptId()))) {
|
|
|
+ e.getDepts().add(v);
|
|
|
+ }
|
|
|
+ });
|
|
|
});
|
|
|
- });
|
|
|
+ }
|
|
|
}
|
|
|
// BizProcess process = l.getProcessSequence().stream().filter(v -> v.getTechnologicalProcessDetailId().equals(l.getTechnologicalProcessDetailId())).findFirst().orElse(new BizProcess());
|
|
|
// l.setProcess(l.getProcessSequence().stream().sorted(Comparator.comparing(BizProcess::getProcessStepNumber)).filter(v -> v.getProcessStepNumber().compareTo(process.getProcessStepNumber()) > 0).filter(v -> processes.stream().anyMatch(e -> e.getProcessId().equals(v.getId()))).findFirst().orElse(null));
|
|
@@ -304,6 +322,9 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
// l.setProductionPlanNo(productionPlanDetail != null ? productionPlanDetail.getProductionPlanNo() : null);
|
|
|
// l.setWorkshopId(workshops.stream().filter(v -> v.getId().equals(l.getWorkshopId())).findFirst().orElse(new BizWorkshop()).getId());
|
|
|
});
|
|
|
+ if (hasNoProcess.get()) {
|
|
|
+ return error("该工段没有可报工工序");
|
|
|
+ }
|
|
|
result.put("items", items);
|
|
|
result.put("workShops", workshops.stream().filter(v -> !v.getDepts().isEmpty()).collect(Collectors.toList()));
|
|
|
return success(result);
|
|
@@ -353,6 +374,9 @@ public class BizQuickDayworkController extends BaseController {
|
|
|
bizDayworkItem.setProcessStepNumber(l.getProcess().getProcessStepNumber());
|
|
|
bizDayworkItem.setUserName(user.getUserName());
|
|
|
bizDayworkItem.setNickName(user.getNickName());
|
|
|
+ if (l.getDaywork().getIsAmend().equals(1)) {
|
|
|
+ bizDayworkItem.setFormDayworkItemId(1L);
|
|
|
+ }
|
|
|
//0114 这里要把前段显示的item的processId传进来
|
|
|
bizDayworkItem.setProcessId(l.getDaywork().getProcessId());
|
|
|
bizDayworkItem.setTechnologicalProcessDetailId(l.getDaywork().getTechnologicalProcessDetailId());
|