liweidong-hj 2 weeks ago
commit 4f6539a924
  1. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/TeamSetController.java
  2. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkCenterController.java
  3. 8
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/controller/WorkTankController.java
  4. 1
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/controller/PipelineController.java
  5. 227
      blade-service/blade-desk/src/main/java/org/springblade/desk/logistics/service/impl/IOrderBoxServiceImpl.java
  6. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  7. 29
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/InspectionTaskServiceImpl.java

@ -194,6 +194,9 @@ public class TeamSetController extends BladeController {
String result = null;
String team = null;
if(null != teamIds && teamIds.size() > 0){
QueryWrapper<RelTeamSetUser> qwuser = new QueryWrapper<>();
qwuser.eq("TEAM_SET_ID", detail.getId());
relTeamSetUserService.remove(qwuser);
for(Long teamId:teamIds){
RelTeamSetUser relTeamSetUser = new RelTeamSetUser();
relTeamSetUser.setTeamSetId(detail.getId());

@ -287,6 +287,10 @@ public class WorkCenterController extends BladeController {
String team = null;
if(null != teamIds && teamIds.size() > 0){
QueryWrapper<CenterTeam> qwcenteam = new QueryWrapper<>();
qwcenteam.eq("WC_ID",detail.getId());
teamCenterService.remove(qwcenteam);
for(Long teamId:teamIds){
CenterTeam centerteam = new CenterTeam();
centerteam.setWcId(detail.getId());

@ -97,10 +97,14 @@ public class WorkTankController extends BladeController {
// }
if(null != one.getUpdateUser() && !"".equals(one.getUpdateUser())){
R<User> userplan= iUserClient.userInfoById(one.getUpdateUser());
one.setOpUserRealName(userplan.getData().getRealName());
if(null != userplan && null != userplan.getData() && null != userplan.getData().getRealName()){
one.setOpUserRealName(userplan.getData().getRealName());
}
}else{
R<User> userplan= iUserClient.userInfoById(one.getCreateUser());
one.setOpUserRealName(userplan.getData().getRealName());
if(null != userplan && null != userplan.getData() && null != userplan.getData().getRealName()){
one.setOpUserRealName(userplan.getData().getRealName());
}
}
}

@ -85,7 +85,6 @@ public class PipelineController extends BladeController {
returnToWarehouseDto.setBoxBarcode(boxBarcode);
R wcIdR = iOrderBoxService.getWcId(boxBarcode);
LinkedHashMap<String, Object> map = (LinkedHashMap<String, Object>) wcIdR.getData();
System.out.println("wcIdR = " + wcIdR);
if (map==null) {
return R.fail("未查询到该箱条码的作业中心");
}

@ -264,7 +264,6 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
.distinct()
.collect(Collectors.toList());
List<BsWorkCenterVO> wcVOList = bsWorkCenterService.getByIds(wcIdList, freeStationList);
System.out.println("wcVOList = " + wcVOList);
if (!CollectionUtils.isEmpty(wcVOList)) {
resultList.addAll(wcVOList);
log.info("【回库工位查询】查询到{}个空闲工位", wcVOList.size());
@ -468,19 +467,21 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
LinkedHashMap<String, Object> map = new LinkedHashMap<>();
map.put("wcId", wcID);
if (DistinguishRegionsEnum.includeByWcName(workCenter.getWcName())) {
List<YieldOrder> list = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderBindList.get(0).getCardNo()));
//todo:删除读取车间订单代码
// List<YieldOrder> list = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderBindList.get(0).getCardNo()));
String useDept = "";
if (list != null && list.size() != 0) {
useDept = list.get(0).getUseDept();
} else {
List<PrYieldOrder> list1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().eq(PrYieldOrder::getCardNo, orderBindList.get(0).getCardNo()));
// if (list != null && list.size() != 0) {
// useDept = list.get(0).getUseDept();
// } else {
List<PrYieldOrder> list1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().select(PrYieldOrder::getUseDept).eq(PrYieldOrder::getCardNo, orderBindList.get(0).getCardNo()));
if (list1 != null && list1.size() != 0) {
useDept = list1.get(0).getUseDept();
}else {
return R.fail("班次获取异常");
}
}
// }
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName());
String logisticsAnagementRegion = DictCache.getValue(code, useDept);
System.out.println("logisticsAnagementRegion = " + logisticsAnagementRegion);
if (logisticsAnagementRegion != null) {
map.put("stationRegion", logisticsAnagementRegion);
} else {
@ -588,12 +589,15 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
List<YieldOrder> orderList = yieldOrderService.list(
new LambdaQueryWrapper<YieldOrder>().in(YieldOrder::getCardNo, cardNoList)
);
if (orderList==null||orderList.size()==0) {
return new BigDecimal(0.1);
}
log.info("【订单重量计算】查询到订单列表:{}", orderList);
return orderList.stream()
.map(YieldOrder::getActualWeighing)
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
.reduce(new BigDecimal(0.1), BigDecimal::add);
}
/**
@ -1071,17 +1075,18 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
}
//判断是否是镀后库作业中心
if (DistinguishRegionsEnum.includeByWcName(workCenter.getWcName())) {
List<YieldOrder> yieldOrderList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderList.get(0).getCardNo()));
if (yieldOrderList != null && yieldOrderList.size() != 0) {
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName());
String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList.get(0).getUseDept());
if (!logisticsAnagementRegion.isEmpty()) {
detailsVO.setStationRegion(logisticsAnagementRegion);
return R.data(detailsVO);
}
}
List<PrYieldOrder> yieldOrderList1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().eq(PrYieldOrder::getCardNo, orderList.get(0).getCardNo()));
//todo:删除读取车间订单代码
// List<YieldOrder> yieldOrderList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, orderList.get(0).getCardNo()));
// if (yieldOrderList != null && yieldOrderList.size() != 0) {
// String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName());
// String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList.get(0).getUseDept());
// if (!logisticsAnagementRegion.isEmpty()) {
// detailsVO.setStationRegion(logisticsAnagementRegion);
// return R.data(detailsVO);
// }
//
// }
List<PrYieldOrder> yieldOrderList1 = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().select(PrYieldOrder::getUseDept).eq(PrYieldOrder::getCardNo, orderList.get(0).getCardNo()));
if (yieldOrderList1 != null && yieldOrderList1.size() != 0) {
String code = DistinguishRegionsEnum.wcNameByCode(workCenter.getWcName());
String logisticsAnagementRegion = DictCache.getValue(code, yieldOrderList1.get(0).getUseDept());
@ -1120,35 +1125,39 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
* @return 合并后的YieldOrder列表
*/
private List<YieldOrder> queryYieldOrders(List<String> cardNoList) {
// 1. 查询YieldOrder
List<YieldOrder> yieldOrderList = yieldOrderService.list(
Wrappers.lambdaQuery(YieldOrder.class)
.in(YieldOrder::getCardNo, cardNoList)
);
// 2. 找到未查询到的cardNo
Set<String> foundCardNos = yieldOrderList.stream()
.map(YieldOrder::getCardNo)
.collect(Collectors.toSet());
List<String> missingCardNos = cardNoList.stream()
.filter(cardNo -> !foundCardNos.contains(cardNo))
.collect(Collectors.toList());
// 3. 如果有缺失的,查询PrYieldOrder并转换
if (!missingCardNos.isEmpty()) {
List<PrYieldOrder> prYieldOrderList = prYieldOrderService.list(
Wrappers.lambdaQuery(PrYieldOrder.class)
.in(PrYieldOrder::getCardNo, missingCardNos)
);
// 转换为YieldOrder
//todo:删除读取车间订单代码
// // 1. 查询YieldOrder
// List<YieldOrder> yieldOrderList = yieldOrderService.list(
// Wrappers.lambdaQuery(YieldOrder.class)
// .in(YieldOrder::getCardNo, cardNoList)
// );
//
// // 2. 找到未查询到的cardNo
// Set<String> foundCardNos = yieldOrderList.stream()
// .map(YieldOrder::getCardNo)
// .collect(Collectors.toSet());
// List<String> missingCardNos = cardNoList.stream()
// .filter(cardNo -> !foundCardNos.contains(cardNo))
// .collect(Collectors.toList());
//
// // 3. 如果有缺失的,查询PrYieldOrder并转换
// if (!missingCardNos.isEmpty()) {
// List<PrYieldOrder> prYieldOrderList = prYieldOrderService.list(
// Wrappers.lambdaQuery(PrYieldOrder.class)
// .in(PrYieldOrder::getCardNo, missingCardNos)
// );
List<YieldOrder> yieldOrderList =new ArrayList<>();
List<PrYieldOrder> prYieldOrderList = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>()
.select(PrYieldOrder::getCardNo, PrYieldOrder::getYoCode, PrYieldOrder::getPartCode, PrYieldOrder::getPartName)
.in(PrYieldOrder::getCardNo, cardNoList));
// 转换为YieldOrder
List<YieldOrder> convertedList = prYieldOrderList.stream()
.map(this::convertToYieldOrder)
.collect(Collectors.toList());
// 4. 合并结果
yieldOrderList.addAll(convertedList);
}
// }
return yieldOrderList;
}
@ -1166,7 +1175,7 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
yieldOrder.setYoCode(prYieldOrder.getYoCode());
yieldOrder.setPartCode(prYieldOrder.getPartCode());
yieldOrder.setPartName(prYieldOrder.getPartName());
yieldOrder.setActualWeighing(new BigDecimal(0));
yieldOrder.setActualWeighing(new BigDecimal(0.1));
// 其他字段保持默认null
return yieldOrder;
}
@ -1258,11 +1267,16 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
}
//判断是不是镀后库作业中心
if (DistinguishRegionsEnum.includeByWcName(bsWorkCenterService.getById(wcId).getWcName())) {
List<String> deptList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().in(YieldOrder::getCardNo, orderBindList)).stream().map(s -> s.getUseDept()).toList();
//todo:删除读取车间订单代码
// List<String> deptList = yieldOrderService.list(new LambdaQueryWrapper<YieldOrder>().in(YieldOrder::getCardNo, orderBindList)).stream().map(s -> s.getUseDept()).toList();
List<PrYieldOrder> yieldOrderList = prYieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().select(PrYieldOrder::getUseDept).in(PrYieldOrder::getCardNo, orderBindList));
if (yieldOrderList==null||yieldOrderList.size()==0) {
return R.fail("车间订单异常");
}
String code = DistinguishRegionsEnum.wcNameByCode(bsWorkCenterService.getById(wcId).getWcName());
String stationRegion = "";
for (String s : deptList) {
String logisticsAnagementRegion = DictCache.getValue(code, s);
for (PrYieldOrder s : yieldOrderList) {
String logisticsAnagementRegion = DictCache.getValue(code, s.getUseDept());
if (logisticsAnagementRegion == null) {
return R.fail("站点区域异常");
} else if (stationRegion == null) {
@ -1311,66 +1325,67 @@ public class IOrderBoxServiceImpl implements IOrderBoxService {
* 校验单个订单的作业中心与箱绑定作业中心是否一致核心逻辑抽离
*/
private R<?> checkOrderWorkCenterConsistency(String orderCardNo, Long currentWcId) {
//todo:删除读取车间订单代码
// ====================== 处理标准工单 ======================
List<WorkOrder> workOrderList = workOrderService.lambdaQuery()
.select(WorkOrder::getId)
.eq(WorkOrder::getCardNo, orderCardNo)
.list();
if (workOrderList != null && !workOrderList.isEmpty()) {
WorkOrder workOrder = workOrderList.get(0);
List<WorkPlan> workPlanList = workPlanService.lambdaQuery()
.select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam)
.eq(WorkPlan::getWoId, workOrder.getId())
.list();
if (workPlanList == null || workPlanList.isEmpty()) {
log.info("workPlanList");
return R.fail(orderCardNo + "车间订单异常");
}
WorkPlan workPlan = workPlanList.get(0);
Long workCenterId;
// 根据工序状态判断使用当前工序还是下一道工序
if (workPlan.getStatus() < 3) {
// workCenterId = workPlan.getWorkCenterId();
if (workPlan.getMakeTeam() == null) {
return R.fail(orderCardNo + "车间订单班次异常");
} else {
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>()
.select(CenterTeam::getWcId, CenterTeam::getTsId)
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam())));
if (list == null || list.size() == 0) {
return R.fail(orderCardNo + "车间订单班次查询作业中心异常");
} else {
workCenterId = list.get(0).getWcId();
}
}
} else {
List<WorkPlan> nextWorkPlanList = workPlanService.lambdaQuery()
.select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam)
.eq(WorkPlan::getId, workPlan.getNextWpId())
.list();
if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) {
return R.fail(orderCardNo + "车间下一工序订单异常");
}
if (nextWorkPlanList.get(0).getMakeTeam() == null) {
return R.fail(orderCardNo + "车间订单班次异常");
}
List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>()
.select(CenterTeam::getWcId, CenterTeam::getTsId)
.eq(CenterTeam::getTsId, (workPlan.getMakeTeam())));
if (list == null || list.size() == 0) {
return R.fail(orderCardNo + "车间订单班次查询作业中心异常");
} else {
workCenterId = list.get(0).getWcId();
}
}
return validateWorkCenter(orderCardNo, currentWcId, workCenterId);
}
// List<WorkOrder> workOrderList = workOrderService.lambdaQuery()
// .select(WorkOrder::getId)
// .eq(WorkOrder::getCardNo, orderCardNo)
// .list();
//
// if (workOrderList != null && !workOrderList.isEmpty()) {
// WorkOrder workOrder = workOrderList.get(0);
// List<WorkPlan> workPlanList = workPlanService.lambdaQuery()
// .select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam)
// .eq(WorkPlan::getWoId, workOrder.getId())
// .list();
// if (workPlanList == null || workPlanList.isEmpty()) {
// log.info("workPlanList");
// return R.fail(orderCardNo + "车间订单异常");
// }
//
// WorkPlan workPlan = workPlanList.get(0);
// Long workCenterId;
//
// // 根据工序状态判断使用当前工序还是下一道工序
// if (workPlan.getStatus() < 3) {
//// workCenterId = workPlan.getWorkCenterId();
// if (workPlan.getMakeTeam() == null) {
// return R.fail(orderCardNo + "车间订单班次异常");
// } else {
// List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>()
// .select(CenterTeam::getWcId, CenterTeam::getTsId)
// .eq(CenterTeam::getTsId, (workPlan.getMakeTeam())));
// if (list == null || list.size() == 0) {
// return R.fail(orderCardNo + "车间订单班次查询作业中心异常");
// } else {
// workCenterId = list.get(0).getWcId();
// }
// }
// } else {
//
// List<WorkPlan> nextWorkPlanList = workPlanService.lambdaQuery()
// .select(WorkPlan::getStatus, WorkPlan::getNextWpId, WorkPlan::getWoId, WorkPlan::getMakeTeam)
// .eq(WorkPlan::getId, workPlan.getNextWpId())
// .list();
//
// if (nextWorkPlanList == null || nextWorkPlanList.isEmpty()) {
// return R.fail(orderCardNo + "车间下一工序订单异常");
// }
// if (nextWorkPlanList.get(0).getMakeTeam() == null) {
// return R.fail(orderCardNo + "车间订单班次异常");
// }
// List<CenterTeam> list = iCenterTeamService.list(new LambdaQueryWrapper<CenterTeam>()
// .select(CenterTeam::getWcId, CenterTeam::getTsId)
// .eq(CenterTeam::getTsId, (workPlan.getMakeTeam())));
// if (list == null || list.size() == 0) {
// return R.fail(orderCardNo + "车间订单班次查询作业中心异常");
// } else {
// workCenterId = list.get(0).getWcId();
// }
// }
//
// return validateWorkCenter(orderCardNo, currentWcId, workCenterId);
// }
// ====================== 处理PR工单 ======================
List<PrWorkOrder> prWorkOrderList = prWorkOrderService.lambdaQuery()

@ -58,6 +58,7 @@ import org.springblade.system.cache.DictCache;
import org.springblade.system.cache.UserCache;
import org.springblade.system.pojo.entity.User;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -88,6 +89,13 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private final IWorkPlanService workPlanService;
// 关键:用set方法注入
// @Autowired
// public void setWorkPlanService(IWorkPlanService workPlanService) {
// this.workPlanService = workPlanService;
// }
private final IBsProcessSetService bsProcessSetService;
private final IWorkPlanItemService workPlanItemService;
@ -137,6 +145,11 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private final IReviewSheetService reviewSheetService;
// @Autowired
// public void setReviewSheetService(IReviewSheetService reviewSheetService) {
// this.reviewSheetService = reviewSheetService;
// }
private final IOemCraftAbilityService oemCraftAbilityService;
private final IWorkCenterService workCenterService;

@ -1375,7 +1375,7 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
task.setCheckUserId(AuthUtil.getUserId());
task.setCheckDate(LocalDateTime.now());
// this.computeOrderQty(wp, task, wo, sumCheckQ, sumTestQty, sumLossQty, 0);
this.computeOrderQty(wp, wo, sumCheckQ, sumTestQty, sumLossQty, 0);
// this.qualified(wp, wc, wo);
} else if (countNA == itemList.size()) { // 全部item NA
@ -1404,6 +1404,33 @@ public class InspectionTaskServiceImpl extends BaseServiceImpl<InspectionTaskMap
return task;
}
public void computeOrderQty(WorkPlan wp, WorkOrder wo, int checkQ, int testQty, int lossQty, int scrapQty) {
if (wo != null) {
wo.setMakeQty(wo.getMakeQty() - (testQty + lossQty + scrapQty));
wo.setTestQty(wo.getTestQty() + testQty);
wo.setLossQty(wo.getLossQty() + lossQty);
wo.setScrapQty(wo.getScrapQty() + scrapQty);
log.info("车间订单:{}, 扣除测试数量:{}", wo.getWoCode(), wo.getTestQty());
}
if (wp != null) {
// 查询此工序是否有试验项目,如果有说明是检验工序
// List<PrWorkPlanItem> list = prWorkPlanItemService.listByWpId(wp.getWpId());
QueryWrapper<WorkPlanItem> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("WP_ID", wp.getId());
List<WorkPlanItem> list = wpItemService.list(queryWrapper);
if (list != null && list.size() > 0) {
wp.setWorkQty(wo.getMakeQty());
}
wp.setTestQty(wp.getTestQty() + testQty);
wp.setLossQty(wp.getLossQty() + lossQty);
wp.setScrapQty(wp.getScrapQty() + scrapQty);
}
}
private JSONObject glassCake(Long woId) {
JSONObject obj = new JSONObject();
// 子件订单信息

Loading…
Cancel
Save