IBaseLocationInfoService.java 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362
  1. package com.ruoyi.base.service;
  2. import com.ruoyi.base.domain.BaseLocationInfo;
  3. import com.ruoyi.base.domain.dto.BaseLocationInfoSameColDTO;
  4. import com.ruoyi.base.domain.vo.BasLocationTreeSelectVO;
  5. import com.ruoyi.base.domain.vo.BaseLocationLotattListVO;
  6. import com.ruoyi.base.domain.vo.BaseLocationLotattDTO;
  7. import com.ruoyi.base.domain.vo.TreeSelectVO;
  8. import com.ruoyi.common.core.domain.AjaxResult;
  9. import java.util.List;
  10. import java.util.Map;
  11. /**
  12. * 库位信息Service接口
  13. *
  14. * @author andy
  15. * @date 2022-02-18
  16. */
  17. public interface IBaseLocationInfoService {
  18. /**
  19. * 入库校验同列任务任务状态和阻挡
  20. *
  21. * @param basLocationList
  22. * @return
  23. */
  24. BaseLocationLotattDTO checkTheSameColumnLocation(List<BaseLocationLotattDTO> basLocationList);
  25. /**
  26. * 出库校验同列任务任务状态和阻挡
  27. *
  28. * @param baseLocationList
  29. * @return
  30. */
  31. BaseLocationLotattDTO checkTheSameColumnLocation1(BaseLocationLotattDTO baseLocationLotattVO, List<BaseLocationLotattDTO> baseLocationList);
  32. /**
  33. * 查询库位信息
  34. *
  35. * @param id 库位信息主键
  36. * @return 库位信息
  37. */
  38. BaseLocationInfo selectBaseLocationInfoById(Long id);
  39. /**
  40. * 根据id或者编号查询库位信息
  41. *
  42. * @param idOrNo
  43. * @param warehouseId
  44. * @return
  45. */
  46. BaseLocationInfo selectBaseLocationInfoByIdOrNo(String idOrNo, Long warehouseId);
  47. /**
  48. * 根据条件查询可分配库位
  49. *
  50. * @param zoneId
  51. * @param bindSku
  52. * @param orderBy
  53. * @return
  54. */
  55. List<BaseLocationLotattDTO> selectAllocatingLocationAccordingConditionsOrderBy(List<String> zoneId
  56. , String bindSku
  57. , String orderBy);
  58. /**
  59. * 根据条件查询可分配库存
  60. *
  61. * @param zoneId
  62. * @param lotatt
  63. * @param sku
  64. * @param orderBy
  65. * @return
  66. */
  67. List<BaseLocationLotattDTO> selectAllocatingInventoryAccordingConditionsOrderBy(List<String> zoneId
  68. , Map<String, String> lotatt
  69. , String sku
  70. , String orderBy);
  71. /**
  72. * 查询库位信息列表
  73. *
  74. * @param baseLocationInfo 库位信息
  75. * @return 库位信息集合
  76. */
  77. List<BaseLocationInfo> selectBaseLocationInfoList(BaseLocationInfo baseLocationInfo);
  78. /**
  79. * 查询库位信息列表
  80. *
  81. * @param locId 库位ID
  82. * @return
  83. */
  84. List<BaseLocationInfo> selectBaseLocationInfoList(long locId);
  85. /**
  86. * 新增库位信息
  87. *
  88. * @param baseLocationInfo 库位信息
  89. * @return 结果
  90. */
  91. int insertBaseLocationInfo(BaseLocationInfo baseLocationInfo);
  92. /**
  93. * 修改库位信息
  94. *
  95. * @param baseLocationInfo 库位信息
  96. * @return 结果
  97. */
  98. int updateBaseLocationInfo(BaseLocationInfo baseLocationInfo);
  99. /**
  100. * 批量删除库位信息
  101. *
  102. * @param ids 需要删除的库位信息主键集合
  103. * @return 结果
  104. */
  105. int deleteBaseLocationInfoByIds(Long[] ids);
  106. /**
  107. * 删除库位信息信息
  108. *
  109. * @param id 库位信息主键
  110. * @return 结果
  111. */
  112. int deleteBaseLocationInfoById(Long id);
  113. /**
  114. * 构建前端所需要下拉树结构
  115. *
  116. * @return 下拉树结构列表
  117. */
  118. List<TreeSelectVO> buildLocationTreeSelect();
  119. /**
  120. * 构建前端所需要树结构
  121. *
  122. * @param zoneId 库位列表
  123. * @return 树结构列表
  124. */
  125. List<BasLocationTreeSelectVO> buildLocationTree(Long zoneId);
  126. /**
  127. * 检测是库位还是库区,由于下拉树库位和库区没有做区分所以用这个方法来判断下类型
  128. *
  129. * @param idOrNo id或者编号
  130. * @param warehouseId 仓库id
  131. * @return
  132. */
  133. boolean checkIsLocation(String idOrNo, Long warehouseId);
  134. /**
  135. * 根据zoneId查询库位信息
  136. * 返回结果会根据排列层进行排序
  137. *
  138. * @param zoneId
  139. * @param warehouseId
  140. * @return
  141. */
  142. List<BaseLocationInfo> selectSortedLocatinListByZoneId(Long zoneId, Long warehouseId, String orderBy);
  143. /**
  144. * 根据zoneId查询库位信息
  145. * 返回结果会根据排列层进行排序,同库位多种物料的数据会合并
  146. *
  147. * @param locationId
  148. * @param warehouseId
  149. * @param lotatt
  150. * @param sku
  151. * @return
  152. */
  153. List<BaseLocationLotattListVO> selectSortedLocatinListByZoneId(List<Long> locationId, Long warehouseId, Map<String, String> lotatt, String sku);
  154. /**
  155. * 更新库位状态
  156. *
  157. * @param status
  158. * @return
  159. */
  160. int updateLocationStockStatus(Long id, String status);
  161. /**
  162. * 查询相邻可以存放的库位
  163. *
  164. * @param colNo
  165. * @param zoneId
  166. * @return
  167. */
  168. List<BaseLocationInfo> selectNeighborLocation(String colNo, Long zoneId);
  169. /**
  170. * 验证库位任务状态是否空闲
  171. *
  172. * @param locationId
  173. * @return true 空闲
  174. */
  175. Boolean verifyLocationIsIdle(String locationId, Long warehouseId);
  176. /**
  177. * 验证库位库存是否为占用
  178. *
  179. * @param locationId
  180. * @return true 占用
  181. */
  182. Boolean verifyLocationIsInStock(String locationId, Long warehouseId);
  183. /**
  184. * 锁定库位
  185. *
  186. * @param id
  187. * @param warehouseId
  188. * @param updateBy
  189. * @return
  190. */
  191. boolean lockLocationStockStatus(Long id, Long warehouseId, String updateBy);
  192. /**
  193. * 解锁库位
  194. *
  195. * @param id
  196. * @param warehouseId
  197. * @param updateBy
  198. * @return
  199. */
  200. boolean unLockLocationStockStatus(Long id, Long warehouseId, String updateBy);
  201. /**
  202. * 锁定库位(起始和目标)
  203. *
  204. * @param locationFromId
  205. * @param locationToId
  206. * @param warehouseId
  207. * @param updateBy
  208. * @return
  209. */
  210. boolean lockLocationStockStatus(Long locationFromId, Long locationToId, Long warehouseId, String updateBy);
  211. /**
  212. * 解锁库位(起始和目标)
  213. *
  214. * @param locationFromId
  215. * @param locationToId
  216. * @param warehouseId
  217. * @param updateBy
  218. * @return
  219. */
  220. boolean unLockLocationStockStatus(Long locationFromId, Long locationToId, Long warehouseId, String updateBy);
  221. /**
  222. * 占领库位状态(是否有货状态)
  223. *
  224. * @param id
  225. * @param warehouseId
  226. * @param updateBy
  227. * @return
  228. */
  229. boolean occupyLocation(Long id, Long warehouseId, String updateBy);
  230. /**
  231. * 放开占领库位状态(是否有货状态)
  232. *
  233. * @param id
  234. * @param warehouseId
  235. * @param updateBy
  236. * @return
  237. */
  238. boolean unOccupyLocation(Long id, Long warehouseId, String updateBy);
  239. /**
  240. * 修改库位状态为空闲无货
  241. *
  242. * @param id
  243. * @param warehouseId
  244. * @param updateBy
  245. * @return
  246. */
  247. boolean updateLocationIdleAndEmpty(Long id, Long warehouseId, String updateBy);
  248. /**
  249. * 修改库位状态为空闲有货
  250. *
  251. * @param id
  252. * @param warehouseId
  253. * @param updateBy
  254. * @return
  255. */
  256. boolean updateLocationIdleAndNoEmpty(Long id, Long warehouseId, String updateBy);
  257. /**
  258. * 查询同列库位是否有阻挡
  259. *
  260. * @param colNo
  261. * @param colIndex
  262. * @return
  263. */
  264. List<BaseLocationInfo> selectBeforeLocationByColNo(String colNo, Long colIndex);
  265. /**
  266. * 查询同列可用库位
  267. *
  268. * @param colNo
  269. * @param colIndex
  270. * @return
  271. */
  272. List<BaseLocationInfoSameColDTO> selectSameColCanToLoc(String colNo, Long colIndex);
  273. /**
  274. * 导入库位
  275. *
  276. * @param list
  277. * @param updateSupport
  278. * @param opname
  279. * @return
  280. */
  281. AjaxResult importLocation(List<BaseLocationInfo> list, boolean updateSupport, String opname);
  282. /**
  283. * 重置库位数据
  284. * @param baseLocationInfo
  285. * @return
  286. */
  287. Boolean reSetLocationInfo(BaseLocationInfo baseLocationInfo);
  288. /**
  289. * 根据库位Id获取当前库位信息List
  290. * @param zoneId
  291. * @author chenyang
  292. */
  293. List<BaseLocationInfo> getBaseLocationInfoList(Long zoneId, List<Long> configLocationIdList);
  294. /**
  295. * 根据库位Id获取当前库位信息List
  296. * @param zoneId
  297. * @author chenyang
  298. */
  299. List<BaseLocationInfo> getBaseLocationInfoList(Long zoneId);
  300. /**
  301. * 根据库区场景获取当前库位信息List
  302. * @param zoneIdList
  303. * @author
  304. */
  305. List<BaseLocationInfo> getBaseLocationInfoList(List<Long> zoneIdList);
  306. List<BaseLocationInfo> getBaseLocationInfoByIdList(List<Long> idList);
  307. /**
  308. *
  309. * @param zoneId
  310. * @param bindSku
  311. * @param isEmpty
  312. * @
  313. * @return
  314. */
  315. List<BaseLocationInfo> selectLocationInfoList(Long zoneId, String bindSku, Boolean isEmpty, String stockStatus);
  316. }