diff --git a/zi-wms-pda/src/main/java/com/cim/idm/constants/DeliveryStateEnums.java b/zi-wms-pda/src/main/java/com/cim/idm/constants/delivery/DeliveryStateEnums.java similarity index 73% rename from zi-wms-pda/src/main/java/com/cim/idm/constants/DeliveryStateEnums.java rename to zi-wms-pda/src/main/java/com/cim/idm/constants/delivery/DeliveryStateEnums.java index 1751d3e..d439d49 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/constants/DeliveryStateEnums.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/constants/delivery/DeliveryStateEnums.java @@ -1,11 +1,12 @@ -package com.cim.idm.constants; +package com.cim.idm.constants.delivery; import lombok.Getter; @Getter public enum DeliveryStateEnums { CREATE("01", "新建"), - FINISH("02", "结束"); + DOING("02", "进行中"), + FINISH("03", "结束"); private final String code; private final String info; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/constants/DeliveryTypeEnums.java b/zi-wms-pda/src/main/java/com/cim/idm/constants/delivery/DeliveryTypeEnums.java similarity index 89% rename from zi-wms-pda/src/main/java/com/cim/idm/constants/DeliveryTypeEnums.java rename to zi-wms-pda/src/main/java/com/cim/idm/constants/delivery/DeliveryTypeEnums.java index 802944e..1747c65 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/constants/DeliveryTypeEnums.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/constants/delivery/DeliveryTypeEnums.java @@ -1,4 +1,4 @@ -package com.cim.idm.constants; +package com.cim.idm.constants.delivery; import lombok.Getter; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/constants/DocumentTypeEnums.java b/zi-wms-pda/src/main/java/com/cim/idm/constants/delivery/DocumentTypeEnums.java similarity index 88% rename from zi-wms-pda/src/main/java/com/cim/idm/constants/DocumentTypeEnums.java rename to zi-wms-pda/src/main/java/com/cim/idm/constants/delivery/DocumentTypeEnums.java index 1af2cac..1b8b731 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/constants/DocumentTypeEnums.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/constants/delivery/DocumentTypeEnums.java @@ -1,4 +1,4 @@ -package com.cim.idm.constants; +package com.cim.idm.constants.delivery; import lombok.Getter; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/constants/ReceiveTypeEnums.java b/zi-wms-pda/src/main/java/com/cim/idm/constants/receive/ReceiveTypeEnums.java similarity index 95% rename from zi-wms-pda/src/main/java/com/cim/idm/constants/ReceiveTypeEnums.java rename to zi-wms-pda/src/main/java/com/cim/idm/constants/receive/ReceiveTypeEnums.java index c161c01..dd2c61c 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/constants/ReceiveTypeEnums.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/constants/receive/ReceiveTypeEnums.java @@ -1,4 +1,4 @@ -package com.cim.idm.constants; +package com.cim.idm.constants.receive; import lombok.Getter; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/constants/StorageEnums.java b/zi-wms-pda/src/main/java/com/cim/idm/constants/receive/StorageEnums.java similarity index 94% rename from zi-wms-pda/src/main/java/com/cim/idm/constants/StorageEnums.java rename to zi-wms-pda/src/main/java/com/cim/idm/constants/receive/StorageEnums.java index 3c1134c..b9c45fd 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/constants/StorageEnums.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/constants/receive/StorageEnums.java @@ -1,4 +1,4 @@ -package com.cim.idm.constants; +package com.cim.idm.constants.receive; import lombok.Getter; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java index 1289210..ccecb33 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/DeliveryController.java @@ -1,6 +1,9 @@ package com.cim.idm.controller; import com.alibaba.fastjson.JSONObject; +import com.cim.idm.constants.delivery.DeliveryStateEnums; +import com.cim.idm.exception.GlobalException; +import com.cim.idm.model.dto.delivery.DeliveryDelDto; import com.cim.idm.model.dto.delivery.DeliveryDto; import com.cim.idm.model.dto.delivery.StoreDetailDto; import com.cim.idm.model.po.MaterialReceiveRequest; @@ -35,7 +38,10 @@ public class DeliveryController { */ @PostMapping(value = "/create") public AjaxResult createDelivery(@RequestBody DeliveryDto dto) { - return AjaxResult.me().setSuccess(true).setMessage(deliveryService.createDelivery(dto)); + if (deliveryService.createDelivery(dto) > 0) { + return AjaxResult.me().setSuccess(true).setMessage("创建成功"); + } + return AjaxResult.me().setErrorCode(-1).setMessage("创建失败"); } /** @@ -76,7 +82,7 @@ public class DeliveryController { } // 异常 if (nameList.isEmpty()) { - return AjaxResult.me().setSuccess(false).setMessage("不存在该单据"); + throw new GlobalException("不存在该单据"); } // 获取采购单明细及批次 return AjaxResult.me().setSuccess(true).setResultObj( @@ -89,7 +95,36 @@ public class DeliveryController { @PostMapping(value = "/getReceiveDetail") public AjaxResult getReceiveDetail(@RequestBody JSONObject in) { List nameList = (List) in.get("nameList"); - // 获取采购订单详情 return AjaxResult.me().setSuccess(true).setResultObj(deliveryService.getReceiveDetail(nameList)); } + + /** + * 获取到货单 + */ + @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("删除失败"); + } } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java index c5299a0..31452a0 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/controller/MaterialReceiveActController.java @@ -2,7 +2,6 @@ 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.framework.IDMFrameServiceProxy; import com.cim.idm.framework.data.EventInfo; import com.cim.idm.model.po.MaterialReceiveRequest; @@ -31,7 +30,6 @@ import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.sql.Timestamp; import java.util.*; -import java.util.stream.Collectors; import com.cim.idm.service.Impl.SDKMaterialPackingServiceImpl; @@ -179,14 +177,14 @@ public class MaterialReceiveActController { // 单据 String receiveRequestName = boxs.getReceiveRequestName(); // 判断是否是倒库单据 - MaterialReceiveRequest byKey = deliveryService.getByKey(boxs.getSiteName(), boxs.getReceiveRequestName()); + /*MaterialReceiveRequest byKey = deliveryService.getByKey(boxs.getSiteName(), boxs.getReceiveRequestName()); if (byKey.getReceiveRequestType().equals(ReceiveTypeEnums.DK.getCode())) { // 检索该到库订单下该物料的采购订单的 name List collect = deliveryService.getReceiveByDelivery(boxs.getSiteName(), boxs.getReceiveRequestName()) .stream().filter(item -> item.getMaterialSpecName().equals(materialSpecName)).collect(Collectors.toList()); // 检查剩余数量 // @TODO - } + }*/ String remark = box.getRemark(); String sdkid = box.getSdkid() == null ? "" : box.getSdkid(); String shipRequestDetailName = box.getShipRequestDetailName(); @@ -545,14 +543,14 @@ public class MaterialReceiveActController { String site = trackOutBoDto.getSiteName(); // 采购单 List requests = new ArrayList<>(); - // 判定单据类型 - MaterialReceiveRequest byKey = deliveryService.getByKey(site, name); + // @TODO 判定单据类型 + /*MaterialReceiveRequest byKey = deliveryService.getByKey(site, name); if (byKey.getReceiveRequestType().equals(ReceiveTypeEnums.DK.getCode())) { // 到货单 requests = deliveryService.getReceiveByDelivery(site, name); } else { requests.add(byKey); - } + }*/ // 采购单处理 for (MaterialReceiveRequest request : requests) { String receiveRequestName = request.getReceiveRequestName(); diff --git a/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java b/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java index 21db1c2..503324e 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/dao/DeliveryDao.java @@ -1,8 +1,6 @@ package com.cim.idm.dao; -import com.cim.idm.model.dto.delivery.DeliveryDto; -import com.cim.idm.model.dto.delivery.DeliveryRelationDto; -import com.cim.idm.model.dto.delivery.StoreDetailDto; +import com.cim.idm.model.dto.delivery.*; import com.cim.idm.model.po.delivery.MaterialDelivery; import com.cim.idm.model.po.delivery.MaterialDeliveryReceive; import com.cim.idm.model.po.MaterialReceiveRequest; @@ -74,4 +72,25 @@ public interface DeliveryDao { * @return 采购单名称列表 */ List getReceiveDetail(@Param("nameList") List nameList); + + /** + * 获取到货单 + * @param dto 请求 + * @return 采购订单 + */ + List getDeliveryList(@Param("dto") DeliveryListDto dto); + + /** + * 删除到货单 + * @param deliveryDelDto 请求 + * @return 结果 + */ + int delDelivery(@Param("dto") DeliveryDelDto deliveryDelDto); + + /** + * 删除到货单关系 + * @param deliveryDelDto 请求 + * @return 结果 + */ + int delDeliveryRel(@Param("dto") DeliveryDelDto deliveryDelDto); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/exception/AllExceptionHandler.java b/zi-wms-pda/src/main/java/com/cim/idm/exception/AllExceptionHandler.java index 3897931..f2273a8 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/exception/AllExceptionHandler.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/exception/AllExceptionHandler.java @@ -5,7 +5,7 @@ import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseBody; -@ControllerAdvice("com.zxy.idm.controller") +@ControllerAdvice(basePackages = {"com.zxy.idm.controller", "com.cim.idm.controller"}) public class AllExceptionHandler { @ResponseBody diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryDelDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryDelDto.java new file mode 100644 index 0000000..8bcdd00 --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryDelDto.java @@ -0,0 +1,12 @@ +package com.cim.idm.model.dto.delivery; + +import lombok.Data; + +@Data +public class DeliveryDelDto { + // siteName + private String siteName; + + // 到货单名称 + private String deliveryName; +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryDto.java index 9e24770..3e03095 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryDto.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryDto.java @@ -1,6 +1,5 @@ package com.cim.idm.model.dto.delivery; -import com.cim.idm.wmspackage.invoice.management.data.MaterialReceiveRequestKey; import lombok.Data; import java.util.List; diff --git a/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryListDto.java b/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryListDto.java new file mode 100644 index 0000000..dd6c8bf --- /dev/null +++ b/zi-wms-pda/src/main/java/com/cim/idm/model/dto/delivery/DeliveryListDto.java @@ -0,0 +1,19 @@ +package com.cim.idm.model.dto.delivery; + +import lombok.Data; + +@Data +public class DeliveryListDto { + + // 工厂 + private String siteName; + + // 到货单名称 + private String deliveryName; + + // 到货单类型 + private String deliveryType; + + // 到货单状态 + private String deliveryState; +} diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/IDeliveryService.java b/zi-wms-pda/src/main/java/com/cim/idm/service/IDeliveryService.java index 8d27029..1f2f0a1 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/IDeliveryService.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/IDeliveryService.java @@ -1,5 +1,6 @@ package com.cim.idm.service; +import com.cim.idm.model.dto.delivery.DeliveryDelDto; import com.cim.idm.model.dto.delivery.DeliveryDto; import com.cim.idm.model.dto.delivery.StoreDetailDto; import com.cim.idm.model.po.delivery.MaterialDelivery; @@ -19,7 +20,7 @@ public interface IDeliveryService { * @param dto 请求 * @return 到货单 */ - String createDelivery(DeliveryDto dto); + int createDelivery(DeliveryDto dto); /** * 获取采购订单 @@ -64,4 +65,18 @@ public interface IDeliveryService { * @return 采购单名称列表 */ List getReceiveDetail(List nameList); + + /** + * 获取到货单 + * @param dto 请求 + * @return 采购订单 + */ + PageInfo getDeliveryList(PageDto dto); + + /** + * 删除到货单 + * @param deliveryDelDto 请求 + * @return 结果 + */ + int delDelivery(DeliveryDelDto deliveryDelDto); } diff --git a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/DeliveryServiceImpl.java b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/DeliveryServiceImpl.java index 2bc44a0..54e6b57 100644 --- a/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/DeliveryServiceImpl.java +++ b/zi-wms-pda/src/main/java/com/cim/idm/service/Impl/DeliveryServiceImpl.java @@ -1,14 +1,13 @@ package com.cim.idm.service.Impl; import com.alibaba.fastjson.JSON; -import com.cim.idm.constants.DeliveryStateEnums; -import com.cim.idm.constants.ReceiveTypeEnums; +import com.cim.idm.constants.delivery.DeliveryStateEnums; +import com.cim.idm.constants.receive.ReceiveTypeEnums; import com.cim.idm.dao.DeliveryDao; +import com.cim.idm.exception.GlobalException; import com.cim.idm.model.dto.PageDto; import com.cim.idm.model.dto.PurchaseDto; -import com.cim.idm.model.dto.delivery.DeliveryDto; -import com.cim.idm.model.dto.delivery.DeliveryRelationDto; -import com.cim.idm.model.dto.delivery.StoreDetailDto; +import com.cim.idm.model.dto.delivery.*; import com.cim.idm.model.po.delivery.MaterialDelivery; import com.cim.idm.model.po.delivery.MaterialDeliveryReceive; import com.cim.idm.model.po.MaterialReceiveRequest; @@ -32,11 +31,7 @@ public class DeliveryServiceImpl implements IDeliveryService { @Override @Transactional - public String createDelivery(DeliveryDto dto) { - // 添加到库单 - if (deliveryDao.createDelivery(dto, DeliveryStateEnums.CREATE.getCode()) <= 0) { - return "添加到库单失败"; - } + public int createDelivery(DeliveryDto dto) { // 添加到库单关系 List res = new ArrayList<>(); for (DeliveryRelationDto item : dto.getReceiveList()) { @@ -47,10 +42,14 @@ public class DeliveryServiceImpl implements IDeliveryService { res.add(item); } } - if (deliveryDao.createRelation(res) <= 0) { - return "添加到库单关系失败"; + if (res.isEmpty()) { + throw new GlobalException("无可用的物料"); } - return "更新成功"; + if (deliveryDao.createRelation(res) <= 0) { + throw new GlobalException("添加到库单关系失败"); + } + // 添加到库单 + return deliveryDao.createDelivery(dto, DeliveryStateEnums.CREATE.getCode()); } @Override @@ -91,4 +90,22 @@ public class DeliveryServiceImpl implements IDeliveryService { public List getReceiveDetail(List nameList) { return deliveryDao.getReceiveDetail(nameList); } + + @Override + public PageInfo getDeliveryList(PageDto dto) { + PageMethod.startPage(dto.getPageNum(), dto.getPageSize()); + DeliveryListDto deliveryListDto = JSON.toJavaObject(dto.getParams(), DeliveryListDto.class); + return new PageInfo<>(deliveryDao.getDeliveryList(deliveryListDto)); + } + + @Override + @Transactional + public int delDelivery(DeliveryDelDto deliveryDelDto) { + // 移除到货单关系 + if (deliveryDao.delDeliveryRel(deliveryDelDto) <= 0) { + throw new GlobalException("删除到货单关系失败"); + } + // 移除到货单 + return deliveryDao.delDelivery(deliveryDelDto); + } } diff --git a/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml b/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml index 954041c..cfc1826 100644 --- a/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml +++ b/zi-wms-pda/src/main/resources/com/cim/idm/dao/DeliveryDao.xml @@ -225,4 +225,31 @@ order by RECEIVEREQUESTNAME + + + + + delete from MATERIALDELIVERY + where SITENAME = #{dto.siteName} + and DELIVERYNAME = #{dto.deliveryName} + + + + delete from MATERIALDELIVERYRECEIVE + where DELIVERYNAME = #{dto.deliveryName} + \ No newline at end of file