diff --git a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvMAOrderDetailController.java b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvMAOrderDetailController.java index 036e0b17..366b86e6 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvMAOrderDetailController.java +++ b/api-admin/src/main/java/com/glxp/api/admin/controller/inventory/InvMAOrderDetailController.java @@ -1,8 +1,10 @@ package com.glxp.api.admin.controller.inventory; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity; +import com.glxp.api.admin.req.inventory.AddMAOrderDetailRequest; import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest; import com.glxp.api.admin.res.PageSimpleResponse; import com.glxp.api.admin.res.inventory.InvMAOrderDetailResponse; @@ -71,9 +73,14 @@ public class InvMAOrderDetailController { * @return */ @PostMapping("/inv/MA/order/detail/batchAddDetail") - public BaseResponse batchAddDetail(@RequestBody List invProductIds, BindingResult bindingResult) { - - return ResultVOUtils.success(); + public BaseResponse batchAddDetail(@RequestBody AddMAOrderDetailRequest addMAOrderDetailRequest, BindingResult bindingResult) { + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (null == addMAOrderDetailRequest || CollUtil.isEmpty(addMAOrderDetailRequest.getInvProductIds()) || StrUtil.isBlank(addMAOrderDetailRequest.getOrderIdFk())) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!"); + } + return invMAOrderDetailService.batchAddDetail(addMAOrderDetailRequest); } /** @@ -84,8 +91,13 @@ public class InvMAOrderDetailController { */ @PostMapping("/inv/MA/order/detail/delete") public BaseResponse delete(@RequestBody FilterInvMAOrderDetailRequest filterInvMAOrderDetailRequest, BindingResult bindingResult) { - - return ResultVOUtils.success(); + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (null == filterInvMAOrderDetailRequest || null == filterInvMAOrderDetailRequest.getId()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空"); + } + return invMAOrderDetailService.delete(filterInvMAOrderDetailRequest.getId()); } /** @@ -94,11 +106,15 @@ public class InvMAOrderDetailController { * @param invMaintenanceOrderDetailEntity * @return */ - @PostMapping("/inv/MA/order/detail/delete") + @PostMapping("/inv/MA/order/detail/update") public BaseResponse update(@RequestBody InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity, BindingResult bindingResult) { - - - return ResultVOUtils.success(); + if (bindingResult.hasErrors()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); + } + if (null == invMaintenanceOrderDetailEntity || null == invMaintenanceOrderDetailEntity.getId()) { + return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "参数不能为空!"); + } + return invMAOrderDetailService.update(invMaintenanceOrderDetailEntity); } } diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inventory/AddMAOrderDetailRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inventory/AddMAOrderDetailRequest.java new file mode 100644 index 00000000..49bfb4c4 --- /dev/null +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inventory/AddMAOrderDetailRequest.java @@ -0,0 +1,23 @@ +package com.glxp.api.admin.req.inventory; + +import lombok.Data; + +import java.util.List; + +/** + * 添加库粗养护记录详情接口参数 + */ +@Data +public class AddMAOrderDetailRequest { + + /** + * 库存养护记录号 + */ + private String orderIdFk; + + /** + * 库存详情ID集合 + */ + List invProductIds; + +} diff --git a/api-admin/src/main/java/com/glxp/api/admin/req/inventory/FilterInvMAOrderDetailRequest.java b/api-admin/src/main/java/com/glxp/api/admin/req/inventory/FilterInvMAOrderDetailRequest.java index fdb91d3f..b620a8d6 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/req/inventory/FilterInvMAOrderDetailRequest.java +++ b/api-admin/src/main/java/com/glxp/api/admin/req/inventory/FilterInvMAOrderDetailRequest.java @@ -4,11 +4,13 @@ import com.glxp.api.admin.req.ListPageRequest; import lombok.Data; /** - * 查询 + * 库存养护记录详情参数 */ @Data public class FilterInvMAOrderDetailRequest extends ListPageRequest { + private Integer id; + /** * 养护记录ID */ diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvMAOrderDetailService.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvMAOrderDetailService.java index e5ed5f6c..9b2590bc 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvMAOrderDetailService.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/InvMAOrderDetailService.java @@ -1,6 +1,7 @@ package com.glxp.api.admin.service.inventory; import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity; +import com.glxp.api.admin.req.inventory.AddMAOrderDetailRequest; import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest; import com.glxp.api.admin.res.inventory.InvMAOrderDetailResponse; import com.glxp.api.common.res.BaseResponse; @@ -28,4 +29,28 @@ public interface InvMAOrderDetailService { */ BaseResponse addOrderDetail(InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity); + /** + * 养护详情记录 -1 + * + * @param id + * @return + */ + BaseResponse delete(Integer id); + + /** + * 根据库存详情批量添加养护详情记录 + * + * @param addMAOrderDetailRequest + * @return + */ + BaseResponse batchAddDetail(AddMAOrderDetailRequest addMAOrderDetailRequest); + + /** + * 更新养护记录详情 + * + * @param invMaintenanceOrderDetailEntity + * @return + */ + BaseResponse update(InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity); + } diff --git a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvMAOrderDetailServiceImpl.java b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvMAOrderDetailServiceImpl.java index aac2e5a5..acf910c9 100644 --- a/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvMAOrderDetailServiceImpl.java +++ b/api-admin/src/main/java/com/glxp/api/admin/service/inventory/impl/InvMAOrderDetailServiceImpl.java @@ -10,6 +10,7 @@ import com.glxp.api.admin.entity.basic.UdiEntity; import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderDetailEntity; import com.glxp.api.admin.entity.inventory.InvMaintenanceOrderEntity; import com.glxp.api.admin.entity.inventory.InvProductDetailEntity; +import com.glxp.api.admin.req.inventory.AddMAOrderDetailRequest; import com.glxp.api.admin.req.inventory.FilterInvMAOrderDetailRequest; import com.glxp.api.admin.req.inventory.FilterInvProductDetailRequest; import com.glxp.api.admin.res.inventory.InvMAOrderDetailResponse; @@ -91,7 +92,50 @@ public class InvMAOrderDetailServiceImpl implements InvMAOrderDetailService { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, "当前仓库中不存在此产品,无法进行养护!"); } } - return ResultVOUtils.success("添加库存养护详情成功!"); } + + @Override + public BaseResponse delete(Integer id) { + //查询养护记录详情 + InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity = invMAOrderDetailDao.selectByPrimaryKey(id); + if (invMaintenanceOrderDetailEntity.getCount() > 1) { + invMaintenanceOrderDetailEntity.setCount(invMaintenanceOrderDetailEntity.getCount() - 1); + invMAOrderDetailDao.updateByPrimaryKey(invMaintenanceOrderDetailEntity); + } + //养护数量为1,直接删除养护记录详情 + invMAOrderDetailDao.deleteByPrimaryKey(id); + return ResultVOUtils.success(); + } + + @Override + public BaseResponse batchAddDetail(AddMAOrderDetailRequest addMAOrderDetailRequest) { + for (String invProductId : addMAOrderDetailRequest.getInvProductIds()) { + FilterInvProductDetailRequest detailRequest = new FilterInvProductDetailRequest(); + detailRequest.setId(invProductId); + List invProductDetailEntities = invProductDetailDao.filterInvProductDetail(detailRequest); + InvProductDetailEntity invProductDetailEntity = invProductDetailEntities.get(0); + //生成库存养护记录详情 + InvMaintenanceOrderDetailEntity maOrderDetail = new InvMaintenanceOrderDetailEntity(); + maOrderDetail.setOrderIdFk(addMAOrderDetailRequest.getOrderIdFk()); + maOrderDetail.setCode(invProductDetailEntity.getOriginCode()); + maOrderDetail.setProductId(invProductDetailEntity.getProductIdFk()); + UdiEntity udi = FilterUdiUtils.getUdi(invProductDetailEntity.getOriginCode()); + maOrderDetail.setNameCode(udi.getUdi()); + maOrderDetail.setProduceDate(invProductDetailEntity.getProductionDate()); + maOrderDetail.setExpireDate(invProductDetailEntity.getExpireDate()); + maOrderDetail.setCount(invProductDetailEntity.getCount()); + maOrderDetail.setMaintenanceStatus(0); + maOrderDetail.setDeviceStatus(1); + invMAOrderDetailDao.insert(maOrderDetail); + } + return ResultVOUtils.success("添加成功"); + } + + @Override + public BaseResponse update(InvMaintenanceOrderDetailEntity invMaintenanceOrderDetailEntity) { + invMAOrderDetailDao.updateByPrimaryKey(invMaintenanceOrderDetailEntity); + return ResultVOUtils.success("更新成功!"); + } + }