package com.glxp.api.controller.inout; import cn.hutool.core.util.StrUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.common.enums.ResultEnum; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.ConstantStatus; import com.glxp.api.entity.basic.BasicBussinessTypeEntity; import com.glxp.api.entity.inout.IoCodeTempEntity; import com.glxp.api.entity.inout.IoOrderDetailBizEntity; import com.glxp.api.entity.inout.IoOrderDetailCodeEntity; import com.glxp.api.entity.inout.IoOrderEntity; import com.glxp.api.req.inout.AddOrderRequest; import com.glxp.api.req.inout.FilterOrderRequest; import com.glxp.api.req.system.DeleteRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inout.IoOrderResponse; import com.glxp.api.service.basic.IBasicBussinessTypeService; import com.glxp.api.service.inout.*; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.BindingResult; 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.Date; import java.util.List; @Slf4j @RestController public class IoOrderController { @Resource private IoOrderService orderService; @Resource private IBasicBussinessTypeService basicBussinessTypeService; @Resource private IoCodeTempService codeTempService; @Resource private IoCheckInoutService checkInoutService; /** * 查询单据列表 * * @param filterOrderRequest * @param bindingResult * @return */ @GetMapping("/udiwms/inout/order/filter") public BaseResponse filterOrder(FilterOrderRequest filterOrderRequest, BindingResult bindingResult) { if (bindingResult.hasErrors()) { return ResultVOUtils.error(ResultEnum.PARAM_VERIFY_FALL, bindingResult.getFieldError().getDefaultMessage()); } List list = orderService.filterList(filterOrderRequest); PageInfo pageInfo = new PageInfo<>(list); return ResultVOUtils.page(pageInfo); } @AuthRuleAnnotation("") @GetMapping("udiwms/inout/order/draft") public BaseResponse getDrafts() { List orderEntityList = orderService.selectAll(); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(100l); pageSimpleResponse.setList(orderEntityList); return ResultVOUtils.success(pageSimpleResponse); } //草稿保存 @AuthRuleAnnotation("") @PostMapping("warehouse/inout/saveOrderWeb") public BaseResponse saveOrderWeb(@RequestBody AddOrderRequest addOrderRequest) { IoOrderEntity orderEntity = new IoOrderEntity(); orderEntity.setAction(addOrderRequest.getAction()); BasicBussinessTypeEntity bussinessTypeEntity = basicBussinessTypeService.findByAction(addOrderRequest.getAction()); orderEntity.setMainAction(bussinessTypeEntity.getMainAction()); orderEntity.setFromCorp(addOrderRequest.getFromCorp()); orderEntity.setFromInvCode(addOrderRequest.getFromInvCode()); orderEntity.setDeptCode(addOrderRequest.getDeptCode()); orderEntity.setInvCode(addOrderRequest.getInvCode()); orderService.updateByBillNo(orderEntity); IoCodeTempEntity warehouseEntity = new IoCodeTempEntity(); warehouseEntity.setOrderId(orderEntity.getBillNo()); warehouseEntity.setAction(orderEntity.getAction()); warehouseEntity.setMainAction(orderEntity.getMainAction()); warehouseEntity.setDeptCode(orderEntity.getDeptCode()); warehouseEntity.setInvCode(orderEntity.getInvCode()); codeTempService.updateByOrderId(warehouseEntity); return ResultVOUtils.success("保存成功!"); } @Resource IoOrderDetailBizService orderDetailBizService; @Resource IoOrderDetailCodeService orderDetailCodeService; //单据提交 @AuthRuleAnnotation("") @GetMapping("warehouse/inout/submitOrderWeb") public BaseResponse submitOrderWeb(AddOrderRequest addOrderRequest) { //校验单据是否已完成 List orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo()); List orderDetailCodeEntities = orderDetailCodeService.findByOrderId(addOrderRequest.getBillNo()); String errMsg = checkInoutService.bizOrderCheck(orderDetailBizEntities, orderDetailCodeEntities); if (StrUtil.isNotEmpty(errMsg)) { return ResultVOUtils.error(500, "单据未校验完成,请检查后重新提交!"); } saveOrderWeb(addOrderRequest); checkInoutService.check(addOrderRequest.getBillNo()); return ResultVOUtils.success("提交成功!"); } //未校验单据删除 @AuthRuleAnnotation("") @PostMapping("udiwms/inout/order/delete") public BaseResponse deletById(@RequestBody DeleteRequest deleteRequest) { orderService.deleteByBillNo(deleteRequest.getBillNo()); orderDetailBizService.deleteByOrderId(deleteRequest.getBillNo()); orderDetailCodeService.deleteByOrderId(deleteRequest.getBillNo()); codeTempService.deleteByBillNo(deleteRequest.getBillNo()); return ResultVOUtils.success("删除成功!"); } }