gongchunyi
2026-04-27 0be02df3d287f802c76e5738916301a877dfaa0e
src/main/java/com/ruoyi/production/controller/ProductionProductMainController.java
@@ -3,18 +3,20 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.framework.web.domain.R;
import com.ruoyi.production.dto.ProductProcessRouteItemDto;
import com.ruoyi.production.dto.ProductionProductMainDto;
import com.ruoyi.production.dto.SalesLedgerProductionAccountingDto;
import com.ruoyi.production.dto.ProductionReportDailySummaryDto;
import com.ruoyi.production.dto.ProductionReportStateDto;
import com.ruoyi.production.pojo.ProductionProductMain;
import com.ruoyi.production.service.ProductionProductMainService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.util.Arrays;
import java.time.LocalDate;
import java.util.List;
@RequestMapping("productionProductMain")
@@ -31,9 +33,48 @@
     * @param productionProductMainDto
     * @return
     */
    @ApiOperation("报工台账汇总分页(当前登录人)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "current", value = "页码", dataType = "long", paramType = "query"),
            @ApiImplicitParam(name = "size", value = "每页数量", dataType = "long", paramType = "query"),
            @ApiImplicitParam(name = "workOrderNo", value = "工单编号(模糊)", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "workOrderStatus", value = "工单状态", dataType = "string", paramType = "query")
    })
    @GetMapping("listPage")
    public R page(Page<ProductionProductMainDto> page, ProductionProductMainDto productionProductMainDto) {
    public R<?> page(Page<ProductionProductMainDto> page, ProductionProductMainDto productionProductMainDto) {
        return R.ok(productionProductMainService.listPageProductionProductMainDto(page, productionProductMainDto));
    }
    /**
     * 报工明细查询(每条报工记录)
     */
    @ApiOperation("报工明细分页(每条报工记录, 当前登录人)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "current", value = "页码", dataType = "long", paramType = "query"),
            @ApiImplicitParam(name = "size", value = "每页数量", dataType = "long", paramType = "query"),
            @ApiImplicitParam(name = "workOrderId", value = "工单ID(建议必传)", dataType = "long", paramType = "query"),
            @ApiImplicitParam(name = "startDate", value = "开始日期(按结束时间过滤, yyyy-MM-dd)", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "endDate", value = "结束日期(按结束时间过滤, yyyy-MM-dd)", dataType = "string", paramType = "query")
    })
    @GetMapping("listPageDetail")
    public R<?> pageDetail(Page<ProductionProductMainDto> page, ProductionProductMainDto productionProductMainDto) {
        return R.ok(productionProductMainService.listPageProductionProductMainDetailDto(page, productionProductMainDto));
    }
    /**
     * 报工明细汇总(每个人员每天)
     */
    @ApiOperation("报工每日汇总分页(每人每天, 当前登录人)")
    @ApiImplicitParams({
            @ApiImplicitParam(name = "current", value = "页码", dataType = "long", paramType = "query"),
            @ApiImplicitParam(name = "size", value = "每页数量", dataType = "long", paramType = "query"),
            @ApiImplicitParam(name = "workOrderId", value = "工单ID(建议必传)", dataType = "long", paramType = "query"),
            @ApiImplicitParam(name = "startDate", value = "开始日期(report_date, yyyy-MM-dd)", dataType = "string", paramType = "query"),
            @ApiImplicitParam(name = "endDate", value = "结束日期(report_date, yyyy-MM-dd)", dataType = "string", paramType = "query")
    })
    @GetMapping("listPageDaily")
    public R<?> pageDaily(Page<ProductionProductMainDto> page, ProductionProductMainDto productionProductMainDto) {
        return R.ok(productionProductMainService.listPageProductionProductMainDailyDto(page, productionProductMainDto));
    }
    /**
@@ -42,13 +83,41 @@
     * @return
     */
    @PostMapping("addProductMain")
    public R addProductMain(@RequestBody ProductionProductMainDto productionProductMainDto) {
    public R<?> addProductMain(@RequestBody ProductionProductMainDto productionProductMainDto) {
        return R.ok(productionProductMainService.addProductMain(productionProductMainDto));
    }
    /**
     * 扫码后查询当前用户是否存在进行中的报工
     */
    @ApiOperation("查询进行中的报工(当前登录人)")
    @GetMapping("getRunning")
    public R<ProductionProductMain> getRunning(Long workOrderId, Long productProcessRouteItemId) {
        ProductionProductMain productionProductMain = productionProductMainService.getRunning(workOrderId, productProcessRouteItemId);
        return R.ok(productionProductMain);
    }
    /**
     * 每日报工时长汇总(当前登录人)
     */
    @ApiOperation("每日报工时长汇总(当前登录人)")
    @GetMapping("dailyDuration")
    public R<List<ProductionReportDailySummaryDto>> dailyDuration(Long workOrderId, Long productProcessRouteItemId, LocalDate startDate, LocalDate endDate) {
        return R.ok(productionProductMainService.dailyDuration(workOrderId, productProcessRouteItemId, startDate, endDate));
    }
    /**
     * 查询报工状态: 1-开始报工 2-结束报工
     */
    @ApiOperation("查询报工状态(当前登录人)")
    @GetMapping("reportState")
    public R<ProductionReportStateDto> reportState(Long workOrderId, Long productProcessRouteItemId) {
        return R.ok(productionProductMainService.reportState(workOrderId, productProcessRouteItemId));
    }
    @ApiOperation("删除报工")
    @DeleteMapping("/delete")
    public R delete(@RequestBody ProductionProductMainDto productionProductMainDto) {
    public R<?> delete(@RequestBody ProductionProductMainDto productionProductMainDto) {
        return R.ok(productionProductMainService.removeProductMain(productionProductMainDto.getId()));
    }