diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/api/ProcessRouteTaskApi.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/api/ProcessRouteTaskApi.java index 36085f94..3178cc1b 100644 --- a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/api/ProcessRouteTaskApi.java +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/api/ProcessRouteTaskApi.java @@ -90,4 +90,15 @@ public class ProcessRouteTaskApi extends BaseApi { } } + /** + * 删除和恢复工艺路线 + * @param rowId + * @param delFlag 1 删除 0 恢复 + * @return + */ + @GetMapping("updateDelFlag") + public ResultVO updateDelFlag(@RequestParam("rowId") Long rowId, @RequestParam("delFlag") Integer delFlag) { + return ResultVO.success(processRouteTaskService.updateDelFlag(rowId, delFlag)); + } + } diff --git a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskService.java b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskService.java index 0512d98c..13483b8f 100644 --- a/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskService.java +++ b/nflg_project_dev/nflg-technology/src/main/java/com/nflg/product/technology/service/ProcessRouteTaskService.java @@ -6,6 +6,7 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.TypeReference; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.RandomUtil; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -19,10 +20,13 @@ import com.nflg.product.technology.job.PBomFormalTreeTask; import com.nflg.product.technology.mapper.master.ProcessRouteTaskAssemblyMapper; import com.nflg.product.technology.mapper.master.ProcessRouteTaskMapper; import com.nflg.product.technology.mapper.master.ProcessRouteTaskProcessesMapper; +import com.nflg.product.technology.pojo.dto.sap.SapReqParams; +import com.nflg.product.technology.pojo.dto.sap.SapResult; import com.nflg.product.technology.pojo.entity.*; import com.nflg.product.technology.pojo.query.ProcessRouteTaskQuery; import com.nflg.product.technology.pojo.vo.*; import com.nflg.product.technology.util.BomUtil; +import lombok.extern.slf4j.Slf4j; import nflg.product.common.constant.STATE; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; @@ -46,6 +50,7 @@ import java.util.stream.Collectors; * @author 10001392 * @since 2024-11-24 */ +@Slf4j @Service public class ProcessRouteTaskService extends ServiceImpl { @@ -67,6 +72,8 @@ public class ProcessRouteTaskService extends ServiceImpl> redisTemplate; + @Resource + private SapService sapService; public IPage selectPageByCondition(ProcessRouteTaskQuery query) { //设置分页 @@ -543,4 +550,59 @@ public class ProcessRouteTaskService extends ServiceImpl selectPBomChildByParentRowId(List parentRowIdList) { return processRouteTaskMapper.selectPBomChildByParentRowId(parentRowIdList); } + + public Boolean updateDelFlag(Long rowId, Integer delFlag) { + ProcessRouteTaskEntity taskEntity = this.getById(rowId); + if (ObjectUtil.isEmpty(taskEntity)) { + throw new NflgBusinessException(STATE.ParamErr, "rowId=" + rowId + "对应的工艺路线不存在"); + } + SapReqParams sapReqParams = new SapReqParams(); + sapReqParams.setFunName("ZMDM_ROUTER_DEL"); + String flagX = ObjectUtil.isNotEmpty(delFlag) && delFlag == 1 ? "X" : ""; + Map inputParams = new HashMap<>(1); + inputParams.put("DELKZ", flagX); + sapReqParams.setInputParams(inputParams); + + List> valueMapList = new ArrayList<>(); + Map materialNoMap = new HashMap<>(); + materialNoMap.put("MATNR", taskEntity.getMaterialNo()); + materialNoMap.put("WERKS", taskEntity.getFactory()); + valueMapList.add(materialNoMap); + Map>> inputTables = new HashMap<>(1); + inputTables.put("HEAD", valueMapList); + sapReqParams.setInputTables(inputTables); + + log.info("SAP工艺路线删除恢复请求参数:{}", JSON.toJSONString(sapReqParams)); + SapResult sapResult = sapService.doSapFun(sapReqParams); + log.info("SAP工艺路线删除恢复返回数据:{}", JSON.toJSONString(sapResult)); + if (!sapResult.isSuccess()) { + throw new NflgBusinessException(STATE.ParamErr, "接口连接失败"); + } + Map exportMap = sapResult.getExportMap(); + if (CollUtil.isNotEmpty(exportMap) && !"S".equals(exportMap.get("E_TYPE"))) { + log.error("SAP工艺路线删除恢复失败: {}", exportMap.get("E_MSG")); + throw new NflgBusinessException(STATE.ParamErr, "从SAP获取生产订单失败:" + exportMap.get("E_MSG")); + } + + String updatedBy = SessionUtil.getUserCode(); + String updatedByName = SessionUtil.getRealName(); + Boolean delFlagBool = ObjectUtil.isNotEmpty(delFlag) && delFlag == 1; + taskEntity.setDelFlag(delFlagBool); + this.updateById(taskEntity); + processRouteTaskProcessesService.lambdaUpdate() + .set(ProcessRouteTaskProcessesEntity::getDelFlag, delFlagBool) + .set(ProcessRouteTaskProcessesEntity::getUpdatedBy, updatedBy) + .set(ProcessRouteTaskProcessesEntity::getUpdatedByName, updatedByName) + .set(ProcessRouteTaskProcessesEntity::getUpdatedTime, LocalDateTime.now()) + .eq(ProcessRouteTaskProcessesEntity::getTaskRowId, taskEntity.getRowId()) + .update(); + processRouteTaskAssemblyService.lambdaUpdate() + .set(ProcessRouteTaskAssemblyEntity::getDelFlag, delFlagBool) + .set(ProcessRouteTaskAssemblyEntity::getUpdatedBy, updatedBy) + .set(ProcessRouteTaskAssemblyEntity::getUpdatedByName, updatedByName) + .set(ProcessRouteTaskAssemblyEntity::getUpdatedTime, LocalDateTime.now()) + .eq(ProcessRouteTaskAssemblyEntity::getTaskRowId, taskEntity.getRowId()) + .update(); + return true; + } }