diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainApi.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainApi.java index c7f09d5b..3629c974 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainApi.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialMainApi.java @@ -403,6 +403,18 @@ public class MaterialMainApi extends BaseApi { return materialMainService.updateProjectType(paramDto); } + /** + * 更新 + * 申请人才允许更新 + * @param paramDto + * @return + */ + @PostMapping("updateGeneralLevel") + @ApiOperation("更新通用程度") + public ResultVO updateGeneralLevel(@RequestBody MaterialMainDTO paramDto) { + return materialMainService.updateGeneralLevel(paramDto); + } + /** * 手动执行计算推荐度 */ diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialUpdateBillApi.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialUpdateBillApi.java index 244adbae..42785841 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialUpdateBillApi.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/api/user/material/MaterialUpdateBillApi.java @@ -1,11 +1,14 @@ package com.nflg.product.material.api.user.material; +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.convert.Convert; import com.baomidou.mybatisplus.core.metadata.IPage; import com.nflg.product.base.core.api.BaseApi; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.material.pojo.dto.MaterialStateUpExcelDTO; import com.nflg.product.material.pojo.dto.MaterialUpdateBillDTO; import com.nflg.product.material.pojo.dto.TwentyMaterialTemplateExcelDTO; +import com.nflg.product.material.pojo.entity.MaterialAttrValueI18nEntity; import com.nflg.product.material.pojo.entity.MaterialUpdateBillEntity; import com.nflg.product.material.pojo.entity.MaterialUpdateImportTaskEntity; import com.nflg.product.material.pojo.query.MaterialUpdateBillQuery; @@ -198,4 +201,27 @@ public class MaterialUpdateBillApi extends BaseApi { public ResultVO> getMaterialUpdateImportTaskList() { return ResultVO.success(materialUpdateBillService.getMaterialUpdateImportTaskList()); } + + /** + * 获取制作物料名称国际化表 + * @param + */ + @GetMapping("getI18nForUpdate") + @ApiOperation("获取制作物料名称国际化表") + public ResultVO materialUpdateBillService(@RequestParam("attrValueCn") String attrValueCn, @RequestParam("type") String type) { + return materialUpdateBillService.materialUpdateBillService(attrValueCn, type); + } + + @GetMapping("getCurrentUpdateReason") + @ApiOperation("获取最近一次变更情况") + public ResultVO getCurrentUpdateReason(@RequestParam("materialNo") String materialNo) { + List list = materialUpdateBillService.lambdaQuery() + .eq(MaterialUpdateBillEntity::getMaterialNo, materialNo) + .orderByDesc(MaterialUpdateBillEntity::getCreatedTime) + .list(); + if (CollectionUtil.isNotEmpty(list)) { + return ResultVO.success(Convert.convert(MaterialUpdateBillVO.class, list.get(0))); + } + return ResultVO.success(); + } } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/dto/MaterialMainDTO.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/dto/MaterialMainDTO.java index 7206d25a..1190e0bf 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/dto/MaterialMainDTO.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/dto/MaterialMainDTO.java @@ -190,5 +190,11 @@ public class MaterialMainDTO implements Serializable { @ApiModelProperty(value = "申请部门") private String applyDeptName; + /** + * 通用程度 + */ + @ApiModelProperty("通用程度") + private String generalLevel; + private static final long serialVersionUID = 1L; } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/entity/MaterialMainEntity.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/entity/MaterialMainEntity.java index 1ff6c005..ef684677 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/entity/MaterialMainEntity.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/entity/MaterialMainEntity.java @@ -369,6 +369,13 @@ public class MaterialMainEntity implements Serializable { @ApiModelProperty(value = "近两年使用量(新)") private BigDecimal twoYearsUsage; + /** + * 通用程度 + */ + @TableField(value = "general_level") + @ApiModelProperty("通用程度") + private String generalLevel; + private static final long serialVersionUID = 1L; } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java index d0989b84..0c8ffbf9 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/pojo/vo/MaterialMainVO.java @@ -1,6 +1,7 @@ package com.nflg.product.material.pojo.vo; import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; import com.nflg.product.material.pojo.dto.MaterialMainAttrDTO; import com.nflg.product.material.pojo.entity.MaterialFilesEntity; import io.swagger.annotations.ApiModel; @@ -12,6 +13,7 @@ import org.ttzero.excel.annotation.ExcelColumn; import java.io.Serializable; import java.time.LocalDateTime; import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -438,4 +440,49 @@ public class MaterialMainVO implements Serializable { */ @ApiModelProperty(value = "项目类别") private String projectType; + + /** + * 通用程度 + */ + @ApiModelProperty("通用程度") + private String generalLevel; + + // 变更弹窗字段 start + /** + * 变更人 + */ + @ApiModelProperty(value = "变更人") + private String updateCreatedByName; + + /** + * 变更部门 + */ + @ApiModelProperty(value = "变更部门") + private String updateApplyDeptName; + + /** + * 申请变更时间 + */ + @ApiModelProperty(value = "申请变更时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateCreatedTime; + + /** + * 变更生效时间 + */ + @ApiModelProperty(value = "变更生效时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateEffectTime; + + /** + * 旧物料状态 1:正常 2:禁止采购 3:售后专用 4:冻结 5:完全弃用 + */ + @ApiModelProperty(value = "旧物料状态 1:正常(激活) 2:禁止采购 3:售后专用 4:禁用(冻结) 5:完全弃用") + @ExcelColumn("旧物料状态 1:禁用 0:启用") + private Integer oldMaterialState; + + @ApiModelProperty(value = "旧物料状态名称") + @ExcelColumn("旧物料状态名称") + private Integer oldMaterialStateName; + // 变更弹窗字段 end } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialExcelService.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialExcelService.java index 73418531..feda5cfa 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialExcelService.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialExcelService.java @@ -238,8 +238,8 @@ public class MaterialExcelService { throw new NflgBusinessException(STATE.ParamErr, StrUtil.join(",", diff).concat("分类代码在系统中不存在")); } - // 校验项目类别 - checkProjectType(datas); +// // 校验项目类别 +// checkProjectType(datas); //验证21 物料 check21Droring(datas); @@ -558,7 +558,7 @@ public class MaterialExcelService { // 11、51 && 一次性物料,新申请,则运算起始时间为申请日期一年之后 if ((materialCategoryCode.startsWith("10") || materialCategoryCode.startsWith("50")) - && to.getReuseOfOnceState() == 1) { + && ObjectUtil.isNotEmpty(to.getReuseOfOnceState()) && to.getReuseOfOnceState() == 1) { Date startDate = Date.from(LocalDate.now().plusYears(1L).atStartOfDay().atZone(ZoneId.systemDefault()).toInstant()); to.setFreezeCalcStart(startDate); } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java index 05057f9a..9cd8b8a0 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialMainService.java @@ -1325,10 +1325,10 @@ public class MaterialMainService extends ServiceImpl projectTypeResult = checkProjectType(materialCategoryEntity.getRelCategoryCode(), paramDto); - if (Objects.nonNull(projectTypeResult)) { - return projectTypeResult; - } +// ResultVO projectTypeResult = checkProjectType(materialCategoryEntity.getRelCategoryCode(), paramDto); +// if (Objects.nonNull(projectTypeResult)) { +// return projectTypeResult; +// } // 工具工装,只验证图号是否重名,不验证前缀 if (materialCategoryEntity.getRelCategoryCode().equals(MaterialRelCategoryCodeEnum.relCategoryCode_71.getRelCategoryCode())) { @@ -1602,7 +1602,7 @@ public class MaterialMainService extends ServiceImpl updateGeneralLevel(MaterialMainDTO paramDto) { + // 暂且和更新项目类别权限一致 + if (!checkUpdateProjectTypeByDept(paramDto)) { + return ResultVO.error("无法更新本部门外申请物料的通用程度"); + } + MaterialMainEntity entity = new MaterialMainEntity(); + entity.setRowId(paramDto.getRowId()); + entity.setGeneralLevel(paramDto.getGeneralLevel()); + this.updateById(entity); + return ResultVO.success(); + } + /** * 通过部门判断是否有修改项目类别的权限,以下满足一个即可: * 1、自己申请的物料 diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateBillService.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateBillService.java index 744e7703..d8b1b9ca 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateBillService.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateBillService.java @@ -20,8 +20,7 @@ import com.nflg.product.base.core.conmon.util.SessionUtil; import com.nflg.product.base.core.exception.NflgBusinessException; import com.nflg.product.base.core.vo.PageVO; import com.nflg.product.material.constant.*; -import com.nflg.product.material.mapper.master.MaterialUpdateBillMapper; -import com.nflg.product.material.mapper.master.MaterialUpdateImportTaskMapper; +import com.nflg.product.material.mapper.master.*; import com.nflg.product.material.pojo.dto.ExcelDTO.MaterialStateUpExcelDTO; import com.nflg.product.material.pojo.dto.ExcelDTO.TwentyMaterialTemplateExcelDTO; import com.nflg.product.material.pojo.dto.MaterialMainAddAttrParamDTO; @@ -96,6 +95,13 @@ public class MaterialUpdateBillService extends ServiceImpl getMaterialUpdateImportTaskList() { return materialUpdateImportTaskMapper.getMaterialUpdateImportTaskList(SessionUtil.getUserCode()); } + + public ResultVO materialUpdateBillService(String attrValueCn, String type) { + // 查询制作物料英文 + if ("20".equals(type)) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialAttrValueI18n21Entity::getAttrValueCn, attrValueCn).eq(MaterialAttrValueI18n21Entity::getEnableState, 1); + MaterialAttrValueI18n21Entity i18n21Entity = materialAttrValueI18n21Mapper.selectOne(queryWrapper); + return ResultVO.success(Convert.convert(MaterialAttrValueI18nEntity.class, i18n21Entity)); + } else { + // 查询采购物料英文 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(MaterialAttrValueEntity::getAttrRowId, 1).eq(MaterialAttrValueEntity::getAttrValueName, attrValueCn); + MaterialAttrValueEntity materialAttrValueEntity = materialAttrValueMapper.selectOne(queryWrapper); + if (ObjectUtil.isNotEmpty(materialAttrValueEntity)) { + LambdaQueryWrapper i18nQueryWrapper = new LambdaQueryWrapper<>(); + i18nQueryWrapper.eq(MaterialAttrValueI18nEntity::getAttrValueRowId, materialAttrValueEntity.getRowId()); + return ResultVO.success(materialAttrValueI18nMapper.selectOne(i18nQueryWrapper)); + } + } + return ResultVO.success(); + } } diff --git a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateToOAService.java b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateToOAService.java index 85714fad..7ef2cdd7 100644 --- a/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateToOAService.java +++ b/nflg_project_dev/material/src/main/java/com/nflg/product/material/service/MaterialUpdateToOAService.java @@ -101,9 +101,17 @@ public class MaterialUpdateToOAService { material.put("UPDATEREASON", u.getUpdateResion()); material.put("OLDMAKTX", u.getOldMaterialDesc()); material.put("OLDTYPEMAKTX", u.getOldCategoryNameTree()); + if (StringUtils.isNotEmpty(u.getReplaceMaterialNo())) { - material.put("Ftdwl", u.getReplaceMaterialNo()); + MaterialMainEntity materialMainEntity = materialMainService.lambdaQuery().eq(MaterialMainEntity::getMaterialNo, u.getMaterialNo()).one(); + MaterialMainEntity replaceMaterialMainEntity = materialMainService.lambdaQuery().eq(MaterialMainEntity::getMaterialNo, u.getReplaceMaterialNo()).one(); + boolean flag = Objects.nonNull(replaceMaterialMainEntity); + boolean flagJudge = materialMainEntity.getMaterialUnit().equals(replaceMaterialMainEntity.getMaterialUnit()); + if (flag && flagJudge) { + material.put("Ftdwl", u.getReplaceMaterialNo()); + } } + list.add(material); }); result.put("List", list);