You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
udi-wms-java/src/main/java/com/glxp/api/controller/inout/IoOrderController.java

136 lines
5.5 KiB
Java

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<IoOrderResponse> list = orderService.filterList(filterOrderRequest);
PageInfo<IoOrderResponse> pageInfo = new PageInfo<>(list);
return ResultVOUtils.page(pageInfo);
}
@AuthRuleAnnotation("")
@GetMapping("udiwms/inout/order/draft")
public BaseResponse getDrafts() {
List<IoOrderEntity> orderEntityList = orderService.selectAll();
PageSimpleResponse<IoOrderEntity> 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<IoOrderDetailBizEntity> orderDetailBizEntities = orderDetailBizService.findByOrderId(addOrderRequest.getBillNo());
List<IoOrderDetailCodeEntity> 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("删除成功!");
}
}