package com.jeesite.modules.mes.service; import java.util.List; import com.jeesite.modules.mes.erp.MesErpLineMaterialMapping; import com.jeesite.modules.mes.dao.MesDeviceDao; import com.jeesite.modules.mes.entity.MesDevice; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.jeesite.common.entity.Page; import com.jeesite.common.service.CrudService; import com.jeesite.modules.mes.entity.MesBatchSn; import com.jeesite.modules.mes.dao.MesBatchSnDao; import java.util.ArrayList; import java.util.Date; /** * 批次码记录表Service * @author mes * @version 2024-04-12 */ @Service public class MesBatchSnService extends CrudService { @Autowired private MesBatchSnDao mesBatchSnDao; public MesBatchSn findInfo(MesBatchSn mesBatchSn){ return mesBatchSnDao.findInfo(mesBatchSn); } /** * 按物料编码查询待 ERP 入库的 MES 批次码(nums>0 且未入库)。 */ public List findPendingInstockByMaterial(String materialNumber) { List lineSnList = MesErpLineMaterialMapping.resolveLineSnList(materialNumber); if (lineSnList.isEmpty()) { return new ArrayList<>(); } return mesBatchSnDao.findPendingInstockList(lineSnList); } /** * 按 ERP 生产入库单号查询绑定的 MES 批次码。 */ public List findByErpInstockBillNo(String erpInstockBillNo) { if (erpInstockBillNo == null || erpInstockBillNo.trim().isEmpty()) { return new ArrayList<>(); } MesBatchSn query = new MesBatchSn(); query.setErpInstockBillNo(erpInstockBillNo.trim()); return findList(query); } /** * 按主键批量加载批次码。 */ public List findByIds(List ids) { List list = new ArrayList<>(); if (ids == null) { return list; } for (String id : ids) { if (id == null || id.trim().isEmpty()) { continue; } MesBatchSn item = super.get(id.trim()); if (item != null) { list.add(item); } } return list; } /** * ERP 入库成功后回写批次码状态。 */ @Transactional public void markInstocked(List batches, String moBillNo, String moEntryId, String erpBillNo, String erpLotNumber, Date instockDate) { if (batches == null) { return; } for (MesBatchSn batch : batches) { if (batch == null) { continue; } batch.setInstockStatus("1"); batch.setMoBillNo(moBillNo); batch.setMoEntryId(moEntryId); batch.setErpInstockBillNo(erpBillNo); batch.setErpLotNumber(erpLotNumber); batch.setErpInstockDate(instockDate); super.save(batch); } } /** * 获取单条数据 * @param mesBatchSn * @return */ @Override public MesBatchSn get(MesBatchSn mesBatchSn) { return super.get(mesBatchSn); } /** * 查询分页数据 * @param mesBatchSn 查询条件 * @param mesBatchSn.page 分页对象 * @return */ @Override public Page findPage(MesBatchSn mesBatchSn) { return super.findPage(mesBatchSn); } /** * 查询列表数据 * @param mesBatchSn * @return */ @Override public List findList(MesBatchSn mesBatchSn) { return super.findList(mesBatchSn); } /** * 保存数据(插入或更新) * @param mesBatchSn */ @Override @Transactional public void save(MesBatchSn mesBatchSn) { super.save(mesBatchSn); } /** * 更新状态 * @param mesBatchSn */ @Override @Transactional public void updateStatus(MesBatchSn mesBatchSn) { super.updateStatus(mesBatchSn); } /** * 删除数据 * @param mesBatchSn */ @Override @Transactional public void delete(MesBatchSn mesBatchSn) { super.delete(mesBatchSn); } }