package com.qianwen.smartman.modules.coproduction.service.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import java.lang.invoke.SerializedLambda;
|
import java.util.ArrayList;
|
import java.util.List;
|
import java.util.Map;
|
import java.util.Set;
|
import com.qianwen.smartman.common.cache.RegionCache;
|
import com.qianwen.core.mp.base.BaseServiceImpl;
|
import com.qianwen.core.tool.utils.Func;
|
import com.qianwen.smartman.modules.coproduction.dto.OrderProcessReportWorkDTO;
|
import com.qianwen.smartman.modules.coproduction.dto.ResultByStartDTO;
|
import com.qianwen.smartman.modules.coproduction.entity.OrderProcess;
|
import com.qianwen.smartman.modules.coproduction.entity.OrderReportRecord;
|
import com.qianwen.smartman.modules.coproduction.entity.OrderWorkstation;
|
import com.qianwen.smartman.modules.coproduction.enums.CoProductionEnum;
|
import com.qianwen.smartman.modules.coproduction.enums.WorkstationStatusEnum;
|
import com.qianwen.smartman.modules.coproduction.mapper.OrderWorkstationMapper;
|
import com.qianwen.smartman.modules.coproduction.service.IOrderWorkstationService;
|
import com.qianwen.smartman.modules.coproduction.vo.OrderProcessStartWorkstationVO;
|
import com.qianwen.smartman.modules.cps.vo.WorkstationSingleVO;
|
import org.springframework.stereotype.Service;
|
import org.springframework.transaction.annotation.Transactional;
|
|
@Service
|
public class OrderWorkstationServiceImpl extends BaseServiceImpl<OrderWorkstationMapper, OrderWorkstation> implements IOrderWorkstationService {
|
|
|
@Override // org.springblade.modules.coproduction.service.IOrderWorkstationService
|
public List<OrderWorkstation> getWorkstationInProcess(Set<Long> workstationIdList) {
|
return this.baseMapper.getWorkstationInProcess(workstationIdList);
|
}
|
|
@Override // org.springblade.modules.coproduction.service.IOrderWorkstationService
|
public void updateOrderWorkstationForStart(Map<Long, OrderReportRecord> orderReportRecordMap, ResultByStartDTO resultByStartDTO, Map<Long, OrderProcessStartWorkstationVO> workstationVoMap) {
|
resultByStartDTO.getCanStartWorkstationIdList().forEach(i -> update(
|
Wrappers
|
.<OrderWorkstation>lambdaUpdate().eq(OrderWorkstation::getWorkstationId, i).eq(OrderWorkstation::getProcessId,
|
resultByStartDTO.getWorkstationAndOrderProcessIdMap().get(i))
|
.set(OrderWorkstation::getProducerId,
|
workstationVoMap.get(i).getProducerId())
|
.set(OrderWorkstation::getProducerCode,
|
workstationVoMap.get(i).getProducerCode())
|
.set(OrderWorkstation::getProducerName,
|
workstationVoMap.get(i).getProducerName())
|
.set(OrderWorkstation::getWorkstationStatus, WorkstationStatusEnum.started.getCode())
|
.set(OrderWorkstation::getCurrentRecordId,
|
orderReportRecordMap.get(i).getId())));
|
/*
|
resultByStartDTO.getCanStartWorkstationIdList().forEach(i -> {
|
update((Wrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().eq((v0) -> {
|
return v0.getWorkstationId();
|
}, i)).eq((v0) -> {
|
return v0.getProcessId();
|
}, resultByStartDTO.getWorkstationAndOrderProcessIdMap().get(i))).set((v0) -> {
|
return v0.getProducerId();
|
}, ((OrderProcessStartWorkstationVO) workstationVoMap.get(i)).getProducerId())).set((v0) -> {
|
return v0.getProducerCode();
|
}, ((OrderProcessStartWorkstationVO) workstationVoMap.get(i)).getProducerCode())).set((v0) -> {
|
return v0.getProducerName();
|
}, ((OrderProcessStartWorkstationVO) workstationVoMap.get(i)).getProducerName())).set((v0) -> {
|
return v0.getWorkstationStatus();
|
}, WorkstationStatusEnum.started.getCode())).set((v0) -> {
|
return v0.getCurrentRecordId();
|
}, ((OrderReportRecord) orderReportRecordMap.get(i)).getId()));
|
|
});
|
*/
|
}
|
|
@Override // org.springblade.modules.coproduction.service.IOrderWorkstationService
|
public void generateOrderWorkstation(List<OrderProcess> orderProcessList) {
|
List<OrderWorkstation> orderWorkstationList = new ArrayList<>();
|
orderProcessList.forEach(orderProcess -> {
|
String workstationIds = orderProcess.getWorkstationId();
|
if (Func.isEmpty(workstationIds)) {
|
OrderWorkstation orderWorkstation = new OrderWorkstation();
|
orderWorkstation.setPlanId(orderProcess.getPlanId());
|
orderWorkstation.setOrderId(orderProcess.getOrderId());
|
orderWorkstation.setProcessId(orderProcess.getId());
|
orderWorkstationList.add(orderWorkstation);
|
return;
|
}
|
String[] workstationIdSplit = workstationIds.split(",");
|
String[] workstationNameSplit = orderProcess.getWorkstationName().split(",");
|
for (int i = 0; i < workstationIdSplit.length; i++) {
|
OrderWorkstation orderWorkstation2 = new OrderWorkstation();
|
orderWorkstation2.setPlanId(orderProcess.getPlanId());
|
orderWorkstation2.setOrderId(orderProcess.getOrderId());
|
orderWorkstation2.setProcessId(orderProcess.getId());
|
Long workstationId = Long.valueOf(workstationIdSplit[i]);
|
String workstationName = workstationNameSplit[i];
|
orderWorkstation2.setWorkstationId(workstationId);
|
orderWorkstation2.setWorkstationName(workstationName);
|
orderWorkstation2.setWorkstationStatus(WorkstationStatusEnum.UNDRESSED.getCode());
|
orderWorkstationList.add(orderWorkstation2);
|
}
|
});
|
saveBatch(orderWorkstationList);
|
}
|
|
@Override // org.springblade.modules.coproduction.service.IOrderWorkstationService
|
public void updateOrderWorkstationForStartMain(Long orderProcessId, Long recordId) {
|
update(Wrappers.<OrderWorkstation>lambdaUpdate()
|
.eq(OrderWorkstation::getProcessId, orderProcessId)
|
.set(OrderWorkstation::getWorkstationStatus, WorkstationStatusEnum.started.getCode())
|
.set(OrderWorkstation::getCurrentRecordId, recordId));
|
/*
|
* update((Wrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper)
|
* Wrappers.lambdaUpdate().eq((v0) -> { return v0.getProcessId(); },
|
* orderProcessId)).set((v0) -> { return v0.getWorkstationStatus(); },
|
* WorkstationStatusEnum.started.getCode())).set((v0) -> { return
|
* v0.getCurrentRecordId(); }, recordId));
|
*/
|
}
|
|
@Override // org.springblade.modules.coproduction.service.IOrderWorkstationService
|
public Boolean checkProcessHaveAssign(Long orderProcessId) {
|
Integer count = ((OrderWorkstationMapper) this.baseMapper).checkProcessHaveAssign(orderProcessId);
|
if (count.intValue() > Integer.valueOf("0").intValue()) {
|
return Boolean.TRUE;
|
}
|
return Boolean.FALSE;
|
}
|
|
@Override // org.springblade.modules.coproduction.service.IOrderWorkstationService
|
@Transactional(rollbackFor = {Exception.class})
|
public void reportWorkstation(OrderProcessReportWorkDTO workDTO, OrderWorkstation orderWorkstation) {
|
Integer qualifyNum = workDTO.getQualifyNum();
|
Integer scrappedNum = workDTO.getScrappedNum();
|
Integer oldQualifyNum = Integer.valueOf(orderWorkstation.getQualifyNum() == null ? 0 : orderWorkstation.getQualifyNum().intValue());
|
Integer oldScrappedNum = Integer.valueOf(orderWorkstation.getScrappedNum() == null ? 0 : orderWorkstation.getScrappedNum().intValue());
|
Integer newQualifyNum = Integer.valueOf(qualifyNum.intValue() + oldQualifyNum.intValue());
|
Integer newScrappedNum = Integer.valueOf(scrappedNum.intValue() + oldScrappedNum.intValue());
|
|
update(Wrappers.<OrderWorkstation>lambdaUpdate()
|
.eq(OrderWorkstation::getId, orderWorkstation.getId())
|
.set(OrderWorkstation::getQualifyNum, newQualifyNum)
|
.set(OrderWorkstation::getScrappedNum, newScrappedNum)
|
.set(OrderWorkstation::getWorkstationStatus, CoProductionEnum.WorkstationStatus.NO.getCode()));
|
|
/*
|
update((Wrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) ((LambdaUpdateWrapper) Wrappers.lambdaUpdate().eq((v0) -> {
|
return v0.getId();
|
}, orderWorkstation.getId())).set((v0) -> {
|
return v0.getQualifyNum();
|
}, newQualifyNum)).set((v0) -> {
|
return v0.getScrappedNum();
|
}, newScrappedNum)).set((v0) -> {
|
return v0.getWorkstationStatus();
|
}, CoProductionEnum.WorkstationStatus.NO.getCode()));
|
*/
|
}
|
|
@Override // org.springblade.modules.coproduction.service.IOrderWorkstationService
|
public List<WorkstationSingleVO> getWorkstationCanStart(Long orderProcessId) {
|
List<WorkstationSingleVO> result = ((OrderWorkstationMapper) this.baseMapper).getWorkstationCanStart(orderProcessId);
|
if (Func.isEmpty(result)) {
|
return new ArrayList();
|
}
|
return result;
|
}
|
|
@Override // org.springblade.modules.coproduction.service.IOrderWorkstationService
|
public OrderWorkstation buildWorkstation(OrderProcessReportWorkDTO reportWorkDTO, OrderWorkstation orderWorkstation) {
|
orderWorkstation.setQualifyNum(Integer.valueOf(reportWorkDTO.getQualifyNum().intValue() + orderWorkstation.getQualifyNum().intValue())).setScrappedNum(Integer.valueOf(reportWorkDTO.getScrappedNum().intValue() + orderWorkstation.getScrappedNum().intValue())).setWorkstationStatus(CoProductionEnum.WorkstationStatus.NO.getCode()).setCurrentRecordId(null);
|
return orderWorkstation;
|
}
|
|
@Override // org.springblade.modules.coproduction.service.IOrderWorkstationService
|
public List<OrderWorkstation> getWorkstationByProcessList(List<Long> orderProcessIdList) {
|
return list(Wrappers.<OrderWorkstation>lambdaQuery()
|
.in(OrderWorkstation::getProcessId, orderProcessIdList));
|
/*
|
return list((Wrapper) Wrappers.lambdaQuery().in((v0) -> {
|
return v0.getProcessId();
|
}, orderProcessIdList));*/
|
}
|
}
|