package cn.iocoder.yudao.module.mes.service.pro.worktime;
|
|
import cn.iocoder.yudao.module.mes.controller.admin.pro.feedback.vo.MesProFeedbackSaveReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.pro.worktime.vo.MesProWorktimeCalcReqVO;
|
import cn.iocoder.yudao.module.mes.controller.admin.pro.worktime.vo.MesProWorktimeCalcRespVO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackAuxDO;
|
import cn.iocoder.yudao.module.mes.dal.dataobject.pro.feedback.MesProFeedbackDO;
|
import jakarta.validation.Valid;
|
|
import java.math.BigDecimal;
|
import java.util.List;
|
|
/**
|
* MES 标准工时计算 Service 接口
|
*
|
* <p>标准工时只用于工时考核对比,不参与工资计算;工资始终按实际报工工时/数量计算。
|
*
|
* @author 超级管理员
|
*/
|
public interface MesProWorktimeService {
|
|
/**
|
* 按生产任务 + 生产长度 + 辅助项次数试算标准工时
|
*/
|
MesProWorktimeCalcRespVO calculate(@Valid MesProWorktimeCalcReqVO reqVO);
|
|
/**
|
* 计算报工单的标准工时快照,并生成辅助工时明细(未入库)
|
*
|
* <p>计算条件缺失时不阻断报工,标准工时记 0 并在 stdCalcNote 写明原因。
|
*
|
* @return 待随报工一起保存的辅助工时明细(已填好 minutes)
|
*/
|
List<MesProFeedbackAuxDO> calculateForFeedback(MesProFeedbackDO feedback,
|
List<MesProFeedbackSaveReqVO.AuxValue> auxValues);
|
|
/**
|
* 生成工时超出阈值的提示文案
|
*
|
* @return 未超阈值或无法比较时返回 null
|
*/
|
String buildWarnMessage(BigDecimal actualHours, BigDecimal standardHours);
|
|
}
|