167 lines
6.3 KiB
Java
167 lines
6.3 KiB
Java
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));
|
||
}
|
||
}
|