【app报工】根据系统参数设置,报工时是否允许超量报工验证

dev
siontion 5 months ago
parent 20c85eb2a2
commit da0208e426

@ -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,16 +311,27 @@ 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);
}});
if(!allowOver) {
int historyReportAmount = historyReportList.stream().mapToInt(TaskReportDO::getAmount).sum();
if (taskDispatchDetailDO.getAmount() < (historyReportAmount + operateReqVO.getAmount())) {
throw exception(TASK_DISPATCH_TASK_REPORT_AMOUNT_EXCESS);
}
}
}
}
// 执行
switch (operate){

Loading…
Cancel
Save