拨云见日:职场生活的点滴记录

本文最后更新于:22 天前

明明是为了生活而工作,却为了工作而疏远了生活。

写在前面

山西中维

2024 年 3 月 15 日

三月十四号中午一点,我上午投递的 BOSS 回复我了。简单聊了一会儿,看出来他现在确实很需要人才,于是很爽快地约面十五号下午了。

今天上午一直没精神,快七点那会儿醒的,算这学期开学以来起的最早的了。周五上午两节课,看着电脑迷迷糊糊的,只是不知道背了些什么。醒得太早了,一早上竟然都提不起精神。十点多在 BOSS 上确认了下今天下午四点的面试,问公司能不能准时安排。好不容易挨过了上午,吃完饭就回到教室了,这会儿公司那边还没消息。像过去的一周一样,打开电脑充上电,刷着视频听着歌,一种久违的快乐涌上心头。对呀,我现在的生活多滋润:课程又少,逼事不多,一天到晚还是自由自在的。想到这里我就瞬间释然了,心里默默做了一个决定:日常实习就算了,接下来几个月,加把劲努努力,找个大厂暑期实习就好了。至于今天下午的面试,现在都还没消息呢!大抵是对我没啥信心,要不然我也别去了。大热天的倒两趟公交去那里面试,这不纯纯自讨苦吃?我这样想着,开开心心地跟我兄弟要约好打游戏了。

还没开始玩呢,扫了一眼平板上的信息,那家 BOSS 竟然回复我了。打开一看好家伙,公司那边是没问题的,要我再发一份简历给他,他转交给人事下午联系我。看来这面试是推脱不了了,那我就得硬着头皮上了。管他呢,现在才十二点半,离下午四点还早,玩个尽兴再说。看了两个视频就开始打游戏了,时间过得真快,半个多小时就过去了,时间来到了一点十五分。

哟,估计下午两点就得起身了,抓紧时间看会儿面试题吧。接下来的半个多小时里,我心不在焉的记忆着那些看过无数遍的知识点。很奇怪啊,虽然是要面对第一次线下面试,我的内心是丝毫不慌张的。过去两年多的大学生活历炼出了我这样的性格。都约好时间了,人家做好准备还叫我过去面试,不过是聊聊职业规划和目标、谈谈技术问题嘛,这可是我最拿手的。相较于视频远程面试,显然我是很倾向于这次线下面对面交流的。

磨蹭到了一点五十分,再不愿意也得动身出发了。我赶快掏出手机打开微信小程序,预定了校内天猫实体店的远程打印服务。打印简历彩色两份,拿好手机和平板装入手提包。想着也没什么别的要拿得了吧,简单整理了一下即刻动身了。谁曾想我没注意看手机电量,这个决定让我后悔了一下午。下了致远楼穿过求真楼,直奔天猫实体店。走到求真楼楼底下那会儿,山西中维的人事给我打了电话,确认了我是今天下午四点要来面试的。过了一会儿还加了微信,确认了面试地点是新岛科技园四层楼。拿到纸质版简历之后我就跑出校门了,这会儿是两点十分左右。看着校门外车水马龙的,暖阳透过云层洒在我的面颊,伴随着微风拂过,此时此刻我竟然感觉很清爽。好想在这里多呆一会儿,可惜我还有个该死的面试。我已经决意要打个出租了,打个车很快的,最慢半个小时也就到了。不慌不忙地在高德上叫了辆出租,虽然路上有点堵,但半小时后还是到了新岛科技园大门外。

1
路上还看到了山西大学坞城校区,上次来这里是去年在隔壁财经大学考试的时候经过了,再上次就是21年大一那会儿来这里吃过小火锅。

image-20240317170040137

1
新岛科技园,其实就是个小区,给我一种有点熟悉又安静的感觉。

image-20240317165704188

就在大门外下车吧,看着时间还早,不到三点的样子。走过门卫进了小区,确实是个好小区。小区不大,跟我家那边的小区差不多,安安静静的,大概全中国的小区都是这样子的吧。我看着地图来到了 B 楼底下,正想着怎么上楼呢,旁边餐厅门口的小伙热心地走过来问我要去哪。看着我低头看手机地图摸索,他肯定明白我是外来的,对这里不太熟悉。我跟他确认了这是新岛科技园 B 座,他指示了下要上四层还得绕到楼后边的楼梯口。很感谢这位大哥啊,节省了我不少时间。绕到楼后边果然发现了楼梯口,不过现在上去还为时过早,就在附近随便转转吧。转了一圈没啥意思,这会儿都已经三点了,还是为一个小时之后的面试做做准备吧。我来到小区中央的花园,找了个台阶就坐下了。

1
在小区里转了两圈,随便拍下来的,做个纪念,以后可能再不会来这了。

image-20240317165813160

到了这时才发现手机只剩下百分之四十的电量了,赶紧把所有后台清空,定位也关了扔在一旁。抓紧这点时间看看面试题,但还是有些力不从心的。大中午的没睡个好觉,坐在这里口干舌燥的,更着急的是有点尿急还想上厕所呢。那没啥好办法,只能是等了。到了三点五十,我站起身来整理了下,重新来到了楼梯口。跟人事微信上打了招呼就上了四楼。到了门口人家把我叫进去了,领着我到了一间办公室开始填表。只是一些简单的个人信息和职业规划,表很快就填完了。我简单做了自我介绍,她也给我讲了下公司规模、业务方向,态度很诚恳。过了两分钟左右,她又领着我来到隔壁办公室,说待会儿有会部门的人来考察面试。

很快就有人进来了,是个年轻人。他介绍他是软件自研部门主管,就开始面试了。还是简单地做了下自我介绍,跟主管做了下技术上的探讨,这里就不多说了。他的考查方式很有特点,点到为止,光听你的回答就能看出你在这方面的理解力和水平了。有不会的他也会细致地讲解和纠正,还很愿意跟我分享公司的情况、入职注意事项啥的。最后的结果是他对我很满意,首先是计算机理论基础比较扎实,再一个是山西大学的学生,这个相较于其他学校的学生来讲,还是很有优势的。最后探讨了下薪资问题和就职时间问题,还把人事领进来聊了会儿,这场长达一个多小时的面试就结束了。

这次面试很愉快啊,下了楼就快六点了。等我出了小区,穿过两条街到了对面公交站点等公交的时候,手机就剩二十度电了。这站牌下人还挺多,车来车往的也很热闹,跟身旁候车的其他人一样,我的脸上也是写满了疲惫。我不熟悉这片的通勤路线,只是一边看着高德地图推荐的公交方案,一边留意着过往的车辆。连续来了好几趟公交,要么不是我要坐的,要么就是人满了挤不上去。等了有十五分钟左右,好歹上了一辆公交。上车的时候还刷错卡了,这躺车的乘车码竟然是晋中卡,我还拿着太原市卡刷车呢。过了几个站点,陆续上来好几拨人,我从前门口被挤到后门口,手机抓在手里都抬不起胳膊来,难受得要命。最关键的是我的手机还没电了,眼看着就剩十九度电了,还在一点一点往下掉。更麻烦的是我到现在还不太明白这趟车的行程是什么样的,只是看着高德地图上它是往财经大学方向开过去的,管他呢,丢不了。过了十五分钟,司机吆喝一声“财经大学有没有要下的”,我就立刻反应过来了。财经大学站点下了公交,附近就会有 86 路公交直达东山校区的,我赶紧在这个站点下了车。

1
面试终于结束了,可算跑出来了。

image-20240317170120954

下了公交穿过一条街,径直来到财经大学和山西大学坞城校区前的公交站点候车。这个地方感觉很熟悉,五个月前我来财大考取软考证书的时候就来过这里。等了七八分钟左右,86 路公交就来了。坐上 86 路公交,我的心终于放平了。大约过了四十分钟,总算抵达东山小区南门口了。晚上这里很热闹啊,街对面都是摆摊的。这情景跟上次我考完试回来简直一模一样,不过这次我还拍了照录了视频。

1
等到回家已经晚了,坐上86路之后,又途径山西大学坞城校区。

image-20240317170246107

排队刷脸进了校园,这会儿才七点半,比我预料的要快很多。不过我快要饿死了,一进校园就赶快往餐厅跑,连快递都顾不上取。来到餐厅本来打算先去二楼上个厕所的,无奈实在是太饿了,走到一楼看见稀饭窗口还有卖的就停下脚步了。买了一碗小米粥和三个饼,就开始狼吞虎咽起来。吃完饭出了餐厅就整八点了,这会儿手机竟然撑住了,还剩九度电量。稍作休整,直接去致远楼教室。

1
回来了,校门外好多摆摊的。

image-20240317170343830

还是熟悉的位置啊,这地方感觉可真温馨。中午两点出了教室门,在外面跑跳了一下午,坐车太久了还有点晕车。跟好兄弟和小穆微信里聊下午的的事,总算能安心地玩一会儿了。我只感觉这几天的努力没有白费,就算今天的面试结果没有着落,我也不会后悔。只是这两天要好好休息下了,在接到公司的通知前,我得好好调养调养,一是为了在正式工作前修正一番,二是最近一段时间确实心力交瘁了,哪怕结果对我不利,我也好及时准备接下来的简历投递。特么的放假说早了,这哪里放假了,比上周一整周都累人。

这次的面试情况就是这样。

办公环境

2024 年 5 月 2 日

一直想找个机会拍拍办公环境的,但是大家都在实在不好举起手机拍。不过上周周一早上来的比较早,办公室里也没多少人,就拍了几张。

image-20240502083545116

image-20240502083558838

职场经历

认识新同事

2024 年 3 月 19 日

入职第一天

2024 年 4 月 1 日

部门新招来一名实习生,大四的比我要大一岁,同龄人之间还是很好交流沟通的。

树宙又给我推了两个美食 UP 主,我慷慨地给他展示了我前两天炒的酸辣白菜。

2024 年 4 月 18 日

时间过得真快啊,这就十八号了。

树宙真是个有趣的人,今天他主要是签名那一大摞文件,几乎没咋参与小程序测试。

一直到下班的前一刻,他还在鼓捣个人博客站点。个人博客搭建本来就很麻烦,肯定不是一帆风顺的,更何况他选择的主题跟我不一样,能帮到他的就很有限了。

下班了跟他边走边聊,发现他人很踏实很实在,我喜欢这个朋友。

不同于刚来单位的那些日子,身边没有同龄人跟我讲话,我比较难受。这下好了,树宙大我一岁,很幸运能遇到这个朋友。当然了,他也很崇拜我哈哈哈,经常问我说怎么学的这些东西。

今天又是愉快的一天,再过一天就是周末了,期待。

2024 年 5 月 15 日

这个栏目好久没有更新了,不过也无妨,树宙跟我都处成好哥们了,聊得很开心。

这周周一到周二,两天新来了四位新同事,大家都很忙碌,看得出来这个软件部门也是越来越壮大了。

虽然能够和同事们共事的时间不多,但我还是会好好珍惜这些岁月的,好好学习了(单位摸鱼 🐟)。

公司软著整理

2024 年 3 月 21 日

终止进程:运行 tomcat 报错:Address localhost:1099 is already in use-CSDN 博客

image-20240321161059496

运行项目流程

登录 MySQL,连接本地数据库:

image-20240323133910720

修改数据库连接配置:

image-20240323134029060

IDEA 配置本地 Maven:

image-20240323180558259

新建数据库:

image-20240323134151689

执行 SQL 文件,向数据库中导入数据:

image-20240323134405349

执行命令,打包项目:

image-20240323134702224

直接执行启动类,运行项目:

image-20240323180725398

启动 tomcat 服务器,部署项目:

image-20240323134837988

image-20240323134845772

服务器启动成功:

image-20240323135116846

2024 年 3 月 25 日

写代码,做项目,一定是一个一个地解决问题,不能急于求成。

网上拉的项目他不靠谱,要么没配置文件,要么没数据库文件。

1
2
3
4
5
6
7
8
9
10
java.sql.SQLException: com.mysql.cj.jdbc.Driver
at com.alibaba.druid.util.JdbcUtils.createDriver(JdbcUtils.java:600) ~[druid-1.1.10.jar:1.1.10]
at com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:817) ~[druid-1.1.10.jar:1.1.10]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1920) ~[spring-beans-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1862) ~[spring-beans-5.2.10.RELEASE.jar:5.2.10.RELEASE]
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1790) ~[spring-beans-5.2.10.RELEASE.jar:5.2.10.RELEASE]
1
2
3
4
5
6
7
8
9
10
11
12
13
<!-- druid begin -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.2.15</version>
</dependency>
<!-- druid end -->

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.version}</version>
</dependency>

image-20240325115548600

改了下 MySQL 依赖就能启动成功了

java.sql.SQLException: com.mysql.cj.jdbc.Driver-CSDN 博客

特么的,好久没有在网上拉代码了,一如既往的恶心人啊。

哇呀呀,不是没 sql 脚本就是没没有填充数据,找个开源现成的项目就这么难

image-20240325171434953

今天这任务完成不了了。

下午开了组会,汇报了工作,明天这工作就要完成了,嘿嘿嘿

2024 年 3 月 26 日

公司软著归档基本完成了,这花费了一周多的时间。

本来启顺软著十六个就挺多了,趁着周末的空隙,我疯狂地找了很多可直接运行的管理系统项目代码。结果第二周来了又说讯网的十个软著只能给到我四个,剩下六个还得我做。我这一口气得做二十二个原创软著是吧,晚上回去也玩得不安稳,边看视频边找代码跑代码。

基本都是简单的管理系统,不过能跑起来应付检查就行,在这里放几个软著项目截图吧:

Snipaste_2024-03-25_09-44-41

Snipaste_2024-03-25_09-30-26

Snipaste_2024-03-25_11-34-21

Snipaste_2024-03-23_18-08-15

2024 年 4 月 11 日

上次推送公司软著归档的时候,把打包文件和第三方依赖都推送上去了,导致项目体量大得惊人,足足有 5G 多。

我删除了每个项目里的 .idea、.git、target 目录和一些不需要用到的前端文件。总之一句话,只要删了不影响项目运行,就统统删除掉。

软著归档体量总算小点了,700MB 多一点,推送并验收完成。

检察院可视化

2024 年 3 月 27 日

今天开始做检察院可视化项目,拉取代码成功运行并熟悉核心业务逻辑。

后端安装子模块出现问题:

关于 pom.xml 一直提示 Could not transfer artifact(无法搬运)+无法解析 maven 依赖的问题,我在学习 springboot 的过程中遇到的一些问题-CSDN 博客

这个问题我直接执行一键安装全部模块,然后单独安装每个子模块就可以

image-20240327113245582

若依前端出现报错,解决方法:

若依报错解决_> ruoyi@3.8.6 dev > vue-cli-service serve info sta-CSDN 博客

1
$env:NODE_OPTIONS="--openssl-legacy-provider"

执行这条命令,确实百分百永久解决问题

image-20240327140712627

image-20240327105609337

image-20240327105629244

Java spring 注解 @PostConstruct 实战讲解-CSDN 博客

运行出现报错,中午解决了

很好,问题已解决:

这个错误日志显示了一个java.lang.NoClassDefFoundError异常,具体是找不到javax.xml.bind.DatatypeConverter类。DatatypeConverter是 Java 平台的一个类,用于在不同类型的 Java 数据类型和字符串之间进行转换,它属于 Java 的 JAXB(Java Architecture for XML Binding)API 的一部分。

这个异常通常发生在 Java 9 及以上版本的环境中,因为从 Java 9 开始,JAXB 不再作为 Java SE 的一部分,而是被标记为模块化的 JDK 中的可选部分。如果你的应用是基于 Java 9 或更高版本,并且你没有显式地将 JAXB 添加到你的项目依赖中,就可能会遇到这个问题。

要解决这个问题,你有以下几个选项:

  1. 添加 JAXB 依赖
    在你的项目构建文件(如 Maven 的pom.xml或 Gradle 的build.gradle)中,添加 JAXB 的依赖。例如,如果你使用 Maven,可以添加如下依赖:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.3.1</version>
    </dependency>
    <dependency>
    <groupId>org.glassfish.jaxb</groupId>
    <artifactId>jaxb-runtime</artifactId>
    <version>2.3.1</version>
    </dependency>

    确保使用与你项目兼容的 JAXB 版本。

  2. 使用 Java 8
    如果你的项目没有特定的理由必须使用 Java 9 或更高版本,你可以考虑切换回 Java 8,因为 JAXB 在 Java 8 中是内置的。

  3. 添加 JVM 参数
    如果你使用的是 Java 9 或更高版本,并且不想修改项目依赖,你可以尝试通过添加 JVM 参数来启用 JAXB 模块。例如,你可以添加如下 JVM 参数:

    1
    2
    3
    shell复制代码

    --add-modules java.se.ee

    然而,请注意,这种方法并不是官方推荐的,并且可能在未来的 Java 版本中不再有效。

  4. 检查代码库
    如果DatatypeConverter是由某个库间接使用的,那么你可能需要更新这个库到支持 Java 9 及以上版本的版本,或者寻找一个替代库。

请根据你的具体情况选择最合适的解决方案。如果你正在使用 Spring Boot,确保你的 Spring Boot 版本与你的 Java 版本兼容,因为 Spring Boot 通常会处理这类依赖问题。如果问题依然存在,可能需要进一步检查你的项目配置和依赖关系。

简单看一下这个检察院可视化项目吧(大同检察院可视化),就是一个大屏数据统计分析系统:

image-20240416101210459

image-20240416101246666

image-20240416101316609

image-20240416101346062

image-20240416101404050

2024 年 3 月 28 日

海红简要讲解了朔州检察院可视化项目核心业务逻辑,我自行查看数据库表字段属性,逐段 debug 分析:

入参:部门 id(belongDeptId),排名(sortNum),日期(time),指标等级(indexLevel)

根据时间(time)获取 newTime;根据部门 id(belongDeptId)获取父单位 id(parentId);根据(newTime + parentId)更新指标等级(indexLevel);根据指标等级(indexLevel)拿到字典类型(dictType)

联表查询指标库(bus_index_library)、指标数据(bus_index_value)、部门表(bus_dept)

朔州市查询,部门就为朔州市院;各县市查询,部门为对应县市院。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<select id="selectRankingDetails" resultType="com.zw.business.domain.vo.ResultVo">
select d.index_value_id id, d.index_id indexId, belong_dept_id belongDeptId, sort_num sortNum, index_name indexName, index_until indexUntil,
index_type indexType, index_value indexValue, index_parent_value indexParentValue,d.group_sort as groupSort,
e.notification as notification ,e.index_order as indexOrder, e.index_logo as indexLogo
from bus_index_value d left join bus_index_library e on d.index_id=e.index_id left join sys_dept f on belong_dept_id = dept_id
where belong_dept_id = #{belongDeptId}
<if test="indexIds != null and indexIds != ''"> and d.index_id in (${indexIds})</if>
<if test="sortNum != null and sortNum != ''"> and d.sort_num = #{sortNum} </if>
<if test="newTime != null and newTime != ''"> and d.index_time like concat(#{newTime},'%') </if>
<if test="valueLevel != null and valueLevel != ''"> and d.value_level = #{valueLevel} </if>
<if test="indexLevel != null and indexLevel != ''"> and e.index_level = #{indexLevel} </if>
<if test="isCore != null and isCore != ''"> and e.is_core = #{isCore} </if>
<if test="isSort != null and isSort != ''"> and e.is_sort = #{isSort} </if>
</select>

根据字典类型(dictType)查询获取字典标签(dictLabel),给所有记录设置字典标签 / 业务类型。

默认指标等级(index_level)是 2,该指标等级对应的指标类型为:DICT_TYPE_INDEX_56,即字典类型。根据字典类型查询字典库(dict_library)获取到的字典标签列表,并按字典数据(dictValue)升序排序。

1
2
3
// 根据dict_type查询指标类型集合
@Select("select dict_value as dictValue, dict_label dictLabel, remark as remark from sys_dict_data where dict_type = #{dictType} ORDER BY dict_value")
public List<SysDictData> getIndexTypeList(String dictType);

根据字典数据(dictValue)升序排序获取的字典标签(dictLabel)。每个指标名称都有所属指标类型(即字典标签 dictLabel),用指标类型(index_type)关联(dictValue)。

1
2
Map<String, String> indexTypeMap = indexUtils.getIndexTypeMap(dictType);
list.forEach(data -> data.setDictLabel(indexTypeMap.get(data.getIndexType())));

一次三表联查 + 单表查询,我们查询到了完整的数据:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
{
"id": "27777",
"indexParentValue": 1.07,
"sortNum": 1,
"belongDeptId": 140600,
"indexTime": "2023-09-02T00:00:00.000+0800",
"indexId": "277",
"indexName": "刑事“案-件比”",
"indexUntil": "≤1.33",
"indexShort": "刑事“案-件比”",
"indexType": "0",
"indexTypeSecond": "",
"indexTypeThird": "",
"dictLabel": "刑事检察",
"deptId": 140600,
"deptName": "朔州市院",
"sortNumStr": "≤1.33",
"notification": 1.33,
"indexOrder": "1",
"isCore": "0",
"isSort": "0",
"indexLogo": "0",
"groupSort": "---",
"showId": "1"
}

删除了认证授权校验,方便接口测试

2024 年 3 月 29 日

2024 年 4 月 12 日

完成大同检察院可视化项目指标数据导入,以及对大同检察院可视化项目数据做最后核验

IDEA 书签

【效率提升】IDEA 中书签功能的妙用_idea 书签-CSDN 博客

Spring MySQL 配置:

MySQL 之 InvalidConnectionAttributeException,SQLNonTransientConnectionException_sqlnontransientconnectionexception: server shutdow-CSDN 博客

MySQL 的这行配置还有点门道:

1
url: jdbc:mysql://122.9.51.171:3306/test_shuozhou?serverTimezone=UTC&allowMultiQueries=true&autoReconnect=true&useUnicode=true&failOverReadOnly=false&useSSL=false&characterEncoding=utf-8

Postman 测试文件上传接口:

Postman 上传文件 返回 500 报错 “Current request is not a multipart request” 解决_postman current request is not a multipart request-CSDN 博客

Excel 表格修改后缀:

The supplied data appears to be in the OLE2 Format.-CSDN 博客

直接修改 Excel 文件后缀 .xls 为 .xlsx,会报错,需要另存为新的 Excel 文件。

org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ‘his-CSDN 博客

部署项目 Failure obtaining db row lock: Table ‘XXX.qrtz_LOCKS‘ doesn‘t exist-CSDN 博客

2024 年 4 月 16 日

上午最后调整大同检察院的文档生成功能,还需要调整的地方蛮多的:

  • 拿到数据以后就要根据文档模板路径填充数据,生成文档(模板生成条件 type 需要注意下):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
public class DocUtilNew {

private static String newAnalysicFor48Path = DocPathVo.getNewAnalysicFor48Path();
private static String newSimpleFor48Path = DocPathVo.getNewSimpleFor48Path();

public static String replace48Doc(HashMap<String, Object> dataMap, Integer type) throws Exception {
// 区分模板,读取相应模板 8指标情况,9与平均值差距 dataMap相应的替换数据
String frameWordPath = "";
switch (type) {
case 8:
frameWordPath = newAnalysicFor48Path;
break;
case 9:
frameWordPath = newSimpleFor48Path;
break;
}

Map<String, String> doc = createDoc();// 生成空doc的绝对路径
String docPathx = doc.get("absolutePath");
ByteArrayOutputStream byteArrayOutputStream = readwriteWord(frameWordPath, dataMap);
FileOutputStream outputStream = new FileOutputStream(docPathx);
outputStream.write(byteArrayOutputStream.toByteArray());
byteArrayOutputStream.close();
outputStream.close();
return doc.get("fileName");
}

.........................................
}
  • 新增 48 项指标模板文档路径,并读取配置文件获取模板文档路径:
1
2
newAnalysicFor48Path: D:/zw/uploadPath/template/dt48NewAnalysis.doc
newSimpleFor48Path: D:/zw/uploadPath/template/dt48NewSimple.doc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
@SuppressWarnings("ALL")
@Component
public class DocPathVo {
// 48项组合指标文档模板路径
private static String newAnalysicFor48Path;
// 48项文档平均值模板路径
private static String newSimpleFor48Path;

public static String getNewAnalysicFor48Path() {
return newAnalysicFor48Path;
}

@Value("${docPath.newAnalysicFor48Path}")
public void setNewAnalysicFor48Path(String newAnalysicFor48Path) {
DocPathVo.newAnalysicFor48Path = newAnalysicFor48Path;
}

public static String getNewSimpleFor48Path() {
return newSimpleFor48Path;
}

@Value("${docPath.newSimpleFor48Path}")
public void setNewSimpleFor48Path(String newSimpleFor48Path) {
DocPathVo.newSimpleFor48Path = newSimpleFor48Path;
}

.........................................
}
  • 至此,48 项组合指标分析文档即大同检察院可视化文档生成功能完成:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 48项组合指标分析文档
@Override
public String generateDocFor48(String monthId, Integer type) throws Exception {
// 区分模板,读取相应模板 8指标情况,9与平均值差距 dataMap相应的替换数据
HashMap<String, Object> dataMap;
DocContextNew docContextNew = new DocContextNew(null);
switch (type) {
case 8:
docContextNew = new DocContextNew(get48AnalysisData);
break;
case 9:
docContextNew = new DocContextNew(get48SimpleData);
break;
}
dataMap = docContextNew.executeGetDataForDoc(monthId);
return DocUtilNew.replace48Doc(dataMap, type);
}
1
2
3
4
5
6
7
8
9
10
11
12
else if (DictDataConstant.FORTY_EIGHT_YEAR.equals(year)) {
// 48项文档
for (Integer type : docTypeFor48) {
fileName = service.generateDocFor48(monthId, type);
DocFile docFile = new DocFile(null, monthId, fileName, Long.valueOf(type));
docFile.setCreateTime(new Date());
docFileMapper.insertDoc(docFile);
logger.info(monthId + "月份" + type + "文件生成成功");
}
} else {
return AjaxResult.error("文档生成失败,请检查选取月份指标数据!");
}
  • 执行生成 2 月份指标数据分析文档成功,生成文档如下(指标分析文档 + 与平均值差距文档,当前数据均为假数据):

image-20240416091905119

image-20240416090626724

image-20240416090641092

新人入职培训

组织架构调整

2024 年 4 月 15 日

今天,软件部内部做了新一轮的组织架构调整,整体划分为软件部一部、软件部二部和软件部三部。

各个小的部门,都分派一位能力较强的同事为组长。作为管理人员,组长手下组员有 2-4 名,直接负责他们的任务派发及验收、问题汇总以及工作汇报等。各个小组组长由软件部内部一名部长管理,直接负责与小组组长的对接,而部长负责直接与主管沟通。

还有个新的绩效考核规范,主要是为了督促员工认真工作,奖惩分明。

[1000_软件部共享文档清单 (yuque.com)](https://www.yuque.com/lingchen-e1frz/fcl824/vxf86clpsd3fk7n3# 《1000_软件部共享文档清单》)

闻喜智慧平台

给了 git 权限,拉取代码至本地,熟悉业务逻辑

一堆爆红,不好搞,目前也没人有时间教教我们,带着看业务逻辑和代码。只好是看看大屏运行效果和闻喜相关文档

image-20240416144412105

关于 pom.xml 一直提示 Could not transfer artifact(无法搬运)+无法解析 maven 依赖的问题,我在学习 springboot 的过程中遇到的一些问题-CSDN 博客

maven 中 Could not transfer artifact xxx from/to xxx 错误的最全解决方案-CSDN 博客

学一学若依框架:RuoYi

已完成:

1、

已完成:

1、上午完成大同检察院项目核心功能核验,并推送合并至远程仓库。

2、学习闻喜智慧平台使用说明书和需求规格说明书,并巩固学习软件部后端开发规范。

3、查看闻喜后台管理平台和可视化大屏,学习其核心功能。

4、git 拉取闻喜后端代码,尝试运行。

待完成:

1、下午运行闻喜后端代码还有报错,正在跟赵杰商讨解决。

2、闻喜后端代码整体业务逻辑未掌握,需要有人帮忙讲解梳理下核心业务逻辑。

3、今日新人培训笔记待整理。

1
2
3
4
后端项目临时启动方案:
1.application.yml中添加配置spring.jpa.database-platform
=org.hibernate.dialect.MySQL57Dialect
2.注释掉SequenceConfig和SequenceConfiguration中的Bean注入

2024 年 4 月 17 日

今日闻喜易地搬迁项目自测整改计划

首页:基础数据、人员类型、跟踪服务、党组织统计、融入服务、就业服务。

融入服务:火灾 - 0,医疗 - 1,交通 - 2,盗窃 - 3,环境卫生 - 4,其他 - 5。

首次进入大屏,融入服务展示数据正常,单击“社区中心”后,“融入服务”返回数据为空,queryAcceptCount?communityId=-1

下午我们团队一直在做闻喜项目的自测整改工作,不会就问高工问小兵。我第一次能切实感受到团队分工合作,这也是入职以来很少有过的体验。我参与了现有功能的测试和问题反馈,这让我有前所未有的参与感与满足感。

四点多还有个新人培训,我听着挺认真的,突然小兵叫我们出来改 Bug,哈哈哈哈。加班到七点半,今天的任务完成了,明天的事明天再说。

晚上回来取了快递:月球灯,半袖,陶笛,好玩的东西真不少呢。买包子的时候,老板看我年纪小,五个素包子还另外给我送了一个肉包子。

干点啥好呢?树宙说他被主管叫去谈话了,因为下午下班前人事给了他一大摞纸张让他代签字。关于这事我就不细说了,主管给他说的意思就是给你安排了工作,不相干也得干。这没有办法了,这纯粹是体力活,没有成长不是本职工作更浪费时间。慢慢写吧,有时间就写点,不要干扰自己的工作进度和好心情。催的话就给她甩脸色,谁让你给我这么多的,反将一军。毕竟他们没把实习生当回事,咱也不需要把这任务当回事。

2024 年 4 月 18 日

我在闻喜自测整改团队的工作流程是这样的:

分别进入闻喜后台管理平台和闻喜大屏可视化页面,在测试环境下做数据校验核对和审查。

image-20240418085130525

image-20240418085957100

image-20240417152741391

发现问题,就上禅道提 Bug,由团队内部开发人员协同解决问题。

image-20240418085911137

image-20240418085116316

今日完成小程序端自测,现在还没给到能访问的小程序端。先看看后端管理平台吧,自己新增几条数据,目前暴露的错误还是蛮多的。

image-20240418103458926

今天提交的问题更多了:

image-20240418181955109

下班有点晚啊,七点半才能走,虽然我的工作早就干完了。不过没事,过了这周,下周就会慢慢调整回来的。

java: Compilation failed: internal java compiler error-CSDN 博客

image-20240419154337393

全新整洁的 Java 环境:

image-20240419154416181

IDEA GoLand 问题 Contents have differences only in line separators-CSDN 博客

1
2
3
4
5
6
7
8
9
“回车”一词有多重含义。在古汉语中,“回车”指的是调转车头,回转其车。而在计算机领域中,“回车”键是一个重要的按键,其英文标识为“Enter”。

关于“回车键”的起源,可以追溯到机械英文打字机时代。在机械打字机上,有一个部件叫做“字车”,每打一个单词,“字车”就会前进一格。当打满一行字符后,打字者需要推动“字车”回到起始位置,同时滚筒会上卷一行,以便开始输入下一行。这个推动“字车”回到起始位置的动作就被称为“回车”。

后来,在电动英文打字机上,为了简化操作,人们增加了一个可以直接实现“回车”功能的按键,这个按键就被命名为“回车键”。在电脑键盘上,“回车键”上曾经使用过“CR”、“RETURN”的字样,后来才统一确定为“Enter”。

至于为什么叫“回车”,从机械打字机的角度来看,这个名称直观地描述了“字车”回到起始位置的动作。在打印机中,有一个装置叫做Carriage,负责带动打印头在纸张上移动。当打印完一行后,Carriage需要回到行首以便开始下一行的打印,这个操作就被称为Carriage Return,即回车。因此,“回车”这个名称在计算机领域中得以沿用,用于描述光标或打印头回到行首的动作。

在现代计算机中,回车键除了具有将光标移动到行首的功能外,还常常用于提交输入、执行命令或确认选择等操作。在编程和文本编辑中,回车键也扮演着重要的角色,用于结束一行代码或文本的输入。

自测 Bug 禅道提交

物业报修

牵扯了一系列问题:

1、用户登录小程序之后,没有提供默认昵称头像

img

2、该用户使用物业报修功能,提交表单:

img

3、小程序后台管理 报修管理能正常看到提交的报修信息:

img

4、但尝试处理该报修信息时,显示用户昵称不能为空,无法处理:

img

[结果]

[期望]

用户登录小程序应该强制要求设置昵称,或者给到一个随机昵称

项目完工验收

2024 年 4 月 23 日

软件开发全文档归档,开发、管理、实施、运维、服务巡检、信息安全、安全运维_软件开发文档管理-CSDN 博客

项目管理/互联网/软件全套文档、产品文档、技术文档、测试文档、运维文档、项目文档_互联网公司项目管理过程文档-CSDN 博客

image-20240423092209382

  1. Gitlab 地址:http://192.168.4.89:8090
  2. 禅道地址:http://192.168.4.89:8003/zentao/user-login.html 禅道用户名:自己姓名全拼 初始密码:Sxzw@2021

今天学学后端项目开发规范

这代码生成器太方便了:

image-20240423112059689

2024 年 4 月 24 日

今天上午请假回学校上体育课,总算处理掉这学期的体育课期末考试了,下面两节课直接旷课不去了 😁

中午完成了新人培训第一轮考试,明天再考一轮这培训就结束了。

下午主要配合树宙完成 ZW2022143 和 ZW2022152 项目完工会的资料整理,附上今天的工作汇报吧:

  • 完成软件项目完工资料清单测试方案、项目评分、需求变更文档和操作说明书的整理,等待验收中。
  • 初步验收闻喜项目调整清单中优先级 P2 和部分 P3 已完成的调整内容,没有发现问题。
  • 继续学习后端培训框架代码和开发规范手册,熟悉项目开发流程。

春季趣味运动会

2024 年 5 月 1 日

昨天我们单位举办了今年的春季趣味运动会,大家都玩得很开心。

上午也没分配啥任务,我们跟主管一起坐车提前去体育馆布置场地,下午就开始进行运动会了。

参与运动员一共有三组,每组十二名运动员,外加三个裁判和俩领导,一共将近四十号人。开幕式由主持人讲话,介绍游戏规则。游戏项目有三个环节:第一关“心心相印”,大家两人一组背靠背挤着气球跑,谁跑得快用时最短得分就高。第二关“指压板”,踩过五米左右长的指压板,在终点处投进去手里的乒乓球,限制时间内投入越多球得分越高;第三关“接水游戏”,一条长龙嘴对嘴叼个水杯子传递水直到最后桌上的杯子。最后积攒的水越多分数越高。

每个游戏都很有意思,大家都很放松。五点半左右运动会结束,每个人都拿到了小礼品,闭幕式完成,运动会结束了。

再放一些有趣的抓拍镜头吧,都是赛场上认真比赛的运动员们的身影呵。

image-20240501102601827

image-20240501102611767

image-20240501102845212

五一假期来咯,节日快乐。

电子名片

2024 年 5 月 6 日

初始化

拉代码,跑通:

Projects · Dashboard · GitLab

把本地 Maven conf 下的 settings.xml 文件修改下:

1
2
3
4
5
6
7
8
9
10
11
12
13
    <profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>

image-20240506094342661

image-20240506094231170

困扰我半年多的问题终于解决了,怪不得每次都是默认 JDK 1.7。

image-20240506094117220

这块出现报错,修改 JDK 版本为 8 即可:

1
2
3
4
5
6
7
8
private RSAPrivateKey getRSAPrivateKey() {
try {
return RSAPrivateCrtKeyImpl.newKey(Base64.decodeBase64(this.tokenPrivateKey.getBytes()));
} catch (Exception e) {
ExceptionHandler.throwCustomException("系统异常");
}
return null;
}

image-20240506094049283

启动完成,耗时 15 秒,swagger 访问链接:http://192.168.152.1:35005/doc.html
image-20240506095330813

访问 Nacos 注册中心/配置中心:

1
2
3
4
5
6
7
config:
namespace: cloud-card-test
namespace-config: cloud-card-test
group: cloud-card
server: 122.9.50.161:8848
username: cloud-card
password: Qq2132

image-20240506101227756

动态评论

TODO:

  1. 没有通用的返回类,错误码
  2. 返回数据校验

Maven 仓库介绍以及私服搭建 - yjry-th - 博客园 (cnblogs.com)

需求:

统计未读动态数量,计算和,核心代码优化前和优化后的区别,避免了在循环中写 SQL 语句

1
2
3
4
5
6
7
8
// 优化前
int notReadNum = 0;
for (Long dynamicId : dynamicIdList) {
int count = this.count(Wrappers.lambdaQuery(DynamicComments.class)
.eq(!ValidateUtil.isNullOrEmpty(dynamicId), DynamicComments::getDynamicId, dynamicId)
.eq(DynamicComments::getIsRead, DynamicTypeEnum.IS_NOT_READ));
notReadNum += count;
}
1
2
3
4
5
6
7
8
9
10
// 优化后
int notReadNum = 0;
List<DynamicComments> commentsList = this.lambdaQuery()
.in(DynamicComments::getDynamicId, dynamicIdList)
.eq(DynamicComments::getIsRead, DynamicTypeEnum.IS_NOT_READ)
.list();
if (!ValidateUtil.isNullOrEmpty(commentsList)) {
notReadNum = commentsList.size();
}

巩固学习了 MybatisPlus 语法,可以使用链式调用简化写法:

1
2
3
4
5
6
7
8
9
// 1.获取动态下的所有评论
List<DynamicComments> dynamicCommentsList = this.list(this.lambdaQuery()
.eq(DynamicComments::getDynamicId, dynamic.getId())
.orderByDesc(DynamicComments::getCreateTime));

List<DynamicComments> list = this.lambdaQuery()
.eq(DynamicComments::getDynamicId, dynamic.getId())
.orderByDesc(DynamicComments::getCreateTime)
.list();

看下最终的 service 层业务代码吧:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
* 统计每条动态下的未读评论
*
* @param dynamicList 动态列表
* @return
*/
public Integer getNotReadNumById(List<Dynamic> dynamicList) {
if (!ValidateUtil.isNullOrEmpty(dynamicList)) {
// 1.获取动态Id列表
List<Long> dynamicIdList = dynamicList.stream()
.map(Dynamic::getId)
.collect(Collectors.toList());
if (ValidateUtil.isNullOrEmpty(dynamicIdList)) return 0;
// 2.统计未读动态数量,计算和
int notReadNum = 0;
List<DynamicComments> commentsList = this.lambdaQuery()
.in(DynamicComments::getDynamicId, dynamicIdList)
.eq(DynamicComments::getIsRead, DynamicTypeEnum.IS_NOT_READ)
.list();
if (!ValidateUtil.isNullOrEmpty(commentsList)) {
notReadNum = commentsList.size();
}

return notReadNum;
}

return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/**
* 展示动态下所有评论
*
* @param appUser 动态发起用户
* @param dynamic 当前查看的动态
*/
public List<DynamicCommentsDTO> listByDynamicId(AppUser appUser, Dynamic dynamic) {
// 1.获取动态下的所有评论
List<DynamicComments> dynamicCommentsList = this.lambdaQuery()
.eq(DynamicComments::getDynamicId, dynamic.getId())
.orderByDesc(DynamicComments::getCreateTime)
.list();

// 2.封装
List<DynamicCommentsDTO> commentsDTOS = dynamicCommentsList.stream().map(dynamicComments -> {
DynamicCommentsDTO dynamicCommentsDTO = new DynamicCommentsDTO();

dynamicCommentsDTO.setNickName(appUser.getNickName());
dynamicCommentsDTO.setAvatar(appUser.getAvatar());
dynamicCommentsDTO.setContent(dynamicComments.getContent());

dynamicCommentsDTO.setDynamicContent(dynamic.getContent());
dynamicCommentsDTO.setCreateTime(dynamicComments.getContent());

return dynamicCommentsDTO;
}).collect(Collectors.toList());
if (ValidateUtil.isNullOrEmpty(commentsDTOS)) return Lists.newArrayList();

return commentsDTOS;
}

2024 年 5 月 7 日

这两段代码效果是一样的,可以学着写一写:

1
2
3
List<Enterprise> list = this.listByIds(ids);
if(ValidateUtil.isNullOrEmpty(list)) return new HashMap<>();
return list.stream().collect(Collectors.toMap(Enterprise::getId, Function.identity(), (a1, a2) -> a1));
1
2
3
4
5
6
7
8
9
10
// 先按id分组,但每个id对应的值是一个列表
Map<Integer, List<Enterprise>> groupedMap = list.stream()
.collect(Collectors.groupBy(Enterprise::getId));

Map<Integer, Enterprise> resultMap = groupedMap.entrySet().stream()
.collect(Collectors.toMap(
Map.Entry::getKey, // 键是id
e -> e.getValue().isEmpty() ? null : e.getValue().get(0), // 值是列表中的第一个Enterprise对象
LinkedHashMap::new // 使用LinkedHashMap保持插入顺序(如果需要的话)
));

自学

2024 年 5 月 15 日

这两种写法,学到了:

1
commentsList.stream().collect(Collectors.groupingBy(DynamicComments::getDynamicId)))
1
appUserList.stream().collect(Collectors.toMap(AppUser::getId, Function.identity(), (k1, k2) -> k2))

2024 年 5 月 16 日

1
2
3
4
5
6
7
8
9
10
import java.util.Collections;
import java.util.Set;

public class SingletonSetExample {
public static void main(String[] args) {
Object userId = "12345";
Set<Object> singletonSet = Collections.singleton(userId);
System.out.println(singletonSet); // 输出:[12345]
}
}

Collections.singleton(userId) 是 Java 中的一个方法,用于创建一个只包含单个元素的不可变集合(Set)。这个方法来自java.util.Collections类。

这里的userId是传递给singleton方法的参数,它将成为返回的 Set 集合中的唯一元素。

这个方法主要用于当你需要一个只包含一个元素的 Set 时,而不需要显式地创建一个 HashSet 或 TreeSet 等,并将其添加到集合中。返回的 Set 集合是不可变的,也就是说,你不能向这个集合中添加或删除元素。

管理员查询接口

2024 年 5 月 21 日

这个接口任务是上周周五布置的,这周周一来了经过赵杰的核对后,推送成功。

今晚俊斌说前端展示的字段有缺失,我复查了一遍,一部分是因为数据库本身没有数据,另外就是我没有封装 creatTime、updateTime、createBy、updateBy 这些字段。

晚上回来又新增了前端可根据 UserName 用户名查询个人名片和企业名片,只是网络原因连接不到服务器了。

1
2
3
4
5
6
7
public IPage<CardEnterprise> getPageByAdmin(CardEnterpriseByAdminPageVO vo) {
return this.page(vo.convertPage(), Wrappers.lambdaQuery(CardEnterprise.class)
.eq(!ValidateUtil.isNullOrEmpty(vo.getUserName()), CardEnterprise::getUserName, vo.getUserName())
.le(!ValidateUtil.isNullOrEmpty(vo.getBeginTime()), CardEnterprise::getCreateTime, vo.getBeginTime())
.ge(!ValidateUtil.isNullOrEmpty(vo.getEndTime()), CardEnterprise::getCreateTime, vo.getEndTime())
.orderByDesc(CardEnterprise::getCreateTime));
}

image-20240521212731526

明天有空就在这里补一下怎么用 IDEA 推送代码至远程仓库,实现多人协作。(IDEA 2023 最新版)

代码合并

2024 年 5 月 22 日

选择要提交的文件:

image-20240522114357514

编写完毕 commit 信息后,选择好分支,拉取远程仓库最新代码:

image-20240522114503426

直接 push 即可:

image-20240522114610086

CMMI 文档补充

2024 年 5 月 9 日

这两天在完成山西中维项目文档补齐,大同智慧检务平台和朔州高质量分析平台

2024 年 5 月 10 日

这块内容做了三天,一直在按照模板文档Excel 表格要求不断优化验收,今下午交付了。

很无趣的一块内容,很多东西要求不明确,但只能硬着头皮按验收修改建议,继续整理。

2024 年 5 月 13 日

今天下午继续完成项目文档补充,树宙请假不在,他的活都我包了。又是满满当当的一下午,不过可算是完善了,成功交付。

没有什么能比组长认可我的工作成果,更能让我感到开心的了。

2024 年 5 月 14 日

今天上午,小兵的运维工具 -> 系统测试用例,需要我帮他搞定。下午三点多交付,没有问题。这工作我做的越来越熟练了,开心。

金蝶苍穹初级考试

2024 年 5 月 10 日

image-20240510171157167

2024 年 5 月 15 日

最近几天一直在收集整理上周五考过的金蝶苍穹测试题目,慢慢来不着急。

今天已经把所有的搜集到的三份题目整理完成,单选题基本完成,多选题和判断题又搜集了一些,这部分内容比较多。

2024 年 5 月 21 日

今天下午三点五十分,我跟树宙提前坐在了会议室里,准备这次金蝶苍穹云初级测试。

基本上所有题目都在我们俩最新总结的题单上,做起来很快,但也很紧张。

短暂却又漫长的一个小时过去了,我们提前交了卷子。四点五十七分,出成绩了:六十七分

这其中当然是有我的很大一部分功劳的,我也总结了三套题目,用 AI 加多套题目比对,也总结出百十来道题目的答案了。

华为云服务

工作

2024 年 5 月 15 日

今天主管、海红、赵杰和另一位不认识的同学在一个群里,完成这个华为云服务软著整理。

下午六点半协助完成初步交付了,具体明天有什么新的安排,那就明天再说吧。

2024 年 5 月 17 日

今天上午,海红要我注册华为云服务,在我的账号下购买产品。

共建智能世界云底座-华为云 (huaweicloud.com)

呐,就是这个清单(这里面的内容,我要求完善两天了,还是没消息):

image-20240517112432283

搞了一个多小时,好多产品购买细节得慢慢跟海红沟通了。

华为云提供的产品,还是相当可靠的:

image-20240517141437255

image-20240517113743942

下面就展示一下部分沟通事宜吧:

image-20240517113753641

image-20240517113759844

image-20240517113810711

image-20240517113817175

image-20240517113825160

image-20240517113837873

image-20240517113844744

image-20240517113851218

image-20240517113859240

image-20240517113911373

image-20240517113918135

做完了,就剩下的确认任务了:

1
2
3
只列举需要资源,不需要标注价格,标注价格表单备份一下,等说要的时候给加上
两个申请资源清单一致,做完和他确认时顺便问一下申请到的资源是一台还是各两台
检查确认下内容

吐槽

2024 年 5 月 17 日

奶奶的,我今天上午搞那个 云数据库 GaussDB(for Redis),结果华为云产品上找不到。问了海红,他找了一会儿也说不知道,让我在

群里问问。

那我就在那个五人群里问吧,反正除了那个”我没假牙“的服务人员,都是我们部门的开发人员:主管,海红,赵杰和我。

我就发了两张图片,反映了下应该指定购买的 Redis 产品不存在。还想着群里那位是比较专业的,那就直接问问他吧,就@了那家伙。

结果没过五秒,主管就单线告我说赶紧撤回,没事干@人家干啥,内部问题又不是人家能解决的。

image-20240517190954976

那我只好是撤回了,总是这样,现在的我不论走到哪一步,总是沦落到被别人管教说教的地步。

有点不开心,就吐槽一下了。

离职交接文档

2024 年 5 月 20 日

就在今天上午十点,我正式递交了辞职申请书。从刚有了离职的想法,到今天正式提出辞职,前后不到三天时间

写在后面‘

2024 年 6 月 27 日

今天,完结一下这篇专栏。

这篇专栏不会再更新了,它记录了短短两个多月以来的实习工作记录,我收获了什么,学到了什么。

这份实习经历对我来说相当宝贵,不仅仅让我提前体会到打工人的不易,更重要的是,以此为契机,我成长为一个更加成熟的人。

过去的就让它过去了,向前看,前面还有更加精彩的生活等着我。


拨云见日:职场生活的点滴记录
https://test.atomgit.net/blog/2024/04/16/拨云见日:职场生活的点滴记录/
作者
Memory
发布于
2024年4月16日
更新于
2024年8月28日
许可协议