出库-分配库存,不足整托提示
parent
5dcfc0c7b5
commit
2ebd0f95f4
|
|
@ -56,4 +56,6 @@ public interface PickDetailRepository extends JpaRepository<PickDetail, Long>, J
|
|||
PickDetail findByPickAndLineNo(Long id, Long lineNo);
|
||||
@Query(value = "select pd from PickDetail pd where pd.pick.id=?1", nativeQuery = false)
|
||||
List<PickDetail> findByPick(Long id);
|
||||
@Query(value = "select pd from PickDetail pd where pd.pick.id=?1 and pd.allocatedQty>0", nativeQuery = false)
|
||||
List<PickDetail> findByPickAllocated(Long id);
|
||||
}
|
||||
|
|
@ -15,10 +15,12 @@
|
|||
*/
|
||||
package com.youchain.businessdata.rest;
|
||||
|
||||
import com.youchain.annotation.AnonymousAccess;
|
||||
import com.youchain.annotation.Log;
|
||||
import com.youchain.businessdata.domain.Pick;
|
||||
import com.youchain.businessdata.service.PickService;
|
||||
import com.youchain.businessdata.service.dto.PickQueryCriteria;
|
||||
import com.youchain.exception.handler.ApiResult;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.http.HttpStatus;
|
||||
|
|
@ -84,4 +86,18 @@ public class PickController {
|
|||
pickService.deleteAll(ids);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/cancelAllocate")
|
||||
@Log("出库-整单取消分配")
|
||||
@AnonymousAccess
|
||||
public ResponseEntity<Object> cancelAllocate(@RequestBody Long[] ids) {
|
||||
ApiResult apiResult = pickService.cancelAllocate(ids);
|
||||
return new ResponseEntity<>(apiResult, HttpStatus.valueOf(apiResult.getStatus()));
|
||||
}
|
||||
@PostMapping("/allocate")
|
||||
@Log("出库-整单分配")
|
||||
@AnonymousAccess
|
||||
public ResponseEntity<Object> allocate(@RequestBody Long[] ids) {
|
||||
ApiResult apiResult = pickService.allocate(ids);
|
||||
return new ResponseEntity<>(apiResult, HttpStatus.valueOf(apiResult.getStatus()));
|
||||
}
|
||||
}
|
||||
|
|
@ -18,6 +18,7 @@ package com.youchain.businessdata.service;
|
|||
import com.youchain.businessdata.domain.Pick;
|
||||
import com.youchain.businessdata.service.dto.PickDto;
|
||||
import com.youchain.businessdata.service.dto.PickQueryCriteria;
|
||||
import com.youchain.exception.handler.ApiResult;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import java.util.Map;
|
||||
import java.util.List;
|
||||
|
|
@ -80,4 +81,8 @@ public interface PickService {
|
|||
* @throws IOException /
|
||||
*/
|
||||
void download(List<PickDto> all, HttpServletResponse response) throws IOException;
|
||||
/** 出库-整单分配*/
|
||||
ApiResult allocate(Long[] ids);
|
||||
/** 出库-整单取消分配*/
|
||||
ApiResult cancelAllocate(Long[] ids);
|
||||
}
|
||||
|
|
@ -188,7 +188,9 @@ public class PickDetailServiceImpl implements PickDetailService {
|
|||
//整托分配
|
||||
allocateQty = inv.getQuantity();
|
||||
if (unQty < allocateQty) {
|
||||
return ApiResult.fail(201, "剩余订单数量不足一托", "");
|
||||
return ApiResult.fail(201, "单号:"+pickDetail.getPick().getRelatedBill1()
|
||||
+"行:"+pickDetail.getLineNo()+",剩余订单数量不足一托"+"订单数量"+quantity+",剩余未分配数量"
|
||||
+unQty+",库存单托数量"+inv.getQuantity(),null);
|
||||
}
|
||||
//更新库存
|
||||
inv.setQueuedQty(allocateQty);
|
||||
|
|
|
|||
|
|
@ -15,9 +15,12 @@
|
|||
*/
|
||||
package com.youchain.businessdata.service.impl;
|
||||
|
||||
import com.qiniu.storage.Api;
|
||||
import com.youchain.businessdata.domain.Pick;
|
||||
import com.youchain.businessdata.domain.PickDetail;
|
||||
import com.youchain.businessdata.repository.PickDetailRepository;
|
||||
import com.youchain.businessdata.service.PickDetailService;
|
||||
import com.youchain.exception.handler.ApiResult;
|
||||
import com.youchain.utils.*;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import com.youchain.businessdata.repository.PickRepository;
|
||||
|
|
@ -47,6 +50,7 @@ import java.util.LinkedHashMap;
|
|||
public class PickServiceImpl implements PickService {
|
||||
|
||||
private final PickRepository pickRepository;
|
||||
private final PickDetailService pickDetailService;
|
||||
private final PickDetailRepository pickDetailRepository;
|
||||
private final PickMapper pickMapper;
|
||||
|
||||
|
|
@ -121,4 +125,48 @@ public class PickServiceImpl implements PickService {
|
|||
}
|
||||
FileUtil.downloadExcel(list, response);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult allocate(Long[] ids) {
|
||||
List<ApiResult> apiResults=new ArrayList<>();
|
||||
for (int i = 0; i < ids.length; i++) {
|
||||
Pick pick = pickRepository.getById(ids[i]);
|
||||
List<PickDetail> pickDetailList = pickDetailRepository.findByPick(pick.getId());
|
||||
for (int j = 0; j < pickDetailList.size(); j++) {
|
||||
//按明细分配
|
||||
PickDetail pickDetail=pickDetailList.get(i);
|
||||
Long[] pfIds={ pickDetail.getId() };
|
||||
ApiResult apiResult = pickDetailService.allocate(pfIds);
|
||||
if (apiResult.getStatus()==201){
|
||||
apiResults.add(apiResult);
|
||||
}
|
||||
}
|
||||
pick.setStatus(BizStatus.ALLOCATE);
|
||||
pickRepository.save(pick);
|
||||
}
|
||||
return ApiResult.fail(200,"分配成功",apiResults);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult cancelAllocate(Long[] ids) {
|
||||
List<ApiResult> apiResults=new ArrayList<>();
|
||||
for (int i = 0; i < ids.length; i++) {
|
||||
Pick pick = pickRepository.getById(ids[i]);
|
||||
List<PickDetail> pickDetailList = pickDetailRepository.findByPick(pick.getId());
|
||||
for (int j = 0; j < pickDetailList.size(); j++) {
|
||||
PickDetail pickDetail=pickDetailList.get(j);
|
||||
Long[] pdIds={ pickDetail.getId() };
|
||||
ApiResult apiResult = pickDetailService.cancelAllocate(pdIds);
|
||||
apiResults.add(apiResult);
|
||||
}
|
||||
//查询 单据已分配明细
|
||||
List<PickDetail> pickAllocated = pickDetailRepository.findByPickAllocated(pick.getId());
|
||||
if (pickAllocated.size()==0){
|
||||
// 没有已分配明细
|
||||
pick.setStatus(BizStatus.OPEN);
|
||||
pickRepository.save(pick);
|
||||
}
|
||||
}
|
||||
return ApiResult.fail(200,"取消分配成功",apiResults);
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue