Compare commits

..

809 Commits

Author SHA1 Message Date
zengchenxi bbc2867c7e Merge pull request '150' (#6) from 150 into master
7 months ago
qiuhongwu f961e0bea1 发货清单 不允许超过发货数量总数
7 months ago
qiuhongwu a001f64285 【生产任务派工单】、【装配任务派工单】派工数量,默认等于零件数量,不允许超过零件数量
7 months ago
qiuhongwu fc418e6c15 制造设备 状态默认为启用
7 months ago
qiuhongwu 8ed3590403 打印流程卡按钮颜色
7 months ago
qiuhongwu fca1253478 监听弹出框关闭方法 重置数据
7 months ago
qiuhongwu 98558f3385 产品工艺流程卡
7 months ago
zengchenxi dfa17a1941 Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 47b8988d3c 【需求】临时隐藏
7 months ago
qiuhongwu 836da147c7 打印流程卡
7 months ago
qiuhongwu 7c6d3fe9d2 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
qiuhongwu 0f9f342808 打印流程卡字段
7 months ago
zengchenxi 7736336d4c 【需求】制造设备支持清空更新
7 months ago
zengchenxi bca04d8b6e 【需求】装配任务增加默认查询人
7 months ago
zengchenxi 0a437d7c91 Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 395e4eca89 【需求】装配任务支持任务负责人查询
7 months ago
qiuhongwu 03d80dd4c5 整体盘点 点击确定获取全部物料
7 months ago
qiuhongwu f12161c96d 制造设备页面调整
7 months ago
siontion 465b26b0b8 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
siontion 1b7cf6564d 【生产任务单】刷新按钮出现时,如果单据状态为“已提交”,需要先提醒用户“请先取消提交,再点击此按钮!”
7 months ago
zengchenxi d0f7ec39af 【bug】修复装配任务展示问题
7 months ago
zengchenxi 0e72febc37 Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 789852e157 【需求】增加指定字典类型查询
7 months ago
qiuhongwu 0faf8858cc 【生产任务单】单据提交以后,需要将这些字段设置为只读
7 months ago
qiuhongwu 8e5744a6d2 【生产任务派工单】、【装配任务派工单】1:设备型号这里需要修改下,现在没有做清空;2:将“设备型号”字段名修改为“制造设备”3.派工数量,默认等于零件数量,不允许超过零件数量
7 months ago
qiuhongwu 7dae610b70 制造设备
7 months ago
qiuhongwu ff7be7d37a 盘点信息 部分盘点
7 months ago
qiuhongwu 8f9e9bfd2c 【生产任务单】列表字段的BOM改成大写及点击单号到详情页
7 months ago
siontion f8d8c5fed0 生产任务 状态变更后页面刷新
7 months ago
siontion 86c05d894c 生产任务 Bom更新功能
7 months ago
siontion 28b1e618f3 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
siontion dbe809034e 采购订单 库存数量 需求数量 统计
7 months ago
zengchenxi d59e7ce58d Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 4a1fa91bbe 【需求】优化项目操作逻辑+1
7 months ago
qiuhongwu d41cc1e2de 客户反馈质量编辑页
7 months ago
qiuhongwu ab3c315bcd 【订单发货】默认发货人姓名 用字典来获取id 获取名称
7 months ago
zengchenxi 9614a27843 【需求】优化项目操作逻辑
7 months ago
zengchenxi f3b05f21ed 【需求】优化bom明细零件重复性判断
7 months ago
qiuhongwu 9614805179 弹出框取消拖拽
7 months ago
qiuhongwu 80a37fab3a BOM版本号刷新按钮颜色
7 months ago
siontion d8fcb5d660 入库出库采购 物料选择框弹出优化
7 months ago
siontion 7c5a52d6f0 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
siontion ca956dcc62 出入库 物料交互调整
7 months ago
qiuhongwu 42b331302c 【库存盘点】部分盘点时,点击“获取物料”,弹出框里面的查询条件进行回车搜索
7 months ago
qiuhongwu ffb41f4674 出库单
7 months ago
siontion 29aa08ccfb Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
siontion 5733af88b0 入库出库管理 仓库默认最小ID
7 months ago
qiuhongwu 66dc5efc3f 【订单信息】去发货获取发货数量
7 months ago
zengchenxi 30c4a22f14 Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 0c87a22829 【bug】完善逻辑
7 months ago
qiuhongwu f20aaa3558 【生产任务单】任务明细负责人 为空=0问题
7 months ago
qiuhongwu 518bd8f5c0 【订单发货】1:提交以后需要把“项目编号“字段禁用掉;2:发货人电话需要根据发货人姓名带出来
7 months ago
siontion 793007c9db Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
siontion 794a753ea1 生成生产任务单优化
7 months ago
qiuhongwu 203cb834b4 【BOM清单明细】1:是否标准件,默认项改为“其他”;2:系统单位,默认项改为“EA”;3:BOM明细的高度需要固定下,先展示10条,超过的用滚动条
7 months ago
zengchenxi 7845a0d8b5 Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 6466abb14d 【需求】支持清空更新
7 months ago
qiuhongwu 1c0f109f41 采购订单 实际价金额
7 months ago
qiuhongwu 04d64d0899 采购订单】按下图调整明细的字段名显示
7 months ago
qiuhongwu b9ed94eeb8 采购订单 按采购单类型 判断物料需求计划编号是否为必填项
7 months ago
siontion a80535c6b7 生产计划 异常处理优化
7 months ago
siontion b4f3c7d9a3 【采购订单】按“备库采购”+“加工件”下采购订单时,零件名称需要必填
7 months ago
siontion b40a32fed3 【库存盘点】获取物料的地方需要加上“规格型号”的搜索
7 months ago
siontion 80ea81053c 采购订单 备库 物料 控件更新 交互优化
7 months ago
siontion 7e29b3e585 【采购订单】头表汇总展示暂估价金额和实际价金额
7 months ago
siontion 2464d14fa6 生产任务 模具类型保存
7 months ago
siontion 1021c7e908 生产计划 模具类型 、设备型号调整为不可更改
7 months ago
siontion faeef0f0c1 生产计划 订单批准后自动生成
7 months ago
siontion bcb2e767b9 物料需求计划审核 去掉新增按钮
7 months ago
siontion 8aeb8902c0 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
siontion d80c9472eb 出库管理 物料控件跟换,增加子项目弹框选择
7 months ago
zengchenxi 5a3cef16ab Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 70fe0579c1 【需求】初步完成打印子项目跟踪表
7 months ago
siontion 5ba533a230 库存管理 增加v_storage_material_all试图
7 months ago
siontion 7a88a3edf3 入库管理 物料编码名称组件更换,增加子项目弹框选择
7 months ago
siontion 7e1037d3b1 生产计划 项目负责人搜索修改
7 months ago
siontion 9524452c8e 入库单 取消仓库的输入条件
7 months ago
siontion 12e160ca37 采购订单 备库加工件增加零件名称必填项验证
7 months ago
siontion 895c32379b Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
siontion 0be830c893 生产任务 订单提交时增加判断bom是否存在
7 months ago
qiuhongwu 2de792955f 客户 材质 制造设备 客户设备 物料 工序 供应商 负责人 远程搜索框被禁用的数据在单据查询的时候加中划线展示
7 months ago
qiuhongwu 9123224051 被禁用的职工在单据查询的时候加横线展示出来
7 months ago
qiuhongwu c86e4266d7 生产计划新增打印子项目跟踪表
7 months ago
siontion 55c577b0b0 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
siontion 8588b9b600 工序DB 唯一索引增加租户ID
7 months ago
qiuhongwu 8ea967e2da 生产计划 明细表格长度调整
7 months ago
qiuhongwu 0a08886ef2 打印 模具生产计划单 附件接上页排序
7 months ago
zengchenxi 4b72a78262 【需求】历史序列号数据初始化
7 months ago
zengchenxi bf4151a49f 【优化】唯一索引调整
7 months ago
qiuhongwu 771e49e568 【库存盘点】修复 分页bug
7 months ago
zengchenxi c92db1688b Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 6943d46472 【需求】物料编码通过系统自动生成
7 months ago
qiuhongwu 8b96f856af 应收/应付管理模块 点击 发票号码到详情页
7 months ago
qiuhongwu 3d6ab4955a 质量管理模块 列表页 点击编号到详情页
7 months ago
qiuhongwu 8ac8394a94 BOM清单维护点击bom编号去详情页
7 months ago
qiuhongwu 3f418b8849 生产管理模块列表页点击单号进入详情页
7 months ago
zengchenxi aeaef9fb92 【需求】总页数字段优化+1
7 months ago
zengchenxi 790c3fc878 【需求】支持项目订单点选导出
7 months ago
zengchenxi ab58ec5286 【需求】总页数字段优化
7 months ago
qiuhongwu 2b0ca9d141 财务开票、发票接收页面调整
7 months ago
zengchenxi dd67674233 【需求】增加总页数字段
7 months ago
zengchenxi 93be931005 【需求】容许负责人更新+1
7 months ago
qiuhongwu 2679b4e043 负责人清空删除优化
7 months ago
zengchenxi eb5a6cc205 【需求】容许负责人更新
7 months ago
zengchenxi 2e7b2173b1 【需求】容许负责人更新
7 months ago
qiuhongwu 977e9d2580 处理负责人清空功能
7 months ago
zengchenxi 55fb78223d Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 71f7ebdcee 【需求】调整品质异常批准组件名称
7 months ago
qiuhongwu 23420b3de4 生产任务单更替远程搜索设备
7 months ago
qiuhongwu 9d45afd9fd 制造设备页面调整
7 months ago
zengchenxi 3810edff77 【需求】订单导出功能
7 months ago
zengchenxi 5ab458f0b1 【需求】派工任务完善+1
7 months ago
zengchenxi 2ddc8a2332 Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi e48fdfb170 【需求】派工任务完善
7 months ago
qiuhongwu 815f582a88 【采购管理】新建采购单时,若采购单类型为“备库采购”,采购物类型默认为“物料”,不允许修改
7 months ago
qiuhongwu fb76468cc5 采购订单审核页
7 months ago
qiuhongwu 7be775e845 采购订单编辑页详情页按要求判断展示字段
7 months ago
zengchenxi 2f8ea83699 【需求】初步完成发票接收
7 months ago
zengchenxi 9c4b6bc7da 【需求】初步完成财务开票
7 months ago
zengchenxi bbfb2a6726 【优化】显示优化
7 months ago
qiuhongwu 20e9e4653a 新增制造设备远程搜索
7 months ago
zengchenxi 966e938f0f 【需求】增加编码或名称查询
7 months ago
zengchenxi 95d3ab73d4 【优化】新增按钮控制
7 months ago
siontion 5fa48afc06 生产任务单 提交时任务明细验证
7 months ago
siontion 36a4801ba6 入库管理 子项目名称更改弹出窗体选择
7 months ago
siontion 7f0e6c13b4 入库管理 物料改为弹窗筛选
7 months ago
qiuhongwu 350b3f0f1f 生产任务单
7 months ago
qiuhongwu cb6b072558 【质量管理】质量异常统计 客户反馈质量
7 months ago
siontion 437e6eab25 客户信息 简码、简称和全称字段调整
7 months ago
siontion 4996f0b5ff Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
siontion 579892eed0 生产计划 搜索修正
7 months ago
qiuhongwu c9a0e4a657 打印A3 初始化大小
7 months ago
qiuhongwu 90433f6768 优化库存盘点问题
7 months ago
siontion c372133ab5 生产计划任务单 功能实现
7 months ago
siontion 22e80d6c5d 生产任务单 生产计划自动生成
7 months ago
siontion 6e755160da 生产任务单 由生产计划生成
7 months ago
zengchenxi c33181b7c6 Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 732789d400 【需求】初步完成制造设备
7 months ago
qiuhongwu 77814d960c 订单信息 项目名程重复出现问题
7 months ago
zengchenxi 55c863f330 【bug】修复角色启用状态问题
7 months ago
zengchenxi e1dd3d2c2d Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 2f66e75a4a 【需求】小程序接口补充
7 months ago
qiuhongwu 09892498a4 订单发货 默认剩余数量
7 months ago
qiuhongwu 9d98fa1096 【订单发货】待默认剩余数量
7 months ago
qiuhongwu 7c706572b4 品质异常单审核列表页样式
7 months ago
qiuhongwu 996b66ca46 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
7 months ago
qiuhongwu e0478db2b7 优化统一按需搜索框
7 months ago
zengchenxi dbd91ee581 Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 25de6b9b6c 【需求】增加发货数量
7 months ago
qiuhongwu f668fdbae8 过滤重复上传文件
7 months ago
zengchenxi 43af697a73 【需求】增加试模报告、认可报告功能
7 months ago
zengchenxi e2fef42584 【需求】初步完成质量异常统计
7 months ago
qiuhongwu 577161c261 客户信息 供应商信息 弹出对话框统一调整
7 months ago
zengchenxi 92d8bf6fab Merge remote-tracking branch 'origin/dev' into dev
7 months ago
zengchenxi 29241d2765 【需求】初步完成客户反馈质量
7 months ago
qiuhongwu 14c888d9b8 订单信息列表页
7 months ago
qiuhongwu 2f4bbf3272 生产计划列表页
7 months ago
zengchenxi d3574d9220 【需求】完成订单到派工单交互
7 months ago
zengchenxi a6e8cba474 【需求】初步完成品质异常通知单
7 months ago
zengchenxi f25fd0cd8b 【需求】初步完成品质异常通知单审核
7 months ago
zengchenxi e3e5551d12 【需求】优化展示
7 months ago
zengchenxi 88a820c88f 【需求】去除重复文件名称判断功能
7 months ago
zengchenxi dd1d0ba022 【需求】生产报工生成入库单
7 months ago
zengchenxi 0c79766f59 【需求】报工增加数值范围控制
7 months ago
zengchenxi 378f4bcf65 【需求】初步完成质量管理-检验报告上传
7 months ago
siontion 7a8ad652a6 生产计划任务 DB脚本
7 months ago
siontion 380c640eab 生产计划任务单 DB脚本及接口,UI代码导入
7 months ago
zengchenxi fd70830dfe 【需求】质量管理sql
7 months ago
zengchenxi 52c5340249 【需求】完善报工任务查询
7 months ago
qiuhongwu 83cafa780a 生产管理模块 派工单及报工记录页面调整
8 months ago
qiuhongwu 3dea2a212d 产品工艺流程卡打印功能
8 months ago
zengchenxi 6e67610601 【需求】完成派工任务操作部分
8 months ago
zengchenxi bdf6dc9719 【需求】微信小程序目录提交
8 months ago
zengchenxi 12122fbb65 【需求】派工任务分页查询
8 months ago
qiuhongwu f632f61cc3 添加打印单页面
8 months ago
zengchenxi d92ca511da Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi de8e00f29d 【需求】增加打印入口
8 months ago
qiuhongwu 31ac902403 产品工艺斜线和虚线添加
8 months ago
zengchenxi 9c1453ce64 【需求】完善报工记录
8 months ago
qiuhongwu 4d7f9d11ba 产品工艺流程卡初步
8 months ago
qiuhongwu 97dc32085f 工序远程优化
8 months ago
qiuhongwu 6690305233 库存盘点
8 months ago
zengchenxi fa3878f9b0 【需求】派工单详情完善
8 months ago
zengchenxi e53f349fd4 【需求】每日报工记录基础框架提交
8 months ago
zengchenxi 5def0102bc 【需求】v150 sql提交
8 months ago
qiuhongwu caf55bfb12 【订单信息】按照客户要求调整提出部门与项目名称
8 months ago
qiuhongwu 25e64adaa6 启动单隐藏费用说明
8 months ago
qiuhongwu de349879db 【订单发货】项目编号框换控件显示
8 months ago
zengchenxi db5ed1071b 【优化】增加业务接口展示
8 months ago
qiuhongwu 0184834ec8 【采购订单】采购编号 修改为 采购单号
8 months ago
siontion d8dcd19377 出入库 wms_storage stock_no长度设置为100
8 months ago
zengchenxi 6a491ef962 【优化】补充字段变更sql
8 months ago
siontion 636eea9d3d 物料审核计划审批 删除新增按钮
8 months ago
siontion b173018ea5 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion d3c99645b8 库存管理 库存盘点验证
8 months ago
qiuhongwu fb96296033 新增物料dialogbug
8 months ago
qiuhongwu 9e9f943928 采购管理模块 表格部分调整
8 months ago
zengchenxi 007e290bf8 【优化】查询条件调整
8 months ago
siontion 7d2e9a3f0e 采购订单 加工件明细保存展示
8 months ago
siontion 696c6c658d 物料需求计划 bom系统单位显示处理
8 months ago
siontion 95724dce6c Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 9640e0e1d2 入库管理 作废时验证库存是否小于作废数据
8 months ago
qiuhongwu ea3553b3f3 生产计划3D负责人
8 months ago
qiuhongwu 0f08e555ec 调整生产计划单号宽度
8 months ago
siontion dfc81d9a2c Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 7719050783 库存盘点 提交状态修正
8 months ago
zengchenxi e4ebe6cc53 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 00f37397aa 【优化】错误码配置优化
8 months ago
qiuhongwu 86c54456ad 优化全局表格靠右样式
8 months ago
siontion 58ea8e4814 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 634351f83e 采购订单 计划加工件需求数量展示
8 months ago
zengchenxi 9183d539aa 【优化】启动日志优化
8 months ago
siontion aeaa97671a Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion ae9059ec31 采购订单 物料明细展示修正
8 months ago
qiuhongwu 770cc39159 登录页提示 & 物料需求计划编辑和详情页布局
8 months ago
zengchenxi fa58e3b0e9 【优化】删除无用代码
8 months ago
zengchenxi 2cab1bc30e Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi eb2191f646 【需求】完善派工任务
8 months ago
qiuhongwu 59c9c6b7b8 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
qiuhongwu 5391d262f6 优化全部远程搜索
8 months ago
siontion f9eecdb2c3 采购订单 审核详情页数据展示
8 months ago
siontion 97881fd837 采购订单 加工件明细DB增加需求到货日期
8 months ago
siontion c148ca80f4 采购订单 增加需求到货日期
8 months ago
siontion 67ef9de7e6 采购订单 加工件DB脚本设计
8 months ago
siontion dfc8eabf4a 采购订单 加工件 需求数量保存
8 months ago
siontion b1b1a11ccf Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion cba27b3c6c 采购订单 编辑修改
8 months ago
zengchenxi 38c6665042 【需求】完善派工任务基础功能
8 months ago
zengchenxi eb278d6c98 【优化】删除子项逻辑优化,保留原有id
8 months ago
zengchenxi a6d9c61aba Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 85e503d119 【bug】修复删除明细不生效问题
8 months ago
qiuhongwu 4953005b4d 全局远程搜索替换
8 months ago
qiuhongwu 48dac377d7 优化
8 months ago
qiuhongwu ed8a3999a5 物料需求计划附件
8 months ago
qiuhongwu 9f72900ce2 物料需求计划
8 months ago
qiuhongwu cb81864ed6 【物料需求计划】
8 months ago
zengchenxi 7f1f16777f 【需求】新增物料导入功能
8 months ago
qiuhongwu 40ce037c65 封装供应商远程 及替换采购订单使用供应商部分
8 months ago
siontion 6583b2a0e5 采购订单 审核 编辑
8 months ago
qiuhongwu ff5131e289 设备型号 优化
8 months ago
siontion 7c57b7560f Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 5f52b645c8 采购订单 备库编辑
8 months ago
qiuhongwu e27b0a9dca 优化远程搜索
8 months ago
siontion 28b14030bd 采购订单 加工件明细DB脚本及接口
8 months ago
siontion af41059934 采购订单 新增物料需求计划
8 months ago
siontion 2aaff50a11 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 297cadd32d 物料需求计划审批 审批流程控制
8 months ago
qiuhongwu b140ee5e28 修改大屏数据
8 months ago
qiuhongwu b6fd5ec3c9 大屏数据
8 months ago
siontion 44491d90fb 物料需求计划 编辑页面功能开发
8 months ago
siontion 830ae38b0d Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion ac2ad4ec51 物料需求计划 加工件
8 months ago
siontion 65220620d8 物料需求计划 增加加工件
8 months ago
qiuhongwu 653cccdc1a 取消一次只能选择10个文件限制
8 months ago
qiuhongwu a74469150c 再次优化全部附件上传功能
8 months ago
zengchenxi 4afc2d2699 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi cb9809398a 【需求】工艺设计列表查询默认带入当前登录人
8 months ago
qiuhongwu 09bf4dfdee 采购订单附件
8 months ago
zengchenxi 0deeb7ea14 【需求】工艺设计所有进度页面增加生产状态
8 months ago
zengchenxi 54d60ce661 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi b1138cb777 【优化】增加子项目编号展示
8 months ago
qiuhongwu fd4e8a12b9 优化
8 months ago
qiuhongwu 0b513add12 物料需求计划 附件及远程优化
8 months ago
zengchenxi 2642e68573 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 4ebe8e6450 【优化】完善页面
8 months ago
qiuhongwu 398bbd101c 物料序号
8 months ago
zengchenxi 13e07e62e6 【优化】超时预警判断调整
8 months ago
qiuhongwu 2211599f40 优化
8 months ago
qiuhongwu 9f4888f2e9 订单发货附件
8 months ago
zengchenxi 2549519688 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi e73b202281 【优化】密度调整为浮点类型
8 months ago
qiuhongwu 70837c7c3e 订单信息附件优化
8 months ago
qiuhongwu 2debd78b9c bom优化
8 months ago
qiuhongwu 68d9c17f3a 工艺设计模块修复
8 months ago
qiuhongwu 860746b4dc 库存盘点 附件优化
8 months ago
siontion 359ad39db9 物料需求计划boom明细 DB设计及接口生成
8 months ago
zengchenxi 37a62f1752 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 772ed36b43 【优化】固定合立生产内网ip
8 months ago
qiuhongwu 1ce6bc16ce 出库管理附件
8 months ago
zengchenxi 7e521d6be5 【需求】派工任务详情页基础框架
8 months ago
siontion deff30bf07 出入库管理 物料展示控制
8 months ago
siontion f5961d5d8b Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
qiuhongwu 0940910c69 订单信息上传附件
8 months ago
siontion 5189b76361 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 415bf92fed 工序信息 增加类型显示
8 months ago
zengchenxi 6e1cee0898 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 28edfde268 【需求】增加密度单位展示
8 months ago
siontion 0b5beaf4b5 生产计划 打印
8 months ago
zengchenxi 6faf22a2d3 【bug】修复预警异常问题
8 months ago
qiuhongwu 7ee5fe3a20 新增工序远程搜索
8 months ago
zengchenxi c20f3cd8d2 【优化】展示调整
8 months ago
zengchenxi e855c0e600 【优化】去除无用文件
8 months ago
zengchenxi b228d5e2d8 【需求】初步完成生产任务派工单列表查询
8 months ago
zengchenxi fb7f8a7049 【bug】修复延期以及预警异常问题
8 months ago
qiuhongwu 6ab2c19608 生产计划优化
8 months ago
zengchenxi 72b8550e00 【优化】bom编号获取调整
8 months ago
qiuhongwu 3d3e3540f3 合同优化
8 months ago
qiuhongwu 8486f6bf07 优化
8 months ago
qiuhongwu a81e19e4f1 工艺设计编辑页/详情页 信息在input内展示
8 months ago
qiuhongwu bcfef4b969 工艺设计模块 全部列表页调整
8 months ago
zengchenxi fc924825aa Merge pull request 'v1.3.0' (#4) from dev into master
8 months ago
qiuhongwu 3955475b4a 修复 bug
8 months ago
siontion b49866f95f 物料需求计划 子项目编号
8 months ago
qiuhongwu 40cbd7dc84 优化
8 months ago
zengchenxi b104320c27 【需求】生产管理 生产任务基础框架提交
8 months ago
qiuhongwu d5be503399 订单信息远程搜索
8 months ago
qiuhongwu 98a2836da1 采购管理模块 编辑页/详情页布局调整
8 months ago
qiuhongwu 64b0851552 订单信息 客户名称替换远程搜索
8 months ago
zengchenxi 779d2be5ec 【需求】派工任务表结构提交
8 months ago
siontion 0e03e685ec 采购订单 审核页面币种锁定
8 months ago
siontion 93b9254fde 采购订单 导出文件重命名
8 months ago
siontion 7056783851 采购订单 金额DB字段更新
8 months ago
siontion c9e4f749df 采购订单 列表页搜索
8 months ago
siontion e51794e900 采购订单 物料渲染
8 months ago
siontion 6c32d75d7f 采购订单 搜索 数字控件保存
8 months ago
qiuhongwu 5b96759681 优化
8 months ago
qiuhongwu 03e08705a1 【物料采购】编辑页详情页 物料信息部分调整
8 months ago
zengchenxi 6435fe9329 【需求】去除无用表
8 months ago
zengchenxi d65b99a05e Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi b1725702a1 【优化】客户增加简称与全称合并查询、及查询优化
8 months ago
qiuhongwu 7f2edfe4e2 【入库管理】超出部分省略
8 months ago
qiuhongwu f43c38086e 【采购订单】复选框上下错位问题
8 months ago
qiuhongwu 59d8ae4382 【订单信息】新增时业务员默认登录人员
8 months ago
zengchenxi df4d5ab5a7 【需求】增加导出日期格式化工具
8 months ago
siontion 8146ad6516 生产计划 是否要工艺 页面控制调整
8 months ago
siontion fc228fa6b3 物料需求计划 新增后跳转到详情页
8 months ago
siontion b6d38c5ee3 物料需求计划 新增后跳转到详情页
8 months ago
siontion afa39f7cff 订单采购 按日期搜索
8 months ago
siontion b9463a550e 生产计划 销售订单推送设备信息
8 months ago
siontion dc480730be 采购订单 排序 设备信息展示
8 months ago
siontion 8a481e6adc 物料管理 接口过滤虚拟物料
8 months ago
qiuhongwu 63668f31c5 信息变更 表格列表行高光 及是否要工艺默认值为1
8 months ago
zengchenxi 94d8c82d50 【需求】提交时版本号+1
8 months ago
zengchenxi 40cb2543b4 【需求】完善工艺设计与订单交互
8 months ago
qiuhongwu 1782d55ace 【采购订单审核】
8 months ago
qiuhongwu dddd984c31 附件上传未上传完毕页面加载状态
8 months ago
qiuhongwu 20c0ecb109 物料远程搜索
8 months ago
siontion cd36d7125e 采购订单 批量下载
8 months ago
zengchenxi 9c09851332 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 1708f33271 【bug】修复跳转问题
8 months ago
qiuhongwu fa31dfd261 库存盘点 整体盘点不可选择
8 months ago
zengchenxi f7ad2273cd 【需求】新增子项高亮整行
8 months ago
zengchenxi c074eaaec3 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 0d6fe35ead 【需求】完善工艺设计与订单交互
8 months ago
qiuhongwu 7c9ede2af6 【采购订单】订单状态
8 months ago
qiuhongwu d117014c9b 库存盘点获取物料弹框 点击列表行勾选复选框
8 months ago
qiuhongwu 1cd843e272 【采购订单、物料需求计划、入库、出库】将物料编码与物料名称字段合并
8 months ago
qiuhongwu 6b301ac06f 【订单发货、库存盘点、采购订单】操作列注意靠右处理
8 months ago
qiuhongwu a00eb67a75 禅道问题优化
8 months ago
siontion 889cf8fc10 采购订单 新增保存后跳转到编辑页面
8 months ago
qiuhongwu 5715f2a134 工序弹出框字段修改
8 months ago
siontion 16dc0fdda4 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion f86f915c94 v1.4.0 DB脚本
8 months ago
qiuhongwu 68326e7250 【采购管理】物料需求计划及采购订单替换物料远程搜索
8 months ago
siontion 46b1e5c28b 采购订单 列表页订单状态控制
8 months ago
siontion 7a824573ee 库存盘点 新增跳转处理
8 months ago
zengchenxi fddeda466f Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi a59a198e16 【需求】已变更 后续所有行为只能针对可变更信息操作
8 months ago
siontion 427fd33751 物料远程搜索
8 months ago
siontion 09b382d0c6 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 32b8dec3ab 库存盘点 去除已删除
8 months ago
qiuhongwu 43da37d14d 优化预警通知
8 months ago
siontion 85354b486f 采购订单 路由跳转优化
8 months ago
siontion 6558e97c2c 采购订单 删除按钮
8 months ago
siontion a385d7d325 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
qiuhongwu b59a6ed2c6 采购订单新增页 采购单类型不可编辑
8 months ago
siontion bbce93db7d Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
qiuhongwu 820048a1ce 生产计划打印单日期部分优化
8 months ago
zengchenxi 54ac85277c 【需求】优化订单明细展示
8 months ago
siontion aca26fd060 物料管理 远程搜索接口
8 months ago
zengchenxi 546ec316e0 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 3b945c2655 【优化】增加用户选择disabled判断
8 months ago
qiuhongwu 6a9833be16 优化字典颜色
8 months ago
qiuhongwu 8d052fa277 采购订单导出修改
8 months ago
siontion 511c09e023 生产计划 菜单 打印
8 months ago
qiuhongwu ade045dbff 设备远程只获取启用值
8 months ago
zengchenxi ede8c52cc4 【需求】完善bom清单明细
8 months ago
siontion 5652a71423 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 739e5b4a1c 采购订单 乘税率导出 无税率按0处理
8 months ago
zengchenxi 8943ba5f11 【需求】初始化设备信息
8 months ago
zengchenxi 907ddb3a67 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 2b71b63d2e 【bug】优化变更字段判断逻辑
8 months ago
qiuhongwu 3dc3812fc3 工序信息字段替换
8 months ago
qiuhongwu 0517c2bbd3 生产计划字段修改
8 months ago
qiuhongwu ec44c55338 设计预警通知优化
8 months ago
zengchenxi bdbd390cd5 【需求】设备信息使用远程搜索
8 months ago
qiuhongwu 56aa10ece1 优化职工远程
8 months ago
qiuhongwu f4cc689b5a 封装设备型号远程搜索 及替换订单信息中设备型号搜索
8 months ago
siontion ebb112f8b3 采购订单 导出功能
8 months ago
zengchenxi 8130db9f25 【需求】bom完善
8 months ago
qiuhongwu a8702ce3d3 工艺设计 除BOM外的列表页调整
8 months ago
siontion f36dfde9e1 采购订单 编辑页重载
8 months ago
siontion eeaf391d3e 采购订单审核 采购单号链接跳转到详情页
8 months ago
siontion 91713f2450 采购订单 merge
8 months ago
siontion a987166ca9 采购订单审核 UI/UX 接口逻辑完成
8 months ago
qiuhongwu 0e7d284c7a 采购订单列表页
8 months ago
qiuhongwu d1392e4b83 问题修复
8 months ago
siontion be72e4f37f 采购订单 物料数据保存与再加载
8 months ago
siontion b510dce751 采购订单 UI/UX 接口代码生成
8 months ago
qiuhongwu bb6036aa2d 入库附件bug优化
8 months ago
zengchenxi 359036a915 【需求】bom明细页面基础展示框架提交
8 months ago
zengchenxi a20ebfddff 【需求】完成bom清单列表
8 months ago
zengchenxi 236510d24e 【需求】如生产计划已终止 不报预警
8 months ago
qiuhongwu 0f6ccfb46e 优化
8 months ago
zengchenxi 6d0a9992bf Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi f106a92256 【优化】刷新时如已手动关闭,则不再展示
8 months ago
qiuhongwu c17277ee5d 预警优化
8 months ago
zengchenxi c79a956369 【需求】bom基础框架提交
8 months ago
zengchenxi 5d0d646a27 Merge pull request 'v1.2.1' (#3) from tmp into master
8 months ago
zengchenxi d4ccffb1f6 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 34999265e3 【需求】完成延期预警功能
8 months ago
siontion bf6d5a37d7 采购订单 DB脚本设计
8 months ago
qiuhongwu 0330250028 物料需求计划审核
8 months ago
qiuhongwu 1bc96f6e6f 物料需求计划
8 months ago
siontion ac05659313 生产计划 操作人员筛选增加工号
8 months ago
siontion 3712bdd76e 物料需求计划 审核列表详情页数据加载
8 months ago
qiuhongwu 362adc4b88 订单信息编辑页 业务员替换远程搜索
8 months ago
qiuhongwu acabafa8e8 预警初始化
8 months ago
siontion 0f139e169e 物料需求计划 详情页数据展示
8 months ago
zengchenxi 6f2c9b66e9 【优化】优化本地缓存 刷新后保留状态
8 months ago
qiuhongwu 8eb572ea2c header
8 months ago
zengchenxi 34e2810acf 【需求】初步完成设计进度一览
8 months ago
siontion 19086b7364 物料需求计划 编辑页 删除已有物料信息保存
8 months ago
siontion d5548fddde 物料需求计划 编辑页数据加载
8 months ago
qiuhongwu 345ab3f022 页面优化
8 months ago
qiuhongwu 28a554f123 过渡动画
8 months ago
zengchenxi 66b6e0d0bd 【需求】初步完成进度上报部分
8 months ago
qiuhongwu aa93a444a4 预警通告 拖动 隐藏
8 months ago
qiuhongwu ced36bfe69 预警弹框细节优化
8 months ago
siontion 47fe291ed0 物料需求计划 列表页面数据加载
8 months ago
zengchenxi 9f8cf8f198 【需求】完善页面显示
8 months ago
zengchenxi 0c1b34f472 【需求】完成工艺设计基础功能
8 months ago
qiuhongwu fdf2707d53 生产计划打印单优化
8 months ago
qiuhongwu f60c642939 预警通知 滚动条样式
8 months ago
qiuhongwu 664aae0ef3 预警通知 二版
8 months ago
qiuhongwu abbc9383f5 发货管理 计划管理 列表序号统一
8 months ago
qiuhongwu 1bfbd7871b 订单管理模块 列表序号统一
8 months ago
qiuhongwu 1128f80a6a 库存管理模块列表序号统一
8 months ago
qiuhongwu 1631d165f1 基础信息模块 列表序号统一
8 months ago
qiuhongwu 7257e36506 所有操作日志超过十条滑动查看
8 months ago
qiuhongwu 04f368a397 首页预警样式
8 months ago
qiuhongwu 9f7b6fffb5 优化
8 months ago
qiuhongwu cea7aab719 订单信息 材质远程搜索优化
8 months ago
zengchenxi 840f562afa Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi b34e1c646c 【需求】bom相关表sql
8 months ago
siontion 9bc78d239f 调整物料需求列表UI
8 months ago
zengchenxi a972cf272a 【优化】物料编码/名称 不容许修改
8 months ago
zengchenxi a40d9429a9 【优化】去除冗余表
8 months ago
siontion e5db1db169 物料需求计划 接口及页面生成
8 months ago
siontion 8df36cb0a3 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 5e045615ad 增加 物料需求计划表 物料需求计划详情表 DB脚本
8 months ago
zengchenxi db3e135df4 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 1645d93e20 【优化】材质使用统一组件
8 months ago
qiuhongwu cb3f1cefef 优化
8 months ago
zengchenxi edb2aac013 Merge remote-tracking branch 'origin/dev' into dev
8 months ago
zengchenxi 1171ebe835 【优化】发货方式下拉增加清除功能
8 months ago
siontion 595dc70bf6 生产计划 隐藏新增按钮
8 months ago
qiuhongwu 4c30da1592 单选框 通用组件优化
8 months ago
qiuhongwu 6c8c096b7e 生产计划 项目编号 点击列表行选中复选框
8 months ago
qiuhongwu c032b2bc60 订单发货 项目编号弹框复选框 点击列表行选中
8 months ago
qiuhongwu 6190801297 通用组件 复选框点击列表行自动勾选
8 months ago
qiuhongwu 88dfe85d6a 优化
8 months ago
qiuhongwu 411428d486 出库附件信息上传文件失败 提示 及入库部分优化
8 months ago
qiuhongwu 7cc80a5602 入库附件信息上传失败文件提示
8 months ago
qiuhongwu d10767ac13 生产计划单 编辑、详情页项目共计日期
8 months ago
qiuhongwu a9291c9eda 设备型号 隐藏删除按钮
8 months ago
qiuhongwu 9ce0a237d2 设备型号
8 months ago
qiuhongwu e8b387a545 生产计划打印单 及生产计划单页面优化
8 months ago
siontion 522d302246 生产计划 增加生产计划编号搜索 去除业务员搜索
8 months ago
siontion 49ddb9c3b7 生产计划 订单 变更或终止 状态同步
8 months ago
siontion 32e9fe8135 生产计划 打印页面 首页数据加载
8 months ago
qiuhongwu cb0540b9ab 生产计划 打印
8 months ago
siontion 7389c5d418 生产计划 打印
8 months ago
qiuhongwu d880d03bac 设备型号
8 months ago
qiuhongwu 228bf02e6f Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
qiuhongwu da89c798b8 打印生产计划单
8 months ago
siontion 8beed27c5c Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion 6a01952b50 设备型号 UI/UX
8 months ago
qiuhongwu 6a1cce6ed4 盈亏差异 浮点计算保留两位小数
8 months ago
qiuhongwu e7d223b6b0 生产计划页面调整
8 months ago
siontion d92fc905da 生产计划 工艺流程数据 打印页面获取
8 months ago
siontion 590514c8fb 生产计划 打印模板页面数据初始化
8 months ago
siontion b2f4fadf9a 生产计划 打印模板页面数据初始化
8 months ago
siontion d20ea2c83a 出入库 保存按钮无物料验证取消
8 months ago
siontion 98d16154bf 生产计划 计划单号超链接
8 months ago
siontion f27df81383 生产计划 相关操作人下拉选择
8 months ago
siontion bc2a6c8098 生产计划 增加项目变更日期
8 months ago
siontion 9477f4e68e Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
8 months ago
siontion af425f41f9 生产计划 子项目数据编辑
8 months ago
qiuhongwu 5db437404a 单据状态 操作 修改
8 months ago
siontion 1cbc705d7c 生产计划 状态修改
8 months ago
siontion 213006655a 生产计划 UI/UX 业务逻辑接口实现
8 months ago
siontion 47b69f43fd 设备管理 UI/UX
9 months ago
siontion 061036ee8e 绝对值
9 months ago
siontion 0a086e19e8 盘点库存 自动生成出入库单,备注=由盘点单号【】生成
9 months ago
siontion 64c2d830fc 库存盘点实时统计修改
9 months ago
siontion 5d7783cb62 盘点列表顺序调整 盘点日期初始值设定
9 months ago
siontion acfbf42432 盘点仓库 排除为0的物料库存 隐藏
9 months ago
siontion 302f014c75 出库物料 搜索
9 months ago
siontion bba7458485 盘点库存 排除列 默认当前日期
9 months ago
siontion ba7301b2a3 出库管理 物料名称远程搜索修正
9 months ago
siontion 8c2db2f559 出库管理 保存按钮去除物料信息为空的验证
9 months ago
siontion d1f55736ec 入库管理 保存按钮去除物料信息为空的验证
9 months ago
siontion 635398f64d 出库管理 修改
9 months ago
zengchenxi 9ad27ce94e 【优化】优化显示
9 months ago
zengchenxi 5a8cc4b752 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 406952e62f 【优化】优化发货单逻辑
9 months ago
qiuhongwu c303f1a63b 出库 入库 点击单号 去详情页
9 months ago
zengchenxi 4329804d67 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 291643d60c 【优化】发货出库单增加虚拟物料
9 months ago
siontion 572a45ec38 出入库DB 增加虚物料名称
9 months ago
siontion 1eee2a8568 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion db6a5fa7e4 出入库 虚物料数据字段vMatName
9 months ago
zengchenxi a039fd30ca 【bug】直接发货增加超额校验
9 months ago
zengchenxi 707536f990 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 37f110a762 【bug】去除发货方式必填校验
9 months ago
qiuhongwu e14d1cc180 摸具生产计划单优化
9 months ago
qiuhongwu 02ba46dbab Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
qiuhongwu c3531c3b37 打印启动单图片路径优化
9 months ago
siontion 34fe9ea7dc 出库列表宽度调整
9 months ago
qiuhongwu 475fc57f83 打印 图片地址路径优化
9 months ago
zengchenxi 372234cf2b Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi cdc4a3ec21 【优化】调整出库类型字段赋值
9 months ago
siontion 3b6038c837 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 2bc3366202 仓库管理 物料初始可视化,库存数量为0的展示
9 months ago
qiuhongwu 7973118dde Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
qiuhongwu 9046d103f4 优化 打印logo
9 months ago
zengchenxi f11c70bcc7 【框架优化】增加通用前端缓存工具,便于跨页面交互
9 months ago
zengchenxi 5c3069b214 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 083c56a22e 【优化】优化显示
9 months ago
qiuhongwu 41829d973a 订单发货
9 months ago
qiuhongwu 9e209c9295 库存变动日志优化
9 months ago
zengchenxi 3332692fca Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 2cb37e8098 【bug】修复附件上传异步导致的问题
9 months ago
qiuhongwu caa4192f90 发货详情
9 months ago
siontion b9bc527a0b 盘点库存 筛选条件控制
9 months ago
qiuhongwu d9399d6a21 模具
9 months ago
zengchenxi 49f2e197be 【需求开发】工艺设计 图纸相关基础代码框架提交
9 months ago
qiuhongwu 4d56e27b0d 库存盘点新增物料样式及内容调整
9 months ago
zengchenxi 1ec60b162d 【需求开发】工艺设计 图纸相关表结构sql提交
9 months ago
qiuhongwu 75874a7533 编辑/详情 页面样式 dialogTitle
9 months ago
siontion 4bdeaf65ba Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 6049fbbde9 设备信息 模板页面及接口信息导入
9 months ago
qiuhongwu 02d84e60ae Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
qiuhongwu ab55a61c4c 库存盘点新建页
9 months ago
siontion 6b82aa61d7 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion e2ca1b937a 设备信息DB脚本更新
9 months ago
qiuhongwu 5ce94e7299 库存盘点页样式调整及点击单号跳转详情
9 months ago
siontion 609934644e 盘点 删除按钮控制
9 months ago
siontion 3710fea2cc 物料分页接口去除虚拟物料
9 months ago
siontion edbef358d3 物料列表去掉虚拟物料
9 months ago
siontion d789e0a980 库存盘点 日志同步 出入库数据同步
9 months ago
siontion 156b28e50c 盘点库存 按钮控制
9 months ago
siontion 8960d93c21 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 9e5e584822 根据物料ID,库位ID获取最新库存数量
9 months ago
qiuhongwu f3a88b1088 公共样式 弹框选择数据 多选 和 单选
9 months ago
qiuhongwu 1add0300ef 订单详情页 变更选择优化
9 months ago
qiuhongwu 255b51285b 模具 编辑页表格调整
9 months ago
zengchenxi 686c07b29e 【功能优化】重复key异常全局捕获统一处理
9 months ago
qiuhongwu ff9432941c 模具发货 发货戳 发货方式
9 months ago
qiuhongwu 0b0dd01033 优化
9 months ago
qiuhongwu df33a96186 打印启动单优化
9 months ago
qiuhongwu e7da493c6e 解决打印 图片bug
9 months ago
zengchenxi 86b99db249 【功能优化】调整打印取值
9 months ago
zengchenxi ccdde891f2 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi a8d78e07a3 【功能优化】统一概念
9 months ago
qiuhongwu 4d9a13fb3d 发货单优化
9 months ago
qiuhongwu 6578599214 打印 启动单编号bug
9 months ago
siontion b6cf6c1ec9 盘点物料 数量统计
9 months ago
zengchenxi 7e17c48f35 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi cb2a2b40e3 【需求开发】初步完成发货与仓储交互逻辑
9 months ago
siontion 10a64879ad 库存 盘点 日志 DB脚本更新
9 months ago
siontion 2a0f04ced0 库存物料DB 库存盘点UI/UX 接口逻辑处理
9 months ago
qiuhongwu 232cfdef95 发货单打印
9 months ago
qiuhongwu 7b88f34d52 摸具发货页面调整
9 months ago
zengchenxi 09a8182079 【需求开发】完成模具打印相关逻辑
9 months ago
qiuhongwu f09b4249f7 优化信息 计划生产单初步完成
9 months ago
siontion 547e4d9d68 库存盘点 选中物料列表交互
9 months ago
zengchenxi db66895c9a Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi c2befa3821 【需求开发】完善项目订单=》模具发货交互逻辑、及其他优化
9 months ago
qiuhongwu 35e9b68eef 打印 摸具生产计划单 附页
9 months ago
siontion 46309d6647 盘点物料列表UX
9 months ago
zengchenxi 3c68a6e606 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 48cef0447a 【需求开发】完成订单发货基础功能
9 months ago
qiuhongwu 4b33585809 打印 摸具生产计划单 主页
9 months ago
siontion db5a9a8bdd 出库管理 增加出库数量验证
9 months ago
siontion c79f76a06b Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion e4d37d22cb 出入库 优化
9 months ago
qiuhongwu 3857b0c162 启动单 已发货
9 months ago
qiuhongwu b949dfd2ec 订单归档日志 点击编号去详情
9 months ago
qiuhongwu 26f65ef3d8 订单批准
9 months ago
qiuhongwu 993c1fe8aa 订单审核 点击项目编号 进入详情页
9 months ago
qiuhongwu 178ef2fbb9 订单信息 点击项目编号 可跳转到详情页
9 months ago
zengchenxi fcee01e355 【优化】调整sql
9 months ago
qiuhongwu dd076ccaf3 根据仓储设置进一步优化
9 months ago
qiuhongwu 4066f7937f 订单操作
9 months ago
qiuhongwu d3babf69a4 职工 优化
9 months ago
zengchenxi 1e647e216d Merge pull request 'dev' (#2) from dev into master
9 months ago
qiuhongwu 63977772df 事件戳 替换
9 months ago
zengchenxi e849d4bc48 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi fc5e52ac6c 【需求开发】发货管理 基础功能完善
9 months ago
qiuhongwu 6896226b78 状态样式
9 months ago
qiuhongwu 50210fdd14 职工
9 months ago
qiuhongwu 0e8002bd1d 优化
9 months ago
siontion 766a5d97ba Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 933919ceab 出库管理 批次号处理
9 months ago
qiuhongwu 9b4649a2f4 优化
9 months ago
qiuhongwu f12c459183 优化职工远程搜索
9 months ago
qiuhongwu 33d3dc9835 职工搜索功能优化 以及 全局是否字典调节
9 months ago
zengchenxi 61328efcc5 【功能优化】增加用户账号与昵称同时like查询
9 months ago
qiuhongwu 310e25e2fa 车间 联系人
9 months ago
qiuhongwu 5f53dbda47 车间 使用封装职工
9 months ago
qiuhongwu fefca0672a 仓储设置 负责人使用封装的远程搜索
9 months ago
qiuhongwu f856436e96 职工 远程搜索优化
9 months ago
siontion d3f0c12030 盘点接口
9 months ago
siontion 27daafed8b 入库,出库问题修正
9 months ago
zengchenxi 8b7d3aa013 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 2cb51857fa 【优化】去除无用引用
9 months ago
siontion 66bb7d5959 库存盘点编辑
9 months ago
siontion bb7dd102aa Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 413d0adf4e 库存盘点
9 months ago
zengchenxi dc9fa9fb7a Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi a350f19ecc 【需求开发】发货管理 完成项目弹窗功能
9 months ago
qiuhongwu 9bcc755004 订单信息内字典样式
9 months ago
siontion 7b2cdca3b3 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 6ed9814af5 库存盘点DB
9 months ago
qiuhongwu 13bfc164f5 打印启动单
9 months ago
zengchenxi 95c5b1eacd 【bug】物料信息 修复重复性判断问题
9 months ago
zengchenxi 91c45ecf00 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 7394fb9ea7 【需求开发】发货管理 完成基础页面展示
9 months ago
qiuhongwu 910f71577a 实时库存 库存变动日志
9 months ago
qiuhongwu 4e05d46ed6 优化
9 months ago
zengchenxi 98ef234623 【bug】修复详情页业务员显示错乱问题
9 months ago
zengchenxi acfc28e035 【bug】订单审核、批准查询增加状态默认值
9 months ago
zengchenxi dc65cdaaf6 【bug】恢复变更高亮
9 months ago
zengchenxi ec8baccd29 【bug】去除无用按钮
9 months ago
zengchenxi a29a37b4b1 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi ac93990c07 【框架优化】目录展示判断依据只来源菜单管理
9 months ago
qiuhongwu 8dfe8103c6 订单管理模块 所以列表是否已变更
9 months ago
siontion 4aaf964519 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 002bbd33fa 库存盘点DB
9 months ago
zengchenxi 7f657e7253 【需求开发】发货单 完善后台接口
9 months ago
qiuhongwu a9af2971e9 公共详情页 基础信息布局
9 months ago
qiuhongwu 1025d2ef8f 订单 编辑页优化
9 months ago
siontion 701c51173a 库存盘点
9 months ago
siontion 55386366a6 库存物料盘点
9 months ago
siontion cb51402301 实时库存
9 months ago
siontion 159def12f6 物料出入库日志
9 months ago
zengchenxi 6cf7f19779 【需求开发】发货单基础框架提交
9 months ago
zengchenxi e4c579de67 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 46088a534c 【bug】使用统一单位
9 months ago
qiuhongwu 0fd48a14ce 订单信息 表格必填样式
9 months ago
zengchenxi e65ac1944c 【需求】发货管理建表sql
9 months ago
zengchenxi 37d8391c2e 【优化】调整归档日志按钮显隐控制
9 months ago
zengchenxi b76af97585 【bug】订单信息 修复直接送审问题
9 months ago
zengchenxi 0179496596 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 609841764f 【bug】订单信息 修复新增默认当前人展示错误问题、修复序列号记录表唯一性问题、订单查询缺少是否已变更
9 months ago
qiuhongwu 3d2b2f9abd 订单详情 编辑页布局
9 months ago
qiuhongwu 79993a2d23 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
zengchenxi dfafb5dbff 【优化】订单信息 临时隐藏未完成页面
9 months ago
qiuhongwu 3445125133 出入库状态戳
9 months ago
qiuhongwu 9e24c192cc 详情页优化
9 months ago
qiuhongwu b799e6854d 全局编辑页 表格card优化
9 months ago
qiuhongwu d1a4bd1de4 订单信息 编辑页优化
9 months ago
qiuhongwu 8bf4b73a90 单据状态 发货状态 tag样式
9 months ago
zengchenxi 7cf8e24060 【优化】调整表名,简化理解
9 months ago
zengchenxi 2739046775 【框架功能优化】对字典值cssClass 仅作为class使用
9 months ago
zengchenxi 088b06cfb4 【职工信息】统一工号校验
9 months ago
zengchenxi 6713134c52 【登录优化】优化登录校验、支持任意格式
9 months ago
siontion afd098b333 业务岗位,用户基础数据DB脚本
9 months ago
siontion 8f6798a14a 业务岗位,用户基础数据DB脚本
9 months ago
qiuhongwu ec7b886642 回退 编辑页
9 months ago
qiuhongwu 35f26f57ac 编辑页 底部浮动
9 months ago
qiuhongwu 5ff73face2 仓储 编辑联系人
9 months ago
zengchenxi dea1f67d53 Merge pull request 'release_1.1.0' (#1) from dev into master
9 months ago
zengchenxi 54a89c9c11 【发版修订】增加数据插入sql、更改文件名 易于理解
9 months ago
zengchenxi 2116d753d3 【环境优化】增加批量上传路径配置
9 months ago
zengchenxi 7726537528 【功能优化】完善订单信息打印启动单
9 months ago
siontion 366d9777b7 出入库删除按钮控制
9 months ago
siontion 32ddd20cac Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 271edea9ab 出入库
9 months ago
qiuhongwu 41f71b6118 出入库列表优化
9 months ago
zengchenxi 552398aa51 【功能优化】初步完善订单打印功能
9 months ago
qiuhongwu 87aad982d6 订单信息 打印启动单
9 months ago
qiuhongwu 4339338745 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
qiuhongwu 447fa6650e 全局样式 表格 滚动条
9 months ago
siontion dcc965388f v_storage_material_amount 出入库物料库存视图
9 months ago
siontion 4967c31e4a 出库管理 设置
9 months ago
siontion 5e8776ab7c reload
9 months ago
siontion a8ad9f1b56 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 6a0b06bf40 出库物料联动
9 months ago
qiuhongwu 62dbc823a1 出入库 table 宽度优化
9 months ago
qiuhongwu e1f1c0f754 库存出入库 物料信息 表格必填示意
9 months ago
zengchenxi dbbacc5853 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi c3d57dc9a0 【功能优化】订单信息 新增页保存后统一转为编辑页
9 months ago
siontion 47d8cea8db 出入库 验证
9 months ago
siontion 846121ecf0 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 6a0967e60e 附件下载
9 months ago
qiuhongwu b6f2eb7c4e 订单归档日志 及订单管理 table优化
9 months ago
siontion 4ee874118b 出入库管理 增加物料模糊查询
9 months ago
qiuhongwu c6ef489a9a 出入库 table优化
9 months ago
qiuhongwu a225e01cd9 订单详情 优化
9 months ago
qiuhongwu 3f415b6618 订单审核
9 months ago
qiuhongwu 9fc030fcd1 订单信息新增页
9 months ago
qiuhongwu 608203295e 订单信息
9 months ago
qiuhongwu 11891504d3 出库管理
9 months ago
siontion 37529ca6a5 库存日志
9 months ago
siontion 3ee6d290cb 出入库日志表
9 months ago
siontion e43c66500b 出入库 按钮控制
9 months ago
siontion 64bcbf0f94 出入库 状态改变
9 months ago
siontion da980aa35d 出入库附件上传
9 months ago
siontion 74a08096aa 入库 reload
9 months ago
siontion d5f99a48e0 库存数据保存
9 months ago
siontion 645c8a52f6 出库物料保存
9 months ago
siontion 84c0d785f2 出库信息保存
9 months ago
siontion c081840950 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 97a69bce8b 入库出库 页面接口调整
9 months ago
zengchenxi b47e5db1f4 【需求开发】完善变更订单功能
9 months ago
zengchenxi 916a21132e 【功能修复】修复框架同文件多处使用将致错乱问题
9 months ago
zengchenxi 10120ffa4e 【功能扩展】新增逻辑删除文件接口(补充前端调用)
9 months ago
zengchenxi 04883c13ab 【功能扩展】新增逻辑删除文件接口
9 months ago
zengchenxi 5c41ae14a8 【功能优化】完善项目订单归档、变更交互
9 months ago
zengchenxi 7c104a124b Merge remote-tracking branch 'origin/dev' into dev
9 months ago
qiuhongwu e377490c90 入库管理
9 months ago
zengchenxi 73c09b4f90 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 393373d73e 【需求开发】订单归档日志 基础功能提交
9 months ago
qiuhongwu fd502de7a0 订单信息 新增页样式 及根据单据状态显示样式状态 根据是否启动显示交货时间
9 months ago
zengchenxi a7dbb0f7e4 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 4ae2692b95 【功能优化】完善订单详情校验逻辑
9 months ago
siontion 5c507f3f51 出库按照物料名称检索
9 months ago
siontion 5d8e11a959 入库单 增加子项目编号
9 months ago
siontion 919cfe978d Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 444d060763 出库管理 页面及接口
9 months ago
qiuhongwu 8256e6af10 物料 材质 远程搜索
9 months ago
qiuhongwu af11cca079 供应商 选中的对应的全部数据
9 months ago
siontion a37b927698 onActivated(() => { getList() })
9 months ago
siontion bfd74145f3 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 0cd6621ada 出入库 编辑画面
9 months ago
qiuhongwu ed2159b543 客户选中 传递对应数据
9 months ago
qiuhongwu 7c39a19b0d 班组 传递 选中的数据
9 months ago
qiuhongwu fc0c6e2622 远程搜索车间 传递选中的json数据
9 months ago
zengchenxi 29b674fb41 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 2e7b32026d 【需求开发】完善项目订单、完成订单审核/订单批准基础功能
9 months ago
siontion 63d5d89458 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 6494feaf65 出入库 编辑页面 子表单验证
9 months ago
qiuhongwu 53666a9fc3 职工 传递 选中的全部数据
9 months ago
siontion d03b24a66c Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 6b41b3dadc 入出库编辑页面
9 months ago
zengchenxi 074d5e787a 【功能优化】完善项目订单列表查询
9 months ago
siontion a11a73e542 出入库编辑页面
9 months ago
siontion 020f7292c0 出入库 编辑页面初始化
9 months ago
siontion 5c4c864597 出入库附件上传
9 months ago
siontion f8cce3b6ad Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 69e022568f 入库出库 编辑页面修改
9 months ago
zengchenxi 8aa844eb1c Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 21725fef0f 【功能优化】订单信息保存操作完善
9 months ago
qiuhongwu 8a596342ab 优化
9 months ago
qiuhongwu 753ca4f1bd 班组远程搜索
9 months ago
qiuhongwu 32abd02b36 物料 远程搜索
9 months ago
zengchenxi 0eeedcbe65 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi add027b3e8 【功能优化】订单详情页面完善+新增序列号记录表辅助编号生成
9 months ago
qiuhongwu 28b16dc4f4 车间远程搜索
9 months ago
qiuhongwu 3f2cbf0fa3 材质远程搜索
9 months ago
siontion 99a1bdf6ba Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 901a1afdcd 出入库 附件信息 调整
9 months ago
qiuhongwu 3afc3a3fb4 供应商远程搜索
9 months ago
zengchenxi a7b183d786 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 7af825822e 【bug】修复材质编辑页下拉来源问题
9 months ago
qiuhongwu 4f467c7de2 启动单 清单附件两份
9 months ago
siontion e00b5e3af7 出入库 物料接口
9 months ago
qiuhongwu 61045751f3 【远程搜索】新增 客户远程搜索
9 months ago
qiuhongwu 4574cb2242 1、【远程搜索】上级部门和负责人优化2、【公共部分】示例
9 months ago
siontion fe055d057d 入库物料 ui/ux
9 months ago
zengchenxi f631d8834e 【订单信息】完成基础展示
9 months ago
siontion bd8830782c Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 5891e89a87 入库 新增编辑修改
9 months ago
qiuhongwu 007d663bdd 负责人 远程搜索功能
9 months ago
qiuhongwu 0dce091648 打印发货单 附件清单
9 months ago
siontion 9fb9a95df7 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion f3c1de043c 仓库联系人 联系电话 搜索联动
9 months ago
qiuhongwu a742ba6012 打印 发货单
9 months ago
siontion 22a0fe866c 仓库联系人
9 months ago
siontion 7fe87169e4 仓库联系人 模糊搜索
9 months ago
siontion 0896e5542a Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 4bfbbcfe87 入库列表和新建
9 months ago
qiuhongwu da853191c4 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
zengchenxi bd5f13d7e2 【sql】统一编码、新增项目订单相关sql
9 months ago
qiuhongwu 4cf2987a54 打印功能
9 months ago
siontion b265286370 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 03ecc489a4 出入库接口 修改
9 months ago
zengchenxi 58c515565e Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi 6b0823675e 【操作日志】增加业务类型与id 以支持更多的业务场景
9 months ago
siontion d6ea63ec54 出库管理 出库人 outbound
9 months ago
siontion 6acd97f643 Storage_NOT_EXISTS
9 months ago
siontion 3b24c2b6e9 Merge branch 'dev' of http://222.71.165.188:3000/yunxi/mes-heli into dev
9 months ago
siontion 08b2b73f02 出入库管理 页面及接口 新增
9 months ago
zengchenxi 1eb1dfd0cc 【操作日志+文件上传】扩展原有功能,支持多种业务处理
9 months ago
zengchenxi 2fa78fc50d 【后端地址】还原
9 months ago
siontion 84ca2510ec db脚本更新
9 months ago
siontion c14e0ff17a DB脚本编码规则更新
9 months ago
siontion 9c969df5b2 入库、出库和物料DB脚本新增
9 months ago
zengchenxi 25a71b8f22 【文件业务类型】新增枚举类
9 months ago
zengchenxi dd48c5c66a 【权限】增加岗位权限指令,以支持多种按钮控制
9 months ago
zengchenxi 52febe97fc 【优化】调整sql语句,便于移植
9 months ago
zengchenxi f0640c6b92 【优化】个人信息手机号码校验调整
9 months ago
qiuhongwu ee9e4c0a18 供应商信息 新增部分
9 months ago
zengchenxi 9a7c725e97 Merge remote-tracking branch 'origin/dev' into dev
9 months ago
zengchenxi e737fbcf7d 【生产环境】补充生产配置、日志路径调整
9 months ago
qiuhongwu 82ed75d8f7 测试
9 months ago

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

@ -3,6 +3,7 @@ package com.chanko.yunxi.mes.framework.common.util.io;
import cn.hutool.core.io.FileTypeUtil;
import cn.hutool.core.io.FileUtil;
import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;
@ -64,7 +65,7 @@ public class FileUtils {
}
/**
*
* 使
*
* @param content
* @param originalName
@ -81,4 +82,20 @@ public class FileUtils {
return sha256Hex + '.' + FileTypeUtil.getType(new ByteArrayInputStream(content));
}
/**
* uuid
*
* @param originalName
* @return path
*/
public static String generatePath(String originalName) {
String uuid = UUID.randomUUID().toString(true);
// 情况一:如果存在 name则优先使用 name 的后缀
if (StrUtil.isNotBlank(originalName)) {
String extName = FileNameUtil.extName(originalName);
return StrUtil.isBlank(extName) ? uuid : uuid + "." + extName;
}
return uuid;
}
}

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

@ -20,36 +20,12 @@ public class BannerApplicationRunner implements ApplicationRunner {
public void run(ApplicationArguments args) {
ThreadUtil.execute(() -> {
ThreadUtil.sleep(1, TimeUnit.SECONDS); // 延迟 1 秒,保证输出到结尾
log.info("\n----------------------------------------------------------\n\t" +
"项目启动成功!\n\t" +
"接口文档: \t{} \n\t" +
"开发文档: \t{} \n\t" +
"视频教程: \t{} \n" +
log.info("\n----------------------------------------------------------\n" +
"项目启动成功!\n" +
"\n" +
"{} \n" +
"----------------------------------------------------------",
"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/ 开启]");
}
"Copyright ©上海长江云息数字科技有限公司,All Rights Reserved.");
});
}

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

@ -38,6 +38,14 @@ public @interface OperateLog {
* null
*/
OperateTypeEnum[] type() default {};
/**
*
*/
String businessType() default "";
/**
* id
*/
long businessId() default 0L;
// ========== 开关字段 ==========

@ -88,11 +88,11 @@ public class OperateLogAspect {
private Object around0(ProceedingJoinPoint joinPoint,
com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog operateLog,
Operation operation) throws Throwable {
// 目前,只有管理员,才记录操作日志!所以非管理员,直接调用,不进行记录
/*// 目前,只有管理员,才记录操作日志!所以非管理员,直接调用,不进行记录
Integer userType = WebFrameworkUtils.getLoginUserType();
if (!Objects.equals(userType, UserTypeEnum.ADMIN.getValue())) {
return joinPoint.proceed();
}
}*/
// 记录开始时间
LocalDateTime startTime = LocalDateTime.now();
@ -159,11 +159,20 @@ public class OperateLogAspect {
fillRequestFields(operateLogObj);
// 补全方法信息
fillMethodFields(operateLogObj, joinPoint, operateLog, startTime, result, exception);
// 补全业务信息
fillBusinessFields(operateLogObj, operateLog);
// 异步记录日志
operateLogFrameworkService.createOperateLog(operateLogObj);
}
private static void fillBusinessFields(OperateLog operateLogObj, com.chanko.yunxi.mes.framework.operatelog.core.annotations.OperateLog operateLog) {
if(operateLog != null){
operateLogObj.setBusinessType(operateLog.businessType())
.setBusinessId(operateLog.businessId());
}
}
private static void fillUserFields(OperateLog operateLogObj) {
operateLogObj.setUserId(WebFrameworkUtils.getLoginUserId());
operateLogObj.setUserType(WebFrameworkUtils.getLoginUserType());

@ -40,6 +40,50 @@ public enum OperateTypeEnum {
*
*/
IMPORT(6),
/*
*
* */
SAVE(7),
/*
*
* */
SUBMIT_AUDIT(8),
/*
*
* */
AUDIT(9),
/*
*
* */
APPROVE(10),
/*
*
* */
REPULSE(11),
/*
*
* */
ALTER(12),
/*
*
* */
TERMINATE(13),
/*
*
* */
DELIVER(14),
/*
*
* */
SUBMIT(15),
/*
*
* */
CANCEL_SUBMIT(16),
/*
*
* */
CANCEL(17),
/**
*
*

@ -17,7 +17,14 @@ public class OperateLog {
*
*/
private String traceId;
/**
*
*/
private String businessType;
/**
* id
*/
private Long businessId;
/**
*
*/

@ -1,5 +1,8 @@
package com.chanko.yunxi.mes.framework.operatelog.core.service;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
/**
* Framework Service
*
@ -14,4 +17,26 @@ public interface OperateLogFrameworkService {
*/
void createOperateLog(OperateLog operateLog);
/**
*
*
* @param request
* @param startTime
* @param businessType
* @param businessId
* @param type
* @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);
}

@ -1,11 +1,20 @@
package com.chanko.yunxi.mes.framework.operatelog.core.service;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import com.chanko.yunxi.mes.framework.common.util.monitor.TracerUtils;
import com.chanko.yunxi.mes.framework.common.util.servlet.ServletUtils;
import com.chanko.yunxi.mes.framework.web.core.util.WebFrameworkUtils;
import com.chanko.yunxi.mes.module.system.api.logger.OperateLogApi;
import com.chanko.yunxi.mes.module.system.api.logger.dto.OperateLogCreateReqDTO;
import lombok.RequiredArgsConstructor;
import org.springframework.scheduling.annotation.Async;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;
import static com.chanko.yunxi.mes.framework.common.exception.enums.GlobalErrorCodeConstants.SUCCESS;
/**
* Framework Service
*
@ -25,4 +34,52 @@ public class OperateLogFrameworkServiceImpl implements OperateLogFrameworkServic
operateLogApi.createOperateLog(reqDTO);
}
@Override
public void createOperateLog(HttpServletRequest request, 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(request.getMethod());
operateLogObj.setRequestUrl(request.getRequestURI());
operateLogObj.setUserIp(ServletUtils.getClientIP(request));
operateLogObj.setUserAgent(ServletUtils.getUserAgent(request));
operateLogObj.setJavaMethod(request.getMethod());
operateLogObj.setDuration((int) (LocalDateTimeUtil.between(startTime, LocalDateTime.now()).toMillis()));
operateLogObj.setResultCode(SUCCESS.getCode());
OperateLogCreateReqDTO reqDTO = BeanUtil.toBean(operateLogObj, OperateLogCreateReqDTO.class);
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);
}
}

@ -0,0 +1,42 @@
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,9 +1,6 @@
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;
@ -11,10 +8,14 @@ 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;
@ -37,7 +38,7 @@ public interface BaseMapperX<T> extends MPJBaseMapper<T> {
IPage<T> mpPage = MyBatisUtils.buildPage(pageParam);
selectPage(mpPage, queryWrapper);
// 转换返回
return new PageResult<>(mpPage.getRecords(), mpPage.getTotal());
return new PageResult<>(mpPage.getRecords(), mpPage.getTotal(), new BigDecimal(mpPage.getTotal()).divide(new BigDecimal(pageParam.getPageSize()),0, BigDecimal.ROUND_CEILING).intValue());
}
default <DTO> PageResult<DTO> selectJoinPage(PageParam pageParam, Class<DTO> resultTypeClass, MPJBaseJoin<T> joinQueryWrapper) {

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

@ -25,6 +25,7 @@ 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;
@ -227,6 +228,11 @@ public class GlobalExceptionHandler {
return requestNotPermittedExceptionHandler(req, ex);
}
// 处理表数据相关异常
if (ex instanceof DuplicateKeyException){
return CommonResult.error(REPEAT_DATA);
}
// 情况三:处理异常
log.error("[defaultExceptionHandler]", ex);
// 插入异常日志

@ -28,6 +28,12 @@
<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>

@ -0,0 +1,23 @@
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;
}
}

@ -0,0 +1,34 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-01-15 05:39
*/
@Getter
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;
BusinesTypeEnum(String description) {
this.description = description;
}
}

@ -0,0 +1,28 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-01-16 10:38
*/
@Getter
public enum BusinessFileTypeEnum {
CONTRACT("合同"),
TECHNOLOGY_PROTOCOL("技术协议"),
ID_CARD("身份证照片"),
COMPOSITION_REPORT("材质报告"),
HEAT_TREATMENT_REPORT("热处理报告"),
SCAN_REPORT("扫描报告"),
TRI_LINEAR_COORDINATES_MEASURING("三坐标检测报告"),
CERTIFICATE_OF_QUALIFICATION("合格证"),
;
private String description;
BusinessFileTypeEnum(String description) {
this.description = description;
}
}

@ -25,6 +25,10 @@ public enum CodeEnum {
* Wa+
* WI++4
* WO++4
* WC++4
* +++
* HL++
*
* */
FACTORY("工厂", "Fa", 4),
DEPT("部门", "De", 4),
@ -36,6 +40,17 @@ public enum CodeEnum {
WAREHOUSE("仓库", "Wa", 4),
STOCK_IN("入库单", "WI", 4, "yyyyMMdd"),
STOCK_OUT("出库单", "WO", 4, "yyyyMMdd"),
STOCK_CHECK("盘点单据", "WC", 3, "yyyyMM"),
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),
;
@ -46,6 +61,13 @@ 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;
@ -63,11 +85,23 @@ public enum CodeEnum {
this.sequenceArgsLength = 3;
}
CodeEnum(String description, int sequenceLength, String dateFormat) {
this.description = description;
this.sequenceLength = sequenceLength;
this.dateFormat = dateFormat;
this.sequenceTemplate = "%s%s%0"+sequenceLength+"d";
this.sequenceArgsLength = 3;
}
public String getCode(String suffix){
return getCode(this.prefix, suffix);
}
public String getCode(String prefix, String suffix){
String sequenceNo = suffix.length() > this.sequenceLength ? suffix.substring(suffix.length() - this.sequenceLength) : suffix;
Object[] args = new Object[this.sequenceArgsLength];
int i = 0;
args[i++] = this.prefix;
args[i++] = prefix;
if(!StringUtils.isEmpty(this.dateFormat)){
args[i++] = (new SimpleDateFormat(this.dateFormat).format(new Date()));
}

@ -0,0 +1,23 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-01-26 12:38
*/
@Getter
public enum DeliverOrderStatusEnum {
SAVE(1, "已保存"),
DELIVER(2, "已发货");
private int code;
private String description;
DeliverOrderStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -0,0 +1,21 @@
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;
}
}

@ -0,0 +1,18 @@
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;
}
}

@ -13,19 +13,36 @@ import com.chanko.yunxi.mes.framework.common.exception.ErrorCode;
* 000
* 001
* 002
* 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, "材质不存在");
ErrorCode CLIENT_NOT_EXISTS = new ErrorCode(1_001_003, "客户信息不存在");
ErrorCode CUSTOMER_NOT_EXISTS = new ErrorCode( 1_001_004, "客户新表信息不存在");
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, "车间不存在");
@ -36,7 +53,44 @@ public interface ErrorCodeConstants {
ErrorCode WAREHOUSE_NOT_EXISTS = new ErrorCode(1_003_001, "仓库不存在");
ErrorCode RG_NOT_EXISTS = new ErrorCode(1_003_002, "库区不存在");
ErrorCode PN_NOT_EXISTS = new ErrorCode(1_003_003, "库位不存在");
ErrorCode STORAGE_NOT_EXISTS = new ErrorCode(1_003_004,"库存不存在");
ErrorCode STORAGE_MAT_NOT_EXISTS = new ErrorCode(1_003_005, "物料不存在");
ErrorCode STORAGE_LOG_NOT_EXISTS = new ErrorCode(1_003_006, "库存日志不存在");
ErrorCode STORAGE_CHECK_NOT_EXISTS = new ErrorCode(1_003_007, "库存盘点不存在");
ErrorCode STORAGE_CHECK_MAT_NOT_EXISTS = new ErrorCode(1_003_008, "盘点物料不存在");
/************订单管理***********/
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, "财务发票不存在");
}

@ -0,0 +1,24 @@
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;
}
}

@ -0,0 +1,35 @@
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();
}
}

@ -0,0 +1,25 @@
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;
}
}

@ -0,0 +1,23 @@
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;
}
}

@ -0,0 +1,24 @@
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;
}
}

@ -0,0 +1,28 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-01-18 01:19
*/
@Getter
public enum ProjectOrderStatusEnum {
REPULSE(3, "已打回"),
SAVE(4, "已保存"),
ALTER(8, "发起变更"),
SUBMIT_AUDIT(8, "已送审"),
AUDIT(16, "已审核"),
APPROVE(32, "已启动"),
TERMINATE(64, "已终止")
;
private int code;
private String description;
ProjectOrderStatusEnum(int code, String description) {
this.code = code;
this.description = description;
}
}

@ -0,0 +1,26 @@
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;
}
}

@ -0,0 +1,25 @@
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;
}
}

@ -0,0 +1,27 @@
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;
}
}

@ -0,0 +1,25 @@
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;
}
}

@ -0,0 +1,23 @@
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;
}
}

@ -0,0 +1,19 @@
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;
}
}

@ -0,0 +1,24 @@
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;
}
}

@ -0,0 +1,25 @@
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;
}
}

@ -0,0 +1,28 @@
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;
}
}

@ -0,0 +1,23 @@
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;
}
}

@ -0,0 +1,24 @@
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;
}
}

@ -0,0 +1,22 @@
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;
}
}

@ -0,0 +1,20 @@
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;
}
}

@ -0,0 +1,20 @@
package com.chanko.yunxi.mes.module.heli.enums;
import lombok.Getter;
/**
*
* @author chenxi
* @date 2024-01-18 02:31
*/
@Getter
public enum YesOrNoEnum {
Y(1), N(0);
private int code;
YesOrNoEnum(int code) {
this.code = code;
}
}

@ -0,0 +1,56 @@
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;
}
}

@ -32,6 +32,11 @@
<artifactId>mes-module-system-biz</artifactId>
<version>${revision}</version>
</dependency>
<dependency>
<groupId>com.chanko.yunxi</groupId>
<artifactId>mes-module-infra-biz</artifactId>
<version>${revision}</version>
</dependency>
<!-- 业务组件 -->
<dependency>
@ -117,6 +122,12 @@
<artifactId>mes-spring-boot-starter-file</artifactId>
</dependency>
<dependency>
<groupId>com.github.dadiyang</groupId>
<artifactId>equator</artifactId>
<version>1.0.4</version>
</dependency>
</dependencies>
</project>

@ -0,0 +1,24 @@
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,10 +1,13 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.composition.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
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;
@ -35,6 +38,6 @@ public class CompositionPageReqVO extends PageParam {
private String original;
@Schema(description = "密度")
private String density;
private BigDecimal density;
}

@ -1,14 +1,14 @@
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 java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
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
@ -46,6 +46,6 @@ public class CompositionRespVO {
@Schema(description = "密度")
@ExcelProperty("密度")
private String density;
private BigDecimal density;
}

@ -1,10 +1,11 @@
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.*;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 材质新增/修改 Request VO")
@Data
@ -32,6 +33,6 @@ public class CompositionSaveReqVO {
private String original;
@Schema(description = "密度")
private String density;
private BigDecimal density;
}

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

@ -23,13 +23,17 @@ 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 brief;
private String name;
@Schema(description = "客户全称", requiredMode = Schema.RequiredMode.REQUIRED, example = "赵六")
@Schema(description = "客户全称", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("客户全称")
private String name;
private String fullName;
@Schema(description = "所属行业")
@ExcelProperty("所属行业")

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

@ -0,0 +1,138 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder;
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.projectorder.vo.ProjectOrderSaveReqVO;
import com.chanko.yunxi.mes.module.heli.enums.BusinesTypeEnum;
import org.springframework.transaction.annotation.Transactional;
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.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.service.deliverorder.DeliverOrderService;
@Tag(name = "管理后台 - 发货订单")
@RestController
@RequestMapping("/heli/deliver-order")
@Validated
public class DeliverOrderController {
@Resource
private DeliverOrderService deliverOrderService;
@Resource
private OperateLogFrameworkService operateLogFrameworkService;
@Resource
private HttpServletRequest request;
@PostMapping("/create")
@Operation(summary = "创建发货订单")
@PreAuthorize("@ss.hasPermission('heli:deliver-order:create')")
public CommonResult<Long> createDeliverOrder(@Valid @RequestBody DeliverOrderSaveReqVO createReqVO) {
return success(deliverOrderService.createDeliverOrder(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新发货订单")
@PreAuthorize("@ss.hasPermission('heli:deliver-order:update')")
public CommonResult<Boolean> updateDeliverOrder(@Valid @RequestBody DeliverOrderSaveReqVO updateReqVO) {
deliverOrderService.updateDeliverOrder(updateReqVO);
return success(true);
}
@PostMapping("/operate")
@Operation(summary = "操作项目订单")
@PreAuthorize("@ss.hasPermission('heli:delivery-order:update')")
@OperateLog(enable = false)
@Transactional(rollbackFor = Exception.class)
public CommonResult<Long> operateProjectOrder(@Valid @RequestBody DeliverOrderSaveReqVO operateReqVO) {
LocalDateTime startTime = LocalDateTime.now();
deliverOrderService.operateProjectOrder(operateReqVO);
// 手动记录日志
operateLogFrameworkService.createOperateLog(request,
startTime,
BusinesTypeEnum.DELIVER_ORDER.name(),
operateReqVO.getId(),
OperateTypeEnum.valueOf(operateReqVO.getActive()).getType(),
operateReqVO.getActiveOpinion());
return success(operateReqVO.getId());
}
@DeleteMapping("/delete")
@Operation(summary = "删除发货订单")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('heli:deliver-order:delete')")
public CommonResult<Boolean> deleteDeliverOrder(@RequestParam("id") Long id) {
deliverOrderService.deleteDeliverOrder(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得发货订单")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('heli:deliver-order:query')")
public CommonResult<DeliverOrderRespVO> getDeliverOrder(@RequestParam("id") Long id) {
DeliverOrderDO deliverOrder = deliverOrderService.getDeliverOrder(id);
return success(BeanUtils.toBean(deliverOrder, DeliverOrderRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得发货订单分页")
@PreAuthorize("@ss.hasPermission('heli:deliver-order:query')")
public CommonResult<PageResult<DeliverOrderRespVO>> getDeliverOrderPage(@Valid DeliverOrderPageReqVO pageReqVO) {
PageResult<DeliverOrderDO> pageResult = deliverOrderService.getDeliverOrderPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, DeliverOrderRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出发货订单 Excel")
@PreAuthorize("@ss.hasPermission('heli:deliver-order:export')")
@OperateLog(type = EXPORT)
public void exportDeliverOrderExcel(@Valid DeliverOrderPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<DeliverOrderDO> list = deliverOrderService.getDeliverOrderPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "发货订单.xls", "数据", DeliverOrderRespVO.class,
BeanUtils.toBean(list, DeliverOrderRespVO.class));
}
// ==================== 子表(发货订单子项) ====================
@GetMapping("/deliver-order-sub/list-by-delivery-order-id")
@Operation(summary = "获得发货订单子项列表")
@Parameter(name = "deliveryOrderId", description = "订单id")
@PreAuthorize("@ss.hasPermission('heli:deliver-order:query')")
public CommonResult<List<DeliverOrderSubDO>> getDeliverOrderSubListByDeliveryOrderId(@RequestParam("deliveryOrderId") Long deliveryOrderId) {
return success(deliverOrderService.getDeliverOrderSubListByDeliveryOrderId(deliveryOrderId));
}
}

@ -0,0 +1,86 @@
package com.chanko.yunxi.mes.module.heli.controller.admin.deliverorder.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 DeliverOrderPageReqVO extends PageParam {
@Schema(description = "编号,唯一")
private String code;
@Schema(description = "销售订单id列表 多个用英文逗号分割")
private String saleOrderIds;
@Schema(description = "项目销售订单编号")
private String saleOrderCode;
@Schema(description = "客户id", example = "22885")
private Long customerId;
@Schema(description = "客户名称")
private String customerName;
@Schema(description = "发货日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] deliverDate;
@Schema(description = "发货单状态 已保存/已发货", example = "1")
private Integer deliverStatus;
@Schema(description = "发货人")
private Long deliverPerson;
@Schema(description = "发货人电话")
private String deliverPersonMobile;
@Schema(description = "发货方式")
private String deliverMode;
@Schema(description = "收货人电话")
private String receivePersonMobile;
@Schema(description = "司机姓名", example = "王五")
private String transportDriverName;
@Schema(description = "司机电话")
private String transportDriverMobile;
@Schema(description = "车牌号")
private String transportBusNumber;
@Schema(description = "重量(T)")
private String transportWeight;
@Schema(description = "位置(米)")
private String transportSize;
@Schema(description = "备注", example = "随便")
private String remark;
@Schema(description = "状态,1表示正常2表示禁用", example = "1")
private Integer status;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "收货人姓名", example = "张三")
private String receivePersonName;
@Schema(description = "收货详细地址")
private String receiveAddress;
@Schema(description = "项目名称")
private String projectName;
}

@ -0,0 +1,131 @@
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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 发货订单 Response VO")
@Data
@ExcelIgnoreUnannotated
public class DeliverOrderRespVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "21429")
@ExcelProperty("自增字段,唯一")
private Long id;
@Schema(description = "编号,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("编号,唯一")
private String code;
@Schema(description = "销售订单id列表 多个用英文逗号分割", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("销售订单id列表 多个用英文逗号分割")
private String saleOrderIds;
@Schema(description = "客户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22885")
@ExcelProperty("客户id")
private Long customerId;
@Schema(description = "发货日期", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("发货日期")
private LocalDateTime deliverDate;
@Schema(description = "发货单状态 已保存/已发货", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty(value = "发货单状态 已保存/已发货", converter = DictConvert.class)
@DictFormat("heli_deliver_order_status") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private Integer deliverStatus;
@Schema(description = "发货人", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("发货人")
private Long deliverPerson;
@Schema(description = "发货人电话", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("发货人电话")
private String deliverPersonMobile;
@Schema(description = "发货方式", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty(value = "发货方式", converter = DictConvert.class)
@DictFormat("heli_deliver_mode") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
private String deliverMode;
@Schema(description = "收货人电话", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("收货人电话")
private String receivePersonMobile;
@Schema(description = "司机姓名", example = "王五")
@ExcelProperty("司机姓名")
private String transportDriverName;
@Schema(description = "司机电话")
@ExcelProperty("司机电话")
private String transportDriverMobile;
@Schema(description = "车牌号")
@ExcelProperty("车牌号")
private String transportBusNumber;
@Schema(description = "重量(T)")
@ExcelProperty("重量(T)")
private String transportWeight;
@Schema(description = "位置(米)")
@ExcelProperty("位置(米)")
private String transportSize;
@Schema(description = "备注", example = "随便")
@ExcelProperty("备注")
private String remark;
@Schema(description = "状态,1表示正常2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("状态,1表示正常2表示禁用")
private Integer status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "收货人姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
@ExcelProperty("收货人姓名")
private String receivePersonName;
@Schema(description = "收货详细地址")
@ExcelProperty("收货详细地址")
private String receiveAddress;
@Schema(description = "项目销售单号")
@ExcelProperty("项目销售单号")
private String saleOrderCode;
@Schema(description = "合同号")
@ExcelProperty("合同号")
private String contractNo;
@Schema(description = "项目名称")
@ExcelProperty("项目名称")
private String projectName;
@Schema(description = "性质")
@ExcelProperty("性质")
private String property;
@Schema(description = "客户名称")
@ExcelProperty("客户名称")
private String customerName;
@Schema(description = "发货人姓名")
@ExcelProperty("发货人姓名")
private String deliverPersonName;
@Schema(description = "制单人姓名")
@ExcelProperty("制单人姓名")
private String creatorName;
@Schema(description = "业务员姓名")
@ExcelProperty("业务员姓名")
private String businessManName;
}

@ -0,0 +1,96 @@
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 java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - 发货订单新增/修改 Request VO")
@Data
public class DeliverOrderSaveReqVO {
@Schema(description = "自增字段,唯一", requiredMode = Schema.RequiredMode.REQUIRED, example = "21429")
private Long id;
@Schema(description = "编号,唯一", requiredMode = Schema.RequiredMode.REQUIRED)
private String code;
@Schema(description = "销售订单id列表 多个用英文逗号分割", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "销售订单id列表 多个用英文逗号分割不能为空")
private String saleOrderIds;
@Schema(description = "客户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "22885")
@NotNull(message = "客户id不能为空")
private Long customerId;
@Schema(description = "发货日期", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "发货日期不能为空")
private LocalDateTime deliverDate;
@Schema(description = "发货单状态 已保存/已发货", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "发货单状态 已保存/已发货不能为空")
private Integer deliverStatus;
@Schema(description = "发货人", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "发货人不能为空")
private Long deliverPerson;
@Schema(description = "发货人电话", requiredMode = Schema.RequiredMode.REQUIRED)
@NotEmpty(message = "发货人电话不能为空")
private String deliverPersonMobile;
@Schema(description = "发货方式", requiredMode = Schema.RequiredMode.REQUIRED)
private String deliverMode;
@Schema(description = "收货人电话", requiredMode = Schema.RequiredMode.REQUIRED)
private String receivePersonMobile;
@Schema(description = "司机姓名", example = "王五")
private String transportDriverName;
@Schema(description = "司机电话")
private String transportDriverMobile;
@Schema(description = "车牌号")
private String transportBusNumber;
@Schema(description = "重量(T)")
private String transportWeight;
@Schema(description = "位置(米)")
private String transportSize;
@Schema(description = "备注", example = "随便")
private String remark;
@Schema(description = "状态,1表示正常2表示禁用", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotNull(message = "状态,1表示正常2表示禁用不能为空")
private Integer status;
@Schema(description = "收货人姓名", requiredMode = Schema.RequiredMode.REQUIRED, example = "张三")
private String receivePersonName;
@Schema(description = "收货详细地址", requiredMode = Schema.RequiredMode.REQUIRED)
private String receiveAddress;
@Schema(description = "操作类型")
@NotBlank(message = "操作类型不能为空")
private String active;
@Schema(description = "操作意见")
private String activeOpinion;
@Valid
@Schema(description = "发货订单子项列表")
private List<DeliverOrderSubDO> deliverOrderSubs;
@Valid
@Schema(description = "发货订单子项列表")
private List<DeliverOrderSubDO> deliverOrderOtherSubs;
}

@ -0,0 +1,110 @@
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);
}
}

@ -0,0 +1,50 @@
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;
}

@ -0,0 +1,30 @@
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;
}

@ -0,0 +1,27 @@
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;
}

@ -0,0 +1,95 @@
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));
}
}

@ -0,0 +1,40 @@
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;
}

@ -0,0 +1,44 @@
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;
}

@ -0,0 +1,33 @@
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;
}

@ -0,0 +1,103 @@
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));
}
}

@ -0,0 +1,68 @@
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;
}

@ -0,0 +1,90 @@
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;
}

@ -0,0 +1,73 @@
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,33 +1,35 @@
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.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.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.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
@ -92,4 +94,32 @@ public class MaterialController {
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);
}
}

@ -0,0 +1,70 @@
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,6 +24,9 @@ public class MaterialPageReqVO extends PageParam {
@Schema(description = "物料名称", example = "李四")
private String name;
@Schema(description = "物料名称", example = "李四")
private String codeAndName;
@Schema(description = "品牌")
private String brand;

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

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

@ -0,0 +1,95 @@
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));
}
}

@ -0,0 +1,60 @@
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;
}

@ -0,0 +1,75 @@
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;
}

@ -0,0 +1,45 @@
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;
}

@ -0,0 +1,115 @@
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));
}
}

@ -0,0 +1,54 @@
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;
}

@ -0,0 +1,71 @@
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;
}

@ -0,0 +1,40 @@
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;
}

@ -0,0 +1,30 @@
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;
}

@ -0,0 +1,57 @@
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;
}

@ -0,0 +1,103 @@
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));
}
}

@ -0,0 +1,55 @@
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;
}

@ -0,0 +1,78 @@
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;
}

@ -0,0 +1,40 @@
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;
}

@ -92,4 +92,19 @@ public class MouldTypeController {
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);
}
}

@ -0,0 +1,103 @@
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));
}
}

@ -0,0 +1,96 @@
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;
}

@ -0,0 +1,139 @@
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;
}

@ -0,0 +1,70 @@
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;
}

@ -0,0 +1,95 @@
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));
}
}

@ -0,0 +1,61 @@
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;
}

@ -0,0 +1,79 @@
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;
}

@ -0,0 +1,58 @@
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;
}

@ -0,0 +1,130 @@
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));
}
}

@ -0,0 +1,68 @@
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;
}

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

Loading…
Cancel
Save