package com.aps.core.service.impl.ApsPlate; import java.math.BigDecimal; import java.util.List; import cn.hutool.core.util.IdUtil; import com.aps.common.core.utils.DateUtils; import com.aps.common.security.utils.SecurityUtils; import com.aps.core.domain.ApsPlate.ApsPlatePlan; import com.aps.core.domain.ApsPlate.ApsPlateStandardRequire; import com.aps.core.mapper.ApsPlatePlanMapper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.aps.core.mapper.ApsPlateStandardRequireBomOrderDetailMapper; import com.aps.core.domain.ApsPlate.ApsPlateStandardRequireBomOrderDetail; import com.aps.core.service.ApsPlate.IApsPlateStandardRequireBomOrderDetailService; import org.springframework.transaction.annotation.Transactional; /** * ApsPlateStandardRequireBomOrderDetailService业务层处理 * * @author zhl * @date 2025-05-06 */ @Service public class ApsPlateStandardRequireBomOrderDetailServiceImpl implements IApsPlateStandardRequireBomOrderDetailService { @Autowired private ApsPlateStandardRequireBomOrderDetailMapper apsPlateStandardRequireBomOrderDetailMapper; @Autowired private ApsPlatePlanMapper apsPlatePlanMapper; /** * 查询ApsPlateStandardRequireBomOrderDetail * * @param id ApsPlateStandardRequireBomOrderDetail主键 * @return ApsPlateStandardRequireBomOrderDetail */ @Override public ApsPlateStandardRequireBomOrderDetail selectApsPlateStandardRequireBomOrderDetailById(Long id) { return apsPlateStandardRequireBomOrderDetailMapper.selectApsPlateStandardRequireBomOrderDetailById(id); } /** * 查询ApsPlateStandardRequireBomOrderDetail列表 * * @param apsPlateStandardRequireBomOrderDetail ApsPlateStandardRequireBomOrderDetail * @return ApsPlateStandardRequireBomOrderDetail */ @Override public List selectApsPlateStandardRequireBomOrderDetailList(ApsPlateStandardRequireBomOrderDetail apsPlateStandardRequireBomOrderDetail) { return apsPlateStandardRequireBomOrderDetailMapper.selectApsPlateStandardRequireBomOrderDetailList(apsPlateStandardRequireBomOrderDetail); } /** * 新增ApsPlateStandardRequireBomOrderDetail * * @param apsPlateStandardRequireBomOrderDetail ApsPlateStandardRequireBomOrderDetail * @return 结果 */ @Override public int insertApsPlateStandardRequireBomOrderDetail(ApsPlateStandardRequireBomOrderDetail apsPlateStandardRequireBomOrderDetail) { apsPlateStandardRequireBomOrderDetail.setCreateTime(DateUtils.getNowDate()); return apsPlateStandardRequireBomOrderDetailMapper.insertApsPlateStandardRequireBomOrderDetail(apsPlateStandardRequireBomOrderDetail); } /** * 修改ApsPlateStandardRequireBomOrderDetail * * @param apsPlateStandardRequireBomOrderDetail ApsPlateStandardRequireBomOrderDetail * @return 结果 */ @Override public int updateApsPlateStandardRequireBomOrderDetail(ApsPlateStandardRequireBomOrderDetail apsPlateStandardRequireBomOrderDetail) { apsPlateStandardRequireBomOrderDetail.setUpdateTime(DateUtils.getNowDate()); return apsPlateStandardRequireBomOrderDetailMapper.updateApsPlateStandardRequireBomOrderDetail(apsPlateStandardRequireBomOrderDetail); } /** * 批量删除ApsPlateStandardRequireBomOrderDetail * * @param ids 需要删除的ApsPlateStandardRequireBomOrderDetail主键 * @return 结果 */ @Override public int deleteApsPlateStandardRequireBomOrderDetailByIds(Long[] ids) { return apsPlateStandardRequireBomOrderDetailMapper.deleteApsPlateStandardRequireBomOrderDetailByIds(ids); } /** * 删除ApsPlateStandardRequireBomOrderDetail信息 * * @param id ApsPlateStandardRequireBomOrderDetail主键 * @return 结果 */ @Override public int deleteApsPlateStandardRequireBomOrderDetailById(Long id) { return apsPlateStandardRequireBomOrderDetailMapper.deleteApsPlateStandardRequireBomOrderDetailById(id); } @Transactional @Override public void savePlastPlanAndBomOrderDetail(ApsPlateStandardRequire require, ApsPlatePlan platePlan, BigDecimal subtract , BigDecimal stock, BigDecimal netRequirement, List orderDetailsList) { platePlan.setUnmatchedQuantity(subtract); // apsPlatePlanMapper.updatePlanUnMatchQtyByVersion(platePlan); /* 记录工单与净需求的匹配关系*/ ApsPlateStandardRequireBomOrderDetail bomOrderDetail = ApsPlateStandardRequireBomOrderDetail.builder() .id(IdUtil.getSnowflakeNextId()) .requireId(require.getId()) .requireTrackId(require.getRequireTrackId()) .bomLineId(require.getBomLineId()) .bomLineCode(require.getBomLineCode()) .docNo(platePlan.getDocumentNumber()) .beforeProdAmount(stock) .deductionAmount(netRequirement) .afterProdAmount(subtract) .batchNumber(require.getBatchNumber()) .orgCode(require.getOrgCode()) .delFlag("0") .build(); bomOrderDetail.setCreateTime(DateUtils.getNowDate()); bomOrderDetail.setCreateBy(SecurityUtils.getUsername()); orderDetailsList.add(bomOrderDetail); //apsPlateStandardRequireBomOrderDetailMapper.insertApsPlateStandardRequireBomOrderDetail(bomOrderDetail); } @Override public List selectRequireUpAndDownLevel(Long requireId){ return apsPlateStandardRequireBomOrderDetailMapper.selectRequireUpAndDownLevel(requireId); } }