package com.example.erp.controller.mm; import cn.dev33.satoken.annotation.SaCheckPermission; import com.example.erp.common.Constants; import com.example.erp.common.Result; import com.example.erp.dto.mm.FinishedOperateLogDTO; import com.example.erp.entity.mm.FinishedOperateLog; import com.example.erp.entity.pp.FlowCard; import com.example.erp.entity.sd.Order; import com.example.erp.entity.sd.OrderDetail; import com.example.erp.exception.ServiceException; import com.example.erp.service.mm.FinishedGoodsInventoryService; import com.example.erp.tools.DownExcel; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.example.erp.entity.mm.FinishedGoodsInventory; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.time.LocalDate; import java.util.List; import java.util.Map; @RestController @RequestMapping("/finishedGoodsInventory") @Api(value="成品库存controller",tags={"成品库存操作接口"}) public class FinishedGoodsInventoryController { @Autowired FinishedGoodsInventoryService finishedGoodsInventoryService; /*成品库存查询*/ @ApiOperation("成品库存查询接口") @SaCheckPermission("productStockList.search") @PostMapping("/getSelect/{pageNum}/{pageSize}") public Result defaultDateFinishedGoodsInventory(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody FinishedGoodsInventory finishedGoodsInventory){ return Result.seccess(finishedGoodsInventoryService.defaultDateFinishedGoodsInventory(pageNum,pageSize,finishedGoodsInventory)); } /*查询可入库的成品数据*/ @ApiOperation("可入库的成品查询接口") @SaCheckPermission("createProductStock.search") @PostMapping("/getSelectWarehousing/{pageNum}/{pageSize}") public Result getSelectWarehousing(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody FlowCard flowCard){ return Result.seccess(finishedGoodsInventoryService.getSelectWarehousing(pageNum,pageSize,flowCard)); } /*成品入库*/ @ApiOperation("成品入库接口") @SaCheckPermission("createProductStock.add") @PostMapping("/addSelectWarehousing") public Result addSelectWarehousing( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.addSelectWarehousing(object)); } /*查询可发货的成品数据*/ @ApiOperation("可发货的成品查询接口") @SaCheckPermission("finishedProductOut.search") @PostMapping("/getSelectDeliveryDetail/{pageNum}/{pageSize}") public Result getSelectDeliveryDetail(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody OrderDetail orderDetail){ return Result.seccess(finishedGoodsInventoryService.getSelectDeliveryDetail(pageNum,pageSize,orderDetail)); } /*成品发货*/ @ApiOperation("成品发货接口") @SaCheckPermission("finishedProductOut.add") @PostMapping("/addDeliveryDetail") public Result addDeliveryDetail( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.addDeliveryDetail(object)); } /* 调拨查询*/ @ApiOperation("可调拨数据查询接口") @SaCheckPermission("orderAllocation.search") @PostMapping("/getSelectAllocate/{pageNum}/{pageSize}") public Result getSelectAllocate(@PathVariable Integer pageNum, @PathVariable Integer pageSize, @RequestBody OrderDetail orderDetail){ return Result.seccess(finishedGoodsInventoryService.getSelectAllocate(pageNum,pageSize,orderDetail)); } /*订单调拨*/ @ApiOperation("订单调拨接口") @SaCheckPermission("orderAllocation.add") @PostMapping("/updateFinishedGoodsInventoryAllocate") public Result updateFinishedGoodsInventoryAllocate( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.updateFinishedGoodsInventoryAllocate(object)); } /*调拨记录查询*/ @ApiOperation("调拨记录查询接口") @SaCheckPermission("transferRecord.search") @PostMapping("/getSelectAllocateFinishedOperateLog/{pageNum}/{pageSize}/{selectDate}") public Result getSelectAllocateFinishedOperateLog(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List selectDate, @RequestBody FinishedOperateLog finishedOperateLog){ return Result.seccess(finishedGoodsInventoryService.getSelectAllocateFinishedOperateLog(pageNum,pageSize,selectDate,finishedOperateLog)); } /*订单领出*/ @ApiOperation("订单领出接口") @SaCheckPermission("finishedGoodsIssue.add") @PostMapping("/updateFinishedGoodsInventoryTakeOut") public Result updateFinishedGoodsInventoryTakeOut( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.updateFinishedGoodsInventoryTakeOut(object)); } /*领出记录查询*/ @ApiOperation("领出记录查询接口") @SaCheckPermission("takeOutRecord.search") @PostMapping("/getSelectOperateRecord/{pageNum}/{pageSize}/{selectDate}") public Result getSelectOperateRecord(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List selectDate, @RequestBody FinishedOperateLog finishedOperateLog){ return Result.seccess(finishedGoodsInventoryService.getSelectOperateRecord(pageNum,pageSize,selectDate,finishedOperateLog)); } /*订单返工*/ @ApiOperation("订单返工查询接口") @PostMapping("/updateFinishedGoodsInventoryRework") public Result updateFinishedGoodsInventoryRework( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.updateFinishedGoodsInventoryRework(object)); } /*订单审核*/ @ApiOperation("订单审核接口") @SaCheckPermission("takeOutRecord.review") @PostMapping("/updateFinishedGoodsInventoryToExamine") public Result updateFinishedGoodsInventoryToExamine( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.updateFinishedGoodsInventoryToExamine(object,"审核")); } /*订单反审*/ @ApiOperation("订单反审接口") @SaCheckPermission("takeOutRecord.review") @PostMapping("/updateFinishedGoodsInventoryCounterExamination") public Result updateFinishedGoodsInventoryCounterExamination( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.updateFinishedGoodsInventoryToExamine(object,"反审")); } /*订单作废*/ @ApiOperation("订单作废接口") @SaCheckPermission("takeOutRecord.update") @PostMapping("/cancelFinishedGoodsInventoryToExamine") public Result cancelFinishedGoodsInventoryToExamine( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.cancelFinishedGoodsInventoryToExamine(object)); } /*出入库记录查询*/ @ApiOperation("出入库记录查询接口") @SaCheckPermission("storageRecord.search") @PostMapping("/getSelectStorageRecord/{pageNum}/{pageSize}/{selectDate}/{type}") public Result getSelectStorageRecord(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List selectDate,@PathVariable String type, @RequestBody FinishedOperateLog finishedOperateLog){ return Result.seccess(finishedGoodsInventoryService.getSelectStorageRecord(pageNum,pageSize,selectDate,type,finishedOperateLog)); } /*出入库返回*/ @ApiOperation("出入库返回接口") @SaCheckPermission("storageRecord.update") @PostMapping("/cancelFinishedGoodsInventoryStorage") public Result cancelFinishedGoodsInventoryStorage( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.cancelFinishedGoodsInventoryStorage(object)); } @ApiOperation("成品库存记录查询接口") @SaCheckPermission("warehouseReport.search") @PostMapping("/getSelectFinishedOperateLogReport/{type}/{pageNum}/{pageSize}/{selectDate}") public Result getSelectFinishedOperateLogReport(@PathVariable String type,@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List selectDate, @RequestBody FinishedOperateLog finishedOperateLog){ return Result.seccess(finishedGoodsInventoryService.getSelectFinishedOperateLogReport(type,pageNum,pageSize,selectDate,finishedOperateLog)); } @ApiOperation("成品报表导出") @PostMapping("/exportFinishedOperateLogReport/{type}") public void exportFinishedOperateLogReport(@PathVariable String type,HttpServletResponse response, @RequestBody List dates) throws IOException, IllegalAccessException, InstantiationException { //参数:相应的数据,实体类信息,相应的方法(数据获取),生成的excel名字 DownExcel.download(response, FinishedOperateLogDTO.class, finishedGoodsInventoryService.exportFinishedOperateLogReport(dates,type),"orderReport"); } /*订单一键入库*/ @ApiOperation("订单一键入库") @SaCheckPermission("createProductStock.add") @PostMapping("/oneClickStorage/{orderId}/{userName}") public Result oneClickStorage( @PathVariable String orderId,@PathVariable String userName){ return Result.seccess(finishedGoodsInventoryService.oneClickStorage(orderId,userName)); } /*装箱打印查询*/ @ApiOperation("装箱打印查询接口") @SaCheckPermission("storageRecordPint.search") @PostMapping("/getSelectStorageRecordPint/{pageNum}/{pageSize}/{selectDate}") public Result getSelectStorageRecordPint(@PathVariable Integer pageNum, @PathVariable Integer pageSize,@PathVariable List selectDate, @RequestBody FinishedOperateLog finishedOperateLog){ return Result.seccess(finishedGoodsInventoryService.getSelectStorageRecordPint(pageNum,pageSize,selectDate,finishedOperateLog)); } /*装箱打印查询*/ @ApiOperation("装箱打印内容查询接口") @SaCheckPermission("storageRecordPint.search") @PostMapping("/getSelectPrint") public Result getSelectPrint( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.getSelectPrintSv(object)); } /*装箱打印查询*/ @ApiOperation("装箱打印内容查询接口") @SaCheckPermission("storageRecordPint.search") @PostMapping("/getSelectPrints") public Result getSelectPrints( @RequestBody Map object){ return Result.seccess(finishedGoodsInventoryService.getSelectPrintSvs(object)); } @ApiOperation("成品装箱调架") @SaCheckPermission("createProductStock.add") @PostMapping("/changeRack/{user}") public Result changeRack( @RequestBody FinishedGoodsInventory finishedGoodsInventory,@PathVariable String user){ return Result.seccess(finishedGoodsInventoryService.changeRack(finishedGoodsInventory,user)); } }