diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java index 296dcaa..7a34af5 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/basedata/service/impl/MaterialbaseServiceImpl.java @@ -39,6 +39,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.stream.Collectors; /** * @author zhouz @@ -261,35 +262,29 @@ public class MaterialbaseServiceImpl implements MaterialbaseService { List sheets = excelReader.excelExecutor().sheetList(); WQLObject materialTable = WQLObject.getWQLObject("md_me_materialbase"); + List material_codes = materialTable.query().getResultJSONArray(0) + .stream() + .map(o -> ((JSONObject) o).getString("material_code")) + .collect(Collectors.toList()); JSONObject material = new JSONObject(); - Long userId = SecurityUtils.getCurrentUserId(); - String nickName = SecurityUtils.getCurrentNickName(); - String now = DateUtil.now(); + material.put("is_used", '1'); + material.put("is_delete", '0'); + CommonUtils.addCommonColum(material); for (ReadSheet sheet : sheets) { List> materials = EasyExcel.read(file).sheet(sheet.getSheetNo()).doReadSync(); for (Map materialMap : materials) { - material.put("material_id", IdUtil.getSnowflake(1L, 1L).nextId()); String material_code = materialMap.get(1); material.put("material_code", material_code); material.put("material_name", materialMap.get(2)); material.put("base_unit", materialMap.get(3)); material.put("pack_qty", materialMap.get(4) == null ? 0 : Double.parseDouble(materialMap.get(4))); - - material.put("is_used", '1'); - material.put("is_delete", '0'); - if (ObjectUtil.isNotEmpty(materialTable.query("material_code = '" + material_code + "'").uniqueResult(0))) { - material.put("update_optid", userId); - material.put("update_optname", nickName); - material.put("update_time", now); - materialTable.update(material); + if (material_codes.contains(material_code)) { + material.remove("material_id"); + materialTable.update(material, "material_code = '" + material_code + "'"); } else { - material.put("create_id", userId); - material.put("create_name", nickName); - material.put("create_time", now); - material.put("update_optid", userId); - material.put("update_optname", nickName); - material.put("update_time", now); + material.put("material_id", IdUtil.getSnowflake(1L, 1L).nextId()); + material_codes.add(material_code); materialTable.insert(material); } }