|
|
|
@ -28,6 +28,7 @@ import com.chanko.yunxi.mes.module.biz.manager.CrossOrderManager;
|
|
|
|
|
import com.chanko.yunxi.mes.module.biz.service.serialnumber.SerialNumberService;
|
|
|
|
|
import com.chanko.yunxi.mes.module.system.dal.dataobject.user.AdminUserDO;
|
|
|
|
|
import com.chanko.yunxi.mes.module.system.service.user.AdminUserService;
|
|
|
|
|
import com.sun.org.apache.xpath.internal.operations.Bool;
|
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
@ -310,13 +311,24 @@ public class TaskDispatchServiceImpl implements TaskDispatchService {
|
|
|
|
|
|
|
|
|
|
// 不能超额报工
|
|
|
|
|
if(operate == TaskReportOperateEnum.SUBMIT){
|
|
|
|
|
|
|
|
|
|
SystemParametersDO systemParametersDO = systemParametersMapper.selectOne("code", SystemParmetersEnum.OVERTASK_CENTER_LIST.getDescription());
|
|
|
|
|
boolean allowOver = false;
|
|
|
|
|
|
|
|
|
|
if(systemParametersDO != null && !StringUtils.isEmpty(systemParametersDO.getCurrentValue())
|
|
|
|
|
&& Arrays.stream(systemParametersDO.getCurrentValue().split(",")).filter(map -> map.equals(taskDispatchDetailDO.getWorkshopCode())).count()>0){
|
|
|
|
|
allowOver = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<TaskReportDO> historyReportList = taskReportMapper.selectList(new LambdaQueryWrapper<TaskReportDO>() {{
|
|
|
|
|
eq(TaskReportDO::getDispatchDetailId, taskDispatchDetailDO.getId())
|
|
|
|
|
.ne(TaskReportDO::getAmount, 0);
|
|
|
|
|
}});
|
|
|
|
|
int historyReportAmount = historyReportList.stream().mapToInt(TaskReportDO::getAmount).sum();
|
|
|
|
|
if(taskDispatchDetailDO.getAmount() < (historyReportAmount + operateReqVO.getAmount())){
|
|
|
|
|
throw exception(TASK_DISPATCH_TASK_REPORT_AMOUNT_EXCESS);
|
|
|
|
|
if(!allowOver) {
|
|
|
|
|
int historyReportAmount = historyReportList.stream().mapToInt(TaskReportDO::getAmount).sum();
|
|
|
|
|
if (taskDispatchDetailDO.getAmount() < (historyReportAmount + operateReqVO.getAmount())) {
|
|
|
|
|
throw exception(TASK_DISPATCH_TASK_REPORT_AMOUNT_EXCESS);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|