收回调用自动分派修改

liweidong
李涛 2 days ago
parent 5b0f2def91
commit 92d4cc0737
  1. 2
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderCraftService.java
  2. 59
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java
  3. 6
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderRunServiceImpl.java

@ -50,4 +50,6 @@ public interface IYieldOrderCraftService extends BaseService<YieldOrderCraft> {
* @throws BusinessException * @throws BusinessException
*/ */
void automaticDispatch(List<YieldOrderCraft> yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws Exception; void automaticDispatch(List<YieldOrderCraft> yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws Exception;
List<YieldOrderCraft> listByYoIdAndNo(Long id, String orders);
} }

@ -76,23 +76,23 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
.eq(YieldOrderCraft::getYoId, yoId) .eq(YieldOrderCraft::getYoId, yoId)
.eq(YieldOrderCraft::getIsDeleted, CommonConstant.DELETE_FALSE).orderByAsc(YieldOrderCraft::getProcessNo); .eq(YieldOrderCraft::getIsDeleted, CommonConstant.DELETE_FALSE).orderByAsc(YieldOrderCraft::getProcessNo);
List<YieldOrderCraft> craftList = baseMapper.selectList(queryWrapper); List<YieldOrderCraft> craftList = baseMapper.selectList(queryWrapper);
craftList.stream().forEach(item ->{ craftList.stream().forEach(item -> {
BsProcessSetEntity processSet = processSetService.getById(item.getPpsId()); BsProcessSetEntity processSet = processSetService.getById(item.getPpsId());
if(processSet != null){ if (processSet != null) {
item.setProcessCode(processSet.getCode()); item.setProcessCode(processSet.getCode());
item.setProcessName(processSet.getName()); item.setProcessName(processSet.getName());
} }
if(item.getIsOutsource()){ if (item.getIsOutsource()) {
if(null != item.getOcId()){ if (null != item.getOcId()) {
Oem oem = oemService.getById(item.getOcId()); Oem oem = oemService.getById(item.getOcId());
if(null != oem){ if (null != oem) {
item.setWorkCenterName(oem.getOcName()); item.setWorkCenterName(oem.getOcName());
} }
} }
}else { } else {
if(null != item.getWorkCenterId()){ if (null != item.getWorkCenterId()) {
WorkCenter workCenter = workCenterService.getById(item.getWorkCenterId()); WorkCenter workCenter = workCenterService.getById(item.getWorkCenterId());
if(null != workCenter){ if (null != workCenter) {
item.setWorkCenterName(workCenter.getWcName()); item.setWorkCenterName(workCenter.getWcName());
} }
} }
@ -111,7 +111,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
public void automaticDispatch(List<YieldOrderCraft> yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws Exception { public void automaticDispatch(List<YieldOrderCraft> yieldOrderCraftList, YieldOrder yieldOrder, Boolean factor, Boolean rxlSpace) throws Exception {
// 组装key为工艺能力的作业计划map // 组装key为工艺能力的作业计划map
Map<Long, List<YieldOrderCraft>> craftAbilityMap = yieldOrderCraftList.stream() Map<Long, List<YieldOrderCraft>> craftAbilityMap = yieldOrderCraftList.stream()
.collect(Collectors.groupingBy(YieldOrderCraft::getCaId,LinkedHashMap::new,Collectors.toList())); .collect(Collectors.groupingBy(YieldOrderCraft::getCaId, LinkedHashMap::new, Collectors.toList()));
//作业计划map工艺能力key集合 //作业计划map工艺能力key集合
Set<Long> craftKeys = craftAbilityMap.keySet(); Set<Long> craftKeys = craftAbilityMap.keySet();
//获取到认定的主工艺能力(默认第一个工艺能力为主工艺能力) //获取到认定的主工艺能力(默认第一个工艺能力为主工艺能力)
@ -299,7 +299,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
throw new ServiceException("自动分派失败,未找到合适的班组或者供应商!"); throw new ServiceException("自动分派失败,未找到合适的班组或者供应商!");
} }
if(workCenter != null){ if (workCenter != null) {
yieldOrder.setWorkCenterId(workCenter.getId()); yieldOrder.setWorkCenterId(workCenter.getId());
yieldOrderMapper.updateById(yieldOrder); yieldOrderMapper.updateById(yieldOrder);
} }
@ -307,6 +307,35 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
this.saveOrUpdateBatch(dispatchCraftList); this.saveOrUpdateBatch(dispatchCraftList);
} }
@Override
public List<YieldOrderCraft> listByYoIdAndNo(Long id, String orders) {
List<YieldOrderCraft> craftList = this.list(Wrappers.lambdaQuery(YieldOrderCraft.class).eq(YieldOrderCraft::getYoId, id)
.gt(YieldOrderCraft::getProcessNo, orders).orderByAsc(YieldOrderCraft::getProcessNo));
craftList.forEach(item -> {
BsProcessSetEntity processSet = processSetService.getById(item.getPpsId());
if (processSet != null) {
item.setProcessCode(processSet.getCode());
item.setProcessName(processSet.getName());
}
if (item.getIsOutsource()) {
if (null != item.getOcId()) {
Oem oem = oemService.getById(item.getOcId());
if (null != oem) {
item.setWorkCenterName(oem.getOcName());
}
}
} else {
if (null != item.getWorkCenterId()) {
WorkCenter workCenter = workCenterService.getById(item.getWorkCenterId());
if (null != workCenter) {
item.setWorkCenterName(workCenter.getWcName());
}
}
}
});
return craftList;
}
/** /**
* @param hostCaId 主工艺能力 * @param hostCaId 主工艺能力
* @param wcMap 拥有主工艺能力的作业中心 * @param wcMap 拥有主工艺能力的作业中心
@ -438,16 +467,16 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
} }
} }
WorkCenter workCenter = null; WorkCenter workCenter = null;
if(orderCraft.getCaId().equals(craftAbilityId)){ if (orderCraft.getCaId().equals(craftAbilityId)) {
workCenter = workCenterMap.get(workCenterId); workCenter = workCenterMap.get(workCenterId);
}else{ } else {
workCenter = workCenterService.getOne(Wrappers.<WorkCenter>lambdaQuery().apply("INSTR(',' || CRAFT_ABILITY_ID || ',', ',' || {0} || ',') > 0", orderCraft.getCaId())); workCenter = workCenterService.getOne(Wrappers.<WorkCenter>lambdaQuery().apply("INSTR(',' || CRAFT_ABILITY_ID || ',', ',' || {0} || ',') > 0", orderCraft.getCaId()));
} }
if(centerId != null){ if (centerId != null) {
orderCraft.setWorkCenterId(centerId); orderCraft.setWorkCenterId(centerId);
}else{ } else {
if(workCenter == null){ if (workCenter == null) {
throw new ServiceException("工艺" + orderCraft.getCaId() + "未查询到对应作业中心"); throw new ServiceException("工艺" + orderCraft.getCaId() + "未查询到对应作业中心");
} }
orderCraft.setWorkCenterId(workCenter.getId()); orderCraft.setWorkCenterId(workCenter.getId());

@ -25,6 +25,7 @@ import org.springblade.desk.basic.mapper.TeamSetMapper;
import org.springblade.desk.basic.pojo.entity.Oem; import org.springblade.desk.basic.pojo.entity.Oem;
import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity; import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity;
import org.springblade.desk.basic.pojo.entity.TeamSet; import org.springblade.desk.basic.pojo.entity.TeamSet;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.dashboard.mapper.BsProcessSetMapper; import org.springblade.desk.dashboard.mapper.BsProcessSetMapper;
import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity; import org.springblade.desk.dashboard.pojo.entity.BsProcessSetEntity;
import org.springblade.desk.oem.pojo.request.*; import org.springblade.desk.oem.pojo.request.*;
@ -171,8 +172,9 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
workOrderRun.getCreateTime(), new Date(), oemTakeBack.getDeliverKey(), workOrderRun.getCreateTime(), new Date(), oemTakeBack.getDeliverKey(),
scrapQty, testQty); scrapQty, testQty);
// 调用转厂内自动分派逻辑 // 调用转厂内自动分派逻辑,只查询外协工序之后的工序
List<YieldOrderCraft> yieldOrderCrafts = yieldOrderCraftService.listByYoId(yieldOrder.getId()); List<YieldOrderCraft> yieldOrderCrafts = yieldOrderCraftService.listByYoIdAndNo(yieldOrder.getId(), deliverablePlan.getOrders());
// List<YieldOrderCraft> yieldOrderCrafts = yieldOrderCraftService.listByYoId(yieldOrder.getId(), deliverablePlan.getOrders());
try { try {
yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yieldOrder, Boolean.TRUE, null); yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yieldOrder, Boolean.TRUE, null);
} catch (Exception e) { } catch (Exception e) {

Loading…
Cancel
Save