package com.ruoyi.production.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.framework.web.domain.R; import com.ruoyi.common.utils.poi.ExcelUtil; import com.ruoyi.framework.aspectj.lang.annotation.Log; import com.ruoyi.framework.aspectj.lang.enums.BusinessType; import com.ruoyi.production.bean.dto.ProductionAccountDetailExportDto; import com.ruoyi.production.bean.dto.ProductionAccountDto; import com.ruoyi.production.bean.dto.ProductionProductMainDto; import com.ruoyi.production.service.ProductionAccountService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.RequiredArgsConstructor; import jakarta.servlet.http.HttpServletResponse; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RequestBody; /** *

* 生产核算表 前端控制器 *

*/ @RestController @RequestMapping("/productionAccount") @RequiredArgsConstructor @Tag(name = "生产核算") public class ProductionAccountController { private final ProductionAccountService productionAccountService; @GetMapping("/listPage") @Log(title = "生产核算-分页查询", businessType = BusinessType.OTHER) @Operation(summary = "生产核算分页查询") public R> listPage(Page page, ProductionAccountDto dto) { return R.ok(productionAccountService.listPage(page, dto)); } @GetMapping("/listProductionDetails") @Log(title = "生产核算-工资明细查询", businessType = BusinessType.OTHER) @Operation(summary ="查询工人生产工资信息") public R> listProductionDetails(ProductionAccountDto productionAccountDto, Page page) { return R.ok(productionAccountService.listProductionDetails(productionAccountDto,page)); } @PostMapping("/batchAccounting") @Log(title = "生产核算-批量核算", businessType = BusinessType.UPDATE) @Operation(summary = "批量核算") public R batchAccounting(@RequestBody ProductionAccountDto dto) { return R.ok(productionAccountService.batchAccounting(dto)); } @PostMapping("/singleAdjust") @Log(title = "生产核算-单个修正", businessType = BusinessType.UPDATE) @Operation(summary = "单个修正") public R singleAdjust(@RequestBody ProductionAccountDto dto) { return R.ok(productionAccountService.singleAdjust(dto)); } @PostMapping("/exportSalarySlip") @Log(title = "生产核算-导出工资条", businessType = BusinessType.EXPORT) @Operation(summary = "导出工资条") public void exportSalarySlip(HttpServletResponse response, ProductionAccountDto dto) { ExcelUtil util = new ExcelUtil<>(ProductionAccountDetailExportDto.class); util.exportExcel(response, productionAccountService.listProductionDetails(dto, new Page<>(1, Integer.MAX_VALUE)) .getRecords() .stream() .map(item -> { ProductionAccountDetailExportDto exportDto = new ProductionAccountDetailExportDto(); exportDto.setReportNo(item.getReportNo()); exportDto.setSchedulingDate(item.getSchedulingDate()); exportDto.setSchedulingUserName(item.getSchedulingUserName()); exportDto.setAuditStatusName(item.getAuditStatusName()); exportDto.setReportTypeName(item.getReportTypeName()); exportDto.setSalesContractNo(item.getSalesContractNo()); exportDto.setProductName(item.getProductName()); exportDto.setProductModelName(item.getProductModelName()); exportDto.setUnit(item.getUnit()); exportDto.setProcess(item.getProcess()); exportDto.setWorkOrderNo(item.getWorkOrderNo()); exportDto.setWorkHour(item.getWorkHour()); exportDto.setQuantity(item.getQuantity()); exportDto.setWorkHours(item.getWorkHours()); exportDto.setOriginalWages(item.getOriginalWages()); exportDto.setAdjustAmount(item.getAdjustAmount()); exportDto.setWages(item.getWages()); return exportDto; }) .toList(), "生产工资条"); } }