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.Log; 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.BusinessType; 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.inout.FilterOrderDetailBizRequest; 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.inout.IoOrderDetailBizResponse; import com.glxp.api.res.inv.innerOrderDetailResponse; import com.glxp.api.service.auth.CustomerService; import com.glxp.api.service.inout.IoOrderDetailBizService; 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; @Resource IoOrderDetailBizService ioOrderDetailBizService; /** * 新增内部码打印单 */ @RepeatSubmit() @AuthRuleAnnotation("") @PostMapping("/postOrder") @Log(title = "内部码", businessType = BusinessType.INSERT) 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); } /** * 查询内部码打印单列表 */ @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() @Log(title = "内部码", businessType = BusinessType.INSERT) public BaseResponse add(@RequestBody InnerOrderEntity innerOrderEntity) { innerOrderService.insert(innerOrderEntity); return ResultVOUtils.success("新增成功!"); } /** * 修改内部码打印单 */ @RepeatSubmit() @PutMapping() @Log(title = "内部码", businessType = BusinessType.UPDATE) public BaseResponse edit(@RequestBody InnerOrderEntity innerOrderEntity) { innerOrderService.update(innerOrderEntity); return ResultVOUtils.success("删除成功"); } /** * 删除内部码打印单 * * @param ids 主键串 */ @DeleteMapping("/{ids}") @Log(title = "内部码", businessType = BusinessType.DELETE) 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") @Log(title = "内部码", businessType = BusinessType.INSERT) public BaseResponse detailAdd(@RequestBody InnerOrderDetailEntity innerOrderDetailEntity) { innerOrderDetailService.insert(innerOrderDetailEntity); return ResultVOUtils.success(""); } /** * 新增内部码打印单 */ @RepeatSubmit() @PostMapping("/orderDetailAdd") @Log(title = "内部码", businessType = BusinessType.INSERT) public BaseResponse orderDetailAdd(@RequestBody InnerOrderDetailRequest innerOrderDetailRequest) { InnerOrderDetailEntity innerOrderDetailEntity=new InnerOrderDetailEntity(); //查询业务单 FilterOrderDetailBizRequest filterOrderDetailBizRequest=new FilterOrderDetailBizRequest(); filterOrderDetailBizRequest.setOrderIdFk(innerOrderDetailRequest.getBillNo()); List ioOrderDetailBizResponseList = ioOrderDetailBizService.filterList(filterOrderDetailBizRequest); for (IoOrderDetailBizResponse ioOrderDetailBizResponse : ioOrderDetailBizResponseList) { innerOrderDetailEntity.setOrderIdFk(innerOrderDetailRequest.getOrderIdFk()); innerOrderDetailEntity.setProductId(ioOrderDetailBizResponse.getBindRlFk()+""); innerOrderDetailEntity.setProductName(ioOrderDetailBizResponse.getCoName()); innerOrderDetailEntity.setProductDate(ioOrderDetailBizResponse.getProductDate()); innerOrderDetailEntity.setExpireDate(ioOrderDetailBizResponse.getExpireDate()); innerOrderDetailEntity.setBatchNo(ioOrderDetailBizResponse.getBatchNo()); innerOrderDetailEntity.setCount(ioOrderDetailBizResponse.getCount()); innerOrderDetailService.insert(innerOrderDetailEntity); } return ResultVOUtils.success(""); } /** * 修改内部码打印单 */ @RepeatSubmit() @PostMapping("/updateDetail") @Log(title = "内部码", businessType = BusinessType.UPDATE) public BaseResponse detailEdit(@RequestBody InnerOrderDetailEntity innerOrderDetailEntity) { innerOrderDetailService.update(innerOrderDetailEntity); return ResultVOUtils.success("更新成功"); } /** * 删除内部码打印单 * * @param ids 主键串 */ @DeleteMapping("/detail/{ids}") @Log(title = "内部码", businessType = BusinessType.DELETE) public BaseResponse detailRemove(@NotEmpty(message = "主键不能为空") @PathVariable Long[] ids) { innerOrderDetailService.deleteByIds(Arrays.asList(ids)); return ResultVOUtils.success("删除成功"); } }