131 lines
4.6 KiB
Java
Raw Normal View History

2025-03-26 09:06:23 +08:00
package com.cim.idm.controller;
import com.alibaba.fastjson.JSONObject;
2025-04-10 18:45:06 +08:00
import com.cim.idm.constants.delivery.DeliveryStateEnums;
import com.cim.idm.exception.GlobalException;
import com.cim.idm.model.dto.delivery.DeliveryDelDto;
2025-04-10 15:31:53 +08:00
import com.cim.idm.model.dto.delivery.DeliveryDto;
import com.cim.idm.model.dto.delivery.StoreDetailDto;
2025-03-31 15:02:54 +08:00
import com.cim.idm.model.po.MaterialReceiveRequest;
import com.cim.idm.model.dto.PageDto;
2025-04-10 15:31:53 +08:00
import com.cim.idm.model.po.delivery.MaterialDelivery;
import com.cim.idm.model.po.delivery.MaterialDeliveryReceive;
2025-03-26 09:06:23 +08:00
import com.cim.idm.service.IDeliveryService;
import com.cim.idm.utils.AjaxResult;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
2025-03-26 17:40:01 +08:00
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
2025-04-07 16:54:04 +08:00
import java.util.Objects;
import java.util.stream.Collectors;
2025-03-26 09:06:23 +08:00
@RestController
2025-03-28 10:57:43 +08:00
@RequestMapping("/api/delivery")
2025-03-26 09:06:23 +08:00
@EnableAutoConfiguration
public class DeliveryController {
@Resource
private IDeliveryService deliveryService;
/**
* 创建入库单
*/
@PostMapping(value = "/create")
2025-04-10 15:31:53 +08:00
public AjaxResult createDelivery(@RequestBody DeliveryDto dto) {
2025-04-10 18:45:06 +08:00
if (deliveryService.createDelivery(dto) > 0) {
return AjaxResult.me().setSuccess(true).setMessage("创建成功");
}
return AjaxResult.me().setErrorCode(-1).setMessage("创建失败");
2025-03-26 09:06:23 +08:00
}
2025-03-26 10:32:09 +08:00
/**
* 获取采购单
*/
2025-04-10 15:31:53 +08:00
@PostMapping(value = "/getReceiveList")
public AjaxResult getReceiveList(@RequestBody PageDto in) {
return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getReceiveList(in));
2025-03-26 10:32:09 +08:00
}
2025-03-26 17:40:01 +08:00
/**
* 获取入库详情
* 到货单/销售采购单根据物料清单创建批次进行入库
*/
@PostMapping(value = "/getStoreDetail")
public AjaxResult getStoreDetail(@RequestBody JSONObject in) {
Map<String, String> params = (Map<String, String>) in.get("params");
// siteName
2025-04-10 15:31:53 +08:00
StoreDetailDto storeDetailDto = new StoreDetailDto();
storeDetailDto.setSiteName(params.get("SITENAME"));
storeDetailDto.setDocumentName(params.get("RECEIVEREQUESTNAME"));
2025-03-26 17:40:01 +08:00
// 单据名称集合
List<String> nameList = new ArrayList<>();
2025-04-01 15:41:26 +08:00
String deliveryName = null;
2025-04-10 15:31:53 +08:00
MaterialDelivery byKey = deliveryService.getByKey(storeDetailDto);
// 到货单
if (Objects.nonNull(byKey)) {
deliveryName = byKey.getDeliveryName();
2025-03-26 17:40:01 +08:00
// 到库单(找出该单据下的所有的采购单)
2025-04-11 11:13:08 +08:00
nameList = deliveryService.getRelByDelivery(storeDetailDto)
2025-04-10 15:31:53 +08:00
.stream().map(MaterialDeliveryReceive::getReceiveRequestName).collect(Collectors.toList());
2025-03-26 17:40:01 +08:00
} else {
// 采购单
2025-04-10 15:31:53 +08:00
MaterialReceiveRequest receiveByKey = deliveryService.getReceiveByKey(storeDetailDto);
if (Objects.nonNull(receiveByKey)) {
nameList.add(storeDetailDto.getDocumentName());
}
}
// 异常
if (nameList.isEmpty()) {
2025-04-10 18:45:06 +08:00
throw new GlobalException("不存在该单据");
2025-03-26 17:40:01 +08:00
}
// 获取采购单明细及批次
2025-04-01 15:41:26 +08:00
return AjaxResult.me().setSuccess(true).setResultObj(
2025-04-10 20:09:44 +08:00
deliveryService.getStoreDetail(storeDetailDto.getDocumentName(), storeDetailDto.getSiteName(), nameList, deliveryName));
2025-03-26 17:40:01 +08:00
}
2025-03-31 14:31:16 +08:00
/**
* 获取采购订单详情
*/
@PostMapping(value = "/getReceiveDetail")
public AjaxResult getReceiveDetail(@RequestBody JSONObject in) {
List<String> nameList = (List<String>) in.get("nameList");
return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getReceiveDetail(nameList));
}
2025-04-10 18:45:06 +08:00
/**
* 获取到货单
*/
@PostMapping(value = "/getDeliveryList")
public AjaxResult getDeliveryList(@RequestBody PageDto in) {
return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getDeliveryList(in));
}
/**
* 删除到货单
*/
@PostMapping(value = "/delDelivery")
public AjaxResult delDelivery(@RequestBody DeliveryDelDto deliveryDelDto) {
StoreDetailDto storeDetailDto = new StoreDetailDto();
storeDetailDto.setDocumentName(deliveryDelDto.getDeliveryName());
storeDetailDto.setSiteName(deliveryDelDto.getSiteName());
// 校验
MaterialDelivery byKey = deliveryService.getByKey(storeDetailDto);
if (Objects.isNull(byKey)) {
throw new GlobalException("不存在到货单");
}
if (!byKey.getDeliveryState().equals(DeliveryStateEnums.CREATE.getCode())) {
throw new GlobalException("到货单进行中或已结束,不允许删除");
}
if (deliveryService.delDelivery(deliveryDelDto) > 0) {
return AjaxResult.me().setSuccess(true).setResultObj("删除成功");
}
return AjaxResult.me().setErrorCode(-1).setMessage("删除失败");
}
2025-03-26 09:06:23 +08:00
}