package com.glxp.api.controller.inv; import cn.hutool.core.collection.CollUtil; import com.github.pagehelper.PageInfo; import com.glxp.api.annotation.AuthRuleAnnotation; import com.glxp.api.annotation.RepeatSubmit; import com.glxp.api.common.res.BaseResponse; import com.glxp.api.common.util.ResultVOUtils; import com.glxp.api.constant.Constant; import com.glxp.api.entity.inv.InnerOrderDetailEntity; import com.glxp.api.entity.inv.InnerOrderEntity; import com.glxp.api.req.inv.InnerOrderDetailRequest; import com.glxp.api.req.inv.InnerOrderRequest; import com.glxp.api.req.inv.PostInnerOrderRequest; import com.glxp.api.res.PageSimpleResponse; import com.glxp.api.res.inv.innerOrderDetailResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.inv.InnerOrderDetailService; import com.glxp.api.service.inv.InnerOrderService; import com.glxp.api.util.GennerOrderUtils; import com.glxp.api.util.OrderNoTypeBean; import lombok.RequiredArgsConstructor; import org.springframework.beans.BeanUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.constraints.NotEmpty; import java.util.Arrays; import java.util.Date; import java.util.List; /** * pur * * @author anthony.ywj * @date 2022-10-12 */ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/inv/inner/order") public class InnerOrderController { @Resource InnerOrderService innerOrderService; @Resource InnerOrderDetailService innerOrderDetailService; @Resource CustomerService customerService; @Resource GennerOrderUtils gennerOrderUtils; /** * 新增内部码打印单 */ @RepeatSubmit() @AuthRuleAnnotation("") @PostMapping("/postOrder") public BaseResponse postOrder(@RequestBody PostInnerOrderRequest postInnerOrderRequest) { long userId = customerService.getUserId(); InnerOrderEntity innerOrderEntity = postInnerOrderRequest.getInnerOrderEntity(); innerOrderEntity.setCreateUser(userId + ""); innerOrderEntity.setCreateTime(new Date()); innerOrderEntity.setUpdateTime(new Date()); innerOrderEntity.setStatus(postInnerOrderRequest.getEditStatus()); //草稿状态 if (innerOrderEntity.getId() == null) { String billNo = gennerOrderUtils.createStOrderNo(new OrderNoTypeBean(Constant.NBM_ORDER, "yyyyMMdd")); innerOrderEntity.setRecordKey(billNo); innerOrderEntity.setPrintStatus(1); innerOrderEntity.setGenStatus(1); innerOrderService.insert(innerOrderEntity); } else { innerOrderService.update(innerOrderEntity); } return ResultVOUtils.success(innerOrderEntity.getId()); } /** * 查询内部码打印单列表 */ @GetMapping("/list") public BaseResponse list(InnerOrderRequest innerOrderRequest) { List innerOrderEntities = innerOrderService.queryPageList(innerOrderRequest); PageInfo pageInfo; pageInfo = new PageInfo<>(innerOrderEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(innerOrderEntities); return ResultVOUtils.success(pageSimpleResponse); } /** * 新增内部码打印单 */ @RepeatSubmit() @PostMapping() public BaseResponse add(@RequestBody InnerOrderEntity innerOrderEntity) { innerOrderService.insert(innerOrderEntity); return ResultVOUtils.success("新增成功!"); } /** * 修改内部码打印单 */ @RepeatSubmit() @PutMapping() public BaseResponse edit(@RequestBody InnerOrderEntity innerOrderEntity) { innerOrderService.update(innerOrderEntity); return ResultVOUtils.success("删除成功"); } /** * 删除内部码打印单 * * @param ids 主键串 */ @DeleteMapping("/{ids}") public BaseResponse remove(@NotEmpty(message = "主键不能为空") @PathVariable String[] ids) { List idArray = Arrays.asList(ids); if (CollUtil.isNotEmpty(idArray)) { innerOrderService.deleteByIds(idArray); for (String id : idArray) { innerOrderDetailService.deleteByOrderId(id + ""); } } return ResultVOUtils.success("删除成功"); } /** * 查询内部码打印单列表 */ @PostMapping("/list/detail") public BaseResponse detailList(@RequestBody InnerOrderDetailRequest innerOrderDetailRequest) { List purApplyDetailEntities = innerOrderDetailService.joinQueryList(innerOrderDetailRequest); PageInfo pageInfo; pageInfo = new PageInfo<>(purApplyDetailEntities); PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); pageSimpleResponse.setTotal(pageInfo.getTotal()); pageSimpleResponse.setList(purApplyDetailEntities); return ResultVOUtils.success(pageSimpleResponse); } /** * 新增内部码打印单 */ @RepeatSubmit() @PostMapping("/insertDetail") public BaseResponse detailAdd(@RequestBody InnerOrderDetailEntity innerOrderDetailEntity) { innerOrderDetailService.insert(innerOrderDetailEntity); return ResultVOUtils.success(""); } /** * 修改内部码打印单 */ @RepeatSubmit() @PostMapping("/updateDetail") public BaseResponse detailEdit(@RequestBody InnerOrderDetailEntity innerOrderDetailEntity) { innerOrderDetailService.update(innerOrderDetailEntity); return ResultVOUtils.success("更新成功"); } /** * 删除内部码打印单 * * @param ids 主键串 */ @DeleteMapping("/detail/{ids}") public BaseResponse detailRemove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { innerOrderDetailService.deleteByIds(Arrays.asList(ids)); return ResultVOUtils.success("删除成功"); } }