出库-分配库存,不足整托提示
							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);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -159,11 +159,11 @@ public class PickDetailServiceImpl implements PickDetailService {
 | 
			
		|||
                }
 | 
			
		||||
            }
 | 
			
		||||
            if (pickDetail.getPropC4().equals(BizStatus.RG_PT)){
 | 
			
		||||
                /** 人工出库*/
 | 
			
		||||
                /** 人工出库 */
 | 
			
		||||
                apiResult = getAllocate(pickDetail, item, dept, quantity,0);
 | 
			
		||||
            }
 | 
			
		||||
            if (pickDetail.getPropC4().equals(BizStatus.AGV_PT)){
 | 
			
		||||
                /**AGV出库分配*/
 | 
			
		||||
                /** AGV出库分配 */
 | 
			
		||||
                //获取目标点位
 | 
			
		||||
                apiResult = getAllocate(pickDetail, item, dept, quantity,1);
 | 
			
		||||
            }
 | 
			
		||||
| 
						 | 
				
			
			@ -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