收回调用自动分派修改

liweidong
李涛 3 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
*/
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::getIsDeleted, CommonConstant.DELETE_FALSE).orderByAsc(YieldOrderCraft::getProcessNo);
List<YieldOrderCraft> craftList = baseMapper.selectList(queryWrapper);
craftList.stream().forEach(item ->{
craftList.stream().forEach(item -> {
BsProcessSetEntity processSet = processSetService.getById(item.getPpsId());
if(processSet != null){
if (processSet != null) {
item.setProcessCode(processSet.getCode());
item.setProcessName(processSet.getName());
}
if(item.getIsOutsource()){
if(null != item.getOcId()){
if (item.getIsOutsource()) {
if (null != item.getOcId()) {
Oem oem = oemService.getById(item.getOcId());
if(null != oem){
if (null != oem) {
item.setWorkCenterName(oem.getOcName());
}
}
}else {
if(null != item.getWorkCenterId()){
} else {
if (null != item.getWorkCenterId()) {
WorkCenter workCenter = workCenterService.getById(item.getWorkCenterId());
if(null != workCenter){
if (null != workCenter) {
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 {
// 组装key为工艺能力的作业计划map
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集合
Set<Long> craftKeys = craftAbilityMap.keySet();
//获取到认定的主工艺能力(默认第一个工艺能力为主工艺能力)
@ -299,7 +299,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
throw new ServiceException("自动分派失败,未找到合适的班组或者供应商!");
}
if(workCenter != null){
if (workCenter != null) {
yieldOrder.setWorkCenterId(workCenter.getId());
yieldOrderMapper.updateById(yieldOrder);
}
@ -307,6 +307,35 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
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 wcMap 拥有主工艺能力的作业中心
@ -438,16 +467,16 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
}
}
WorkCenter workCenter = null;
if(orderCraft.getCaId().equals(craftAbilityId)){
if (orderCraft.getCaId().equals(craftAbilityId)) {
workCenter = workCenterMap.get(workCenterId);
}else{
} else {
workCenter = workCenterService.getOne(Wrappers.<WorkCenter>lambdaQuery().apply("INSTR(',' || CRAFT_ABILITY_ID || ',', ',' || {0} || ',') > 0", orderCraft.getCaId()));
}
if(centerId != null){
if (centerId != null) {
orderCraft.setWorkCenterId(centerId);
}else{
if(workCenter == null){
} else {
if (workCenter == null) {
throw new ServiceException("工艺" + orderCraft.getCaId() + "未查询到对应作业中心");
}
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.OemCraftAbilityEntity;
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.pojo.entity.BsProcessSetEntity;
import org.springblade.desk.oem.pojo.request.*;
@ -171,8 +172,9 @@ public class WorkOrderRunServiceImpl extends BaseServiceImpl<WorkOrderRunMapper,
workOrderRun.getCreateTime(), new Date(), oemTakeBack.getDeliverKey(),
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 {
yieldOrderCraftService.automaticDispatch(yieldOrderCrafts, yieldOrder, Boolean.TRUE, null);
} catch (Exception e) {

Loading…
Cancel
Save