IInvLotLocIdService.java 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250
  1. package com.ruoyi.ams.inv.service;
  2. import java.math.BigDecimal;
  3. import java.util.List;
  4. import com.ruoyi.ams.config.domain.dto.LotattDTO;
  5. import com.ruoyi.ams.inv.domain.InvLotAtt;
  6. import com.ruoyi.ams.inv.domain.InvLotLocId;
  7. import com.ruoyi.ams.inv.domain.form.InvLocIdSearchFrom;
  8. import com.ruoyi.ams.inv.domain.form.InvLotLocIdAdjForm;
  9. import com.ruoyi.ams.inv.domain.form.InvLotLocIdForm;
  10. import com.ruoyi.ams.inv.domain.form.InvLotLocIdMoveForm;
  11. import com.ruoyi.ams.inv.domain.vo.InvLotLocIdLotattVO;
  12. import com.ruoyi.base.domain.BaseLocationInfo;
  13. import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
  14. import com.ruoyi.common.core.domain.AjaxResult;
  15. import org.apache.ibatis.annotations.Param;
  16. /**
  17. * 库位库存信息Service接口
  18. *
  19. * @author andy
  20. * @date 2022-03-03
  21. */
  22. public interface IInvLotLocIdService {
  23. /**
  24. * 查询库位库存信息
  25. *
  26. * @param lotnum 库位库存信息主键
  27. * @return 库位库存信息
  28. */
  29. List<InvLotLocId> selectInvLotLocIdByLotnum(String lotnum);
  30. /**
  31. * 根据主键查询
  32. *
  33. * @param locationId
  34. * @param customerId
  35. * @param sku
  36. * @param lotnum
  37. * @return
  38. */
  39. InvLotLocId selectInvLotLocIdById(String locationId, String customerId, String sku, String lotnum);
  40. /**
  41. * 查询库位库存信息列表
  42. *
  43. * @param locationId
  44. * @return
  45. */
  46. List<InvLotLocId> selectInvLotLocIdList(Long locationId);
  47. /**
  48. * 查询库位库存信息列表
  49. *
  50. * @param invLotLocId 库位库存信息
  51. * @return 库位库存信息集合
  52. */
  53. List<InvLotLocId> selectInvLotLocIdList(InvLotLocId invLotLocId);
  54. /**
  55. * 查询物料批次信息列表
  56. *
  57. * @param invLocIdSearchFrom
  58. * @return
  59. */
  60. List<InvLotLocIdLotattVO> selectInvLocIdLotattList(InvLocIdSearchFrom invLocIdSearchFrom);
  61. /**
  62. * 查询库位库存信息
  63. *
  64. * @param invLotLocId 库位库存信息
  65. * @return 库位库存信息集合
  66. */
  67. InvLotLocId selectInvLotLocIdByModel(InvLotLocId invLotLocId);
  68. /**
  69. * 库存调整
  70. *
  71. * @return
  72. */
  73. AjaxResult adj(InvLotLocIdAdjForm invLotLocIdAdjForm);
  74. /**
  75. * 库存移动
  76. *
  77. * @return
  78. */
  79. AjaxResult move(InvLotLocIdMoveForm invLotLocIdMoveForm);
  80. /**
  81. * 库存移动(直接转移库存)
  82. *
  83. * @param invLotLocIdMoveForm
  84. * @return
  85. */
  86. AjaxResult moveDirect(InvLotLocIdMoveForm invLotLocIdMoveForm);
  87. /**
  88. * 库存移动(根据托盘
  89. *
  90. * @param palletNo
  91. * @param locationTo
  92. * @param isCallCar
  93. * @param reason
  94. * @param warehouseId
  95. * @param updateBy
  96. * @return
  97. */
  98. AjaxResult movePallet(String palletNo, String locationTo, String isCallCar, String reason
  99. , Long warehouseId, String updateBy);
  100. /**
  101. * 库存清理
  102. *
  103. * @return
  104. */
  105. AjaxResult clear(String locationId, Long warehouseId, String updateBy);
  106. /**
  107. * 库位任务状态调整
  108. *
  109. * @return
  110. */
  111. AjaxResult adjLocationStockStatus(String locationId, Long warehouseId, String updateBy);
  112. /**
  113. * 库存是否有货状态调整
  114. *
  115. * @return
  116. */
  117. AjaxResult adjLocationIsEmpty(String locationId, Long warehouseId, String updateBy);
  118. /**
  119. * 新增库位库存信息
  120. *
  121. * @param invLotLocId 库位库存信息
  122. * @return 结果
  123. */
  124. int insertInvLotLocId(InvLotLocId invLotLocId);
  125. /**
  126. * 修改库位库存信息
  127. *
  128. * @param invLotLocId 库位库存信息
  129. * @return 结果
  130. */
  131. int updateInvLotLocId(InvLotLocId invLotLocId);
  132. /**
  133. * 批量删除库位库存信息
  134. *
  135. * @param lotnums 需要删除的库位库存信息主键集合
  136. * @return 结果
  137. */
  138. int deleteInvLotLocIdByLotnums(String[] lotnums);
  139. /**
  140. * 删除库位库存信息信息
  141. *
  142. * @param lotnum 库位库存信息主键
  143. * @return 结果
  144. */
  145. int deleteInvLotLocIdByLotnum(String lotnum);
  146. /**
  147. * 初始化库存
  148. *
  149. * @param locationFrom 库存所在库位
  150. * @param sku 物料编号
  151. * @param customerId 所属货主(未使用)
  152. * @param qty 数量
  153. * @param lotattDTO 批次属性
  154. * @param qtyallocated 指定已分配数量
  155. * @return 生成的lotnum
  156. */
  157. String initInv(String locationFrom, String sku, String customerId, Double qty, LotattDTO lotattDTO, BigDecimal qtyallocated);
  158. /**
  159. * 根据库位id查询库位库存包含批次属性
  160. *
  161. * @param locationId
  162. * @return
  163. */
  164. List<InvLotLocIdLotattVO> selectInvLocIdLotattByLocationId(Long locationId);
  165. /**
  166. * 库存转移
  167. *
  168. * @param locationFrom 起始点位
  169. * @param locationTo 目标点位
  170. * @return
  171. */
  172. int stockTransfer(Long locationFrom, Long locationTo);
  173. /**
  174. * 根据物料编号和批次属性查询库存数量
  175. *
  176. * @param sku
  177. * @param lotattDTO
  178. * @return
  179. */
  180. Double queryInvBySku(String sku, LotattDTO lotattDTO, List<String> zoneIdList);
  181. /**
  182. * 根据出库单明细查询库存
  183. *
  184. * @param lotnum
  185. * @param sku
  186. * @param location
  187. * @param customerId
  188. * @return
  189. */
  190. List<InvLotLocId> queryInvOrderBy(String lotnum, String sku, String location, String customerId);
  191. /**
  192. * 根据托盘号查询库存
  193. *
  194. * @param invLotAtt
  195. * @return
  196. */
  197. List<InvLotLocId> queryInvByInvLotatt(InvLotAtt invLotAtt, String boxNo);
  198. /**
  199. * 查询已备货的满托库存
  200. *
  201. * @param orderNo
  202. * @param sku
  203. * @return
  204. */
  205. List<InvLotLocId> queryInvByFull(String orderNo, String sku);
  206. /**
  207. * 根据托盘解绑库存
  208. *
  209. * @param palletNo
  210. * @return
  211. */
  212. AjaxResult unLockInvByPalletNo(String palletNo, String sn);
  213. /**
  214. * 库存转移部分
  215. *
  216. * @param locationFrom
  217. * @param locationTo
  218. * @return
  219. */
  220. AjaxResult stockTransferPick(Long locationFrom, Long locationTo, String lotnum, BigDecimal qty);
  221. }