MesBatchSnService.java 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package com.jeesite.modules.mes.service;
  2. import java.util.List;
  3. import com.jeesite.modules.mes.erp.MesErpLineMaterialMapping;
  4. import com.jeesite.modules.mes.dao.MesDeviceDao;
  5. import com.jeesite.modules.mes.entity.MesDevice;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.stereotype.Service;
  8. import org.springframework.transaction.annotation.Transactional;
  9. import com.jeesite.common.entity.Page;
  10. import com.jeesite.common.service.CrudService;
  11. import com.jeesite.modules.mes.entity.MesBatchSn;
  12. import com.jeesite.modules.mes.dao.MesBatchSnDao;
  13. import java.util.ArrayList;
  14. import java.util.Date;
  15. /**
  16. * 批次码记录表Service
  17. * @author mes
  18. * @version 2024-04-12
  19. */
  20. @Service
  21. public class MesBatchSnService extends CrudService<MesBatchSnDao, MesBatchSn> {
  22. @Autowired
  23. private MesBatchSnDao mesBatchSnDao;
  24. public MesBatchSn findInfo(MesBatchSn mesBatchSn){
  25. return mesBatchSnDao.findInfo(mesBatchSn);
  26. }
  27. /**
  28. * 按物料编码查询待 ERP 入库的 MES 批次码(nums&gt;0 且未入库)。
  29. */
  30. public List<MesBatchSn> findPendingInstockByMaterial(String materialNumber) {
  31. List<String> lineSnList = MesErpLineMaterialMapping.resolveLineSnList(materialNumber);
  32. if (lineSnList.isEmpty()) {
  33. return new ArrayList<>();
  34. }
  35. return mesBatchSnDao.findPendingInstockList(lineSnList);
  36. }
  37. /**
  38. * 按 ERP 生产入库单号查询绑定的 MES 批次码。
  39. */
  40. public List<MesBatchSn> findByErpInstockBillNo(String erpInstockBillNo) {
  41. if (erpInstockBillNo == null || erpInstockBillNo.trim().isEmpty()) {
  42. return new ArrayList<>();
  43. }
  44. MesBatchSn query = new MesBatchSn();
  45. query.setErpInstockBillNo(erpInstockBillNo.trim());
  46. return findList(query);
  47. }
  48. /**
  49. * 按主键批量加载批次码。
  50. */
  51. public List<MesBatchSn> findByIds(List<String> ids) {
  52. List<MesBatchSn> list = new ArrayList<>();
  53. if (ids == null) {
  54. return list;
  55. }
  56. for (String id : ids) {
  57. if (id == null || id.trim().isEmpty()) {
  58. continue;
  59. }
  60. MesBatchSn item = super.get(id.trim());
  61. if (item != null) {
  62. list.add(item);
  63. }
  64. }
  65. return list;
  66. }
  67. /**
  68. * ERP 入库成功后回写批次码状态。
  69. */
  70. @Transactional
  71. public void markInstocked(List<MesBatchSn> batches, String moBillNo, String moEntryId,
  72. String erpBillNo, String erpLotNumber, Date instockDate) {
  73. if (batches == null) {
  74. return;
  75. }
  76. for (MesBatchSn batch : batches) {
  77. if (batch == null) {
  78. continue;
  79. }
  80. batch.setInstockStatus("1");
  81. batch.setMoBillNo(moBillNo);
  82. batch.setMoEntryId(moEntryId);
  83. batch.setErpInstockBillNo(erpBillNo);
  84. batch.setErpLotNumber(erpLotNumber);
  85. batch.setErpInstockDate(instockDate);
  86. super.save(batch);
  87. }
  88. }
  89. /**
  90. * 获取单条数据
  91. * @param mesBatchSn
  92. * @return
  93. */
  94. @Override
  95. public MesBatchSn get(MesBatchSn mesBatchSn) {
  96. return super.get(mesBatchSn);
  97. }
  98. /**
  99. * 查询分页数据
  100. * @param mesBatchSn 查询条件
  101. * @param mesBatchSn.page 分页对象
  102. * @return
  103. */
  104. @Override
  105. public Page<MesBatchSn> findPage(MesBatchSn mesBatchSn) {
  106. return super.findPage(mesBatchSn);
  107. }
  108. /**
  109. * 查询列表数据
  110. * @param mesBatchSn
  111. * @return
  112. */
  113. @Override
  114. public List<MesBatchSn> findList(MesBatchSn mesBatchSn) {
  115. return super.findList(mesBatchSn);
  116. }
  117. /**
  118. * 保存数据(插入或更新)
  119. * @param mesBatchSn
  120. */
  121. @Override
  122. @Transactional
  123. public void save(MesBatchSn mesBatchSn) {
  124. super.save(mesBatchSn);
  125. }
  126. /**
  127. * 更新状态
  128. * @param mesBatchSn
  129. */
  130. @Override
  131. @Transactional
  132. public void updateStatus(MesBatchSn mesBatchSn) {
  133. super.updateStatus(mesBatchSn);
  134. }
  135. /**
  136. * 删除数据
  137. * @param mesBatchSn
  138. */
  139. @Override
  140. @Transactional
  141. public void delete(MesBatchSn mesBatchSn) {
  142. super.delete(mesBatchSn);
  143. }
  144. }