From 7f99e4a369319397c44767b5e8d558fefa049c4e Mon Sep 17 00:00:00 2001 From: Houjie <714924425@qq.com> Date: 星期一, 26 五月 2025 12:01:21 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InboundDetailMapper.java | 27 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundDetailController.java | 174 +++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml | 5 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundOrder.java | 116 ++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InStoreDetailServiceImpl.java | 19 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java | 54 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsConfigProperty.java | 1 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundDetailService.java | 20 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InStoreDetailMapper.java | 17 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodeUtils.java | 121 ++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InStoreDetail.java | 94 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInStoreDetailService.java | 14 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaThreadingToolVo.java | 1 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaBladeVo.java | 1 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaTurningToolsVo.java | 1 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java | 237 ++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundDetailMapper.xml | 21 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java | 209 ++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InStoreDetailController.java | 177 +++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundOrderMapper.xml | 5 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java | 3 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodePrinterUtils.java | 74 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaMillToolVo.java | 1 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InboundOrderMapper.java | 17 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/dto/InboundOrderFlowDto.java | 12 lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundDetail.java | 97 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml | 91 + lxzn-module-system/lxzn-system-start/src/main/resources/db/tms_2025/tms-init-20250522.sql | 1240 +++++++++++++++++++++++++ lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundDetailServiceImpl.java | 55 + lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java | 19 30 files changed, 2,850 insertions(+), 73 deletions(-) diff --git a/lxzn-module-system/lxzn-system-start/src/main/resources/db/tms_2025/tms-init-20250522.sql b/lxzn-module-system/lxzn-system-start/src/main/resources/db/tms_2025/tms-init-20250522.sql new file mode 100644 index 0000000..47fc1db --- /dev/null +++ b/lxzn-module-system/lxzn-system-start/src/main/resources/db/tms_2025/tms-init-20250522.sql @@ -0,0 +1,1240 @@ +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tools_classify]') AND type in (N'U')) DROP TABLE [dbo].[tools_classify]; +CREATE TABLE [dbo].[tools_classify]( + id VARCHAR(32) NOT NULL, + classify_id VARCHAR(255), + type_name VARCHAR(128) NOT NULL, + parent_id VARCHAR(32) NOT NULL, + leaf_flag VARCHAR(6), + seq VARCHAR(255), + status VARCHAR(6), + rank INT NOT NULL, + encoding_type VARCHAR(32), + para_type_flag VARCHAR(32) NOT NULL, + remark VARCHAR(128), + tenant_id , + created_by VARCHAR(32), + created_time DATE, + updated_by VARCHAR(32), + updated_time DATE, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍒嗙被淇℃伅琛�', 'SCHEMA', dbo, 'table', tools_classify, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', tools_classify, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '鍒嗙被缂栧彿', 'SCHEMA', dbo, 'table', tools_classify, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '绫诲瀷鍚嶇О', 'SCHEMA', dbo, 'table', tools_classify, 'column', type_name; +EXEC sp_addextendedproperty 'MS_Description', '鐖剁被鍨嬬紪鍙�', 'SCHEMA', dbo, 'table', tools_classify, 'column', parent_id; +EXEC sp_addextendedproperty 'MS_Description', '鍙跺瓙鑺傜偣鏍囪;1鏄�2鍚�', 'SCHEMA', dbo, 'table', tools_classify, 'column', leaf_flag; +EXEC sp_addextendedproperty 'MS_Description', '鏄剧ず搴忓彿', 'SCHEMA', dbo, 'table', tools_classify, 'column', seq; +EXEC sp_addextendedproperty 'MS_Description', '鐘舵��;1.鍚敤锛�2.鍏抽棴', 'SCHEMA', dbo, 'table', tools_classify, 'column', status; +EXEC sp_addextendedproperty 'MS_Description', '灞傜骇', 'SCHEMA', dbo, 'table', tools_classify, 'column', rank; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍒嗙被缂栫爜鏂瑰紡;1.绯荤粺鐢熸垚锛� +2.鎸夌紪鐮佹嫾鎺ワ紱 +3.鎵嬪伐缂栫爜', 'SCHEMA', dbo, 'table', tools_classify, 'column', encoding_type; +EXEC sp_addextendedproperty 'MS_Description', '瀵瑰簲鍙傛暟妯℃澘琛ㄥ悕绉�', 'SCHEMA', dbo, 'table', tools_classify, 'column', para_type_flag; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', tools_classify, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', tools_classify, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', tools_classify, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', tools_classify, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', tools_classify, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', tools_classify, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[base_tools]') AND type in (N'U')) DROP TABLE [dbo].[base_tools]; +CREATE TABLE [dbo].[base_tools]( + id 32(32) NOT NULL, + classify_id 32(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + tool_id VARCHAR(32), + tool_level VARCHAR(16), + i_count VARCHAR(255), + sign_code VARCHAR(16), + chinese_name VARCHAR(128), + foreign_language_name VARCHAR(128), + standard_level VARCHAR(16), + standard_code VARCHAR(32), + tool_model VARCHAR(255), + remark VARCHAR(255), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿淇℃伅琛�', 'SCHEMA', dbo, 'table', base_tools, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', base_tools, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '鍒嗙被缂栧彿', 'SCHEMA', dbo, 'table', base_tools, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栫爜', 'SCHEMA', dbo, 'table', base_tools, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', base_tools, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿绛夌骇;宸ュ叿绮剧‘绛夌骇鍒嗕负3涓瓑绾э細鍒嗗埆涓篈銆丅銆丆 +A绫�:鐗瑰埆閲嶈锛屽叆搴撶殑宸ュ叿鏄闄勫疄鐗╃紪鐮侊紙渚嬪:Q20120918011-0001) +B绫�:涓�鑸噸瑕侊紝鍏ュ簱鐨勫伐鍏锋槸涓嶉檮瀹炵墿缂栫爜锛堜緥濡�:Q20120918011) +C绫�:涓嶉噸瑕侊紝娌℃湁鐗规畩瑙勫畾锛岃埅瀹囨殏鏃舵病鏈変娇鐢ㄥ満鏅�', 'SCHEMA', dbo, 'table', base_tools, 'column', tool_level; +EXEC sp_addextendedproperty 'MS_Description', '鎶婂彿鏈�澶у��', 'SCHEMA', dbo, 'table', base_tools, 'column', i_count; +EXEC sp_addextendedproperty 'MS_Description', '搴忓彿锛堟垨浼佷笟鍐呯爜)', 'SCHEMA', dbo, 'table', base_tools, 'column', sign_code; +EXEC sp_addextendedproperty 'MS_Description', '涓枃鍚嶇О', 'SCHEMA', dbo, 'table', base_tools, 'column', chinese_name; +EXEC sp_addextendedproperty 'MS_Description', '澶栨枃鍚嶇О', 'SCHEMA', dbo, 'table', base_tools, 'column', foreign_language_name; +EXEC sp_addextendedproperty 'MS_Description', '鏍囨敞绾у埆', 'SCHEMA', dbo, 'table', base_tools, 'column', standard_level; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯鍙�', 'SCHEMA', dbo, 'table', base_tools, 'column', standard_code; +EXEC sp_addextendedproperty 'MS_Description', '鍨嬪彿/鍥惧彿', 'SCHEMA', dbo, 'table', base_tools, 'column', tool_model; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', base_tools, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', base_tools, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', base_tools, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', base_tools, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', base_tools, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', base_tools, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[para_hole_tools]') AND type in (N'U')) DROP TABLE [dbo].[para_hole_tools]; +CREATE TABLE [dbo].[para_hole_tools]( + id VARCHAR(32) NOT NULL, + classify_id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + sign_code VARCHAR(16), + chinese_name VARCHAR(128), + foreign_language_name VARCHAR(128), + standard_level VARCHAR(16), + standard_code VARCHAR(32), + position_code VARCHAR(255), + tool_model VARCHAR(255) NOT NULL, + diameter VARCHAR(128) NOT NULL, + cone_angle VARCHAR(24), + edge_length VARCHAR(24) NOT NULL, + total_length VARCHAR(24) NOT NULL, + tool_material VARCHAR(64) NOT NULL, + part_material VARCHAR(64), + paintcoat_flag VARCHAR(32) NOT NULL, + tool_pattern VARCHAR(64) NOT NULL, + handle_specifications VARCHAR(128) NOT NULL, + cooling_method VARCHAR(64) NOT NULL, + technical_conditions VARCHAR(128) NOT NULL, + conditions_info VARCHAR(128), + brand VARCHAR(64), + types VARCHAR(64), + tolerance_class VARCHAR(64), + flute_form VARCHAR(64), + handle_form VARCHAR(64), + blade_count VARCHAR(24), + small_diameter VARCHAR(16), + chamfer_angle VARCHAR(16), + fitter_part VARCHAR(64), + effective_length VARCHAR(16), + drill_diameter_range VARCHAR(32), + knife_diameter VARCHAR(16), + bore_diameter VARCHAR(16), + connector_type VARCHAR(16), + slot_specification VARCHAR(32), + scope_of_application VARCHAR(32), + latest_boring_diameter VARCHAR(16), + max_boring_diameter VARCHAR(16), + processingmethod VARCHAR(64), + heads_number VARCHAR(16), + adapt_holder VARCHAR(64), + remark VARCHAR(128), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '11瀛斿姞宸ュ垁鍏穏1', 'SCHEMA', dbo, 'table', para_hole_tools, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍒嗙被缂栧彿', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿-涓婚敭', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '搴忓彿(鎴栦紒涓氬唴鍘熶唬鐮�)', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', sign_code; +EXEC sp_addextendedproperty 'MS_Description', '涓枃鍚嶇О', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', chinese_name; +EXEC sp_addextendedproperty 'MS_Description', '澶栨枃鍚嶇О', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', foreign_language_name; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯绾у埆', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', standard_level; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯鍙�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', standard_code; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙凤紙灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ワ級;灞曠ず鏃躲�佸彲浠ュ涓嫾鎺ユ垚澶氫釜搴撲綅鍙风殑瀛楃涓诧紝杩涜浼垪灞曠ず銆�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', position_code; +EXEC sp_addextendedproperty 'MS_Description', '鍨嬪彿/鍥惧彿', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', tool_model; +EXEC sp_addextendedproperty 'MS_Description', '鐩村緞', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', diameter; +EXEC sp_addextendedproperty 'MS_Description', '鍒囧墛鍒冮敟瑙�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', cone_angle; +EXEC sp_addextendedproperty 'MS_Description', '鍒囧墛鍒冮暱', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', edge_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋�婚暱', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', total_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋潗鏂�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', tool_material; +EXEC sp_addextendedproperty 'MS_Description', '闆朵欢鏉愭枡', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', part_material; +EXEC sp_addextendedproperty 'MS_Description', '鏄惁娑傚眰', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', paintcoat_flag; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏峰瀷寮�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', tool_pattern; +EXEC sp_addextendedproperty 'MS_Description', '鏌勯儴瑙勬牸', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', handle_specifications; +EXEC sp_addextendedproperty 'MS_Description', '鍐峰嵈鏂瑰紡', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', cooling_method; +EXEC sp_addextendedproperty 'MS_Description', '闄勫姞鎶�鏈潯浠�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', technical_conditions; +EXEC sp_addextendedproperty 'MS_Description', '闄勫姞鎶�鏈潯浠惰鏄�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', conditions_info; +EXEC sp_addextendedproperty 'MS_Description', '鍝佺墝', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', brand; +EXEC sp_addextendedproperty 'MS_Description', '鍒跺紡', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', types; +EXEC sp_addextendedproperty 'MS_Description', '鍏樊绛夌骇', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', tolerance_class; +EXEC sp_addextendedproperty 'MS_Description', '鎺掑睉妲藉舰寮�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', flute_form; +EXEC sp_addextendedproperty 'MS_Description', '鏌勯儴褰㈠紡', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', handle_form; +EXEC sp_addextendedproperty 'MS_Description', '鍒冩暟', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', blade_count; +EXEC sp_addextendedproperty 'MS_Description', '鏈�灏忕洿寰�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', small_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鍊掕瑙掑害', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', chamfer_angle; +EXEC sp_addextendedproperty 'MS_Description', '閫傞厤鍒�鐗�-鍒�澶�-鍒�鏉�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', fitter_part; +EXEC sp_addextendedproperty 'MS_Description', '鏈夋晥鍔犲伐闀垮害', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', effective_length; +EXEC sp_addextendedproperty 'MS_Description', '閽诲ご鐩村緞鑼冨洿', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', drill_diameter_range; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鏉嗙洿寰�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', knife_diameter; +EXEC sp_addextendedproperty 'MS_Description', '瀛斿緞', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', bore_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鎺ュ彛褰㈠紡', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', connector_type; +EXEC sp_addextendedproperty 'MS_Description', '鎺ュ彛妲介暱瑙勬牸', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', slot_specification; +EXEC sp_addextendedproperty 'MS_Description', '閫傜敤鑼冨洿', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', scope_of_application; +EXEC sp_addextendedproperty 'MS_Description', '鏈�鏂伴晽瀛旂洿寰�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', latest_boring_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鏈�澶ч晽瀛旂洿寰�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', max_boring_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鍔犲伐鏂瑰紡', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', processingmethod; +EXEC sp_addextendedproperty 'MS_Description', '鍒�澶存暟', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', heads_number; +EXEC sp_addextendedproperty 'MS_Description', '閫傞厤鍒�搴�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', adapt_holder; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', para_hole_tools, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[para_threading_tool]') AND type in (N'U')) DROP TABLE [dbo].[para_threading_tool]; +CREATE TABLE [dbo].[para_threading_tool]( + id VARCHAR(32) NOT NULL, + classify_id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + sign_code VARCHAR(16), + chinese_name VARCHAR(128), + foreign_language_name VARCHAR(128), + standard_level VARCHAR(16), + standard_code VARCHAR(32), + position_code VARCHAR(255), + tool_model VARCHAR(255) NOT NULL, + thread_code VARCHAR(64) NOT NULL, + pitch VARCHAR(16) NOT NULL, + rotation_direction VARCHAR(16) NOT NULL, + tolerancezone_level VARCHAR(16) NOT NULL, + edge_length VARCHAR(32) NOT NULL, + total_length VARCHAR(32) NOT NULL, + tool_material VARCHAR(64) NOT NULL, + part_material VARCHAR(64), + paintcoat_flag VARCHAR(32) NOT NULL, + external_dimensions VARCHAR(64), + handle_specifications VARCHAR(64) NOT NULL, + technical_conditions VARCHAR(128) NOT NULL, + conditions_info VARCHAR(128), + brand VARCHAR(64), + types VARCHAR(64), + screw_hole_type VARCHAR(16), + cooling_method VARCHAR(64), + thread_standard VARCHAR(32), + flute_solt_type VARCHAR(32), + thread_type VARCHAR(32), + guiding_size VARCHAR(32), + connection_aperture VARCHAR(32), + connecting_keyway VARCHAR(64), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '12铻虹汗鍒�鍏穏2', 'SCHEMA', dbo, 'table', para_threading_tool, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍒嗙被缂栧彿', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '搴忓彿锛堟垨浼佷笟鍐呭師浠g爜锛�', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', sign_code; +EXEC sp_addextendedproperty 'MS_Description', '涓枃鍚嶇О', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', chinese_name; +EXEC sp_addextendedproperty 'MS_Description', '澶栨枃鍚嶇О', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', foreign_language_name; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯绾у埆', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', standard_level; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯鍙�', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', standard_code; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙�;鐢卞簱鍖�+灞�+鎺�+鍒楃粍鎴愶紝鍙互鏄涓簱浣嶅彿浠ヨ嫳鏂囩偣鍙峰垎鍓茬殑瀛楃涓层��', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', position_code; +EXEC sp_addextendedproperty 'MS_Description', '鍨嬪彿/鍥惧彿', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', tool_model; +EXEC sp_addextendedproperty 'MS_Description', '铻虹汗浠e彿', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', thread_code; +EXEC sp_addextendedproperty 'MS_Description', '铻鸿窛', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', pitch; +EXEC sp_addextendedproperty 'MS_Description', '铻虹汗鏃嬪悜', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', rotation_direction; +EXEC sp_addextendedproperty 'MS_Description', '铻虹汗鍏樊甯︿唬鍙�/绮惧害绛夌骇', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', tolerancezone_level; +EXEC sp_addextendedproperty 'MS_Description', '鍒囧墛鍒冮暱', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', edge_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋�婚暱', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', total_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋潗鏂�', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', tool_material; +EXEC sp_addextendedproperty 'MS_Description', '闆朵欢鏉愭枡', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', part_material; +EXEC sp_addextendedproperty 'MS_Description', '鏄惁娑傚眰', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', paintcoat_flag; +EXEC sp_addextendedproperty 'MS_Description', '澶栧瀷灏哄', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', external_dimensions; +EXEC sp_addextendedproperty 'MS_Description', '鏌勯儴瑙勬牸', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', handle_specifications; +EXEC sp_addextendedproperty 'MS_Description', '闄勪欢鎶�鏈潯浠�', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', technical_conditions; +EXEC sp_addextendedproperty 'MS_Description', '闄勪欢鎶�鏈潯浠惰鏄�', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', conditions_info; +EXEC sp_addextendedproperty 'MS_Description', '鍝佺墝', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', brand; +EXEC sp_addextendedproperty 'MS_Description', '鍒跺紡', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', types; +EXEC sp_addextendedproperty 'MS_Description', '铻哄瓟绫诲瀷', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', screw_hole_type; +EXEC sp_addextendedproperty 'MS_Description', '鍐峰嵈鏂瑰紡', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', cooling_method; +EXEC sp_addextendedproperty 'MS_Description', '铻虹汗鏍囧噯', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', thread_standard; +EXEC sp_addextendedproperty 'MS_Description', '鎺掑睉妲藉瀷', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', flute_solt_type; +EXEC sp_addextendedproperty 'MS_Description', '铻虹汗绫诲瀷', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', thread_type; +EXEC sp_addextendedproperty 'MS_Description', '瀵煎悜灏哄', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', guiding_size; +EXEC sp_addextendedproperty 'MS_Description', '杩炴帴瀛斿緞', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', connection_aperture; +EXEC sp_addextendedproperty 'MS_Description', '杩炴帴閿Ы', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', connecting_keyway; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', para_threading_tool, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[para_mill_tool]') AND type in (N'U')) DROP TABLE [dbo].[para_mill_tool]; +CREATE TABLE [dbo].[para_mill_tool]( + id VARCHAR(32) NOT NULL, + classify_id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + sign_code VARCHAR(16), + chinese_name VARCHAR(128), + foreign_language_name VARCHAR(128), + standard_level VARCHAR(32), + standard_code VARCHAR(32), + position_code VARCHAR(255), + tool_model VARCHAR(255) NOT NULL, + diameter VARCHAR(128) NOT NULL, + nose_angle_r VARCHAR(64) NOT NULL, + number_of_teeth VARCHAR(64) NOT NULL, + edge_length VARCHAR(24) NOT NULL, + total_length VARCHAR(24) NOT NULL, + tool_material VARCHAR(64) NOT NULL, + part_material VARCHAR(64), + paintcoat_flag VARCHAR(32) NOT NULL, + tool_pattern VARCHAR(64) NOT NULL, + clamping_specifications VARCHAR(64) NOT NULL, + cooling_method VARCHAR(64) NOT NULL, + technical_conditions VARCHAR(128) NOT NULL, + conditions_info VARCHAR(128), + brand VARCHAR(64), + neck_diameter VARCHAR(64), + handle_form VARCHAR(64), + nose_angle_c VARCHAR(32), + angle_inside_r VARCHAR(32), + small_diameter VARCHAR(32), + tool_angle VARCHAR(16), + handle_length VARCHAR(16), + main_angle_k VARCHAR(16), + deepest_depth VARCHAR(16), + adapt_blade VARCHAR(64), + handle_neck_form VARCHAR(64), + handle_neck_length VARCHAR(16), + size_specifications VARCHAR(16), + milling_head_form VARCHAR(16), + overhanging_length VARCHAR(16), + cutting_edge_form VARCHAR(16), + number_patterns VARCHAR(16), + pitch VARCHAR(16), + recently_diameter VARCHAR(16), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '13閾e墛鍒�鍏穏3', 'SCHEMA', dbo, 'table', para_mill_tool, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍒嗙被缂栧彿', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭-鍒�鍏风紪鍙�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '搴忓彿锛堟垨浼佷笟鍐呭師浠g爜锛�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', sign_code; +EXEC sp_addextendedproperty 'MS_Description', '涓枃鍚嶇О', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', chinese_name; +EXEC sp_addextendedproperty 'MS_Description', '澶栨枃鍚嶇О', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', foreign_language_name; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯绾у埆', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', standard_level; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯鍙�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', standard_code; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙�;鐢卞簱鍖�+灞�+鎺�+鍒楃粍鎴愶紝鍙互鏄涓簱浣嶅彿浠ヨ嫳鏂囩偣鍙峰垎鍓茬殑瀛楃涓层��', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', position_code; +EXEC sp_addextendedproperty 'MS_Description', '鍨嬪彿/鍥惧彿', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', tool_model; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏风洿寰�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', diameter; +EXEC sp_addextendedproperty 'MS_Description', '鍒�灏栬R', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', nose_angle_r; +EXEC sp_addextendedproperty 'MS_Description', '榻挎暟', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', number_of_teeth; +EXEC sp_addextendedproperty 'MS_Description', '鍒囧墛鍒冮暱', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', edge_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋�婚暱', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', total_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋潗鏂�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', tool_material; +EXEC sp_addextendedproperty 'MS_Description', '闆朵欢鏉愭枡', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', part_material; +EXEC sp_addextendedproperty 'MS_Description', '鏄惁娑傚眰', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', paintcoat_flag; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏峰瀷寮�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', tool_pattern; +EXEC sp_addextendedproperty 'MS_Description', '瑁呭す瑙勬牸', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', clamping_specifications; +EXEC sp_addextendedproperty 'MS_Description', '鍐峰嵈鏂瑰紡', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', cooling_method; +EXEC sp_addextendedproperty 'MS_Description', '闄勫姞鎶�鏈潯浠�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', technical_conditions; +EXEC sp_addextendedproperty 'MS_Description', '闄勫姞鎶�鏈潯浠惰鏄�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', conditions_info; +EXEC sp_addextendedproperty 'MS_Description', '鍝佺墝', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', brand; +EXEC sp_addextendedproperty 'MS_Description', '棰堝緞', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', neck_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鏌勯儴褰㈠紡', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', handle_form; +EXEC sp_addextendedproperty 'MS_Description', '鍒�灏栬C', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', nose_angle_c; +EXEC sp_addextendedproperty 'MS_Description', '鍒�灏栬鍐匯', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', angle_inside_r; +EXEC sp_addextendedproperty 'MS_Description', '鏈�灏忕洿寰�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', small_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏疯搴�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', tool_angle; +EXEC sp_addextendedproperty 'MS_Description', '鏌勯暱', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', handle_length; +EXEC sp_addextendedproperty 'MS_Description', '涓诲亸瑙扠', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', main_angle_k; +EXEC sp_addextendedproperty 'MS_Description', '鏈�澶у垏娣�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', deepest_depth; +EXEC sp_addextendedproperty 'MS_Description', '閫傞厤鍒�鐗�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', adapt_blade; +EXEC sp_addextendedproperty 'MS_Description', '鏌勯褰㈠紡', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', handle_neck_form; +EXEC sp_addextendedproperty 'MS_Description', '鏌勯闀垮害', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', handle_neck_length; +EXEC sp_addextendedproperty 'MS_Description', '鎺ュ彛灏哄瑙勬牸', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', size_specifications; +EXEC sp_addextendedproperty 'MS_Description', '閾e垁澶村舰寮�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', milling_head_form; +EXEC sp_addextendedproperty 'MS_Description', '鎮几闀垮害', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', overhanging_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒囧墛鍒冨舰寮�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', cutting_edge_form; +EXEC sp_addextendedproperty 'MS_Description', '鍐呭绾规暟', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', number_patterns; +EXEC sp_addextendedproperty 'MS_Description', '铻鸿窛', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', pitch; +EXEC sp_addextendedproperty 'MS_Description', '鏈�杩戝姞宸ョ洿寰�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', recently_diameter; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', para_mill_tool, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[para_turning_tools]') AND type in (N'U')) DROP TABLE [dbo].[para_turning_tools]; +CREATE TABLE [dbo].[para_turning_tools]( + id VARCHAR(32) NOT NULL, + classify_id VARCHAR(32), + tool_code VARCHAR(32) NOT NULL, + sign_code VARCHAR(16), + chinese_name VARCHAR(128), + foreign_language_name VARCHAR(128), + standard_level VARCHAR(16), + standard_code VARCHAR(32), + position_code VARCHAR(255), + tool_model VARCHAR(255), + head_specifications VARCHAR(32) NOT NULL, + matching_number VARCHAR(64) NOT NULL, + lead_angle VARCHAR(32) NOT NULL, + cross_sectional_size VARCHAR(16) NOT NULL, + total_length VARCHAR(32) NOT NULL, + cutting_direction VARCHAR(24) NOT NULL, + tool_material VARCHAR(64) NOT NULL, + part_material VARCHAR(64), + tool_pattern VARCHAR(64) NOT NULL, + paintcoat_flag VARCHAR(32) NOT NULL, + technical_conditions VARCHAR(128) NOT NULL, + conditions_info VARCHAR(128), + brand VARCHAR(64), + types VARCHAR(64), + knife_size VARCHAR(32), + cooling_method VARCHAR(64), + holder_category VARCHAR(64), + tool_diameter VARCHAR(64), + fastening_form VARCHAR(64), + boring_bar_diameter VARCHAR(32), + blade_length VARCHAR(32), + blade_shape VARCHAR(24), + blade_posterior VARCHAR(24), + bar_direction VARCHAR(64), + blade_height VARCHAR(32), + blade_wide VARCHAR(24), + blade_size VARCHAR(32), + knife_clip_model VARCHAR(64), + clamping_method VARCHAR(64), + slot_width VARCHAR(32), + small_diameter VARCHAR(32), + max_diameter VARCHAR(32), + max_depth VARCHAR(32), + knife_bar_form VARCHAR(64), + blade_thickness VARCHAR(32), + min_diameter VARCHAR(32), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id,tool_code) +); + +EXEC sp_addextendedproperty 'MS_Description', '14杞﹀墛鍒�鍏穏4', 'SCHEMA', dbo, 'table', para_turning_tools, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍒嗙被缂栧彿', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭-鍒�鍏风紪鍙�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '搴忓彿锛堟垨浼佷笟鍐呭師浠g爜锛�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', sign_code; +EXEC sp_addextendedproperty 'MS_Description', '涓枃鍚嶇О', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', chinese_name; +EXEC sp_addextendedproperty 'MS_Description', '澶栨枃鍚嶇О', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', foreign_language_name; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯绾у埆', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', standard_level; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯鍙�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', standard_code; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙�;鐢卞簱鍖�+灞�+鎺�+鍒楃粍鎴愶紝鍙互鏄涓簱浣嶅彿浠ヨ嫳鏂囩偣鍙峰垎鍓茬殑瀛楃涓层��', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', position_code; +EXEC sp_addextendedproperty 'MS_Description', '鍨嬪彿/鍥惧彿', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', tool_model; +EXEC sp_addextendedproperty 'MS_Description', '鍒�澶磋鏍�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', head_specifications; +EXEC sp_addextendedproperty 'MS_Description', '閰嶅鍒�鐗囧彿', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', matching_number; +EXEC sp_addextendedproperty 'MS_Description', '涓诲亸瑙�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', lead_angle; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋埅闈㈠昂瀵�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', cross_sectional_size; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋�婚暱', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', total_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒囧墛鏂瑰悜', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', cutting_direction; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋潗鏂�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', tool_material; +EXEC sp_addextendedproperty 'MS_Description', '闆朵欢鏉愭枡', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', part_material; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏峰瀷寮�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', tool_pattern; +EXEC sp_addextendedproperty 'MS_Description', '鏄惁娑傚眰', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', paintcoat_flag; +EXEC sp_addextendedproperty 'MS_Description', '闄勫姞鎶�鏈潯浠�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', technical_conditions; +EXEC sp_addextendedproperty 'MS_Description', '闄勫姞鎶�鏈潯浠惰鏄�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', conditions_info; +EXEC sp_addextendedproperty 'MS_Description', '鍝佺墝', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', brand; +EXEC sp_addextendedproperty 'MS_Description', '鍒跺紡', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', types; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囧昂瀵�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', knife_size; +EXEC sp_addextendedproperty 'MS_Description', '鍐峰嵈鏂瑰紡', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', cooling_method; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鏉嗙被鍒�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', holder_category; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏风洿寰�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', tool_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鎺ュ彛绱у浐褰㈠紡', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', fastening_form; +EXEC sp_addextendedproperty 'MS_Description', '闀楁潌鐩村緞', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', boring_bar_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鏉嗛暱搴�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', blade_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囧舰鐘�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', blade_shape; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囧悗瑙�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', blade_posterior; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鏉嗘柟鍚�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', bar_direction; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鏉嗛珮搴�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', blade_height; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鏉嗗搴�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', blade_wide; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鏉嗗昂瀵�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', blade_size; +EXEC sp_addextendedproperty 'MS_Description', '鍒�澶瑰瀷鍙�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', knife_clip_model; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囪澶规柟寮�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', clamping_method; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囨Ы瀹�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', slot_width; +EXEC sp_addextendedproperty 'MS_Description', '鏈�灏忓垏鍏ョ洿寰�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', small_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鏈�澶у垏鍏ョ洿寰�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', max_diameter; +EXEC sp_addextendedproperty 'MS_Description', '鏈�澶у垏妲芥繁搴�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', max_depth; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鏉嗗舰寮�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', knife_bar_form; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鏉垮帤搴�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', blade_thickness; +EXEC sp_addextendedproperty 'MS_Description', '鏈�灏忓姞宸ョ洿寰�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', min_diameter; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', para_turning_tools, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[para_blade]') AND type in (N'U')) DROP TABLE [dbo].[para_blade]; +CREATE TABLE [dbo].[para_blade]( + id VARCHAR(32), + classify_id VARCHAR(32), + tool_code VARCHAR(32) NOT NULL, + sign_code VARCHAR(16), + chinese_name VARCHAR(128), + foreign_language_name VARCHAR(128), + standard_level VARCHAR(16), + standard_code VARCHAR(32), + position_code VARCHAR(255), + tool_model VARCHAR(255), + blade_shape VARCHAR(32) NOT NULL, + blade_length VARCHAR(24) NOT NULL, + cutting_edge_count VARCHAR(32) NOT NULL, + blade_thickness VARCHAR(32) NOT NULL, + clamping_type VARCHAR(64) NOT NULL, + nose_angle_r VARCHAR(24) NOT NULL, + tool_material VARCHAR(64) NOT NULL, + part_material VARCHAR(64), + paintcoat_flag VARCHAR(32) NOT NULL, + technical_conditions VARCHAR(128) NOT NULL, + conditions_info VARCHAR(128), + brand VARCHAR(64), + types VARCHAR(64), + coating_material VARCHAR(64), + processing_classify VARCHAR(64), + blade_posterior VARCHAR(32), + cutting_direction VARCHAR(32), + blade_wide VARCHAR(32), + blade_size VARCHAR(34), + in_out_thread VARCHAR(32), + thread_standard VARCHAR(32), + dental_angle VARCHAR(16), + pitch VARCHAR(24), + min_internal_thread VARCHAR(24), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (tool_code) +); + +EXEC sp_addextendedproperty 'MS_Description', '20鍒�鐗噂9', 'SCHEMA', dbo, 'table', para_blade, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', para_blade, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍒嗙被缂栧彿', 'SCHEMA', dbo, 'table', para_blade, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭-鍒�鍏风紪鍙�', 'SCHEMA', dbo, 'table', para_blade, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '搴忓彿锛堟垨浼佷笟鍐呭師浠g爜锛�', 'SCHEMA', dbo, 'table', para_blade, 'column', sign_code; +EXEC sp_addextendedproperty 'MS_Description', '涓枃鍚嶇О', 'SCHEMA', dbo, 'table', para_blade, 'column', chinese_name; +EXEC sp_addextendedproperty 'MS_Description', '澶栨枃鍚嶇О', 'SCHEMA', dbo, 'table', para_blade, 'column', foreign_language_name; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯绾у埆', 'SCHEMA', dbo, 'table', para_blade, 'column', standard_level; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯鍙�', 'SCHEMA', dbo, 'table', para_blade, 'column', standard_code; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙�;鐢卞簱鍖�+灞�+鎺�+鍒楃粍鎴愶紝鍙互鏄涓簱浣嶅彿浠ヨ嫳鏂囩偣鍙峰垎鍓茬殑瀛楃涓层��', 'SCHEMA', dbo, 'table', para_blade, 'column', position_code; +EXEC sp_addextendedproperty 'MS_Description', '鍨嬪彿/鍥惧彿', 'SCHEMA', dbo, 'table', para_blade, 'column', tool_model; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囧舰鐘�', 'SCHEMA', dbo, 'table', para_blade, 'column', blade_shape; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囬暱搴�', 'SCHEMA', dbo, 'table', para_blade, 'column', blade_length; +EXEC sp_addextendedproperty 'MS_Description', '鍒囧墛鍒冩暟', 'SCHEMA', dbo, 'table', para_blade, 'column', cutting_edge_count; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囧帤搴�', 'SCHEMA', dbo, 'table', para_blade, 'column', blade_thickness; +EXEC sp_addextendedproperty 'MS_Description', '澶瑰浐鍨嬪紡', 'SCHEMA', dbo, 'table', para_blade, 'column', clamping_type; +EXEC sp_addextendedproperty 'MS_Description', '鍒�灏朢', 'SCHEMA', dbo, 'table', para_blade, 'column', nose_angle_r; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囨潗鏂�', 'SCHEMA', dbo, 'table', para_blade, 'column', tool_material; +EXEC sp_addextendedproperty 'MS_Description', '闆朵欢鏉愭枡', 'SCHEMA', dbo, 'table', para_blade, 'column', part_material; +EXEC sp_addextendedproperty 'MS_Description', '鏄惁娑傚眰', 'SCHEMA', dbo, 'table', para_blade, 'column', paintcoat_flag; +EXEC sp_addextendedproperty 'MS_Description', '闄勫姞鎶�鏈潯浠�', 'SCHEMA', dbo, 'table', para_blade, 'column', technical_conditions; +EXEC sp_addextendedproperty 'MS_Description', '闄勫姞鎶�鏈潯浠惰鏄�', 'SCHEMA', dbo, 'table', para_blade, 'column', conditions_info; +EXEC sp_addextendedproperty 'MS_Description', '鍝佺墝', 'SCHEMA', dbo, 'table', para_blade, 'column', brand; +EXEC sp_addextendedproperty 'MS_Description', '鍒跺紡', 'SCHEMA', dbo, 'table', para_blade, 'column', types; +EXEC sp_addextendedproperty 'MS_Description', '娑傚眰鏉愯川', 'SCHEMA', dbo, 'table', para_blade, 'column', coating_material; +EXEC sp_addextendedproperty 'MS_Description', '鍔犲伐鍒嗙被', 'SCHEMA', dbo, 'table', para_blade, 'column', processing_classify; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囧悗瑙�', 'SCHEMA', dbo, 'table', para_blade, 'column', blade_posterior; +EXEC sp_addextendedproperty 'MS_Description', '鍒囧墛鏂瑰悜', 'SCHEMA', dbo, 'table', para_blade, 'column', cutting_direction; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囧搴�', 'SCHEMA', dbo, 'table', para_blade, 'column', blade_wide; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鐗囧昂瀵�', 'SCHEMA', dbo, 'table', para_blade, 'column', blade_size; +EXEC sp_addextendedproperty 'MS_Description', '鍐呭铻虹汗', 'SCHEMA', dbo, 'table', para_blade, 'column', in_out_thread; +EXEC sp_addextendedproperty 'MS_Description', '铻虹汗鏍囧噯', 'SCHEMA', dbo, 'table', para_blade, 'column', thread_standard; +EXEC sp_addextendedproperty 'MS_Description', '鐗欏瀷瑙掑害', 'SCHEMA', dbo, 'table', para_blade, 'column', dental_angle; +EXEC sp_addextendedproperty 'MS_Description', '铻鸿窛', 'SCHEMA', dbo, 'table', para_blade, 'column', pitch; +EXEC sp_addextendedproperty 'MS_Description', '鏈�灏忓姞宸ュ唴铻虹汗鍏О鐩村緞', 'SCHEMA', dbo, 'table', para_blade, 'column', min_internal_thread; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', para_blade, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', para_blade, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', para_blade, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', para_blade, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', para_blade, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[outbound_order]') AND type in (N'U')) DROP TABLE [dbo].[outbound_order]; +CREATE TABLE [dbo].[outbound_order]( + id VARCHAR(32) NOT NULL, + out_storehouse_type VARCHAR(32) NOT NULL, + is_return INT, + handler VARCHAR(32) NOT NULL, + reviewer VARCHAR(32), + order_status VARCHAR(32) NOT NULL, + out_status VARCHAR(255), + audit_date DATETIME, + approval_opinion VARCHAR(128), + subject_matter VARCHAR(128), + outbound_time DATETIME NOT NULL, + remark VARCHAR(128), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鐢宠鍗�', 'SCHEMA', dbo, 'table', outbound_order, null, null; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鍗曠紪鍙�', 'SCHEMA', dbo, 'table', outbound_order, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱绫诲瀷', 'SCHEMA', dbo, 'table', outbound_order, 'column', out_storehouse_type; +EXEC sp_addextendedproperty 'MS_Description', '鏄惁褰掕繕;1鏈綊杩橈紙榛樿锛夛紱2.宸插綊杩�', 'SCHEMA', dbo, 'table', outbound_order, 'column', is_return; +EXEC sp_addextendedproperty 'MS_Description', '缁忔墜浜�', 'SCHEMA', dbo, 'table', outbound_order, 'column', handler; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃牳浜�', 'SCHEMA', dbo, 'table', outbound_order, 'column', reviewer; +EXEC sp_addextendedproperty 'MS_Description', '鍗曞瓙鐘舵��', 'SCHEMA', dbo, 'table', outbound_order, 'column', order_status; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鐘舵��;1.鏈嚭搴擄紱2.閮ㄥ垎鍑哄簱锛�3.鍑哄簱瀹屾垚', 'SCHEMA', dbo, 'table', outbound_order, 'column', out_status; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃牳鏃堕棿', 'SCHEMA', dbo, 'table', outbound_order, 'column', audit_date; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃牳鎰忚', 'SCHEMA', dbo, 'table', outbound_order, 'column', approval_opinion; +EXEC sp_addextendedproperty 'MS_Description', '棰嗙敤浜嬬敱', 'SCHEMA', dbo, 'table', outbound_order, 'column', subject_matter; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鏃堕棿', 'SCHEMA', dbo, 'table', outbound_order, 'column', outbound_time; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', outbound_order, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', outbound_order, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鎿嶄綔鍛�', 'SCHEMA', dbo, 'table', outbound_order, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', outbound_order, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', outbound_order, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', outbound_order, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[inbound_order]') AND type in (N'U')) DROP TABLE [dbo].[inbound_order]; +CREATE TABLE [dbo].[inbound_order]( + id VARCHAR(32) NOT NULL, + inbound_time DATETIME(255), + in_storehouse_type VARCHAR(32) NOT NULL, + handler VARCHAR(32), + borrow_num VARCHAR(32), + reviewer VARCHAR(32), + approval_date DATETIME, + approval_opinion VARCHAR(128), + order_status VARCHAR(32), + in_status VARCHAR(32), + application_reason VARCHAR(128), + remark VARCHAR(128), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鐢宠鍗�', 'SCHEMA', dbo, 'table', inbound_order, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭-鍏ュ簱鍗曞彿', 'SCHEMA', dbo, 'table', inbound_order, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鏃堕棿', 'SCHEMA', dbo, 'table', inbound_order, 'column', inbound_time; +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱绫诲瀷', 'SCHEMA', dbo, 'table', inbound_order, 'column', in_storehouse_type; +EXEC sp_addextendedproperty 'MS_Description', '缁忔墜浜�', 'SCHEMA', dbo, 'table', inbound_order, 'column', handler; +EXEC sp_addextendedproperty 'MS_Description', '鍊熺敤鍗曞彿', 'SCHEMA', dbo, 'table', inbound_order, 'column', borrow_num; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃牳浜�', 'SCHEMA', dbo, 'table', inbound_order, 'column', reviewer; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃牳鏃堕棿', 'SCHEMA', dbo, 'table', inbound_order, 'column', approval_date; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃牳鎰忚', 'SCHEMA', dbo, 'table', inbound_order, 'column', approval_opinion; +EXEC sp_addextendedproperty 'MS_Description', '鍗曞瓙鐘舵��', 'SCHEMA', dbo, 'table', inbound_order, 'column', order_status; +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鍗曠姸鎬�;1.鏈叆搴擄紱2.閮ㄥ垎鍏ュ簱锛�3.鍏ュ簱瀹屾垚', 'SCHEMA', dbo, 'table', inbound_order, 'column', in_status; +EXEC sp_addextendedproperty 'MS_Description', '鐢宠鍘熷洜', 'SCHEMA', dbo, 'table', inbound_order, 'column', application_reason; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', inbound_order, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', inbound_order, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鎿嶄綔鍛�', 'SCHEMA', dbo, 'table', inbound_order, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鐢宠鏃堕棿', 'SCHEMA', dbo, 'table', inbound_order, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', inbound_order, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', inbound_order, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[outbound_detail]') AND type in (N'U')) DROP TABLE [dbo].[outbound_detail]; +CREATE TABLE [dbo].[outbound_detail]( + id VARCHAR(32) NOT NULL, + out_storehouse_id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + tool_id VARCHAR(32), + outbound_quantity DECIMAL(64) NOT NULL, + out_actual_count DECIMAL(64), + storage_location VARCHAR(64), + outbound_location VARCHAR(255), + out_status VARCHAR(32) NOT NULL, + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鐢宠鏄庣粏', 'SCHEMA', dbo, 'table', outbound_detail, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', outbound_detail, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鍗曞彿', 'SCHEMA', dbo, 'table', outbound_detail, 'column', out_storehouse_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏风紪鐮�', 'SCHEMA', dbo, 'table', outbound_detail, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏风紪鍙�', 'SCHEMA', dbo, 'table', outbound_detail, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '鐢宠鍑哄簱鏁伴噺', 'SCHEMA', dbo, 'table', outbound_detail, 'column', outbound_quantity; +EXEC sp_addextendedproperty 'MS_Description', '瀹為檯鍑哄簱鏁伴噺', 'SCHEMA', dbo, 'table', outbound_detail, 'column', out_actual_count; +EXEC sp_addextendedproperty 'MS_Description', '浠撳簱', 'SCHEMA', dbo, 'table', outbound_detail, 'column', storage_location; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱搴撲綅', 'SCHEMA', dbo, 'table', outbound_detail, 'column', outbound_location; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鐘舵��;1.鏈嚭搴擄紱2.閮ㄥ垎鍑哄簱锛�3.鍑哄簱瀹屾垚', 'SCHEMA', dbo, 'table', outbound_detail, 'column', out_status; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', outbound_detail, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鎿嶄綔鍛�', 'SCHEMA', dbo, 'table', outbound_detail, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鏃堕棿', 'SCHEMA', dbo, 'table', outbound_detail, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', outbound_detail, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', outbound_detail, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[inbound_detail]') AND type in (N'U')) DROP TABLE [dbo].[inbound_detail]; +CREATE TABLE [dbo].[inbound_detail]( + id VARCHAR(32) NOT NULL, + goods_shelves_id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + tool_id VARCHAR(32), + in_storage_quantity DECIMAL(64) NOT NULL, + in_actual_count DECIMAL(64), + out_status VARCHAR(32), + remark VARCHAR(128), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鐢宠鏄庣粏', 'SCHEMA', dbo, 'table', inbound_detail, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', inbound_detail, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '璐ф灦鍙�/瀛樺偍浣嶇疆', 'SCHEMA', dbo, 'table', inbound_detail, 'column', goods_shelves_id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栫爜', 'SCHEMA', dbo, 'table', inbound_detail, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', inbound_detail, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鏁伴噺', 'SCHEMA', dbo, 'table', inbound_detail, 'column', in_storage_quantity; +EXEC sp_addextendedproperty 'MS_Description', '瀹為檯鍏ュ簱鏁伴噺', 'SCHEMA', dbo, 'table', inbound_detail, 'column', in_actual_count; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鐘舵��;1.鏈叆搴擄紱2.閮ㄥ垎鍏ュ簱锛�3.鍏ュ簱瀹屾垚', 'SCHEMA', dbo, 'table', inbound_detail, 'column', out_status; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', inbound_detail, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', inbound_detail, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', inbound_detail, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', inbound_detail, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', inbound_detail, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', inbound_detail, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tools_config_property]') AND type in (N'U')) DROP TABLE [dbo].[tools_config_property]; +CREATE TABLE [dbo].[tools_config_property]( + id VARCHAR(32) NOT NULL, + classify_id VARCHAR(32) NOT NULL, + chinese_name VARCHAR(128), + foreign_language_name VARCHAR(128), + application_type INT NOT NULL, + standard_level VARCHAR(16), + standard_code VARCHAR(32), + tool_model VARCHAR(128) NOT NULL, + supplier_id VARCHAR(128), + province_city VARCHAR(255), + warehouse_id VARCHAR(128), + position_code VARCHAR(255), + storage_location VARCHAR(64), + main_unit VARCHAR(64), + auxiliary_unit VARCHAR(64), + main_count VARCHAR(255), + auxiliary_count VARCHAR(255), + auxiliary_unit_flag VARCHAR(8), + price DECIMAL, + lower_inventory DECIMAL, + highest_inventory VARCHAR, + status VARCHAR(6), + remark VARCHAR(255), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿閫氱敤鎬ц川--鍙傛暟', 'SCHEMA', dbo, 'table', tools_config_property, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', tools_config_property, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '鍒嗙被缂栧彿', 'SCHEMA', dbo, 'table', tools_config_property, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '涓枃鍚嶇О', 'SCHEMA', dbo, 'table', tools_config_property, 'column', chinese_name; +EXEC sp_addextendedproperty 'MS_Description', '鑻辨枃鍚嶇О', 'SCHEMA', dbo, 'table', tools_config_property, 'column', foreign_language_name; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿绫诲瀷;1.閫氱敤 +2.涓撶敤', 'SCHEMA', dbo, 'table', tools_config_property, 'column', application_type; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯绾у埆', 'SCHEMA', dbo, 'table', tools_config_property, 'column', standard_level; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯鍙�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', standard_code; +EXEC sp_addextendedproperty 'MS_Description', '鍨嬪彿/鍥惧彿', 'SCHEMA', dbo, 'table', tools_config_property, 'column', tool_model; +EXEC sp_addextendedproperty 'MS_Description', '鍘傚', 'SCHEMA', dbo, 'table', tools_config_property, 'column', supplier_id; +EXEC sp_addextendedproperty 'MS_Description', '浠撳簱鐪佷唤鍩庡競', 'SCHEMA', dbo, 'table', tools_config_property, 'column', province_city; +EXEC sp_addextendedproperty 'MS_Description', '搴撳尯/搴撳彿', 'SCHEMA', dbo, 'table', tools_config_property, 'column', warehouse_id; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙�;鐢卞簱鍖�+灞�+鎺�+鍒楃粍鎴愶紝鍙互鏄涓簱浣嶅彿浠ヨ嫳鏂囩偣鍙峰垎鍓茬殑瀛楃涓层��', 'SCHEMA', dbo, 'table', tools_config_property, 'column', position_code; +EXEC sp_addextendedproperty 'MS_Description', '瀛樺偍浣嶇疆锛堝亸閭d釜鍘傚尯鐨勫簱锛�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', storage_location; +EXEC sp_addextendedproperty 'MS_Description', '璁¢噺涓诲崟浣�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', main_unit; +EXEC sp_addextendedproperty 'MS_Description', '璁¢噺杈呭崟浣�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', auxiliary_unit; +EXEC sp_addextendedproperty 'MS_Description', '璁¢噺涓诲崟浣嶆暟閲�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', main_count; +EXEC sp_addextendedproperty 'MS_Description', '璁¢噺杈呭崟浣嶆暟閲�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', auxiliary_count; +EXEC sp_addextendedproperty 'MS_Description', '鏄惁鏈夎閲忚緟鍗曚綅;1,鏈夎緟鍔╁崟浣�2.鏃犺緟鍔╁崟浣�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', auxiliary_unit_flag; +EXEC sp_addextendedproperty 'MS_Description', '鍗曚环', 'SCHEMA', dbo, 'table', tools_config_property, 'column', price; +EXEC sp_addextendedproperty 'MS_Description', '鏈�浣庡簱瀛�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', lower_inventory; +EXEC sp_addextendedproperty 'MS_Description', '鏈�楂樺簱瀛�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', highest_inventory; +EXEC sp_addextendedproperty 'MS_Description', '鐘舵��;1.鍚敤 +2.鏈惎鐢�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', status; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', tools_config_property, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', tools_config_property, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', tools_config_property, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', tools_config_property, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[warehouse]') AND type in (N'U')) DROP TABLE [dbo].[warehouse]; +CREATE TABLE [dbo].[warehouse]( + id VARCHAR(32) NOT NULL, + warehouse_id VARCHAR(255), + warehouse_name VARCHAR(128), + parent_id VARCHAR(64), + seq VARCHAR(255), + leaf_flag VARCHAR(6), + status VARCHAR(6), + remark VARCHAR(128), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '浠撳簱绠$悊', 'SCHEMA', dbo, 'table', warehouse, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', warehouse, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '浠撳簱缂栧彿', 'SCHEMA', dbo, 'table', warehouse, 'column', warehouse_id; +EXEC sp_addextendedproperty 'MS_Description', '浠撳簱鍚嶇О', 'SCHEMA', dbo, 'table', warehouse, 'column', warehouse_name; +EXEC sp_addextendedproperty 'MS_Description', '鐖惰妭鐐圭紪鍙�', 'SCHEMA', dbo, 'table', warehouse, 'column', parent_id; +EXEC sp_addextendedproperty 'MS_Description', '灞曠ず搴忓彿', 'SCHEMA', dbo, 'table', warehouse, 'column', seq; +EXEC sp_addextendedproperty 'MS_Description', '鏄惁鍙跺瓙鑺傜偣;1鏄�2鍚�', 'SCHEMA', dbo, 'table', warehouse, 'column', leaf_flag; +EXEC sp_addextendedproperty 'MS_Description', '鐘舵��;1.鍚敤锛�2.鍋滅敤', 'SCHEMA', dbo, 'table', warehouse, 'column', status; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', warehouse, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', warehouse, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', warehouse, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', warehouse, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', warehouse, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', warehouse, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[goods_shelves]') AND type in (N'U')) DROP TABLE [dbo].[goods_shelves]; +CREATE TABLE [dbo].[goods_shelves]( + id VARCHAR(32) NOT NULL, + warehouse_id VARCHAR(32) NOT NULL, + location_code VARCHAR(255) NOT NULL, + storey VARCHAR(32) NOT NULL, + arrange VARCHAR(32) NOT NULL, + column_number VARCHAR(32) NOT NULL, + cells_num VARCHAR(32), + shelf_number VARCHAR(64), + shelf_name VARCHAR(64), + remark VARCHAR(128), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '璐ф灦绠$悊', 'SCHEMA', dbo, 'table', goods_shelves, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', goods_shelves, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '浠撳簱缂栧彿', 'SCHEMA', dbo, 'table', goods_shelves, 'column', warehouse_id; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙�', 'SCHEMA', dbo, 'table', goods_shelves, 'column', location_code; +EXEC sp_addextendedproperty 'MS_Description', '灞傛暟', 'SCHEMA', dbo, 'table', goods_shelves, 'column', storey; +EXEC sp_addextendedproperty 'MS_Description', '鎺掓暟', 'SCHEMA', dbo, 'table', goods_shelves, 'column', arrange; +EXEC sp_addextendedproperty 'MS_Description', '鍒楁暟', 'SCHEMA', dbo, 'table', goods_shelves, 'column', column_number; +EXEC sp_addextendedproperty 'MS_Description', '鏍兼暟;榛樿鍊间负1', 'SCHEMA', dbo, 'table', goods_shelves, 'column', cells_num; +EXEC sp_addextendedproperty 'MS_Description', '璐ф灦缂栧彿', 'SCHEMA', dbo, 'table', goods_shelves, 'column', shelf_number; +EXEC sp_addextendedproperty 'MS_Description', '璐ф灦鍚嶇О', 'SCHEMA', dbo, 'table', goods_shelves, 'column', shelf_name; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', goods_shelves, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', goods_shelves, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', goods_shelves, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', goods_shelves, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', goods_shelves, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', goods_shelves, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[in_store_detail]') AND type in (N'U')) DROP TABLE [dbo].[in_store_detail]; +CREATE TABLE [dbo].[in_store_detail]( + id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + tool_id VARCHAR(32), + in_storehouse_type VARCHAR(32), + goods_shelves_id VARCHAR(32), + in_number DECIMAL(64), + in_storehouse_id VARCHAR(32), + operate_type VARCHAR(64), + inbound_time DATETIME(24), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鏄庣粏琛�-鎻忚堪鍒�鍏峰瓨鏀俱�佸彂鐢熺殑鏁伴噺', 'SCHEMA', dbo, 'table', in_store_detail, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', in_store_detail, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栫爜', 'SCHEMA', dbo, 'table', in_store_detail, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', in_store_detail, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍏ュ簱鏂瑰紡', 'SCHEMA', dbo, 'table', in_store_detail, 'column', in_storehouse_type; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙�', 'SCHEMA', dbo, 'table', in_store_detail, 'column', goods_shelves_id; +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鏁伴噺', 'SCHEMA', dbo, 'table', in_store_detail, 'column', in_number; +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鐢宠鍗曞彿', 'SCHEMA', dbo, 'table', in_store_detail, 'column', in_storehouse_id; +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鎿嶄綔鏂瑰紡;1.鎸夌敵璇峰崟 +2.鎵嬪伐鎿嶄綔', 'SCHEMA', dbo, 'table', in_store_detail, 'column', operate_type; +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鏃堕棿', 'SCHEMA', dbo, 'table', in_store_detail, 'column', inbound_time; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', in_store_detail, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', in_store_detail, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', in_store_detail, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', in_store_detail, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', in_store_detail, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[out_store_detail]') AND type in (N'U')) DROP TABLE [dbo].[out_store_detail]; +CREATE TABLE [dbo].[out_store_detail]( + id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + tool_id VARCHAR(32), + out_storehouse_type VARCHAR(32), + goods_shelves_code VARCHAR(64), + out_number DECIMAL(64) NOT NULL, + in_storehouse_id VARCHAR(128), + operate_type VARCHAR(64), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '鎻忚堪鍑哄簱鐨勫簱浣嶃�佹暟閲忓叧绯昏〃', 'SCHEMA', dbo, 'table', out_store_detail, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', out_store_detail, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栫爜', 'SCHEMA', dbo, 'table', out_store_detail, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', out_store_detail, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱绫诲瀷', 'SCHEMA', dbo, 'table', out_store_detail, 'column', out_storehouse_type; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙�', 'SCHEMA', dbo, 'table', out_store_detail, 'column', goods_shelves_code; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鏁伴噺', 'SCHEMA', dbo, 'table', out_store_detail, 'column', out_number; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鐢宠鍗曞彿', 'SCHEMA', dbo, 'table', out_store_detail, 'column', in_storehouse_id; +EXEC sp_addextendedproperty 'MS_Description', '鍑哄簱鎿嶄綔鏂瑰紡;1.鎸夌敵璇峰崟 +2.鎵嬪伐鎿嶄綔', 'SCHEMA', dbo, 'table', out_store_detail, 'column', operate_type; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', out_store_detail, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', out_store_detail, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', out_store_detail, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', out_store_detail, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', out_store_detail, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[para_common_tool]') AND type in (N'U')) DROP TABLE [dbo].[para_common_tool]; +CREATE TABLE [dbo].[para_common_tool]( + id VARCHAR(32) NOT NULL, + classify_id VARCHAR(32), + tool_code VARCHAR(32), + sign_code VARCHAR(16), + chinese_name VARCHAR(128), + foreign_language_name VARCHAR(128), + standard_level VARCHAR(16), + standard_code VARCHAR(32), + position_code VARCHAR(255), + tool_model VARCHAR(255), + tool_material VARCHAR(255), + part_material VARCHAR(255), + remark VARCHAR(255), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鏍囪瘑', 'SCHEMA', dbo, 'table', para_common_tool, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', para_common_tool, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍒嗙被缂栧彿', 'SCHEMA', dbo, 'table', para_common_tool, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', para_common_tool, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '搴忓彿锛堟垨浼佷笟鍐呮簮鐮侊級', 'SCHEMA', dbo, 'table', para_common_tool, 'column', sign_code; +EXEC sp_addextendedproperty 'MS_Description', '涓枃鍚嶇О', 'SCHEMA', dbo, 'table', para_common_tool, 'column', chinese_name; +EXEC sp_addextendedproperty 'MS_Description', '澶栨枃鍚嶇О', 'SCHEMA', dbo, 'table', para_common_tool, 'column', foreign_language_name; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯绾у埆', 'SCHEMA', dbo, 'table', para_common_tool, 'column', standard_level; +EXEC sp_addextendedproperty 'MS_Description', '鏍囧噯鍙�', 'SCHEMA', dbo, 'table', para_common_tool, 'column', standard_code; +EXEC sp_addextendedproperty 'MS_Description', '搴撲綅鍙�;鐢卞簱鍖�+灞�+鎺�+鍒楃粍鎴愶紝鍙互鏄涓簱浣嶅彿浠ヨ嫳鏂囩偣鍙峰垎鍓茬殑瀛楃涓层��', 'SCHEMA', dbo, 'table', para_common_tool, 'column', position_code; +EXEC sp_addextendedproperty 'MS_Description', '鍨嬪彿/鍥惧彿', 'SCHEMA', dbo, 'table', para_common_tool, 'column', tool_model; +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏锋潗鏂�', 'SCHEMA', dbo, 'table', para_common_tool, 'column', tool_material; +EXEC sp_addextendedproperty 'MS_Description', '闆朵欢鏉愭枡', 'SCHEMA', dbo, 'table', para_common_tool, 'column', part_material; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', para_common_tool, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', para_common_tool, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', para_common_tool, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', para_common_tool, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', para_common_tool, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', para_common_tool, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tool_sharpening]') AND type in (N'U')) DROP TABLE [dbo].[tool_sharpening]; +CREATE TABLE [dbo].[tool_sharpening]( + id VARCHAR(32,32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + tool_id VARCHAR(32,32), + sharpening_time DATETIME(24) NOT NULL, + sharpening_result VARCHAR(255), + responsible_person VARCHAR(24), + remark VARCHAR(255), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '鍒�鍏峰垉纾�', 'SCHEMA', dbo, 'table', tool_sharpening, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栫爜', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒冪(鏃堕棿', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', sharpening_time; +EXEC sp_addextendedproperty 'MS_Description', '鍒冪(缁撴灉鍙婂缓璁�', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', sharpening_result; +EXEC sp_addextendedproperty 'MS_Description', '璐d换浜�', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', responsible_person; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', tool_sharpening, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[loss_bound]') AND type in (N'U')) DROP TABLE [dbo].[loss_bound]; +CREATE TABLE [dbo].[loss_bound]( + id VARCHAR(32) NOT NULL, + losser VARCHAR(64), + handler VARCHAR(64), + loss_time DATETIME(32), + reviewer VARCHAR(64), + approval_date DATETIME(255), + order_status VARCHAR(32), + approval_opinion VARCHAR(255), + loss_reason VARCHAR(255), + remark VARCHAR(255), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鎶ユ崯鍗�', 'SCHEMA', dbo, 'table', loss_bound, null, null; +EXEC sp_addextendedproperty 'MS_Description', '鎶ユ崯鍗曞彿', 'SCHEMA', dbo, 'table', loss_bound, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '鎶ユ崯浜�', 'SCHEMA', dbo, 'table', loss_bound, 'column', losser; +EXEC sp_addextendedproperty 'MS_Description', '缁忔墜浜�', 'SCHEMA', dbo, 'table', loss_bound, 'column', handler; +EXEC sp_addextendedproperty 'MS_Description', '鎶ユ崯鏃堕棿', 'SCHEMA', dbo, 'table', loss_bound, 'column', loss_time; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃牳浜�', 'SCHEMA', dbo, 'table', loss_bound, 'column', reviewer; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃牳鏃堕棿', 'SCHEMA', dbo, 'table', loss_bound, 'column', approval_date; +EXEC sp_addextendedproperty 'MS_Description', '鍗曟嵁鐘舵��', 'SCHEMA', dbo, 'table', loss_bound, 'column', order_status; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃壒鎰忚', 'SCHEMA', dbo, 'table', loss_bound, 'column', approval_opinion; +EXEC sp_addextendedproperty 'MS_Description', '鎹熶激鍘熷洜', 'SCHEMA', dbo, 'table', loss_bound, 'column', loss_reason; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', loss_bound, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', loss_bound, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', loss_bound, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', loss_bound, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', loss_bound, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', loss_bound, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[loss_bound_detail]') AND type in (N'U')) DROP TABLE [dbo].[loss_bound_detail]; +CREATE TABLE [dbo].[loss_bound_detail]( + id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + tool_id VARCHAR(128), + loss_reason VARCHAR(64), + loss_number DECIMAL(64) NOT NULL, + goods_shelves_id VARCHAR(64), + in_store_date DATETIME(255), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '鎶ユ崯鍗曟槑缁�', 'SCHEMA', dbo, 'table', loss_bound_detail, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栫爜', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '鎶ユ崯鍘熷洜', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', loss_reason; +EXEC sp_addextendedproperty 'MS_Description', '鎶ユ崯鏁伴噺', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', loss_number; +EXEC sp_addextendedproperty 'MS_Description', '瀛樺偍浣嶇疆(搴撲綅鍙�)', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', goods_shelves_id; +EXEC sp_addextendedproperty 'MS_Description', '鍏ュ簱鏃堕棿', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', in_store_date; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', loss_bound_detail, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[stocktaking_bound]') AND type in (N'U')) DROP TABLE [dbo].[stocktaking_bound]; +CREATE TABLE [dbo].[stocktaking_bound]( + id VARCHAR(255) NOT NULL, + stocktaking_type VARCHAR(255), + order_code VARCHAR(255), + handler VARCHAR(255), + reviewer VARCHAR(255), + stocktaking_name VARCHAR(255), + remark VARCHAR(255), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鐩樼偣鐢宠鍗�', 'SCHEMA', dbo, 'table', stocktaking_bound, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '鐩樼偣绫诲瀷;1.鏄庣洏鐩樼偣 +2.鏆楃洏鐩樼偣', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', stocktaking_type; +EXEC sp_addextendedproperty 'MS_Description', '鐩樼偣鍗曞彿', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', order_code; +EXEC sp_addextendedproperty 'MS_Description', '缁忔墜浜�', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', handler; +EXEC sp_addextendedproperty 'MS_Description', '瀹℃牳浜�', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', reviewer; +EXEC sp_addextendedproperty 'MS_Description', '鐩樼偣鍚嶇О', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', stocktaking_name; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', stocktaking_bound, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[stocktaking_bound_detail]') AND type in (N'U')) DROP TABLE [dbo].[stocktaking_bound_detail]; +CREATE TABLE [dbo].[stocktaking_bound_detail]( + id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + tool_id VARCHAR(32), + goods_shelves_id VARCHAR(64), + book_quantity DATETIME(255), + available_quantity DATETIME(255), + practical_quantity DATETIME(255), + surplus_deficit VARCHAR(36), + stocktaking_date DATETIME(255), + remark VARCHAR(218), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '鐩樼偣鍗曟槑缁�', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栫爜', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '搴撳瓨鍙�', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', goods_shelves_id; +EXEC sp_addextendedproperty 'MS_Description', '璐﹂潰鏁伴噺', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', book_quantity; +EXEC sp_addextendedproperty 'MS_Description', '鍙敤鏁伴噺', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', available_quantity; +EXEC sp_addextendedproperty 'MS_Description', '瀹炵洏鏁伴噺', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', practical_quantity; +EXEC sp_addextendedproperty 'MS_Description', '鐩樼泩鐩樹簭;1.鐩樼泩 +2.鐩樹簭', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', surplus_deficit; +EXEC sp_addextendedproperty 'MS_Description', '鐩樺簱鏃堕棿', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', stocktaking_date; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', stocktaking_bound_detail, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[store_early warning]') AND type in (N'U')) DROP TABLE [dbo].[store_early warning]; +CREATE TABLE [dbo].[store_early warning]( + id VARCHAR(32) NOT NULL, + tool_code VARCHAR(32) NOT NULL, + tool_id VARCHAR(64), + goods_shelves_id VARCHAR(32), + lower_inventory DECIMAL(64), + highest_inventory DECIMAL(64), + total_count DECIMAL(64), + available_quantity DECIMAL(64), + status VARCHAR(255), + remark VARCHAR(216), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '搴撳瓨棰勮', 'SCHEMA', dbo, 'table', store_early warning, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', store_early warning, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栫爜', 'SCHEMA', dbo, 'table', store_early warning, 'column', tool_code; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栧彿', 'SCHEMA', dbo, 'table', store_early warning, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '瀛樺偍浣嶇疆', 'SCHEMA', dbo, 'table', store_early warning, 'column', goods_shelves_id; +EXEC sp_addextendedproperty 'MS_Description', '搴撳瓨涓嬮檺', 'SCHEMA', dbo, 'table', store_early warning, 'column', lower_inventory; +EXEC sp_addextendedproperty 'MS_Description', '搴撳瓨涓婇檺', 'SCHEMA', dbo, 'table', store_early warning, 'column', highest_inventory; +EXEC sp_addextendedproperty 'MS_Description', '鎬诲簱瀛樻暟閲�', 'SCHEMA', dbo, 'table', store_early warning, 'column', total_count; +EXEC sp_addextendedproperty 'MS_Description', '鍙敤搴撳瓨鏁伴噺', 'SCHEMA', dbo, 'table', store_early warning, 'column', available_quantity; +EXEC sp_addextendedproperty 'MS_Description', '鐘舵��;1宸插鐞嗭紱2.鏈鐞嗐��', 'SCHEMA', dbo, 'table', store_early warning, 'column', status; +EXEC sp_addextendedproperty 'MS_Description', '澶囨敞', 'SCHEMA', dbo, 'table', store_early warning, 'column', remark; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', store_early warning, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', store_early warning, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', store_early warning, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', store_early warning, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', store_early warning, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[goods_shelves_mark]') AND type in (N'U')) DROP TABLE [dbo].[goods_shelves_mark]; +CREATE TABLE [dbo].[goods_shelves_mark]( + id VARCHAR(32) NOT NULL, + warehouse_id VARCHAR(32) NOT NULL, + goods_shelves VARCHAR(32) NOT NULL, + storey VARCHAR(128) NOT NULL, + variety VARCHAR(255), + tenant_id VARCHAR, + created_by VARCHAR(32), + created_time DATETIME, + updated_by VARCHAR(32), + updated_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '璐ф灦灞傛帓搴撳瓨宸ュ叿鐗瑰緛鏍囨敞', 'SCHEMA', dbo, 'table', goods_shelves_mark, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '浠撳簱缂栧彿', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', warehouse_id; +EXEC sp_addextendedproperty 'MS_Description', '璐ф灦缂栧彿', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', goods_shelves; +EXEC sp_addextendedproperty 'MS_Description', '灞傛暟淇℃伅', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', storey; +EXEC sp_addextendedproperty 'MS_Description', '鍝佺-鏍囨敞瀛樻斁鍒�鍏峰搧绉嶄俊鎭�', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', variety; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', created_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', created_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', updated_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', goods_shelves_mark, 'column', updated_time; + +IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[tool_ledger]') AND type in (N'U')) DROP TABLE [dbo].[tool_ledger]; +CREATE TABLE [dbo].[tool_ledger]( + id VARCHAR(32) NOT NULL, + classify_id VARCHAR(32), + tool_id VARCHAR(32), + total_count VARCHAR(64), + available_count VARCHAR(64), + loss_count VARCHAR(64), + repair_count VARCHAR(64), + detection_count VARCHAR(64), + lend_count VARCHAR(64), + sharpening_count VARCHAR(64), + tenant_id VARCHAR, + create_by VARCHAR(32), + create_time DATETIME, + update_by VARCHAR(32), + update_time DATETIME, + PRIMARY KEY (id) +); + +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿鍙拌处鏁版嵁琛�', 'SCHEMA', dbo, 'table', tool_ledger, null, null; +EXEC sp_addextendedproperty 'MS_Description', '涓婚敭', 'SCHEMA', dbo, 'table', tool_ledger, 'column', id; +EXEC sp_addextendedproperty 'MS_Description', '鍒嗙被缂栫爜', 'SCHEMA', dbo, 'table', tool_ledger, 'column', classify_id; +EXEC sp_addextendedproperty 'MS_Description', '宸ュ叿缂栫爜', 'SCHEMA', dbo, 'table', tool_ledger, 'column', tool_id; +EXEC sp_addextendedproperty 'MS_Description', '鎬诲簱瀛�', 'SCHEMA', dbo, 'table', tool_ledger, 'column', total_count; +EXEC sp_addextendedproperty 'MS_Description', '鍙敤搴撳瓨', 'SCHEMA', dbo, 'table', tool_ledger, 'column', available_count; +EXEC sp_addextendedproperty 'MS_Description', '鎬绘姤鎹熸暟閲�', 'SCHEMA', dbo, 'table', tool_ledger, 'column', loss_count; +EXEC sp_addextendedproperty 'MS_Description', '鍦ㄤ慨鏁伴噺', 'SCHEMA', dbo, 'table', tool_ledger, 'column', repair_count; +EXEC sp_addextendedproperty 'MS_Description', '鍦ㄦ鏁伴噺', 'SCHEMA', dbo, 'table', tool_ledger, 'column', detection_count; +EXEC sp_addextendedproperty 'MS_Description', '鍦ㄥ�熸暟閲�', 'SCHEMA', dbo, 'table', tool_ledger, 'column', lend_count; +EXEC sp_addextendedproperty 'MS_Description', '鍦ㄧ(鏁伴噺', 'SCHEMA', dbo, 'table', tool_ledger, 'column', sharpening_count; +EXEC sp_addextendedproperty 'MS_Description', '绉熸埛鍙�', 'SCHEMA', dbo, 'table', tool_ledger, 'column', tenant_id; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓浜�', 'SCHEMA', dbo, 'table', tool_ledger, 'column', create_by; +EXEC sp_addextendedproperty 'MS_Description', '鍒涘缓鏃堕棿', 'SCHEMA', dbo, 'table', tool_ledger, 'column', create_time; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊浜�', 'SCHEMA', dbo, 'table', tool_ledger, 'column', update_by; +EXEC sp_addextendedproperty 'MS_Description', '鏇存柊鏃堕棿', 'SCHEMA', dbo, 'table', tool_ledger, 'column', update_time; + diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InStoreDetailController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InStoreDetailController.java new file mode 100644 index 0000000..7a7f587 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InStoreDetailController.java @@ -0,0 +1,177 @@ +package org.jeecg.modules.tms.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.tms.entity.InStoreDetail; +import org.jeecg.modules.tms.service.IInStoreDetailService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 鍏ュ簱鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Api(tags="鍏ュ簱鏄庣粏") +@RestController +@RequestMapping("/tms/inStoreDetail") +@Slf4j +public class InStoreDetailController extends JeecgController<InStoreDetail, IInStoreDetailService> { + @Autowired + private IInStoreDetailService inStoreDetailService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param inStoreDetail + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "鍏ュ簱鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value="鍏ュ簱鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ", notes="鍏ュ簱鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<IPage<InStoreDetail>> queryPageList(InStoreDetail inStoreDetail, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<InStoreDetail> queryWrapper = QueryGenerator.initQueryWrapper(inStoreDetail, req.getParameterMap()); + Page<InStoreDetail> page = new Page<InStoreDetail>(pageNo, pageSize); + IPage<InStoreDetail> pageList = inStoreDetailService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param inStoreDetail + * @return + */ + @AutoLog(value = "鍏ュ簱鏄庣粏-娣诲姞") + @ApiOperation(value="鍏ュ簱鏄庣粏-娣诲姞", notes="鍏ュ簱鏄庣粏-娣诲姞") + //@RequiresPermissions("org.jeecg.modules:tms_in_store_detail:add") + @PostMapping(value = "/add") + public Result<String> add(@RequestBody InStoreDetail inStoreDetail) { + inStoreDetailService.save(inStoreDetail); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param inStoreDetail + * @return + */ + @AutoLog(value = "鍏ュ簱鏄庣粏-缂栬緫") + @ApiOperation(value="鍏ュ簱鏄庣粏-缂栬緫", notes="鍏ュ簱鏄庣粏-缂栬緫") + //@RequiresPermissions("org.jeecg.modules:tms_in_store_detail:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result<String> edit(@RequestBody InStoreDetail inStoreDetail) { + inStoreDetailService.updateById(inStoreDetail); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "鍏ュ簱鏄庣粏-閫氳繃id鍒犻櫎") + @ApiOperation(value="鍏ュ簱鏄庣粏-閫氳繃id鍒犻櫎", notes="鍏ュ簱鏄庣粏-閫氳繃id鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_in_store_detail:delete") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name="id",required=true) String id) { + inStoreDetailService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "鍏ュ簱鏄庣粏-鎵归噺鍒犻櫎") + @ApiOperation(value="鍏ュ簱鏄庣粏-鎵归噺鍒犻櫎", notes="鍏ュ簱鏄庣粏-鎵归噺鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_in_store_detail:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.inStoreDetailService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + //@AutoLog(value = "鍏ュ簱鏄庣粏-閫氳繃id鏌ヨ") + @ApiOperation(value="鍏ュ簱鏄庣粏-閫氳繃id鏌ヨ", notes="鍏ュ簱鏄庣粏-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<InStoreDetail> queryById(@RequestParam(name="id",required=true) String id) { + InStoreDetail inStoreDetail = inStoreDetailService.getById(id); + if(inStoreDetail==null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + return Result.OK(inStoreDetail); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param inStoreDetail + */ + //@RequiresPermissions("org.jeecg.modules:tms_in_store_detail:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, InStoreDetail inStoreDetail) { + return super.exportXls(request, inStoreDetail, InStoreDetail.class, "鍏ュ簱鏄庣粏"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + //@RequiresPermissions("tms_in_store_detail:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, InStoreDetail.class); + } + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundDetailController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundDetailController.java new file mode 100644 index 0000000..217b4e3 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundDetailController.java @@ -0,0 +1,174 @@ +package org.jeecg.modules.tms.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.tms.entity.InboundDetail; +import org.jeecg.modules.tms.service.IInboundDetailService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 鍏ュ簱鐢宠鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Api(tags="鍏ュ簱鐢宠鏄庣粏") +@RestController +@RequestMapping("/tms/inboundDetail") +@Slf4j +public class InboundDetailController extends JeecgController<InboundDetail, IInboundDetailService> { + @Autowired + private IInboundDetailService inboundDetailService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param inboundDetail + * @param pageNo + * @param pageSize + * @param query + * @return + */ + //@AutoLog(value = "鍏ュ簱鐢宠鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value="鍏ュ簱鐢宠鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ", notes="鍏ュ簱鐢宠鏄庣粏-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<?> queryPageList(InboundDetail inboundDetail, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, @RequestParam Map<String, String> query) { + IPage<Map<String, Object>> pageList = inboundDetailService.findPageList(pageNo, pageSize, query); + return Result.ok(pageList); + } + + /** + * 娣诲姞 + * + * @param inboundDetail + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鏄庣粏-娣诲姞") + @ApiOperation(value="鍏ュ簱鐢宠鏄庣粏-娣诲姞", notes="鍏ュ簱鐢宠鏄庣粏-娣诲姞") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_detail:add") + @PostMapping(value = "/add") + public Result<String> add(@RequestBody InboundDetail inboundDetail) { + inboundDetailService.save(inboundDetail); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param inboundDetail + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鏄庣粏-缂栬緫") + @ApiOperation(value="鍏ュ簱鐢宠鏄庣粏-缂栬緫", notes="鍏ュ簱鐢宠鏄庣粏-缂栬緫") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_detail:edit") + @RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST}) + public Result<String> edit(@RequestBody InboundDetail inboundDetail) { + inboundDetailService.updateById(inboundDetail); + return Result.OK("缂栬緫鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鏄庣粏-閫氳繃id鍒犻櫎") + @ApiOperation(value="鍏ュ簱鐢宠鏄庣粏-閫氳繃id鍒犻櫎", notes="鍏ュ簱鐢宠鏄庣粏-閫氳繃id鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_detail:delete") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name="id",required=true) String id) { + inboundDetailService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鏄庣粏-鎵归噺鍒犻櫎") + @ApiOperation(value="鍏ュ簱鐢宠鏄庣粏-鎵归噺鍒犻櫎", notes="鍏ュ簱鐢宠鏄庣粏-鎵归噺鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_detail:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.inboundDetailService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + //@AutoLog(value = "鍏ュ簱鐢宠鏄庣粏-閫氳繃id鏌ヨ") + @ApiOperation(value="鍏ュ簱鐢宠鏄庣粏-閫氳繃id鏌ヨ", notes="鍏ュ簱鐢宠鏄庣粏-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<InboundDetail> queryById(@RequestParam(name="id",required=true) String id) { + InboundDetail inboundDetail = inboundDetailService.getById(id); + if(inboundDetail==null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + return Result.OK(inboundDetail); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param inboundDetail + */ + //@RequiresPermissions("org.jeecg.modules:tms_inbound_detail:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, InboundDetail inboundDetail) { + return super.exportXls(request, inboundDetail, InboundDetail.class, "鍏ュ簱鐢宠鏄庣粏"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + //@RequiresPermissions("tms_inbound_detail:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, InboundDetail.class); + } + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java new file mode 100644 index 0000000..6852a66 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/controller/InboundOrderController.java @@ -0,0 +1,237 @@ +package org.jeecg.modules.tms.controller; + +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLDecoder; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.system.query.QueryGenerator; +import org.jeecg.common.util.oConvertUtils; +import org.jeecg.modules.system.service.ISysBusinessCodeRuleService; +import org.jeecg.modules.tms.entity.InboundDetail; +import org.jeecg.modules.tms.entity.InboundOrder; +import org.jeecg.modules.tms.entity.dto.InboundOrderFlowDto; +import org.jeecg.modules.tms.entity.dto.OutBoundOrderFlowDto; +import org.jeecg.modules.tms.service.IInboundDetailService; +import org.jeecg.modules.tms.service.IInboundOrderService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import lombok.extern.slf4j.Slf4j; + +import org.jeecgframework.poi.excel.ExcelImportUtil; +import org.jeecgframework.poi.excel.def.NormalExcelConstants; +import org.jeecgframework.poi.excel.entity.ExportParams; +import org.jeecgframework.poi.excel.entity.ImportParams; +import org.jeecgframework.poi.excel.view.JeecgEntityExcelView; +import org.jeecg.common.system.base.controller.JeecgController; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.multipart.MultipartHttpServletRequest; +import org.springframework.web.servlet.ModelAndView; +import com.alibaba.fastjson.JSON; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.aspect.annotation.AutoLog; + + /** + * @Description: 鍏ュ簱鐢宠鍗� + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Api(tags="鍏ュ簱鐢宠鍗�") +@RestController +@RequestMapping("/tms/inboundOrder") +@Slf4j +public class InboundOrderController extends JeecgController<InboundOrder, IInboundOrderService> { + @Autowired + private IInboundOrderService inboundOrderService; + + @Autowired + private IInboundDetailService inboundDetailService; + + + @Autowired + private ISysBusinessCodeRuleService businessCodeRuleService; + + /** + * 鍒嗛〉鍒楄〃鏌ヨ + * + * @param inboundOrder + * @param pageNo + * @param pageSize + * @param req + * @return + */ + //@AutoLog(value = "鍏ュ簱鐢宠鍗�-鍒嗛〉鍒楄〃鏌ヨ") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-鍒嗛〉鍒楄〃鏌ヨ", notes="鍏ュ簱鐢宠鍗�-鍒嗛〉鍒楄〃鏌ヨ") + @GetMapping(value = "/list") + public Result<IPage<InboundOrder>> queryPageList(InboundOrder inboundOrder, + @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, + @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, + HttpServletRequest req) { + QueryWrapper<InboundOrder> queryWrapper = QueryGenerator.initQueryWrapper(inboundOrder, req.getParameterMap()); + Page<InboundOrder> page = new Page<InboundOrder>(pageNo, pageSize); + IPage<InboundOrder> pageList = inboundOrderService.page(page, queryWrapper); + return Result.OK(pageList); + } + + /** + * 娣诲姞 + * + * @param jSONObject + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-娣诲姞") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-娣诲姞", notes="鍏ュ簱鐢宠鍗�-娣诲姞") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:add") + @PostMapping(value = "/add") + public Result<?> add(@RequestBody JSONObject jSONObject) { + InboundOrder inboundOrder = jSONObject.toJavaObject(InboundOrder.class); + inboundOrder.setOrderStatus("1"); + inboundOrder.setInStatus("1"); + inboundOrder.setInboundNum(businessCodeRuleService.generateBusinessCodeSeq("InBoundOrder")); + inboundOrderService.save(inboundOrder); + // 淇濆瓨鍏ュ簱鐢宠鍗曟槑缁嗘暟鎹� + JSONArray jsonArray = jSONObject.getJSONArray("detailData"); + List<InboundDetail> list = jsonArray.toJavaList(InboundDetail.class); + for (int i = 0; i < list.size(); i++) { + InboundDetail temp = list.get(i); + temp.setInStorehouseId(inboundOrder.getId()); + temp.setToolCode(temp.getToolCodeId()); + } + inboundDetailService.saveBatch(list); + return Result.OK("娣诲姞鎴愬姛锛�"); + } + + /** + * 缂栬緫 + * + * @param jSONObject + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-缂栬緫") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-缂栬緫", notes="鍏ュ簱鐢宠鍗�-缂栬緫") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:edit") + @PostMapping(value = "/edit") + public Result<?> edit(@RequestBody JSONObject jSONObject) { + InboundOrder inboundOrder = jSONObject.toJavaObject(InboundOrder.class); + inboundOrderService.updateById(inboundOrder); + // 鍒犻櫎鐢宠鍗曟槑缁嗘暟鎹� + inboundDetailService.deleteByInboundOrderId(inboundOrder.getId()); + // 淇濆瓨鍏ュ簱鐢宠鍗曟槑缁嗘暟鎹� + JSONArray jsonArray = jSONObject.getJSONArray("detailData"); + List<InboundDetail> list = jsonArray.toJavaList(InboundDetail.class); + for (int i = 0; i < list.size(); i++) { + InboundDetail temp = list.get(i); + temp.setInStorehouseId(inboundOrder.getId()); + temp.setToolCode(temp.getToolCodeId()); + } + inboundDetailService.saveOrUpdateBatch(list); + return Result.OK("鎿嶄綔鎴愬姛!"); + } + + /** + * 閫氳繃id鍒犻櫎 + * + * @param id + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-閫氳繃id鍒犻櫎") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-閫氳繃id鍒犻櫎", notes="鍏ュ簱鐢宠鍗�-閫氳繃id鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:delete") + @DeleteMapping(value = "/delete") + public Result<String> delete(@RequestParam(name="id",required=true) String id) { + inboundOrderService.removeById(id); + return Result.OK("鍒犻櫎鎴愬姛!"); + } + + /** + * 鎵归噺鍒犻櫎 + * + * @param ids + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-鎵归噺鍒犻櫎") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-鎵归噺鍒犻櫎", notes="鍏ュ簱鐢宠鍗�-鎵归噺鍒犻櫎") + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:deleteBatch") + @DeleteMapping(value = "/deleteBatch") + public Result<String> deleteBatch(@RequestParam(name="ids",required=true) String ids) { + this.inboundOrderService.removeByIds(Arrays.asList(ids.split(","))); + return Result.OK("鎵归噺鍒犻櫎鎴愬姛!"); + } + + /** + * 閫氳繃id鏌ヨ + * + * @param id + * @return + */ + //@AutoLog(value = "鍏ュ簱鐢宠鍗�-閫氳繃id鏌ヨ") + @ApiOperation(value="鍏ュ簱鐢宠鍗�-閫氳繃id鏌ヨ", notes="鍏ュ簱鐢宠鍗�-閫氳繃id鏌ヨ") + @GetMapping(value = "/queryById") + public Result<InboundOrder> queryById(@RequestParam(name="id",required=true) String id) { + InboundOrder inboundOrder = inboundOrderService.getById(id); + if(inboundOrder==null) { + return Result.error("鏈壘鍒板搴旀暟鎹�"); + } + return Result.OK(inboundOrder); + } + + /** + * 瀵煎嚭excel + * + * @param request + * @param inboundOrder + */ + //@RequiresPermissions("org.jeecg.modules:tms_inbound_order:exportXls") + @RequestMapping(value = "/exportXls") + public ModelAndView exportXls(HttpServletRequest request, InboundOrder inboundOrder) { + return super.exportXls(request, inboundOrder, InboundOrder.class, "鍏ュ簱鐢宠鍗�"); + } + + /** + * 閫氳繃excel瀵煎叆鏁版嵁 + * + * @param request + * @param response + * @return + */ + //@RequiresPermissions("tms_inbound_order:importExcel") + @RequestMapping(value = "/importExcel", method = RequestMethod.POST) + public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { + return super.importExcel(request, response, InboundOrder.class); + } + + /** + * 鎻愪氦 + * + * @param id + * @return + */ + @AutoLog(value = "鍏ュ簱鐢宠鍗�-鎻愪氦") + @GetMapping(value = "/submit") + public Result<String> submit(@RequestParam(name = "id") String id) { + inboundOrderService.submit(id); + return Result.OK("鎻愪氦鎴愬姛!"); + } + + @AutoLog(value = "瀹℃壒娴佺▼") + @ApiOperation(value = "鍏ュ簱鐢宠鍗�-瀹℃壒娴佺▼", notes = "鍏ュ簱鐢宠鍗�-瀹℃壒娴佺▼") + @PostMapping("/approval") + public Result<?> approval(@RequestBody InboundOrderFlowDto inboundOrderFlowDto) { + inboundOrderService.approvalProcess(inboundOrderFlowDto); + return Result.OK("鎿嶄綔鎴愬姛"); + } +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InStoreDetail.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InStoreDetail.java new file mode 100644 index 0000000..1164ab7 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InStoreDetail.java @@ -0,0 +1,94 @@ +package org.jeecg.modules.tms.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 鍏ュ簱鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Data +@TableName("tms_in_store_detail") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="tms_in_store_detail瀵硅薄", description="鍏ュ簱鏄庣粏") +public class InStoreDetail implements Serializable { + private static final long serialVersionUID = 1L; + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**宸ュ叿缂栫爜*/ + @Excel(name = "宸ュ叿缂栫爜", width = 15) + @ApiModelProperty(value = "宸ュ叿缂栫爜") + private String toolCode; + /**宸ュ叿缂栧彿*/ + @Excel(name = "宸ュ叿缂栧彿", width = 15) + @ApiModelProperty(value = "宸ュ叿缂栧彿") + private String toolId; + /**宸ュ叿鍏ュ簱鏂瑰紡*/ + @Excel(name = "宸ュ叿鍏ュ簱鏂瑰紡", width = 15) + @ApiModelProperty(value = "宸ュ叿鍏ュ簱鏂瑰紡") + private String inStorehouseType; + /**搴撲綅鍙�*/ + @Excel(name = "搴撲綅鍙�", width = 15) + @ApiModelProperty(value = "搴撲綅鍙�") + private String goodsShelvesId; + /**鍏ュ簱鏁伴噺*/ + @Excel(name = "鍏ュ簱鏁伴噺", width = 15) + @ApiModelProperty(value = "鍏ュ簱鏁伴噺") + private BigDecimal inNumber; + /**鍏ュ簱鐢宠鍗曞彿*/ + @Excel(name = "鍏ュ簱鐢宠鍗曞彿", width = 15) + @ApiModelProperty(value = "鍏ュ簱鐢宠鍗曞彿") + private String inStorehouseId; + /**鍏ュ簱鎿嶄綔鏂瑰紡;1.鎸夌敵璇峰崟 +2.鎵嬪伐鎿嶄綔*/ + @Excel(name = "鍏ュ簱鎿嶄綔鏂瑰紡;1.鎸夌敵璇峰崟 2.鎵嬪伐鎿嶄綔", width = 15) + @ApiModelProperty(value = "鍏ュ簱鎿嶄綔鏂瑰紡;1.鎸夌敵璇峰崟 2.鎵嬪伐鎿嶄綔") + private java.lang.String operateType; + /**鍏ュ簱鏃堕棿*/ + @Excel(name = "鍏ュ簱鏃堕棿", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鍏ュ簱鏃堕棿") + private Date inboundTime; + /**绉熸埛鍙�*/ + @Excel(name = "绉熸埛鍙�", width = 15) + @ApiModelProperty(value = "绉熸埛鍙�") + private String tenantId; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundDetail.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundDetail.java new file mode 100644 index 0000000..9569464 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundDetail.java @@ -0,0 +1,97 @@ +package org.jeecg.modules.tms.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 鍏ュ簱鐢宠鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Data +@TableName("tms_inbound_detail") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="tms_inbound_detail瀵硅薄", description="鍏ュ簱鐢宠鏄庣粏") +public class InboundDetail implements Serializable { + private static final long serialVersionUID = 1L; + + /**涓婚敭*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭") + private String id; + /**鍏ュ簱鐢宠鍗曞彿*/ + @Excel(name = "鍏ュ簱鐢宠鍗曞彿", width = 15) + @ApiModelProperty(value = "鍏ュ簱鐢宠鍗曞彿") + private String inStorehouseId; + /**璐ф灦鍙�/瀛樺偍浣嶇疆*/ + @Excel(name = "璐ф灦鍙�/瀛樺偍浣嶇疆", width = 15) + @ApiModelProperty(value = "璐ф灦鍙�/瀛樺偍浣嶇疆") + private String goodsShelvesId; + /**宸ュ叿缂栫爜*/ + @Excel(name = "宸ュ叿缂栫爜", width = 15) + @ApiModelProperty(value = "宸ュ叿缂栫爜") + private String toolCode; + /**宸ュ叿缂栧彿*/ + @Excel(name = "宸ュ叿缂栧彿", width = 15) + @ApiModelProperty(value = "宸ュ叿缂栧彿") + private String toolId; + /**鍏ュ簱鏁伴噺*/ + @Excel(name = "鍏ュ簱鏁伴噺", width = 15) + @ApiModelProperty(value = "鍏ュ簱鏁伴噺") + private BigDecimal inStorageQuantity; + /**瀹為檯鍏ュ簱鏁伴噺*/ + @Excel(name = "瀹為檯鍏ュ簱鏁伴噺", width = 15) + @ApiModelProperty(value = "瀹為檯鍏ュ簱鏁伴噺") + private BigDecimal inActualCount; + /**澶囨敞*/ + @Excel(name = "澶囨敞", width = 15) + @ApiModelProperty(value = "澶囨敞") + private String remark; + /**绉熸埛鍙�*/ + @Excel(name = "绉熸埛鍙�", width = 15) + @ApiModelProperty(value = "绉熸埛鍙�") + private String tenantId; + /**鍒涘缓浜�*/ + @ApiModelProperty(value = "鍒涘缓浜�") + private String createBy; + /**鍒涘缓鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; + + @TableField(exist = false) + private String toolName; + + @TableField(exist = false) + private String toolModel; + + @TableField(exist = false) + private String inStorehouseType; + + @TableField(exist = false) + private String toolCodeId; +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundOrder.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundOrder.java new file mode 100644 index 0000000..880d4df --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/InboundOrder.java @@ -0,0 +1,116 @@ +package org.jeecg.modules.tms.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.annotation.TableLogic; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 鍏ュ簱鐢宠鍗� + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Data +@TableName("tms_inbound_order") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="tms_inbound_order瀵硅薄", description="鍏ュ簱鐢宠鍗�") +public class InboundOrder implements Serializable { + private static final long serialVersionUID = 1L; + + /**涓婚敭id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "涓婚敭id") + private String id; + /**鍏ュ簱鍗曠紪鍙�*/ + @Excel(name = "鍏ュ簱鍗曠紪鍙�", width = 15) + @ApiModelProperty(value = "鍏ュ簱鍗曠紪鍙�") + private String inboundNum; + /**鍏ュ簱鏃堕棿*/ + @Excel(name = "鍏ュ簱鏃堕棿", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鍏ュ簱鏃堕棿") + private Date inboundTime; + /**鍏ュ簱绫诲瀷*/ + @Excel(name = "鍏ュ簱绫诲瀷", width = 15) + @ApiModelProperty(value = "鍏ュ簱绫诲瀷") + @Dict(dicCode = "in_storehouse_type") + private String inStorehouseType; + /**缁忔墜浜�*/ + @Excel(name = "缁忔墜浜�", width = 15) + @ApiModelProperty(value = "缁忔墜浜�") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String handler; + /**鍊熺敤鍗曞彿*/ + @Excel(name = "鍊熺敤鍗曞彿", width = 15) + @ApiModelProperty(value = "鍊熺敤鍗曞彿") + private String borrowNum; + /**瀹℃牳浜�*/ + @Excel(name = "瀹℃牳浜�", width = 15) + @ApiModelProperty(value = "瀹℃牳浜�") + @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") + private String reviewer; + /**瀹℃牳鏃堕棿*/ + @Excel(name = "瀹℃牳鏃堕棿", width = 15, format = "yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "瀹℃牳鏃堕棿") + private Date approvalDate; + /**瀹℃牳鎰忚*/ + @Excel(name = "瀹℃牳鎰忚", width = 15) + @ApiModelProperty(value = "瀹℃牳鎰忚") + private String approvalOpinion; + /**鍗曞瓙鐘舵��*/ + @Excel(name = "鍗曞瓙鐘舵��", width = 15) + @ApiModelProperty(value = "鍗曞瓙鐘舵��") + @Dict(dicCode = "in_bill_status") + private String orderStatus; + /**鍏ュ簱鐘舵��*/ + @Excel(name = "鍏ュ簱鐘舵��", width = 15) + @Dict(dicCode = "in_status") + @ApiModelProperty(value = "鍏ュ簱鐘舵��") + private String inStatus; + /**鐢宠鍘熷洜*/ + @Excel(name = "鐢宠鍘熷洜", width = 15) + @ApiModelProperty(value = "鐢宠鍘熷洜") + private String applicationReason; + /**澶囨敞*/ + @Excel(name = "澶囨敞", width = 15) + @ApiModelProperty(value = "澶囨敞") + private String remark; + /**绉熸埛鍙�*/ + @Excel(name = "绉熸埛鍙�", width = 15) + @ApiModelProperty(value = "绉熸埛鍙�") + private String tenantId; + /**鎿嶄綔鍛�*/ + @ApiModelProperty(value = "鎿嶄綔鍛�") + private String createBy; + /**鐢宠鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鐢宠鏃堕棿") + private Date createTime; + /**鏇存柊浜�*/ + @ApiModelProperty(value = "鏇存柊浜�") + private String updateBy; + /**鏇存柊鏃堕棿*/ + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern="yyyy-MM-dd") + @ApiModelProperty(value = "鏇存柊鏃堕棿") + private Date updateTime; +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsConfigProperty.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsConfigProperty.java index 7084df0..6740196 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsConfigProperty.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/ToolsConfigProperty.java @@ -55,6 +55,7 @@ /**宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤*/ @Excel(name = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤", width = 15) @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤") + @Dict(dicCode = "application_type") private java.lang.String applicationType; /**鏍囧噯绾у埆*/ @Excel(name = "鏍囧噯绾у埆", width = 15) diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/dto/InboundOrderFlowDto.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/dto/InboundOrderFlowDto.java new file mode 100644 index 0000000..cc1fd08 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/dto/InboundOrderFlowDto.java @@ -0,0 +1,12 @@ +package org.jeecg.modules.tms.entity.dto; + +import lombok.Data; +import org.jeecg.modules.flowable.domain.vo.FlowTaskVo; + +@Data +public class InboundOrderFlowDto extends FlowTaskVo { + //瀹℃壒鐘舵�� + private String status; + //瀹℃壒鎰忚 + private String approvalOpinion; +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaBladeVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaBladeVo.java index 96fa5bc..0ce3390 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaBladeVo.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaBladeVo.java @@ -59,6 +59,7 @@ @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤") private String applicationType; + private String applicationTypeName; @ApiModelProperty(value = "鍘傚") private String supplierId; diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java index b68c4f8..0365f95 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaCommonToolVo.java @@ -6,6 +6,7 @@ import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; +import org.jeecg.common.aspect.annotation.Dict; import java.io.Serializable; @@ -56,7 +57,9 @@ private String positionCode; @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤") + @Dict(dicCode = "application_type") private String applicationType; + private String applicationTypeName; @ApiModelProperty(value = "鍘傚") private String supplierId; diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaMillToolVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaMillToolVo.java index 48c3772..8315462 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaMillToolVo.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaMillToolVo.java @@ -59,6 +59,7 @@ @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤") private String applicationType; + private String applicationTypeName; @ApiModelProperty(value = "鍘傚") private String supplierId; diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaThreadingToolVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaThreadingToolVo.java index 119e077..b2a9781 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaThreadingToolVo.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaThreadingToolVo.java @@ -59,6 +59,7 @@ @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤") private String applicationType; + private String applicationTypeName; @ApiModelProperty(value = "鍘傚") private String supplierId; diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaTurningToolsVo.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaTurningToolsVo.java index d2698c4..304fcc5 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaTurningToolsVo.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/entity/vo/ParaTurningToolsVo.java @@ -59,6 +59,7 @@ @ApiModelProperty(value = "宸ュ叿绫诲瀷;1.閫氱敤 2.涓撶敤") private String applicationType; + private String applicationTypeName; @ApiModelProperty(value = "鍘傚") private String supplierId; diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InStoreDetailMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InStoreDetailMapper.java new file mode 100644 index 0000000..97177f1 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InStoreDetailMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.tms.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.tms.entity.InStoreDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 鍏ュ簱鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +public interface InStoreDetailMapper extends BaseMapper<InStoreDetail> { + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InboundDetailMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InboundDetailMapper.java new file mode 100644 index 0000000..b81f687 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InboundDetailMapper.java @@ -0,0 +1,27 @@ +package org.jeecg.modules.tms.mapper; + +import java.util.List; +import java.util.Map; + +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import org.apache.ibatis.annotations.Delete; +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.tms.entity.InboundDetail; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 鍏ュ簱鐢宠鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +public interface InboundDetailMapper extends BaseMapper<InboundDetail> { + + public IPage<Map<String, Object>> findPageList(IPage<Map> pageData, @Param(Constants.WRAPPER) Wrapper<Map> wrapper); + + @Delete("delete from tms_inbound_detail where in_storehouse_id = #{inboundOrderId}") + public boolean deleteByInboundOrderId(@Param("inboundOrderId") String inboundOrderId); +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InboundOrderMapper.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InboundOrderMapper.java new file mode 100644 index 0000000..56662df --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/InboundOrderMapper.java @@ -0,0 +1,17 @@ +package org.jeecg.modules.tms.mapper; + +import java.util.List; + +import org.apache.ibatis.annotations.Param; +import org.jeecg.modules.tms.entity.InboundOrder; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 鍏ュ簱鐢宠鍗� + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +public interface InboundOrderMapper extends BaseMapper<InboundOrder> { + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml index 4d01ce4..4e099e2 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/BaseToolsMapper.xml @@ -59,43 +59,47 @@ t2.adapt_holder adaptHolder, t2.remark, t3.classify_id classifyNum, - t3.type_name classifyName - from tms_base_tools t - left join tms_tools_config_property t1 on t1.tool_code = t.id - left join tms_para_hole_tools t2 on t2.tool_code = t.id - left join tms_tools_classify t3 on t3.id = t.classify_id - ${ew.customSqlSegment} + t3.type_name classifyName, + t4.item_text applicationTypeName + from tms_base_tools t + left join tms_tools_config_property t1 on t1.tool_code = t.id + left join tms_para_hole_tools t2 on t2.tool_code = t.id + left join tms_tools_classify t3 on t3.id = t.classify_id + left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type + ${ew.customSqlSegment} </select> <select id="paraCommonToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaCommonToolVo"> - select - t.id, - t.classify_id classifyId, - t.tool_code toolCode, - t.sign_code signCode, - t.chinese_name chineseName, - t.foreign_language_name foreignLanguageName, - t.standard_level standardLevel, - t.standard_code standardCode, - t.tool_model toolModel, - t.parama_table_name paramaTableName, - t1.application_type applicationType, - t1.supplier_id supplierId, - t1.province_city provinceCity, - t1.position_code positionCode, - t1.storage_location storageLocation, - t1.main_unit mainUnit, - t1.auxiliary_unit auxiliaryUnit, - t1.auxiliary_unit_flag auxiliaryUnitFlag, - t1.price, - t1.lower_inventory lowerInventory, - t1.highest_inventory highestInventory, - t3.classify_id classifyNum, - t3.type_name classifyName - from tms_base_tools t - left join tms_tools_config_property t1 on t1.tool_code = t.id - left join tms_tools_classify t3 on t3.id = t.classify_id - ${ew.customSqlSegment} -</select> + select + t.id, + t.classify_id classifyId, + t.tool_code toolCode, + t.sign_code signCode, + t.chinese_name chineseName, + t.foreign_language_name foreignLanguageName, + t.standard_level standardLevel, + t.standard_code standardCode, + t.tool_model toolModel, + t.parama_table_name paramaTableName, + t1.application_type applicationType, + t1.supplier_id supplierId, + t1.province_city provinceCity, + t1.position_code positionCode, + t1.storage_location storageLocation, + t1.main_unit mainUnit, + t1.auxiliary_unit auxiliaryUnit, + t1.auxiliary_unit_flag auxiliaryUnitFlag, + t1.price, + t1.lower_inventory lowerInventory, + t1.highest_inventory highestInventory, + t3.classify_id classifyNum, + t3.type_name classifyName, + t4.item_text applicationTypeName + from tms_base_tools t + left join tms_tools_config_property t1 on t1.tool_code = t.id + left join tms_tools_classify t3 on t3.id = t.classify_id + left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type + ${ew.customSqlSegment} + </select> <select id="paraThreadingToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaThreadingToolVo"> SELECT t.id, @@ -144,12 +148,14 @@ t2.connection_aperture connectionAperture, t2.connecting_keyway connectingKeyway, t3.classify_id classifyNum, - t3.type_name classifyName + t3.type_name classifyName, + t4.item_text applicationTypeName FROM tms_base_tools t LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id LEFT JOIN tms_para_threading_tool t2 ON t2.tool_code = t.id LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id + left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type ${ew.customSqlSegment} </select> <select id="paraMillToolList" resultType="org.jeecg.modules.tms.entity.vo.ParaMillToolVo"> @@ -209,12 +215,14 @@ t2.pitch, t2.recently_diameter recentlyDiameter, t3.classify_id classifyNum, - t3.type_name classifyName + t3.type_name classifyName, + t4.item_text applicationTypeName FROM tms_base_tools t LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id LEFT JOIN tms_para_mill_tool t2 ON t2.tool_code = t.id LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id + left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type ${ew.customSqlSegment} </select> <select id="paraTurningToolsList" resultType="org.jeecg.modules.tms.entity.vo.ParaTurningToolsVo"> @@ -278,12 +286,14 @@ t2.blade_thickness bladeThickness, t2.min_diameter minDiameter, t3.classify_id classifyNum, - t3.type_name classifyName + t3.type_name classifyName, + t4.item_text applicationTypeName FROM tms_base_tools t LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id LEFT JOIN tms_para_turning_tools t2 ON t2.tool_code = t.id LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id + left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type ${ew.customSqlSegment} </select> <select id="paraBladeList" resultType="org.jeecg.modules.tms.entity.vo.ParaBladeVo"> @@ -335,14 +345,17 @@ t2.pitch, t2.min_internal_thread minInternalThread, t3.classify_id classifyNum, - t3.type_name classifyName + t3.type_name classifyName, + t4.item_text applicationTypeName FROM tms_base_tools t LEFT JOIN tms_tools_config_property t1 ON t1.tool_code = t.id LEFT JOIN tms_para_blade t2 ON t2.tool_code = t.id LEFT JOIN tms_tools_classify t3 ON t3.id = t.classify_id + left join (select * from v_sys_dict where dict_code = 'application_type') t4 on t4.item_value = t1.application_type ${ew.customSqlSegment} </select> + <select id="pageWithLedgerAndConfig" resultType="org.jeecg.modules.tms.entity.vo.StocktakingPoundVo"> SELECT t.id, diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml new file mode 100644 index 0000000..d062ac9 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InStoreDetailMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.tms.mapper.InStoreDetailMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundDetailMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundDetailMapper.xml new file mode 100644 index 0000000..4ef950a --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundDetailMapper.xml @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.tms.mapper.InboundDetailMapper"> + + <select id="findPageList" resultType="map" parameterType="String"> + select + t1.id, + t3.id toolCodeId, + t1.in_storage_quantity inStorageQuantity, + t3.tool_code toolCode, + t3.chinese_name chineseName, + t3.tool_model toolModel, + t5.item_text applicationType + from tms_inbound_detail t1 + left join tms_inbound_order t2 on t1.in_storehouse_id = t2.id + left join tms_base_tools t3 on t3.id = t1.tool_code + left join tms_tools_config_property t4 on t4.tool_code = t1.tool_code + left join (select * from v_sys_dict where dict_code = 'application_type') t5 on t5.item_value = t4.application_type + ${ew.customSqlSegment} + </select> +</mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundOrderMapper.xml b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundOrderMapper.xml new file mode 100644 index 0000000..241d212 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/mapper/xml/InboundOrderMapper.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="org.jeecg.modules.tms.mapper.InboundOrderMapper"> + +</mapper> \ No newline at end of file diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInStoreDetailService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInStoreDetailService.java new file mode 100644 index 0000000..625733c --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInStoreDetailService.java @@ -0,0 +1,14 @@ +package org.jeecg.modules.tms.service; + +import org.jeecg.modules.tms.entity.InStoreDetail; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 鍏ュ簱鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +public interface IInStoreDetailService extends IService<InStoreDetail> { + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundDetailService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundDetailService.java new file mode 100644 index 0000000..ea88f9b --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundDetailService.java @@ -0,0 +1,20 @@ +package org.jeecg.modules.tms.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import org.jeecg.modules.tms.entity.InboundDetail; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.Map; + +/** + * @Description: 鍏ュ簱鐢宠鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +public interface IInboundDetailService extends IService<InboundDetail> { + + IPage<Map<String, Object>> findPageList(Integer pageNo, Integer pageSize, Map<String, String> query); + + public boolean deleteByInboundOrderId(String inboundOrderId); +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java new file mode 100644 index 0000000..e8ac09e --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/IInboundOrderService.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.tms.service; + +import org.jeecg.modules.tms.entity.InboundOrder; +import com.baomidou.mybatisplus.extension.service.IService; +import org.jeecg.modules.tms.entity.dto.InboundOrderFlowDto; +import org.jeecg.modules.tms.entity.dto.OutBoundOrderFlowDto; + +/** + * @Description: 鍏ュ簱鐢宠鍗� + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +public interface IInboundOrderService extends IService<InboundOrder> { + + boolean submit(String id); + + void approvalProcess(InboundOrderFlowDto inboundOrderFlowDto); +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InStoreDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InStoreDetailServiceImpl.java new file mode 100644 index 0000000..ebbce68 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InStoreDetailServiceImpl.java @@ -0,0 +1,19 @@ +package org.jeecg.modules.tms.service.impl; + +import org.jeecg.modules.tms.entity.InStoreDetail; +import org.jeecg.modules.tms.mapper.InStoreDetailMapper; +import org.jeecg.modules.tms.service.IInStoreDetailService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +/** + * @Description: 鍏ュ簱鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Service +public class InStoreDetailServiceImpl extends ServiceImpl<InStoreDetailMapper, InStoreDetail> implements IInStoreDetailService { + +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundDetailServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundDetailServiceImpl.java new file mode 100644 index 0000000..c40515c --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundDetailServiceImpl.java @@ -0,0 +1,55 @@ +package org.jeecg.modules.tms.service.impl; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.OrderItem; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.commons.lang.StringUtils; +import org.jeecg.common.exception.ExceptionCast; +import org.jeecg.modules.tms.entity.InboundDetail; +import org.jeecg.modules.tms.mapper.InboundDetailMapper; +import org.jeecg.modules.tms.service.IInboundDetailService; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +/** + * @Description: 鍏ュ簱鐢宠鏄庣粏 + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Service +public class InboundDetailServiceImpl extends ServiceImpl<InboundDetailMapper, InboundDetail> implements IInboundDetailService { + + @Override + public IPage<Map<String, Object>> findPageList(Integer pageNo, Integer pageSize, Map<String, String> query) { + if (pageNo == null || pageNo < 1 || pageSize == null || pageSize < 1) { + ExceptionCast.cast("鍙傛暟閿欒"); + } + IPage<Map> pageData = new Page<Map>(pageNo, pageSize); + QueryWrapper<Map> queryWrapper = Wrappers.query(); + if (null != query) { + String inboundOrderId = query.get("inboundOrderId"); + if (StringUtils.isNotBlank(inboundOrderId)) { + queryWrapper.eq("t1.in_storehouse_id", inboundOrderId); + } + // 鎺掑簭鍐欐硶 + List<OrderItem> orderItems = new ArrayList<>(); + orderItems.add(OrderItem.desc("t1.create_time")); + ((Page<Map>) pageData).setOrders(orderItems); + } + return super.getBaseMapper().findPageList(pageData,queryWrapper); + } + + @Override + public boolean deleteByInboundOrderId(String inboundOrderId) { + return this.baseMapper.deleteByInboundOrderId(inboundOrderId); + } +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java new file mode 100644 index 0000000..8eddc4a --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/InboundOrderServiceImpl.java @@ -0,0 +1,209 @@ +package org.jeecg.modules.tms.service.impl; + +import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import org.apache.shiro.SecurityUtils; +import org.apache.shiro.subject.Subject; +import org.flowable.engine.TaskService; +import org.flowable.task.api.Task; +import org.jeecg.common.api.vo.Result; +import org.jeecg.common.exception.JeecgBootException; +import org.jeecg.common.system.vo.LoginUser; +import org.jeecg.modules.flowable.apithird.business.entity.FlowMyBusiness; +import org.jeecg.modules.flowable.apithird.business.service.IFlowMyBusinessService; +import org.jeecg.modules.flowable.apithird.service.FlowCallBackServiceI; +import org.jeecg.modules.flowable.apithird.service.FlowCommonService; +import org.jeecg.modules.flowable.service.IFlowDefinitionService; +import org.jeecg.modules.flowable.service.IFlowTaskService; +import org.jeecg.modules.tms.entity.InboundOrder; +import org.jeecg.modules.tms.entity.dto.InboundOrderFlowDto; +import org.jeecg.modules.tms.mapper.InboundOrderMapper; +import org.jeecg.modules.tms.service.IInboundOrderService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; + +/** + * @Description: 鍏ュ簱鐢宠鍗� + * @Author: jeecg-boot + * @Date: 2025-05-19 + * @Version: V1.0 + */ +@Service("IInboundOrderService") +public class InboundOrderServiceImpl extends ServiceImpl<InboundOrderMapper, InboundOrder> implements IInboundOrderService, FlowCallBackServiceI { + + @Autowired + private FlowCommonService flowCommonService; + @Autowired + private IFlowDefinitionService flowDefinitionService; + + @Autowired + private IFlowTaskService flowTaskService; + @Autowired + private TaskService taskService; + @Autowired + private IFlowMyBusinessService flowMyBusinessService; + @Override + public boolean submit(String id) { + InboundOrder inboundOrder = this.getById(id); + //鍙戣捣瀹℃壒娴佺▼ + this.triggerProcess(inboundOrder); + //鏇存柊鍏ュ簱鍗曞鎵圭姸鎬佷负宸叉彁浜� + inboundOrder.setOrderStatus("2"); + this.updateById(inboundOrder); + return true; + } + + /** + * 瑙﹀彂娴佺▼ + * + * @param inboundOrder + * @return + */ + public boolean triggerProcess(InboundOrder inboundOrder) { + + flowCommonService.initActBusiness("鍏ュ簱鐢宠鍗曞彿锛�" + inboundOrder.getInboundNum()+"鍙戣捣瀹℃壒娴佺▼", + inboundOrder.getId(), "IInboundOrderService", "tool_in_storage", null); + Map<String, Object> variables = new HashMap<>(); + variables.put("dataId", inboundOrder.getId()); + variables.put("organization", "鏂板鍏ュ簱鐢宠鍗曢粯璁ゅ惎鍔ㄦ祦绋�"); + variables.put("comment", "鏂板鍏ュ簱鐢宠鍗曢粯璁ゅ惎鍔ㄦ祦绋�"); + variables.put("proofreading", true); + List<String> usernames = new ArrayList<>(); + usernames.add(inboundOrder.getHandler()); + variables.put("NextAssignee", usernames); + Result result = flowDefinitionService.startProcessInstanceByKey("tool_in_storage", variables); + return result.isSuccess(); + } + + @Override + public void afterFlowHandle(FlowMyBusiness business) { + business.getTaskNameId();//鎺ヤ笅鏉ュ鎵圭殑鑺傜偣 + business.getValues();//鍓嶇浼犺繘鏉ョ殑鍙傛暟 + business.getActStatus(); + } + + @Override + public Object getBusinessDataById(String dataId) { + return this.getById(dataId); + } + + @Override + public Map<String, Object> flowValuesOfTask(String taskNameId, Map<String, Object> values) { + return null; + } + + @Override + public List<String> flowCandidateUsernamesOfTask(String taskNameId, Map<String, Object> values) { + //涓氬姟鏄惁骞查娴佺▼锛屼笟鍔″共棰勶紝娴佺▼骞查锛屾寚瀹氫汉鍛樿繘琛屽鐞� + //鑾峰彇涓嬩竴姝ュ鐞嗕汉 + Object object = values.get("NextAssignee"); + return (List<String>) object; + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void approvalProcess(InboundOrderFlowDto inboundOrderFlowDto) { + if (StrUtil.isBlank(inboundOrderFlowDto.getTaskId()) || StrUtil.isBlank(inboundOrderFlowDto.getDataId())) { + throw new JeecgBootException("闈炴硶鍙傛暟锛�"); + } + + // 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛 + LoginUser user = getCurrentUser(); + if (user == null || StrUtil.isBlank(user.getId())) { + throw new JeecgBootException("璐﹀彿涓嶅瓨鍦�"); + } + + //鑾峰彇鍏ュ簱鐢宠鍗曚俊鎭� + InboundOrder inboundOrder = getById(inboundOrderFlowDto.getDataId()); + if (inboundOrder == null) { + throw new JeecgBootException("鏈壘鍒板搴旂殑鍑哄簱鐢宠鍗曪紒"); + } + + //鑾峰彇娴佺▼涓氬姟璁板綍 + FlowMyBusiness flowMyBusiness = getFlowMyBusiness(inboundOrderFlowDto.getInstanceId()); + if (flowMyBusiness == null) { + throw new JeecgBootException("娴佺▼璁板綍涓嶅瓨鍦�"); + } + + // 妫�鏌ョ敤鎴锋槸鍚︽湁鏉冮檺鎿嶄綔浠诲姟 + if (!isUserAuthorized(flowMyBusiness, user)) { + throw new JeecgBootException("鐢ㄦ埛鏃犳潈鎿嶄綔姝や换鍔�"); + } + + // 璁ら浠诲姟 + if (!claimTask(flowMyBusiness.getTaskId(), user)) { + throw new JeecgBootException("浠诲姟涓嶅瓨鍦ㄣ�佸凡瀹屾垚鎴栧凡琚粬浜鸿棰�"); + } + + //璁剧疆娴佺▼鍙橀噺 + setupProcessVariables(inboundOrderFlowDto, inboundOrder, user); + + //瀹屾垚娴佺▼浠诲姟 + Result result = flowTaskService.complete(inboundOrderFlowDto); + + //鏍规嵁浠诲姟瀹屾垚缁撴灉鏇存柊鐢宠鍗曠姸鎬� + if (result.isSuccess()) { + inboundOrder.setOrderStatus(inboundOrderFlowDto.getStatus()); + if ("3".equals(inboundOrderFlowDto.getStatus())) { + inboundOrder.setInStatus("1"); + } + inboundOrder.setReviewer(user.getUsername()); + inboundOrder.setApprovalDate(new Date()); + inboundOrder.setApprovalOpinion(inboundOrderFlowDto.getApprovalOpinion()); + updateById(inboundOrder); + } + } + + private LoginUser getCurrentUser() { + // 鑾峰彇褰撳墠璁よ瘉鐨勭櫥褰曠敤鎴蜂俊鎭� + Subject currentUser = SecurityUtils.getSubject(); + if (currentUser != null && currentUser.isAuthenticated()) { + Object principal = currentUser.getPrincipal(); + if (principal instanceof LoginUser) { + return (LoginUser) principal; + } + } + return null; + } + + private FlowMyBusiness getFlowMyBusiness(String instanceId) { + List<FlowMyBusiness> businessList = flowMyBusinessService.list( + new LambdaQueryWrapper<FlowMyBusiness>().eq(FlowMyBusiness::getProcessInstanceId, instanceId)); + return businessList.isEmpty() ? null : businessList.get(0); + } + + private boolean isUserAuthorized(FlowMyBusiness flowMyBusiness, LoginUser user) { + List<String> todoUsers = JSON.parseArray(flowMyBusiness.getTodoUsers(), String.class); + return todoUsers != null && todoUsers.contains(user.getUsername()); + } + + private boolean claimTask(String taskId, LoginUser user) { + Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); + if (task == null) { + return false; + } + if (task.getAssignee() != null && !task.getAssignee().equals(user.getUsername())) { + return false; + } + taskService.claim(taskId, user.getUsername()); + return true; + } + + private void setupProcessVariables(InboundOrderFlowDto inboundOrderFlowDto, InboundOrder inboundOrder, LoginUser user) { + if ("2".equals(inboundOrder.getOrderStatus()) && user.getUsername().equals(inboundOrder.getReviewer())) { + Map<String, Object> values = new HashMap<>(); + values.put("dataId", inboundOrder.getId()); + values.put("organization", inboundOrderFlowDto.getApprovalOpinion()); + values.put("comment", inboundOrderFlowDto.getApprovalOpinion()); + values.put("status", inboundOrderFlowDto.getStatus()); + values.put("NextAssignee", Collections.singletonList(inboundOrder.getReviewer())); + inboundOrderFlowDto.setValues(values); + } + } +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java index 8cabb60..d19e690 100644 --- a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/service/impl/ToolsClassifyServiceImpl.java @@ -78,7 +78,7 @@ return this.baseMapper.queryPageList(page, queryWrapper); } public List<CommonGenericTree> loadTree() { - List<ToolsClassify> toolsClassifyList = this.list(); + List<ToolsClassify> toolsClassifyList = this.lambdaQuery().orderByAsc(ToolsClassify::getId).list(); List<CommonGenericTree> commonGenericTreeList = loadTree(toolsClassifyList); return commonGenericTreeList; } @@ -88,20 +88,15 @@ List<CommonGenericTree> list = new ArrayList<>(); Map<String, CommonGenericTree> map = new HashMap<>(); CommonGenericTree<ToolsClassify> node = new CommonGenericTree<>(); - node.setKey("-1"); - node.setTitle("宸ュ叿鍒嗙被"); - node.setRField1(""); - node.setRField2(""); - node.setEntity(new ToolsClassify().setId("-1").setClassifyId("0").setTypeName("宸ュ叿鍒嗙被").setLeafFlag("2")); - list.add(node); if (CollectionUtils.isNotEmpty(toolsClassifyList)) { CommonGenericTree<ToolsClassify> tcNode; + CommonGenericTree<ToolsClassify> childNode; for (ToolsClassify tc : toolsClassifyList) { - if (StrUtils.isBlankOrNull(tc.getParentId()) || tc.getParentId().equals("-1")) { + ToolsClassify child = tc; + if (StrUtils.isBlankOrNull(tc.getParentId())) { tcNode = new CommonGenericTree<>(); tcNode.setKey(tc.getId()); tcNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName()); - tcNode.setParentId(node.getKey()); tcNode.setIcon(""); tcNode.setType(1); tcNode.setValue(tc.getId()); @@ -109,32 +104,23 @@ tcNode.setRField1(tc.getClassifyId()); tcNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId()); tcNode.setEntity(tc); - node.addChildren(tcNode); + list.add(tcNode); map.put(tc.getId(), tcNode); - } - } - CommonGenericTree<ToolsClassify> childNode; - for (ToolsClassify tc : toolsClassifyList) { - ToolsClassify child = tc; - if (map.containsKey(child.getParentId())) { - if (StrUtils.isBlankOrNull(tc.getParentId()) || tc.getParentId().equals("-1")) { - toolsClassify = tc; - } else { - tcNode = map.get(child.getParentId()); - childNode = new CommonGenericTree<>(); - childNode.setKey(tc.getId()); - childNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName()); - childNode.setParentId(tc.getParentId()); - childNode.setIcon(""); - childNode.setType(0); - childNode.setValue(tc.getId()); - childNode.setDisabled(CommonConstant.STATUS_0.equals(tc.getStatus()) ? true : false); - childNode.setRField1(tc.getClassifyId()); - childNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId()); - childNode.setEntity(tc); - tcNode.addChildren(childNode); - map.put(child.getId(), childNode); - } + } else { + tcNode = map.get(child.getParentId()); + childNode = new CommonGenericTree<>(); + childNode.setKey(tc.getId()); + childNode.setTitle(tc.getClassifyId() + "/" + tc.getTypeName()); + childNode.setParentId(tc.getParentId()); + childNode.setIcon(""); + childNode.setType(0); + childNode.setValue(tc.getId()); + childNode.setDisabled(CommonConstant.STATUS_0.equals(tc.getStatus()) ? true : false); + childNode.setRField1(tc.getClassifyId()); + childNode.setRField2(getBaseParent(tc.getId(), 0).getClassifyId()); + childNode.setEntity(tc); + tcNode.addChildren(childNode); + map.put(child.getId(), childNode); } } } diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodePrinterUtils.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodePrinterUtils.java new file mode 100644 index 0000000..bde5895 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodePrinterUtils.java @@ -0,0 +1,74 @@ +package org.jeecg.modules.tms.utils; + +import javax.print.*; +import javax.print.attribute.HashPrintRequestAttributeSet; +import javax.print.attribute.PrintRequestAttributeSet; +import java.awt.print.*; +import java.awt.image.BufferedImage; +import java.awt.*; + +public class QrCodePrinterUtils implements Printable { + + private final BufferedImage image; + + public QrCodePrinterUtils(BufferedImage image) { + this.image = image; + } + + /** + * 鎵撳嵃浜岀淮鐮� + */ + public void print() { + PrinterJob job = PrinterJob.getPrinterJob(); + job.setPrintable(this); + + // 寮瑰嚭鎵撳嵃瀵硅瘽妗嗭紙鍙�夛級 + if (job.printDialog()) { + try { + job.print(); + } catch (PrinterException e) { + System.err.println("鎵撳嵃澶辫触: " + e.getMessage()); + } + } + } + + /** + * 瀹炵幇 Printable 鎺ュ彛鐨勬墦鍗版柟娉� + */ + @Override + public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) { + if (pageIndex > 0) { + return NO_SUCH_PAGE; + } + + Graphics2D g2d = (Graphics2D) graphics; + g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); + + // 璁$畻灞呬腑鍧愭爣 + double pageWidth = pageFormat.getImageableWidth(); + double pageHeight = pageFormat.getImageableHeight(); + double imgWidth = image.getWidth(); + double imgHeight = image.getHeight(); + + double scale = Math.min(pageWidth / imgWidth, pageHeight / imgHeight); + g2d.scale(scale, scale); + g2d.drawImage(image, 0, 0, null); + + return PAGE_EXISTS; + } + + /** + * 浣跨敤榛樿鎵撳嵃鏈烘墦鍗帮紝涓嶅脊瀵硅瘽妗� + */ + public static void noDialogPrint(){ + BufferedImage qrImage = QrCodeUtils.generateQrCode("Silent Print", 300, 300); + QrCodePrinterUtils printer = new QrCodePrinterUtils(qrImage); + PrinterJob job = PrinterJob.getPrinterJob(); + job.setPrintable(printer); + try { + job.print(); + } catch (PrinterException e) { + e.printStackTrace(); + } + } +} diff --git a/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodeUtils.java b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodeUtils.java new file mode 100644 index 0000000..34b9c38 --- /dev/null +++ b/lxzn-module-tms/src/main/java/org/jeecg/modules/tms/utils/QrCodeUtils.java @@ -0,0 +1,121 @@ +package org.jeecg.modules.tms.utils; +import com.google.zxing.BarcodeFormat; +import com.google.zxing.EncodeHintType; +import com.google.zxing.client.j2se.MatrixToImageWriter; +import com.google.zxing.common.BitMatrix; +import com.google.zxing.qrcode.QRCodeWriter; + +import javax.print.*; +import javax.print.attribute.HashPrintRequestAttributeSet; +import javax.print.attribute.PrintRequestAttributeSet; +import javax.print.attribute.standard.Copies; +import javax.swing.*; +import java.awt.*; +import java.awt.image.BufferedImage; +import java.awt.print.*; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.util.HashMap; +import java.util.Map; + + +public class QrCodeUtils { + /** + * 鐢熸垚浜岀淮鐮佸浘鐗� + * @param content 浜岀淮鐮佸唴瀹� + * @param width 鍥剧墖瀹藉害 + * @param height 鍥剧墖楂樺害 + * @return BufferedImage 瀵硅薄 + */ + public static BufferedImage generateQrCode(String content, int width, int height) { + try { + Map<EncodeHintType, Object> hints = new HashMap<>(); + hints.put(EncodeHintType.CHARACTER_SET, "UTF-8"); + QRCodeWriter writer = new QRCodeWriter(); + BitMatrix bitMatrix = writer.encode(content, BarcodeFormat.QR_CODE, width, height, hints); + return MatrixToImageWriter.toBufferedImage(bitMatrix); + } catch (Exception e) { + throw new RuntimeException("鐢熸垚浜岀淮鐮佸け璐�", e); + } + } + + /** + * 鎵撳嵃浜岀淮鐮� + */ + public static void printBarcode(final BufferedImage image) { + PrinterJob job = PrinterJob.getPrinterJob(); + + // 璁剧疆鎵撳嵃椤甸潰 + PageFormat pf = job.defaultPage(); + Paper paper = pf.getPaper(); + + // 璁剧疆绾稿紶澶у皬鍖归厤鏉″舰鐮佸浘鍍� + paper.setSize(image.getWidth(), image.getHeight() + 50); + paper.setImageableArea(0, 0, image.getWidth(), image.getHeight() + 50); + pf.setPaper(paper); + + // 璁剧疆鎵撳嵃鍐呭 + job.setPrintable(new Printable() { + @Override + public int print(Graphics graphics, PageFormat pageFormat, int pageIndex) { + if (pageIndex > 0) { + return NO_SUCH_PAGE; + } + + Graphics2D g2d = (Graphics2D) graphics; + g2d.translate(pageFormat.getImageableX(), pageFormat.getImageableY()); + g2d.drawImage(image, 0, 0, null); + + return PAGE_EXISTS; + } + }, pf); + + // 鏄剧ず鎵撳嵃瀵硅瘽妗� + if (job.printDialog()) { + try { + job.print(); + JOptionPane.showMessageDialog(null, "鎵撳嵃浠诲姟宸插彂閫佸埌鎵撳嵃鏈�"); + } catch (PrinterException e) { + JOptionPane.showMessageDialog(null, "鎵撳嵃澶辫触: " + e.getMessage()); + e.printStackTrace(); + } + } + } + + + /** + * 榛樿鎵撳嵃鏈烘墦鍗颁簩缁寸爜 + */ + private static void printBarcode2(BufferedImage image) throws Exception { + // 1. 灏咮ufferedImage杞崲涓哄瓧鑺傛暟缁� + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + javax.imageio.ImageIO.write(image, "png", baos); + byte[] imageData = baos.toByteArray(); + + // 2. 鏌ユ壘鎵撳嵃鏈嶅姟 + PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null); + if (services.length == 0) { + throw new Exception("娌℃湁鎵惧埌鍙敤鐨勬墦鍗版満"); + } + + // 3. 閫夋嫨榛樿鎵撳嵃鏈�(涔熷彲浠ヨ鐢ㄦ埛閫夋嫨) + PrintService defaultPrinter = PrintServiceLookup.lookupDefaultPrintService(); + if (defaultPrinter == null) { + defaultPrinter = services[0]; // 浣跨敤绗竴涓壘鍒扮殑鎵撳嵃鏈� + } + + // 4. 鍒涘缓鎵撳嵃浣滀笟 + DocPrintJob job = defaultPrinter.createPrintJob(); + + // 5. 璁剧疆鎵撳嵃灞炴�� + PrintRequestAttributeSet attributes = new HashPrintRequestAttributeSet(); + attributes.add(new Copies(1)); // 鎵撳嵃浠芥暟 + + // 6. 鍒涘缓鎵撳嵃鏂囨。 + DocFlavor flavor = DocFlavor.INPUT_STREAM.PNG; + Doc doc = new SimpleDoc(new ByteArrayInputStream(imageData), flavor, null); + + // 7. 鎵ц鎵撳嵃 + job.print(doc, attributes); + } +} -- Gitblit v1.9.3