IInvLotLocIdService.java 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397
  1. package com.ruoyi.ams.inv.service;
  2. import java.math.BigDecimal;
  3. import java.util.List;
  4. import com.ruoyi.ams.asn.vo.StockingListVO;
  5. import com.ruoyi.ams.config.domain.dto.AgvCallDTO;
  6. import com.ruoyi.ams.config.domain.dto.LotattDTO;
  7. import com.ruoyi.ams.inv.domain.InvLotAtt;
  8. import com.ruoyi.ams.inv.domain.InvLotLocId;
  9. import com.ruoyi.ams.inv.domain.form.InvLocIdSearchFrom;
  10. import com.ruoyi.ams.inv.domain.form.InvLotLocIdAdjForm;
  11. import com.ruoyi.ams.inv.domain.form.InvLotLocIdForm;
  12. import com.ruoyi.ams.inv.domain.form.InvLotLocIdMoveForm;
  13. import com.ruoyi.ams.inv.domain.vo.InvLotLocIdLotattVO;
  14. import com.ruoyi.ams.order.form.LineReleaseFrom;
  15. import com.ruoyi.base.domain.BaseLocationInfo;
  16. import com.ruoyi.base.domain.form.BasLocationForm;
  17. import com.ruoyi.base.domain.vo.BaseLocationLotattVO;
  18. import com.ruoyi.common.core.domain.AjaxResult;
  19. import org.apache.ibatis.annotations.Param;
  20. /**
  21. * 库位库存信息Service接口
  22. *
  23. * @author andy
  24. * @date 2022-03-03
  25. */
  26. public interface IInvLotLocIdService {
  27. /**
  28. * 查询库位库存信息
  29. *
  30. * @param lotnum 库位库存信息主键
  31. * @return 库位库存信息
  32. */
  33. List<InvLotLocId> selectInvLotLocIdByLotnum(String lotnum);
  34. /**
  35. * 根据主键查询
  36. *
  37. * @param locationId
  38. * @param customerId
  39. * @param sku
  40. * @param lotnum
  41. * @return
  42. */
  43. InvLotLocId selectInvLotLocIdById(String locationId, String customerId, String sku, String lotnum);
  44. /**
  45. * 查询库位库存信息列表
  46. *
  47. * @param locationId
  48. * @return
  49. */
  50. List<InvLotLocId> selectInvLotLocIdList(Long locationId);
  51. /**
  52. * 查询库位库存信息列表
  53. *
  54. * @param invLotLocId 库位库存信息
  55. * @return 库位库存信息集合
  56. */
  57. List<InvLotLocId> selectInvLotLocIdList(InvLotLocId invLotLocId);
  58. /**
  59. * 查询物料批次信息列表
  60. *
  61. * @param invLocIdSearchFrom
  62. * @return
  63. */
  64. List<InvLotLocIdLotattVO> selectInvLocIdLotattList(InvLocIdSearchFrom invLocIdSearchFrom);
  65. /**
  66. * 查询库位库存信息
  67. *
  68. * @param invLotLocId 库位库存信息
  69. * @return 库位库存信息集合
  70. */
  71. InvLotLocId selectInvLotLocIdByModel(InvLotLocId invLotLocId);
  72. /**
  73. * 库存调整
  74. *
  75. * @return
  76. */
  77. AjaxResult adj(InvLotLocIdAdjForm invLotLocIdAdjForm);
  78. /**
  79. * 库存移动
  80. *
  81. * @return
  82. */
  83. AjaxResult move(InvLotLocIdMoveForm invLotLocIdMoveForm);
  84. /**
  85. * 库存移动(直接转移库存)
  86. *
  87. * @param invLotLocIdMoveForm
  88. * @return
  89. */
  90. AjaxResult moveDirect(InvLotLocIdMoveForm invLotLocIdMoveForm);
  91. /**
  92. * 库存移动(根据托盘
  93. *
  94. * @param palletNo
  95. * @param locationTo
  96. * @param isCallCar
  97. * @param reason
  98. * @param warehouseId
  99. * @param updateBy
  100. * @return
  101. */
  102. AjaxResult movePalletTo(String palletNo, String locationTo, String isCallCar, String reason
  103. , Long warehouseId, String updateBy);
  104. /**
  105. * 库存清理
  106. *
  107. * @return
  108. */
  109. AjaxResult clear(String locationId, Long warehouseId, String updateBy);
  110. /**
  111. * 库存清理
  112. *
  113. * @param locationId
  114. * @param palletNo
  115. * @param warehouseId
  116. * @param updateBy
  117. * @return
  118. */
  119. AjaxResult clear(Long locationId,String palletNo,Long warehouseId, String updateBy);
  120. /**
  121. * 清除0库存
  122. *
  123. * @param locationId
  124. * @return
  125. */
  126. AjaxResult clearZeroInventory(String locationId, String customerId, String sku, String lotnum);
  127. /**
  128. * 库位任务状态调整
  129. *
  130. * @return
  131. */
  132. AjaxResult adjLocationStockStatus(String locationId, Long warehouseId, String updateBy);
  133. /**
  134. * 库存是否有货状态调整
  135. *
  136. * @return
  137. */
  138. AjaxResult adjLocationIsEmpty(String locationId, Long warehouseId, String updateBy);
  139. /**
  140. * 新增库位库存信息
  141. *
  142. * @param invLotLocId 库位库存信息
  143. * @return 结果
  144. */
  145. int insertInvLotLocId(InvLotLocId invLotLocId);
  146. /**
  147. * 修改库位库存信息
  148. *
  149. * @param invLotLocId 库位库存信息
  150. * @return 结果
  151. */
  152. int updateInvLotLocId(InvLotLocId invLotLocId);
  153. /**
  154. * 修改库位库存信息的某个字段为空
  155. *
  156. * @param
  157. * @return
  158. */
  159. int updateInvLotLocIdLotatt14IsNull(String lotnum);
  160. /**
  161. * 修改库位库存信息的某个字段为空
  162. *
  163. * @return
  164. */
  165. int updateInvLotLocIdLotatt15IsNull(String lotnum);
  166. /**
  167. * 批量删除库位库存信息
  168. *
  169. * @param lotnums 需要删除的库位库存信息主键集合
  170. * @return 结果
  171. */
  172. int deleteInvLotLocIdByLotnums(String[] lotnums);
  173. /**
  174. * 删除库位库存信息信息
  175. *
  176. * @param lotnum 库位库存信息主键
  177. * @return 结果
  178. */
  179. int deleteInvLotLocIdByLotnum(String lotnum);
  180. /**
  181. * 删除库位库存信息信息
  182. *
  183. * @param locId 库位库存信息主键
  184. * @return 结果
  185. */
  186. int deleteInvLotLocIdById(long locId);
  187. /**
  188. * 删除库位库存信息信息
  189. *
  190. * @param
  191. * @return
  192. */
  193. int deleteInvLotLocIdById(String locationId, String customerId, String sku, String lotnum);
  194. /**
  195. * 初始化库存
  196. *
  197. * @param locationFrom 库存所在库位
  198. * @param sku 物料编号
  199. * @param customerId 所属货主(未使用)
  200. * @param qty 数量
  201. * @param lotattDTO 批次属性
  202. * @param qtyallocated 指定已分配数量
  203. * @return 生成的lotnum
  204. */
  205. String initInv(String locationFrom, String sku, String customerId, Double qty, LotattDTO lotattDTO, BigDecimal qtyallocated);
  206. /**
  207. * 初始化库存 完全分配
  208. *
  209. * @param locationFrom
  210. * @param sku
  211. * @param customerId
  212. * @param qty
  213. * @param lotattDTO
  214. * @return
  215. */
  216. String initInvAllAct(String locationFrom, String sku, String customerId, Double qty, LotattDTO lotattDTO);
  217. /**
  218. * 初始化库存
  219. *
  220. * @param locationId
  221. * @param agvCallDTO
  222. * @return
  223. */
  224. String initInv(String locationId, AgvCallDTO agvCallDTO);
  225. /**
  226. * 根据库位id查询库位库存包含批次属性
  227. *
  228. * @param locationId
  229. * @return
  230. */
  231. List<InvLotLocIdLotattVO> selectInvLocIdLotattByLocationId(Long locationId);
  232. /**
  233. * 库存转移
  234. *
  235. * @param locationFrom 起始点位
  236. * @param palletNo 托盘编号
  237. * @param locationTo 目标点位
  238. * @return
  239. */
  240. int stockTransfer(Long locationFrom, String palletNo, Long locationTo);
  241. /**
  242. * 库存按数量转移(根据托盘编号)
  243. *
  244. * @param palletNoTo 目标托盘
  245. * @param qty 需要拣出的数量
  246. * @param fromQtyAtt 起始库位库存的批次属性
  247. * @return
  248. */
  249. AjaxResult invTransferPick(LotattDTO fromQtyAtt, BigDecimal qty, String palletNoTo);
  250. /**
  251. * 根据物料编号和批次属性查询库存数量
  252. *
  253. * @param sku
  254. * @param lotattDTO
  255. * @return
  256. */
  257. Double queryInvBySku(String sku, LotattDTO lotattDTO, List<String> zoneIdList);
  258. /**
  259. * 根据出库单明细查询库存
  260. *
  261. * @param lotnum
  262. * @param sku
  263. * @param location
  264. * @param customerId
  265. * @return
  266. */
  267. List<InvLotLocIdForm> queryInvOrderBy(String lotnum, String sku, String location, String customerId, LotattDTO lotattDTO);
  268. /**
  269. * 根据托盘号查询库存
  270. *
  271. * @param invLotAtt
  272. * @return
  273. */
  274. List<InvLotLocId> queryInvByInvLotatt(InvLotAtt invLotAtt);
  275. /**
  276. * 查询已备货的满托库存
  277. *
  278. * @param orderNo
  279. * @param sku
  280. * @return
  281. */
  282. List<InvLotLocId> queryInvByFull(String orderNo, String sku);
  283. /**
  284. * 根据托盘解绑库存
  285. *
  286. * @param palletNo
  287. * @return
  288. */
  289. AjaxResult unLockInvByPalletNo(String palletNo, String sn);
  290. /**
  291. * 库存转移部分
  292. *
  293. * @param locationFrom
  294. * @param locationTo
  295. * @param lotnum
  296. * @param qty
  297. * @param boxNo
  298. * @return
  299. */
  300. AjaxResult stockTransferPick(Long locationFrom, Long locationTo, String lotnum, BigDecimal qty, String boxNo);
  301. /**
  302. * 保存或者更新
  303. *
  304. * @param invLotLocId
  305. * @return
  306. */
  307. AjaxResult saveOrUpdate(InvLotLocId invLotLocId);
  308. /**
  309. * PDA库位移动到分拣区
  310. * 1,释放的是出库位,移动出库位库存至分拣缓存位
  311. */
  312. AjaxResult releaseLocation(String locationFrom, Long warehouseId, String updateBy);
  313. /**
  314. * PDA出库位置释放
  315. *
  316. * @param basLocationForm
  317. * @return
  318. */
  319. AjaxResult locationRelease(BasLocationForm basLocationForm);
  320. /**
  321. * PDA线边库位置释放
  322. *
  323. * @param lineReleaseFrom
  324. * @return
  325. */
  326. AjaxResult locationReleaseLine(LineReleaseFrom lineReleaseFrom);
  327. /**
  328. * 备货组盘的时候,一个托盘只能备货一个出库单
  329. *
  330. * @param palletNoTo
  331. * @param orderNo
  332. * @return false代表托盘上已经备货了出库单
  333. */
  334. AjaxResult checkPalletIsOnlyOrderNo(String palletNoTo,String orderNo);
  335. /**
  336. * 清空库存lotatt15(分配出库单号)根据托盘号
  337. *
  338. * @param palletNo
  339. * @return
  340. */
  341. AjaxResult clearInvActOrderNoByPalletNo(String palletNo);
  342. /**
  343. * 根据库位将对应库存批次lotatt15改为出库单号
  344. *
  345. * @param locationId
  346. * @param orderNo
  347. * @return
  348. */
  349. AjaxResult updateLotatt15ByLocationId(String locationId,String orderNo);
  350. }