Compare commits

..

No commits in common. 'master' and 'release_1.2.0' have entirely different histories.

@ -23,9 +23,9 @@ public interface GlobalErrorCodeConstants {
ErrorCode FORBIDDEN = new ErrorCode(403, "没有该操作权限");
ErrorCode NOT_FOUND = new ErrorCode(404, "请求未找到");
ErrorCode METHOD_NOT_ALLOWED = new ErrorCode(405, "请求方法不正确");
ErrorCode REPEAT_DATA = new ErrorCode(406, "数据重复");
ErrorCode LOCKED = new ErrorCode(423, "请求失败,请稍后重试"); // 并发请求,不允许
ErrorCode TOO_MANY_REQUESTS = new ErrorCode(429, "请求过于频繁,请稍后重试");
// ========== 服务端错误段 ==========
ErrorCode INTERNAL_SERVER_ERROR = new ErrorCode(500, "系统异常");

@ -17,9 +17,6 @@ public final class PageResult<T> implements Serializable {
@Schema(description = "总量", requiredMode = Schema.RequiredMode.REQUIRED)
private Long total;
@Schema(description = "总页数")
private Integer totalPages;
public PageResult() {
}
@ -28,12 +25,6 @@ public final class PageResult<T> implements Serializable {
this.total = total;
}
public PageResult(List<T> list, Long total, Integer totalPages) {
this.list = list;
this.total = total;
this.totalPages = totalPages;
}
public PageResult(Long total) {
this.list = new ArrayList<>();
this.total = total;

@ -31,7 +31,7 @@ public class BeanUtils {
if (source == null) {
return null;
}
return new PageResult<>(toBean(source.getList(), targetType), source.getTotal(), source.getTotalPages());
return new PageResult<>(toBean(source.getList(), targetType), source.getTotal());
}
}
}

@ -20,12 +20,36 @@ public class BannerApplicationRunner implements ApplicationRunner {
public void run(ApplicationArguments args) {
ThreadUtil.execute(() -> {
ThreadUtil.sleep(1, TimeUnit.SECONDS); // 延迟 1 秒,保证输出到结尾
log.info("\n----------------------------------------------------------\n" +
"项目启动成功!\n" +
"\n" +
"{} \n" +
log.info("\n----------------------------------------------------------\n\t" +
"项目启动成功!\n\t" +
"接口文档: \t{} \n\t" +
"开发文档: \t{} \n\t" +
"视频教程: \t{} \n" +
"----------------------------------------------------------",
"Copyright ©上海长江云息数字科技有限公司,All Rights Reserved.");
"https://doc.iocoder.cn/api-doc/",
"https://doc.iocoder.cn",
"https://t.zsxq.com/02Yf6M7Qn");
// 数据报表
if (isNotPresent("com.chanko.yunxi.mes.module.report.framework.security.config.SecurityConfiguration")) {
System.out.println("[报表模块 mes-module-report - 已禁用][参考 https://doc.iocoder.cn/report/ 开启]");
}
// 工作流
if (isNotPresent("com.chanko.yunxi.mes.framework.flowable.config.MesFlowableConfiguration")) {
System.out.println("[工作流模块 mes-module-bpm - 已禁用][参考 https://doc.iocoder.cn/bpm/ 开启]");
}
// 微信公众号
if (isNotPresent("com.chanko.yunxi.mes.module.mp.framework.mp.config.MpConfiguration")) {
System.out.println("[微信公众号 mes-module-mp - 已禁用][参考 https://doc.iocoder.cn/mp/build/ 开启]");
}
// 商城系统
if (isNotPresent("com.chanko.yunxi.mes.module.trade.framework.web.config.TradeWebConfiguration")) {
System.out.println("[商城系统 mes-module-mall - 已禁用][参考 https://doc.iocoder.cn/mall/build/ 开启]");
}
// 支付平台
if (isNotPresent("com.chanko.yunxi.mes.module.pay.framework.pay.config.PayConfiguration")) {
System.out.println("[支付系统 mes-module-pay - 已禁用][参考 https://doc.iocoder.cn/pay/build/ 开启]");
}
});
}

@ -1,4 +1,4 @@
上海长江云息数字科技有限公司
芋道源码 http://www.iocoder.cn
Application Version: ${mes.info.version}
Spring Boot Version: ${spring-boot.version}

@ -72,18 +72,6 @@ public enum OperateTypeEnum {
*
* */
DELIVER(14),
/*
*
* */
SUBMIT(15),
/*
*
* */
CANCEL_SUBMIT(16),
/*
*
* */
CANCEL(17),
/**
*
*

@ -28,15 +28,4 @@ public interface OperateLogFrameworkService {
* @param content
*/
void createOperateLog(HttpServletRequest request, LocalDateTime startTime, String businessType, Long businessId, Integer type, String content);
/**
*
*
* @param startTime
* @param businessType
* @param businessId
* @param type
* @param content
*/
void createOperateLog(LocalDateTime startTime, String businessType, Long businessId, Integer type, String content);
}

@ -58,28 +58,4 @@ public class OperateLogFrameworkServiceImpl implements OperateLogFrameworkServic
operateLogApi.createOperateLog(reqDTO);
}
@Override
public void createOperateLog(LocalDateTime startTime, String businessType, Long businessId, Integer type, String content) {
OperateLog operateLogObj = new OperateLog();
operateLogObj.setTraceId(TracerUtils.getTraceId());
operateLogObj.setStartTime(startTime);
operateLogObj.setBusinessType(businessType);
operateLogObj.setBusinessId(businessId);
operateLogObj.setUserId(WebFrameworkUtils.getLoginUserId());
operateLogObj.setUserType(WebFrameworkUtils.getLoginUserType());
operateLogObj.setModule("ignore");
operateLogObj.setName("ignore");
operateLogObj.setType(type);
operateLogObj.setContent(content);
operateLogObj.setRequestMethod("system");
operateLogObj.setRequestUrl("system");
operateLogObj.setUserIp("127.0.0.1");
operateLogObj.setUserAgent("system");
operateLogObj.setJavaMethod("system");
operateLogObj.setDuration((int) (LocalDateTimeUtil.between(startTime, LocalDateTime.now()).toMillis()));
operateLogObj.setResultCode(SUCCESS.getCode());
OperateLogCreateReqDTO reqDTO = BeanUtil.toBean(operateLogObj, OperateLogCreateReqDTO.class);
operateLogApi.createOperateLog(reqDTO);
}
}

@ -1,42 +0,0 @@
package com.chanko.yunxi.mes.framework.excel.core.convert;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Date;
/**
*
*
* @author chenxi
* @date 2024-02-28 09:01
*/
public class TimestampToDateConvert implements Converter<Object> {
@Override
public WriteCellData<?> convertToExcelData(Object value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
try {
String date = "";
if(value instanceof Long){
long timestamp = (Long) value;
date = new SimpleDateFormat("yyyy-MM-dd").format(new Date(timestamp));
}else if(value instanceof String){
long timestamp = Long.parseLong((String) value);
date = new SimpleDateFormat("yyyy-MM-dd").format(new Date(timestamp));
}else if(value instanceof LocalDateTime){
LocalDateTime local = (LocalDateTime) value;
date = DateTimeFormatter.ofPattern("yyyy-MM-dd").format(local);
}
return new WriteCellData<>(date);
}catch (Exception e){
}
return Converter.super.convertToExcelData(value, contentProperty, globalConfiguration);
}
}

@ -1,6 +1,9 @@
package com.chanko.yunxi.mes.framework.mybatis.core.mapper;
import cn.hutool.core.collection.CollUtil;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.mybatis.core.util.MyBatisUtils;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -8,14 +11,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.baomidou.mybatisplus.extension.toolkit.Db;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.mybatis.core.util.MyBatisUtils;
import com.github.yulichang.base.MPJBaseMapper;
import com.github.yulichang.interfaces.MPJBaseJoin;
import org.apache.ibatis.annotations.Param;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.List;
@ -38,7 +37,7 @@ public interface BaseMapperX<T> extends MPJBaseMapper<T> {
IPage<T> mpPage = MyBatisUtils.buildPage(pageParam);
selectPage(mpPage, queryWrapper);
// 转换返回
return new PageResult<>(mpPage.getRecords(), mpPage.getTotal(), new BigDecimal(mpPage.getTotal()).divide(new BigDecimal(pageParam.getPageSize()),0, BigDecimal.ROUND_CEILING).intValue());
return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
}
default <DTO> PageResult<DTO> selectJoinPage(PageParam pageParam, Class<DTO> resultTypeClass, MPJBaseJoin<T> joinQueryWrapper) {

@ -61,11 +61,6 @@
<artifactId>jsoup</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
</dependency>
</dependencies>
</project>

@ -25,7 +25,6 @@ import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
import org.springframework.web.method.annotation.MethodArgumentTypeMismatchException;
import org.springframework.web.servlet.NoHandlerFoundException;
import org.springframework.dao.DuplicateKeyException;
import javax.servlet.http.HttpServletRequest;
import javax.validation.ConstraintViolation;
@ -228,11 +227,6 @@ public class GlobalExceptionHandler {
return requestNotPermittedExceptionHandler(req, ex);
}
// 处理表数据相关异常
if (ex instanceof DuplicateKeyException){
return CommonResult.error(REPEAT_DATA);
}
// 情况三:处理异常
log.error("[defaultExceptionHandler]", ex);
// 插入异常日志

@ -28,12 +28,6 @@
<artifactId>spring-boot-starter-validation</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springdoc</groupId>
<artifactId>springdoc-openapi-ui</artifactId>
<scope>provided</scope>
</dependency>
</dependencies>

@ -1,23 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-01 04:42
*/
@Getter
public enum BoomDetailTypeEnum {
MATERIAL("1", "原材料"),
OTHER("2", "加工件");
private String code;
private String description;
BoomDetailTypeEnum(String code, String description) {
this.code = code;
this.description = description;
}
}

@ -13,17 +13,6 @@ public enum BusinesTypeEnum {
PROJECT_ORDER("销售订单"),
PROJECT_ORDER_SNAPSHOT("销售订单快照"),
DELIVER_ORDER("发货订单"),
PROCESS_BOM("工艺BOM"),
TASK_DISPATCH("派工单"),
TASK_DISPATCH_PRODUCTION("生产任务派工单"),
TASK_DISPATCH_ASSEMBLE("装配任务派工单"),
INSPECTION_REPORT("检测报告"),
UNQUALIFIED_NOTIFICATION("品质异常通知单"),
PLAN_TASK("生产任务单"),
FINANCE_MAKE_INVOICE("财务开票"),
FINANCE_RECEIVE_INVOICE("发票接收"),
FINANCE_INVOICE("财务发票"),
MATERIAL("物料"),
;
private String description;

@ -12,13 +12,7 @@ public enum BusinessFileTypeEnum {
CONTRACT("合同"),
TECHNOLOGY_PROTOCOL("技术协议"),
ID_CARD("身份证照片"),
COMPOSITION_REPORT("材质报告"),
HEAT_TREATMENT_REPORT("热处理报告"),
SCAN_REPORT("扫描报告"),
TRI_LINEAR_COORDINATES_MEASURING("三坐标检测报告"),
CERTIFICATE_OF_QUALIFICATION("合格证"),
;
ID_CARD("身份证照片");
private String description;

@ -40,17 +40,9 @@ public enum CodeEnum {
WAREHOUSE("仓库", "Wa", 4),
STOCK_IN("入库单", "WI", 4, "yyyyMMdd"),
STOCK_OUT("出库单", "WO", 4, "yyyyMMdd"),
STOCK_CHECK("盘点单据", "WC", 3, "yyyyMM"),
STOCK_CHECK("盘点单据", "WC", 4, "yyyyMMdd"),
PROJECT_ORDER("业务订单", 3, "yyyyMM"),
PROJECT_DELIVERY_ORDER("发货单", "HL", 3, "yyyyMM"),
PROJECT_PLAN("生产计划", "PP",3, "yyyyMM"),
PROJECT_PLAN_TASK("生产计划任务单", "PT",3, "yyyyMMdd"),
MATERIAL_PLAN("物料需求计划", "PR",4, "yyyyMMdd"),
PURCHASE_ORDER("采购订单", "PO",4, "yyyyMMdd"),
TASK_DISPATCH_PRODUCTION("生产任务派工单", "PTD", 3, "yyyyMMdd"),
TASK_DISPATCH_ASSEMBLE("装配任务派工单", "ATD", 3, "yyyyMMdd"),
UNQUALIFIED_NOTIFICATION("品质异常通知单", "RN", 4, "yyyyMMdd"),
MATERIAL("物料", 6),
;
@ -61,13 +53,6 @@ public enum CodeEnum {
private int sequenceArgsLength;
private String dateFormat;
CodeEnum(String description, int sequenceLength){
this.description = description;
this.sequenceLength = sequenceLength;
this.sequenceArgsLength = 2;
this.sequenceTemplate = "%s%0"+sequenceLength+"d";
}
CodeEnum(String description, String prefix, int sequenceLength) {
this.description = description;
this.prefix = prefix;

@ -1,21 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-01-18 01:19
*/
@Getter
public enum DeliverSubCategoryEnum {
DELIVER_LIST("发货清单"),
OTHER_LIST("其他清单")
;
private String description;
DeliverSubCategoryEnum(String description) {
this.description = description;
}
}

@ -1,18 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
@Getter
public enum DictTypeConstants {
MATERIAL_TYPE("heli_material_type", "物料类型"),
MATERIAL_UNIT("heli_material_unit", "物料单位");
private String code;
private String description;
DictTypeConstants(String code, String description) {
this.code = code;
this.description = description;
}
}

@ -16,20 +16,13 @@ import com.chanko.yunxi.mes.framework.common.exception.ErrorCode;
* 003
* 004
* 005
* 006
* 007
* 008
* 009
* 010
* 011
* 3
*/
public interface ErrorCodeConstants {
ErrorCode CODE_REPEAT = new ErrorCode(1_000_001, "编码不能重复");
ErrorCode INVALID_OPERATE = new ErrorCode(1_000_002, "无效操作");
ErrorCode IMPORT_ERROR = new ErrorCode(1_000_003, "导入失败:{}");
ErrorCode DICT_TYPE_ERROR = new ErrorCode(1_000_003, "无法识别枚举类型");
/************基础信息**********/
ErrorCode MATERIAL_NOT_EXISTS = new ErrorCode(1_001_001, "物料不存在");
ErrorCode COMPOSITION_NOT_EXISTS = new ErrorCode(1_001_002, "材质不存在");
@ -38,11 +31,6 @@ public interface ErrorCodeConstants {
ErrorCode SUPPLIER_NOT_EXISTS = new ErrorCode(1_001_005, "供应商不存在");
ErrorCode PROCEDURE_NOT_EXISTS = new ErrorCode(1_001_006, "工序不存在");
ErrorCode SERIAL_NUMBER_NOT_EXISTS = new ErrorCode(1_001_007, "序列号记录不存在");
ErrorCode EQUIP_NOT_EXISTS = new ErrorCode(1_001_008, "设备信息不存在");
ErrorCode MATERIAL_IMPORT_LIST_IS_EMPTY = new ErrorCode(1_001_009, "导入物料数据不能为空");
ErrorCode MATERIAL_IMPORT_CODE_REPEAT = new ErrorCode(1_001_010, "导入物料数据存在重复编码: {}");
ErrorCode EQUIP_MANUFACTURE_NOT_EXISTS = new ErrorCode(1_001_011, "制造设备不存在");
ErrorCode MATERIAL_IMPORT_CODE_NOT_STANDARD = new ErrorCode(1_001_012, "物料编码不符合标准");
/*********组织架构************/
ErrorCode WORKSHOP_NOT_EXISTS = new ErrorCode(1_002_001, "车间不存在");
@ -61,36 +49,8 @@ public interface ErrorCodeConstants {
/************订单管理***********/
ErrorCode PROJECT_ORDER_NOT_EXISTS = new ErrorCode(1_004_001, "项目订单不存在");
/************发货管理***********/
ErrorCode DELIVER_ORDER_NOT_EXISTS = new ErrorCode(1_005_001, "发货订单不存在");
ErrorCode RELATION_PROJECT_ORDER_HAS_DONE = new ErrorCode(1_005_002, "关联项目订单已经发货完成");
ErrorCode DELIVER_AMOUNT_OVERFLOW = new ErrorCode(1_005_003, "超额发货");
/************工艺设计***********/
ErrorCode PROCESS_DESIGN_NOT_EXISTS = new ErrorCode(1_006_001, "工艺设计不存在");
ErrorCode PROCESS_BOM_NOT_EXISTS = new ErrorCode(1_006_002, "工艺bom不存在");
ErrorCode PROCESS_BOM_DETAIL_NOT_EXISTS = new ErrorCode(1_006_003, "工艺bom明细不存在");
/************生产计划管理***********/
ErrorCode PLAN_NOT_EXISTS = new ErrorCode(1_007_001, "生产计划不存在");
ErrorCode PLAN_SUB_NOT_EXISTS = new ErrorCode(1_007_002, "生产计划子项目不存在");
ErrorCode PLAN_TASK_NOT_EXISTS = new ErrorCode(1_007_003, "生产计划任务不存在");
ErrorCode PLAN_TASK_BOM_NOT_EXISTS = new ErrorCode(1_007_004, "生产计划任务Bom不存在");
/************采购管理***********/
ErrorCode MATERIAL_PLAN_NOT_EXISTS = new ErrorCode(1_008_001, "物料需求计划不存在");
ErrorCode MATERIAL_PLAN_DETAIL_NOT_EXISTS = new ErrorCode(1_008_002, "物料需求计划物料详情不存在");
ErrorCode PURCHASE_ORDER_NOT_EXISTS = new ErrorCode(1_008_003, "采购订单不存在");
ErrorCode PURCHASE_ORDER_MATERIAL_NOT_EXISTS = new ErrorCode(1_008_004, "采购单物料不存在");
ErrorCode MATERIAL_PLAN_BOOM_NOT_EXISTS = new ErrorCode(1_008_005, "物料需求计划加工件明细不存在");
ErrorCode PURCHASE_ORDER_BOOM_NOT_EXISTS = new ErrorCode(1_008_006, "采购订单加工件明细不存在");
/************生产管理***********/
ErrorCode TASK_DISPATCH_NOT_EXISTS = new ErrorCode(1_009_001, "派工单不存在");
ErrorCode TASK_REPORT_NOT_EXISTS = new ErrorCode(1_009_002, "任务报工不存在");
ErrorCode TASK_REPORT_PARAMS_ERROR = new ErrorCode(1_009_003, "报工数量或报工工时不能为空");
ErrorCode TASK_DISPATCH_TASK_NOT_EXISTS = new ErrorCode(1_009_004, "任务不存在或已完成");
ErrorCode TASK_DISPATCH_TASK_NO_PERMISSION_FOR_OPERATE = new ErrorCode(1_009_005, "任务不满足操作条件");
ErrorCode TASK_DISPATCH_TASK_REPORT_AMOUNT_EXCESS = new ErrorCode(1_009_006, "无法超额报工");
/*************质量管理***********/
ErrorCode UNQUALIFIED_NOTIFICATION_NOT_EXISTS = new ErrorCode(1_010_001, "品质异常通知单审核不存在");
ErrorCode QUALITY_FEEDBACK_NOT_EXISTS = new ErrorCode(1_010_002, "客户反馈质量不存在");
/*************应收应付管理***********/
ErrorCode INVOICE_NOT_EXISTS = new ErrorCode(1_011_001, "财务发票不存在");
}

@ -1,24 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-26 11:25
*/
@Getter
public enum InvoiceStatusEnum {
SAVE(1, "已保存"),
SUBMIT(2, "已提交"),
CANCEL(3, "已作废");
private int code;
private String description;
InvoiceStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,35 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
import java.util.Arrays;
/**
*
* @author chenxi
* @date 2024-02-01 04:42
*/
@Getter
public enum MaterialTypeEnum {
RAW("1", "原材料", "2"),
ACCESSORY("2", "副资材", "4"),
OFFICE("3", "办公/劳保", "3"),
GIVING("4", "赠送物品", "5"),
STANDARD("5", "标准件", "1"),
VIRTUAL("6", "虚拟物料", "0");
private String code;
private String description;
private String prefix;
MaterialTypeEnum(String code, String description, String prefix) {
this.code = code;
this.description = description;
this.prefix = prefix;
}
public static MaterialTypeEnum getMaterialType(String code){
return Arrays.stream(MaterialTypeEnum.values()).filter(materialTypeEnum -> materialTypeEnum.code.equals(code)).findFirst().get();
}
}

@ -1,25 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
* bom
* @author chenxi
* @date 2024-02-26 11:25
*/
@Getter
public enum ProcessBomStatusEnum {
SAVE(1, "已保存"),
SUBMIT(2, "已提交"),
CANCEL_SUBMIT(1, "取消提交"),
TERMINATE(3, "已终止");
private int code;
private String description;
ProcessBomStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,23 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-21 01:09
*/
@Getter
public enum ProcessDesignTypeEnum {
BLUEPRINT_FOUNDRY_TECHNOLOGY("铸造工艺"),
BLUEPRINT_3D("3D图纸"),
BLUEPRINT_2D("2D图纸"),
BLUEPRINT_WORKBLANK("毛坯图纸");
private String description;
ProcessDesignTypeEnum(String description) {
this.description = description;
}
}

@ -1,24 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-01-18 01:19
*/
@Getter
public enum ProjectOrderDeliverStatusEnum {
NOT(1, "未发货"),
PART(2, "部分发货"),
ALL(3, "全部发货")
;
private int code;
private String description;
ProjectOrderDeliverStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,26 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-01-18 01:19
*/
@Getter
public enum ProjectPlanStatusEnum {
START(1, "未开始"),
PRODUCING(2, "生产中"),
COMPLETE(3, "已完成"),
TERMINATE(4, "已终止"),
CHANGE(5, "已变更"),
;
private int code;
private String description;
ProjectPlanStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,25 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-01-18 01:19
*/
@Getter
public enum PurchaseStatusEnum {
START(1, "已保存"),
SUBMIT(2, "已送审"),
AUDIT(3, "已审核"),
REFUSE(4, "已打回"),
;
private int code;
private String description;
PurchaseStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,27 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-01 02:31
*/
@Getter
public enum StockInTypeEnum {
RECEIVE(1, "采购入库"),
GAIN(2, "盘盈入库"),
PRODUCTION(3, "生产入库"),
OTHER(4, "其他入库"),
RETURN(5, "车间退料")
;
private int code;
private String description;
StockInTypeEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,25 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-01 02:31
*/
@Getter
public enum StockOutTypeEnum {
RECEIVE(1, "领料出库"),
SALE(2, "销售出库"),
LOSS(3, "盘亏出库"),
OTHER(4, "其他出库");
private int code;
private String description;
StockOutTypeEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,23 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-01 02:28
*/
@Getter
public enum StockTypeEnum {
IN(1, "入库"),
OUT(2, "出库");
private int code;
private String description;
StockTypeEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,19 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
@Getter
public enum StorageStatusEnum {
SAVE(1, "保存"),
SUBMIT(2, "提交"),
INVALID(3, "作废");
private int code;
private String description;
StorageStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,24 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-03-04 04:44
*/
@Getter
public enum TaskDispatchProcedureStatusEnum {
DEFAULT(0, "默认"),
SUBMITTED(1, "已提交"),
COMPLETED(2, "已完成");
private int code;
private String description;
TaskDispatchProcedureStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,25 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-26 11:25
*/
@Getter
public enum TaskDispatchStatusEnum {
SAVE(1, "已保存"),
SUBMIT(2, "已提交"),
CANCEL_SUBMIT(1, "取消提交"),
TERMINATE(3, "已终止");
private int code;
private String description;
TaskDispatchStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,28 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.TASK_DISPATCH_ASSEMBLE;
import static com.chanko.yunxi.mes.module.heli.enums.CodeEnum.TASK_DISPATCH_PRODUCTION;
/**
*
* @author chenxi
* @date 2024-03-12 02:28
*/
@Getter
public enum TaskDispatchTypeEnum {
PRODUCTION(BusinesTypeEnum.TASK_DISPATCH_PRODUCTION, TASK_DISPATCH_PRODUCTION, "生产任务"),
ASSEMBLE(BusinesTypeEnum.TASK_DISPATCH_ASSEMBLE, TASK_DISPATCH_ASSEMBLE, "装配任务");
private BusinesTypeEnum businesTypeEnum;
private CodeEnum codeEnum;
private String description;
TaskDispatchTypeEnum(BusinesTypeEnum businesTypeEnum, CodeEnum codeEnum, String description) {
this.businesTypeEnum = businesTypeEnum;
this.codeEnum = codeEnum;
this.description = description;
}
}

@ -1,23 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-03-08 10:03
*/
@Getter
public enum TaskReportOperateEnum {
START("开始"),
END("结束"),
SUBMIT("提交"),
FINISH("完成")
;
private String description;
TaskReportOperateEnum(String description) {
this.description = description;
}
}

@ -1,24 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-26 11:25
*/
@Getter
public enum UnqualifiedNotificationStatusEnum {
SAVE(1, "已保存"),
SUBMIT(2, "已送审"),
AUDIT(3, "已审核");
private int code;
private String description;
UnqualifiedNotificationStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,22 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-27 10:28
*/
@Getter
public enum ValidStatusEnum {
VALID(1, "有效"),
INVALID(2, "无效");
private int code;
private String description;
ValidStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -1,20 +0,0 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-02-23 10:15
*/
@Getter
public enum WarningEnum {
PROCESS_DESIGN_DEFERRED_WARNING("工艺设计延期预警");
private String description;
WarningEnum(String description) {
this.description = description;
}
}

@ -10,7 +10,7 @@ import lombok.Getter;
@Getter
public enum YesOrNoEnum {
Y(1), N(0);
YES(1), NO(0);
private int code;

@ -1,56 +0,0 @@
package com.chanko.yunxi.mes.module.heli.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
/**
*
*
* @author chenxi
* @date 2024-02-23 09:54
*/
@Data
@Accessors(chain = true)
public class WarningMessageVO {
@Schema(description = "是否包含预警信息")
private boolean hasWarning = false;
@Schema(description = "预警信息")
private List<WarningVO> warnings;
public static abstract class WarningVO {}
@Data
@Accessors(chain = true)
public static class ProcessDesignDeferredWarningVO extends WarningVO {
/**
* {@link com.chanko.yunxi.mes.module.heli.enums.WarningEnum}
*/
@Schema(description = "预警类型")
private String warningType;
/**
* {@link com.chanko.yunxi.mes.module.heli.enums.ProcessDesignTypeEnum}
*/
@Schema(description = "工艺设计类型")
private String processDesignType;
@Schema(description = "预警接收人")
private String ownerName;
@Schema(description = "项目编号")
private String projectCode;
@Schema(description = "子项目编号")
private String projectSubCode;
@Schema(description = "剩余时间")
private long remainingTime;
}
}

@ -1,24 +0,0 @@
package com.chanko.yunxi.mes.module.heli.config;
import com.chanko.yunxi.mes.framework.swagger.config.MesSwaggerAutoConfiguration;
import org.springdoc.core.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* system web Configuration
*
* @author
*/
@Configuration(proxyBeanMethods = false)
public class HeliWebConfiguration {
/**
* system API
*/
@Bean
public GroupedOpenApi heliGroupedOpenApi() {
return MesSwaggerAutoConfiguration.buildGroupedOpenApi("heli");
}
}

@ -1,13 +1,10 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.composition.vo;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -38,6 +35,6 @@ public class CompositionPageReqVO extends PageParam {
private String original;
@Schema(description = "密度")
private BigDecimal density;
private String density;
}
}

@ -1,14 +1,14 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.composition.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
@Schema(description = "管理后台 - 材质 Response VO")
@Data
@ -46,6 +46,6 @@ public class CompositionRespVO {
@Schema(description = "密度")
@ExcelProperty("密度")
private BigDecimal density;
private String density;
}
}

@ -1,38 +1,37 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.composition.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 材质新增/修改 Request VO")
@Data
public class CompositionSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "457")
private Long id;
@Schema(description = "材质名", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@NotEmpty(message = "材质名不能为空")
private String name;
@Schema(description = "材质代号")
private String code;
@Schema(description = "描述", example = "随便")
private String description;
@Schema(description = "状态,1表示正常2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "状态,1表示正常2表示禁用不能为空")
private Integer status;
@Schema(description = "来源", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "来源不能为空")
private String original;
@Schema(description = "密度")
private BigDecimal density;
}
package com.chanko.yunxi.mes.module.heli.controller.admin.composition.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
@Schema(description = "管理后台 - 材质新增/修改 Request VO")
@Data
public class CompositionSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "457")
private Long id;
@Schema(description = "材质名", requiredMode = Schema.RequiredMode.REQUIRED, example = "王五")
@NotEmpty(message = "材质名不能为空")
private String name;
@Schema(description = "材质代号")
private String code;
@Schema(description = "描述", example = "随便")
private String description;
@Schema(description = "状态,1表示正常2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotNull(message = "状态,1表示正常2表示禁用不能为空")
private Integer status;
@Schema(description = "来源", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "来源不能为空")
private String original;
@Schema(description = "密度")
private String density;
}

@ -21,15 +21,12 @@ public class CustomerPageReqVO extends PageParam {
@Schema(description = "客户编码")
private String code;
@Schema(description = "简码")
@Schema(description = "客户简称")
private String brief;
@Schema(description = "客户简称")
@Schema(description = "客户全称", example = "赵六")
private String name;
@Schema(description = "客户全称")
private String fullName;
@Schema(description = "所属行业")
private String industry;
@ -122,7 +119,4 @@ public class CustomerPageReqVO extends PageParam {
@Schema(description = "公司税号")
private String taxNo;
@Schema(description = "简称或全称")
private String briefOrName;
}
}

@ -23,17 +23,13 @@ public class CustomerRespVO {
@ExcelProperty("客户编码")
private String code;
@Schema(description = "简码", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("简码")
private String brief;
@Schema(description = "客户简称", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("客户简称")
private String name;
private String brief;
@Schema(description = "客户全称", requiredMode = Schema.RequiredMode.REQUIRED)
@Schema(description = "客户全称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@ExcelProperty("客户全称")
private String fullName;
private String name;
@Schema(description = "所属行业")
@ExcelProperty("所属行业")

@ -16,17 +16,13 @@ public class CustomerSaveReqVO {
@Schema(description = "客户编码", requiredMode = Schema.RequiredMode.REQUIRED)
private String code;
@Schema(description = "简码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "简码不能为空")
private String brief;
@Schema(description = "客户简称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@Schema(description = "客户简称", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "客户简称不能为空")
private String name;
private String brief;
@Schema(description = "客户全称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotEmpty(message = "客户全称不能为空")
private String fullName;
private String name;
@Schema(description = "所属行业")
private String industry;

@ -33,7 +33,7 @@ import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEn
import com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderSubDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverordersub.DeliverOrderSubDO;
import com.chanko.yunxi.mes.module.heli.service.deliverorder.DeliverOrderService;
@Tag(name = "管理后台 - 发货订单")

@ -80,7 +80,7 @@ public class DeliverOrderPageReqVO extends PageParam {
@Schema(description = "收货详细地址")
private String receiveAddress;
@Schema(description = "项目名称")
private String projectName;
@Schema(description = "模具名称")
private String mouldName;
}

@ -1,13 +1,15 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
@Schema(description = "管理后台 - 发货订单 Response VO")
@Data
@ -104,9 +106,9 @@ public class DeliverOrderRespVO {
@ExcelProperty("合同号")
private String contractNo;
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String projectName;
@Schema(description = "模具名称")
@ExcelProperty("模具名称")
private String mouldName;
@Schema(description = "性质")
@ExcelProperty("性质")
@ -116,16 +118,4 @@ public class DeliverOrderRespVO {
@ExcelProperty("客户名称")
private String customerName;
@Schema(description = "发货人姓名")
@ExcelProperty("发货人姓名")
private String deliverPersonName;
@Schema(description = "制单人姓名")
@ExcelProperty("制单人姓名")
private String creatorName;
@Schema(description = "业务员姓名")
@ExcelProperty("业务员姓名")
private String businessManName;
}

@ -1,15 +1,13 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.vo;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverorder.DeliverOrderSubDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import java.util.List;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.deliverordersub.DeliverOrderSubDO;
@Schema(description = "管理后台 - 发货订单新增/修改 Request VO")
@Data
@ -46,6 +44,7 @@ public class DeliverOrderSaveReqVO {
private String deliverPersonMobile;
@Schema(description = "发货方式", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "发货方式不能为空")
private String deliverMode;
@Schema(description = "收货人电话", requiredMode = Schema.RequiredMode.REQUIRED)
@ -86,11 +85,7 @@ public class DeliverOrderSaveReqVO {
@Schema(description = "操作意见")
private String activeOpinion;
@Valid
@Schema(description = "发货订单子项列表")
private List<DeliverOrderSubDO> deliverOrderSubs;
@Valid
@Schema(description = "发货订单子项列表")
private List<DeliverOrderSubDO> deliverOrderOtherSubs;
}

@ -1,110 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.equip;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.equip.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.equip.EquipDO;
import com.chanko.yunxi.mes.module.heli.service.equip.EquipService;
@Tag(name = "管理后台 - 设备信息")
@RestController
@RequestMapping("/heli/equip")
@Validated
public class EquipController {
@Resource
private EquipService equipService;
@PostMapping("/create")
@Operation(summary = "创建设备信息")
@PreAuthorize("@ss.hasPermission('heli:equip:create')")
public CommonResult<Long> createEquip(@Valid @RequestBody EquipSaveReqVO createReqVO) {
return success(equipService.createEquip(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新设备信息")
@PreAuthorize("@ss.hasPermission('heli:equip:update')")
public CommonResult<Boolean> updateEquip(@Valid @RequestBody EquipSaveReqVO updateReqVO) {
equipService.updateEquip(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除设备信息")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:equip:delete')")
public CommonResult<Boolean> deleteEquip(@RequestParam("id") Long id) {
equipService.deleteEquip(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得设备信息")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:equip:query')")
public CommonResult<EquipRespVO> getEquip(@RequestParam("id") Long id) {
EquipDO equip = equipService.getEquip(id);
return success(BeanUtils.toBean(equip, EquipRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得设备信息分页")
@PreAuthorize("@ss.hasPermission('heli:equip:query')")
public CommonResult<PageResult<EquipRespVO>> getEquipPage(@Valid EquipPageReqVO pageReqVO) {
PageResult<EquipDO> pageResult = equipService.getEquipPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, EquipRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出设备信息 Excel")
@PreAuthorize("@ss.hasPermission('heli:equip:export')")
@OperateLog(type = EXPORT)
public void exportEquipExcel(@Valid EquipPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<EquipDO> list = equipService.getEquipPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "设备信息.xls", "数据", EquipRespVO.class,
BeanUtils.toBean(list, EquipRespVO.class));
}
@GetMapping({"/all-simples"})
@Operation(summary = "TODO:获取设备信息信息列表", description = "只包含被开启的设备信息,主要用于前端的下拉选项")
public CommonResult<List<Map<String, Object>> > getSimpleList() {
List<Map<String, Object>> list = equipService.getEquipSimpleList();
// 拼接数据
return success(list);
}
@GetMapping({"/all-no-status-simples"})
@Operation(summary = "TODO:获取无状态设备信息信息列表", description = "设备信息,主要用于前端的下拉选项")
public CommonResult<List<Map<String, Object>> > getNoStatusSimpleList() {
List<Map<String, Object>> list = equipService.getEquipNoStatusSimpleList();
// 拼接数据
return success(list);
}
}

@ -1,50 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.equip.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 设备信息分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class EquipPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一")
private Long id;
@Schema(description = "设备名称 唯一")
private String name;
@Schema(description = "模具类型id对应 base_mould_type 表中的id")
private Long mouldTypeId;
@Schema(description = "状态,1表示正常2表示禁用默认是1")
private Integer status;
@Schema(description = "创建者")
private String creator;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "更新者")
private String updater;
@Schema(description = "更新时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] updateTime;
@Schema(description = "是否删除")
private Boolean deleted;
@Schema(description = "租户编号")
private Long tenantId;
}

@ -1,30 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.equip.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 设备信息 Response VO")
@Data
@ExcelIgnoreUnannotated
public class EquipRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "设备名称 唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("设备名称 唯一")
private String name;
@Schema(description = "模具类型id对应 base_mould_type 表中的id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("模具类型id对应 base_mould_type 表中的id")
private Long mouldTypeId;
@Schema(description = "状态,1表示正常2表示禁用默认是1")
@ExcelProperty("状态,1表示正常2表示禁用默认是1")
private Integer status;
}

@ -1,27 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.equip.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
@Schema(description = "管理后台 - 设备信息新增/修改 Request VO")
@Data
public class EquipSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "设备名称 唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "设备名称 唯一不能为空")
private String name;
@Schema(description = "模具类型id对应 base_mould_type 表中的id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "模具类型id对应 base_mould_type 表中的id不能为空")
private Long mouldTypeId;
@Schema(description = "状态,1表示正常2表示禁用默认是1")
private Integer status;
}

@ -1,95 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.equipmanufacture;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.equipmanufacture.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.equipmanufacture.EquipManufactureDO;
import com.chanko.yunxi.mes.module.heli.service.equipmanufacture.EquipManufactureService;
@Tag(name = "管理后台 - 制造设备")
@RestController
@RequestMapping("/heli/equip-manufacture")
@Validated
public class EquipManufactureController {
@Resource
private EquipManufactureService equipManufactureService;
@PostMapping("/create")
@Operation(summary = "创建制造设备")
@PreAuthorize("@ss.hasPermission('heli:equip-manufacture:create')")
public CommonResult<Long> createEquipManufacture(@Valid @RequestBody EquipManufactureSaveReqVO createReqVO) {
return success(equipManufactureService.createEquipManufacture(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新制造设备")
@PreAuthorize("@ss.hasPermission('heli:equip-manufacture:update')")
public CommonResult<Boolean> updateEquipManufacture(@Valid @RequestBody EquipManufactureSaveReqVO updateReqVO) {
equipManufactureService.updateEquipManufacture(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除制造设备")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:equip-manufacture:delete')")
public CommonResult<Boolean> deleteEquipManufacture(@RequestParam("id") Long id) {
equipManufactureService.deleteEquipManufacture(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得制造设备")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:equip-manufacture:query')")
public CommonResult<EquipManufactureRespVO> getEquipManufacture(@RequestParam("id") Long id) {
EquipManufactureDO equipManufacture = equipManufactureService.getEquipManufacture(id);
return success(BeanUtils.toBean(equipManufacture, EquipManufactureRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得制造设备分页")
@PreAuthorize("@ss.hasPermission('heli:equip-manufacture:query')")
public CommonResult<PageResult<EquipManufactureRespVO>> getEquipManufacturePage(@Valid EquipManufacturePageReqVO pageReqVO) {
PageResult<EquipManufactureDO> pageResult = equipManufactureService.getEquipManufacturePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, EquipManufactureRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出制造设备 Excel")
@PreAuthorize("@ss.hasPermission('heli:equip-manufacture:export')")
@OperateLog(type = EXPORT)
public void exportEquipManufactureExcel(@Valid EquipManufacturePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<EquipManufactureDO> list = equipManufactureService.getEquipManufacturePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "制造设备.xls", "数据", EquipManufactureRespVO.class,
BeanUtils.toBean(list, EquipManufactureRespVO.class));
}
}

@ -1,40 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.equipmanufacture.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 制造设备分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class EquipManufacturePageReqVO extends PageParam {
@Schema(description = "编码 唯一")
private String code;
@Schema(description = "名称", example = "赵六")
private String name;
@Schema(description = "类型", example = "2")
private String type;
@Schema(description = "型号")
private String model;
@Schema(description = "状态,1表示正常2表示禁用默认是1", example = "2")
private Integer status;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "编码或名称")
private String codeOrName;
}

@ -1,44 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.equipmanufacture.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 制造设备 Response VO")
@Data
@ExcelIgnoreUnannotated
public class EquipManufactureRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "6775")
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "编码 唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("编码 唯一")
private String code;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@ExcelProperty("名称")
private String name;
@Schema(description = "类型", example = "2")
@ExcelProperty("类型")
private String type;
@Schema(description = "型号")
@ExcelProperty("型号")
private String model;
@Schema(description = "状态,1表示正常2表示禁用默认是1", example = "2")
@ExcelProperty("状态,1表示正常2表示禁用默认是1")
private Integer status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -1,33 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.equipmanufacture.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
@Schema(description = "管理后台 - 制造设备新增/修改 Request VO")
@Data
public class EquipManufactureSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "6775")
private Long id;
@Schema(description = "编码 唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "编码 唯一不能为空")
private String code;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@NotEmpty(message = "名称不能为空")
private String name;
@Schema(description = "类型", example = "2")
private String type;
@Schema(description = "型号")
private String model;
@Schema(description = "状态,1表示正常2表示禁用默认是1", example = "2")
private Integer status;
}

@ -1,103 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.invoice;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import com.chanko.yunxi.mes.module.heli.controller.admin.invoice.vo.InvoicePageReqVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.invoice.vo.InvoiceRespVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.invoice.vo.InvoiceSaveReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.invoice.InvoiceDO;
import com.chanko.yunxi.mes.module.heli.service.invoice.InvoiceService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 财务发票")
@RestController
@RequestMapping("/heli/invoice")
@Validated
public class InvoiceController {
@Resource
private InvoiceService invoiceService;
@PostMapping("/create")
@Operation(summary = "创建财务发票")
@PreAuthorize("@ss.hasPermission('heli:invoice:create')")
public CommonResult<Long> createInvoice(@Valid @RequestBody InvoiceSaveReqVO createReqVO) {
return success(invoiceService.createInvoice(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新财务发票")
@PreAuthorize("@ss.hasPermission('heli:invoice:update')")
public CommonResult<Boolean> updateInvoice(@Valid @RequestBody InvoiceSaveReqVO updateReqVO) {
invoiceService.updateInvoice(updateReqVO);
return success(true);
}
@PostMapping("/operate")
@Operation(summary = "操作发票")
@PreAuthorize("@ss.hasPermission('heli:invoice:update')")
@OperateLog(enable = false)
@Transactional(rollbackFor = Exception.class)
public CommonResult operate(@Valid @RequestBody InvoiceSaveReqVO operateReqVO) {
return success(invoiceService.operate(operateReqVO));
}
@DeleteMapping("/delete")
@Operation(summary = "删除财务发票")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:invoice:delete')")
public CommonResult<Boolean> deleteInvoice(@RequestParam("id") Long id) {
invoiceService.deleteInvoice(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得财务发票")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:invoice:query')")
public CommonResult<InvoiceRespVO> getInvoice(@RequestParam("id") Long id, @RequestParam("businessType") String businessType) {
InvoiceDO invoice = invoiceService.getInvoice(id, businessType);
return success(BeanUtils.toBean(invoice, InvoiceRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得财务发票分页")
@PreAuthorize("@ss.hasPermission('heli:invoice:query')")
public CommonResult<PageResult<InvoiceRespVO>> getInvoicePage(@Valid InvoicePageReqVO pageReqVO) {
PageResult<InvoiceDO> pageResult = invoiceService.getInvoicePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, InvoiceRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出财务发票 Excel")
@PreAuthorize("@ss.hasPermission('heli:invoice:export')")
@OperateLog(type = EXPORT)
public void exportInvoiceExcel(@Valid InvoicePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<InvoiceDO> list = invoiceService.getInvoicePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "财务发票.xls", "数据", InvoiceRespVO.class,
BeanUtils.toBean(list, InvoiceRespVO.class));
}
}

@ -1,68 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.invoice.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 财务发票分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class InvoicePageReqVO extends PageParam {
@Schema(description = "业务类型 FINANCE_MAKE|FINANCE_RECEIVE 开票|收票", example = "2")
private String businessType;
@Schema(description = "订单id", example = "30302")
private Long orderId;
@Schema(description = "发票号码")
private String number;
@Schema(description = "发票类型", example = "1")
private String type;
@Schema(description = "开票日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] billingDate;
@Schema(description = "发票金额")
private BigDecimal amount;
@Schema(description = "税率")
private BigDecimal rate;
@Schema(description = "备注", example = "你说的对")
private String remark;
@Schema(description = "提交人")
private Long submitter;
@Schema(description = "提交时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] submitTime;
@Schema(description = "作废人")
private Long canceller;
@Schema(description = "作废时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] cancelTime;
@Schema(description = "单据状态 已保存|已提交|已作废 1|2|3", example = "1")
private Integer status;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "订单编号", example = "30302")
private String orderCode;
}

@ -1,90 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.invoice.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 财务发票 Response VO")
@Data
@ExcelIgnoreUnannotated
public class InvoiceRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "9244")
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "业务类型 FINANCE_MAKE|FINANCE_RECEIVE 开票|收票", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("业务类型 FINANCE_MAKE|FINANCE_RECEIVE 开票|收票")
private String businessType;
@Schema(description = "订单id", example = "30302")
@ExcelProperty("订单id")
private Long orderId;
@Schema(description = "发票号码", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("发票号码")
private String number;
@Schema(description = "发票类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty(value = "发票类型", converter = DictConvert.class)
@DictFormat("heli_invoice_type") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private String type;
@Schema(description = "开票日期", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("开票日期")
private LocalDateTime billingDate;
@Schema(description = "发票金额", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("发票金额")
private BigDecimal amount;
@Schema(description = "税率", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("税率")
private BigDecimal rate;
@Schema(description = "备注", example = "你说的对")
@ExcelProperty("备注")
private String remark;
@Schema(description = "提交人")
@ExcelProperty("提交人")
private Long submitter;
@Schema(description = "提交时间")
@ExcelProperty("提交时间")
private LocalDateTime submitTime;
@Schema(description = "作废人")
@ExcelProperty("作废人")
private Long canceller;
@Schema(description = "作废时间")
@ExcelProperty("作废时间")
private LocalDateTime cancelTime;
@Schema(description = "单据状态 已保存|已提交|已作废 1|2|3", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("单据状态 已保存|已提交|已作废 1|2|3")
private Integer status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "提交人名称")
private String submitterName;
@Schema(description = "创建人名称")
private String creatorName;
@Schema(description = "作废人名称")
private String cancellerName;
@Schema(description = "订单编号")
private String orderCode;
}

@ -1,73 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.invoice.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 财务发票新增/修改 Request VO")
@Data
public class InvoiceSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "9244")
private Long id;
@Schema(description = "业务类型 FINANCE_MAKE|FINANCE_RECEIVE 开票|收票", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotEmpty(message = "业务类型 FINANCE_MAKE|FINANCE_RECEIVE 开票|收票不能为空")
private String businessType;
@Schema(description = "订单id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "订单不能为空")
private Long orderId;
@Schema(description = "发票号码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "发票号码不能为空")
private String number;
@Schema(description = "发票类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "发票类型不能为空")
private String type;
@Schema(description = "开票日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "开票日期不能为空")
private LocalDateTime billingDate;
@Schema(description = "发票金额", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "发票金额不能为空")
private BigDecimal amount;
@Schema(description = "税率", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "税率不能为空")
private BigDecimal rate;
@Schema(description = "备注", example = "你说的对")
private String remark;
@Schema(description = "提交人")
private Long submitter;
@Schema(description = "提交时间")
private LocalDateTime submitTime;
@Schema(description = "作废人")
private Long canceller;
@Schema(description = "作废时间")
private LocalDateTime cancelTime;
@Schema(description = "单据状态 已保存|已提交|已作废 1|2|3", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "单据状态 已保存|已提交|已作废 1|2|3不能为空")
private Integer status;
@Schema(description = "操作类型")
@NotBlank(message = "操作类型不能为空")
private String active;
@Schema(description = "操作意见")
private String activeOpinion;
}

@ -1,125 +1,95 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.material;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import com.chanko.yunxi.mes.module.heli.controller.admin.material.vo.MaterialExcelVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.material.vo.MaterialPageReqVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.material.vo.MaterialRespVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.material.vo.MaterialSaveReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
import com.chanko.yunxi.mes.module.heli.service.material.MaterialService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.util.List;
import java.util.Map;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 物料")
@RestController
@RequestMapping("/heli/material")
@Validated
public class MaterialController {
@Resource
private MaterialService materialService;
@PostMapping("/create")
@Operation(summary = "创建物料")
@PreAuthorize("@ss.hasPermission('heli:material:create')")
public CommonResult<Long> createMaterial(@Valid @RequestBody MaterialSaveReqVO createReqVO) {
return success(materialService.createMaterial(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新物料")
@PreAuthorize("@ss.hasPermission('heli:material:update')")
public CommonResult<Boolean> updateMaterial(@Valid @RequestBody MaterialSaveReqVO updateReqVO) {
materialService.updateMaterial(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除物料")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:material:delete')")
public CommonResult<Boolean> deleteMaterial(@RequestParam("id") Long id) {
materialService.deleteMaterial(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得物料")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:material:query')")
public CommonResult<MaterialRespVO> getMaterial(@RequestParam("id") Long id) {
MaterialDO material = materialService.getMaterial(id);
return success(BeanUtils.toBean(material, MaterialRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得物料分页")
@PreAuthorize("@ss.hasPermission('heli:material:query')")
public CommonResult<PageResult<MaterialRespVO>> getMaterialPage(@Valid MaterialPageReqVO pageReqVO) {
PageResult<MaterialDO> pageResult = materialService.getMaterialPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MaterialRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出物料 Excel")
@PreAuthorize("@ss.hasPermission('heli:material:export')")
@OperateLog(type = EXPORT)
public void exportMaterialExcel(@Valid MaterialPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MaterialDO> list = materialService.getMaterialPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "物料.xls", "数据", MaterialRespVO.class,
BeanUtils.toBean(list, MaterialRespVO.class));
}
@GetMapping({"/all-simples"})
@Operation(summary = "TODO:获取物料精简信息列表", description = "只包含被开启的物料,主要用于前端的下拉选项")
public CommonResult<List<Map<String, Object>> > getSimpleList() {
List<Map<String, Object>> list = materialService.getSimpleList();
// 拼接数据
return success(list);
}
@GetMapping({"/all-simples-virtual"})
@Operation(summary = "TODO:获取物料精简信息列表", description = "只包含被开启的物料,主要用于前端的下拉选项")
public CommonResult<List<Map<String, Object>> > getSimpleVirtualList() {
List<Map<String, Object>> list = materialService.selectSimpleVirtualList();
// 拼接数据
return success(list);
}
@PostMapping("/import")
@Operation(summary = "导入用户")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "updateSupport", description = "是否支持更新,默认为 false", example = "true")
})
public CommonResult<Void> importExcel(@RequestParam("file") MultipartFile file,
@RequestParam(value = "updateSupport", required = false, defaultValue = "false") Boolean updateSupport) throws Exception {
List<MaterialExcelVO> list = ExcelUtils.read(file, MaterialExcelVO.class);
materialService.importExcel(list, updateSupport);
return success(null);
}
}
package com.chanko.yunxi.mes.module.heli.controller.admin.material;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.material.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
import com.chanko.yunxi.mes.module.heli.service.material.MaterialService;
@Tag(name = "管理后台 - 物料")
@RestController
@RequestMapping("/heli/material")
@Validated
public class MaterialController {
@Resource
private MaterialService materialService;
@PostMapping("/create")
@Operation(summary = "创建物料")
@PreAuthorize("@ss.hasPermission('heli:material:create')")
public CommonResult<Long> createMaterial(@Valid @RequestBody MaterialSaveReqVO createReqVO) {
return success(materialService.createMaterial(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新物料")
@PreAuthorize("@ss.hasPermission('heli:material:update')")
public CommonResult<Boolean> updateMaterial(@Valid @RequestBody MaterialSaveReqVO updateReqVO) {
materialService.updateMaterial(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除物料")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:material:delete')")
public CommonResult<Boolean> deleteMaterial(@RequestParam("id") Long id) {
materialService.deleteMaterial(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得物料")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:material:query')")
public CommonResult<MaterialRespVO> getMaterial(@RequestParam("id") Long id) {
MaterialDO material = materialService.getMaterial(id);
return success(BeanUtils.toBean(material, MaterialRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得物料分页")
@PreAuthorize("@ss.hasPermission('heli:material:query')")
public CommonResult<PageResult<MaterialRespVO>> getMaterialPage(@Valid MaterialPageReqVO pageReqVO) {
PageResult<MaterialDO> pageResult = materialService.getMaterialPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MaterialRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出物料 Excel")
@PreAuthorize("@ss.hasPermission('heli:material:export')")
@OperateLog(type = EXPORT)
public void exportMaterialExcel(@Valid MaterialPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MaterialDO> list = materialService.getMaterialPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "物料.xls", "数据", MaterialRespVO.class,
BeanUtils.toBean(list, MaterialRespVO.class));
}
}

@ -1,70 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.material.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 物料 Response VO")
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = false)
public class MaterialExcelVO {
@NotBlank(message = "物料编码 不能为空")
@ExcelProperty("*物料编码")
private String code;
@NotBlank(message = "物料名称 不能为空")
@ExcelProperty("*物料名称")
private String name;
@ExcelProperty(value = "*物料类型", converter = DictConvert.class)
@DictFormat("heli_material_type")
@NotBlank(message = "物料类型 不能为空")
private String materialType;
@NotBlank(message = "系统单位 不能为空")
@ExcelProperty(value = "*系统单位", converter = DictConvert.class)
@DictFormat("heli_material_unit")
private String unit;
@ExcelProperty("物料简称")
private String shortName;
@ExcelProperty("规格/型号")
private String spec;
@ExcelProperty("品牌")
private String brand;
@ExcelProperty(value = "物料主要来源", converter = DictConvert.class)
@DictFormat("heli_material_original")
private Integer mainFrom;
@ExcelProperty("首选供应商")
private String mainSupplierName;
@ExcelProperty("销项/进项税率(%")
private BigDecimal outputInputTaxRate;
@ExcelProperty("安全库存")
private BigDecimal invSafe;
@ExcelProperty("物料条码")
private String barcode;
@ExcelProperty("备注")
private String description;
}

@ -24,9 +24,6 @@ public class MaterialPageReqVO extends PageParam {
@Schema(description = "物料名称", example = "李四")
private String name;
@Schema(description = "物料名称", example = "李四")
private String codeAndName;
@Schema(description = "品牌")
private String brand;

@ -27,9 +27,6 @@ public class MaterialRespVO {
@ExcelProperty("物料名称")
private String name;
@Schema(description = "物料名称和编码")
private String codeAndName;
@Schema(description = "品牌")
@ExcelProperty("品牌")
private String brand;

@ -15,6 +15,7 @@ public class MaterialSaveReqVO {
private Long id;
@Schema(description = "物料编码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "物料编码不能为空")
private String code;
@Schema(description = "物料名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")

@ -1,95 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplan.MaterialPlanDO;
import com.chanko.yunxi.mes.module.heli.service.materialplan.MaterialPlanService;
@Tag(name = "管理后台 - 物料需求计划")
@RestController
@RequestMapping("/heli/material-plan")
@Validated
public class MaterialPlanController {
@Resource
private MaterialPlanService materialPlanService;
@PostMapping("/create")
@Operation(summary = "创建物料需求计划")
@PreAuthorize("@ss.hasPermission('heli:material-plan:create')")
public CommonResult<Long> createMaterialPlan(@Valid @RequestBody MaterialPlanSaveReqVO createReqVO) {
return success(materialPlanService.createMaterialPlan(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新物料需求计划")
@PreAuthorize("@ss.hasPermission('heli:material-plan:update')")
public CommonResult<Boolean> updateMaterialPlan(@Valid @RequestBody MaterialPlanSaveReqVO updateReqVO) {
materialPlanService.updateMaterialPlan(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除物料需求计划")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:material-plan:delete')")
public CommonResult<Boolean> deleteMaterialPlan(@RequestParam("id") Long id) {
materialPlanService.deleteMaterialPlan(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得物料需求计划")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:material-plan:query')")
public CommonResult<MaterialPlanRespVO> getMaterialPlan(@RequestParam("id") Long id) {
MaterialPlanDO materialPlan = materialPlanService.getMaterialPlan(id);
return success(BeanUtils.toBean(materialPlan, MaterialPlanRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得物料需求计划分页")
@PreAuthorize("@ss.hasPermission('heli:material-plan:query')")
public CommonResult<PageResult<MaterialPlanRespVO>> getMaterialPlanPage(@Valid MaterialPlanPageReqVO pageReqVO) {
PageResult<MaterialPlanDO> pageResult = materialPlanService.getMaterialPlanPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MaterialPlanRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出物料需求计划 Excel")
@PreAuthorize("@ss.hasPermission('heli:material-plan:export')")
@OperateLog(type = EXPORT)
public void exportMaterialPlanExcel(@Valid MaterialPlanPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MaterialPlanDO> list = materialPlanService.getMaterialPlanPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "物料需求计划.xls", "数据", MaterialPlanRespVO.class,
BeanUtils.toBean(list, MaterialPlanRespVO.class));
}
}

@ -1,60 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 物料需求计划分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MaterialPlanPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一")
private Long id;
@Schema(description = "物料计划单号")
private String projectMaterialPlanNo;
@Schema(description = "生产计划单号")
private String planNo;
@Schema(description = "项目名称")
private String projectName;
@Schema(description = "订单id")
private Long projectId;
@Schema(description = "生产计划id")
private Long projectPlanId;
@Schema(description = "送审人")
private Long submitUserId;
@Schema(description = "送审时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] submitTime;
@Schema(description = "审核人")
private Long auditor;
@Schema(description = "审核时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] auditTime;
@Schema(description = "状态,1已保存2已送审3已审核4已打回 默认是1")
private Integer status;
@Schema(description = "备注")
private String description;
@Schema(description = "创建时间")
private String createTime;
}

@ -1,75 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
@Schema(description = "管理后台 - 物料需求计划 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MaterialPlanRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "物料计划单号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("物料计划单号")
private String projectMaterialPlanNo;
@Schema(description = "生产计划单号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("生产计划单号")
private String planNo;
@Schema(description = "项目单号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("项目单号")
private String projectName;
@Schema(description = "订单id")
@ExcelProperty("订单id")
private Long projectId;
@Schema(description = "生产计划id")
@ExcelProperty("生产计划id")
private Long projectPlanId;
@Schema(description = "送审人")
@ExcelProperty("送审人")
private Long submitUserId;
@Schema(description = "送审时间")
@ExcelProperty("送审时间")
private LocalDateTime submitTime;
@Schema(description = "审核人")
@ExcelProperty("审核人")
private Long auditor;
@Schema(description = "审核时间")
@ExcelProperty("审核时间")
private LocalDateTime auditTime;
@Schema(description = "状态,1已保存2已送审3已审核4已打回 默认是1")
@ExcelProperty(value = "状态,1已保存2已送审3已审核4已打回 默认是1", converter = DictConvert.class)
@DictFormat("heli_project_material_plan_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private Integer status;
@Schema(description = "备注")
@ExcelProperty("备注")
private String description;
@Schema(description = "创建人")
@ExcelProperty("创建人")
private Long creator;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -1,45 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplan.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 物料需求计划新增/修改 Request VO")
@Data
public class MaterialPlanSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "物料计划单号", requiredMode = Schema.RequiredMode.REQUIRED)
private String projectMaterialPlanNo;
@Schema(description = "订单id")
private Long projectId;
@Schema(description = "生产计划id")
private Long projectPlanId;
@Schema(description = "送审人")
private Long submitUserId;
@Schema(description = "送审时间")
private LocalDateTime submitTime;
@Schema(description = "审核人")
private Long auditor;
@Schema(description = "审核时间")
private LocalDateTime auditTime;
@Schema(description = "状态,1已保存2已送审3已审核4已打回 默认是1")
private Integer status;
@Schema(description = "备注")
private String description;
}

@ -1,115 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
import com.chanko.yunxi.mes.module.heli.service.processbom.ProcessBomService;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplanboom.MaterialPlanBoomDO;
import com.chanko.yunxi.mes.module.heli.service.materialplanboom.MaterialPlanBoomService;
@Tag(name = "管理后台 - 物料需求计划加工件明细")
@RestController
@RequestMapping("/heli/material-plan-boom")
@Validated
public class MaterialPlanBoomController {
@Resource
private MaterialPlanBoomService materialPlanBoomService;
@PostMapping("/create")
@Operation(summary = "创建物料需求计划加工件明细")
@PreAuthorize("@ss.hasPermission('heli:material-plan-boom:create')")
public CommonResult<Long> createMaterialPlanBoom(@Valid @RequestBody MaterialPlanBoomSaveReqVO createReqVO) {
return success(materialPlanBoomService.createMaterialPlanBoom(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新物料需求计划加工件明细")
@PreAuthorize("@ss.hasPermission('heli:material-plan-boom:update')")
public CommonResult<Boolean> updateMaterialPlanBoom(@Valid @RequestBody MaterialPlanBoomSaveReqVO updateReqVO) {
materialPlanBoomService.updateMaterialPlanBoom(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除物料需求计划加工件明细")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:material-plan-boom:delete')")
public CommonResult<Boolean> deleteMaterialPlanBoom(@RequestParam("id") Long id) {
materialPlanBoomService.deleteMaterialPlanBoom(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得物料需求计划加工件明细")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:material-plan-boom:query')")
public CommonResult<MaterialPlanBoomRespVO> getMaterialPlanBoom(@RequestParam("id") Long id) {
MaterialPlanBoomDO materialPlanBoom = materialPlanBoomService.getMaterialPlanBoom(id);
return success(BeanUtils.toBean(materialPlanBoom, MaterialPlanBoomRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得物料需求计划加工件明细分页")
@PreAuthorize("@ss.hasPermission('heli:material-plan-boom:query')")
public CommonResult<PageResult<MaterialPlanBoomRespVO>> getMaterialPlanBoomPage(@Valid MaterialPlanBoomPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
PageResult<MaterialPlanBoomDO> pageResult = materialPlanBoomService.getMaterialPlanBoomPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MaterialPlanBoomRespVO.class));
}
@GetMapping("/page-sum")
@Operation(summary = "获得物料需求计划加工件明细分页")
@PreAuthorize("@ss.hasPermission('heli:material-plan-boom:query')")
public CommonResult<PageResult<MaterialPlanBoomRespVO>> getMaterialPlanBoomSumPage(@Valid MaterialPlanBoomPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
PageResult<MaterialPlanBoomDO> pageResult = materialPlanBoomService.getMaterialPlanBoomSumPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MaterialPlanBoomRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出物料需求计划加工件明细 Excel")
@PreAuthorize("@ss.hasPermission('heli:material-plan-boom:export')")
@OperateLog(type = EXPORT)
public void exportMaterialPlanBoomExcel(@Valid MaterialPlanBoomPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MaterialPlanBoomDO> list = materialPlanBoomService.getMaterialPlanBoomPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "物料需求计划加工件明细.xls", "数据", MaterialPlanBoomRespVO.class,
BeanUtils.toBean(list, MaterialPlanBoomRespVO.class));
}
@GetMapping("/boom")
@Operation(summary = "获得物料需求计划加工件明细分页")
@PreAuthorize("@ss.hasPermission('heli:material-plan-boom:query')")
public CommonResult<PageResult<ProcessBomDetailDO>> getBoomByProjectPlanId(@Valid ProcessBoomPageReqVO pageReqVO) {
PageResult<ProcessBomDetailDO> pageResult = materialPlanBoomService.getProcessBoomDetailList(pageReqVO);
return success(BeanUtils.toBean(pageResult, ProcessBomDetailDO.class));
}
}

@ -1,54 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 物料需求计划加工件明细分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MaterialPlanBoomPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一")
private Long id;
@Schema(description = "物料需求计划id")
private Long projectMaterialPlanId;
@Schema(description = "工艺boom明细id零件类型加工件")
private Long boomDetailId;
@Schema(description = "订单子项目id")
private Long projectPlanSubId;
@Schema(description = "需求数量")
private BigDecimal boomAmount;
@Schema(description = "需求到货日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] boomArriveDate;
@Schema(description = "备注")
private String description;
@Schema(description = "零件名称")
private String materialName;
@Schema(description = "规格型号")
private String boomSpec;
@Schema(description = "材质")
private Long compositionId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -1,71 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 物料需求计划加工件明细 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MaterialPlanBoomRespVO extends PageParam {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "物料需求计划id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("物料需求计划id")
private Long projectMaterialPlanId;
@Schema(description = "工艺boom明细id零件类型加工件", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("工艺boom明细id零件类型加工件")
private Long boomDetailId;
@Schema(description = "订单子项目id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("订单子项目id")
private Long projectPlanSubId;
@Schema(description = "需求数量")
@ExcelProperty("需求数量")
private BigDecimal boomAmount;
@Schema(description = "需求到货日期")
@ExcelProperty("需求到货日期")
private LocalDateTime boomArriveDate;
@Schema(description = "备注")
@ExcelProperty("备注")
private String description;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "零件名称")
@ExcelProperty("零件名称")
private String materialName;
@Schema(description = "子项目编号")
@ExcelProperty("子项目编号")
private String projectSubCode;
@Schema(description = "规格型号")
@ExcelProperty("规格型号")
private String boomSpec;
@Schema(description = "系统单位")
@ExcelProperty("系统单位")
private String boomUnit;
@Schema(description = "材质")
@ExcelProperty("材质")
private String compositionName;
@Schema(description = "材质id")
@ExcelProperty("材质id")
private Long compositionId;
}

@ -1,40 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 物料需求计划加工件明细新增/修改 Request VO")
@Data
public class MaterialPlanBoomSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "物料需求计划id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "物料需求计划id不能为空")
private Long projectMaterialPlanId;
@Schema(description = "工艺boom明细id零件类型加工件", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "工艺boom明细id零件类型加工件不能为空")
private Long boomDetailId;
@Schema(description = "订单子项目id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "订单子项目id不能为空")
private Long projectPlanSubId;
@Schema(description = "需求数量")
private BigDecimal boomAmount;
@Schema(description = "需求到货日期")
private LocalDateTime boomArriveDate;
@Schema(description = "备注")
private String description;
}

@ -1,30 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 物料需求计划加工件明细分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ProcessBoomPageReqVO extends PageParam {
@Schema(description = "生产计划id")
private Long planId;
@Schema(description = "加工件名称")
private String materialName;
@Schema(description = "生产计划子项目编号")
private String projectSubCode;
}

@ -1,57 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplanboom.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 物料需求计划加工件明细 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ProcessBoomRespVO {
@Schema(description = "生产计划Id")
private Long planId;
@Schema(description = "物料Id")
private Long materialId;
@Schema(description = "零件名称")
private String materialName;
@Schema(description = "生产计划子项目id")
private Long projectPlanSubId;
@Schema(description = "子项目编号")
private String projectSubCode;
@Schema(description = "加工件Id")
private Long boomDetailId;
@Schema(description = "需求数量")
private BigDecimal boomAmount;
@Schema(description = "需求到货日期")
private LocalDateTime boomArriveDate;
@Schema(description = "备注")
@ExcelProperty("备注")
private String description;
@Schema(description = "规格型号")
@ExcelProperty("规格型号")
private String boomSpec;
@Schema(description = "系统单位")
@ExcelProperty("系统单位")
private String boomUnit;
@Schema(description = "材质")
@ExcelProperty("材质")
private String compositionName;
}

@ -1,103 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplandetail;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.materialplandetail.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.materialplandetail.MaterialPlanDetailDO;
import com.chanko.yunxi.mes.module.heli.service.materialplandetail.MaterialPlanDetailService;
@Tag(name = "管理后台 - 物料需求计划物料详情")
@RestController
@RequestMapping("/heli/material-plan-detail")
@Validated
public class MaterialPlanDetailController {
@Resource
private MaterialPlanDetailService materialPlanDetailService;
@PostMapping("/create")
@Operation(summary = "创建物料需求计划物料详情")
@PreAuthorize("@ss.hasPermission('heli:material-plan-detail:create')")
public CommonResult<Long> createMaterialPlanDetail(@Valid @RequestBody MaterialPlanDetailSaveReqVO createReqVO) {
return success(materialPlanDetailService.createMaterialPlanDetail(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新物料需求计划物料详情")
@PreAuthorize("@ss.hasPermission('heli:material-plan-detail:update')")
public CommonResult<Boolean> updateMaterialPlanDetail(@Valid @RequestBody MaterialPlanDetailSaveReqVO updateReqVO) {
materialPlanDetailService.updateMaterialPlanDetail(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除物料需求计划物料详情")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:material-plan-detail:delete')")
public CommonResult<Boolean> deleteMaterialPlanDetail(@RequestParam("id") Long id) {
materialPlanDetailService.deleteMaterialPlanDetail(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得物料需求计划物料详情")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:material-plan-detail:query')")
public CommonResult<MaterialPlanDetailRespVO> getMaterialPlanDetail(@RequestParam("id") Long id) {
MaterialPlanDetailDO materialPlanDetail = materialPlanDetailService.getMaterialPlanDetail(id);
return success(BeanUtils.toBean(materialPlanDetail, MaterialPlanDetailRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得物料需求计划物料详情分页")
@PreAuthorize("@ss.hasPermission('heli:material-plan-detail:query')")
public CommonResult<PageResult<MaterialPlanDetailRespVO>> getMaterialPlanDetailPage(@Valid MaterialPlanDetailPageReqVO pageReqVO) {
PageResult<MaterialPlanDetailDO> pageResult = materialPlanDetailService.getMaterialPlanDetailPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MaterialPlanDetailRespVO.class));
}
@GetMapping("/page-sum")
@Operation(summary = "获得物料需求计划物料详情分页")
@PreAuthorize("@ss.hasPermission('heli:material-plan-detail:query')")
public CommonResult<PageResult<MaterialPlanDetailRespVO>> getMaterialPlanDetailSumPage(@Valid MaterialPlanDetailPageReqVO pageReqVO) {
PageResult<MaterialPlanDetailDO> pageResult = materialPlanDetailService.getMaterialPlanDetailSumPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MaterialPlanDetailRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出物料需求计划物料详情 Excel")
@PreAuthorize("@ss.hasPermission('heli:material-plan-detail:export')")
@OperateLog(type = EXPORT)
public void exportMaterialPlanDetailExcel(@Valid MaterialPlanDetailPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MaterialPlanDetailDO> list = materialPlanDetailService.getMaterialPlanDetailPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "物料需求计划物料详情.xls", "数据", MaterialPlanDetailRespVO.class,
BeanUtils.toBean(list, MaterialPlanDetailRespVO.class));
}
}

@ -1,55 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplandetail.vo;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 物料需求计划物料详情分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class MaterialPlanDetailPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一")
private Long id;
@Schema(description = "物料需求采购计划id")
private Long projectMaterialPlanId;
@Schema(description = "物料id")
private Long materialId;
@Schema(description = "物料名称")
private String matName;
@Schema(description = "物料编码")
private String matCode;
@Schema(description = "物料类型")
private Long matType;
@Schema(description = "子项目编号")
private Long projectSubId;
@Schema(description = "需求数量")
private BigDecimal requireAmount;
@Schema(description = "需求到货日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] requireArriveTime;
@Schema(description = "备注")
private String description;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -1,78 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplandetail.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 物料需求计划物料详情 Response VO")
@Data
@ExcelIgnoreUnannotated
public class MaterialPlanDetailRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "物料需求采购计划id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("物料需求采购计划id")
private Long projectMaterialPlanId;
@Schema(description = "物料id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("物料id")
private Long materialId;
@Schema(description = "子项目编号")
@ExcelProperty("子项目编号")
private Long projectSubId;
@Schema(description = "需求数量")
@ExcelProperty("需求数量")
private BigDecimal requireAmount;
@Schema(description = "库存数量")
@ExcelProperty("库存数量")
private BigDecimal matRest;
@Schema(description = "需求到货日期")
@ExcelProperty("需求到货日期")
private LocalDateTime requireArriveTime;
@Schema(description = "备注")
@ExcelProperty("备注")
private String description;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "物料id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("物料id")
private Long matId;
@Schema(description = "备注")
@ExcelProperty("物料名称")
private String matName;
@Schema(description = "备注")
@ExcelProperty("物料编码")
private String matCode;
@Schema(description = "备注")
@ExcelProperty("物料规格型号")
private String matSpec;
@Schema(description = "备注")
@ExcelProperty("物料单位")
private String matUnit;
@Schema(description = "备注")
@ExcelProperty("物料类型")
private String matType;
}

@ -1,40 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.materialplandetail.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.math.BigDecimal;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 物料需求计划物料详情新增/修改 Request VO")
@Data
public class MaterialPlanDetailSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "物料需求采购计划id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "物料需求采购计划id不能为空")
private Long projectMaterialPlanId;
@Schema(description = "物料id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "物料id不能为空")
private Long materialId;
@Schema(description = "子项目编号")
private Long projectSubId;
@Schema(description = "需求数量")
private BigDecimal requireAmount;
@Schema(description = "需求到货日期")
private LocalDateTime requireArriveTime;
@Schema(description = "备注")
private String description;
}

@ -1,110 +1,95 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.mouldtype;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.mouldtype.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.mouldtype.MouldTypeDO;
import com.chanko.yunxi.mes.module.heli.service.mouldtype.MouldTypeService;
@Tag(name = "管理后台 - 模具类型")
@RestController
@RequestMapping("/heli/mould-type")
@Validated
public class MouldTypeController {
@Resource
private MouldTypeService mouldTypeService;
@PostMapping("/create")
@Operation(summary = "创建模具类型")
@PreAuthorize("@ss.hasPermission('heli:mould-type:create')")
public CommonResult<Long> createMouldType(@Valid @RequestBody MouldTypeSaveReqVO createReqVO) {
return success(mouldTypeService.createMouldType(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新模具类型")
@PreAuthorize("@ss.hasPermission('heli:mould-type:update')")
public CommonResult<Boolean> updateMouldType(@Valid @RequestBody MouldTypeSaveReqVO updateReqVO) {
mouldTypeService.updateMouldType(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除模具类型")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:mould-type:delete')")
public CommonResult<Boolean> deleteMouldType(@RequestParam("id") Long id) {
mouldTypeService.deleteMouldType(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得模具类型")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:mould-type:query')")
public CommonResult<MouldTypeRespVO> getMouldType(@RequestParam("id") Long id) {
MouldTypeDO mouldType = mouldTypeService.getMouldType(id);
return success(BeanUtils.toBean(mouldType, MouldTypeRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得模具类型分页")
@PreAuthorize("@ss.hasPermission('heli:mould-type:query')")
public CommonResult<PageResult<MouldTypeRespVO>> getMouldTypePage(@Valid MouldTypePageReqVO pageReqVO) {
PageResult<MouldTypeDO> pageResult = mouldTypeService.getMouldTypePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MouldTypeRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出模具类型 Excel")
@PreAuthorize("@ss.hasPermission('heli:mould-type:export')")
@OperateLog(type = EXPORT)
public void exportMouldTypeExcel(@Valid MouldTypePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MouldTypeDO> list = mouldTypeService.getMouldTypePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "模具类型.xls", "数据", MouldTypeRespVO.class,
BeanUtils.toBean(list, MouldTypeRespVO.class));
}
@GetMapping({"/all-simples"})
@Operation(summary = "TODO:获取模块类型信息列表", description = "只包含被开启的模块类型,主要用于前端的下拉选项")
public CommonResult<List<Map<String, Object>> > getSimpleList() {
List<Map<String, Object>> list = mouldTypeService.getMouldTypeSimpleList();
// 拼接数据
return success(list);
}
@GetMapping({"/all-no-status-simples"})
@Operation(summary = "TODO:获取无状态模块类型信息列表", description = "模块类型,主要用于前端的下拉选项")
public CommonResult<List<Map<String, Object>> > getNoStatusSimpleList() {
List<Map<String, Object>> list = mouldTypeService.getMouldTypeNoStatusSimpleList();
// 拼接数据
return success(list);
}
}
package com.chanko.yunxi.mes.module.heli.controller.admin.mouldtype;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.mouldtype.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.mouldtype.MouldTypeDO;
import com.chanko.yunxi.mes.module.heli.service.mouldtype.MouldTypeService;
@Tag(name = "管理后台 - 模具类型")
@RestController
@RequestMapping("/heli/mould-type")
@Validated
public class MouldTypeController {
@Resource
private MouldTypeService mouldTypeService;
@PostMapping("/create")
@Operation(summary = "创建模具类型")
@PreAuthorize("@ss.hasPermission('heli:mould-type:create')")
public CommonResult<Long> createMouldType(@Valid @RequestBody MouldTypeSaveReqVO createReqVO) {
return success(mouldTypeService.createMouldType(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新模具类型")
@PreAuthorize("@ss.hasPermission('heli:mould-type:update')")
public CommonResult<Boolean> updateMouldType(@Valid @RequestBody MouldTypeSaveReqVO updateReqVO) {
mouldTypeService.updateMouldType(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除模具类型")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:mould-type:delete')")
public CommonResult<Boolean> deleteMouldType(@RequestParam("id") Long id) {
mouldTypeService.deleteMouldType(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得模具类型")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:mould-type:query')")
public CommonResult<MouldTypeRespVO> getMouldType(@RequestParam("id") Long id) {
MouldTypeDO mouldType = mouldTypeService.getMouldType(id);
return success(BeanUtils.toBean(mouldType, MouldTypeRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得模具类型分页")
@PreAuthorize("@ss.hasPermission('heli:mould-type:query')")
public CommonResult<PageResult<MouldTypeRespVO>> getMouldTypePage(@Valid MouldTypePageReqVO pageReqVO) {
PageResult<MouldTypeDO> pageResult = mouldTypeService.getMouldTypePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, MouldTypeRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出模具类型 Excel")
@PreAuthorize("@ss.hasPermission('heli:mould-type:export')")
@OperateLog(type = EXPORT)
public void exportMouldTypeExcel(@Valid MouldTypePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<MouldTypeDO> list = mouldTypeService.getMouldTypePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "模具类型.xls", "数据", MouldTypeRespVO.class,
BeanUtils.toBean(list, MouldTypeRespVO.class));
}
}

@ -1,103 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plan;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plan.PlanDO;
import com.chanko.yunxi.mes.module.heli.service.plan.PlanService;
@Tag(name = "管理后台 - 生产计划")
@RestController
@RequestMapping("/heli/plan")
@Validated
public class PlanController {
@Resource
private PlanService planService;
@PostMapping("/create")
@Operation(summary = "创建生产计划")
@PreAuthorize("@ss.hasPermission('heli:plan:create')")
public CommonResult<Long> createPlan(@Valid @RequestBody PlanSaveReqVO createReqVO) {
return success(planService.createPlan(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新生产计划")
@PreAuthorize("@ss.hasPermission('heli:plan:update')")
public CommonResult<Boolean> updatePlan(@Valid @RequestBody PlanSaveReqVO updateReqVO) {
planService.updatePlan(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除生产计划")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:plan:delete')")
public CommonResult<Boolean> deletePlan(@RequestParam("id") Long id) {
planService.deletePlan(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得生产计划")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:plan:query')")
public CommonResult<PlanRespVO> getPlan(@RequestParam("id") Long id) {
PlanDO plan = planService.getPlan(id);
return success(BeanUtils.toBean(plan, PlanRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得生产计划分页")
@PreAuthorize("@ss.hasPermission('heli:plan:query')")
public CommonResult<PageResult<PlanRespVO>> getPlanPage(@Valid PlanPageReqVO pageReqVO) {
PageResult<PlanDO> pageResult = planService.getPlanPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, PlanRespVO.class));
}
@GetMapping("/page-by-status")
@Operation(summary = "获得生产计划分页")
@PreAuthorize("@ss.hasPermission('heli:plan:query')")
public CommonResult<PageResult<PlanRespVO>> getPlanPageByStatus(@Valid PlanPageReqVO pageReqVO) {
PageResult<PlanDO> pageResult = planService.getPlanPageByStatus(pageReqVO);
return success(BeanUtils.toBean(pageResult, PlanRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出生产计划 Excel")
@PreAuthorize("@ss.hasPermission('heli:plan:export')")
@OperateLog(type = EXPORT)
public void exportPlanExcel(@Valid PlanPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<PlanDO> list = planService.getPlanPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "生产计划.xls", "数据", PlanRespVO.class,
BeanUtils.toBean(list, PlanRespVO.class));
}
}

@ -1,96 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 生产计划分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PlanPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一", example = "15769")
private Long id;
@Schema(description = "计划单号")
private String planNo;
@Schema(description = "项目id")
private Long projectId;
@Schema(description = "项目编号")
private String projectCode;
@Schema(description = "客户名称")
private String businessManName;
@Schema(description = "项目名称")
private String projectName;
@Schema(description = "业务员")
private String customerName;
@Schema(description = "业务线")
private String businessLine;
@Schema(description = "性质")
private Integer property;
@Schema(description = "项目负责人")
private String projectOwner;
@Schema(description = "是否需要工艺:1表示需要0表示不需要")
private Integer hasCraft;
@Schema(description = "工艺负责人")
private String craftOwner;
@Schema(description = "工艺开始日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] craftStartDate;
@Schema(description = "工艺结束日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] craftEndDate;
@Schema(description = "编辑人")
private String editor;
@Schema(description = "编辑日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] editorDate;
@Schema(description = "审核人")
private String auditor;
@Schema(description = "审核日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] auditDate;
@Schema(description = "批准人")
private String approver;
@Schema(description = "批准日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] approveDate;
@Schema(description = "备注", example = "随便")
private String description;
@Schema(description = "状态,1未开始2生产中3已完成4已终止 默认是1", example = "2")
private Integer status;
@Schema(description = "项目变更次数")
private Integer changeNum;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -1,139 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
import com.chanko.yunxi.mes.framework.excel.core.annotations.DictFormat;
import com.chanko.yunxi.mes.framework.excel.core.convert.DictConvert;
@Schema(description = "管理后台 - 生产计划 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PlanRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "15769")
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "计划单号", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("计划单号")
private String planNo;
@Schema(description = "项目id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28157")
@ExcelProperty("项目id")
private Long projectId;
@Schema(description = "项目负责人")
@ExcelProperty("项目负责人")
private Long projectOwner;
@Schema(description = "项目编码")
@ExcelProperty("项目编码")
private String projectCode;
@Schema(description = "客户名称")
@ExcelProperty("客户名称")
private String customerName;
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String projectName;
@Schema(description = "业务员")
@ExcelProperty("业务员")
private String businessManName;
@Schema(description = "项目开始日期")
@ExcelProperty("项目开始日期")
private LocalDateTime projectStartTime;
@Schema(description = "项目结束日期")
@ExcelProperty("项目结束日期")
private LocalDateTime projectEndTime;
@Schema(description = "业务线")
@ExcelProperty("业务线")
private String businessLine;
@Schema(description = "性质")
@ExcelProperty("性质")
private Integer property;
@Schema(description = "是否已变更")
@ExcelProperty("是否已变更")
private Integer hasAlter;
@Schema(description = "是否紧急")
@ExcelProperty("是否紧急")
private Integer isUrgency;
@Schema(description = "是否需要工艺:1表示需要0表示不需要")
@ExcelProperty(value = "是否需要工艺:1表示需要0表示不需要", converter = DictConvert.class)
@DictFormat("heli_common_is_or_not") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private Integer hasCraft;
@Schema(description = "工艺负责人")
@ExcelProperty("工艺负责人")
private Long craftOwner;
@Schema(description = "工艺开始日期")
@ExcelProperty("工艺开始日期")
private LocalDateTime craftStartDate;
@Schema(description = "工艺结束日期")
@ExcelProperty("工艺结束日期")
private LocalDateTime craftEndDate;
@Schema(description = "工艺流程数组信息[{'id':1,'sdate':'','edate':'','owner':'','description':''}]")
@ExcelProperty("工艺流程数组信息[{'id':1,'sdate':'','edate':'','owner':'','description':''}]")
private String craftContent;
@Schema(description = "编辑人")
@ExcelProperty("编辑人")
private Long editor;
@Schema(description = "编辑日期")
@ExcelProperty("编辑日期")
private LocalDateTime editorDate;
@Schema(description = "审核人")
@ExcelProperty("审核人")
private Long auditor;
@Schema(description = "审核日期")
@ExcelProperty("审核日期")
private LocalDateTime auditDate;
@Schema(description = "批准人")
@ExcelProperty("批准人")
private Long approver;
@Schema(description = "批准日期")
@ExcelProperty("批准日期")
private LocalDateTime approveDate;
@Schema(description = "备注", example = "随便")
@ExcelProperty("备注")
private String description;
@Schema(description = "状态,1未开始2生产中3已完成4已终止 默认是1", example = "2")
@ExcelProperty("状态,1未开始2生产中3已完成4已终止 默认是1")
private Integer status;
@Schema(description = "项目变更次数")
@ExcelProperty("项目变更次数")
private Integer changeNum;
@Schema(description = "项目变更日期")
@ExcelProperty("项目变更日期")
private LocalDateTime changeLastDate;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

@ -1,70 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plan.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 生产计划新增/修改 Request VO")
@Data
public class PlanSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "15769")
private Long id;
@Schema(description = "计划单号", requiredMode = Schema.RequiredMode.REQUIRED)
private String planNo;
@Schema(description = "项目id", requiredMode = Schema.RequiredMode.REQUIRED, example = "28157")
@NotNull(message = "项目id不能为空")
private Long projectId;
@Schema(description = "项目负责人")
private String projectOwner;
@Schema(description = "是否需要工艺:1表示需要0表示不需要")
private Integer hasCraft;
@Schema(description = "工艺负责人")
private String craftOwner;
@Schema(description = "工艺开始日期")
private LocalDateTime craftStartDate;
@Schema(description = "工艺结束日期")
private LocalDateTime craftEndDate;
@Schema(description = "工艺流程数组信息[{'id':1,'sdate':'','edate':'','owner':'','description':''}]")
private String craftContent;
@Schema(description = "编辑人")
private String editor;
@Schema(description = "编辑日期")
private LocalDateTime editorDate;
@Schema(description = "审核人")
private String auditor;
@Schema(description = "审核日期")
private LocalDateTime auditDate;
@Schema(description = "批准人")
private String approver;
@Schema(description = "批准日期")
private LocalDateTime approveDate;
@Schema(description = "备注", example = "随便")
private String description;
@Schema(description = "状态,1未开始2生产中3已完成4已终止 默认是1", example = "2")
private Integer status;
@Schema(description = "项目变更次数")
private Integer changeNum;
}

@ -1,95 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plansub;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.plansub.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plansub.PlanSubDO;
import com.chanko.yunxi.mes.module.heli.service.plansub.PlanSubService;
@Tag(name = "管理后台 - 生产计划子项目")
@RestController
@RequestMapping("/heli/plan-sub")
@Validated
public class PlanSubController {
@Resource
private PlanSubService planSubService;
@PostMapping("/create")
@Operation(summary = "创建生产计划子项目")
@PreAuthorize("@ss.hasPermission('heli:plan-sub:create')")
public CommonResult<Long> createPlanSub(@Valid @RequestBody PlanSubSaveReqVO createReqVO) {
return success(planSubService.createPlanSub(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新生产计划子项目")
@PreAuthorize("@ss.hasPermission('heli:plan-sub:update')")
public CommonResult<Boolean> updatePlanSub(@Valid @RequestBody PlanSubSaveReqVO updateReqVO) {
planSubService.updatePlanSub(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除生产计划子项目")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:plan-sub:delete')")
public CommonResult<Boolean> deletePlanSub(@RequestParam("id") Long id) {
planSubService.deletePlanSub(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得生产计划子项目")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:plan-sub:query')")
public CommonResult<PlanSubRespVO> getPlanSub(@RequestParam("id") Long id) {
PlanSubDO planSub = planSubService.getPlanSub(id);
return success(BeanUtils.toBean(planSub, PlanSubRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得生产计划子项目分页")
@PreAuthorize("@ss.hasPermission('heli:plan-sub:query')")
public CommonResult<PageResult<PlanSubRespVO>> getPlanSubPage(@Valid PlanSubPageReqVO pageReqVO) {
PageResult<PlanSubDO> pageResult = planSubService.getPlanSubPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, PlanSubRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出生产计划子项目 Excel")
@PreAuthorize("@ss.hasPermission('heli:plan-sub:export')")
@OperateLog(type = EXPORT)
public void exportPlanSubExcel(@Valid PlanSubPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<PlanSubDO> list = planSubService.getPlanSubPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "生产计划子项目.xls", "数据", PlanSubRespVO.class,
BeanUtils.toBean(list, PlanSubRespVO.class));
}
}

@ -1,61 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plansub.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 生产计划子项目分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PlanSubPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一")
private Long id;
@Schema(description = "计划id")
private Long projectPlanId;
@Schema(description = "项目id")
private Long projectId;
@Schema(description = "子项目id")
private Long projectSubId;
@Schema(description = "模具类型id")
private Long mouldId;
@Schema(description = "设备id")
private Long equipId;
@Schema(description = "毛坯结束日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] blankDate;
@Schema(description = "毛坯负责人")
private String blankOwner;
@Schema(description = "2D结束日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] twoDimDate;
@Schema(description = "2D负责人")
private String twoDimOwner;
@Schema(description = "3D结束日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] threeDimDate;
@Schema(description = "3D负责人")
private String threeDimOwner;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

@ -1,79 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plansub.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 生产计划子项目 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PlanSubRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "计划id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("计划id")
private Long projectPlanId;
@Schema(description = "项目id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("项目id")
private Long projectId;
@Schema(description = "子项目id")
@ExcelProperty("子项目id")
private Long projectSubId;
@Schema(description = "子项目简称")
@ExcelProperty("子项目简称")
private String projectSubShortName;
@Schema(description = "子项目编码")
@ExcelProperty("子项目编码")
private String projectSubCode;
@Schema(description = "模具类型id")
@ExcelProperty("模具类型id")
private Long mouldId;
@Schema(description = "设备id")
@ExcelProperty("设备id")
private Long equipId;
@Schema(description = "毛坯结束日期")
@ExcelProperty("毛坯结束日期")
private LocalDateTime blankDate;
@Schema(description = "毛坯负责人")
@ExcelProperty("毛坯负责人")
private Long blankOwner;
@Schema(description = "2D结束日期")
@ExcelProperty("2D结束日期")
private LocalDateTime twoDimDate;
@Schema(description = "2D负责人")
@ExcelProperty("2D负责人")
private Long twoDimOwner;
@Schema(description = "3D结束日期")
@ExcelProperty("3D结束日期")
private LocalDateTime threeDimDate;
@Schema(description = "3D负责人")
@ExcelProperty("3D负责人")
private Long threeDimOwner;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "子项目名称")
private String projectSubName;
}

@ -1,58 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plansub.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 生产计划子项目新增/修改 Request VO")
@Data
public class PlanSubSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "计划id", requiredMode = Schema.RequiredMode.REQUIRED)
private Long projectPlanId;
@Schema(description = "项目id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "项目id不能为空")
private Long projectId;
@Schema(description = "子项目id")
private Long projectSubId;
@Schema(description = "子项目简称")
private String projectSubShortName;
@Schema(description = "子项目编号")
private String projectSubCode;
@Schema(description = "模具类型id")
private Long mouldId;
@Schema(description = "设备id")
private Long equipId;
@Schema(description = "毛坯结束日期")
private LocalDateTime blankDate;
@Schema(description = "毛坯负责人")
private String blankOwner;
@Schema(description = "2D结束日期")
private LocalDateTime twoDimDate;
@Schema(description = "2D负责人")
private String twoDimOwner;
@Schema(description = "3D结束日期")
private LocalDateTime threeDimDate;
@Schema(description = "3D负责人")
private String threeDimOwner;
}

@ -1,130 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plantask;
import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService;
import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.time.LocalDateTime;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.plantask.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantask.PlanTaskDO;
import com.chanko.yunxi.mes.module.heli.service.plantask.PlanTaskService;
@Tag(name = "管理后台 - 生产计划任务")
@RestController
@RequestMapping("/heli/plan-task")
@Validated
public class PlanTaskController {
@Resource
private PlanTaskService planTaskService;
@Resource
private OperateLogFrameworkService operateLogFrameworkService;
@Resource
private HttpServletRequest request;
@PostMapping("/create")
@Operation(summary = "创建生产计划任务")
@PreAuthorize("@ss.hasPermission('heli:plan-task:create')")
public CommonResult<Long> createPlanTask(@Valid @RequestBody PlanTaskSaveReqVO createReqVO) {
return success(planTaskService.createPlanTask(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新生产计划任务")
@PreAuthorize("@ss.hasPermission('heli:plan-task:update')")
public CommonResult<Boolean> updatePlanTask(@Valid @RequestBody PlanTaskSaveReqVO updateReqVO) {
LocalDateTime startTime = LocalDateTime.now();
planTaskService.updatePlanTask(updateReqVO);
// 手动记录日志
operateLogFrameworkService.createOperateLog(request,
startTime,
BusinesTypeEnum.PLAN_TASK.name(),
updateReqVO.getId(),
OperateTypeEnum.valueOf(updateReqVO.getActive()).getType(),
"");
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除生产计划任务")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:plan-task:delete')")
public CommonResult<Boolean> deletePlanTask(@RequestParam("id") Long id) {
planTaskService.deletePlanTask(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得生产计划任务")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:plan-task:query')")
public CommonResult<PlanTaskRespVO> getPlanTask(@RequestParam("id") Long id) {
PlanTaskDO planTask = planTaskService.getPlanTask(id);
return success(BeanUtils.toBean(planTask, PlanTaskRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得生产计划任务分页")
@PreAuthorize("@ss.hasPermission('heli:plan-task:query')")
public CommonResult<PageResult<PlanTaskRespVO>> getPlanTaskPage(@Valid PlanTaskPageReqVO pageReqVO) {
PageResult<PlanTaskDO> pageResult = planTaskService.getPlanTaskPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, PlanTaskRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出生产计划任务 Excel")
@PreAuthorize("@ss.hasPermission('heli:plan-task:export')")
@OperateLog(type = EXPORT)
public void exportPlanTaskExcel(@Valid PlanTaskPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<PlanTaskDO> list = planTaskService.getPlanTaskPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "生产计划任务.xls", "数据", PlanTaskRespVO.class,
BeanUtils.toBean(list, PlanTaskRespVO.class));
}
@GetMapping("/get-version-status")
@Operation(summary = "获得bom需要更新的状态")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:plan-task:query')")
public CommonResult<Integer> getPlanTaskBomStatus(@RequestParam("id") Long id) {
return success(planTaskService.getPlanTaskBomStatus(id));
}
@GetMapping("/refresh")
@Operation(summary = "刷新生产计划任务单最新数据")
@Parameter(name = "id", description = "生产计划id", required = true)
@PreAuthorize("@ss.hasPermission('heli:plan-task:query')")
public CommonResult<Integer> refreshPlanTaskByPlanId(@RequestParam("id") Long id) {
return success(planTaskService.refreshPlanTaskByPlanId(id));
}
}

@ -1,68 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plantask.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 生产计划任务分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PlanTaskPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一")
private Long id;
@Schema(description = "项目id")
private Long projectId;
@Schema(description = "生产计划id")
private Long projectPlanId;
@Schema(description = "生产计划子项目id")
private Long projectPlanSubId;
@Schema(description = "工艺bomid")
private Long processBomId;
@Schema(description = "生产计划编号,唯一")
private String taskNo;
@Schema(description = "bom版本号")
private Integer bomVersion;
@Schema(description = "备注")
private String description;
@Schema(description = "状态,1已保存2已提交3已终止 默认是1")
private Integer status;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "客户名称")
private String customerName;
@Schema(description = "项目编号")
private String projectCode;
@Schema(description = "项目名称")
private String projectName;
@Schema(description = "生产计划单号")
private String planNo;
@Schema(description = "子项目编号")
private String projectSubCode;
@Schema(description = "子项目名称")
private String projectSubName;
}

@ -1,88 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plantask.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 生产计划任务 Response VO")
@Data
@ExcelIgnoreUnannotated
public class PlanTaskRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "项目id")
@ExcelProperty("项目id")
private Long projectId;
@Schema(description = "生产计划id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("生产计划id")
private Long projectPlanId;
@Schema(description = "生产计划子项目id")
@ExcelProperty("生产计划子项目id")
private Long projectPlanSubId;
@Schema(description = "工艺bomid")
@ExcelProperty("工艺bomid")
private Long processBomId;
@Schema(description = "生产计划编号,唯一")
@ExcelProperty("生产计划编号,唯一")
private String taskNo;
@Schema(description = "bom版本号")
@ExcelProperty("bom版本号")
private Integer bomVersion;
@Schema(description = "备注")
@ExcelProperty("备注")
private String description;
@Schema(description = "状态,1已保存2已提交3已终止 默认是1")
@ExcelProperty("状态,1已保存2已提交3已终止 默认是1")
private Integer status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "客户名称")
@ExcelProperty("客户名称")
private String customerName;
@Schema(description = "项目编号")
@ExcelProperty("项目编号")
private String projectCode;
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String projectName;
@Schema(description = "生产计划编号")
@ExcelProperty("生产计划编号")
private String planNo;
@Schema(description = "子项目编号")
@ExcelProperty("子项目编号")
private String projectSubCode;
@Schema(description = "子项目名称")
@ExcelProperty("子项目名称")
private String projectSubName;
@Schema(description = "项目结束时间")
@ExcelProperty("项目结束时间")
private LocalDateTime projectEndTime;
@Schema(description = "bom编号")
@ExcelProperty("bom编号")
private String bomCode;
}

@ -1,49 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plantask.vo;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantaskbom.PlanTaskBomDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
@Schema(description = "管理后台 - 生产计划任务新增/修改 Request VO")
@Data
public class PlanTaskSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "项目id")
private Long projectId;
@Schema(description = "生产计划id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "生产计划id不能为空")
private Long projectPlanId;
@Schema(description = "生产计划子项目id")
private Long projectPlanSubId;
@Schema(description = "工艺bomid")
private Long processBomId;
@Schema(description = "生产计划编号,唯一")
private String taskNo;
@Schema(description = "bom版本号")
private Integer bomVersion;
@Schema(description = "备注")
private String description;
@Schema(description = "状态,1已保存2已提交3已终止 默认是1")
private Integer status;
@Schema(description = "操作类型")
private String active;
@Schema(description = "工艺bom明细列表")
private List<PlanTaskBomDO> bomDetails;
}

@ -1,95 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plantaskbom;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.chanko.yunxi.mes.module.heli.controller.admin.plantaskbom.vo.*;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.plantaskbom.PlanTaskBomDO;
import com.chanko.yunxi.mes.module.heli.service.plantaskbom.PlanTaskBomService;
@Tag(name = "管理后台 - 生产计划任务Bom")
@RestController
@RequestMapping("/heli/plan-task-bom")
@Validated
public class PlanTaskBomController {
@Resource
private PlanTaskBomService planTaskBomService;
@PostMapping("/create")
@Operation(summary = "创建生产计划任务Bom")
@PreAuthorize("@ss.hasPermission('heli:plan-task-bom:create')")
public CommonResult<Long> createPlanTaskBom(@Valid @RequestBody PlanTaskBomSaveReqVO createReqVO) {
return success(planTaskBomService.createPlanTaskBom(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新生产计划任务Bom")
@PreAuthorize("@ss.hasPermission('heli:plan-task-bom:update')")
public CommonResult<Boolean> updatePlanTaskBom(@Valid @RequestBody PlanTaskBomSaveReqVO updateReqVO) {
planTaskBomService.updatePlanTaskBom(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除生产计划任务Bom")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:plan-task-bom:delete')")
public CommonResult<Boolean> deletePlanTaskBom(@RequestParam("id") Long id) {
planTaskBomService.deletePlanTaskBom(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得生产计划任务Bom")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:plan-task-bom:query')")
public CommonResult<PlanTaskBomRespVO> getPlanTaskBom(@RequestParam("id") Long id) {
PlanTaskBomDO planTaskBom = planTaskBomService.getPlanTaskBom(id);
return success(BeanUtils.toBean(planTaskBom, PlanTaskBomRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得生产计划任务Bom分页")
@PreAuthorize("@ss.hasPermission('heli:plan-task-bom:query')")
public CommonResult<PageResult<PlanTaskBomRespVO>> getPlanTaskBomPage(@Valid PlanTaskBomPageReqVO pageReqVO) {
PageResult<PlanTaskBomDO> pageResult = planTaskBomService.getPlanTaskBomPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, PlanTaskBomRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出生产计划任务Bom Excel")
@PreAuthorize("@ss.hasPermission('heli:plan-task-bom:export')")
@OperateLog(type = EXPORT)
public void exportPlanTaskBomExcel(@Valid PlanTaskBomPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<PlanTaskBomDO> list = planTaskBomService.getPlanTaskBomPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "生产计划任务Bom.xls", "数据", PlanTaskBomRespVO.class,
BeanUtils.toBean(list, PlanTaskBomRespVO.class));
}
}

@ -1,51 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plantaskbom.vo;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 生产计划任务Bom分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class PlanTaskBomPageReqVO extends PageParam {
@Schema(description = "自增字段,唯一")
private Long id;
@Schema(description = "生产任务id")
private Long taskId;
@Schema(description = "bom明细id")
private Long bomDetailId;
@Schema(description = "负责人")
private String owner;
@Schema(description = "要求完成日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] requireEndDate;
@Schema(description = "项目id")
private Long projectId;
@Schema(description = "子项目id")
private Long projectSubId;
@Schema(description = "零件类型 1 标准件|2 其它")
private String materialType;
private Long projectPlanId;
private Long projectPlanSubId;
private Boolean sortByBlueprintNo;
}

@ -1,69 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plantaskbom.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 生产计划任务Bom Response VO")
@Data
@ExcelIgnoreUnannotated
public class PlanTaskBomRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "生产任务id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("生产任务id")
private Long taskId;
@Schema(description = "bom明细id", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("bom明细id")
private Long bomDetailId;
@Schema(description = "负责人")
@ExcelProperty("负责人")
private String owner;
@Schema(description = "要求完成日期")
@ExcelProperty("要求完成日期")
private LocalDateTime requireEndDate;
@Schema(description = "零件名称")
private String materialName;
@Schema(description = "物料名称")
private String compositionName;
@Schema(description = "图号")
private String blueprintNo;
@Schema(description = "零件类型 1 标准件|2 其它")
private String type;
@Schema(description = "物料id")
private Long materialId;
@Schema(description = "物料编码")
private String materialCode;
@Schema(description = "材质id")
private Long compositionId;
@Schema(description = "规格")
private String spec;
@Schema(description = "单位")
private String unit;
@Schema(description = "数量")
private Integer amount;
@Schema(description = "负责人名称")
private String ownerName;
}

@ -1,32 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.plantaskbom.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 生产计划任务Bom新增/修改 Request VO")
@Data
public class PlanTaskBomSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private Long id;
@Schema(description = "生产任务id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "生产任务id不能为空")
private Long taskId;
@Schema(description = "bom明细id", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "bom明细id不能为空")
private Long bomDetailId;
@Schema(description = "负责人")
private String owner;
@Schema(description = "要求完成日期")
private LocalDateTime requireEndDate;
}

@ -1,144 +0,0 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.processbom;
import com.chanko.yunxi.mes.framework.common.pojo.CommonResult;
import com.chanko.yunxi.mes.framework.common.pojo.PageParam;
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
import com.chanko.yunxi.mes.framework.common.util.object.BeanUtils;
import com.chanko.yunxi.mes.framework.excel.core.util.ExcelUtils;
import com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog;
import com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum;
import com.chanko.yunxi.mes.framework.operatelog.core.service.OperateLogFrameworkService;
import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomPageReqVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomRespVO;
import com.chanko.yunxi.mes.module.heli.controller.admin.processbom.vo.ProcessBomSaveReqVO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.processbom.ProcessBomDetailDO;
import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum;
import com.chanko.yunxi.mes.module.heli.service.processbom.ProcessBomService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.List;
import static com.chanko.yunxi.mes.framework.common.pojo.CommonResult.success;
import static com.chanko.yunxi.mes.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 工艺bom")
@RestController
@RequestMapping("/heli/process-bom")
@Validated
public class ProcessBomController {
@Resource
private ProcessBomService processBomService;
@Resource
private OperateLogFrameworkService operateLogFrameworkService;
@Resource
private HttpServletRequest request;
@PostMapping("/create")
@Operation(summary = "创建工艺bom")
@PreAuthorize("@ss.hasPermission('heli:process-bom:create')")
public CommonResult<Long> createProcessBom(@Valid @RequestBody ProcessBomSaveReqVO createReqVO) {
return success(processBomService.createProcessBom(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新工艺bom")
@PreAuthorize("@ss.hasPermission('heli:process-bom:update')")
public CommonResult<Boolean> updateProcessBom(@Valid @RequestBody ProcessBomSaveReqVO updateReqVO) {
processBomService.updateProcessBom(updateReqVO);
return success(true);
}
@PostMapping("/operate")
@Operation(summary = "操作工艺bom")
@PreAuthorize("@ss.hasPermission('heli:process-bom:update')")
@OperateLog(enable = false)
@Transactional(rollbackFor = Exception.class)
public CommonResult<Long> operateProcessBom(@Valid @RequestBody ProcessBomSaveReqVO operateReqVO) {
LocalDateTime startTime = LocalDateTime.now();
processBomService.operateProcessBom(operateReqVO);
// 手动记录日志
operateLogFrameworkService.createOperateLog(request,
startTime,
BusinesTypeEnum.PROCESS_BOM.name(),
operateReqVO.getId(),
OperateTypeEnum.valueOf(operateReqVO.getActive()).getType(),
operateReqVO.getActiveOpinion());
return success(operateReqVO.getId());
}
@DeleteMapping("/delete")
@Operation(summary = "删除工艺bom")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:process-bom:delete')")
public CommonResult<Boolean> deleteProcessBom(@RequestParam("id") Long id) {
processBomService.deleteProcessBom(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得工艺bom")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:process-bom:query')")
public CommonResult<ProcessBomRespVO> getProcessBom(@RequestParam("id") Long id) {
ProcessBomDO processBom = processBomService.getProcessBom(id);
return success(BeanUtils.toBean(processBom, ProcessBomRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得工艺bom分页")
@PreAuthorize("@ss.hasPermission('heli:process-bom:query')")
public CommonResult<PageResult<ProcessBomRespVO>> getProcessBomPage(@Valid ProcessBomPageReqVO pageReqVO) {
PageResult<ProcessBomDO> pageResult = processBomService.getProcessBomPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ProcessBomRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出工艺bom Excel")
@PreAuthorize("@ss.hasPermission('heli:process-bom:export')")
@OperateLog(type = EXPORT)
public void exportProcessBomExcel(@Valid ProcessBomPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ProcessBomDO> list = processBomService.getProcessBomPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "工艺bom.xls", "数据", ProcessBomRespVO.class,
BeanUtils.toBean(list, ProcessBomRespVO.class));
}
// ==================== 子表工艺bom明细 ====================
@GetMapping("/process-bom-detail/list-by-bom-id")
@Operation(summary = "获得工艺bom明细列表")
@Parameter(name = "bomId", description = "bom id")
@PreAuthorize("@ss.hasPermission('heli:process-bom:query')")
public CommonResult<List<ProcessBomDetailDO>> getProcessBomDetailListByBomId(@RequestParam("bomId") Long bomId) {
return success(processBomService.getProcessBomDetailListByBomId(bomId));
}
@DeleteMapping("/process-bom-detail/delete")
@Operation(summary = "删除工艺bom明细")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:process-bom:delete')")
public CommonResult<Boolean> deleteProcessBomDetail(@RequestParam("id") Long id) {
processBomService.deleteProcessBomDetail(id);
return success(true);
}
}

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save