出库-分配库存,不足整托提示
parent
5dcfc0c7b5
commit
2ebd0f95f4
|
|
@ -56,4 +56,6 @@ public interface PickDetailRepository extends JpaRepository<PickDetail, Long>, J
|
||||||
PickDetail findByPickAndLineNo(Long id, Long lineNo);
|
PickDetail findByPickAndLineNo(Long id, Long lineNo);
|
||||||
@Query(value = "select pd from PickDetail pd where pd.pick.id=?1", nativeQuery = false)
|
@Query(value = "select pd from PickDetail pd where pd.pick.id=?1", nativeQuery = false)
|
||||||
List<PickDetail> findByPick(Long id);
|
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;
|
package com.youchain.businessdata.rest;
|
||||||
|
|
||||||
|
import com.youchain.annotation.AnonymousAccess;
|
||||||
import com.youchain.annotation.Log;
|
import com.youchain.annotation.Log;
|
||||||
import com.youchain.businessdata.domain.Pick;
|
import com.youchain.businessdata.domain.Pick;
|
||||||
import com.youchain.businessdata.service.PickService;
|
import com.youchain.businessdata.service.PickService;
|
||||||
import com.youchain.businessdata.service.dto.PickQueryCriteria;
|
import com.youchain.businessdata.service.dto.PickQueryCriteria;
|
||||||
|
import com.youchain.exception.handler.ApiResult;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
@ -84,4 +86,18 @@ public class PickController {
|
||||||
pickService.deleteAll(ids);
|
pickService.deleteAll(ids);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
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.domain.Pick;
|
||||||
import com.youchain.businessdata.service.dto.PickDto;
|
import com.youchain.businessdata.service.dto.PickDto;
|
||||||
import com.youchain.businessdata.service.dto.PickQueryCriteria;
|
import com.youchain.businessdata.service.dto.PickQueryCriteria;
|
||||||
|
import com.youchain.exception.handler.ApiResult;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -80,4 +81,8 @@ public interface PickService {
|
||||||
* @throws IOException /
|
* @throws IOException /
|
||||||
*/
|
*/
|
||||||
void download(List<PickDto> all, HttpServletResponse response) 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();
|
allocateQty = inv.getQuantity();
|
||||||
if (unQty < allocateQty) {
|
if (unQty < allocateQty) {
|
||||||
return ApiResult.fail(201, "剩余订单数量不足一托", "");
|
return ApiResult.fail(201, "单号:"+pickDetail.getPick().getRelatedBill1()
|
||||||
|
+"行:"+pickDetail.getLineNo()+",剩余订单数量不足一托"+"订单数量"+quantity+",剩余未分配数量"
|
||||||
|
+unQty+",库存单托数量"+inv.getQuantity(),null);
|
||||||
}
|
}
|
||||||
//更新库存
|
//更新库存
|
||||||
inv.setQueuedQty(allocateQty);
|
inv.setQueuedQty(allocateQty);
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,12 @@
|
||||||
*/
|
*/
|
||||||
package com.youchain.businessdata.service.impl;
|
package com.youchain.businessdata.service.impl;
|
||||||
|
|
||||||
|
import com.qiniu.storage.Api;
|
||||||
import com.youchain.businessdata.domain.Pick;
|
import com.youchain.businessdata.domain.Pick;
|
||||||
import com.youchain.businessdata.domain.PickDetail;
|
import com.youchain.businessdata.domain.PickDetail;
|
||||||
import com.youchain.businessdata.repository.PickDetailRepository;
|
import com.youchain.businessdata.repository.PickDetailRepository;
|
||||||
|
import com.youchain.businessdata.service.PickDetailService;
|
||||||
|
import com.youchain.exception.handler.ApiResult;
|
||||||
import com.youchain.utils.*;
|
import com.youchain.utils.*;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import com.youchain.businessdata.repository.PickRepository;
|
import com.youchain.businessdata.repository.PickRepository;
|
||||||
|
|
@ -47,6 +50,7 @@ import java.util.LinkedHashMap;
|
||||||
public class PickServiceImpl implements PickService {
|
public class PickServiceImpl implements PickService {
|
||||||
|
|
||||||
private final PickRepository pickRepository;
|
private final PickRepository pickRepository;
|
||||||
|
private final PickDetailService pickDetailService;
|
||||||
private final PickDetailRepository pickDetailRepository;
|
private final PickDetailRepository pickDetailRepository;
|
||||||
private final PickMapper pickMapper;
|
private final PickMapper pickMapper;
|
||||||
|
|
||||||
|
|
@ -121,4 +125,48 @@ public class PickServiceImpl implements PickService {
|
||||||
}
|
}
|
||||||
FileUtil.downloadExcel(list, response);
|
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