作者:满国风_903 | 来源:互联网 | 2023-09-24 15:29
需求:
根据当前登录用户获取登录人单位名称,获取单位名称后取单位名称前两个字拼音大写首字母,拼接上当前日期,最后拼接上三位数编号,编号为当前公司当天最大活动数加一。
public int insertSelective(ZxSpActivityInfo zxSpActivityInfo) {// 1.获取单位信息String unitName &#61; ""; // 获取创建人单位名称String createUserId &#61; "";// 获取创建人idString unitJC &#61; "HD"; // 单位简称String mdate &#61;""; // 取日期String maxId &#61;""; // 获取数据库最大的活动id号后三位String strmID &#61; ""; // 新的id转换为字符串进行拼接String activityId &#61; ""; // 生成活动idint mid &#61; 0; // 转换为int类型进行加一操作// 2.获取登录用户createUserId &#61; zxSpActivityInfo.getCreateUserId();if ("".equals(createUserId)) {createUserId &#61; CurrentPrincipalHolder.getUid();}// 3. 获取用户单位信息 进行转换获取头两个字英文大写首字母ZxSpUserUnit zxSpUserUnit &#61; zxSpUserUnitMapper.selectByPrimaryKey(createUserId);if (zxSpUserUnit !&#61; null) {unitName &#61; zxSpUserUnit.getUnitName();StringBuilder convert &#61; new StringBuilder();for (int j &#61; 0; j &#61; 3){maxId &#61; maxId.substring(length-3, length);}}else{maxId &#61; "000";}mid &#61; Integer.parseInt(maxId)&#43;1;if (mid > 0 && mid <10) { // 判断当前最大的数范围转换为字符串拼接前方0的个数activityId &#61; "00"&#43;String.valueOf(mid);} else if (mid >&#61; 10 && mid <100) {activityId &#61; "0"&#43;String.valueOf(mid);}// 6. 生成活动完成赋值strmID &#61; strmID&#43;activityId;// 活动id&#xff0c;创建人id&#xff0c;创建时间 三个字段非空后端生成zxSpActivityInfo.setActivityNo(strmID);zxSpActivityInfo.setCreateTime(date);zxSpActivityInfo.setCreateUserId(createUserId);return zxSpActivityInfoMapper.insertSelective(zxSpActivityInfo);}
开发小白&#xff0c;思路比较单一&#xff0c;如有好的建议还望不吝赐教。