Merge remote-tracking branch 'origin/master-hlq-20240925material'

This commit is contained in:
10001392 2024-10-08 17:10:10 +08:00
commit acf1ab3795
9 changed files with 169 additions and 12 deletions

View File

@ -403,6 +403,18 @@ public class MaterialMainApi extends BaseApi {
return materialMainService.updateProjectType(paramDto);
}
/**
* 更新
* 申请人才允许更新
* @param paramDto
* @return
*/
@PostMapping("updateGeneralLevel")
@ApiOperation("更新通用程度")
public ResultVO<String> updateGeneralLevel(@RequestBody MaterialMainDTO paramDto) {
return materialMainService.updateGeneralLevel(paramDto);
}
/**
* 手动执行计算推荐度
*/

View File

@ -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<List<MaterialUpdateImportTaskEntity>> getMaterialUpdateImportTaskList() {
return ResultVO.success(materialUpdateBillService.getMaterialUpdateImportTaskList());
}
/**
* 获取制作物料名称国际化表
* @param
*/
@GetMapping("getI18nForUpdate")
@ApiOperation("获取制作物料名称国际化表")
public ResultVO<MaterialAttrValueI18nEntity> materialUpdateBillService(@RequestParam("attrValueCn") String attrValueCn, @RequestParam("type") String type) {
return materialUpdateBillService.materialUpdateBillService(attrValueCn, type);
}
@GetMapping("getCurrentUpdateReason")
@ApiOperation("获取最近一次变更情况")
public ResultVO<MaterialUpdateBillVO> getCurrentUpdateReason(@RequestParam("materialNo") String materialNo) {
List<MaterialUpdateBillEntity> 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();
}
}

View File

@ -190,5 +190,11 @@ public class MaterialMainDTO implements Serializable {
@ApiModelProperty(value = "申请部门")
private String applyDeptName;
/**
* 通用程度
*/
@ApiModelProperty("通用程度")
private String generalLevel;
private static final long serialVersionUID = 1L;
}

View File

@ -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;
}

View File

@ -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
}

View File

@ -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 {
// 1151 && 一次性物料新申请则运算起始时间为申请日期一年之后
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);
}

View File

@ -1325,10 +1325,10 @@ public class MaterialMainService extends ServiceImpl<MaterialMainMapper, Materia
}
}
ResultVO<String> projectTypeResult = checkProjectType(materialCategoryEntity.getRelCategoryCode(), paramDto);
if (Objects.nonNull(projectTypeResult)) {
return projectTypeResult;
}
// ResultVO<String> 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<MaterialMainMapper, Materia
}
MaterialCategoryEntity materialCategoryEntity = materialCategoryService.lambdaQuery().eq(MaterialCategoryEntity::getCategoryCode, paramDto.getMaterialCategoryCode()).one();
checkProjectType(materialCategoryEntity.getRelCategoryCode(), paramDto);
// checkProjectType(materialCategoryEntity.getRelCategoryCode(), paramDto);
//效验21物料图片
check21And31DrawingNo(paramDto, paramDto.getRowId());
@ -1914,7 +1914,7 @@ public class MaterialMainService extends ServiceImpl<MaterialMainMapper, Materia
sql2 = sql2.concat("( select matnr, max(BEDAT) maxBEDAT from SAPABAP1.\"/BIC/AZSD_E00042\" where 1=1 and matnr in (").concat(whrMaterials).concat(")").concat(" and BSART = 'NB' ");
sql2 = sql2.concat("group by matnr ) a");
sql2 = sql2.concat(" left join");
sql2 = sql2.concat(" ( select matnr, BEDAT,BRTWR,MENGE,PEINH , case when MENGE = 0 or PEINH = 0 then 0 else BRTWR/(MENGE*PEINH) end as purPrice from SAPABAP1.\"/BIC/AZSD_E00042\" where 1=1 and matnr in (").concat(whrMaterials).concat(") and BSART = 'NB' )b");
sql2 = sql2.concat(" ( select matnr, BEDAT,BRTWR,MENGE,PEINH , case when MENGE = 0 or PEINH = 0 then 0 else BRTWR/MENGE end as purPrice from SAPABAP1.\"/BIC/AZSD_E00042\" where 1=1 and matnr in (").concat(whrMaterials).concat(") and BSART = 'NB' )b");
sql2 = sql2.concat(" on a.matnr = b.matnr and a.maxBEDAT = b.BEDAT");
log.info("获取SAP最近采购价格");
@ -2335,6 +2335,24 @@ public class MaterialMainService extends ServiceImpl<MaterialMainMapper, Materia
return ResultVO.success();
}
/**
* 更新通用程度
* 申请人才允许更新
* @param paramDto
* @return
*/
public ResultVO<String> 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自己申请的物料

View File

@ -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<MaterialUpdateBillMap
@Resource
private MaterialUpdateImportTaskMapper materialUpdateImportTaskMapper;
@Resource
private MaterialAttrValueMapper materialAttrValueMapper;
@Resource
private MaterialAttrValueI18nMapper materialAttrValueI18nMapper;
@Resource
private MaterialAttrValueI18n21Mapper materialAttrValueI18n21Mapper;
private static final String PREFIX = "frontend:material";
/**
@ -1051,6 +1057,7 @@ public class MaterialUpdateBillService extends ServiceImpl<MaterialUpdateBillMap
materialMainVO.setOutAttrs(outAttrs);
}
materialMainVO.setMaterialState(materialUpdateBillEntity.getNewMaterialState());
materialMainVO.setOldMaterialState(materialUpdateBillEntity.getOldMaterialState());
if (StringUtils.isEmpty(materialUpdateBillEntity.getUpdateResion())) {
materialMainVO.setUpdateResion("");
} else {
@ -1058,6 +1065,11 @@ public class MaterialUpdateBillService extends ServiceImpl<MaterialUpdateBillMap
}
materialMainVO.setReplaceMaterialNo(materialUpdateBillEntity.getReplaceMaterialNo());
materialMainVO.setRemark(ent.getRemark());
materialMainVO.setMaterialDescEn(materialUpdateBillEntity.getMaterialDescEn());
materialMainVO.setUpdateCreatedByName(materialUpdateBillEntity.getCreatedByName());
materialMainVO.setUpdateApplyDeptName(materialUpdateBillEntity.getApplyDeptName());
materialMainVO.setUpdateCreatedTime(materialUpdateBillEntity.getCreatedTime());
materialMainVO.setUpdateEffectTime(materialUpdateBillEntity.getEffectTime());
}
return materialMainVO;
}
@ -1202,4 +1214,25 @@ public class MaterialUpdateBillService extends ServiceImpl<MaterialUpdateBillMap
public List<MaterialUpdateImportTaskEntity> getMaterialUpdateImportTaskList() {
return materialUpdateImportTaskMapper.getMaterialUpdateImportTaskList(SessionUtil.getUserCode());
}
public ResultVO<MaterialAttrValueI18nEntity> materialUpdateBillService(String attrValueCn, String type) {
// 查询制作物料英文
if ("20".equals(type)) {
LambdaQueryWrapper<MaterialAttrValueI18n21Entity> 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<MaterialAttrValueEntity> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(MaterialAttrValueEntity::getAttrRowId, 1).eq(MaterialAttrValueEntity::getAttrValueName, attrValueCn);
MaterialAttrValueEntity materialAttrValueEntity = materialAttrValueMapper.selectOne(queryWrapper);
if (ObjectUtil.isNotEmpty(materialAttrValueEntity)) {
LambdaQueryWrapper<MaterialAttrValueI18nEntity> i18nQueryWrapper = new LambdaQueryWrapper<>();
i18nQueryWrapper.eq(MaterialAttrValueI18nEntity::getAttrValueRowId, materialAttrValueEntity.getRowId());
return ResultVO.success(materialAttrValueI18nMapper.selectOne(i18nQueryWrapper));
}
}
return ResultVO.success();
}
}

View File

@ -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);