实习总结
2022.1.11-1.13日上午
今天认识了UiBot Creator, Power BI Desktop, Finereport这几个软件。
其中第一个软件是用于自动化的处理数据。 比如自动打开网页,自动下载数据,自动填表等等。但是其有一个问题就是对浏览器的要求很高,如果出现广告弹窗或者执行的过程中找不到应该对应的页面, 软件就会报错。
第二个软件可以做可视化报表, 具体的功能还没有了解。
第三个软件也是做报表的。可以连接数据库做一些数据的处理, 可以用sql语句提取想要的数据再进一步进行处理, 这个软件还可以通过浏览器预览报表, 进行合理的报表设计。
公司相关的基本情况:
振东是集团公司,主管药物生产,中药材种植, 销售等等。
公司部门又包括总部,财务,物管,人资,企管部(只有一个总部)。
营销中心单独管理。
质量要求很严格。 GMP:GOOD MANUFACTURING PRACTICE良好生产规范。
生产,药品流通(GSP)(药品经营质量管理规范),九中同,生产完配送。销售线上和线下,有电商也有线下销售,线下有分直销和销售到医院和药店再进行二次营销。
OTC:非处方药。
研究院,科技中心。 医院,药店,基层(县镇小诊所) 销售是最大的团队。 健康生物,保健品,口服液。
总部在山西。
北京这边有些部门,信息部,营销总部的,销售有办事处。 总部的人在这边。
信息化团队
经营类IT ERP系统(企业资源计划) SAP系统要上线 管理物,采购
卖货的系统
管理人事的系统, 企管部, 也是本人所在的部门。
流向系统,(到医院) 纯销,(医院给消费者)
总监,部长,部门的老大。下面是经理,在下面是主管,然后是员工。
OA系统,协同办公,人员办公系统,协同办公,请假,管理各种流程的界面开发,文件共享,资源类
CRM: 客户关系管理系统
销售人员的管理,维护系统,开发新功能
应用推广:教新人用系统
软硬件的协同管理。
PMP(药品经营质量管理规范)系统上线,
项目工作: 项目立项, 项目启动, 明确分工, 时间计划, 项目实施, 项目结项。
风险管理,
PMO审核->结项会议 需求方签字
SOP:繁琐的工作有标准的操作手册。
写技术手册。
考核
OA: 办公自动化
制作管理员工早制定计划,晚上进行总结的报表, 新添计算周末加班人数的模块还有报表提交率的模块。
总结应提交等于应出勤-请假-调休
几个问题:
调休是固定值,还是已经减掉加班了?
有些列是不是被隐藏掉了?对应的是哪个数据库。
ds2数据库的几个参数不知道。
从哪看是不是加班了?
IF(expr,v1,v2) 如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。
J6和L6应该对应的计划和总结是否提交
fb: 分部
bm: 部门
rlzy: 姓名
ds8有ID号和加班信息。
要给ds8加参数。
先按时间排序,根据参数选出时间范围内的数据。然后根据ID号配置OVERTIME_TYPE数据,最后用count进行累加,将其值赋给加班
1 | select ID, OVERTIME_TYPE from ds1,ds8 where ds1.ID = ds8.ID |
sql中with … as 的用法
–相当于建了个e临时表
1 | with e as (select * from scott.emp e where e.empno=7499) |
ds6有ID, Lastname, departmentname, subcompany, departmentID, subcompany, status, field21, days
1 | with hrm AS ( |
overtime.overtime_type
INNER JOIN KQ_FLOW_SPLIT_OVERTIME overtime on overtime.id = r.id
1 | with hrm AS ( |
1 | with hrm AS ( |
beta版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
31
32
33
34
35
36
37
38with hrm AS (
SELECT
r.id,
r.lastname,
d.departmentname,
s.subcompanyname,
r.departmentid,
r.subcompanyid1,
r.status,
cus.field21
FROM
hrmresource r
INNER JOIN hrmdepartment d ON r.departmentid = d.id
INNER JOIN hrmsubcompany s ON r.subcompanyid1 = s.id
Left join CUS_FIELDDATA cus on cus.id = r.id and cus.SCOPEID =-1
where r.status < 5
),
cq as (
select sum(workdays) days,resourceid FROM kq_format_total WHERE
kqdate >= '${startTime}' and kqdate <= '${endTime}' and kqdate>='2021-09-01'
GROUP BY resourceid
),
cq2 as(
select sum(overtime_type) overtime_days,resourceid FROM KQ_FLOW_SPLIT_OVERTIME WHERE BELONGDATE >= '${startTime}' and BELONGDATE <= '${endTime}' and BELONGDATE >='2021-09-01'
GROUP BY resourceid
)
select
hrm.id,hrm.lastname,hrm.departmentname,hrm.subcompanyname,hrm.departmentid,hrm.subcompanyid1,hrm.status,hrm.field21,cq.days,cq2.overtime_days from hrm hrm
left join cq cq on cq.resourceid = hrm.id
left join cq2 cq2 on cq2.resourceid = hrm.id
where 1=1
${if(len(rlzy)=0,""," and id in ('"+rlzy+"')")}
${if(len(bm)=0,""," and departmentid in ('"+SUBSTITUTE(bm,",","','")+"')")}
${if(len(fb)=0,""," and subcompanyid1 in ('"+fb+"')")}
order by subcompanyid1 desc,departmentid desc ,id asc
注意加班表的ID对应的是resourceid而不是id,否则会什么也找不到。
inner join只有当数据有值时才加入, left join无论数据是否有值都加入
update ds1 set status=replace( status, ‘节假日’, ‘休息日’) where status like ‘休息日’;
ds11
2
3
4
5
6
7select userid, kqdate , status from oa_kaoqin
where userid <> 8897 and
kqdate >= '${startTime}' and kqdate <= '${endTime}' and kqdate >= '2021-09-01'
${if(len(rlzy)=0,""," and userid in ('"+rlzy+"')")}
${if(len(bm)=0,""," and departmentid in ('"+SUBSTITUTE(bm,",","','")+"')")}
${if(len(fb)=0,""," and subcompanyid in ('"+fb+"')")}
order by kqdate asc
ds21
2
3
4
5
6
7
8select blog.userid, blog.planWriteFlag, blog.sumWriteFlag, blog.workdate, blog.content
from blog_discuss blog
inner join hrmresource hrm on hrm.id = blog.userid
where blog.workdate >= '${startTime}' and blog.workdate <= '${endTime}'
and blog.workdate >= '2021-09-01'
${if(len(rlzy)=0,""," and blog.userid in ('"+rlzy+"')")}
${if(len(bm)=0,""," and hrm.departmentid in ('"+SUBSTITUTE(bm,",","','")+"')")}
${if(len(fb)=0,""," and hrm.subcompanyid1 in ('"+fb+"')")}
1 | WITH e AS (select userid, kqdate , status from oa_kaoqin |
1 | UPDATE oa_kaoqin SET status='休息日' WHERE status='节假日'; |
计划和总结是只有工作日提交还是每天都要交?
判断是不是空,where is null
PHP 文件可包含文本、HTML、JavaScript代码和 PHP 代码
PHP 代码在服务器上执行,结果以纯 HTML 形式返回给浏览器
PHP 文件的默认文件扩展名是 “.php”
1 |
|
PHP 脚本以 <?php 开始, 以 ?> 结束:
变量以 $ 符号开始,后面跟着变量的名称
在所有函数外部定义的变量,拥有全局作用域。除了函数外,全局变量可以被脚本中的任何部分访问,要在一个函数中访问一个全局变量,需要使用 global 关键字。
在 PHP 函数内部声明的变量是局部变量,仅能在函数内部访问:
phpstudy配置教程
https://zhuanlan.zhihu.com/p/31565779
注意host在C:\Windows\System32\drivers\etc目录下,需要将文件只读取消再处理。
不同的框架需要在phpstudy中配置站点域名管理,方法与教程中的都类似,最后通过修改host就好了。
php框架主要包括模型model,控制器controller,视图view
1 | git push -f origin master 强制上传 |
在屏幕上打印 “hello world”
app/index/controller/下面的index.php
1 |
|
app/index/controller/下面的controller.php
1 |
|
app/index/view/下面的hello.html
1 | <html> |
连接数据库配置:
application/database.php
1 |
|
app/index/controller/下面的index.php1
2
3
4
5
6
7
8
9
10
11
12
namespace app\index\controller;
use think\Db;
class Index
{
public function index()
{
//从数据库中读取数据
$rs = Db::query('select * from oa_kaoqin where id = 2232');
dump($rs);
}
}
php.ini在phpstudy中的E:\PHPStudy_setup\PHPTutorial\php\php-5.6.27-nts中
Postman是一个接口测试工具,在做接口测试的时候,Postman相当于一个客户端,它可以模拟用户发起的各类HTTP请求,将请求数据发送至服务端,获取对应的响应结果, 从而验证响应中的结果数据是否和预期值相匹配;并确保开发人员能够及时处理接口中的bug,进而保证产品上线之后的稳定性和安全性。 它主要是用来模拟各种HTTP请求的(如:get/post/delete/put..等等),Postman与浏览器的区别在于有的浏览器不能输出Json格式,而Postman更直观接口返回的结果。
1 | with hrm AS ( |
1 | select blog.userid, blog.planWriteFlag, blog.sumWriteFlag, blog.workdate, blog.content , plan , sum |
原来的报表逻辑
1 | select uf.userid, uf.adddate, uf.is_sub_plan, uf.is_sub_conclusion |
需要企业的ID号corpid, 成员的ID号userid,
secret: 企业应用中保障数据安全的钥匙, 每一个应用都有一个独立的访问密钥。
corpid: ww37d3407dbb1327ee
userid: LiZhengHan
secret: 1TeVIQwIWCNc7JN_M8veIaAMLsyO7JMCOjo9GA0nqLc
1 | GET |
通过postman收到
1 | { |
1 | select uf.userid, uf.adddate, uf.is_sub_plan, uf.is_sub_conclusion |
sql中#和$的区别:
#将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是id,则解析成的sql为order by “id”。
$将传入的数据直接显示生成在sql中。如:order by $user_id$,如果传入的值是id,则解析成的sql为order by id。
asc是升序, desc是降序
5.6版本的php莫名不行,(后来再试又行了)故用的7.0版本的php.exe, 配置完环境变量就可以在命令行中运行php文件了。
用浏览器打开本质上也是先通过php进行配置运行php并将php返回到html用浏览器打开。这是通过phpstudy的站点域名管理操作实现的将php的运行结果返回html并显示在浏览器中。用命令行也能实现同样的结果。
thinkphp5相关:
public目录下面的index.php是程序的入口文件, application/index/controller/Index.php这个文件的名字不能改, 里面的类的名字只能改index的大小写。
入口文件再调用模块/控制器/操作/参数/值
这种写法只支持URL重写, 如果没有配置重写,需要变成
通过域名访问的thinkphp框架在E盘中, 域名通过phpstudy配置, 通过localhost访问1
index.php/public?s = /index/controller/Index.php
test的bind方法可以省略部分路径名
Jupyter Notebook相关
1 | import xlrd |
读写文件并显示文件
1 | import xlrd |
读取两组数据,并进行线性拟合
结果:
实习前半个月的总结
通过Uibot Creator爬虫获取公司产品的销售数据, python进行数据的可视化输出及分析;
进行企业数据库的管理, 通过FineReport进行员工工作情况信息报表的开发;
通过thinkphp5框架进行企业微信新功能的开发, 开发后实现了员工强制关注功能;
电商运营报表
数据库的升级: 5.7 ~ 8.0
首先在官网下载8.0版本的mysql, 放在phpstudy的tutorial中, 然后复制my.ini如下:
1 | # 设置mysql客户端默认字符集 |
然后按照教程操作, 注意需要用管理员身份打开命令行窗口: win + Q,以管理员身份运行。
然后注意net start mysql需要将正在运行的mysqld进程关闭, 然后才能运行此命令
框架的model模块和controller模块感觉类似于model模块是写一个类, controller模块是对类进行实例化。
MVC模式, M是model模型, V是视图view, C是控制器controller;
创建博客
参考教程:
使用hexo+github免费搭建个人博客网站超详细教程_wapchief的博客-CSDN博客_hexo博客
手把手教你从0开始搭建自己的个人博客 |无坑版视频教程| hexo_哔哩哔哩_bilibili
博文格式为markdown格式, 存在E:/hexotext/source/_post中
PowerBi的使用:
- 获取数据,选择想要导入的表格;
- 然后点编辑查询可以修改表格的属性,将第一行用作标题可以将表格中第一行当作索引,然后如有需要可以改变每一列的数据类型, 如果是文本类型画出的图就是一条直线,改完后点关闭并应用;
- 点击报表然后就可以画图了,拖动数据可以自动画图,也可以改变图的各种细节,非常方便~~
一个demo: