package com.cim.idm.controller; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.cim.idm.constants.ReceiveTypeEnums; import com.cim.idm.model.dto.DeliveryDto; import com.cim.idm.model.po.MaterialReceiveRequest; import com.cim.idm.model.dto.PageDto; 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; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; @RestController @RequestMapping("/api/delivery") @EnableAutoConfiguration public class DeliveryController { @Resource private IDeliveryService deliveryService; /** * 创建入库单 */ @PostMapping(value = "/create") public AjaxResult createDelivery(@RequestBody JSONObject in) { DeliveryDto dto = JSON.toJavaObject(in, DeliveryDto.class); return AjaxResult.me().setSuccess(true).setMessage(deliveryService.createDelivery(dto)); } /** * 获取采购单 */ @PostMapping(value = "/getPurchase") public AjaxResult getPurchase(@RequestBody PageDto in) { return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getPurchase(in)); } /** * 获取入库详情 * 到货单/销售采购单,根据物料清单,创建批次,进行入库 */ @PostMapping(value = "/getStoreDetail") public AjaxResult getStoreDetail(@RequestBody JSONObject in) { Map params = (Map) in.get("params"); // siteName String siteName = params.get("SITENAME"); String receiveRequestName = params.get("RECEIVEREQUESTNAME"); // 单据名称集合 List nameList = new ArrayList<>(); // 判定是否是到库单 MaterialReceiveRequest byKey = deliveryService.getByKey(siteName, receiveRequestName); if (Objects.isNull(byKey)) { return AjaxResult.me().setSuccess(false).setMessage("不存在该单据"); } String typeByKey = byKey.getReceiveRequestType(); // 到货单 String deliveryName = null; if (typeByKey.equals(ReceiveTypeEnums.DK.getCode())) { // 到库单(找出该单据下的所有的采购单) nameList = deliveryService.getReceiveByDelivery(siteName, receiveRequestName) .stream().map(MaterialReceiveRequest::getReceiveRequestName).collect(Collectors.toList()); deliveryName = receiveRequestName; } else { // 采购单 nameList.add(receiveRequestName); } // 获取采购单明细及批次 return AjaxResult.me().setSuccess(true).setResultObj( deliveryService.getStoreDetail(siteName, nameList, deliveryName)); } /** * 获取采购订单详情 */ @PostMapping(value = "/getReceiveDetail") public AjaxResult getReceiveDetail(@RequestBody JSONObject in) { List nameList = (List) in.get("nameList"); // 获取采购订单详情 return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getReceiveDetail(nameList)); } }