diff --git a/nflg_project_dev/nflg-bom-new/pom.xml b/nflg_project_dev/nflg-bom-new/pom.xml index 011f55f4..cd61d50b 100644 --- a/nflg_project_dev/nflg-bom-new/pom.xml +++ b/nflg_project_dev/nflg-bom-new/pom.xml @@ -53,7 +53,11 @@ eec ${eec.version} - + + io.github.mouzt + bizlog-sdk + 3.0.6 + diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/BomnewApplication.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/BomnewApplication.java index 30ab5bc9..ab7f98c6 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/BomnewApplication.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/BomnewApplication.java @@ -1,5 +1,6 @@ package com.nflg; +import com.mzt.logapi.starter.annotation.EnableLogRecord; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @@ -20,6 +21,7 @@ import java.util.TimeZone; @EnableDiscoveryClient @EnableScheduling @EnableFeignClients +@EnableLogRecord(tenant = "com.nflg") public class BomnewApplication { public static void main(String[] args) { diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java index f0d03b43..15ac993b 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/EbomApi.java @@ -2,24 +2,21 @@ package com.nflg.product.bomnew.api.user; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; -import cn.hutool.core.convert.Convert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.ImmutableList; +import com.mzt.logapi.context.LogRecordContext; +import com.mzt.logapi.starter.annotation.LogRecord; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.bomnew.pojo.dto.*; -import com.nflg.product.bomnew.pojo.entity.BomNewEbomParentEntity; import com.nflg.product.bomnew.pojo.query.BomNewEbomMaterialQuery; import com.nflg.product.bomnew.pojo.query.BomNewEbomParentQuery; -import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; -import com.nflg.product.bomnew.pojo.vo.*; +import com.nflg.product.bomnew.pojo.vo.BomNewEbomEditDetailVO; +import com.nflg.product.bomnew.pojo.vo.BomNewEbomParentVO; +import com.nflg.product.bomnew.pojo.vo.BomNewEbomUpgradeChangeVO; import com.nflg.product.bomnew.service.*; -import com.nflg.product.bomnew.service.cache.MaterialMateCache; -import com.nflg.product.bomnew.service.domain.EBom.VirtualPackageBase; -import com.nflg.product.bomnew.service.domain.EBom.VirtualPackageFor31; import com.nflg.product.bomnew.util.EecExcelUtil; -import com.nflg.product.bomnew.util.TreeNode; import com.nflg.product.bomnew.util.VUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -34,12 +31,9 @@ import org.ttzero.excel.entity.Workbook; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.IOException; -import java.io.UnsupportedEncodingException; -import java.sql.Struct; import java.util.List; import java.util.Objects; import java.util.concurrent.ExecutionException; -import java.util.stream.Collectors; /** @@ -116,8 +110,11 @@ public class EbomApi extends BaseApi { @PostMapping("projectTypeInit") @ApiOperation("项目类别自动赋值") + @LogRecord(success = "项目类别自动赋值:物料编码:{{#bom.materialNo}} 版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", + bizNo = "{{#bomRowIds.toString()}}" ,type = "项目类别自动赋值") public ResultVO projectTypeInit(@RequestBody List bomRowIds) throws ExecutionException, InterruptedException { VUtils.isTure(CollUtil.isEmpty(bomRowIds)).throwMessage("请选择要自动赋值的行"); + bomNewEbomParentService.projectTypeInit(bomRowIds); return ResultVO.success(true); @@ -125,6 +122,8 @@ public class EbomApi extends BaseApi { @PostMapping("generateVirtualPackage") @ApiOperation("生成虚拟包") + @LogRecord(success = "生成虚拟包:物料编码:{{#bom.materialNo}} 版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", + bizNo = "{{#paramDto.bomRowId}}" ,type = "生成虚拟包") public ResultVO generateVirtualPackage(@RequestBody VirtualPackageParamDto paramDto) { VUtils.isTure(CollUtil.isEmpty(paramDto.getVirtualPackageValue())).throwMessage("请选择要生成的虚拟包"); @@ -141,6 +140,8 @@ public class EbomApi extends BaseApi { @PostMapping("convertToPBom") @ApiOperation("转PBom") + @LogRecord(success = "转PBom:物料编码:{{#bom.materialNo}} 版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", + bizNo = "{{#paramDto.bomRowIds.toString()}}" ,type = "转PBom") public ResultVO convertToPBom(@RequestBody EBomToPBomParamDTO paramDto) throws ExecutionException, InterruptedException { VUtils.isTure(CollUtil.isEmpty(paramDto.getBomRowIds())).throwMessage("请选择要转换的物料"); VUtils.isTure(CollUtil.isEmpty(paramDto.getFacCodes())).throwMessage("请选择要转换的工厂"); @@ -155,6 +156,8 @@ public class EbomApi extends BaseApi { @PostMapping("upgradeChanges") @ApiOperation("发起变更") + @LogRecord(success = "发起变更:物料编码:{{#bom.materialNo}} 版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", + bizNo = "{{#param.bomRowIds.toString()}}" ,type = "发起变更") public ResultVO upgradeChanges(@RequestBody EBomUpgradeChangesParamDTO param) { VUtils.isTure(CollUtil.isEmpty(param.getBomRowIds())).throwMessage("请选择要发起变更的物料"); bomNewEbomParentService.upgradeChanges(param); @@ -165,6 +168,8 @@ public class EbomApi extends BaseApi { @PostMapping("exportBom") @ApiOperation("工作明细导出") + @LogRecord(success = "Ebom-工作明细导出,操作结果:{{#_ret}}", bizNo = "", + extra = "{{#bomRowIds.toString()}}" ,type = "Ebom-工作明细导出") public void exportBom(@RequestBody List bomRowIds, HttpServletResponse response) throws IOException { VUtils.isTure(CollUtil.isEmpty(bomRowIds)).throwMessage("请选择要导出的物料行"); bomNewEbomParentService.exportBom(bomRowIds, response); @@ -172,6 +177,8 @@ public class EbomApi extends BaseApi { @PostMapping("editExportBom") @ApiOperation("编辑导出") + @LogRecord(success = "Ebom-编辑导出,操作结果:{{#_ret}}", bizNo = "", + extra = "{{#list.toString()}}" ,type = "Ebom-编辑导出") public void editExportBom(@RequestBody List list, HttpServletResponse response) throws IOException { VUtils.isTure(CollectionUtil.isEmpty(list)).throwMessage("请选择要导出的物料行"); bomNewEbomParentService.editExportBom(list, response); @@ -242,6 +249,8 @@ public class EbomApi extends BaseApi { @PostMapping("revertDesign") @ApiOperation("退回到设计") + @LogRecord(success = "Ebom-退回到设计:{{#log}},操作结果:{{#_ret}}", bizNo = "", + extra = "{{#dto.rowIdList.toString()}}" ,type = "Ebom-退回到设计") public ResultVO revertDesign(@RequestBody BomNewEBomRevertDTO dto) throws ExecutionException, InterruptedException { if (CollectionUtil.isEmpty(dto.getRowIdList())) { return ResultVO.error(STATE.ParamErr, "请选择要退回的数据"); @@ -256,6 +265,8 @@ public class EbomApi extends BaseApi { @PostMapping("reviewDesign") @ApiOperation("设计复核") + @LogRecord(success = "Ebom-设计复核:{{#log}},操作结果:{{#_ret}}", bizNo = "", + extra = "{{#dto.rowIdList.toString()}}" ,type = "Ebom-设计复核") public ResultVO reviewDesign(@RequestBody BomNewEBomRevertDTO dto) throws ExecutionException, InterruptedException { if (CollectionUtil.isEmpty(dto.getRowIdList())) { return ResultVO.error(STATE.ParamErr, "请选择要复核的数据"); @@ -283,6 +294,7 @@ public class EbomApi extends BaseApi { @PostMapping("updateProjectType") @ApiOperation("更新项目类型") + @LogRecord(success = "Ebom-更新项目类型,操作结果:{{#_ret}}", bizNo = "",type = "Ebom-更新项目类型") public ResultVO updateProjectType(@RequestBody BomNewEbomProjectTypeDTO dto) { VUtils.isTure(StrUtil.isEmpty(dto.getProjectType())).throwMessage("项目类型不能为空"); @@ -308,6 +320,7 @@ public class EbomApi extends BaseApi { @PostMapping("changeMaterial") @ApiOperation("更新物料行") + @LogRecord(success = "Ebom-更新物料行,物料编码:{{#dto.parent.materialNo}}-版本:{{dto.parent.currentVersion}},操作结果:{{#_ret}}", bizNo = "",type = "Ebom-更新物料行") public ResultVO> changeMaterial(@RequestBody BomNewEBomChangeDTO dto) { if ( dto.getParent() ==null || CollectionUtil.isEmpty(dto.getDatas()) ) { return ResultVO.error(STATE.Error, "选择更新的数据"); @@ -323,6 +336,7 @@ public class EbomApi extends BaseApi { @GetMapping("delete") @ApiOperation("删除物料") + @LogRecord(success = "Ebom-删除物料,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", bizNo = "{{#bomRowId}}",type = "Ebom-删除物料") public ResultVO deleteBom(@RequestParam("bomRowId") Long bomRowId ) throws ExecutionException, InterruptedException{ bomNewEbomParentService.deleteBom(bomRowId); @@ -344,6 +358,7 @@ public class EbomApi extends BaseApi { @PostMapping("submit") @ApiOperation("提交") + @LogRecord(success = "Ebom-提交,物料编码:{{#dto.parent.materialNo}}-版本:{{#dto.parent.currentVersion}},操作结果:{{#_ret}}", bizNo = "{{#dto.parent.rowId}}",type = "Ebom-提交") public ResultVO submit(@RequestBody BomNewEBomParentEditDTO dto) throws ExecutionException, InterruptedException { return ResultVO.success(bomNewEbomParentService.submit(dto)); } @@ -351,6 +366,7 @@ public class EbomApi extends BaseApi { @PostMapping("intiException") @ApiOperation("初始化错误类型") + @LogRecord(success = "Ebom-初始化错误类型,操作结果:{{#_ret}}", bizNo = "{{#bomRowIds.toString()}}",type = "Ebom-提交") public ResultVO intiException(@RequestBody List bomRowIds) throws ExecutionException, InterruptedException { bomNewEbomParentService.batchCheckAndSaveEBomException(bomRowIds ); @@ -368,6 +384,16 @@ public class EbomApi extends BaseApi { // } + @LogRecord(success = "luo下了一个订单,购买商品「{{#bom.currentVersion}}}」,测试变量「dsfsdf」,下单结果:{{#_ret}}", + bizNo = "sfsfsa" ,type = "dsfdsf") + @PostMapping("log") + @ApiOperation("测试日志") + public boolean createOrder() { + bomNewEbomParentService.createOrder(); + return true; + } + + diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java index 13e06db6..3517f1aa 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/OriginalBomApi.java @@ -3,12 +3,15 @@ package com.nflg.product.bomnew.api.user; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.google.common.collect.ImmutableList; +import com.mzt.logapi.context.LogRecordContext; +import com.mzt.logapi.starter.annotation.LogRecord; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.mapper.master.BomNewEbomChildMapper; import com.nflg.product.bomnew.pojo.dto.BomNewOriginalExcelDTO; import com.nflg.product.bomnew.pojo.dto.OriginalSaveBomDTO; +import com.nflg.product.bomnew.pojo.entity.BomNewOriginalParentEntity; import com.nflg.product.bomnew.pojo.query.OriginalBomQuery; import com.nflg.product.bomnew.pojo.vo.BomOriginalListVO; import com.nflg.product.bomnew.pojo.vo.ImportOriginalBomVO; @@ -84,19 +87,31 @@ public class OriginalBomApi extends BaseApi { @PostMapping("saveBom") @ApiOperation("编辑时-暂存") + @LogRecord(success = "编辑物料明细-图号-{{#drawingNo}},操作结果:{{#_ret}}", + bizNo = "{{#bom.parentRowId}}" ,type = "编辑时-暂存") public ResultVO saveBom(@Valid @RequestBody OriginalSaveBomDTO bom) { + BomNewOriginalParentEntity parentEntity = originalParentService.getBaseMapper().selectById(bom.getParentRowId()); + LogRecordContext.putVariable("drawingNo",parentEntity.getDrawingNo()); + return ResultVO.success(originalParentService.saveBom(bom, false)); } @PostMapping("saveSubmit") @ApiOperation("编辑时-提交") + @LogRecord(success = "编辑物料明细-图号-{{#drawingNo}},操作结果:{{#_ret}}", + bizNo = "{{#bom.parentRowId}}" ,type = "编辑时-提交") public ResultVO saveSubmit(@Valid @RequestBody OriginalSaveBomDTO bom) { + BomNewOriginalParentEntity parentEntity = originalParentService.getBaseMapper().selectById(bom.getParentRowId()); + LogRecordContext.putVariable("drawingNo",parentEntity.getDrawingNo()); + return ResultVO.success(originalParentService.saveSubmit(bom)); } @PostMapping("pullFromCad") @ApiOperation("从CAD获取BOM数据") //去除参数 @RequestBody OriginalBomFromPlmQuery dto @Transactional(rollbackFor = Exception.class) + @LogRecord(success = "从cad获取bom到原始BOM,操作结果:{{#_ret}}", + bizNo = "" ,type = "从CAD获取BOM数据") public ResultVO> pullFromPlm() { List result = originalParentService.pullFromPlm(SessionUtil.getUserCode()); @@ -111,6 +126,8 @@ public class OriginalBomApi extends BaseApi { @GetMapping("del") @ApiOperation("删除BOM") + @LogRecord(success = "删除BOM-图号:{{#ent.drawingNo}} 版本:{{#ent.currentVersion}},操作结果:{{#_ret}}", + bizNo = "{{#bomRowId}}" ,type = "删除BOM") public ResultVO del(@RequestParam("bomRowId") Long bomRowId) throws ExecutionException, InterruptedException { originalParentService.del(bomRowId); originalParentService.computeLevelNumAndRootState(); @@ -135,6 +152,8 @@ public class OriginalBomApi extends BaseApi { */ @PostMapping("convertToEBom") @ApiOperation("原始BOM转Ebom") + @LogRecord(success = "删除BOM-图号:{{#bom.drawingNo}} 版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", + bizNo = "{{#bomRowIds.toString()}}" ,type = "原始BOM转Ebom") @Transactional(rollbackFor = Exception.class) public ResultVO convertToEBom(@RequestBody List bomRowIds) throws ExecutionException, InterruptedException { @@ -163,10 +182,13 @@ public class OriginalBomApi extends BaseApi { @ApiOperation("导入") @PostMapping("importBom") @Transactional(rollbackFor = Exception.class) + @LogRecord(success = "原始BOM-导入:文件名:{{#fileNme}},操作结果:{{#_ret}}", + bizNo = "" ,type = "原始BOM导入") public ResultVO> importBom(@RequestParam(value = "file") MultipartFile file) throws IOException { if (file != null && !file.getOriginalFilename().endsWith("xls") && !file.getOriginalFilename().endsWith("xlsx")) { return ResultVO.error("请上传Excel文件"); } + LogRecordContext.putVariable("fileNme", file.getOriginalFilename()); List result = originalParentService.importBom(file); //计算层级 diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java index 6eb139fe..518cb6c2 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/api/user/PBomApi.java @@ -2,6 +2,8 @@ package com.nflg.product.bomnew.api.user; import cn.hutool.core.collection.CollUtil; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.mzt.logapi.context.LogRecordContext; +import com.mzt.logapi.starter.annotation.LogRecord; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.bomnew.constant.EBomConstant; import com.nflg.product.bomnew.constant.PBomEditStatusEnum; @@ -31,6 +33,7 @@ import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.concurrent.ExecutionException; /** @@ -78,12 +81,14 @@ public class PBomApi extends BaseApi { @PostMapping("exportWorkDetailsListByPage") @ApiOperation("导出工作列表--导出") + @LogRecord(success = "PBom-导出工作列表,操作结果:{{#_ret}}", bizNo = "",type = "PBom-导出工作列表") public void exportWorkDownLoad(@RequestBody BomNewPbomParentQuery query ,HttpServletResponse response) throws IOException { bomNewPbomParentService.workDetailsExcel(query,response); } @PostMapping("releaseListDownLoad") @ApiOperation("PBom已发布工作列表--导出") + @LogRecord(success = "PBom-导出已发布工作列表,操作结果:{{#_ret}}", bizNo = "",type = "PBom-已发布工作列表") public void releaseListDownLoad(@RequestBody BomNewPbomParentQuery query ,HttpServletResponse response) throws IOException { bomNewPbomParentService.releaseListExcel(query,response); } @@ -96,6 +101,7 @@ public class PBomApi extends BaseApi { @PostMapping("editStaging") @ApiOperation("编辑-暂存") + @LogRecord(success = "PBom-编辑-暂存,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", bizNo = "{{#param.bomRowId}}",type = "PBom-编辑-暂存") public ResultVO editStaging(@Valid @RequestBody EditPBomParamDTO param){ bomNewPbomParentService.editSave(param,PBomEditStatusEnum.HANDLER_TEMP); return ResultVO.success(true); @@ -103,6 +109,7 @@ public class PBomApi extends BaseApi { @PostMapping("editSubmit") @ApiOperation("编辑-提交") + @LogRecord(success = "PBom-编辑-提交,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", bizNo = "{{#param.bomRowId}}",type = "PBom-编辑-提交") public ResultVO editSubmit(@Valid @RequestBody EditPBomParamDTO param){ //检查物料编码是否存在 bomNewPbomParentService.checkMaterialNo(param.getChildList()); @@ -115,6 +122,7 @@ public class PBomApi extends BaseApi { @PostMapping("editDel") @ApiOperation("编辑-删除") + @LogRecord(success = "PBom-编辑-删除,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}},操作结果:{{#_ret}}", bizNo = "{{#param.bomRowId}}",type = "PBom-编辑-删除") public ResultVO editDel(@Valid @RequestBody EditPBomDelDTO param){ VUtils.isTure(CollUtil.isEmpty(param.getRowIdList())).throwMessage("请选择要删除的数据行"); bomNewPbomParentService.editDel(param); @@ -123,6 +131,7 @@ public class PBomApi extends BaseApi { @PostMapping("setVirtualPart") @ApiOperation("编辑-设置虚拟件") + @LogRecord(success = "PBom-编辑-设置虚拟件,操作结果:{{#_ret}}", bizNo = "{{#rowIdList.toString()}}",type = "PBom-编辑-设置虚拟件") public ResultVO setVirtualPart(@RequestBody List rowIdList){ VUtils.isTure(CollUtil.isEmpty(rowIdList)).throwMessage("请选择要设置虚拟件的行"); @@ -160,6 +169,7 @@ public class PBomApi extends BaseApi { @PostMapping("createTechnologyPackage") @ApiOperation("编辑-创建虚拟包") + @LogRecord(success = "PBom-编辑-创建虚拟包,物料编码:{{#packageParam.materialName}},图号:{{#packageParam.drawingNo}},操作结果:{{#_ret}}", bizNo = "{{#packageParam.bomRowId}}",type = "PBom-编辑-创建虚拟包") public ResultVO createTechnologyPackage(@Valid @RequestBody TechnologyPackageParam packageParam) throws IOException { return ResultVO.success( bomNewPbomParentService.createTechnologyPackage(packageParam)); @@ -195,6 +205,7 @@ public class PBomApi extends BaseApi { @PostMapping("saveAllocationFactory") @ApiOperation("分工厂-保存") + @LogRecord(success = "PBom-分工厂-保存。操作结果:{{#_ret}}", bizNo = "",type = "PBom-分工厂-保存") public ResultVO saveAllocationFactory(@Valid @RequestBody List params){ return ResultVO.success(bomNewPbomParentService.saveAllocationFactory(params)); @@ -202,15 +213,20 @@ public class PBomApi extends BaseApi { @PostMapping("allocationFactoryForRel") @ApiOperation("分工厂-规则匹配") + @LogRecord(success = "PBom-分工厂-规则匹配,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}}-规则编码:{{#params.ruleGroupCode}} 操作结果:{{#_ret}}", bizNo = "{{#params.bomRowId}}",type = "PBom-分工厂-规则匹配") public ResultVO allocationFactoryForRel(@Valid @RequestBody AllocationFactoryForRelDTO params) throws ExecutionException, InterruptedException { + BomNewPbomParentEntity bom = bomNewPbomParentService.getBaseMapper().selectById(params.getBomRowId()); + LogRecordContext.putVariable("bom",bom); return ResultVO.success(bomNewPbomParentService.allocationFactoryForRel(params)); } @GetMapping("convertToMBom") @ApiOperation("转MBom") + @LogRecord(success = "PBom-转MBom,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}} 操作结果:{{#_ret}}", bizNo = "{{#bomRowId}}",type = "PBom-转MBom") public ResultVO convertToMBom(@RequestParam("bomRowId") Long bomRowId) throws ExecutionException, InterruptedException { BomNewPbomParentEntity parent = bomNewPbomParentService.getById(bomRowId); + LogRecordContext.putVariable("bom",parent); VUtils.isTure(!parent.getMaterialNo().startsWith("31")).throwMessage("只有31开头的物料才可以发布"); VUtils.isTure(parent.getStatus()< PBomStatusEnum.PUBLISH.getValue()).throwMessage("只有已发布的BOM才能生成MBom"); // @@ -221,6 +237,7 @@ public class PBomApi extends BaseApi { @GetMapping("realesePbom") @ApiOperation("发布Pbom") + @LogRecord(success = "发布PBom,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}} 操作结果:{{#_ret}}", bizNo = "{{#bomRowId}}",type = "发布PBom") public ResultVO realesePbom(@RequestParam("bomRowId") Long bomRowId) { return ResultVO.success(bomNewPbomParentService.realesePbom(bomRowId)); @@ -237,6 +254,7 @@ public class PBomApi extends BaseApi { @GetMapping("upgrade") @ApiOperation("发起变更") + @LogRecord(success = "PBom发起变更,物料编码:{{#bom.materialNo}}-版本:{{#bom.currentVersion}} 操作结果:{{#_ret}}", bizNo = "{{#bomRowId}}",type = "发起变更") public ResultVO upgrade(@RequestParam("bomRowId") Long bomRowId) { try { bomNewPbomParentService.upgrade(bomRowId); diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewLogMapper.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewLogMapper.java new file mode 100644 index 00000000..27f5c6b7 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/mapper/master/BomNewLogMapper.java @@ -0,0 +1,15 @@ +package com.nflg.product.bomnew.mapper.master; + +import org.apache.ibatis.annotations.Mapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.nflg.product.bomnew.pojo.entity.BomNewLogEntity; + +/** + * t_bom_new_log 表数据库访问层 + * + * + * @author makejava + * @since 2024-03-01 17:10:57 + */ +public interface BomNewLogMapper extends BaseMapper { +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewLogEntity.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewLogEntity.java new file mode 100644 index 00000000..90c0497d --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/pojo/entity/BomNewLogEntity.java @@ -0,0 +1,84 @@ +package com.nflg.product.bomnew.pojo.entity; + +import java.time.LocalDateTime; +import com.baomidou.mybatisplus.annotation.*; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import lombok.Data; +import lombok.experimental.Accessors; +import java.time.LocalDateTime; +import java.time.LocalDate; + +/** + * t_bom_new_log + * + * + * @author makejava + * @since 2024-03-01 17:10:57 + */ +@Data +@Accessors(chain = true) +@ApiModel(value="com-nflg-product-bomnew-pojo-new-entity-BomNewLogEntity") +@TableName(value = "t_bom_new_log") +public class BomNewLogEntity implements Serializable { + + /** + * 主键行id + */ + @TableId(value = "row_id", type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键行id") + private Long rowId; + + /** + * 操作行ID + */ + @TableField(value = "op_biz_no") + @ApiModelProperty(value = "操作行标识") + private String opBizNo; + + /** + * 操作动作 + */ + @TableField(value = "op_action") + @ApiModelProperty(value = "操作动作") + private String opAction; + + /** + * 操作内容-简写 + */ + @TableField(value = "op_content") + @ApiModelProperty(value = "操作内容-简写") + private String opContent; + + /** + * 操作内容详情 + */ + @TableField(value = "op_content_ext") + @ApiModelProperty(value = "操作内容详情") + private String opContentExt; + + /** + * 操作人工号 + */ + @TableField(value = "op_user_job_no") + @ApiModelProperty(value = "操作人工号") + private String opUserJobNo; + + /** + * 操作人名称 + */ + @TableField(value = "op_user_name") + @ApiModelProperty(value = "操作人名称") + private String opUserName; + + /** + * 操作时间 + */ + @TableField(value = "op_time") + @ApiModelProperty(value = "操作时间") + private LocalDateTime opTime; + + private static final long serialVersionUID = -52831510327211450L; + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java index 5111b4a9..3a7a53e7 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewEbomParentService.java @@ -24,6 +24,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Sets; +import com.mzt.logapi.context.LogRecordContext; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.bomnew.constant.*; @@ -428,6 +429,7 @@ public class BomNewEbomParentService extends ServiceImpl data = getBomTree(bomRowId); BomNewEbomParentVO parent = Convert.convert(BomNewEbomParentVO.class, this.getById(bomRowId)); + LogRecordContext.putVariable("bom",parent); //初始化物料信息 materialMainService.intiMaterialInfo(data); productTypeInitDo(parent, data); @@ -639,6 +641,7 @@ public class BomNewEbomParentService extends ServiceImpl bomTree = getBomTree(bomRowId); parent.setBomRowId(parent.getRowId()); parent.setChildBomRowId(parent.getRowId()); @@ -762,6 +766,7 @@ public class BomNewEbomParentService extends ServiceImpl childResult = new ArrayList<>(); for (Long bomRowId : paramDTO.getBomRowIds()) { BomNewEbomParentEntity parent = this.getById(bomRowId); + LogRecordContext.putVariable("bom",parent); List existEnt = this.lambdaQuery().eq(BomNewEbomParentEntity::getMaterialNo, parent.getMaterialNo()).lt(BomNewEbomParentEntity::getStatus, EBomStatusEnum.PUBLISHED.getValue()).list(); //含发布前版本则无需升级 if (CollUtil.isEmpty(existEnt)) { @@ -1034,12 +1039,12 @@ public class BomNewEbomParentService extends ServiceImpl bomNewEbomParentEntityList = this.lambdaQuery().in(BomNewEbomParentEntity::getRowId, rowIds).eq(BomNewEbomParentEntity::getRootIs, 1).list(); - if (CollUtil.isEmpty(bomNewEbomParentEntityList)) { // throw new NflgBusinessException(STATE.BusinessError, "下级BOM无法进行退回"); VUtils.isTure(true).throwMessage("下级BOM无法进行退回"); } - + Set materialNoAndVersion = bomNewEbomParentEntityList.stream().map(u -> StrUtil.join("-", u.getMaterialNo(), u.getCurrentVersion())).collect(Collectors.toSet()); + LogRecordContext.putVariable("log",materialNoAndVersion); if (rowIds.size() != bomNewEbomParentEntityList.size()) { @@ -1145,6 +1150,8 @@ public class BomNewEbomParentService extends ServiceImpl materialNoAndVersion = bomNewEbomParentEntityList.stream().map(u -> StrUtil.join("-", u.getMaterialNo(), u.getCurrentVersion())).collect(Collectors.toSet()); + LogRecordContext.putVariable("log",materialNoAndVersion); if (rowIds.size() != bomNewEbomParentEntityList.size()) { VUtils.isTure(true).throwMessage("数据中包含有下级BOM无法进行复核"); @@ -1386,6 +1393,7 @@ public class BomNewEbomParentService extends ServiceImpl { + +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java index 0a5ccc56..8a726401 100644 --- a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/BomNewOriginalParentService.java @@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Sets; +import com.mzt.logapi.context.LogRecordContext; import com.nflg.product.base.core.config.SpringContextUtils; import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; @@ -440,6 +441,7 @@ public class BomNewOriginalParentService extends ServiceImpl bomTree = getBomTree(bomRowId); @@ -474,7 +476,7 @@ public class BomNewOriginalParentService extends ServiceImpl childList = Convert.toList(BomNewPbomChildEntity.class, paramDTO.getChildList()); childList.forEach(u -> { u.setParentRowId(paramDTO.getBomRowId()); @@ -354,7 +355,7 @@ public class BomNewPbomParentService extends ServiceImpl childList = pbomChildService.getBaseMapper().selectBatchIds(paramDTO.getRowIdList()); @@ -853,6 +854,7 @@ public class BomNewPbomParentService extends ServiceImpl allBom = getAllBom(bomRowId, 0); @@ -919,6 +921,7 @@ public class BomNewPbomParentService extends ServiceImpl parentList = result.stream().filter(u -> u.getBomRowId() > 0 && u.getStatus() parentList = result.stream().filter(u -> u.getBomRowId() > 0).collect(Collectors.toList()); List hasConvert=new ArrayList<>(); for (String facCode : facCodes) { //buildPBomParent(parent, facCode); for (BomNewEbomParentVO vo : parentList) { - String hasConvertKey=StrUtil.join(facCode,vo.getBomRowId()); + String hasConvertKey=StrUtil.join("-",facCode,vo.getBomRowId()); if(hasConvert.contains(hasConvertKey)){ continue; } @@ -157,7 +157,7 @@ public class EBomToPBom { private BomNewPbomParentEntity buildPBomParent(BomNewEbomParentVO parentVo, String facCode) { BomNewPbomParentEntity oldParent = SpringUtil.getBean(BomNewPbomParentService.class).lambdaQuery() .eq(BomNewPbomParentEntity::getMaterialNo, parentVo.getMaterialNo()) - .eq(BomNewPbomParentEntity::getFacCode, facCode).eq(BomNewPbomParentEntity::getLastVersionIs,1).one(); + .eq(BomNewPbomParentEntity::getFacCode, facCode).last(" order by current_version desc limit 1").one(); // this.hasConvertEBomRowIds.add(parentVo.getRowId()); if (Objects.nonNull(oldParent) && !EBomStatusEnum.PUBLISHED.equalsValue(oldParent.getStatus())) { @@ -176,7 +176,7 @@ public class EBomToPBom { pBomParent.setTechnologyUserName(SessionUtil.getRealName()); pBomParent.setCurrentVersion(VersionUtil.getNextVersion("")); if(Objects.nonNull(oldParent)){ - parentVo.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion())); + pBomParent.setCurrentVersion(VersionUtil.getNextVersion(oldParent.getCurrentVersion())); oldParent.setExpireEndTime(LocalDateTime.now()); oldParent.setLastVersionIs(0); } diff --git a/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/log/DbLogRecordServiceImpl.java b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/log/DbLogRecordServiceImpl.java new file mode 100644 index 00000000..5cd510df --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/java/com/nflg/product/bomnew/service/log/DbLogRecordServiceImpl.java @@ -0,0 +1,44 @@ +package com.nflg.product.bomnew.service.log; + +import com.baomidou.mybatisplus.core.toolkit.IdWorker; +import com.mzt.logapi.beans.LogRecord; +import com.mzt.logapi.service.ILogRecordService; +import com.nflg.product.base.core.conmon.util.SessionUtil; +import com.nflg.product.bomnew.pojo.entity.BomNewLogEntity; +import com.nflg.product.bomnew.service.BomNewLogService; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.time.LocalDateTime; +import java.util.List; + +@Service +public class DbLogRecordServiceImpl implements ILogRecordService { + + @Resource + BomNewLogService logService; + @Override + public void record(LogRecord logRecord) { + + BomNewLogEntity logEnt=new BomNewLogEntity(); + logEnt.setRowId(IdWorker.getId()); + logEnt.setOpBizNo(logRecord.getBizNo()); + logEnt.setOpAction(logRecord.getType()); + logEnt.setOpContent(logRecord.getAction()); + logEnt.setOpContentExt(logRecord.getExtra()); + logEnt.setOpUserJobNo(SessionUtil.getUserCode()); + logEnt.setOpUserName(SessionUtil.getUserName()); + logEnt.setOpTime(LocalDateTime.now()); + logService.save(logEnt); + } + + @Override + public List queryLog(String bizNo, String type) { + return null; + } + + @Override + public List queryLogByBizNo(String bizNo, String type, String subType) { + return null; + } +} diff --git a/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewLogMapper.xml b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewLogMapper.xml new file mode 100644 index 00000000..25a95416 --- /dev/null +++ b/nflg_project_dev/nflg-bom-new/src/main/resources/mapper/master/BomNewLogMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + row_id, op_biz_no, op_action, op_content, op_content_ext, op_user_job_no, op_user_name, op_time + +