From bc596f3e1ad267a1b735acca1ffe7dd606a5afa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 21 Jun 2024 14:09:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=E4=B8=AD=E7=B1=BB=E3=80=81?= =?UTF-8?q?=E5=B0=8F=E7=B1=BB=E3=80=81=E7=BB=86=E5=88=86=E7=B1=BB=EF=BC=88?= =?UTF-8?q?=E8=8B=A5=E6=9C=89=EF=BC=89=EF=BC=8C=E5=88=86=E7=B1=BB=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=92=8C=E5=90=8D=E7=A7=B0=E9=83=BD=E4=BC=A0=E7=BB=99?= =?UTF-8?q?OA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../constant/MaterialMainGetTypeEnum.java | 28 ++++++++++++ .../constant/MaterialRelCategoryCodeEnum.java | 24 ++++++++++ .../bomnew/service/MaterialService.java | 44 +++++++++++++++++-- 3 files changed, 93 insertions(+), 3 deletions(-) create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MaterialMainGetTypeEnum.java create mode 100644 nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MaterialRelCategoryCodeEnum.java diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MaterialMainGetTypeEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MaterialMainGetTypeEnum.java new file mode 100644 index 00000000..7f2da6ba --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MaterialMainGetTypeEnum.java @@ -0,0 +1,28 @@ +package com.nflg.product.bomnew.constant; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author 曹鹏飞 + * @date 2024/6/21 13:57:30 + */ +@Getter +@AllArgsConstructor +public enum MaterialMainGetTypeEnum { + ZZ(1, "自制"), + WX(2, "外协"), + CG(3, "采购"); + + private final Integer code; + private final String description; + + public static MaterialMainGetTypeEnum findCodeByDescription(String description) { + for (MaterialMainGetTypeEnum valueEnum : MaterialMainGetTypeEnum.values()) { + if (valueEnum.getDescription().equals(description)) { + return valueEnum; + } + } + return null; + } +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MaterialRelCategoryCodeEnum.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MaterialRelCategoryCodeEnum.java new file mode 100644 index 00000000..406e092f --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/constant/MaterialRelCategoryCodeEnum.java @@ -0,0 +1,24 @@ +package com.nflg.product.bomnew.constant; + +import lombok.AllArgsConstructor; +import lombok.Getter; + +/** + * @author 曹鹏飞 + * @date 2024/6/21 13:56:32 + */ +@Getter +@AllArgsConstructor +public enum MaterialRelCategoryCodeEnum { + relCategoryCode_11("11", "采购物料"), + relCategoryCode_21("21", "制作物料"), + relCategoryCode_22("22", "制作物料-发货直发制作包、非图纸物料"), + relCategoryCode_31("31", "整机物料"), + relCategoryCode_41("41", "配件"), + relCategoryCode_51("51", "劳保办公用品"), + relCategoryCode_61("61", "服务"), + relCategoryCode_71("71", "工具工装"); + + private final String relCategoryCode; + private final String description; +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java index cf3a089c..a6d01d1e 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java @@ -15,6 +15,8 @@ import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.client.MaterialMainClient; import com.nflg.product.bomnew.config.NacosConfig; +import com.nflg.product.bomnew.constant.MaterialMainGetTypeEnum; +import com.nflg.product.bomnew.constant.MaterialRelCategoryCodeEnum; import com.nflg.product.bomnew.pojo.dto.*; import com.nflg.product.bomnew.pojo.entity.MaterialMainEntity; import com.nflg.product.bomnew.util.FlowUtil; @@ -34,7 +36,6 @@ import javax.annotation.Resource; import java.io.IOException; import java.time.LocalDateTime; import java.util.*; -import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; @Service @@ -328,14 +329,31 @@ public class MaterialService { material.put("MEINS", u.getMaterialUnit()); material.put("DUPLICATEITEMS", u.getReuseOfOnceState().equals(1) ? "2" : "1");// 是否一次性使用物料 0:否1:是 material.put("categoryTreeName", u.getCategoryNameTree()); - //流程类型 1|自制;2|外协;3|采购 - material.put("materialGetType","1"); + material.put("FWEIGHT", u.getMaterialWeight()); + if (StringUtils.isNotEmpty(relCategoryCode)) { + if (relCategoryCode.equals(MaterialRelCategoryCodeEnum.relCategoryCode_21.getRelCategoryCode()) || relCategoryCode.equals(MaterialRelCategoryCodeEnum.relCategoryCode_22.getRelCategoryCode())) { + material.put("materialGetType", String.valueOf(u.getMaterialGetType())); + } + + if (relCategoryCode.equals(MaterialRelCategoryCodeEnum.relCategoryCode_71.getRelCategoryCode())) { + if ("701301".equals(u.getMaterialCategoryCode())) { + material.put("materialGetType", String.valueOf(u.getMaterialGetType())); + } else if ("701303".equals(u.getMaterialCategoryCode())) { + // 701303 虽然按照采购形式申请,但是OA流程类型 强制按照 自制 + material.put("materialGetType", String.valueOf(MaterialMainGetTypeEnum.ZZ.getCode())); + } else { + material.put("materialGetType", String.valueOf(MaterialMainGetTypeEnum.CG.getCode())); + } + } + } if (StringUtils.isNotEmpty(String.valueOf(u.getUseOfYear()))) { material.put("USAGEYEAR", String.valueOf(u.getUseOfYear())); } material.put("picUrl", u.getPicUrl()); + // 中类、小类、细分类(若有),分类代码和名称都传给OA + handleCategoryCodeAndName(material, u); list.add(material); }); result.put("List", list); @@ -397,4 +415,24 @@ public class MaterialService { materialMainService.updateBatchById(entityList); } + private void handleCategoryCodeAndName(Map material, AddMaterialMainDTO materialMainVO) { + String categoryNameTree = materialMainVO.getCategoryNameTree(); + String[] trees = categoryNameTree.split("/"); + if (trees.length >= 4 && Objects.nonNull(materialMainVO.getFourthMaterialCategoryCode())) { + material.put("ThinTypeCode", materialMainVO.getFourthMaterialCategoryCode()); + // material.put("ThinTypeDes", trees[3]); + // 细分类可能也含/,所以用截取到末尾方式 + int startIndex = (trees[0] + "/" + trees[1] + "/" + trees[2] + "/").length(); + material.put("ThinTypeDes", categoryNameTree.substring(startIndex)); + } + if (trees.length >= 3 && Objects.nonNull(materialMainVO.getThirdMaterialCategoryCode())) { + material.put("SmallTypeCode", materialMainVO.getThirdMaterialCategoryCode()); + material.put("SmallTypeDes", trees[2]); + } + if (trees.length >= 2 && Objects.nonNull(materialMainVO.getSecondMaterialCategoryCode())) { + material.put("MiddleTypeCode", materialMainVO.getSecondMaterialCategoryCode()); + material.put("MiddleTypeDes", trees[1]); + } + material.put("ATTYPDES", trees[0]); + } } From 818564eaa36eb288d967a5dc83af04f9f85280a7 Mon Sep 17 00:00:00 2001 From: jing's Date: Fri, 21 Jun 2024 15:17:24 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E8=AE=BE=E5=A4=87=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../product/bomnew/excel/ExportDeviceHelper.java | 15 ++++++++++++++- .../mapper/master/OptionalEbomConfigMapper.xml | 4 ++-- 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/excel/ExportDeviceHelper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/excel/ExportDeviceHelper.java index 9cf460aa..054b2ebd 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/excel/ExportDeviceHelper.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/excel/ExportDeviceHelper.java @@ -1,5 +1,6 @@ package com.nflg.product.bomnew.excel; +import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.excel.EasyExcel; @@ -19,6 +20,7 @@ import com.alibaba.excel.write.metadata.style.WriteCellStyle; import com.alibaba.excel.write.metadata.style.WriteFont; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.nflg.product.bomnew.pojo.vo.*; +import com.nflg.product.bomnew.util.VUtils; import org.apache.poi.ss.usermodel.*; import com.alibaba.excel.write.merge.OnceAbsoluteMergeStrategy; import org.apache.poi.ss.util.CellRangeAddress; @@ -353,7 +355,8 @@ public class ExportDeviceHelper { public void buildList(List listTable, WriteSheet sheet, ExcelWriter writer, AtomicInteger tableNoCounting) { if (CollectionUtil.isEmpty(listTable)) { - return; + VUtils.isTure(true).throwMessage("设备下无数据"); + } List items = new ArrayList<>(); @@ -368,11 +371,21 @@ public class ExportDeviceHelper { List list2 = item1.getChild(); + if(CollUtil.isEmpty(list2)){ + continue; + } + for (OptionalEbomImportVO item2 : list2) { { String opChildName = item2.getOptionName(); String optionChildDrawingNo = item2.getOptionDrawingNo(); List list3 = item2.getChild(); + + if(CollUtil.isEmpty(list3)){ + continue; + } + + for (OptionalEbomImportChildVO item3 : list3) { ImportExcelField excelField = new ImportExcelField(); excelField.setCellFirst(StrUtil.format("{} {}",optionChildDrawingNo,opChildName)); diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml index 0ad9c8b1..ae0d9bd9 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/OptionalEbomConfigMapper.xml @@ -103,7 +103,7 @@ t1.choose_status, t2.choose_status as option_status from t_optional_ebom_config_r as t2 LEFT JOIN t_optional_ebom_import_child as t1 on t2.option_row_id=t1.row_id - where t1.is_enable=1 and t2.parent_row_id=#{rowId} + where t1.is_enable=1 and t1.is_del=0 and t2.parent_row_id=#{rowId} @@ -131,7 +131,7 @@ t1.choose_status, t2.choose_status as option_status from t_optional_ebom_config_r as t2 LEFT JOIN t_optional_ebom_import_child as t1 on t2.option_row_id=t1.row_id - where t1.is_enable=1 and t2.choose_status =1 and t2.parent_row_id=#{rowId} and t1.material_name!='无' + where t1.is_enable=1 and t1.is_del=0 and t2.choose_status =1 and t2.parent_row_id=#{rowId} and t1.material_name!='无' From 3905ac75bd6de94ebb1f10ebee1d09ac8841097e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9B=B9=E9=B9=8F=E9=A3=9E?= Date: Fri, 21 Jun 2024 15:43:18 +0800 Subject: [PATCH 3/3] =?UTF-8?q?feat:=20=E4=B8=AD=E7=B1=BB=E3=80=81?= =?UTF-8?q?=E5=B0=8F=E7=B1=BB=E3=80=81=E7=BB=86=E5=88=86=E7=B1=BB=EF=BC=88?= =?UTF-8?q?=E8=8B=A5=E6=9C=89=EF=BC=89=EF=BC=8C=E5=88=86=E7=B1=BB=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E5=92=8C=E5=90=8D=E7=A7=B0=E9=83=BD=E4=BC=A0=E7=BB=99?= =?UTF-8?q?OA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bomnew/service/MaterialService.java | 153 ++++++++++-------- 1 file changed, 88 insertions(+), 65 deletions(-) diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java index a6d01d1e..76bdab55 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/MaterialService.java @@ -18,6 +18,7 @@ import com.nflg.product.bomnew.config.NacosConfig; import com.nflg.product.bomnew.constant.MaterialMainGetTypeEnum; import com.nflg.product.bomnew.constant.MaterialRelCategoryCodeEnum; import com.nflg.product.bomnew.pojo.dto.*; +import com.nflg.product.bomnew.pojo.entity.MaterialCategoryEntity; import com.nflg.product.bomnew.pojo.entity.MaterialMainEntity; import com.nflg.product.bomnew.util.FlowUtil; import com.nflg.product.bomnew.util.HttpUtils; @@ -25,6 +26,7 @@ import com.nflg.product.bomnew.util.ListCommonUtil; import com.nflg.product.bomnew.util.VUtils; import lombok.extern.slf4j.Slf4j; import nflg.product.common.constant.STATE; +import nflg.product.common.dto.LoginUserInfoDTO; import nflg.product.common.vo.ResultVO; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Qualifier; @@ -36,6 +38,7 @@ import javax.annotation.Resource; import java.io.IOException; import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.CompletableFuture; import java.util.stream.Collectors; @Service @@ -52,6 +55,9 @@ public class MaterialService { @Qualifier("syncOAThreadPool") ThreadPoolTaskExecutor syncOAThreadPool; + @Resource + MaterialCategoryService materialCategoryService; + /** * 申请物料 * @@ -169,9 +175,12 @@ public class MaterialService { @Transactional(rollbackFor = Exception.class) //****************************************本地生成,不调主数据************************************************** - public Map batchAddMaterial(List mds){ + public Map batchAddMaterial(List mds, LoginUserInfoDTO userInfo) { List resultList=new ArrayList<>(); + Set categoryCodeList = mds.stream().map(AddVirtrualMaterialDTO::getMaterialCategoryCode).collect(Collectors.toSet()); + List categoryEntityList = materialCategoryService.lambdaQuery().in(MaterialCategoryEntity::getCategoryCode, categoryCodeList).list(); + List syncOaEnts=new ArrayList<>(); Map result = new HashMap<>(); for (AddVirtrualMaterialDTO md :mds) { @@ -183,14 +192,14 @@ public class MaterialService { ma.setMaterialName(md.getMaterialName()); ma.setMaterialDesc(md.getMaterialDesc()); ma.setMaterialCategoryCode(md.getMaterialCategoryCode()); - ma.setCreatedBy(SessionUtil.getUserCode()); + ma.setCreatedBy(userInfo.getUserCode()); ma.setCreatedTime(LocalDateTime.now()); - ma.setUpdatedBy(SessionUtil.getUserCode()); + ma.setUpdatedBy(userInfo.getUserCode()); ma.setUpdatedTime(LocalDateTime.now()); ma.setMaterialClass(0); - ma.setProcessState(0); - ma.setApplyUserCode(SessionUtil.getRealName()); - ma.setApplyDeptName(SessionUtil.getDepartName()); + // ma.setProcessState(0); + ma.setApplyUserCode(userInfo.getRealName()); + ma.setApplyDeptName(userInfo.getDepartName()); ma.setMaterialUnit("PC"); ma.setProcessState(10); if(StrUtil.isNotBlank(md.getProjectType())){ @@ -198,10 +207,21 @@ public class MaterialService { } resultList.add(ma); - AddMaterialMainDTO ent=new AddMaterialMainDTO(); - BeanUtil.copyProperties(ma,ent); + AddMaterialMainDTO ent = new AddMaterialMainDTO(); + BeanUtil.copyProperties(ma, ent); ent.setRelCategoryCode(relMaterialCategory); ent.setReuseOfOnceState(0); + + Optional optional = categoryEntityList.stream().filter(item -> item.getCategoryCode().equals(md.getMaterialCategoryCode())).findFirst(); + optional.ifPresent(item -> { + List parentRowIdList = Arrays.stream(item.getParentTree().split(",")).collect(Collectors.toList()); + List list = materialCategoryService.lambdaQuery().in(MaterialCategoryEntity::getRowId, parentRowIdList).list(); + List categoryNameList = list.stream().map(MaterialCategoryEntity::getCategoryName).collect(Collectors.toList()); + String categoryTreeName = String.join("/", categoryNameList); + ent.setCategoryNameTree(categoryTreeName); + ent.setRelCategoryCode(item.getRelCategoryCode()); + }); + syncOaEnts.add(ent); md.setMaterialNo(ma.getMaterialNo()); @@ -210,11 +230,14 @@ public class MaterialService { materialMainService.saveOrUpdateBatch(resultList); initCategoryInfo(syncOaEnts); //同步OA - sysnToOa(syncOaEnts); -// CompletableFuture.runAsync(() -> sysnToOa(syncOaEnts),syncOAThreadPool); + CompletableFuture.runAsync(() -> sysnToOa(syncOaEnts, userInfo), syncOAThreadPool); return result; } + public Map batchAddMaterial(List mds) { + return batchAddMaterial(mds, SessionUtil.getUser()); + } + private void checkMaterial(List mds){ List noCateGoryCodes = mds.stream().filter(u -> StrUtil.isBlank(u.getMaterialCategoryCode())).collect(Collectors.toList()); VUtils.isTure(CollUtil.isNotEmpty(noCateGoryCodes)).throwMessage("最小物料类别不能为空"); @@ -283,7 +306,7 @@ public class MaterialService { * @param materialCategoryCode * @return */ - public String generateMaterialNo(String materialCategoryCode ,String preCategory) { + public synchronized String generateMaterialNo(String materialCategoryCode, String preCategory) { // String preCategory =materialMainService.getBaseMapper().getMaterialCategory(materialCategoryCode); if (StrUtil.isBlank(preCategory)) { throw new NflgBusinessException(STATE.ParamErr, materialCategoryCode.concat("未设置对应分类")); @@ -303,63 +326,63 @@ public class MaterialService { * @param data */ @Transactional(rollbackFor = Exception.class) - public void sysnToOa(List data) { - Map result = getHttpMap(); + public void sysnToOa(List data, LoginUserInfoDTO userInfo) { + try { + Map result = getHttpMap(userInfo.getUserCode()); - List> list = new ArrayList<>(); - data.forEach(u -> { - Map material = new LinkedHashMap<>(); + List> list = new ArrayList<>(); + data.forEach(u -> { + Map material = new LinkedHashMap<>(); - String relCategoryCode = u.getRelCategoryCode(); - material.put("MATNR", u.getMaterialNo()); - material.put("MAKTX", StrUtil.isNotBlank(u.getShortMaterialDesc()) ? u.getShortMaterialDesc() : u.getMaterialDesc()); - material.put("dl", u.getSecondMaterialCategoryCode()); - material.put("xl", u.getThirdMaterialCategoryCode()); - material.put("xfl", u.getFourthMaterialCategoryCode()); - material.put("xl_copy", u.getThirdMaterialCategoryCode()); - material.put("MATKL", u.getThirdMaterialCategoryCode()); - material.put("MNAME", u.getMaterialName()); - material.put("MNUMB", u.getDrawingNo()); - material.put("MTEXT", u.getMaterialTexture()); - material.put("MSPEC", u.getMaterialSpecifications()); - material.put("MREMA", u.getMaterialDesc()); - material.put("MMANU", u.getMaterialBrand()); - material.put("ATTYP", relCategoryCode); - material.put("ERNAM", SessionUtil.getUserCode()); - material.put("MEINS", u.getMaterialUnit()); - material.put("DUPLICATEITEMS", u.getReuseOfOnceState().equals(1) ? "2" : "1");// 是否一次性使用物料 0:否1:是 - material.put("categoryTreeName", u.getCategoryNameTree()); - material.put("FWEIGHT", u.getMaterialWeight()); - if (StringUtils.isNotEmpty(relCategoryCode)) { - if (relCategoryCode.equals(MaterialRelCategoryCodeEnum.relCategoryCode_21.getRelCategoryCode()) || relCategoryCode.equals(MaterialRelCategoryCodeEnum.relCategoryCode_22.getRelCategoryCode())) { - material.put("materialGetType", String.valueOf(u.getMaterialGetType())); - } - - if (relCategoryCode.equals(MaterialRelCategoryCodeEnum.relCategoryCode_71.getRelCategoryCode())) { - if ("701301".equals(u.getMaterialCategoryCode())) { + String relCategoryCode = u.getRelCategoryCode(); + material.put("MATNR", u.getMaterialNo()); + material.put("MAKTX", StrUtil.isNotBlank(u.getShortMaterialDesc()) ? u.getShortMaterialDesc() : u.getMaterialDesc()); + material.put("dl", u.getSecondMaterialCategoryCode()); + material.put("xl", u.getThirdMaterialCategoryCode()); + material.put("xfl", u.getFourthMaterialCategoryCode()); + material.put("xl_copy", u.getThirdMaterialCategoryCode()); + material.put("MATKL", u.getThirdMaterialCategoryCode()); + material.put("MNAME", u.getMaterialName()); + material.put("MNUMB", u.getDrawingNo()); + material.put("MTEXT", u.getMaterialTexture()); + material.put("MSPEC", u.getMaterialSpecifications()); + material.put("MREMA", u.getMaterialDesc()); + material.put("MMANU", u.getMaterialBrand()); + material.put("ATTYP", relCategoryCode); + material.put("ERNAM", userInfo.getUserCode()); + material.put("MEINS", u.getMaterialUnit()); + material.put("DUPLICATEITEMS", u.getReuseOfOnceState().equals(1) ? "2" : "1");// 是否一次性使用物料 0:否1:是 + material.put("categoryTreeName", u.getCategoryNameTree()); + material.put("FWEIGHT", u.getMaterialWeight()); + if (StringUtils.isNotEmpty(relCategoryCode)) { + if (relCategoryCode.equals(MaterialRelCategoryCodeEnum.relCategoryCode_21.getRelCategoryCode()) || relCategoryCode.equals(MaterialRelCategoryCodeEnum.relCategoryCode_22.getRelCategoryCode())) { material.put("materialGetType", String.valueOf(u.getMaterialGetType())); - } else if ("701303".equals(u.getMaterialCategoryCode())) { - // 701303 虽然按照采购形式申请,但是OA流程类型 强制按照 自制 - material.put("materialGetType", String.valueOf(MaterialMainGetTypeEnum.ZZ.getCode())); - } else { - material.put("materialGetType", String.valueOf(MaterialMainGetTypeEnum.CG.getCode())); + } + + if (relCategoryCode.equals(MaterialRelCategoryCodeEnum.relCategoryCode_71.getRelCategoryCode())) { + if ("701301".equals(u.getMaterialCategoryCode())) { + material.put("materialGetType", String.valueOf(u.getMaterialGetType())); + } else if ("701303".equals(u.getMaterialCategoryCode())) { + // 701303 虽然按照采购形式申请,但是OA流程类型 强制按照 自制 + material.put("materialGetType", String.valueOf(MaterialMainGetTypeEnum.ZZ.getCode())); + } else { + material.put("materialGetType", String.valueOf(MaterialMainGetTypeEnum.CG.getCode())); + } } } - } - if (StringUtils.isNotEmpty(String.valueOf(u.getUseOfYear()))) { - material.put("USAGEYEAR", String.valueOf(u.getUseOfYear())); - } + if (StringUtils.isNotEmpty(String.valueOf(u.getUseOfYear()))) { + material.put("USAGEYEAR", String.valueOf(u.getUseOfYear())); + } - material.put("picUrl", u.getPicUrl()); - // 中类、小类、细分类(若有),分类代码和名称都传给OA - handleCategoryCodeAndName(material, u); - list.add(material); - }); - result.put("List", list); - log.info("物料申请-JSON:" + JSONArray.toJSONString(list)); - HttpUtils httpUtils = new HttpUtils(); - try { + material.put("picUrl", u.getPicUrl()); + // 中类、小类、细分类(若有),分类代码和名称都传给OA + handleCategoryCodeAndName(material, u); + list.add(material); + }); + result.put("List", list); + log.info("物料申请-JSON:" + JSONArray.toJSONString(list)); + HttpUtils httpUtils = new HttpUtils(); String url = NacosConfig.getNacosConfig().getOaUrl(); String reqResult = httpUtils.doPost(url, JSON.toJSONString(result)); JSONObject jsonObject = JSONObject.parseObject(reqResult); @@ -374,16 +397,16 @@ public class MaterialService { message = StrUtil.isNotBlank(message) ? message : ""; throw new NflgBusinessException(STATE.BusinessError, "同步OA出错".concat(message)); } -// return null; + // return null; } catch (Exception ex) { - log.error("同步OA出错",ex); + log.error("同步OA出错", ex); throw new NflgBusinessException(STATE.BusinessError, "同步OA出错" + ex.getMessage()); } } - public Map getHttpMap() { + public Map getHttpMap(String userCode) { Map result = new LinkedHashMap<>(); - result.put("userid", SessionUtil.getUserCode()); + result.put("userid", userCode); result.put("summary", NacosConfig.getNacosConfig().getSummary()); return result; }