package com.glxp.api.controller.inv; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.controller.BaseController; import com.glxp.api.entity.basic.UdiEntity; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inv.InvPreinDetailEntity; import com.glxp.api.entity.inv.InvProductDetailEntity; import com.glxp.api.req.inv.FilterInvPreinDetailRequest; import com.glxp.api.req.inv.FilterInvPreinRequest; import com.glxp.api.req.inv.FilterInvProductDetailRequest; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.inv.InvPreinDetailResponse; import com.glxp.api.res.inv.InvPreinOrderResponse; import com.glxp.api.service.inv.InvPreProductDetailService; import com.glxp.api.service.inv.InvPreinDetailService; import com.glxp.api.service.inv.InvPreinOrderService; import com.glxp.api.util.udi.FilterUdiUtils; import lombok.extern.slf4j.Slf4j; import org.apache.regexp.RE; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; @Slf4j @RestController public class InvPreinOrderController extends BaseController { @Resource InvPreinOrderService invPreinOrderService; @Resource InvPreinDetailService invPreinDetailService; @GetMapping("/udiwms/inv/prein/filter") public BaseResponse filterOrder(FilterInvPreinRequest filterInvPreinRequest) { List list = invPreinOrderService.filterList(filterInvPreinRequest); PageInfo pageInfo = new PageInfo<>(list); return ResultVOUtils.page(pageInfo); } @GetMapping("/udiwms/inv/prein/detail") public BaseResponse filterDetail(FilterInvPreinDetailRequest filterInvPreinDetailRequest) { List list = invPreinDetailService.filterList(filterInvPreinDetailRequest); PageInfo pageInfo = new PageInfo<>(list); return ResultVOUtils.page(pageInfo); } @AuthRuleAnnotation("") @PostMapping("udiwms/inv/prein/delete") public BaseResponse deletById(@RequestBody DeleteRequest deleteRequest) { if (StrUtil.isEmpty(deleteRequest.getBillNo())) return ResultVOUtils.error(500, "单据号不能为空"); invPreinOrderService.deleteByOrderId(deleteRequest.getBillNo()); invPreinDetailService.deleteByOrderId(deleteRequest.getBillNo()); return ResultVOUtils.success("删除成功!"); } @AuthRuleAnnotation("") @GetMapping("spms/prein/inv/products/getDetaiByCode") public BaseResponse getDetaiByCode(FilterInvProductDetailRequest filterInvProductDetailRequest) { InvPreinDetailEntity invProductDetailEntity = invPreinDetailService.findOneByCode(filterInvProductDetailRequest.getCode()); if (invProductDetailEntity == null) { return ResultVOUtils.error(500, "预验收库存未存在此产品!"); } else { if (StrUtil.isNotEmpty(invProductDetailEntity.getBatchNo()) && StrUtil.isNotEmpty(filterInvProductDetailRequest.getBatchNo()) && !invProductDetailEntity.getBatchNo().equals(filterInvProductDetailRequest.getBatchNo())) { return ResultVOUtils.error(500, "当前批次号与预验收录入批次号不匹配!"); } UdiEntity udiEntity = FilterUdiUtils.getUdi(filterInvProductDetailRequest.getCode()); if (StrUtil.isEmpty(udiEntity.getSerialNo())) {//该单据已有该产品 //无序列号,则可能存在多个预验收入库单 List invPreinDetailEntities = invPreinDetailService.findByCode(filterInvProductDetailRequest.getCode()); int count = 0; for (InvPreinDetailEntity temp : invPreinDetailEntities) { count = count + temp.getCount(); } invPreinDetailEntities.get(0).setCount(count); return ResultVOUtils.success(invPreinDetailEntities.get(0)); } else { if (invProductDetailEntity.getCount() < 1) { return ResultVOUtils.error(500, "超出预验收库存数量"); } } } return ResultVOUtils.success(invProductDetailEntity); } }