evoToK3Cloud/ruoyi-system/src/main/java/com/ruoyi/system/controller/SfcOperationPlanningMainController.java
2026-08-11 14:29:31 +08:00

167 lines
6.3 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package com.ruoyi.system.controller;
import java.util.List;
import java.util.Arrays;
import lombok.RequiredArgsConstructor;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.*;
import cn.dev33.satoken.annotation.SaCheckPermission;
import org.springframework.web.bind.annotation.*;
import org.springframework.validation.annotation.Validated;
import com.ruoyi.common.annotation.RepeatSubmit;
import com.ruoyi.common.annotation.Log;
import com.ruoyi.common.core.controller.BaseController;
import com.ruoyi.common.core.domain.PageQuery;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import com.ruoyi.common.enums.BusinessType;
import com.ruoyi.common.utils.poi.ExcelUtil;
import com.ruoyi.system.domain.vo.SfcOperationPlanningMainVo;
import com.ruoyi.system.domain.bo.SfcOperationPlanningMainBo;
import com.ruoyi.system.service.ISfcOperationPlanningMainService;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.system.domain.dto.OperationPlanResultDTO;
import com.ruoyi.system.domain.dto.OperationPlanningUpdateOperatorsReq;
/**
* 工序计划主
*
* @author ruoyi
* @date 2026-04-10
*/
@Validated
@RequiredArgsConstructor
@RestController
@RequestMapping("/system/operationPlanningMain")
public class SfcOperationPlanningMainController extends BaseController {
private final ISfcOperationPlanningMainService iSfcOperationPlanningMainService;
/**
* 同步工序计划数据
*/
@SaCheckPermission("system:operationPlanningMain:sync")
@Log(title = "工序计划数据同步", businessType = BusinessType.INSERT)
@PostMapping("/sync")
public R<Void> syncData() {
return toAjax(iSfcOperationPlanningMainService.syncOperationPlanning());
}
/**
* 直接从K3查询工序计划数据不入库测试
*/
@SaCheckPermission("system:operationPlanningMain:queryK3")
@GetMapping("/queryFromK3")
public R<List<OperationPlanResultDTO>> queryFromK3() {
return R.ok(iSfcOperationPlanningMainService.queryFromK3Directly());
}
/**
* 分页查询工序计划主及明细级联数据
*/
@SaCheckPermission("system:operationPlanningMain:list")
@GetMapping("/cascadeList")
public TableDataInfo<OperationPlanResultDTO> cascadeList(SfcOperationPlanningMainBo bo, PageQuery pageQuery) {
return iSfcOperationPlanningMainService.queryCascadePageList(bo, pageQuery);
}
/**
* 导出工序进度(按生产令号分 Sheet过滤已完工/已关闭)
*/
@SaCheckPermission("system:operationPlanningMain:export")
@Log(title = "工序计划进度导出", businessType = BusinessType.EXPORT)
@PostMapping("/exportCascadeProgress")
public void exportCascadeProgress(SfcOperationPlanningMainBo bo, HttpServletResponse response) {
iSfcOperationPlanningMainService.exportCascadeProgress(bo, response);
}
/**
* 项目进度推送:生成进度 Excel用「信息发送」机器人私发给配置人员。
* <p>接收人见 dingtalk.info-send-user-ids机器人 ding9bhxctsmq5jsf8pk。
*/
@SaCheckPermission("system:operationPlanningMain:export")
@Log(title = "项目进度推送", businessType = BusinessType.OTHER)
@PostMapping("/pushCascadeProgress")
public R<String> pushCascadeProgress(SfcOperationPlanningMainBo bo) {
return iSfcOperationPlanningMainService.pushCascadeProgress(bo);
}
@SaCheckPermission("system:operationPlanningMain:updateOperators")
@Log(title = "工序作业人员/设备更新", businessType = BusinessType.UPDATE)
@PutMapping("/updateOperators")
public R<Void> updateOperators(@Validated @RequestBody OperationPlanningUpdateOperatorsReq req) {
return toAjax(iSfcOperationPlanningMainService.updateOperators(req));
}
/**
* 查询工序计划主列表
*/
@SaCheckPermission("system:operationPlanningMain:list")
@GetMapping("/list")
public TableDataInfo<SfcOperationPlanningMainVo> list(SfcOperationPlanningMainBo bo, PageQuery pageQuery) {
return iSfcOperationPlanningMainService.queryPageList(bo, pageQuery);
}
/**
* 导出工序计划主列表
*/
@SaCheckPermission("system:operationPlanningMain:export")
@Log(title = "工序计划主", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(SfcOperationPlanningMainBo bo, HttpServletResponse response) {
List<SfcOperationPlanningMainVo> list = iSfcOperationPlanningMainService.queryList(bo);
ExcelUtil.exportExcel(list, "工序计划主", SfcOperationPlanningMainVo.class, response);
}
/**
* 获取工序计划主详细信息
*
* @param id 主键
*/
@SaCheckPermission("system:operationPlanningMain:query")
@GetMapping("/{id}")
public R<SfcOperationPlanningMainVo> getInfo(@NotNull(message = "主键不能为空")
@PathVariable Long id) {
return R.ok(iSfcOperationPlanningMainService.queryById(id));
}
/**
* 新增工序计划主
*/
@SaCheckPermission("system:operationPlanningMain:add")
@Log(title = "工序计划主", businessType = BusinessType.INSERT)
@RepeatSubmit()
@PostMapping()
public R<Void> add(@Validated(AddGroup.class) @RequestBody SfcOperationPlanningMainBo bo) {
return toAjax(iSfcOperationPlanningMainService.insertByBo(bo));
}
/**
* 修改工序计划主
*/
@SaCheckPermission("system:operationPlanningMain:edit")
@Log(title = "工序计划主", businessType = BusinessType.UPDATE)
@RepeatSubmit()
@PutMapping()
public R<Void> edit(@Validated(EditGroup.class) @RequestBody SfcOperationPlanningMainBo bo) {
return toAjax(iSfcOperationPlanningMainService.updateByBo(bo));
}
/**
* 删除工序计划主
*
* @param ids 主键串
*/
@SaCheckPermission("system:operationPlanningMain:remove")
@Log(title = "工序计划主", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public R<Void> remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
return toAjax(iSfcOperationPlanningMainService.deleteWithValidByIds(Arrays.asList(ids), true));
}
}