예제 #1
0
def workflow_process_create(ws_driver, sid, worker_id, number=1):
    # 签订用工合同
    if number:
        start_day = get_pass_dates(2)
    else:
        start_day = get_future_date(1)
    parameter = {
        "command": {
            "path": "workflow.consumer.ProcessCreate"
        },
        "parameters": {
            "sid": sid,
            "flow_name": "sign_worker_contract",
            "worker_contract": {
                "team_id": 1,
                "worktype_id": 1,
                "term_type": 1,  # 非固定期限
                "worker_id": worker_id,  # ** 单人**
                "start_day": start_day,
                "finish_day": get_future_date(300),
                "pay_day": 15,
                "morning_time_on_duty": "8:30",
                "morning_time_off_duty": "11:30",
                "afternoon_time_on_duty": "12:00",
                "afternoon_time_off_duty": "18:00",
                "payment_method": 1,
            },
            "work_time_pay": [{
                "time_unit": "小时",
                "pay_mount": 20,
            }]
        }
    }
    result = ws_driver.web_socket_request(parameter)
    assert result['msg'] == '成功'
예제 #2
0
def project_delay(driver):
    try:
        into_one_level(driver, '工程面板')
        sleep(1)
        get_elements(driver,
                     ('xpath', "//a[contains(text(),'设置')]"))[1].click()
        into_two_level(driver, '项目设置')
        sleep(0.5)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'项目延期')]")).click()
        sleep(1)
        num = 300
        setting_input_time(driver)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期需大于原总包合同结束时间']")).send_keys(
                get_future_date(num))
        get_element(driver,
                    ('xpath', "//button[contains(text(),'提交申请')]")).click()
        sleep(0.5)
        get_element(driver, ('id', 'success')).click()
        while 1:
            if is_element_present(
                    driver,
                ('xpath', "//div[contains(text(),'延期时间必须大于总包合同的竣工日期')]")):
                sleep(0.1)
                get_element(driver,
                            ('xpath',
                             "//span[@class='layui-layer-setwin']/a")).click()
                get_element(
                    driver,
                    ('xpath',
                     "//input[@placeholder='选择日期需大于原总包合同结束时间']")).clear()
                num += 20
                get_element(
                    driver,
                    ('xpath',
                     "//input[@placeholder='选择日期需大于原总包合同结束时间']")).send_keys(
                         get_future_date(num))
                get_element(
                    driver,
                    ('xpath', "//button[contains(text(),'提交申请')]")).click()
                sleep(0.5)
                get_element(driver, ('id', 'success')).click()
            else:
                break
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
예제 #3
0
def change_workman_contract_date(driver):
    try:
        now_date = get_future_date(90)
        into_one_level(driver, "任务面板")
        sleep(1)
        into_two_level(driver, "发起申请")
        get_element(driver,
                    ('xpath', "//div[contains(text(),'用工合同期限修改')]")).click()
        get_elements(
            driver,
            ('xpath', "//input[@class='form-control input-sm']"))[0].click()
        get_element(driver, ('id', 'realname')).send_keys('曹永')
        get_element(driver, ('id', 'realsearch')).click()
        sleep(0.5)
        get_element(
            driver,
            ('xpath', "//*[@id='lay-user-f']/tbody/tr/td[1]/input")).click()
        get_element(driver, ('xpath', "//a[contains(text(),'确定')]")).click()
        sleep(0.5)
        setting_input_time(driver)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='请选择日期']")).send_keys(now_date)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'提交申请')]")).click()
        get_element(driver, ('id', "success")).click()
        assert is_element_present(driver, (
            'xpath',
            "//div[contains(text(),'成功')]/i[@class='layui-layer-ico layui-layer-ico1' ]"
        ))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
예제 #4
0
def general_contract(driver, contract_name, contract_awarding, contracting, project_name):
    """

    :param driver:
    :param contract_name:合同名称
    :param contract_awarding: 发包方
    :param contracting: 总承包方
    :param project_name: 工程名称
    :return:
    """
    driver.implicitly_wait(5)
    try:
        into_one_level(driver, '任务面板')
        sleep(0.5)
        into_two_level(driver, '发起申请')
        # WebDriverWait(driver, 10).until(lambda x: x.find_element_by_xpath("//div[contains(text(),'新建总包合同')")).click()
        driver.find_element_by_xpath("//div[contains(text(),'新建总包合同')]").click()
        # get_element(driver, ('XPATH', "//div[contains(text(),'新建总包合同'")).click()
        sleep(0.5)
        driver.find_element_by_xpath("//input[@placeholder='请输入合同名称']").send_keys(contract_name)
        sleep(0.5)
        # 发包方
        get_element(driver, ('id', 'select2-fbfName-container')).click()
        get_element(driver, ('xpath', "//input[@type='search']")).send_keys(contract_awarding)
        sleep(0.5)
        get_element(driver, ('xpath', "//input[@type='search']")).send_keys(Keys.ENTER)
        # 承包方
        get_element(driver, ('id', "select2-cbfName-container")).click()
        driver.find_element_by_xpath("//input[@type='search']").send_keys(contracting)
        sleep(0.5)
        driver.find_element_by_xpath("//input[@type='search']").send_keys(Keys.ENTER)
        driver.find_element_by_xpath("//input[@placeholder='请输入工程名称']").send_keys(project_name)
        select_city(driver)
        driver.find_element_by_xpath("//input[@placeholder='请输入工程详细地址']").send_keys('南京路168号')
        driver.find_element_by_xpath("//input[@placeholder='类目(必填)']").send_keys('建筑')
        driver.find_element_by_xpath("//input[@placeholder='年份(必填)']").click()
        driver.find_element_by_xpath("//span[@class='year active']").click()
        driver.find_element_by_xpath("//input[@placeholder='编号(必填)']").send_keys(random.randint(10000, 99999))
        project_information = '土方开挖,土方回填,钢筋工程,模板工程,混凝土工程,砌体工程,装饰装修工程等'
        contract_scope = "售楼部的美女,工程部的汉,项目部的光棍满街转!财务的花,预算的草,施工队的和尚到处跑!食堂的饭,宿舍的床,搞工程的女人吓死郎!"
        driver.find_elements_by_xpath("//textarea[@placeholder='必填']")[0].send_keys(project_information)
        driver.find_elements_by_xpath("//textarea[@placeholder='必填']")[1].send_keys(contract_scope)
        setting_input_time(driver)
        driver.find_element_by_xpath("//input[@placeholder='选择日期不得晚于计划竣工日期']").send_keys(get_now_dates())
        driver.find_element_by_xpath("//input[@placeholder='选择日期不得早于今天']").send_keys(get_future_date(300))
        driver.find_elements_by_xpath("//input[@placeholder='必填']")[0].send_keys(random.randint(100, 200))
        driver.find_elements_by_xpath("//input[@placeholder='必填']")[1].send_keys(random.randint(100000, 999999))
        driver.find_element_by_xpath("//input[@placeholder='请输入项目经理姓名']").send_keys("暂无")
        driver.find_element_by_xpath("//input[@placeholder='选择日期不得晚于当前日期']").send_keys(get_now_dates())
        select_city_choice(driver)
        driver.find_elements_by_xpath("//input[@placeholder='必填']")[2].send_keys("南京路256号")
        driver.find_element_by_xpath("//button[@type='submit']").click()
        print(get_element(driver, ('id', "LAY_demo2")).text)
        assert get_element(driver, ('id', "LAY_demo2")).text == "成功"
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
예제 #5
0
def subcontract(driver, project_name, labor_company, sub_contract,
                labor_people):
    """
    :param driver: 驱动
    :param project_name: 工程名称
    :param labor_company: 劳务公司
    :param sub_contract: 分包合同名称
    :param labor_people: 劳务经理
    :return:
    """
    try:
        into_one_level(driver, '任务面板')
        sleep(0.5)
        into_two_level(driver, '发起申请')
        driver.find_element_by_xpath(
            "//div[contains(text(),'新建分包合同')]").click()
        driver.find_element_by_xpath(
            "//span[contains(text(),'输入工程名称')]").click()
        get_element(driver, (
            'xpath',
            "//input[@class='select2-search__field']")).send_keys(project_name)
        sleep(0.5)
        get_element(
            driver,
            ('xpath', "//input[@class='select2-search__field']")).send_keys(
                Keys.ENTER)
        sleep(1)
        driver.find_element_by_xpath(
            "//span[contains(text(),'输入公司关键字查找')]").click()
        get_element(driver, ('xpath', "//input[@class='select2-search__field']"
                             )).send_keys(labor_company)
        sleep(0.5)
        get_element(
            driver,
            ('xpath', "//input[@class='select2-search__field']")).send_keys(
                Keys.ENTER)
        # 分包合同名称
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='必填']"))[0].send_keys(sub_contract)
        information = "地基与基础、建筑装饰装修、建筑幕墙、钢结构、机电设备安装、电梯安装、消防设施、建筑防水、防腐保温、园林古建筑、爆破与拆除、电信工程、管道工程等"
        get_element(
            driver,
            ('xpath', "//textarea[@placeholder='选填']")).send_keys(information)
        setting_input_time(driver)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得晚于计划竣工日期']")).send_keys(
                get_pass_dates(2))
        get_element(driver,
                    ('xpath', "//input[@placeholder='选择日期不得早于今天']")).send_keys(
                        get_future_date(299))
        get_element(
            driver,
            ('xpath', "//input[@placeholder='请输入劳务经理姓名']")).send_keys('咋努瓦')
        get_elements(driver,
                     ('xpath', "//input[@placeholder='必填']"))[1].send_keys(
                         random.randint(10000, 99999))
        QA_standard(driver, random.randint(0, 1))
        remuneration_pay(driver, random.randint(0, 1))
        the_contract_comes_into_effect(driver, random.randint(0, 1))
        material_equipment_management(driver, random.randint(0, 1))
        sub_insurance(driver, random.randint(0, 1))
        dispute_resolution(driver, random.randint(0, 1))
        laws_and_regulations(driver, random.randint(0, 1))
        sleep(0.5)
        driver.find_element_by_xpath("//button[contains(text(),'完成')]").click()
        print(get_element(driver, ('id', "LAY_demo2")).text)
        assert get_element(driver, ('id', "LAY_demo2")).text == "成功"
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
예제 #6
0
def edit_workers_contract(driver, workers_name, photo_path):
    try:
        into_one_level(driver, '工程面板')
        sleep(0.5)
        into_two_level(driver, '工人管理')
        # 查询工人姓名
        get_element(
            driver,
            ('xpath',
             "//div[@id='table-toolbar']/input")).send_keys(workers_name)
        # 搜索
        get_element(driver,
                    ('xpath', "//div[@id='table-toolbar']/button")).click()
        get_element(driver, (
            'xpath',
            "//a[contains(text(),'合同详情') and @class='table-a-link']")).click()
        sleep(0.5)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'内容编辑')]")).click()
        if is_element_present_3s(
                driver, ('xpath', "//input[@placeholder='请输入正常出勤单价']"), 3):
            pass
        else:
            driver.refresh()
            if is_element_present(
                    driver, ('xpath', "//button[contains(text(),'内容编辑')]")):
                sleep(1)
                get_element(
                    driver,
                    ('xpath', "//button[contains(text(),'内容编辑')]")).click()
            else:
                pass
        sleep(0.5)
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入正常出勤单价']")).clear()
        sleep(0.5)
        new_unit_price = random.randint(1, 200)
        get_element(
            driver,
            ('xpath',
             "//input[@placeholder='请输入正常出勤单价']")).send_keys(new_unit_price)
        sleep(0.1)
        new_overtime_work = random.randint(1, 200)
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入加班单价']")).clear()
        sleep(1)
        get_element(
            driver,
            ('xpath',
             "//input[@placeholder='请输入加班单价']")).send_keys(new_overtime_work)
        get_element(driver, ('xpath', "//textarea[@placeholder='选填']")).clear()
        assert_information = '验证数据'
        get_element(
            driver,
            ('xpath',
             "//textarea[@placeholder='选填']")).send_keys(assert_information)
        setting_input_time(driver)
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得大于分包合同结束日期']")).clear()
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得大于分包合同结束日期']")).send_keys(
                get_future_date(150))
        get_element(
            driver,
            ('xpath',
             "//div[@id='uploadFile2']/input[1]")).send_keys(photo_path)
        sleep(3)
        get_element(driver,
                    ('xpath', "//button[contains(text(),'完成')]")).click()
        assert is_element_present(driver, ('id', 'LAY_demo2'))
        sleep(7)
        until_price = "//span[contains(text(),'单价:%s元/小时')]" % new_unit_price
        print(until_price)
        assert is_element_present(driver, ('xpath', until_price)), "工人单价未更新"
        over_time = "//span[contains(text(),'加班工资:%s元/小时')]" % new_overtime_work
        assert is_element_present(driver, ('xpath', over_time)), "加班工资未更新"
        workers_information = "//span[contains(text(),'内容:%s')]" % assert_information
        assert is_element_present(driver,
                                  ('xpath', workers_information)), "工作内容未更新"
        workers_contract_time = "//div[@id='laborContract']/p[contains(text(),'1.用工日期从%s进场始至%s日止')]" % (
            str(get_pass_dates(2)), str(get_future_date(150)))
        assert is_element_present(
            driver, ('xpath', workers_contract_time)), "工人合同时间未更新"
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
예제 #7
0
def workman_contract(driver, people):
    try:
        into_one_level(driver, "任务面板")
        sleep(1)
        into_two_level(driver, "发起申请")
        get_element(driver,
                    ('xpath', "//div[contains(text(),'新建用工合同')]")).click()
        get_element(driver,
                    ('xpath', "//span[contains(text(),'计时工人用工合同')]")).click()
        project_element = "//select[@id='reproject-name']/option[2]"
        get_element(driver, ('xpath', project_element)).click()
        get_element(driver,
                    ('xpath', "//*[@id='reproject-team']/option[2]")).click()
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入正常出勤单价']")).send_keys(
                        random.randint(10, 99))
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入加班单价']")).send_keys(
                        random.randint(10, 99))
        # 选择工种
        work_type = "//*[@id='work-type']/option"
        work_type_element = "//*[@id='work-type']/option[%d]" % random.randint(
            2, len(work_type))
        get_element(driver, ('xpath', work_type_element)).click()
        get_element(
            driver,
            ('xpath', "//input[@placeholder='请输入姓名查询']")).send_keys(people)
        sleep(0.5)
        workman_element = "//span[contains(text(),'%s')]" % people
        get_element(driver,
                    ('xpath', "//input[@placeholder='请输入姓名查询']")).send_keys(
                        Keys.ENTER)
        sleep(1)
        get_elements(driver, ('xpath', workman_element))[0].click()
        information = "按工作时间长短付给你工资的工作。"
        get_element(
            driver,
            ('xpath', "//textarea[@placeholder='选填']")).send_keys(information)
        setting_input_time(driver)
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='必填']"))[0].send_keys('08:00')
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='必填']"))[1].send_keys('18:00')
        get_element(driver,
                    ('xpath', "//input[@placeholder='小于用工合同结束日期']")).send_keys(
                        get_pass_dates(2))
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得大于分包合同结束日期']")).send_keys(
                get_future_date(180))
        get_elements(
            driver, ('xpath', "//input[@placeholder='必填']"))[2].send_keys('10')
        get_element(driver,
                    ('xpath', "//button[contains(text(),'完成')]")).click()
        assert is_element_present(driver, (
            'xpath',
            "//div[contains(text(),'成功')]/i[@class='layui-layer-ico layui-layer-ico1' ]"
        ))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False
예제 #8
0
def workman_contract_piece(driver, artifact_name, people):
    try:
        into_one_level(driver, "任务面板")
        sleep(1)
        into_two_level(driver, "发起申请")
        get_element(driver,
                    ('xpath', "//div[contains(text(),'新建用工合同')]")).click()
        get_element(driver,
                    ('xpath', "//span[contains(text(),'计件工人用工合同')]")).click()
        project_element = "//select[@id='reproject-name']/option[2]"
        get_element(driver, ('xpath', project_element)).click()
        get_element(driver,
                    ('xpath', "//*[@id='reproject-team']/option[2]")).click()
        get_elements(
            driver, ('xpath',
                     "//input[@placeholder='必填']"))[0].send_keys(artifact_name)
        address = ['上海', '北京', '广州', '杭州', '无锡', '苏州', '徐州']
        get_elements(driver,
                     ('xpath', "//input[@placeholder='必填']"))[1].send_keys(
                         address[random.randint(0, len(address))])
        get_elements(driver,
                     ('xpath', "//input[@placeholder='必填']"))[2].send_keys(
                         random.randint(88, 188))
        get_elements(driver,
                     ('xpath', "//input[@placeholder='必填']"))[3].send_keys(
                         random.randint(199, 399))
        get_element(
            driver,
            ('xpath', "//textarea[@placeholder='选填']")).send_keys('优秀的完成')
        # 选择工种
        work_type = "//*[@id='work-type']/option"
        work_type_element = "//*[@id='work-type']/option[%d]" % random.randint(
            2, len(work_type))
        get_element(driver, ('xpath', work_type_element)).click()
        setting_input_time(driver)
        get_element(driver,
                    ('id', 'select2-piece-worker-Name-container')).click()
        get_element(
            driver,
            ('xpath',
             "//input[@class='select2-search__field']")).send_keys(people)
        sleep(0.5)
        get_element(
            driver,
            ('xpath', "//input[@class='select2-search__field']")).send_keys(
                Keys.ENTER)
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='必填']"))[4].send_keys('08:30')
        get_elements(
            driver,
            ('xpath', "//input[@placeholder='必填']"))[5].send_keys('17:30')
        get_element(
            driver,
            ('xpath', "//input[@placeholder='小于用工合同结束日期' ]")).send_keys(
                get_pass_dates(2))
        get_element(
            driver,
            ('xpath', "//input[@placeholder='选择日期不得大于分包合同结束日期']")).send_keys(
                get_future_date(180))
        get_elements(driver,
                     ('xpath', "//input[@placeholder='必填']"))[6].send_keys(
                         random.randint(1, 30))
        get_element(driver,
                    ('xpath', "//button[contains(text(),'完成')]")).click()
        assert is_element_present(driver, (
            'xpath',
            "//div[contains(text(),'成功')]/i[@class='layui-layer-ico layui-layer-ico1' ]"
        ))
    except Exception as e:
        print(e)
        bug_photo(driver)
        assert False