diff --git a/src/main/java/mjkf/xinke/main/service/MaterialService.java b/src/main/java/mjkf/xinke/main/service/MaterialService.java index 9d3aec8..727e9a7 100644 --- a/src/main/java/mjkf/xinke/main/service/MaterialService.java +++ b/src/main/java/mjkf/xinke/main/service/MaterialService.java @@ -1,5 +1,6 @@ package mjkf.xinke.main.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import mjkf.xinke.main.model.db.Material; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -7,6 +8,7 @@ import org.springframework.stereotype.Service; @Service public class MaterialService extends ServiceImpl, Material> { + @Deprecated public String createNewMaterialId(String parentId, String maxBrotherId) { String prefix; String suffix; @@ -41,5 +43,11 @@ public class MaterialService extends ServiceImpl, Material> return prefix + String.format("%02d", current) + suffix; } + + public Material getBykey(String code) { + var query = new LambdaQueryWrapper(); + query.eq(Material::getCode, code); + return this.getOne(query, false); + } } diff --git a/src/main/resources/_sql/init/mysql/v0.8.sql b/src/main/resources/_sql/init/mysql/v0.8.sql new file mode 100644 index 0000000..7042df4 --- /dev/null +++ b/src/main/resources/_sql/init/mysql/v0.8.sql @@ -0,0 +1,81 @@ +-- 添加材料表排序字段 +ALTER TABLE MATERIAL ADD COLUMN SORT INT DEFAULT 0 COMMENT '排序'; + +-- 添加材料表完整编码字段 +ALTER TABLE MATERIAL ADD COLUMN CODE varchar(20) COMMENT '材料编码'; + + +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2001001', '2001', '20', '01', '001', null, 'HPB300钢筋', 't', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2001001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2001002', '2001', '20', '01', '002', null, 'HRB400钢筋', 't', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2001002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2001003', '2001', '20', '01', '003', null, '冷轧带肋钢筋网', 't', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2001003'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2001006', '2001', '20', '01', '006', null, '预应力粗钢筋', 't', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2001006'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2001008', '2001', '20', '01', '008', null, '钢绞线', 't', '普通,无松弛,Φ15.24', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2001008'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2001013', '2001', '20', '01', '013', null, '高强钢丝', 't', 'Φ5mm预应力用碳素钢丝', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2001013'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2001019', '2001', '20', '01', '019', null, '钢丝绳', 't', '股丝6-7×19mm(非镀锌)', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2001019'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2001025', '2001', '20', '01', '025', null, '钢板网', 'm2', '网眼尺寸25 * 76mm', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2001025'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2001026', '2001', '20', '01', '026', null, '铁丝编织网', 'm2', '镀锌铁丝(包括加强钢丝、花蓝螺丝)', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2001026'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003004', '2003', '20', '03', '004', null, '型钢', 't', '工字钢, 角钢 Ⅰ20', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003004'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003005', '2003', '20', '03', '005', null, '钢板', 't', 'A3, δ=5~40mm', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003005'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003005001', '2003005', '20', '03', '005', '001', '钢板', 't', 'Q355', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003005001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003006', '2003', '20', '03', '006', null, '圆钢', 't', 'Φ40mm', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003006'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003007', '2003', '20', '03', '007', null, '钢轨', 't', '43-50kg / m', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003007'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003008', '2003', '20', '03', '008', null, '钢管', 't', '无缝钢管', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003008'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003009', '2003', '20', '03', '009', null, '镀锌钢管', 't', '外径15-200mm, 壁厚2.75-4.5mm', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003009'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003012', '2003', '20', '03', '012', null, '镀锌钢板', 't', '厚度1-3mm', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003012'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003015', '2003', '20', '03', '015', null, '钢管立柱', 't', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003015'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003016', '2003', '20', '03', '016', null, '型钢立柱', 't', '镀锌(包括斜撑)', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003016'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003017001', '2003017', '20', '03', '017', '001', '波形钢板(双波)', 't', '双波 镀锌(包括端头板、撑架)', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003017001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003017002', '2003017', '20', '03', '017', '002', '波形钢板(三波)', 't', '三波 镀锌(包括端头板、撑架)', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003017002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003021', '2003', '20', '03', '021', null, '钢管桩', 't', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003021'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2003022', '2003', '20', '03', '022', null, '钢护筒', 't', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2003022'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2004004', '2004', '20', '04', '004', null, '镀锌无缝钢管', 't', '热浸镀锌,外径152以上', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2004004'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2005002', '2005', '20', '05', '002', null, '不锈钢板', 'kg', '厚度2-3mm', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2005002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2009028', '2009', '20', '09', '028', null, '铁件', 'kg', '包括扒钉、螺栓、拉杆、夹板', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2009028'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('2009033', '2009', '20', '09', '033', null, '铸铁管', 'kg', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '2009033'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('3001001001', '3001001', '30', '01', '001', '001', '石油沥青', 't', '进口', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '3001001001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('3001001002', '3001001', '30', '01', '001', '002', '石油沥青', 't', '国产', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '3001001002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('3001002001', '3001002', '30', '01', '002', '001', '改性石油沥青', 't', '国产', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '3001002001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('3001002002', '3001002', '30', '01', '002', '002', '改性石油沥青', 't', '进口', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '3001002002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('3003001', '3003', '30', '03', '001', null, '重油', 'kg', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '3003001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('3003002001', '3003002', '30', '03', '002', '001', '汽油', 'kg', '89#', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '3003002001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('3003002002', '3003002', '30', '03', '002', '002', '汽油', 'kg', '92#', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '3003002002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('3003003', '3003', '30', '03', '003', null, '柴油', 'kg', '0#', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '3003003'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('4003001001', '4003001', '40', '03', '001', '001', '杉原木', 'm3', '二等材长4m, Φ14-18cm', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '4003001001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('4003001002', '4003001', '40', '03', '001', '002', '松原木', 'm3', '二等材Φ22-28cm长4-5m', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '4003001002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('4003002001', '4003002', '40', '03', '002', '001', '锯材', 'm3', '杉板料', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '4003002001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('4003002002', '4003002', '40', '03', '002', '002', '锯材', 'm3', '松板料', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '4003002002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('4005001', '4005', '40', '05', '001', null, '毛竹', '根', 'Φ=60mm, L≥6m;Φ=75~90mm, L≥6m', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '4005001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5005001', '5005', '50', '05', '001', null, '乳化炸药', 'kg', '', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5005001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5005002', '5005', '50', '05', '002', null, '硝铵炸药', 'kg', '1号、2号岩石硝铵炸药', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5005002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5005003', '5005', '50', '05', '003', null, '导火线', 'm', '120s/m', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5005003'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5005006', '5005', '50', '05', '006', null, '普通雷管', '个', '8号钢管', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5005006'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5005007', '5005', '50', '05', '007', null, '电雷管', '个', '6号瞬发电雷管, 带脚线1.5m', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5005007'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5005009', '5005', '50', '05', '009', null, '导爆索', 'm', '爆速6000~7000m/s', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5005009'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5006001', '5006', '50', '06', '001', null, '工业数码电子雷管', '个', '带电子芯片,带脚线7m', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5006001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5006002', '5006', '50', '06', '002', null, '引爆母线', 'm', '铜线φ0.5mm', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5006002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5007003001', '5007003', '50', '07', '003', '001', '土工格栅', 'm2', '宽6m,聚乙烯单向、双向拉伸、聚丙烯双向、玻璃纤维', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5007003001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5009002', '5009', '50', '09', '002', null, '油漆', 'kg', '普通调和漆', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5009002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5506001', '5506', '55', '06', '001', null, '路缘石', 'm3', '花岗岩', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5506001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5509001', '5509', '55', '09', '001', null, '32.5级水泥', 't', '32.5', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5509001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5509002', '5509', '55', '09', '002', null, '42.5级水泥', 't', '32.5', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5509002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('5509003', '5509', '55', '09', '003', null, '52.5级水泥', 't', '52.5', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '5509003'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6001002', '6001', '60', '01', '002', null, '四氟板式橡胶组合支座', 'dm3', 'GJZF4系列、GYZF4系列', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6001002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6001003', '6001', '60', '01', '003', null, '板式橡胶支座', 'dm3', 'GJZ系列、GYZ系列', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6001003'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6001059', '6001', '60', '01', '059', null, '盆式橡胶支座', '套', '2500KN(双向)', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6001059'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6001071', '6001', '60', '01', '071', null, '盆式橡胶支座', '套', '5000KN(双向)', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6001071'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6001080', '6001', '60', '01', '080', null, '盆式橡胶支座', '套', '8000KN(双向)', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6001080'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6001086', '6001', '60', '01', '086', null, '盆式橡胶支座', '套', '10000KN(双向)', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6001086'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6001089', '6001', '60', '01', '089', null, '盆式橡胶支座', '套', '双向12500KN', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6001089'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6001092', '6001', '60', '01', '092', null, '盆式橡胶支座', '套', '双向15000KN', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6001092'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6002001', '6002', '60', '02', '001', null, '橡胶护舷', '套', 'H300×L1000', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6002001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6002002', '6002', '60', '02', '002', null, '橡胶护舷', '套', 'H300×L1500', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6002002'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6002003', '6002', '60', '02', '003', null, '橡胶护舷', '套', 'H300×L2000', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6002003'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6002004', '6002', '60', '02', '004', null, '鼓型橡胶护舷', '套', 'SC1000H', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6002004'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6002005', '6002', '60', '02', '005', null, '鼓型橡胶护舷', '套', 'SC1600H', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6002005'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6002006', '6002', '60', '02', '006', null, '鼓型橡胶护舷', '套', 'SC2000H', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6002006'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6003001', '6003', '60', '03', '001', null, '模数式伸缩缝', '套', '80型', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6003001'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6003003', '6003', '60', '03', '003', null, '模数式伸缩缝', '套', '160型', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6003003'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6005005', '6005', '60', '05', '005', null, '钢绞线群锚(3孔)', '套', '包括夹片、锚垫板和螺旋筋', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6005005'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6005009', '6005', '60', '05', '009', null, '钢绞线群锚(7孔)', '套', '包括夹片、锚垫板和螺旋筋', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6005009'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6005015', '6005', '60', '05', '015', null, '钢绞线群锚(15孔)', '套', '包括夹片、锚垫板和螺旋筋', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6005015'); +INSERT INTO material_manage.material (ID, PARENT_ID, CATEGORY1, CATEGORY2, CATEGORY3, CATEGORY4, NAME, UNIT, SPEC, TAX, IS_BUILTIN, TYPE, IS_TREE, update_user_id, update_user_name, update_time, create_user_id, create_user_name, create_time, delete_user_id, delete_user_name, delete_time, SORT, CODE) VALUES ('6007002', '6007', '60', '07', '002', null, '铝合金标志', 't', '纯铝板1100', null, 1, null, null, null, null, null, null, null, '2025-02-21 11:03:21', null, null, null, 0, '6007002'); \ No newline at end of file diff --git a/src/test/java/mjkf/xinke/MaterialDataMigration.java b/src/test/java/mjkf/xinke/MaterialDataMigration.java new file mode 100644 index 0000000..0cb947c --- /dev/null +++ b/src/test/java/mjkf/xinke/MaterialDataMigration.java @@ -0,0 +1,93 @@ +package mjkf.xinke; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import mjkf.xinke.main.model.db.Material; +import mjkf.xinke.main.model.db.PriceResult; +import mjkf.xinke.main.service.MaterialService; +import mjkf.xinke.main.service.PriceResultService; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +@SpringBootTest(classes = Application.class) +@RunWith(SpringJUnit4ClassRunner.class) +public class MaterialDataMigration { + + @Resource + private PriceResultService priceResultService; + + @Resource + private MaterialService materialService; + + @Test + public void migrateMaterialData() { + // 1. 获取趋势表数据,按材料编号去重 + var query = new LambdaQueryWrapper(); + query.select(PriceResult::getMaterialId, PriceResult::getName, PriceResult::getSpec, PriceResult::getUnit); + query.groupBy(PriceResult::getMaterialId, PriceResult::getName, PriceResult::getSpec, PriceResult::getUnit); + List priceResults = priceResultService.list(query); + + // 2. 获取已存在的材料数据 + List materialIds = priceResults.stream().map(PriceResult::getMaterialId).collect(Collectors.toList()); + + var materialQuery = new LambdaQueryWrapper(); + materialQuery.in(Material::getId, materialIds); + Map existingMaterials = materialService.list(materialQuery) + .stream() + .collect(Collectors.toMap(Material::getId, m -> m)); + + // 3. 转换为材料数据,只处理不存在的材料 + List materialsToSave = priceResults.stream() + .filter(pr -> !existingMaterials.containsKey(pr.getMaterialId())) + .map(pr -> { + Material material = new Material(); + material.setId(pr.getMaterialId()); + material.setName(pr.getName()); + material.setSpec(pr.getSpec()); + material.setUnit(pr.getUnit()); + material.setIsBuiltin(1); // 设置为内建类型 + material.setCreateTime(LocalDateTime.now()); + + // 根据材料ID解析分类信息 + String id = pr.getMaterialId(); + if (id != null && id.length() >= 7) { + material.setCategory1(id.substring(0, 2)); + material.setCategory2(id.substring(2, 4)); + material.setCategory3(id.substring(4, 7)); + if (id.length() >= 10) { + material.setCategory4(id.substring(7, 10)); + } + // 设置父ID + material.setParentId(id.length() >= 10 ? id.substring(0, 7) : id.substring(0, 4)); + } + + // 设置材料编码 + material.setCode(id); + + return material; + }).collect(Collectors.toList()); + + // 4. 批量保存新增的材料数据 + for (var materialToSave: materialsToSave) { + var result = materialService.getBykey(materialToSave.getCode()); + if (ObjectUtil.isEmpty(result)) { + materialService.save(materialToSave); + } else { + BeanUtil.copyProperties(materialToSave, result, "id"); + materialService.updateById(result); + } + } + System.out.println("迁移完成,新增 " + materialsToSave.size() + " 条数据"); + + System.out.println("现有材料总数:" + (existingMaterials.size() + materialsToSave.size())); + } +} \ No newline at end of file